AccueilđŸ‡«đŸ‡·Chercher

NTRUEncrypt

Le systÚme de cryptographie asymétrique NTRUEncrypt, aussi connu comme l'algorithme de chiffrement NTRU, est une alternative au chiffrement RSA et à la cryptographie sur les courbes elliptiques reposant sur des hypothÚses sur les réseaux euclidiens et en particulier sur le problÚme du plus court vecteur (en) (dont il n'existe pas en 2016 d'attaques par un ordinateur quantique). Les opérations sont effectuées dans un anneau de polynÎmes tronqués muni du produit de convolution.

Ce cryptosystÚme a été proposé en 1996 par Hoffstein, Pipher et Silverman[1].

Histoire

Le cryptosystĂšme NTRUEncrypt est relativement rĂ©cent. Sa premiĂšre version, simplement appelĂ©e NTRU, a Ă©tĂ© dĂ©veloppĂ©e en 1996 par trois mathĂ©maticiens (Jeffrey Hoffstein, Jill Pipher et Joseph H. Silverman), qui, avec Daniel Lieman, ont fondĂ© la mĂȘme annĂ©e NTRU Cryptosystems et brevetĂ© ce systĂšme.

Depuis sa premiÚre présentation, des changements ont été apportés pour améliorer ses performances, notamment la vitesse, et sa sécurité. Les concepteurs ont réagi aux descriptions de failles de sécurité de NTRUEncrypt en introduisant de nouveaux paramÚtres plus fiables par rapport aux attaques connues et augmentant raisonnablement la puissance de calcul.

De 2008 à 2019, ce cryptosystÚme a fait partie de la norme IEEE P1363 .1 (cryptographie à clé publique basée sur les réseaux).

Depuis , NTRUEncrypt fait partie du standard ANSI X9.98, pour usage dans l'industrie des services financiers.

Il est un des candidats Ă  la normalisation par le NIST dans l'initiative de cryptographie post-quantique, oĂč il a dĂ©jĂ  rĂ©ussi 3 sĂ©lections[2].

GrĂące Ă  sa vitesse et Ă  sa faible consommation de mĂ©moire[3], ce cryptosystĂšme peut ĂȘtre utilisĂ© pour des applications telles que les appareils mobiles ou les Smart-cards.

Construction

Le cryptosystÚme NTRUEncrypt est paramétré par un triplet d'entiers (N,p,q) avec p et q premiers entre eux. Une liste de paramÚtres donnés dans la proposition au NIST sera donnée plus loin.

Les éléments modulo p (respectivement q) sont donnés dans l'ensemble [-p/2, p/2[ (respectivement [-q/2, q/2[) au lieu de la représentation usuelle entre [0, p-1] (respectivement [0, q-1] dans la suite.

GĂ©nĂ©ration d’une paire de clĂ©s

La génération de la paire de clés de chiffrement et de déchiffrement se fait de la maniÚre suivante. Des polynÎmes f et g dans à coefficients dans {-1,0,1} sont tirés uniformément au hasard. Si f n'est pas inversible dans et (ce qui peut se vérifier par l'algorithme d'Euclide sur les polynÎmes), alors on en tire un autre jusqu'à ce que cette propriété soit vérifiée. Les inverses de f modulo p et q sont notés et respectivement.

On calcule ensuite .

La clé publique de chiffrement est définie comme h et la clé privée de déchiffrement par f, et g.

Chiffrement

Pour chiffrer un message m encodĂ© comme un polynĂŽme de degrĂ© N Ă  coefficients dans [-p/2, p/2[ (et donc de longueur ), on procĂšde comme suit. À l'aide de la clĂ© de chiffrement h, on tire un polynĂŽme r Ă  petits coefficients (il s'agit d'une valeur qui sert Ă  masquer le message) puis on calcule de chiffrĂ© .

DĂ©chiffrement

Étant donnĂ© un chiffrĂ© c obtenu par l'algorithme prĂ©cĂ©dent et les clĂ©s de dĂ©chiffrement f, g et , on peut dĂ©chiffrer le message en effectuant les opĂ©rations suivantes.

On commence par calculer la valeur :

On remarque alors que :

Comme est l'inverse de f modulo q, alors :

Ainsi , et en calculant , on obtient , dont les coefficients appartiennent déjà à [-p/2, p/2[, on retrouve bien le message m.

Sécurité et performances

La soumission au troisiÚme round de la compétition du NIST propose les jeux de paramÚtres suivants[4] :

Sécurité[5] N p q Taille de la clé publique ou du chiffré[6] (en octets)
128 bits 509 3 2 048 699
192 bits 701 3 8 192 1 138
192 bits 677 3 2 048 931
256 bits 821 3 4 096 1 230

Ici la colonne « Sécurité » désigne une taille de clés dans un chiffrement par blocs pour laquelle la puissance de calcul nécessaire à une attaque serait équivalente.

Notes et références

(en) Cet article est partiellement ou en totalitĂ© issu de l’article de WikipĂ©dia en anglais intitulĂ© « NTRUEncrypt » (voir la liste des auteurs).
  1. (en) Jeffrey Hoffstein, Jill Pipher et Joseph H. Silverman, « NTRU: A ring-based public key cryptosystem », Algorithmic Number Theory Symposium (ANTS),‎ (DOI 10.1007/BFb0054868).
  2. (en) Liste des candidats à l’appel à standardisation pour la cryptographie post-quantique du NIST (Round 3).
  3. « Introduction », sur yp.to (consulté le ).
  4. (en) NTRU Algorithm Specications And Supporting Documentation
  5. (en) CritÚres d'évaluation de sécurité du NIST pour la standardisation des cryptosystÚmes post-quantiques
  6. Pour la taille de la clĂ© publique ou du chiffrĂ©, elle est donnĂ©e dans une colonne unique comme les deux Ă©lĂ©ments vivent dans le mĂȘme ensemble ().

Bibliographie

Cet article est issu de wikipedia. Text licence: CC BY-SA 4.0, Des conditions supplĂ©mentaires peuvent s’appliquer aux fichiers multimĂ©dias.