本帖最后由 唐天玮 于 2022-5-30 22:03 编辑
一、加解密过程简述 A 和B进行通信加密,B 要先生成一对RSA密钥,B自己持有私钥,给A公钥 —>A使用B的公钥加密要发送的内容,然后B接收到密文后通过自己的私钥解密内容。 二、签名验签过程简述 A给B发送消息,A先计算出消息的消息摘要,然后使用自己的私钥加密消息摘要,被加密的消息摘要就是签名.(A用自己的私钥给消息摘要加密成为签名)。 B 收到消息后,也会使用和A相同的方法提取消息摘要,然后用A的公钥解密签名, 并与自己计算出来的消息摘要进行比较–>如果相同则说明消息是A发送给B的,同时,A也无法否认自己发送消息给B的事实.(B使用A的公钥解密签名文件的过程,叫做"验签")。 三、签名和验签过程详细理解 签名过程: (1). A计算消息m的消息摘要,记为 h(m) (2). A使用私钥(n,d)对h(m)加密,生成签名s, s满足:s=(h(m))^d mod n; 由于A是用自己的私钥对消息摘要加密,所以只用使用s的公钥才能解密该消息摘要,这样A就不可否认自己发送了该消息给B (3). A发送消息和签名(m,s)给B 验签过程: (1). B计算消息m的消息摘要(计算方式和A相同),记为h(m) (2). B使用A的公钥(n,e)解密s,得到 H(m), H(m) = s^e mod n (3). B比较H(m)与h(m),相同才能证明验签成功
四、代码部分 |