(1) 执行过程如下:

  • 密钥产生:选择两个大素数p、q,计算g使得g属于Z*p且ord(g)=q。选择私钥x属于Zq并计算公钥y=g^x mod p。
  • 签名产生:Alice对消息m进行签名,计算h=hash(m) mod q,z=x*h^(-1) mod q,s=g^z mod p。
  • 签名验证:Bob对签名进行验证,计算h=hash(m) mod q,y'=s^h mod p,验证等式y'=y是否成立。如果成立,Bob接受签名,否则拒绝签名。

在签名合法的条件下,有s=g^z mod p,即s=g^(xh^(-1)) mod p。将其代入y=g^x mod p,得到y=s^hy'^(-1) mod p。因为y'=s^h mod p,所以y'=y'^(-1) mod p。代入上式得到y=y',即签名合法。

(2) 窃听者可以使用重放攻击伪造签名。具体来说,窃听者可以拦截Alice发送的签名信息并将其重新发送给Bob,从而让Bob误以为这是Alice的合法签名。因为签名只依赖于消息m和私钥x,所以窃听者可以使用相同的消息和不同的私钥x'来重新计算签名,从而伪造签名。

1、考虑下面的数宇签名方案。1密钥产生p、q是两个大素数g属于Zpordg= q私钥x属于 Zq公钥 y = g^x mod p。2签名产生Alice 对消息m进行签名时她计算 h = hashm mod qz = x modh^-1 qs=g^zmod p即为m的签名。3签名验证 Bob 对签名验证他计算 h = hashm mod qy = s^h mod p验证等式y = y是否成立。如果成

原文地址: https://www.cveoy.top/t/topic/crE0 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录