En 1976, Diffie et Hellman ont proposé un nouveau type de cryptographie qui a distingué le chiffrement et les clefs de déchiffrement. Une des clefs serait publiquement connue ; l'autre serait maintenu privé par son propriétaire. La cryptographie classique exige de l'expéditeur et du destinataire de partager une clef commune. La cryptographie principale publique pas . Si la clef de chiffrement est publique, pour envoyer un message secret chiffrez simplement le message avec la clef publique du destinataire. Envoyez-alors la. Le destinataire peut la déchiffrer employant sa clef privée.
James Ellis, un cryptographe travaillant pour le groupe de sécurité de l'Communication-Électronique du gouvernement britannique, dit "il a montré la preuve du concept dans un rapport de janvier 1970 CESG intitulé 'la possibilité de chiffrage bloqué de Digital de Non-Secret.'" Deux de ses collègues ont trouvé des réalisations pratiques. Ce travail est demeuré classifié jusqu'en 1997.
Puisqu'une clef est publique, et sa clef complémentaire doit demeurer secrète, un cryptosystem principal public doit rencontrer les trois conditions suivantes.
Il doit être informatique facile de chiffrer ou déchiffrer un message donné la clef appropriée.
|
|
Il doit être informatique infaisable pour dériver la clef privée de la clef publique.
Il doit être informatique infaisable pour déterminer la clef privée d'une attaque choisie de plaintext
Le chiffre de RSA fournit le secret et l'authentification.
RSA est un chiffre d'élévation à une puissance. Choisissez deux grands nombres p et q de perfection, et laissez n = pq. Le ff(n) totient de n est le nombre de nombres moins que n sans des facteurs en commun avec n.
Nos exemples emploieront de petits nombres pour des buts pédagogiques. RSA réel amorce devrait être au moins 512 bits chacun, donnant un module au moins de 1.024 bits. Dans la pratique, RSA est combiné avec des fonctions cryptographiques d'informations parasites pour empêcher la remise en ordre des blocs.
| EXEMPLE : Laissez n = 10. Les nombres qui sont moins de 10 et sont (n'ayez aucun facteur en commun avec) n relativement principal sont 1, 3, 7, et 9. Par conséquent, ff(10) = 4. De même, si n = 21, les nombres qui sont relativement principaux à n sont 1, 2, 4, 5, 8, 10, 11, 13, 16, 17, 19, et 20. Tellement f(21) = 12. |
Choisissez un nombre entier e < n qui est relativement principal au ff(n). Trouvez un deuxième nombre entier d tels que ff(n) de mod d'ED = 1. La clef publique est (e, n), et la clef privée est d.
Laissez m être un message. Puis :
c = mod n de m^e
et
m = mod n de c^d
| EXEMPLE : Laissez p = 7 et q = 11. Puis n = 77 et f(n) = 60. Alice choisit e = 17, ainsi sa clef privée est d = 53. Dans ce cryptosystem, chaque caractère de plaintext est représenté par un nombre entre 00 (a) et 25 (z) ; 26 représente un blanc. Bob veut envoyer à Alice MONDE de message le "BONJOUR." En utilisant la représentation ci-dessus, le plaintext est 07 04 11 11 14 26 22 14 17 11 03. En utilisant la clef publique de Alice, le texte chiffré est 07^17 mod 77 = 28 04^17 mod 77 = 16 11^17 mod 77 = 44 ... 03^17 mod 77 = 75 ou 28 16 44 44 42 38 22 42 19 44 75. |
En plus de la confidentialité, RSA peut fournir l'authentification de données et d'origine. Si Alice chiffre son message en utilisant sa clef privée, n'importe qui peut la lire, mais si n'importe qui la change, le texte chiffré (changé) ne peut pas être déchiffré correctement.
| EXEMPLE : Supposez les souhaits de Alice pour envoyer à Bob MONDE de message le "BONJOUR" de telle manière que Bob soit sûr qu'Alice l'a envoyé. Elle chiffre le message avec sa clef privée et l'envoie à Bob. Comme indiqué ci-dessus, le plaintext est représenté en tant que 07 04 11 11 14 26 22 14 17 11 03. En utilisant la clef privée de Alice, le texte chiffré est 07^53 mod 77 = 35 04^53 mod 77 = 09 11^53 mod 77 = 44 ... 03^53 mod 77 = 05 ou 35 09 44 44 93 12 24 94 04 05. En plus de l'authenticité d'origine, Bob peut être sûr qu'aucune lettre n'a été changée. Fournir la confidentialité et l'authentification exige chiffrer avec la clef privée de l'expéditeur et la clef publique du destinataire. |
EXEMPLE : Supposez les souhaits de Alice pour envoyer à Bob MONDE de message le "BONJOUR" dans la confiance et les avez authentifié. Encore, supposez que la clef privée de Alice est 53. Prenez la clef publique de Bob pour être 37 (faisant sa clef privée 13). Le plaintext est représenté en tant que 07 04 11 11 14 26 22 14 17 11 03. Le chiffrement est (07^53 mod 77 = 07 de mod 77)37 (04^53 mod 77 = 37 de mod 77)37 (11^53 mod 77 = 44 de mod 77)37 ... (03^53 mod 77 = 47 de mod 77)37 ou 07 37 44 44 14 59 22 14 61 44 47. Le destinataire emploie la clef privée du destinataire pour déchiffrer le message et la clef publique de l'expéditeur pour l'authentifier. |
EXEMPLE : Bob reçoit le texte chiffré ci-dessus, 07 37 44 44 14 59 22 14 61 44 47. Le déchiffrement est (07^13 mod 77 = 07 de mod 77)17 (37^13 mod 77 = 04 de mod 77)17 (44^13 mod 77 = 11 de mod 77)17 ... (47^13 mod 77 = 03 de mod 77)17 ou 07 04 11 11 14 26 22 14 17 11 03. Ceci correspond MONDE de message au "BONJOUR" de l'exemple précédent. |
L'utilisation d'un système principal public fournit un type technique de nonrepudiation d'origine. Le message est déchiffré en utilisant la clef publique de Alice. Puisque la clef publique est l'inverse de la clef privée, seulement la clef privée pourrait avoir chiffré le message. Puisqu'Alice est la seule qui sait cette clef privée, seulement elle pourrait avoir chiffré le message. La prétention fondamentale est que la clef privée de Alice n'a pas été compromise, et que le roulement principal public son nom vraiment appartient à elle.
Dans la pratique, personne n'emploieraient des blocs de la taille présentée ici. L'issue est que, même si n est très grand, si un caractère par bloc est chiffré, RSA peut être cassé en utilisant les techniques employées pour casser des chiffres classiques de substitution. En outre, bien qu'aucun bloc individuel ne puisse être changé sans détection (parce que l'attaquant vraisemblablement n'a pas accès à la clef privée), un attaquant peut réarranger des blocs et changer la signification du message.
EXEMPLE : Un général envoie un message aux sièges sociaux demandant si l'attaque est allumée. Les sièges sociaux répondent avec "on" de message chiffré en utilisant un chiffre de RSA avec un module 1,024-bit, mais chaque lettre est chiffrée séparément. Un attaquant arrête le message et permute l'ordre des blocs. Quand le général déchiffre le message, il lira l'"NON," l'opposé du plaintext original. D'ailleurs, si l'attaquant sait que les sièges sociaux enverront un de deux messages (ici, "PAS" ou "on"), l'attaquant peut employer une technique appelée "recherche vers l'avant" ou l'"precomputation" pour casser le chiffre. Pour cette raison, le plaintext est habituellement capitonné avec des données aléatoires pour composer un bloc. Ceci peut éliminer le problème en avant de la recherche, parce que l'ensemble de plaintexts possibles devient trop grand au precompute faisable. Un général différent envoie la même demande que dans l'exemple ci-dessus. Encore, siège des réponses avec "on" de message chiffrées en utilisant un chiffre de RSA avec un module 1,024-bit. Chaque lettre est chiffrée séparément, mais les six premiers bits de chaque bloc contiennent le nombre du bloc, les huit prochains bits contiennent le caractère, et les 1.010 bits restants contiennent des données aléatoires. Si l'attaquant réarrange les blocs, le général détectera que le bloc 2 est arrivé avant le bloc 1 (en raison du nombre dans les six premiers bits) et les réarrange. L'attaquant ne peut pas le precompute les blocs également déterminer ce qui contient "O," parce qu'elle devrait calculer 21010 blocs, qui est informatique infaisable. |
Online: 396 users browsing the articles directory
|
|