Cryptographie Principale Publique
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
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. |
c'est un article supplémentaire par Bill Kuriko