Open ISNJQR opened 7 years ago
import random
from math import sqrt
from os import chdir
from os import getcwd
chdir("E:\\TIPE")
Entrée = open("Texte à décrypter.txt","r")
Sortie = open("Texte décrypté.txt","w")
def modexp ( g, u, p ):
"""computes s = (g ^ u) mod p
args are base, exponent, modulus
(see Bruce Schneier's book, _Applied Cryptography_ p. 244)"""
s = 1
while u != 0:
if u & 1:
s = (s * g)%p
u >>= 1
g = (g * g)%p;
return s
u=input("Clef privée : U = ")
U=int(u)
n=input("Clef privée : N = ")
N=int(n)
Texte=Entrée.read()
CodeASCII=[]
Code=""
for i in range(len(Texte)):
if Texte[i]==",":
CodeASCII.append(int(Code))
Code=""
else:
Code+=Texte[i]
ASCIItoLettres=""
for k in range(0,len(CodeASCII)):
b=CodeASCII[k]
ASCIItoLettres+=chr(modexp(b,U,N))
Sortie.write(ASCIItoLettres)
Entrée.close()
Sortie.close()