RSA简述了加密算法的过程
A与B进行加密通信时,B首先,生成一对密钥。一个是公钥,给它,给它。A,B持有自己的私钥。A使用B的公钥加密发送的内容,然后B通过自己的私钥解密内容。
想要B发消息,A将首先计算消息摘要,然后使用自己的私钥加密摘要加密,最后发送加密的消息摘要和消息B,加密信息摘要是“签名”。
B收到消息后,也会用与A相同的方法提取消息摘要,然后用A的公钥解密A发送的签名,并与自己计算的消息摘要进行比较。如果是一样的,这意味着消息是A发送给B的,A也不能否认自己给B发信息的事实。
其中,A用自己的私钥加密信息摘要“签名”;B使用A的公钥解密签名文件的过程称为“验签”。
数字签名的作用是保证数据的完整性、机密性和发送人角色的不可抵赖性
以下是签名和验证过程的简要描述:
签名过程:
1.A计算消息m的消息摘要记为h(m)
2.A使用私钥(n,d)对h(m)加密,生成签名s,s满足:
s=(h(m))^dmodn;
因为A用自己的私钥加密消息摘要,所以只有使用s的公钥才能解密消息摘要,所以A不可否认他把消息发给了B。
3.A发送信息和签名(m,s)给B。
验签过程:
1.B计算消息m的消息摘要记为h(m);
2.B使用A的公钥(n,e)解密s,得到
H(m)=s^emodn;
3.B比较H(m)与h(m),相同则证明
以下简要总结了加密和解密的完整过程。
签名过程:
1.A提取消息m的消息摘要h(m),使用自己的私钥摘要h(m)加密,生成签名s
2.A用B公钥加密签名s和消息m,生成密文c,发送给B。
验证过程:
1.B接收到密文c,使用自己的私钥解密c获得明文m和数字签名s
2.B使用A公钥解密数字签名s解密得到H(m).
3.B用同样的方法提取消息m的消息摘要h(m)
4.B比较两条新闻摘要。相同的验证成功;不同的验证失败。