CubeHash

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. ,





  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. Cubehash-Spezifikation (2.b.1)





  2. Vikash Jha. Kryptoanalyse von Cubehash.





  3. Philip Doughty Jr. Ein generischer Angriff auf CubeHash, einen SHA-3-Kandidaten.





  4. Benjamin Bloom und Alan Kaminsky. Einzelblockangriffe und statistische Tests auf CubeHash.





  5. DJ Bernstein. Optimierung der CubeHash-Parameter: 16-mal schneller.












All Articles