python实现RSA数字签名(纯算法实现) 您所在的位置:网站首页 消息摘要和数字签名 python实现RSA数字签名(纯算法实现)

python实现RSA数字签名(纯算法实现)

2024-06-12 02:38| 来源: 网络整理| 查看: 265

python实现RSA数字签名(纯算法实现) 一:什么是数字签名

数字签名是只有信息的发送者才能产生的别人无法伪造的一段数字串,这段数字串同时也是对信息的发送者发送信息真实性的一个有效证明。它是一种类似写在纸上的普通的物理签名,但是在使用了公钥加密领域的技术来实现的,用于鉴别数字信息的方法。一套数字签名通常定义两种互补的运算,一个用于签名,另一个用于验证。数字签名是非对称密钥加密技术与数字摘要技术的应用。

请添加图片描述

二:数字签名的原理

请添加图片描述

发送方将先生成一对公私钥,将公钥放到网络上,发送方利用私钥将文件或者消息进行签名。接收方得到发送方的文件或者消息、公钥以及生成的签名;首先利用公钥将得到签名生成消息摘要,在对比文件或者消息的消息摘要,如果匹配,则签名认证成功。

三:数字签名的作用

请添加图片描述

四:实现数字签名的算法

分为三种:RSA、DSA、ECDSA

五:具备前提知识RSA算法

RSA加密过程:

步骤说明描述1选择一对不相等且足够大的质数p,q2计算p,q的乘积n=p*q3计算n的欧拉函数φ(n)=(p-1)*(q-1)4选一个与φ(n)互质的整数e1> n) | (x 'd' : d, 'e' : e, 'n' : N} #得出公钥与私钥 return keys #SHA256算法得到消息摘要 def hashing(M, size = 5): aa=zy.Sha256sum(M) #得到哈希值 cc=int(aa, 16) % 10 ** (size * 2 - 2)#将哈希值转化为整型 return cc #将消息摘要进行签名 def signMessage(M, d, N): s = power(M, d, N) #使用私钥签名 hashM**d mod N 得到签名内容 return s #将得到 def verifySign(s, e,n): w = power(s, e, n) return w 十:运行截图

1、对汉字的数字签名运行结果

请添加图片描述

2、对英文hello world 进行数字签名的运行结果

请添加图片描述

3、对后缀为.png图片生成数字签名的运行结果

请添加图片描述

4、对后缀为.doc的文档进行数字签名的运行结果

请添加图片描述

十一:整体代码

此处没有写出主函数,如要参考,请参考github

如要参加完整代码、ppt讲解、文档:请参考(纯算法,没有调用库)python实现RSA数字签名代码、ppt、文档.rar

最后:如有任何问题,可以私信博主

看到博主编写文章不容易,不点赞,关注,收藏在走吗???

请添加图片描述



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有