python 验证RSA密钥生成&加解密&签名验签算法实现

本文详细介绍了RSA加密、签名、验签的原理,并通过Python实现了1024位RSA密钥的生成,以及使用公钥加密、私钥解密和私钥签名、公钥验签的过程,最后给出了具体代码示例和运行结果。
摘要由CSDN通过智能技术生成

目录

一、RSA加密、解密、签名、验签(验证签名)&RSA算法原理

1、RSA加密、签名区别:

2、对签名和验签过程详细理解:

2.1 签名过程:

2.2 验签过程:

二、1024bit RSA Key生成

三、python 实现Public_key加密,Private_key解密

四、python  实现Private_Key签名,使用Public_Key验签

五、总结


一、RSA加密、解密、签名、验签(验证签名)&RSA算法原理

加密:加密是为了防止信息被泄露;

签名:签名是为了防止信息被篡改,保证数据完整性和发送方角色的可靠性和不可抵赖性。

RSA加密是一种非对称加密。可以在不直接传递密钥的情况下,完成解密;是由一对密钥来进行加解密的过程,分别称为公钥和私钥。两者之间有数学相关,该加密算法的原理就是对一极大整数做因数分解的困难性来保证安全性。通常个人保存私钥,公钥是公开的(可能同时多人持有)。

1RSA加密、签名区别:

这里将A理解为客户端,B理解为服务端,A、B分别有一对公钥和私钥。

1.1 加解密过程简述
A和B进行通信加密,B要先生成一对RSA密钥,B自己持有私钥,给A公钥 —>A使用B的公钥加密要发送的内容,然后B接收到密文后通过自己的私钥解密内容
1.2 签名验签过程简述
A给B发送消息,A先计算出消息的消息摘要,然后使用自己的私钥加密消息摘要,被加密的消息摘要就是签名.(A用自己的私钥给消息摘要加密成为签名)
B收到消息后,也会使用和A相同的方法提取消息摘要,然后用A的公钥解密签名,并与自己计算出来的消息摘要进行比较–>如果相同则说明消息是A发送给B的,同时,A也无法否认自己发送消息给B的事实.(B使用A的公钥解密签名文件的过程,叫做"验签").

2、对签名和验签过程详细理解:

2.1 签名过程:

2.1.1  A计算消息m的消息摘要,记为 h(m);

2.1.2  A使用私钥(n,d)对h(m)加密,生成签名s, s满足:s=(h(m))^d mod n;
2.1.3  由于A是用自己的私钥对消息摘要加密,所以只用使用s的公钥才能解密该消息摘要,这样A就不可否认自己发送了该消息给B;

2.1.4  A发送消息和签名(m,s)给B。

2.2 验签过程:

  • 15
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值