cryptology in python
def decryption(a,b,ci): latters="ABCDEFGHIJKLMNOPQRSTUVWXYZ" orginal=" " inv=inverse(a) for x in range(len(ci)): c=latters.index(ci[x]) plain=inv*(c-b)%26 orginal+=latters[plain] return orginal def encryption(a,b,orginal): ci=" " latters="abcdefghijklmnopqrstuvwxyz" for x in range(len(orginal)): plain=latters.index(orginal[x]) c=(a*plain+b)%26 ci+=latters[c] return ci def inverse(x): for y in range(0,26): if (x*y)%26==1: print(y) return y def gcdevisor(x,y): while y: x,y=y,x%y return x def bruteForce(ci): latters="ABCDEFGHIJKLMNOPQRSTUVWXYZ" print("The program will provide random guesses, type N if the guess is wrong and Y if it's correct when prompted.") for k in range(0,26): g=" " for x in range(len(ci)): c=latters.index(ci[x]) plain=(c-k)%26 g+=latters[plain] print(g) t=raw_input("Y/N?:") if t=='Y': print("Key:",k) return g def main(): print("Welcome to the Affine Cipher!") print("enter #1 for encryption") print("enter #2 for decryption") print("enter #3 for brute Attack") c=int(input()) if c==1: orginal=raw_input("Please enter what you want to encrypt (LOWER CASE): ") a=int(input("Enter key A: ")) b=int(input("Enter key B: ")) if (gcdevisor(a,26)!=1 or b>25): print("Invalid KEY") else: orginal=encryption(a,b,orginal) print("Encrypted string:") print(orginal) elif c==2: ci=raw_input("Please enter a cipher (UPPER CASE): ") a=int(input("Enter key A: ")) b=int(input("Enter key B: ")) if (gcdevisor(a,26)!=1 or b>25): print("Invalid KEY") else: ci=decryption(a,b,ci) print("Decrypted string:") print(ci) elif c==3: ci=raw_input("Please enter a shift cipher (UPPER CASE): ") ci=bruteForce(ci) else: print("ERROR") main()