web-dev-qa-db-fra.com

Pourquoi les nombres premiers sont-ils importants en cryptographie?

Une chose qui me frappe toujours en tant que non-cryptographe: Pourquoi est-il si important d'utiliser des nombres premiers? Qu'est-ce qui les rend si spéciaux en cryptographie?

Quelqu'un at-il une simple explication brève? (Je suis conscient qu'il existe de nombreuses amorces et qu'Applied Cryptography est la Bible, mais comme dit: je ne cherche pas à implémenter mon propre algorithme cryptographique, et ce que j'ai trouvé vient de faire exploser mon cerveau - pas de 10 pages de formules mathématiques S'il vous plaît :))

Merci pour toutes les réponses. J'ai accepté celui qui expliquait le concept actuel le plus clairement.

183
Michael Stum

Explication la plus élémentaire et la plus générale: la cryptographie concerne théorie des nombres , et tous les nombres entiers (sauf 0 et 1) sont composés de nombres premiers, vous utilisez donc beaucoup de nombres premiers en théorie des nombres.

Plus spécifiquement, certains algorithmes cryptographiques importants tels que RSA dépendent de manière critique du fait que factorisation en nombres premiers de grands nombres prend beaucoup de temps. Fondamentalement, vous avez une "clé publique" composée d'un produit de deux grands nombres premiers utilisés pour chiffrer un message, et une "clé secrète" constituée de ces deux nombres premiers utilisés pour déchiffrer le message. Vous pouvez rendre la clé publique publique et tout le monde peut l'utiliser pour crypter des messages, mais vous seul connaissez les facteurs premiers et pouvez décrypter les messages. Tout le monde devrait factoriser le nombre, ce qui prend trop de temps pour être pratique, étant donné l'état actuel des connaissances en matière de théorie des nombres.

197
Michael Borgwardt

Facile? Ouaip.

Si vous multipliez deux grands nombres premiers, vous obtenez un énorme nombre non premier avec seulement deux (grands) facteurs premiers.

La factorisation de ce nombre est une opération non triviale, qui est à l'origine de nombreux algorithmes cryptographiques. Voir fonctions à sens unique pour plus d'informations.

Addendum: Juste un peu plus d'explication. Le produit des deux nombres premiers peut être utilisé comme clé publique, tandis que les nombres premiers eux-mêmes sont une clé privée. Toute opération effectuée sur des données qui ne peuvent être annulées qu'en connaissant l'un des deux facteurs sera non triviale à déchiffrer.

135
user54650

Voici un exemple très simple et commun.

Le algorithme de cryptage RSA , couramment utilisé dans les sites Web de commerce sécurisé, repose sur le fait qu'il est facile de prendre deux (très grands) nombres premiers et de les multiplier, alors que c'est extrêmement difficile à faire. l'inverse - signifiant: prend un très grand nombre, étant donné qu'il n'a que deux facteurs premiers, et les trouve.

44
Yuval Adam

Ce ne sont pas tant les nombres premiers eux-mêmes qui importent, mais les algorithmes qui fonctionnent avec des nombres premiers. En particulier, trouver les facteurs d'un nombre (n'importe quel nombre).

Comme vous le savez, tout nombre a au moins deux facteurs. Les nombres premiers ont cette propriété unique en ce qu'ils ont exactement deux facteurs: 1 et eux-mêmes.

La raison pour laquelle la factorisation est si importante est que les mathématiciens et les informaticiens ne savent pas factoriser un nombre sans simplement essayer toutes les combinaisons possibles. C’est-à-dire que vous devez d’abord diviser par 2, puis par 3, par 4, et ainsi de suite. Si vous essayez de factoriser un nombre premier - en particulier un très grand - vous devrez essayer (essentiellement) tous les nombres possibles compris entre 2 et ce grand nombre premier. Même sur les ordinateurs les plus rapides, il faudra des années (voire des siècles) pour factoriser les types de nombres premiers utilisés en cryptographie.

C'est le fait que nous ne sachions pas factoriser efficacement un grand nombre qui donne toute sa force aux algorithmes de cryptographie. Si, un jour, quelqu'un trouve comment le faire, tous les algorithmes cryptographiques que nous utilisons actuellement deviendront obsolètes. Cela reste un domaine de recherche ouvert.

14
Barry Brown

Parce que personne ne connaît un algorithme rapide pour factoriser un entier en ses facteurs premiers. Cependant, il est très facile de vérifier si un ensemble de facteurs premiers se multiplient à un certain nombre entier.

13
nes1983

Il existe de bonnes ressources pour la cryptographie. En voici un:

De cette page:

Dans le système de cryptographie à clé publique le plus couramment utilisé, inventé par Ron Rivest, Adi Shamir et Len Adleman en 1977, les clés publique et privée sont dérivées d'une paire de grands nombres premiers selon une formule mathématique relativement simple. En théorie, il pourrait être possible de dériver la clé privée de la clé publique en utilisant la formule à l'envers. Mais seul le produit des grands nombres premiers est public et il est si difficile de factoriser des nombres de cette taille en nombres premiers que même les supercalculateurs les plus puissants du monde ne peuvent briser une clé publique ordinaire.

Le livre de Bruce Schneier , Cryptographie appliquée , en est un autre. Je recommande fortement ce livre; c'est amusant de lire.

12
Brian Clapper

Pour être un peu plus concret sur la manière dont RSA utilise les propriétés des nombres premiers, l'algorithme RSA dépend de théorème d'Euler , qui stipule que pour des nombres relativement premiers "a" et "N", a ^ e est congruent à 1 modulo N, où e est le fonction totale d'Euler de N.

Où les primes entrent-elles dans cela? Pour calculer efficacement la fonction totale de N de Euler, il faut connaître la factorisation première de N. Dans le cas de l'algorithme RSA, où N = pq pour certains nombres premiers "p" et "q", alors e = (p - 1) (q - 1) = N - p - q + 1. Mais sans connaître p et q, le calcul de e est très difficile.

Plus abstraitement, de nombreux protocoles cryptographiques utilisent diverses fonctions de Trapdoor , fonctions faciles à calculer mais difficiles à inverser. La théorie des nombres est une source riche de fonctions de Trapdoor (telles que la multiplication de grands nombres premiers), et les nombres premiers sont absolument essentiels à la théorie des nombres.

9
Eric

Je suggérerais le livre n voyage mathématique dans le code . Le livre a un toucher terre à terre, ce qui est surprenant, car il s’agit de cryptographie. Le livre résume le parcours de Sarah Flannery, passant de l'apprentissage des casse-tête enfant à la création de l'algorithme Cayley-Purser (CP) à l'âge de 16 ans. Il fournit une explication étonnamment détaillée des fonctions à sens unique, de la théorie des nombres et des nombres premiers, ainsi que de leur relation avec cryptographie.

Ce qui rend ce livre encore plus spécifique à votre question, c'est que Sarah a essayé d'implémenter un nouvel algorithme à clé publique en utilisant la matrice. C'était beaucoup plus rapide que d'utiliser des nombres premiers, mais un trou de boucle pouvant l'exploiter a été trouvé. Il s'avère que son algorithme était mieux utilisé comme mécanisme de cryptage privé. Le livre est un excellent témoignage de l’utilisation de nombres premiers pour le cryptage, car il a résisté à l’épreuve du temps et aux défis posés par des individus très intelligents.

7
Jason Rowe

Une ressource de plus pour vous. Security Now! Episode (balado d'environ 30 minutes, le lien renvoie à la transcription) traite des problèmes de cryptographie et explique pourquoi les nombres premiers sont importants.

6
Bill the Lizard

Je ne suis ni mathématicien ni crypticien, alors voici une observation extérieure en termes simples (pas d'équations fantaisistes, désolé).

Tout ce fil est rempli d'explications sur COMMENT les nombres premiers sont utilisés en cryptographie, il est difficile de trouver quelqu'un dans ce fil expliquant facilement POURQUOI les nombres premiers sont utilisés ... probablement parce que tout le monde prend cette connaissance pour acquise.

Seul le fait de regarder le problème de l'extérieur peut générer une réaction semblable à celle-ci; mais s'ils utilisent les sommes de deux nombres premiers, pourquoi ne pas créer une liste de toutes les sommes possibles que deux nombres premiers peuvent générer?

Sur ce site il y a une liste de 455,042,511 nombres premiers, où le nombre le plus élevé est 9 987 500 000 ( 10 chiffres).

Le plus grand nombre connu (à compter de février 2015) est 2 à la puissance de 257 885 161 - 1 qui est 17,425,170 chiffres.

Cela signifie qu’il est inutile de conserver une liste de tous les nombres premiers connus et encore moins de toutes leurs sommes possibles. Il est plus facile de prendre un numéro et de vérifier s'il s'agit d'un nombre premier.

Calculer de gros nombres premiers est en soi une tâche monumentale, donc calculer inversement deux nombres premiers qui ont été multipliés l'un avec l'autre à la fois par les cryptographes et les mathématiciens diraient que c'est assez difficile ... aujourd'hui.

5
Calmo

Les algorithmes cryptographiques reposent généralement sur un "problème difficile" pour leur sécurité. La plupart des algorithmes modernes semblent utiliser la factorisation de très grands nombres comme problème difficile - si vous multipliez deux grands nombres ensemble, le calcul de leurs facteurs est "difficile" (c'est-à-dire fastidieux). Si ces deux nombres sont des nombres premiers, alors il n'y a qu'une seule réponse, ce qui rend la tâche encore plus difficile et garantit également que lorsque vous trouvez la réponse, c'est la bonne, pas une autre réponse qui arrive à donner le même résultat.

4
gkrogers

Je pense que ce qui est important en cryptographie ne sont pas les nombres premiers, mais la difficulté de problème de la factorisation des nombres premiers

Supposons que vous ayez un très grand entier qui est connu pour être le produit de deux nombres premiers m et n, il n'est pas facile de trouver ce que sont m et n. Un algorithme tel que RSA dépend de ce fait.

Soit dit en passant, il existe un algorithme article publié qui peut "résoudre" ce problème de factorisation initiale en un temps acceptable à l'aide d'un ordinateur quantique. Ainsi, les algorithmes les plus récents en cryptographie pourraient ne plus compter sur cette "difficulté" de la factorisation initiale lorsque l'ordinateur quantique arrivera en ville :)

4
Gant

Parce que les algorithmes de factorisation accélèrent considérablement avec chaque facteur trouvé. Rendre les deux clés privées principales assure que le premier facteur trouvé sera également le dernier. Idéalement, les deux clés privées auront également une valeur presque égale car seule la force de la clé la plus faible compte.

3
Michael