En criptografia, els nombres que no s'amaguen sota la màniga són aquells nombres que, per la seva construcció, estan per sobre de tota sospita de propietats ocultes. S'utilitzen per crear funcions criptogràfiques com ara hashes i xifratges. Aquests algoritmes sovint necessiten constants aleatòries per a la barreja o l'inicialització. El criptògraf pot voler triar aquests valors d'una manera que demostri que les constants no es van seleccionar per a un propòsit nefast, per exemple, per crear una porta del darrere a l'algoritme. Aquestes pors es poden alleujar utilitzant nombres creats d'una manera que deixi poc marge d'ajust. Un exemple seria l'ús de dígits inicials del nombre com a constants. L'ús de dígits de milions de llocs després del punt decimal no es consideraria fiable perquè el dissenyador de l'algoritme podria haver seleccionat aquest punt de partida perquè va crear una debilitat secreta que el dissenyador podria explotar més tard, tot i que fins i tot amb seleccions aparentment naturals, existeix prou entropia en les possibles opcions que la utilitat d'aquests nombres s'ha qüestionat.
Es creu que els dígits en les representacions posicionals de nombres reals com ara , e i les arrels irracionals apareixen amb la mateixa freqüència (vegeu nombre normal). Aquests nombres es poden veure com l'extrem oposat dels nombres aleatoris de Chaitin-Kolmogorov, ja que semblen aleatoris però tenen una entropia d'informació molt baixa. El seu ús està motivat per la controvèrsia inicial sobre l'estàndard de xifratge de dades del govern dels Estats Units de 1975, que va ser criticat perquè no es va proporcionar cap explicació per a les constants utilitzades a la seva caixa S (tot i que més tard es va descobrir que havien estat seleccionades acuradament per protegir contra la tècnica classificada aleshores de criptoanàlisi diferencial).Bruce Schneier. Applied Cryptography, second edition, John Wiley and Sons, 1996, p. 289 "...the ones in DES just happened to be optimized against differential cryptanalysis...". Per tant, es va sentir la necessitat d'una manera més transparent de generar constants utilitzades en criptografia.miniatura|Targeta que estava amagada en una màniga"Res a la màniga" és una frase associada amb els mags, que de vegades precedeixen un truc de màgia mantenint les mànigues obertes per mostrar que no tenen cap objecte amagat a dins.
Exemples Ron Rivest va utilitzar pi per generar la caixa S del hash MD2. Ron Rivest va utilitzar la funció sinusoidal trigonomètrica per generar constants per al hash MD5, àmpliament utilitzat. L'Agència de Seguretat Nacional dels Estats Units va utilitzar les arrels quadrades dels primers vuit nombres enters primers per produir les constants de hash en les seves funcions "Secure Hash Algorithm", SHA-1 i SHA-2.FIPS 180-2: Secure Hash Standard (SHS) (PDF, 236 kB) – Current version of the Secure Hash Standard (SHA-1, SHA-224, SHA-256, SHA-384, and SHA-512), 1 August 2002, amended 25 February 2004 SHA-1 també utilitza 0123456789ABCDEFFEDCBA9876543210F0E1D2C3 com a valor de hash inicial. L'algoritme de xifratge Blowfish utilitza la representació binària de − 3 per inicialitzar la seva programació de claus. L'RFC 3526 descriu els nombres primers per a l'intercanvi de claus d'Internet que també es generen a partir de . La caixa S del xifratge NewDES deriva de la Declaració d'Independència dels Estats Units. El candidat AES DFC deriva totes les seves constants arbitràries, incloent-hi totes les entrades de la caixa S, de l'expansió binària de . La programació de claus ARIA utilitza l'expansió binària d'1/ . La programació de claus del xifratge RC5 utilitza dígits binaris tant de com de la proporció àuria. Diversos xifrats, inclosos TEA i Red Pike, utilitzen 2654435769 o 0x9e3779b9, que és , on φ és la proporció àuria. La funció hash BLAKE, finalista del concurs SHA-3, utilitza una taula de 16 paraules constants que són els 512 o 1024 bits principals de la part fraccionària de . La programació de claus del xifratge KASUMI utilitza 0x123456789ABCDEFFEDCBA9876543210 per derivar la clau modificada. La família de xifrats Salsa20 utilitza la cadena ASCII "expand 32-byte k" o "expand 16-byte k" com a constants en el seu procés d'inicialització de blocs. OpenBSD Bcrypt utilitza la cadena "OrpheanBeholderScryDoubt" com a cadena d'inicialització.
Contraexemples Es deia que la funció hash S-box de Streebog es generava aleatòriament, però es va aplicar enginyeria inversa i es va demostrar que es generava algorítmicament amb algunes debilitats "desconcertants". L'estàndard de xifratge de dades (DES) té constants que va ser proporcionat per la NSA. Va resultar que eren lluny de ser aleatòries, però en canvi van fer que l'algoritme fos resistent a la criptoanàlisi diferencial, un mètode que no es coneixia públicament en aquell moment.Bruce Schneier. Applied Cryptography, second edition, John Wiley and Sons, 1996, p. 289 "...the ones in DES just happened to be optimized against differential cryptanalysis...". Dual_EC_DRBG, un generador de bits pseudoaleatoris criptogràfics recomanat pel NIST, va ser criticat el 2007 perquè les constants recomanades per al seu ús en l'algoritme podrien haver estat seleccionades de manera que permetés al seu autor predir sortides futures donada una mostra de valors generats en el passat. El setembre de 2013, The New York Times va escriure que "memorandums interns filtrats per un excontractista de la NSA, Edward Snowden, suggereixen que la NSA va generar un dels generadors de nombres aleatoris utilitzats en un estàndard NIST del 2006, anomenat estàndard Dual EC DRBG, que conté una porta del darrere per a la NSA". ANSSI FRP256v1 utilitza paràmetres totalment inexplicables.
Manipulable, però no trivialment ANSI X9.62 afirma utilitzar una selecció anomenada "verificablement aleatòria" de corbes el·líptiques. De fet, això és només el resultat d'aplicar una funció hash criptogràfica a qualsevol dada, i és pseudoaleatòria en el millor dels casos. La seva suposada resistència a la manipulació rau únicament en la resistència de la funció hash escollida a un atac de preimatge, és a dir, la relativa dificultat de produir una dada que executi un hash a un valor determinat. Tot i així, el conjunt d'espai d'opcions possibles roman sense restriccions; és concebible que un adversari pugui provar molts valors generats aleatòriament fins que en trobi un amb una propietat explotable. De fet, tot i que els estàndards IEEE P1363 i NIST 186 havien heretat aquestes corbes, minimitzen les afirmacions associades al procediment de generació.
Els paràmetres més utilitzats d'aquesta classe són les corbes P del NIST per a la criptografia de corbes el·líptiques. Els coeficients d'aquestes corbes es generen aplicant SHA-1 a llavors aleatòries inexplicables, com ara:
P-224: bd713447 99d5c7fc dc45b59f a3b9ab8f 6a948bc5. P-256: c49d3608 86e70493 6a6678e1 139d26b7 819f7e90. P-384: a335926a a319a27a 1d00896a 6773a482 7acdac73.
Dit això, aquest mètode anterior millora simplement proporcionant un valor i afirmant que es "genera repetidament aleatòriament" fins que es compleix una determinada propietat (per exemple, el nombre de punts d'una corba), que és l'explicació no verificable proporcionada per a les corbes el·líptiques proporcionades per la NSA que X9.62 va intentar substituir mitjançant aquest mètode. Aquest tipus d'explicacions donen lloc a corbes "trivialment manipulables".
L'exposició de Dual_EC_DRBG va despertar un renovat interès per analitzar les explicacions proporcionades amb els paràmetres de la corba el·líptica. En aquest context, l'explicació proporcionada per a les corbes P es va considerar inadequada: fins i tot més enllà del problema no del tot aleatori anterior, la seva elecció d'altres paràmetres "per raons d'eficiència" es va demostrar que no era òptima atesa la investigació més recent, tot i que encara estava majoritàriament en línia amb el que es coneix públicament sobre la implementació eficient d'ECC en aquell moment. No hi ha proves sobre la presència o absència d'una porta del darrere a les corbes P, però les explicacions incompletes sí que susciten preocupació. A la pràctica, molts protocols han permès des de llavors substituir P-256 per Curve25519, una corba més nova amb paràmetres millor explicats i en una forma fàcil d'implementar de manera ràpida i correcta. SafeCurves, de Bernstein, proporciona una anàlisi de diverses corbes relativament populars (de l'època) i identifica quines comparteixen les "bones" característiques de Curve25519.
Limitacions Bernstein i els seus coautors demostren que l'ús de nombres que no s'amaguen com a punt de partida en un procediment complex per generar objectes criptogràfics, com ara corbes el·líptiques, pot no ser suficient per evitar la inserció de portes del darrere. Per exemple, existeixen molts candidats a constants matemàtiques simples aparentment inofensives i "poc interessants", com ara π, e, gamma d'Euler, √2, √3, √5, √7, log(2), (1 + √5)/2, ζ(3), ζ(5), sin(1), sin(2), cos(1), cos(2), tan(1) o tan(2). Per a cadascuna d'aquestes constants, també hi ha diverses representacions binàries diferents per triar. Si s'utilitza una constant com a llavor aleatòria, també existeix un gran nombre de candidats a funcions hash per a la selecció, com ara SHA-1, SHA-256, SHA-384, SHA-512, SHA-512/256, SHA3-256 o SHA3-384.
Si hi ha prou paràmetres ajustables en el procediment de selecció d'objectes, l'explosió combinatòria garanteix que l'univers de possibles opcions i de constants aparentment simples pugui ser prou gran perquè una cerca automàtica de les possibilitats permeti la construcció d'un objecte amb les propietats desitjades de porta del darrere.How to manipulate curve standards: a white paper for the black hat Daniel J. Bernstein, Tung Chou, Chitchanok Chuengsatiansup, Andreas Hu ̈lsing, Eran Lambooij, Tanja Lange, Ruben Niederhagen, and Christine van Vredendaal, September 27, 2015, accessed June 4, 2016
Referències
Categoria:Criptografia