ハッシュ関数とは、任意のデータを入力すると、一定の長さの固定されたデータ(ハッシュ値)を出力する関数です。情報セキュリティの分野において、データの改ざん検知や認証の仕組みに広く活用されています。
ハッシュ関数には2つの重要な特徴があります。ひとつは「一方向性」で、出力されたハッシュ値から元の入力データを逆算することが事実上不可能です。もうひとつは「耐衝突性」で、異なる入力データから同じハッシュ値が生成される可能性が極めて低い性質を指します。この2つの特性により、データの完全性を高い信頼性で保証することができます。
代表的なハッシュ関数としてSHA-256があります。256ビットのハッシュ値を生成するアルゴリズムで、現在も広くセキュリティの場面で使用されています。
ハッシュ関数は、パスワードの安全な保存、デジタル署名、ブロックチェーン技術など、現代のセキュリティ基盤を支える重要な技術のひとつです。
ディジタル署名などに用いるハッシュ関数の特徴はどれか。
| ア | 同じメッセージダイジェストを出力する異なる二つのメッセージは容易に求められる。 |
| イ | メッセージが異なっていても,メッセージダイジェストは全て同じである。 |
| ウ | メッセージダイジェストからメッセージを復元することは困難である。 | エ | メッセージダイジェストの長さはメッセージの長さによって異なる。 |
答え:ウ
ハッシュ関数は、任意の長さのメッセージから一定の長さのメッセージダイジェスト(ハッシュ値)を生成する関数で、ディジタル署名やデータの改ざん検知などに利用されます。特徴として、ハッシュ値から元のメッセージを復元することが極めて困難である一方向性や、異なるメッセージから同じハッシュ値を見つけることが困難である性質があります。したがって、メッセージダイジェストからメッセージを復元することは困難であるウが正解です。アは衝突が容易に見つかるとしており誤りです。イは全て同じ値になるとしており誤りです。エはハッシュ値の長さは一定でありメッセージ長に依存しないため誤りです。