def CalculateD_207252(fain,e1):
cun = fain
t0 = 0
t1 = 1
list1 = fain // e1
list4 = fain % e1
list7 = t0 - list1 * t1
while (list4 != 1):
fain = e1
e1 = list4
t0 = t1
t1 = list7
list1 = fain // e1
list4 = fain % e1
list7 = t0 - list1 * t1
while (list7 < 0):
list7 += cun
return list7
def Encrypt_207252(a,m,n):
exe=LRFun_207252(a, m, n)
return exe
def Dec2Bin_207252(e):
erjin=format(e,'b')
list(str(erjin))
return erjin
def LRFun_207252(a,m,n):
list1=m
final=(int(list1[0])*a)%n
for i in range(len(list1)-1):
if list1[i+1]=='0':
final=(final*final)%n
elif list1[i+1]=='1':
final1=(final*final)%n
final=(a*final1)%n
return final
# 输入两个素数
p = int(input("请输入质数p:"))
q = int(input("请输入质数q:"))
# 输入所取的公钥
e = int(input("请输入质数e:"))
m=int(input("请输入明文m:"))
n = p * q
fain = (p - 1) * (q - 1)
print("求得私钥为",CalculateD_207252(fain,e) )
a=m
min=Dec2Bin_207252(e)
print("加密结果为:",Encrypt_207252(a,min,fain))
简单地密码学作业,大佬勿喷
版权声明:本文为m0_58348028原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。