問91
頻出度★★★
デジタル署名やブロックチェーンで用いられるハッシュ関数には, SHA-256, SHA-512などがある。このようなハッシュ関数に関する記述として, 適切なものはどれか。
この問題の解説と、これまでの解答の記録です。
デジタル署名やブロックチェーンで用いられるハッシュ関数には, SHA-256, SHA-512などがある。このようなハッシュ関数に関する記述として, 適切なものはどれか。
ハッシュ関数は一方向性 (元データからハッシュ値は計算できるが、その逆はできない) をもつ。ハッシュ値を同じ関数に再入力しても得られるのは別のハッシュ値であり、元のデータは復元できない。
SHA-256 と SHA-512 のように、ハッシュ関数が異なれば内部のアルゴリズムも出力ビット長も異なる。同じデータを入力しても、得られるハッシュ値は関数ごとに異なるのが普通で、全て同じにはならない。
正解 ハッシュ関数は決定的 (deterministic) な関数であり、同じハッシュ関数に同じデータを入力すれば、何度計算しても必ず同じ固定長のハッシュ値が得られる。この再現性があるからこそ、デジタル署名やブロックチェーンでデータの改ざん検知 (送り手と受け手が同じデータから同じ値を得て一致を確認する) に利用できる。よって「同じハッシュ関数を用いる場合、入力データが同じならハッシュ値は常に同じになる」とする「ウ」が適切である。
ハッシュ関数は多対一の写像で一方向性をもつため、ハッシュ値から元データへ戻す逆関数は存在しない。逆関数があり元データを復元できるとする記述は、ハッシュ関数の定義に反する。