简述散列算法的设计方法及其分类。
正确答案:散列算法的设计主要可分为三大类:
(1)基于模数运算:这种设计方法是使用公开密钥算法来设计单向散列函数。通常可以使用CBC模式基于公开密钥算法对消息进行加密,并输出最后一个密文分组作为散列值。如果丢弃用户的密钥,这时的散列值将无法解密,也就是说,它满足了散列函数的单向性要求。一般情况下它的计算速度十分的慢,实用性差。
(2)基于分组加密:就是用对称分组算法设计单向散列函数。同样可以使用对称分组算法的CBC模式或CFB模式来产生散列值。它将使用一个固定的密钥及IV加密消息,并将最后的密文分组作为散列值输出。这类设计已经提出了一些方案,如MDC-2和MDC-4等。
(3)定制的:这类单向散列函数并不基于任何假设和密码体制,而是通过直接构造复杂的非线性关系达到单向要求,设计单向散列函数。这类算法典型的有:MD2、MD4 、MD5、SHA-1、PIPEMD-160等算法。
(1)基于模数运算:这种设计方法是使用公开密钥算法来设计单向散列函数。通常可以使用CBC模式基于公开密钥算法对消息进行加密,并输出最后一个密文分组作为散列值。如果丢弃用户的密钥,这时的散列值将无法解密,也就是说,它满足了散列函数的单向性要求。一般情况下它的计算速度十分的慢,实用性差。
(2)基于分组加密:就是用对称分组算法设计单向散列函数。同样可以使用对称分组算法的CBC模式或CFB模式来产生散列值。它将使用一个固定的密钥及IV加密消息,并将最后的密文分组作为散列值输出。这类设计已经提出了一些方案,如MDC-2和MDC-4等。
(3)定制的:这类单向散列函数并不基于任何假设和密码体制,而是通过直接构造复杂的非线性关系达到单向要求,设计单向散列函数。这类算法典型的有:MD2、MD4 、MD5、SHA-1、PIPEMD-160等算法。
答案解析:有
微信扫一扫手机做题