マルチ2
| 一般的な | |
|---|---|
| デザイナー | 日立 |
| 初版 | 1988 |
| 暗号の詳細 | |
| キーサイズ | 64ビット |
| ブロックサイズ | 64ビット |
| 構造 | フェイステルネットワーク |
| ラウンド | 変数 |
MULTI2は、1988年に日立が開発したブロック暗号です。汎用暗号として設計されており、現在は日本国内のハイビジョン放送の暗号化に使用されています。
暗号の詳細
MULTI2は、ラウンド数が可変の対称鍵アルゴリズムです。ブロックサイズは64ビット、鍵サイズも64ビットです。鍵スケジュールでは、実装依存の256ビット置換ボックス定数が使用されます。スクランブルとデスクランブルは、4つの基本関数(反転)を繰り返すことで行われます。
歴史
- 1988年4月28日、日立製作所がMULTI2特許を出願
- 1989年 情報処理学会DPS-SIGにアルゴリズム発表
- 1991年、米国でMULTI2アルゴリズムの特許番号4982429を取得
- 1994年アルゴリズムはISO/IEC 9979に登録され、登録番号9が付与されました。
- 1995年 MULTI2が日本のCSデジタル放送の標準暗号として採用
- 1998年、MULTI2アルゴリズムに関する日本特許第2760799号が付与された。
暗号解読
Multi2ブロック暗号には、同等の鍵が多数存在します。(これまでに発見された)最大のクラスは、鍵スケジュールのPi3ラウンド関数が一対一ではないという事実に起因しています。例えば、鍵スケジュールへの以下の40バイトの入力鍵の場合:
45 ec 86 d8b6 5e 24 d538 フェ 1d 90ce fc a4 223e 39 1b e3da 03 0f cb9c 9e d7 c61c e4 73 61d0 ファ 39 8658 5d 5b 90
次の単一バイトの変更を実行できます (ここでの変更は、元のキー バイトに対する XOR を意味します)。
バイト5をCFで変更できるバイト7を77で変更できるバイト20を9Aで改造できるバイト20をA9で変更できるバイト20をD7で変更できるバイト21を35で変更できるバイト21を6Aで改造できるバイト21を9Fで変更できるCCでバイト21を改造できるバイト22を4Dで変更できるバイト22を7Aで改造できるバイト22をA7で変更できるバイト23を53でmodできるバイト23をAEで変更できる
この場合、暗号のバルク暗号化パスに、同じ8つの32ビットラウンドキーをスケジュールする15個の異なるキーがあります。Pi3ラウンド関数で使用される最初のキーワード(キーk[1]とk[5])では、これらのキーはすべて異なります。衝突が発生するのは、1バイトの差異が0X0X0000(0、8、16、または24ビット回転)のようなパターンに変換され、それが0X000X00に展開され、最終的に最後から2番目の行(16ビット回転とXOR)で差異が打ち消されるためです。つまり、ゼロデルタになります。
問題は、関数
x = ROL(x, y) ^ x
ROLはyビット左回転を意味しますが、yの値がどのような値であっても一対一ではありません。Pi2関数とPi4関数にも同様の問題はありますが、回転値が小さいため、悪用されにくいようです。
他にも観察事項はあります。例えば
x = ROL(x, 1) - x
Pi3 に見られ、x の値の 50% に対する恒等関数です (最上位バイトはゼロです)。
これはまた、キーに 1 バイトの違いを強制するのではなく、プレーンテキストで Pi3 に入力するとゼロ デルタ出力が生成され、1R 差分につながる可能性がある弱いキーが存在する可能性があることも意味します。
参照
外部リンク
- アルゴリズムレジスタエントリ、1994年に登録