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
, 
, 
4
, 
[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- . . ,
, , . , .
.
( )
,
.
,
, . .
.
(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.
:
.
DJ Bernstein. Especificación Cubehash (2.b.1)
Vikash Jha. Criptoanálisis de Cubehash.
Philip Doughty Jr. Un ataque genérico a CubeHash, un candidato SHA-3.
Benjamin Bloom y Alan Kaminsky. Ataques de bloque único y pruebas estadísticas en CubeHash.
DJ Bernstein. Ajuste del parámetro CubeHash: 16 veces más rápido.