CubeHash

Introducción

Una función hash criptográfica es un conjunto de pasos que le permiten convertir un bloque arbitrario de datos en una secuencia de longitud fija. Cualquier cambio en los datos de entrada conduce a un cambio en el valor de la función. Las funciones hash se utilizan para calcular sumas de comprobación, al generar una firma electrónica, al almacenar contraseñas en sistemas de seguridad en forma de código hash, etc.





La familia de funciones hash CubeHash se propuso como el nuevo estándar SHA-3 en la competencia de hash del Instituto Nacional de Estándares y Tecnología (NIST) de 2009 .





Este artículo describe cómo funciona esta familia y también analiza la solidez del algoritmo ante varios ataques.





Descripción del algoritmo

El siguiente es un algoritmo de trabajo según la especificación [1].





El funcionamiento del algoritmo está determinado por 3 parámetros:





  • - el tamaño de la secuencia de salida en bits,





  • - el número de rondas,





  • - el tamaño de los bloques del mensaje de entrada en bytes,





La idea del algoritmo es transformar secuencialmente el estado según la secuencia de entrada. El algoritmo consta de 5 pasos:





  • inicialización del estado interno





  • dividir un mensaje en bloques





  • transformación de estado iterativa













.





32 - ( little-endian).





3 . . .





. . . .





. . .





1, .





.





F

, , , . 10 :









  1. ,





  2. ,





  3. ,





  4. ,





  5. 1





  6. ,





  7. ,





  8. 4





  9. ,









[2]:





-

:





  • : - .





  • : 2 .





-, , - , , , .





CubeHash

, . .. , , .





50% . . , 128 [3].





. . , . . , 64 [3].





.





[4] , , .





. ( ), . , , .





, , , . , , , [2]. , , , .





F

128- [2]. 15 :









AABBCCDD





EEFFGGHH





IIJJKKLL





MMNNOOPP









ABABCDCD





EFEFGHGH





IJIJKLKL





MNMNOPOP









ABBACDDC





EFFEGHHG





IJJIKLLK





MNNMOPPO









ABCDABCD





EFGHEFGH





IJKLIJKL





MNOPMNOP









ABCDBADC





EFGHFEHG





IJKLJILK





MNOPNMPO









ABCDCDAB





EFGHGHEF





IJKLKLIJ





MNOPOPMN









ABCDDCBA





EFGHHGFE





IJKLLKJI





MNOPPONM









ABCDEFGH





ABCDEFGH





IJKLMNOP





IJKLMNOP









ABCDEFGH





BADCFEHG





IJKLMNOP





JILKNMPO









ABCDEFGH





CDABGHEF





IJKLMNOP





KLIJOPMN









ABCDEFGH





DCBAHGFE





IJKLMNOP





LKJIPONM









ABCDEFGH





EFGHABCD





IJKLMNOP





MNOPIJKL









ABCDEFGH





FEHGBADC





IJKLMNOP





NMPOJILK









ABCDEFGH





GHEFCDAB





IJKLMNOP





OPMNKLIJ









ABCDEFGH





HGFEDCBA





IJKLMNOP





PONMLKJI









32- . . , , , . , .





.









  • ( )





  • ,





  • .





  • ,





, 2 ^ {501}. . 2 ^ {256}.





(cycle per byte cpb). , 1 .





SHA-256, SHA-512 CubeHash16/32 Intel Core 2Duo 6f6 (a) Intel Core 2 Duo E8400 1067a (b) [5]:





  • 11.47 cpb: CubeHash 16/32, (b), amd64 architecture.





  • 12.60 cpb: SHA-512, (b), amd64 architecture.





  • 12.60 cpb: SHA-512, (a), amd64 architecture.





  • 12.66 cpb: CubeHash 16/32, (a), amd64 architecture.





  • 12.74 cpb: CubeHash 16/32, (b), x86 architecture.





  • 14.07 cpb: CubeHash 16/32, (a), x86 architecture.





  • 15.43 cpb: SHA-256, (b) x86 architecture.





  • 15.53 cpb: SHA-256, (b), amd64 architecture.





  • 15.56 cpb: SHA-256, (a), amd64 architecture





  • 17.76 cpb: SHA-512, (b), x86 architecture.





  • 20.00 cpb: SHA-512, (a), x86 architecture





  • 22.76 cpb: SHA-256, (a), x86 architecture





CubeHash SHA-3 -, NIST. Cubehash , . , CubeHash , .





. , CubeHash 8 / 1-512 CubeHash 1 / 1-512, CubeHash 1 / 1-512 , CubeHash 1 / 2-512. - CubeHash 1/128- h.





: .





  1. DJ Bernstein. Especificación Cubehash (2.b.1)





  2. Vikash Jha. Criptoanálisis de Cubehash.





  3. Philip Doughty Jr. Un ataque genérico a CubeHash, un candidato SHA-3.





  4. Benjamin Bloom y Alan Kaminsky. Ataques de bloque único y pruebas estadísticas en CubeHash.





  5. DJ Bernstein. Ajuste del parámetro CubeHash: 16 veces más rápido.












All Articles