新しいMD6ハッシュ関数

MD6は、マサチューセッツ工科大学のRonald Rivest教授が2008年9月に開発した可変ビットハッシュアルゴリズムです。 「指紋」または任意の長さのメッセージのダイジェストを作成するように設計されています。 完全ではないMD5を置き換えることが提案されています。 著者によると、アルゴリズムは差分暗号解読に耐性があります。 MD6には、第1種の衝突に対する十分な耐性がありません。 これは、メッセージのダイジェストを公開されたものと比較することにより、公開されたメッセージの信頼性を検証するために使用されます。 この操作は、ハッシュチェックと呼ばれます。



ロナルド・リベスト



前身(MD5)は、従来のプロセッサの周波数が33MHz以下であった1991年に作成されました。 任意の長さのバイナリ文字列をサイズdの文字列にマッピングし、衝突に耐性があり、プリイメージを見つけ、擬似ランダムである必要がありました。

ハッキング後、米国標準技術局(NIST)はSHA-3ハッシュ関数を作成するための競争を発表しました。

新しいMD6関数は、差分暗号化(MD5がハッキングされた)に対して証明可能な耐性があると想定されています。

開発者は、ハッシュ関数の設計に独自のアイデアを使用しました。 そのため、一度に処理されるデータブロックのサイズは512ビット(ビットではなく)になり、多くの攻撃を実行することが難しくなり、並列化が促進されます。



開発では、従来のDamgard-Merkl設計の代わりに、ツリー構造の助けを借りて圧縮が使用されました。 各ツリーのノードには、圧縮関数4-1(ミニ圧縮関数を持つマークルツリーの類似物)があります。 小さいプロセッサの場合、階層ツリー構造の代わりに、シーケンシャル構造を使用できます。

MD6は512ビットキーハッシュもサポートしています。 さまざまな設計機能(サブノードへの入り口でのツリーノード、ルート、zビットの番号付け)により、関数が挿入攻撃​​や拡張攻撃から保護されます。 関数の非線形性は、XOR、加算、定数付きシフトの3つの単純な操作を使用して実現されます。



関数ラウンドの数は異常に大きく、 r = 40 +(d / 4)です。 したがって、256出力の場合、104ラウンドが必要になり、512-168ラウンドが必要になります! 同時に、MD6-512は32ビットプラットフォームのSHA2-512より1.5倍遅く、ほぼ4倍6です。



ウィキペディアのMD6

Crypto 2008でのプレゼンテーション



All Articles