Nao000のぶろぐ

蝶を追っている少年になりたい

【混乱】ハッシュ関数の要件の「第2原像計算困難性」と「衝突困難性」が混乱する

ハッシュ関数の要件の「第2原像計算困難性」と「衝突困難性」が混乱する

「第2原像計算困難性」と「衝突困難性」の定義

「第2原像計算困難性」

与えられた入力値xに対して,H(x)=H(x')を満たす別の入力値x'を求めることが困難であること.

https://www.ipa.go.jp/files/000013413.pdf より引用

「衝突困難性」

引用元には「衝突計算困難性」とありましたが、いくつかの資料を見ると内容は同じでしたので、以下をそのまま引用します。

H(x)=H(x')となる入力値(x, x')を求めることが困難であること.この(x, x')は衝突ペアと呼ばれる.

https://www.ipa.go.jp/files/000013413.pdf より引用

両者の違い

「第2原像計算困難性」は既に入力値が与えられている状態での衝突の困難性を示している。「衝突困難性」は任意の入力値のペアを見つけることが困難であることを示す。

何が混乱するか

「第2原像計算困難性」は「弱衝突耐性」とも呼ばれます。既に与えられた入力値に対するハッシュ値と同じになる別の入力値を探すのは、「強衝突耐性」とも呼ばれる「衝突困難性」よりも難しいというのが混乱します。

衝突させるのが難しいのは、「弱衝突耐性」 > 「強衝突耐性」 です。

表記揺れが多い

IPAの資料を見ると、「衝突困難性」が「衝突計算困難性」や「衝突発見困難性」だったりしてました。微妙に意味が違ったりするのかな。それとも気にしない部分なのかな。

3つの要件の英語名はなにか

https://freecontent.manning.com/cryptographic-hashes-and-bitcoin/ を参考にすると以下になるようです。

英語名 日本語名
Preimage resistance 原像計算困難性
Second-preimage resistance 第2原像計算困難性
Collision resistance 衝突困難性

参考資料