def decryptRSA(): p = int(raw_input("What is your first prime: ")) q = int(raw_input("What is your second prime: ")) n = p*q totient = (p-1)*(q-1) e = int(raw_input("what is your e value: ")) d = Crypto.modinv(e,totient) message = [] count = int(raw_input("How many numbers in your message: ")) for i in range(0,count): message.append(int(raw_input("What is the next number: "))) print('') decrypt='' for i in message: decrypt += chr(i**d%n) print(decrypt)
def decryptRSAPrimes(): n = int(raw_input("What is your n: ")) factors = Crypto.factorize(n) p=factors[0] q=factors[1] totient = (p-1)*(q-1) e = int(raw_input("what is your e value: ")) d = Crypto.modinv(e,totient) message = [] count = int(raw_input("How many numbers in your message: ")) for i in range(0,count): message.append(int(raw_input("What is the next number: "))) print('') decrypt='' for i in message: decrypt += chr((i**d%n)) print(decrypt)
print("[e] Calculate multiplicative inverse") print("[f] Calculate entropy") print("[g] Perform a shift") print("[h] Decrypt RSA with primes") print("[i] Decrypt RSA without primes") print("[x] Exit\n>>> ") answer = raw_input() if answer == 'a': Modular_Exponent() elif answer == 'b': n = int(raw_input("What number do you want to factor: ")) print(Crypto.factorize(n)) elif answer == 'c': totient() elif answer == 'd': x = int(raw_input("Enter your first number: ")) y = int(raw_input("Enter your second number: ")) print("The gcd is: " + str(Crypto.egcd(x,y)[0])) elif answer == 'e': x = int(raw_input("Enter your number: ")) y = int(raw_input("Enter your mod: ")) print("The inverse is: " + str(Crypto.modinv(x,y))) elif answer == 'f': Crypto.entropy() elif answer == 'g': Crypto.shift() elif answer == 'h': RSA.decryptRSA() elif answer == 'i': RSA.decryptRSAPrimes()