此代码仅是创建一个公钥和私钥对(并在单个字符上使用),但是如果我使用的质数大于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))
我的问题是,我可以在这里使用任何方法或内置函数来使其运行更快吗? (如果对解决方案有任何影响,它将用于我正在构建的安全消息传递应用程序中)