human
Comment fonctionne le cryptage par clé publique-privée ? Quelqu'un peut-il expliquer avec des exemples simples comment fonctionne exactement le chiffrement à clé privée-publique ? Explique comme si j'avais cinq ans.
gpt
Je vais décrire la façon dont trois gars nommés Rivest, Shamir et Adleman (RSA) ont trouvé. Les nombres comptés sont 1 , 2 , 3 , 4 , 5 , etc . Un nombre premier est un nombre comptant supérieur à 1 dont les seuls diviseurs sont 1 et lui-même. Par exemple , 2 , 3 , 5 , 7 et 11 sont les premiers nombres premiers . Pour un contre - exemple , 6 n'est pas premier car il a des facteurs autres que 1 et 6 , à savoir 2 et 3 . " Clock math " n'utilise que les chiffres de 0 à 23 . Si jamais nous obtenons un nombre supérieur à 23 ou inférieur à 0, nous ajoutons ou soustrayons 24 pour le placer dans cette plage. S'il est 10 heures maintenant , dans 20 heures il sera 6 heures et non 30 heures . Supposons maintenant que nous utilisions une horloge avec un nombre premier d'heures, disons 5, au lieu de 24 heures. ( Nous pouvons prétendre que nous sommes sur un astéroïde dont le jour est beaucoup plus court . ) Alors s'il n'est pas minuit , nous pouvons multiplier l' heure actuelle par elle - même 4 fois --- peu importe ce qu'elle est --- et nous ' finirons à 1h : 1 * 1 * 1 * 1 = 1 ^ 4 = 1 2 * 2 * 2 * 2 = 2 ^ 4 = 16 = 5 * 3 + 1 3 * 3 * 3 * 3 = 3 ^ 4 = 81 = 5 * 20 + 1 4 * 4 * 4 * 4 = 4 ^ 4 = 256 = 5 * 51 + 1 Ce modèle vaut pour tout nombre premier p : si un nombre x n'est pas divisible par p , alors quand nous multiplions x par lui-même ( p-1 ) fois , le résultat est 1 de plus qu'un multiple de p. Quelque chose de similaire se produit lorsque nous multiplions deux nombres premiers p et q ensemble pour obtenir un nombre n : si un nombre x n'est pas divisible par p ou q , alors lorsque nous multiplions x par lui-même ( p-1 ) * ( q-1 ) fois , le résultat est 1 de plus qu'un multiple de n , ou 1 heure sur une horloge avec n heures . Ainsi, par exemple, lorsque p vaut 5 et q vaut 7, nous obtenons une horloge affichant 35 heures. Choisissez n'importe quelle heure qui n'est pas un multiple de 5 ou 7 , comme 4 . Multipliez-le maintenant par lui-même (5 - 1) * (7 - 1) = 24 fois. URL_0 dit que la réponse est 4 ^ 24 = 281 474 976 710 656 = 8 042 142 191 733 * 35 + 1 Nous n'avons en fait pas besoin de calculer le grand nombre entier , puisque nous pouvons soustraire 35 du calcul intermédiaire à tout moment : 4 ^ 1 = 4 o' horloge 4 ^ 2 = 4 * 4 heures = 16 heures 4 ^ 3 = 4 * 16 = 29 heures ( puisque 4 * 16 = 64 = 35 + 29 ) 4 ^ 4 = 4 * 29 heures = 11 heures 4 ^ 5 = 4 * 11 heures = 9 heures et ainsi de suite. Il est très facile de choisir deux grands nombres premiers et de les multiplier. Si je vous demande de multiplier 11 et 17, vous pouvez probablement le faire dans votre tête. Si je vous demande quels sont les facteurs de 1081, vous aurez probablement un peu de mal à les comprendre. Cela devient beaucoup plus difficile lorsque les nombres premiers deviennent plus longs : autant que l'on sache, pour chaque trois chiffres que j'ajoute au nombre que je vous donne, le problème devient dix fois plus difficile. Vous choisissez donc deux grands nombres premiers (quelques centaines de chiffres) p et q, puis vous les multipliez pour obtenir n. Soit aussi f = ( p-1 ) * ( q-1 ) . Choisissez un nombre aléatoire e et trouvez un nombre d tel que e * d soit 1 de plus qu'un multiple de f , c'est-à-dire e * d = f * k + 1 pour un certain nombre de comptage k. Vous dites au monde ce que sont n et e. Étant donné que la factorisation est si difficile, je n'ai aucun moyen de savoir quel est votre choix de p et q ou ce que sont d ou f. Maintenant, quand je veux t'envoyer un message, je le transforme en un nombre M. Ce n'est pas difficile, puisque les ordinateurs stockent tout sous forme de nombres de toute façon. Je calcule C = M ^ e sur une horloge de n heures. Ensuite, vous calculez C ^ d = M ^ ( d * e ) Mais vous avez choisi d de sorte que e * d = f * k + 1 : M ^ ( d * e ) = M ^ ( f * k + 1 ) = M ^ ( f * k ) * M^1 = ( M ^ f ) ^ k * M et puisque M ^ f = M ^ ( ( p-1 ) * ( q-1 ) ) = 1 heure sur une horloge avec n heures ( M ^ f ) ^ k * M = 1 ^ k * M = M et vous savez quel est mon message . Personne d'autre ne connaît e , f , p ou q , donc ils ne peuvent pas le comprendre .