您好,欢迎访问山东渔翁信息技术股份有限公司官方网站
渔翁信息

专注密码硬件研发生产定制

咨询热线: 400-6686-188

产品中心

热门产品

联系我们

咨询热线:400-6686-188

市场合作:孙经理:13806311977

售后服务:房经理:0631-5651692

邮箱:support@fisherman-it.com

地址:济南市高新区齐鲁软件园F座

新闻中心 您的位置:首页 > 新闻中心 >

单项散列函数的设计方法

文章出处:渔翁信息作者:渔翁信息人气:发表时间:2018-10-23 16:22

单向散列函数的原理较简单,同时因它也不要求可逆,因此,设计自由度一般比较大,基本的设计方法有三种。

1.使用公开密钥密码算法

一般能以CBC模式用公开密钥算法加密消息,并得到最后一个密文分组当做散列值。

若丢掉用户的保密密钥,此时的散列值会不能解密,即它达到了散列函数的单向性要求。

尽管在恰当的假定下,可表明此类散列函数是安全的,不过通常情况下其计算速度特别慢。此类散列函数不实用。

2.使用对称分组算法

用对称分组密码算法的CBC或CFB模式得到散列值。它用个不变的密钥加密消息,再让最后的密文分组作散列值进行输出。这时,若分组算法是安全的,则单向函数也将是安全的。

另外,还可将消息当做密钥,而把上一个分组拿到的散列值作分组算法的输入,用类似CBC模式的方法加密,最后得到的密文分组作散列值输出。设消息一共含N个分组m1,m2,…,mN,用h,代表到第i个分组时的散列值,h代表最后的散列输出。则可表述如下。

h0=IV

hi=Emihi-1

h=hN

其中,IV是初始向量。

这类设计已经提出来一些方案,如Quisquater-Girault算法、MDC2与MDC4、GOST散列函数等。

3.直接设计单向散列函数

此类单向散列函数不基于随意哪个假定与密码体制,它由直接构造复杂的非线性关系实现单向性要求。这类算法典型的有:MD2、MD4、MD5、SHA-1、PIPE-MD和HAVAL等。现今,直接设计单向散列函数的措施被普遍关注,是较流行的一种设计方法。

  1. 一键分享到

返回顶部