CubeHash

前書き

暗号化ハッシュ関数は、データの任意のブロックを固定長のシーケンスに変換できるようにする一連の手順です。入力データが変更されると、関数の値も変更されます。ハッシュ関数は、チェックサムの計算、電子署名の生成、セキュリティシステムにハッシュコードの形式でパスワードを保存する場合などに使用されます。





ハッシュ関数のCubeHashファミリーは、2009年のNational Institute of Standards and Technology(NIST)ハッシュコンペティションで新しいSHA-3標準として提案されました





この記事では、このファミリの動作原理について説明し、さまざまな攻撃に対するアルゴリズムの耐性についても説明します。





アルゴリズムの説明

以下は、仕様[1]に従った作業のアルゴリズムです





アルゴリズムの動作は、次の3つのパラメータによって決定されます。





  • -出力シーケンスのサイズ(ビット単位)、





  • -ラウンド数、





  • -入力メッセージのブロックのサイズ(バイト単位)、





アルゴリズムのアイデアは、入力シーケンスに基づい状態を順次変換することです。アルゴリズムは5つのステップで構成されています。





  • 内部状態の初期化





  • メッセージをブロックに分割する





  • 反復状態変換













.





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バーンスタイン。Cubehash仕様(2.b.1)





  2. ビカシュジャ。Cubehashの暗号分析。





  3. フィリップ・ドーティ・ジュニア SHA-3候補であるCubeHashに対する一般的な攻撃。





  4. ベンジャミンブルームとアランカミンスキー。CubeHashでのシングルブロック攻撃と統計テスト。





  5. DJバーンスタイン。CubeHashパラメーターの微調整:16倍高速。












All Articles