用語解説辞典

用語解説辞典 知りたい用語はここで検索

用語解説辞典トップに戻る

【ハッシュ関数】

  • ハッシュ値

 ハッシュ関数は、データの受け渡しや保管の際に、そのデータが改変されていないか確認するために使われている技術のひとつ。

 たとえば、Aさんから Bさんに電子メールで機密文書を送るとしよう。あるいは、インターネットを通じて何かプログラムを配布するとしよう。機密文書を送る場合は、途中で誰かに傍受されて内容を改ざんされるリスクがある。プログラムの配布では、配布用のサーバーに保管されているデータを改変される可能性がある。

 改変がないことを確認するには、元のデータと受け取ったデータを比較すればいい。しかし手間がかかるし、そのままのデータを比較すると情報漏えいのリスクが高まる。そこで、ハッシュ関数と呼ばれる手法を使って、ハッシュ値と呼ばれるデータを作り、それを比較することで改変がないか確認している。

 プログラムも、文書も、画像なども、コンピュータのデータはすべて 0 と 1 からなる数値で記録されている。そこで、その数値を一定の法則でギュッと短くして同じ長さに揃えたものをハッシュ値という。そして、この方法のことをハッシュ関数という。

 違うデータから同じハッシュ値が生まれないこと、ハッシュ値から元のデータを復元できないことがポイントだ。元のデータを送る際にハッシュ値も送信して、受信者は受け取ったデータからハッシュ値を計算する。そして値が同じになればデータが改変されていない。途中で改変されていると、ハッシュ値が合わない。

 ハッシュ関数には複数の方式があって、算出されるハッシュ値が大きいほど安全性が高いとされている。以前は、MD5 と呼ばれる方式が広く使われていたけど、この方式のハッシュ値は 128ビットと短い。そして、MD5 には深刻な弱点が見つかっていて、今はあまり使われていない。

 その後、主流となったのが、ハッシュ値が 160ビットの SHA-1 と呼ばれる方式。しかし、この方法も弱点の存在が指摘されて、2010年末までに次世代の SHA-2 へ移行することが推奨された。

はの一覧に戻る

用語解説:下島 朗(株式会社エントラータ)監修

page top