暗号学において、MDC-2(Modification Detection Code 2、Meyer-Schillingとも呼ばれ、[要出典] ISO 10118-2で標準化)は暗号ハッシュ関数です。MDC-2は、理想暗号モデルにおけるセキュリティの証明を備えたブロック暗号に基づくハッシュ関数です。 [1]出力ハッシュの長さは、基礎となるブロック暗号によって異なります。
アルゴリズム
ハッシュする特定のメッセージと特定のブロック暗号暗号化関数に対して、MDC-2 アルゴリズムは次のように進行します。をブロック長、の2 つの異なる定数をサイズ とします。それぞれのサイズが の場合、メッセージの ハッシュは次のように表されます。
- 〜に対して:
- 戻る
MDC-2DESハッシュ
MDC-2 がDESブロック暗号を使用する場合、128 ビット (16 バイト) の MDC-2 ハッシュは通常、32 桁の 16進数として表されます。は 8 バイトの文字列 5252525252525252 として選択され、 は8 バイトの文字列 2525252525252525 (16 進数として記述) として選択されます。 さらに、各反復の前に、 の最初のバイト A[0] は(A[0] & 0x9f) ^ 0x40 として再計算され、 の最初のバイト B[0] は(B[0] & 0x9f) ^ 0x20 として再計算されます。
以下は、43 バイトのASCII入力 (長さが DES ブロック サイズの 8 バイトの倍数になるように 5 つのゼロ バイトが埋め込まれている) と、対応する MDC-2 ハッシュを示しています。
MDC2(「素早い茶色のキツネが怠け者の犬を飛び越える」 )
= 000ed54e093d61679aefbeae05bfe33a
メッセージに小さな変更を加えただけでも、(確率的に)完全に異なるハッシュが生成されます。
たとえば、次dのように変更されます。c
MDC2(「素早い茶色のキツネは怠け者の歯車を飛び越える」 )
= 775f59f8e51aec29c57ac6ab850d58e8
長さゼロの文字列のハッシュは次のとおりです。
MDC2("")
= 52525252525252522525252525252525
特許問題
MDC-2 は、1990 年 3 月 13 日に発行された米国特許 4,908,861で保護されていましたが、1987 年 8 月 28 日にIBMによって申請されました。特許上の懸念から、MDC-2 のサポートはほとんどのLinuxディストリビューションのOpenSSLでは無効になっており、他の多くの暗号化ライブラリでは実装されていません。これは、GPG のlibgcrypt で実装されています。
特許は出願日から20年後の2007年8月28日に失効する予定だったが、IBMが更新料を支払わなかったため、実際には2002年に失効した[2]。カナダの特許は更新されず、欧州特許も付与されなかったため、MDC-2は現在自由に使用できる。
参照
注記
- ^ Steinberger, John (2007 年 6月 23 日)。「理想暗号モデルにおける MDC-2 の衝突回避性」。Advances in Cryptology – EUROCRYPT 2007。Springer -Verlag。pp. 34–51。doi : 10.1007/978-3-540-72540-4_3。2008年1 月 31 日閲覧。
- ^ 「USPTO - 特許維持費」。米国特許庁。2002 年 3 月 13 日。2008年 1 月 31 日閲覧。
{{cite journal}}:ジャーナルを引用するには|journal=(ヘルプ) [永久リンク切れ ]が必要です(「書誌データ」をクリックしてください。)
