密码学问题 为什么RSA数字签名一定要先签名、后加密?我是初学者,谢谢!!!
发布网友
发布时间:2022-04-25 23:35
我来回答
共2个回答
热心网友
时间:2023-10-17 17:53
我是这么觉得:
签名的一个目的是:防止签名双方抵赖。
如果先加密的话,到时候他有可能不认账。
而且,特别是针对RSA签名算法,有一种专门针对先加密后签名的攻击。为了防止这种攻击,推荐采用先签名后加密。
这种攻击方法为:
假设签名者A用先加密后签名的方法把消息x发给B,他是先用B的公钥eb对x加密,然后用自己的私钥da签名,设A的模数为na,B的为nb,那么,A发给B的密文为:
(x^eb
mod
nb)^da
mod
na
如果B不诚实,那么B可能伪造A的签名。谎称收到的是x1.因为nb是B的模数,所以B知道nb的分解,于是可以计算模nb的离散对数。
(x1)^k=x
mod
nb
之后,B再公布他的新公钥。然后宣布收到的是x1不是x。
热心网友
时间:2023-10-17 17:53
当然是签名也要加密了,加密以后这个签名就不能伪造了,就不会存在什么中间人攻击了。
换句话说,把签名放在锁着的盒子里总要比帖在锁着的盒子上安全。(这可是数字签名,如果不加密就很容易复制的。)
再看看别人怎么说的。