問91
頻出度★★★
デジタル署名やブロックチェーンで用いられるハッシュ関数には, SHA-256, SHA-512などがある。このようなハッシュ関数に関する記述として, 適切なものはどれか。
这道题的解析和你的作答记录。
デジタル署名やブロックチェーンで用いられるハッシュ関数には, SHA-256, SHA-512などがある。このようなハッシュ関数に関する記述として, 適切なものはどれか。
散列函数具有单向性 (能从原始数据计算出散列值,但不能反过来)。把散列值再次输入到同一个函数,得到的也只是另一个散列值,无法还原出原始数据。
就像 SHA-256 和 SHA-512 那样,散列函数不同,其内部算法和输出位长也不同。即使输入相同的数据,得到的散列值通常也因函数而异,不会全都相同。
正解 散列函数是确定性 (deterministic) 函数,向同一个散列函数输入相同的数据,无论计算多少次,都必定得到相同的固定长度散列值。正因为有这种可再现性,它才能用于数字签名和区块链中的数据篡改检测 (发送方和接收方从相同数据得到相同的值,确认两者一致)。因此,主张「使用同一个散列函数时,只要输入的数据相同,得到的散列值就总是相同」的「ウ」是恰当的。
散列函数是多对一的映射且具有单向性,因此不存在能从散列值还原回原始数据的反函数。声称存在反函数、能还原原始数据的描述违反了散列函数的定义。