数宇签名方案安全性分析:窃听者能否伪造签名?

问题背景:

考虑以下数宇签名方案:

(1) 密钥产生:

  • p、q 是两个大素数.* g 属于 Zp, ord(g) = q. 私钥 x 属于 Zq.* 公钥 y = g^x mod p.

(2) 签名产生:

Alice 对消息 m 进行签名时:

  • 计算 h = hash(m) mod q.* 计算 z = xh^(-1) mod q. 计算 s = g^z mod p,s 即为 m 的签名.

(3) 签名验证:

Bob 对签名进行验证:

  • 计算 h = hash(m) mod q.* 计算 y' = s^h mod p.* 验证等式 y' = y 是否成立. 若成立,则 Bob 接受签名,否则拒绝签名.

问题:

(2) 窃听者可以伪造签名吗?如果可以,请说明窃听者如何伪造签名.

答案:

(2) 窃听者不能伪造签名.

原因:

签名的生成过程使用了私钥 x,而窃听者不知道 x 的值,因此无法计算出正确的签名. 即使窃听者知道了 h,也无法计算出正确的 z 和 s.

具体来说:

  • 窃听者无法根据公钥 y = g^x mod p 反推出私钥 x,因为这是一个离散对数问题,在计算上是不可行的.* 即使窃听者截获了多组消息及其对应的签名 (m1, s1), (m2, s2)..., 也无法从中推导出私钥 x 或伪造新的签名.

因此,该签名方案在防止伪造签名方面是安全的.

标签: 常规


原文地址: https://gggwd.com/t/topic/f01c 著作权归作者所有。请勿转载和采集!