无效创建公钥和私钥

时间:2018-09-12 08:43:19

标签: python performance runtime rsa public-key-encryption

此代码仅是创建一个公钥和私钥对(并在单个字符上使用),但是如果我使用的质数大于1500,则创建这些密钥并加密/解密密钥需要花费很长时间。单个字符。

我的代码是:

from math import gcd
import random

prime_numbers=[1223, 1033]

def phi_function(x):
    x=(p-1)*(q-1)
    return(x)

def is_coprime(x, y):
    z=gcd(x, y)
    if z==1:
        return True
    if z!=1:
        return False

def encryption_key_generator(x, y):
    list_p=[]
    for i in range(1, x):
        i2 = i+1
        if is_coprime(i2, y)==True:
            if is_coprime(i2, phi)==True:
                list_p.append(i+1)
    z=(list_p[len(list_p)-(random.randint(1, len(list_p)))], y)
    return z

def decryption_key_generator(x, y, z):
    list_p=[]
    for i in range(z):
        i2=i+1
        if (x*i2)%y == 1:
            list_p.append(i2)
    q=(list_p[len(list_p)-1], z)
    return (q)

p=prime_numbers[0]
q=prime_numbers[1]
n=p*q
phi=phi_function(n)
encryption_key=encryption_key_generator(phi, n)
decryption_key=decryption_key_generator(encryption_key[0], phi, n)
#print('encryption_key = '+str(encryption_key))
#print('decryption_key = '+str(decryption_key))

x=input('text:   ')

x1=ord(x)
y=(x1**(encryption_key[0]))%(encryption_key[1])
y=chr(y)

y1=ord(y)
z=(y1**(decryption_key[0]))%(decryption_key[1])
print(chr(z))

我的问题是,我可以在这里使用任何方法或内置函数来使其运行更快吗? (如果对解决方案有任何影响,它将用于我正在构建的安全消息传递应用程序中)

0 个答案:

没有答案