ハッシュ関数とは、重要なデータの受け渡しを行う際に、そのデータが通信途中で改ざんされていないか、またWebサイトからダウンロードしたファイルが壊れていないかなど、データの改ざん検知やファイルの同一性確認をするために使われる技術の一つです。
文書や画像、そしてプログラムに至るまで、コンピューターのデータはすべて「0」と「1」からなる数値で出来ており、ハッシュ関数は、それらの数値(元データ)がどんな大きさであろうと、一定の法則で一定の長さにギュッと短縮した値(160ビット程度のデータ)に変換します。その値のことをハッシュ値と言います。 ハッシュ値は、長さが一定(160ビット)なので、同じハッシュ値になるよう改ざんするのは困難で、元データが1ビットでも変わると全く異なる値になるのが特徴です。また、ハッシュ値から元データの復元を行うことも、ハッシュ値から元データを特定することもできません。 この特徴を活かして、例えば、電子メールの改ざんを検出するには、電子メールを送る際にハッシュ値も送信し、受信者は受け取ったデータのハッシュ値を計算します。そして、値が一致すれば改ざんされていない、一致しない場合は通信途中で改ざんされているとわかります。 Webサイトからファイルをダウンロードする場合も、ダウンロードしたファイルから計算したハッシュ値と、Webサイトに載っているハッシュ値が一致すれば、同一のファイルであると確認することができます。 |