ハッシュ

読み方 : はっしゅ

英語正式表記 : Hash

ハッシュとは

ハッシュは、メッセージを特定するための暗号化技術である。受信者がメッセージを受け取ったときに、通信経路上で改ざんされていないか、受け取ったデータが壊れていないかを確認するために使う。コンピュータネットワークでは、MD5やSHA-1といったハッシュが使われる。

MD5やSHA-1では、それぞれ決まった計算式を使ってメッセージを計算する。この計算式を「ハッシュ関数」、その計算結果を「ハッシュ値」という。

例えば、「今回の特集は、暗号化技術がテーマです。」というメッセージからSHA-1でハッシュ値を求めると、「4c03f263557cad77b5e07fdfb89967f8eb68ab31」となる。このハッシュ値から元のメッセージは推定できない。これが1つめの特徴だ。また、元のメッセージに1文字加えた「今回の特集は、暗号化技術がテーマですよ。」でハッシュ値を計算すると、「e8fd71934525e94a706961d8ea74318396ea452e」と変化する。このようにハッシュ値は、1文字変わっただけで大きく変化する。

ハッシュの2つめの特徴は、メッセージの長さに関係なく、ハッシュ値の長さが一定であることだ。2回目のメッセージのほうが文字数が増えているが、ハッシュ値はどちらも同じ長さ(160ビット)である。

ハッシュには、もう1つ特徴がある。それは、同じハッシュ値になる別のメッセージを作るのが困難な点だ。第三者が、メッセージを入手して、そのハッシュ値が変わらないように、意味のあるメッセージに改ざんするのは、ほぼ不可能といってよい。ただし、ハッシュ値の方が元のメッセージより小さいので、偶然一致する可能性は否定できない。

ハッシュは改ざん検知やファイルの同一性確認などに使われる。改ざん検知は次のような手順で実施される。送信者がメッセージやデータを送るとき、メッセージのハッシュ値を計算する。このハッシュ値を暗号化したものを元のメッセージと一緒に通信相手に送る。このように認証のためにハッシュ値を暗号化したものを「署名」という。

受信者は、受け取ったデータからメッセージを取り出し、送信者と同じ暗号化技術でハッシュ値を計算する。次に署名を取り出して、復号した値を得る。そして、計算したハッシュ値と復号した値が一致するかどうかを確認して、一致すれば改ざんがなかったと判断できる。

Webサイトからファイルをダウンロードしたり、DVD-ROMといったメディアからハードディスクにファイルをコピーしたりするときなど、そのファイルが壊れていないかを確認するのにハッシュを使う場合がある。主に、フリーソフトのようなソフトウエアやウイルス対策ソフトの定義ファイルなど、数百Mバイトを超えるような、比較的大きなファイルをダウンロードするときに使う。

ダウンロードサイトから入手したファイルの同一性チェックでは、ユーザーがファイルをダウンロードした後、そのファイルからハッシュ値を計算する。そのハッシュ値が、ダウンロードサイトに掲載されているハッシュ値と一致するかどうかを確認して、一致していれば壊れていないと判断できる。

出典:ITpro「今日のキーワード」(C)日経BP社

[2014年 3月 3日 公開]

課題解決に役立つ資料集「ITライブラリー」

じっくり検討いただけるよう、多種多様なおすすめ資料を取りそろえています。

大塚商会の法人向け通販サイト(たのめーる)のご紹介