AccueilđŸ‡«đŸ‡·Chercher

Nombre rien-dans-la-manche

Les nombres rien-dans-la-manche (en anglais : nothing-up-my-sleeve number) sont des nombres utilisĂ©s en cryptographie dont la dĂ©finition leur Ă©vite d'ĂȘtre soupçonnĂ©s d'avoir des propriĂ©tĂ©s cachĂ©es. La formule est empruntĂ©e au monde de la prestidigitation, lorsque le magicien montre qu'il ne cache pas de carte dans sa manche avant son tour.

Carte dissimulée dans une manche.

Description

Ces nombres sont utilisés dans la spécification de fonctions cryptographiques telles que les fonctions de hachage et les algorithmes de chiffrement, qui ont souvent besoin de constantes arbitraires, explicitement définies, par exemple pour initialiser leur état ou effectuer une permutation initiale sur leur entrée.

On peut alors choisir les valeurs de ces constantes afin qu'il soit Ă©vident qu'elles n'aient pas pu ĂȘtre manipulĂ©es dans un but nĂ©faste, par exemple, pour crĂ©er une porte dĂ©robĂ©e Ă  l'algorithme[1]. En utilisant des nombres connus d'avance ou crĂ©Ă©s d'une maniĂšre qui laisse peu de place possible Ă  l'ajustement ou la manipulation, on peut ainsi dissiper de tels soupçons.

Par exemple, on peut utiliser comme constante initiale un nombre formĂ© des 10 premiĂšres dĂ©cimales de π[2]. Un algorithme qui l'utilise dans sa dĂ©finition sera vu comme plus digne de confiance qu'un autre qui utiliserait les dĂ©cimales de π Ă  partir de la 10 294 317e dĂ©cimale. En effet, dans le dernier cas, le concepteur de l'algorithme aurait pu sĂ©lectionner spĂ©cifiquement ce point de dĂ©part pour que le nombre choisit affaiblisse les propriĂ©tĂ©s de la fonction, ce que le concepteur pourrait ensuite exploiter. Leur utilisation est motivĂ©e par une controverse qui a rapidement fait surface autour du Data Encryption Standard, un standard de chiffrement publiĂ© par le gouvernement amĂ©ricain en 1975. Sa dĂ©finition fit l'objet de critiques; en effet aucune explication n'avait Ă©tĂ© fournie pour les constantes utilisĂ©es dans ses tables de substitutions (ou S-box).

On supposa alors que ces constantes avaient été choisies par la NSA pour rendre les messages chiffrés avec ce standard plus faciles à décrypter. Plus tard, il fut découvert tard qu'elles avaient effectivement été soigneusement sélectionnées, non pas pour affaiblir, mais pour renforcer l'algorithme contre une technique de cryptanalyse encore tenue secrÚte à l'époque : la cryptanalyse différentielle[3]. Toutefois, à la suite de cette controverse, il apparut comme nécessaire d'user de plus de transparence dans le choix des constantes pour les standards cryptographiques.

On conjecture que, dans la reprĂ©sentation en notation positionnelle (dans une base quelconque) de nombre rĂ©els tels que π, e ou les racines carrĂ©es, tous les chiffres apparaissent Ă  la mĂȘme frĂ©quence (ce sont des nombres normaux ). Ces nombres peuvent ĂȘtre considĂ©rĂ©s comme l'opposĂ© des nombres alĂ©atoires au sens de Chaitin-Kolmogorov, puisque la suite de leur chiffres est d'aspect alĂ©atoire mais ils ont une entropie d'information trĂšs faible. Ces nombres sont donc des candidats idĂ©aux pour gĂ©nĂ©rer des suites de chiffres au-dessus de tout soupçon.

Exemples

  • Ronald Rivest utilisa la fonction sinus pour gĂ©nĂ©rer les constantes de la fonction de hachage MD5[4].
  • La National Security Agency aux États-Unis utilisa des racines carrĂ©es de petits nombres entiers pour produire les constantes utilisĂ©es dans l'algorithme SHA-1 . Les fonctions SHA-2 utilisent les racines carrĂ©es et les racines cubiques des petits nombres premiers[5]. SHA-1 utilise Ă©galement le nombre hexadĂ©cimal 0123456789ABCDEFFEDCBA9876543210F0E1D2C3 comme valeur de hachage initiale.
  • L'algorithme de chiffrement Blowfish utilise la reprĂ©sentation binaire de π (sans le 3 initial) pour initialiser l'Ă©tape de prĂ©paration des clĂ©s[2].
  • La RFC 3526[6] spĂ©cifie des nombres premiers pour le protocole Internet Key Exchange qui sont Ă©galement gĂ©nĂ©rĂ©s Ă  partir de π.
  • La S-box de l'algorithme de chiffrement NewDES est dĂ©rivĂ©e de la dĂ©claration d'indĂ©pendance des États-Unis[7].
  • L'algorithme DFC, candidat au standard de chiffrement AES, dĂ©rive toutes ses constantes arbitraires, y compris toutes les entrĂ©es de la S-box, Ă  partir du dĂ©veloppement binaire de e[8].
  • Le schĂ©ma de clĂ© ARIA utilise le dĂ©veloppement binaire de 1/ π[9].
  • Le schĂ©ma de clĂ© du chiffrement RC5 utilise des chiffres binaires provenant Ă  la fois de e et du nombre d'or[10].
  • Plusieurs algorithmes de chiffrement, par exemple TEA et Red Pike, utilisent 2654435769 ou 0x9e3779b9 qui est ⌊2 32 / ϕ ⌋, oĂč ϕ est le nombre d'or.
  • La fonction de hachage BLAKE, finaliste du concours SHA-3, utilise une table de 16 mots constants qui sont les 512 ou 1024 bits de initiaux de la partie dĂ©cimale de π .
  • Le schĂ©ma de clĂ© de l'algorithme KASUMI utilise 0x123456789ABCDEFFEDCBA9876543210 pour dĂ©river la clĂ© modifiĂ©e.
  • La famille de chiffrements Salsa20 utilise la chaĂźne ASCII "expand 32-byte k" comme constantes dans son processus d'initialisation de bloc.

Contre-exemples

  • La S-box de la fonction de hachage Streebog Ă©tait censĂ©e avoir Ă©tĂ© gĂ©nĂ©rĂ©e de maniĂšre alĂ©atoire, mais, aprĂšs Ă©tude. s'est avĂ©rĂ©e avoir Ă©tĂ© gĂ©nĂ©rĂ©e de maniĂšre algorithmique et avoir quelques faiblesses « surprenantes[11] ».
  • Le Data Encryption Standard (DES) a des constantes donnĂ©es par la NSA. Ils se sont rĂ©vĂ©lĂ©s ĂȘtre loin d'ĂȘtre alĂ©atoires, ayant Ă©tĂ© sĂ©lĂ©ctionĂ©es pour que l'algorithme rĂ©siste Ă  la cryptanalyse diffĂ©rentielle, une mĂ©thode non connue du public Ă  l'Ă©poque[3].
  • Dual_EC_DRBG, un gĂ©nĂ©rateur de bits pseudo-alĂ©atoires cryptographiques recommandĂ© par le NIST, a fait l'objet de critiques en 2007 parce que les constantes recommandĂ©es pour une utilisation dans l'algorithme auraient pu ĂȘtre sĂ©lectionnĂ©es de maniĂšre Ă  permettre Ă  leur auteur de prĂ©dire les sorties futures Ă  partir d'un Ă©chantillon de valeurs gĂ©nĂ©rĂ©es par le passĂ©[1]. En septembre 2013, d'aprĂšs le New York Times, « des mĂ©mos internes divulguĂ©s par un ancien sous-traitant de la NSA, Edward Snowden, suggĂšrent que la NSA a gĂ©nĂ©rĂ© l'un des gĂ©nĂ©rateurs de nombres alĂ©atoires utilisĂ©s dans une norme NIST de 2006 - appelĂ©e la norme Dual EC DRBG - qui contient une porte dĂ©robĂ©e pour la NSA[12] ».
  • Les courbes P sont normalisĂ©es par le NIST pour la cryptographie des courbes elliptiques . Les coefficients de ces courbes sont gĂ©nĂ©rĂ©s en hachant des graines alĂ©atoires inexpliquĂ©es, telles que :
    • P-224 : bd713447 99d5c7fc dc45b59f a3b9ab8f 6a948bc5 .
    • P-256 : c49d3608 86e70493 6a6678e1 139d26b7 819f7e90 .
    • P-384 : a335926a a319a27a 1d00896a 6773a482 7acdac73 .

Bien qu'ils ne soient pas directement liés, aprÚs que la porte dérobée dans Dual EC DRBG ait été exposée, des aspects suspects des constantes de la courbe P du NIST[13] ont fait craindre[14] que la NSA ait choisi des valeurs qui leur donnaient un avantage pour trouver[15] des clés privées[16]. Depuis lors, de nombreux protocoles et programmes ont commencé à utiliser la courbe 25519 comme alternative à la courbe NIST P-256.

Limites

Bernstein et collĂšgues[17] dĂ©montrent que l'utilisation de nombres rien-dans-la-manche comme point de dĂ©part d'une procĂ©dure cryptographique complexe (par exemple les courbes elliptiques) peut ne pas ĂȘtre suffisante pour empĂȘcher l'insertion de portes dĂ©robĂ©es. En effet, il y aurait un espace suffisamment large de constantes "insoupçonnables"parmi lesquelles choisir pour qu'on puisse en trouver une ayant des propriĂ©tĂ©s de portes dĂ©robĂ©es souhaitĂ©es.

Notes et références

  1. (en) Bruce Schneier, « Did NSA Put a Secret Backdoor in New Encryption Standard? », Wired News,‎ (lire en ligne).
  2. (en) Bruce Schneier, « Description of a New Variable-Length Key, 64-Bit Block Cipher (Blowfish) », Fast Software Encryption, Cambridge Security Workshop Proceedings (December 1993), Springer-Verlag,‎ , p. 191-204 (lire en ligne).
  3. (en) Bruce Schneier, Applied Cryptography, John Wiley and Sons, , 2e Ă©d., p. 278.
  4. (en) « 3.4 Step 4. Process Message in 16-Word Blocks », Request for comments no 1321.
  5. (en) « FIPS 180-2: Secure Hash Standard (SHS) », Current version of the Secure Hash Standard (SHA-1, SHA-224, SHA-256, SHA-384, and SHA-512), csrc.nist.gov,‎ 1 aoĂ»t 2002, modifiĂ© 25 fĂ©vrier 2004 (lire en ligne [PDF]).
  6. (en) Request for comments no 3526.
  7. (en) Robert Scott, « Revision of NEWDES », .
  8. Henri Gilbert, M. Girault, P. Hoogvorst, F. Noilhan, T. Pornin, G. Poupard, J. Stern et S. Vaudenay, « Decorrelated Fast Cipher: an AES candidate » [PDF/PostScript], .
  9. (en) 1= Alex Biryukov, C. De CanniĂšre, J. Lano, B. Preneel et S. B. Örs, Security and Performance Analysis of ARIA (rapport interne du COSIC - Version 1.2—Final Report), dĂ©partement du gĂ©nie Ă©lectrique, KU Leuven, (lire en ligne [PDF]).
  10. (en) R. L. Rivest « The RC5 Encryption Algorithm » () (lire en ligne)
    — « (ibid.) », dans Proceedings of the Second International Workshop on Fast Software Encryption (FSE) 1994e, p. 86-96
  11. (en) Alex Biryukov, LĂ©o Perrin et Aleksei Udovenko, « Reverse-Engineering the S-box of Streebog, Kuznyechik and STRIBOBr1 (Full Version) », Iacr-Eurocrypt-2016,‎ (DOI 10.1007/978-3-662-49890-3_15, lire en ligne)
  12. (en) Nicole Perlroth, « Government Announces Steps to Restore Confidence on Encryption Standards », The New York Times,‎ (lire en ligne, consultĂ© le )
  13. (en) « SafeCurves: Introduction »
  14. Gregory Maxwell, « [tor-talk] NIST approved crypto in Tor? », sur lists.torproject.org, (consulté le )
  15. « SafeCurves: Rigidity », sur safecurves.cr.yp.to (consulté le )
  16. « The NSA Is Breaking Most Encryption on the Internet - Schneier on Security », www.schneier.com (consulté le )
  17. (en) Daniel J. Bernstein, Tung Chou, Chitchanok Chuengsatiansup, Andreas Hu ̈lsing, Eran Lambooij, Tanja Lange, Ruben Niederhagen et Christine van Vredendaal, « How to manipulate curve standards: a white paper for the black hat », Conference paper,‎ (lire en ligne [PDF], consultĂ© le ).
Cet article est issu de wikipedia. Text licence: CC BY-SA 4.0, Des conditions supplĂ©mentaires peuvent s’appliquer aux fichiers multimĂ©dias.