【ハッシュ関数】
- ハッシュ値
ハッシュ関数は、データの受け渡しや保管の際に、そのデータが改変されていないか確認するために使われている技術のひとつ。
たとえば、AさんからBさんに電子メールで機密文書を送るとしよう。あるいは、インターネットを通じて何かプログラムを配布するとしよう。機密文書を送る場合は、途中で誰かに傍受されて内容を改ざんされるリスクがある。プログラムの配布では、配布用のサーバーに保管されているデータを改変される可能性がある。
改変がないことを確認するには、元のデータと受け取ったデータを比較すればいいのだけど、手間がかかるし、そのままのデータを比較すると情報漏えいのリスクが高まる。そこで、ハッシュ関数と呼ばれる手法を使って、ハッシュ値と呼ばれるデータを作り、それを比較することで改変がないか確認している。
プログラムも、文書も、画像なども、コンピュータのデータはすべて 0 と 1 からなる数値で記録されている。そこで、その数値を一定の法則でギュッと短くして同じ長さに揃えたものをハッシュ値という。そして、この方法のことをハッシュ関数という。
違うデータから同じハッシュ値が生まれないこと、ハッシュ値から元のデータを復元できないことがポイントだ。元のデータを送る際にハッシュ値も送信して、受信者は受け取ったデータからハッシュ値を計算する。そして値が同じになればデータが改変されていない。途中で改変されていると、ハッシュ値が合わない。
ハッシュ関数には複数の方式があって、算出されるハッシュ値が大きいほど安全性が高いとされている。以前は、MD5 と呼ばれる方式が広く使われていたけど、この方式のハッシュ値は 128ビットと短い。そして、MD5には深刻な弱点が見つかっていて、今はあまり使われていない。
現在、主流となっているのは、ハッシュ値が 160ビットの SHA-1 と呼ばれる方式。しかし、この方法もすでに弱点の存在が指摘されていて、2010年末までに次世代の SHA-2 に移行することが推奨されている。
用語解説:下島 朗(株式会社エントラータ)監修



















































































