Inscription / Connexion Nouveau Sujet
Niveau Prepa (autre)
Partager :

Cryptage RSA

Posté par
romy14356
25-10-21 à 19:37

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 !

Posté par
Ulmiere
re : Cryptage RSA 25-10-21 à 20:35

Commençons déjà par corriger les bugs avant d'optimiser


 for a in range(len(L)):  # pour chaque élément de L
        E.append(F(a,n,c)) 


Là tu parcours 0,1,2,3,...,L-1
remplace F(a,n,c) par F(L[a],n,c) et dis nous si ça fonctionne de ton côté. Je ne peux pas tester pour le moment j'ai pas python sous la main



Vous devez être membre accéder à ce service...

Pas encore inscrit ?

1 compte par personne, multi-compte interdit !

Ou identifiez-vous :


Rester sur la page

Inscription gratuite

Fiches en rapport

parmi 1675 fiches de maths

Désolé, votre version d'Internet Explorer est plus que périmée ! Merci de le mettre à jour ou de télécharger Firefox ou Google Chrome pour utiliser le site. Votre ordinateur vous remerciera !