首页 理论教育 Hash函数的构造方法详解

Hash函数的构造方法详解

时间:2023-07-02 理论教育 版权反馈
【摘要】:构造Hash函数的方法主要有基于公钥密码的构造方法、基于分组密码的构造方法和直接构造法三种。图6-3 基于分组密码的KBC模式构造Hash函数基于分组密码的CBC、CFB和KBC工作模式的Hash函数中,密钥k不能公开。典型的这类Hash函数有MD4、MD5、SHA-1、SHA-256等算法。

Hash函数的构造方法详解

构造Hash函数的方法主要有基于公钥密码的构造方法、基于分组密码的构造方法和直接构造法三种。

1.基于公钥密码的构造方法

设明文M=m1m2mn,以公钥密码体制为基础,使用公钥PK以及初始变量IV,通过CBC(密文分组链接模式)对消息分组m1m2,…,mn进行加密,得到密文分组c1c2,…,cn。将输出的最后一个密文分组cn作为Hash函数的输出值HM),如图6-1所示。

978-7-111-37285-1-Chapter06-1.jpg

图6-1 基于公钥密码的CBC模式构造Hash函数

虽然在合理的假设下,可以证明这类Hash函数是安全的,但因为其计算效率太低,所以这一类Hash函数并没有什么实用价值。

2.基于分组密码的构造方法

设明文M=m1m2mn,使用分组密码体制的CBC模式,输入初始变量IV和对称密钥k,对消息分组m1m2,…,mn进行加密,得到密文分组c1c2,…,cn。将输出的最后一个密文分组cn作为Hash函数的输出值HM),如图6-2所示。(www.xing528.com)

通常,也可以使用CFB(密文反馈模式)或KBC(密钥链接模式)加密产生消息摘要。如果使用KBC模式时,可以把明文分组m1加密得到的密文分组c1作为密钥去对m2加密,用得到的结果c2作为密钥,再对m3加密,如此下去,直到最后得到mn的密文cn,则cn就是所求得的消息摘要,如图6-3所示。

978-7-111-37285-1-Chapter06-2.jpg

图6-3 基于分组密码的KBC模式构造Hash函数

基于分组密码的CBC、CFB和KBC工作模式的Hash函数中,密钥k不能公开。如果密钥k公开,则会使得攻击者十分容易构造消息碰撞。

3.直接构造Hash函数

直接构造Hash函数并不基于任何假设和密码体制,它是通过直接构造复杂的非线性关系达到单向性要求来设计单向Hash函数。典型的这类Hash函数有MD4、MD5、SHA-1、SHA-256等算法

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈