原理から学ぶネットワーク・セキュリティ(4)
ITpro の『原理から学ぶネットワーク・セキュリティ 第4回 ハッシュ関数』(2007年12月11日)という記事より。今回の記事もつっこみ所が満載です。
まずはハッシュ関数の導入部分。
ハッシュ値だけから元のデータを復元することはできません。そのためハッシュ値はダイジェスト(消化物)といわれることもあります。
確かに 「digest」 という単語には「消化物」という意味もありますが、私の理解では「要約」の方がしっくりきます。もちろん語源は一緒なのでしょうが。というか、ハッシュ値が消化物だとすると消えてしまっているわけで、署名検証とかできないですよね....
次に HMAC の説明があるのですが、この図だとハッシュ値を共有鍵で処理するように見えるので、何かまずい気がします。(次に登場するディジタル署名との対比だとしてもNGでしょう。)
この暗号化されたハッシュ値を「MAC」(Message Authentication Code)といい,特にハッシュを使っていることからHMACともいいます。
とも書いてありますねぇ。あれ、「ハッシュを使えば HMAC と呼ぶ」と読めるのもまずいですね...
最後にハッシュ関数のコリジョン探索が紹介されています。私は「誕生日攻撃」という用語はあまり好きではないのですが、それを置いておくにしても、
一般的には,ハッシュ値の長さがNビットのときには,1/2のN/2乗の確率でハッシュ衝突が起きるといわれてます。MD5だと280回程度の試行で,目的のハッシュ値を出力できる入力値を見つけ出すことができます。
例えば,配布されているFedora CoreのISOイメージのハッシュ値は,SHA1SUMというファイルに格納されています。偽物のISOイメージを作るには,原本と同じSHA-1値を出力するように短い“詰め物”ビットを加えればよいだけなのです。このような改ざんは「誕生日攻撃」といわれます。「誕生日が重なることはないだろう」という,人間の思い込みを突いたことに由来します。
あたりの記述はつっこみどころが多すぎてどうして良いのかわかりません。微妙に違うんですよね。あ、あと「塩」は「salt」ですよ!
| 固定リンク

コメント