デジタル署名やブロックチェーンで用いられるハッシュ関数には,SHA-256,SHA-512などがある。
このようなハッシュ関数に関する記述として,適切なものはどれか。
正答3
解説
正解は3です。
ハッシュ関数は、任意の長さのデータから、決まった長さの値(ハッシュ値)を作る関数です。
同じ入力からは同じ値が得られる一方で、ハッシュ値から元のデータを求めることは事実上できません。
【選択肢別解説】
1:× ハッシュ値をもう一度同じハッシュ関数に入力しても、別のハッシュ値が得られるだけです。
ハッシュ関数は一方向性をもつので、元のデータは復元できません。
2:× ハッシュ関数が異なれば計算方法も異なるので、同じデータでも得られるハッシュ値は異なります。
例えば、SHA-256は256ビット、SHA-512は512ビットの値となり、長さも違います。
3:○ 同じハッシュ関数に同じデータを入力すれば、ハッシュ値は常に同じになります。
この性質により、データが改ざんされていないかを、ハッシュ値の比較で確認できます。
4:× ハッシュ関数には、ハッシュ値から元のデータを求める逆関数が事実上存在しません。
この一方向性がハッシュ関数の重要な特徴です。
【ポイント】
ハッシュ関数は、データが1ビットでも変わるとハッシュ値が大きく変わる性質をもちます。
この性質が、デジタル署名による改ざん検知やブロックチェーンに利用されています。