散列函数的选取不能减弱签名方案的安 全性,它必须能够防止他人伪造。因此 一个好的散列函数应该具有以下特性: 弱无碰撞:给定一个消息x,找到一个满 足h(x)=h(x)的消息x,≠x是计算上不可 行的 强无碰撞:找到满足h(x)=h(x)并且x≠ x的消息x和x是计算上不可行的; 单向:给定一个消息摘要z,找到一个满 足h(x)=z的消息x是计算上不可行的
散列函数的选取不能减弱签名方案的安 全性,它必须能够防止他人伪造。因此 一个好的散列函数应该具有以下特性: 弱无碰撞:给定一个消息x,找到一个满 足h(x‘) = h(x) 的消息x’ x 是计算上不可 行的; 强无碰撞:找到满足h(x‘) = h(x) 并且x’ x 的消息x‘ 和 x是计算上不可行的; 单向:给定一个消息摘要 z,找到一个满 足h(x) = z 的消息x 是计算上不可行的
Hash函数如何构造,以达到前面的要求? 一个最基本必须满足的要求应该是任何输 入串中单个比特发生变化,将会导致输出 比特串中大约一半的比特发生变化 构造方法主要有以下几种 利用某些对称密码体制,设计Hash函数 利用某些数学难题假设,设计Hash函数, 可以在某些难问题假设下证明是强务碰撞 的。 直接设计Hash函数
Hash函数如何构造,以达到前面的要求? 一个最基本必须满足的要求应该是任何输 入串中单个比特发生变化,将会导致输出 比特串中大约一半的比特发生变化。 构造方法主要有以下几种 利用某些对称密码体制,设计Hash函数 利用某些数学难题假设,设计Hash函数, 可以在某些难问题假设下证明是强务碰撞 的。 直接设计Hash函数
422可证安全的散列函数 一个散列函数是这样设计的:p是一个 大素数,且q=(p-1)/2也是素数,设a和 β是域Zp的本原元,值ogB不公开 且假设求ogB在计算上是不可行的。 定义散列函数h:Zq×Zq→>Zp-{0}为 h(x1x2)=axB zmodp 定理:若给定该散列函数的一个碰撞, 则ogβ定能有效计算
4.2.2 可证安全的散列函数 一个散列函数是这样设计的: p是一个 大素数,且q=(p-1)/2也是素数, 设 和 是域Zp的本原元,值log 不公开, 且假设求log 在计算上是不可行的。 定义散列函数h: Zq Zq Zp-{0} 为 h(x 1,x 2)= x 1 x 2modp 定理:若给定该散列函数的一个碰撞, 则log 一定能有效计算
4.23MD5算法 MD5的全称是 message-digest algorithm5(信 息摘要算法),在90年代初由 MIT laboratory for computer science和 RSA data security inc的 ronald. rivest开发出来,经MD2、MD3和 MD4发展而来。 它的作用是让大容量信息在用数字签名软件签 署私人密匙前被“压缩”成一种保密的格式 (就是把一个任意长度的字节串变换成一定长 的大整数)。不管是MD2、MD4还是MD5, 它们都需要获得一个随机长度的信息并产生一 个128位的信息摘要
4.2.3 MD5算法 MD5的全称是message-digest algorithm 5(信 息 -摘要算法),在90年代初由MIT laboratory for computer science 和RSA data security inc 的 ronald l. rivest开发出来,经MD2 、MD3 和 MD4发展而来。 它的作用是让大容量信息在用数字签名软件签 署私人密匙前被“压缩”成一种保密的格式 (就是把一个任意长度的字节串变换成一定长 的大整数)。不管是MD2 、MD4还是MD5 , 它们都需要获得一个随机长度的信息并产生一 个128位的信息摘要
虽然这些算法的结构或多或少有些相似,但 MD2的设计与MD4和MD5完全不同,那是因 为MD2是为8位机器做过设计优化的,而MD4 和MD5却是面向32位的电脑。 Rivest在1989年开发出MD算法。在这个算法 中,首先对信息进行数据补位,使信息的字节 长度是16的倍数。然后,以一个16位的检验和 追加到信息末尾。并且根据这个新产生的信息 计算出散列值。后来, rogier和 chauvaud发现 如果忽略了检验将产生碰撞。MD2算法的加密 后结果是唯一的-既没有重复
虽然这些算法的结构或多或少有些相似,但 MD2的设计与MD4 和MD5完全不同,那是因 为MD2是为 8位机器做过设计优化的,而MD4 和MD5却是面向32位的电脑。 Rivest 在1989年开发出MD2算法。在这个算法 中,首先对信息进行数据补位,使信息的字节 长度是16的倍数。然后,以一个16位的检验和 追加到信息末尾。并且根据这个新产生的信息 计算出散列值。后来,rogier 和chauvaud发现 如果忽略了检验将产生碰撞。MD2算法的加密 后结果是唯一的--既没有重复