前書き
暗号化ハッシュ関数は、データの任意のブロックを固定長のシーケンスに変換できるようにする一連の手順です。入力データが変更されると、関数の値も変更されます。ハッシュ関数は、チェックサムの計算、電子署名の生成、セキュリティシステムにハッシュコードの形式でパスワードを保存する場合などに使用されます。
ハッシュ関数のCubeHashファミリーは、2009年のNational Institute of Standards and Technology(NIST)ハッシュコンペティションで新しいSHA-3標準として提案されました。
この記事では、このファミリの動作原理について説明し、さまざまな攻撃に対するアルゴリズムの耐性についても説明します。
アルゴリズムの説明
以下は
、仕様[1]に従った作業のアルゴリズムです。
アルゴリズムの動作は、次の3つのパラメータによって決定されます。
-出力シーケンスのサイズ(ビット単位)、 
-ラウンド数、 
-入力メッセージのブロックのサイズ(バイト単位)、 
アルゴリズムのアイデアは
、入力シーケンスに基づいて状態を順次変換することです。アルゴリズムは5つのステップで構成されています。
内部状態の初期化
メッセージをブロックに分割する
反復状態変換
.
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バーンスタイン。Cubehash仕様(2.b.1)
ビカシュジャ。Cubehashの暗号分析。
フィリップ・ドーティ・ジュニア SHA-3候補であるCubeHashに対する一般的な攻撃。
ベンジャミンブルームとアランカミンスキー。CubeHashでのシングルブロック攻撃と統計テスト。
DJバーンスタイン。CubeHashパラメーターの微調整:16倍高速。