Article de reference

Génération de clés

La génération de clés est le processus de création de clés en cryptographie . Une clé est utilisée pour chiffrer et déchiffrer les données à chiffrer/déchiffrer. Un dispositif o...

La génération de clés est le processus de création de clés en cryptographie . Une clé est utilisée pour chiffrer et déchiffrer les données à chiffrer/déchiffrer.

Un dispositif ou un programme utilisé pour générer des clés est appelé générateur de clés ou keygen .

les algorithmes à clé symétrique (tels que DES et AES ) et les algorithmes à clé publique (tels que RSA ). Les algorithmes à clé symétrique utilisent une seule clé partagée ; la confidentialité des données exige que cette clé reste secrète. Les algorithmes à clé publique utilisent une clé publique et une clé privée . La clé publique est accessible à tous (souvent par le biais d'un certificat numérique ). L'expéditeur chiffre les données avec la clé publique du destinataire ; seul le détenteur de la clé privée peut déchiffrer ces données.

Les algorithmes à clé publique étant généralement beaucoup plus lents que les algorithmes à clé symétrique, les systèmes modernes tels que TLS et SSH utilisent une combinaison des deux : une partie reçoit la clé publique de l’autre et chiffre une petite quantité de données (soit la clé symétrique, soit les données ayant servi à la générer). Le reste de la conversation est chiffré à l’aide d’un algorithme à clé symétrique (généralement plus rapide).

La cryptographie informatique utilise des entiers comme clés. Dans certains cas, ces clés sont générées aléatoirement à l'aide d'un générateur de nombres aléatoires (GNA) ou d'un générateur de nombres pseudo-aléatoires (GNP) . Un GNP est un algorithme informatique qui produit des données d'apparence aléatoire. Les GNP qui utilisent l'entropie du système pour initialiser les données donnent généralement de meilleurs résultats, car cela rend les conditions initiales du GNP beaucoup plus difficiles à deviner pour un attaquant. Une autre méthode pour générer de l'aléatoire consiste à utiliser des informations externes au système. VeraCrypt (un logiciel de chiffrement de disque) utilise les mouvements de la souris de l'utilisateur pour générer des clés uniques, les utilisateurs étant incités à déplacer leur souris de manière sporadique. Dans d'autres situations, la clé est dérivée de manière déterministe à l'aide d'une phrase de passe et d'une fonction de dérivation de clé .

De nombreux protocoles modernes sont conçus pour garantir la confidentialité persistante , ce qui nécessite la génération d'une nouvelle clé partagée pour chaque session.

Les systèmes de chiffrement classiques génèrent systématiquement deux clés identiques à une extrémité de la liaison de communication et acheminent l'une d'elles à l'autre extrémité. Cependant, l'utilisation de l'échange de clés Diffie-Hellman simplifie la gestion des clés .

La méthode la plus simple pour lire des données chiffrées sans les déchiffrer est une attaque par force brute : il suffit de tester toutes les valeurs numériques jusqu'à la longueur maximale de la clé. Il est donc important d'utiliser une clé suffisamment longue ; plus la clé est longue, plus le temps d'attaque est exponentiellement long, rendant ainsi une attaque par force brute impraticable. Actuellement, les longueurs de clé courantes sont de 128 bits (pour les algorithmes à clé symétrique) et de 2 048 bits (pour les algorithmes à clé publique).

Génération dans la couche physique

canaux sans fil

Un canal sans fil est caractérisé par ses deux utilisateurs finaux. En transmettant des signaux pilotes, ces deux utilisateurs peuvent estimer le canal entre eux et utiliser ces informations pour générer une clé secrète qui leur est propre. La clé secrète commune à un groupe d'utilisateurs peut être générée à partir du canal de chaque paire d'utilisateurs.

Fibre optique

Une clé peut également être générée en exploitant la fluctuation de phase dans une liaison fibre optique.