情報セキュリティ講座(48) ハッシュ関数

ハッシュ関数は一方向の関数で、暗号化させることができますが、復号化ができません。平文からハッシュ値を求めることはできますが、ハッシュ値から平文を求めることが出来ないのです。

平文が一部でもちがうと、全然違うハッシュ値が出力されます。だから前後の文字で推測することもできません。逆に、同じ平文からは、必ず同じハッシュ値が出力されます。

平文が異なるのに、同じハッシュ値が出力されることも、理論上ありえます。このことをハッシュ値の衝突といいます。衝突の起きにくさを衝突発見困難性といい、ハッシュ関数の強度の指標となります。

ハッシュ値の代表的な用途は、改竄検出です。平文とハッシュ値を同時に送れば、平文が改竄されたかどうかは、送られてきた平文のハッシュ値を計算して、送られてきたハッシュ値と比較すればよいのです。

また、サーバとクライアントでパスワードを照合する際、サーバ側でパスワードを保存してクライアントから送られるパスワードと比較すると、パスワードのやりとりが盗聴されるリスクもあるし、サーバ側でのパスワード流出リスクもあります。これを、パスワードから出力されたハッシュ値同士の比較とすれば、リスクを低減することもできます。

また個人情報の観点から購買データなどを匿名化する際に、個人情報部分をハッシュ値に置き換えれば、個人情報がなくなり、統計化して購買傾向をデータ分析するなどの利用ができます。

ハッシュ関数は、情報セキュリティにおいて、欠くことのできない技術ですので、理解することは大切だと思います。

投稿者プロフィール

小笠原 裕
小笠原 裕中小企業診断士 行政書士
バラの咲く街、八千代市緑が丘で、コンサルティング事務所を運営しています。