Einführung
Eine kryptografische Hash-Funktion besteht aus einer Reihe von Schritten, die einen beliebigen Datenblock in eine Sequenz fester Länge umwandeln. Jede Änderung der Eingabedaten führt zu einer Änderung des Funktionswerts. Hash-Funktionen werden verwendet, um Prüfsummen zu berechnen, wenn eine elektronische Signatur generiert wird, wenn Passwörter in Sicherheitssystemen in Form eines Hash-Codes usw. gespeichert werden.
Die Hash-Funktionen der CubeHash- Familie wurden im Hash-Wettbewerb des Nationalen Instituts für Standards und Technologie (NIST) 2009 als neuer SHA-3-Standard vorgeschlagen .
Dieser Artikel beschreibt das Funktionsprinzip dieser Familie und erläutert auch die Beständigkeit des Algorithmus gegen verschiedene Angriffe.
Beschreibung des Algorithmus
Das Folgende ist ein Arbeitsalgorithmus
gemäß der Spezifikation [1].
Die Funktionsweise des Algorithmus wird durch 3 Parameter bestimmt:
- die Größe der Ausgabesequenz in Bits, 
- die Anzahl der Runden, 
- die Größe der Blöcke der Eingabenachricht in Bytes, 
Die Idee des Algorithmus besteht darin, den
Zustand basierend auf der Eingabesequenz sequentiell zu transformieren . Der Algorithmus besteht aus 5 Schritten:
Initialisierung des internen Zustands
eine Nachricht in Blöcke aufteilen
iterative Zustandstransformation
.
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. Cubehash-Spezifikation (2.b.1)
Vikash Jha. Kryptoanalyse von Cubehash.
Philip Doughty Jr. Ein generischer Angriff auf CubeHash, einen SHA-3-Kandidaten.
Benjamin Bloom und Alan Kaminsky. Einzelblockangriffe und statistische Tests auf CubeHash.
DJ Bernstein. Optimierung der CubeHash-Parameter: 16-mal schneller.