A place to record scattered bits of knowledge learned each day.
-
one-way hash function
单向散列函数 (one-way hash function) 有一个输人和一个输出,其中输人称为消息 (message) 输出称为散列值 (hash value)。单向散列函数可以根据消息的内容计算出散列值,而散列值就可以被用来检查消息的完整性。
碰撞:如果单向散列函数计算出的散列值没有发生变化,那么消息很容易就会被篡改,这个单向散列函数也就无法被用于完整性的检查。两个不同的消息产生同一个散列值的情况称为碰撞 (collision)。如果要将单向散列函数用于完整性的检查,则需要确保在事实上不可能被人为地发现碰撞。
抗碰撞性:难以发现碰撞的性质,密码技术中所使用的单向散列函数,都需要具备抗碰撞性。
弱抗碰撞性:当给定某条消息的散列值时,单向散列函数必须确保要找到和该条消息具有相同散列值的另外一条消息是非常困难的。这一性质称为弱抗碰撞性。单向散列函数都必须具备弱抗碰撞性。
强抗碰撞性:是指要找到散列值相同的两条不同的消息是非常困难的这一性质。在这里,散列值可以是任意值。
密码技术中所使用的单向散列函数,不仅要具备弱抗碰撞性,还必须具备强抗碰撞性。