RSA编程作业

  • Post author:
  • Post category:其他


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 版权协议,转载请附上原文出处链接和本声明。