情報セキュリティ対策|ハッシュ暗号とは何か

ハッシュとは

現代暗号には、「共通鍵暗号」「公開鍵暗号」「ハッシュ暗号」があります。

以前の記事では、「共通鍵暗号」「公開鍵暗号」についてそれぞれ説明し、
メリットおよびデメリットを紹介しました。

今回は、「ハッシュ」についてご説明します。

ハッシュ暗号の特徴

「ハッシュ暗号」では、「共通鍵暗号」「公開鍵暗号」のように、
複号して元のメッセージを読み取ることをしません。
つまり、暗号化のみの操作となります。

平文が1文字変わるだけで暗号文が大きく変わるという特徴があり、
一般的には
MD5(Message Digest 5)や、
SHA-1(Secure Hash Algorithm)
という関数が使われます。

前者は元の文から128bitの値を生成し、後者は160bitの値を生成します。

なぜ復号をしないのか。

これは、ハッシュを使う目的に関わってきます。

ハッシュ暗号化の目的

ハッシュの目的は何か。

それは、
「データが壊れていないかどうかのチェック」です。

他にも、
「通信経路上で改ざんがないかどうか」
「送信元が妥当かどうか」
のチェックにも使われます。

たとえば、Webサイトからダウンロードしたファイルが壊れていないかどうかを確認する時、
ハッシュが使われます。
ダウンロードファイルとともに、そのハッシュ値を公開しておけば、
実際にダウンロードした人がその値と合致するかどうかチェックすることで、
内容が正しいかどうかをチェックすることができるのです。

また、Webサイトのパスワード保存にも使われます。
IDやパスワード情報を、そのままデータベースに保存するのではなく、
それらから生成されるハッシュ値を保存しておくことで、
仮にデータベースがクラックされて情報が流出しても、
ハッシュ値だけが盗まれるので何ら害はありません。

このように、一方向の暗号化を目的とした関数を「ハッシュ」と呼びます。