python rsa 公钥解密,python实现rsa加密解密
本文主要为大家介绍python密码学RSA算法和密钥创建教程。有需要的朋友可以借鉴一下,希望能有所帮助。祝大家进步很大,早日升职加薪。
目录
RSA算法步骤1:生成RSA模数步骤2:导出数(E)步骤:公钥步骤43360私钥加密公式解密公式生成RSA密钥算法Cryptomath模块RabinMiller模块生成RSA密钥完整代码
RSA算法
RSA算法是一种公钥加密技术,被认为是最安全的加密方法。它是由Rivest,Shamir和Adleman在1978年发明的,因此被命名为RSA算法。
RSA算法有以下特点:
RSA算法是有限域中包含素数的整数的流行指数运算。/p此方法中使用的整数大到难以求解。在该算法中有两组密钥3360,私钥和公钥。您必须完成以下步骤来使用RSA算法3360
步骤1:生成RSA模数
初始过程从选择两个素数P和Q开始,然后计算它们的乘积N,如图所示;
N=p*q
这里,设n是指定的大数。
步骤2:派生数(e)
把数E看成一个导数,应该大于1,小于(p-1)和(q-1)。主要条件是(p-1)和(q-1)应该没有公因数,除了1
步骤3:公钥
指定一对数字N和E组成RSA公钥,并将其公开。
步骤4:私钥
私钥D是根据数字P,Q,e计算出来的,数字之间的数学关系如下:3360
ed=1mod(p-1)(q-1)
以上公式是扩展欧几里德算法的基本公式,以P和Q为输入参数。
加密公式
考虑向公钥为(n,e)的人的发送方发送一条明文消息。要以给定的方案加密纯文本消息,请使用以下语法3360
C=Pemodn
解密公式
解密过程非常简单,包括对系统方法计算的分析。考虑到接收者C有私钥D,结果模数将被计算为:
明文=Cdmodn
生成RSA密钥
我们将重点介绍用Python一步步实现RSA算法。
生成RSA密钥3360涉及以下步骤。
创建两个大素数,分别是P和q,这些数的乘积称为N,其中n=p * q生成一个随机数,有(p-1)和(q-1)个相对素数。调用数字e .计算e的模倒数.计算的倒数称为d .
生成RSA密钥的算法
我们需要两个主要算法来使用Python和minus生成RSA密钥;密码数学模块和拉宾米勒模块。
Cryptomath模块
Cryptomath源代码遵循RSA算法的所有基本模块如下
ps;">def gcd(a, b):
while a != 0:
a, b = b % a, a
return b
def findModInverse(a, m):
if gcd(a, m) != 1:
return None
u1, u2, u3 = 1, 0, a
v1, v2, v3 = 0, 1, m
while v3 != 0:
q = u3 // v3
v1, v2, v3, u1, u2, u3 = (u1 - q * v1), (u2 - q * v2), (u3 - q * v3), v1, v2, v3
return u1 % m
RabinMiller模块
源代码遵循RSA算法的所有基本实现的RabinMiller模块如下<
import random
生成RSA密钥完整代码
import random, sys, os, rabinMiller, cryptomath
输出
生成公钥和私钥并将其保存在相应的文件中,如以下输出所示.
以上就是python密码学RSA算法及秘钥创建教程的详细内容,更多关于python密码学RSA算法秘钥的资料请关注盛行IT软件开发工作室其它相关文章!
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。