Bonsoir à tous, j'essaye de me familiariser de plus en plus avec python, c'est pourquoi j'ai essayé de faire un premier code de chiffrement RSA très simple :
# fonction qui reçoit une chaîne de caractère ch et renvoie la liste ASCII de ses lettres
def Numerisation(ch) :
L=[]
for c in ch:
L.append(ord(c))
return(L)
# fonction qui reçoit une liste d'entiers et renvoie la ch qu'elle code
def ConversionStr(L):
ch=''
for k in range(len(L)): # pour chaque élément de L
ch=str(ch)+chr(L[k]) # fonction str pour convertir en ch
return(ch)
def F(a,n,c): # associe à un entier a le reste de la division euclidienne de a^c par n
a=(a**c)%n # % reste de la division euclidienne
return(a)
def RSA(L,n,c): # reçoit une liste d'entiers et renvoie la liste des éléments F(a,b,c) où a parcourt la liste L
E=[]
for a in range(len(L)): # pour chaque élément de L
E.append(F(a,n,c))
return(E)
def Cryptage(ch,n,c): # reçoit une ch et renvoie le cryptage RSA de ch avec n pour module et c pour clef
print(ConversionStr(RSA(Numerisation(ch),n,c)))
Cependant ma dernière fonction ne semble pas fonctionner correctement, je ne trouve pas le code attendu...
En entrant: Cryptage("Test",199,85)
Je reçois: Ä
alors qu'elle devrait renvoyer KS|o
Auriez vous une idée de où se trouve mon erreur ?
De plus, auriez vous des conseils pour optimiser mon programme ? voir d'aller plus loin pour que je puisse m'améliorer ?
Merci pour votre attention !