Vous êtes sur la page 1sur 27

MODULE : INTRODUCTION A LA CRYPTOGRAPHIE

TP N° 01

-- Laktarni Ahlam
Chiffrement de césar
-- Programme capturé sur spyder --
msg = str(input("entrez le message clair en majiscule :"))
decalage = int(input("entrez le decalage :"))

def cesar(msg,decalage):
alphabet = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"
texteChiffre = ""
for i in range(len(msg)) :
for j in range(len(alphabet)):
if msg[i] == alphabet[j]:
texteChiffre = texteChiffre+alphabet[(j+decalage) % 26]
return texteChiffre
print(" le message crypté est :",cesar(msg,decalage))
-- Affichage sur spyder --
Chiffrement de vigenere
-- Programme capturé sur spyder --
A. Chiffrement par addition
msg_clair=list(input("enter le message clair "))
cle=list(input("donner la clé "))
msg_chif=[]
liste_somme=[]
cle=cle*int(len(msg_clair)-len(msg_clair))
cle=cle[:len(msg_clair)]
liste_alphabets=list("abcdefghijklmnopqrstuvwxyz")
for i in range (len(msg_clair)):
c=liste_alphabets.index(msg_clair[i])
d=liste_alphabets.index(cle[i])
liste_somme.append(c+d)
if liste_somme[i]>26:
liste_somme[i]=liste_somme[i]-26
print(liste_somme)
for i in range(len(liste_somme)):
msg_chif.append(liste_alphabets[liste_somme[i]])
print(msg_chif)
B. Chiffrement par table
message_clair=input("entrer le message clair en majiscule :")
cle=input("Donnez le cle en majiscule :")
cpt=""
lr=len(message_clair)-len(cle)
if len(cle)<len(message_clair):
for i in range(lr):
cpt+=cle
a="ABCDEFGHIJKLMNOPQRSTUVWXYZ"
b="BCDEFGHIJKLMNOPQRSTUVWXYZA"
c="CDEFGHIJKLMNOPQRSTUVWXYZAB"
d="DEFGHIJKLMNOPQRSTUVWXYZABC"
e="EFGHIJKLMNOPQRSTUVWXYZABCD"
f="FGHIJKLMNOPQRSTUVWXYZABCDE"
g="GHIJKLMNOPQRSTUVWXYZABCDEF"
h="HIJKLMNOPQRSTUVWXYZABCDEFG"
i="IJKLMNOPQRSTUVWXYZABCDEFGH"
j="JKLMNOPQRSTUVWXYZABCDEFGHI"
k="KLMNOPQRSTUVWXYZABCDEFGHIJ" message_chiffre=""
l="LMNOPQRSTUVWXYZABCDEFGHIJK" for i in range(len(message_clair)):
m="MNOPQRSTUVWXYZABCDEFGHIJKL" caract_m=message_clair[i]
n="NOPQRSTUVWXYZABCDEFGHIJKLM" caract_c=cpt[i]
o="OPQRSTUVWXYZABCDEFGHIJKLMN" asc_m=ord(caract_m)
p="PQRSTUVWXYZABCDEFGHIJKLMNO" asc_c=ord(caract_c)
q="QRSTUVWXYZABCDEFGHIJKLMNOP" if caract_m==" ":
r="RSTUVWXYZABCDEFGHIJKLMNOPQ" caractcode=" "
s="STUVWXYZABCDEFGHIJKLMNOPQR" elif asc_m>=65 or asc_m<=90 and asc_c>=65 or
asc_c<=90:
t="TUVWXYZABCDEFGHIJKLMNOPQRS"
deca_m=asc_m-65
u="UVWXYZABCDEFGHIJKLMNOPQRST"
deca_c=asc_c-65
v="VWXYZABCDEFGHIJKLMNOPQRSTU"
deca_L=L[deca_c]
w="WXYZABCDEFGHIJKLMNOPQRSTUV"
caractcode=deca_L[deca_m]
x="XYZABCDEFGHIJKLMNOPQRSTUVW"
caractcode=chr(ord(caractcode))
y="YZABCDEFGHIJKLMNOPQRSTUVWX"
message_chiffre+=caractcode
z="ZABCDEFGHIJKLMNOPQRSTUVWXY"
print( "Le message crypté est :",message_chiffre)
L=[a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z]
Chiffrement par carre de polybe
A .Carré de polybe 5*5 : (sans clé)
-- Programme capturé sur spyder --
def polybe(message):
l=[["A","B","C","D","E"],["F","G","H","IJ","K"],
["L","M","N","O","P"] ,["Q","R","S","T","U"],["V","w","X","Y","Z"]]
msg_chiffre=""
for k in range(len(message)):
for i in range(len(l)):
for j in range(len(l[i])):
if message[k]==l[i][j]:
msg_chiffre=msg_chiffre+str(i+1)+str(j+1)
return msg_chiffre
message=input("donner le message clair en majiscule :")
print("le message crypté est :",polybe(message))
-- Affichage sur spyder --
B . Carré de polybe 6*6 : (avec les chiffre)
-- Programme capturé sur spyder --
matrice = [["A","B","C","D","E","F"],
["G","H","I","J","K","L"],
["M","N","O","P","Q","R"], for k in range(len(msg_clair)):
["S","T","U","V","W","X"], for i in range(len(a)):
["Y","Z","0","1","2","3"], for j in range(len(a[i])):
["4","5","6","7","8","9"]] if msg_clair[k] == a[i][j]:
print(matrice) result = result+str(i+1)+str(j+1)
msg_clair = input("Veuillez entrer le return result
message clair en majiscule :")
print(msg_clair)
msg_chiffre = polybe(msg_clair, matrice)
def polybe(msg_clair, a):
print("Le message chiffré est :",msg_chiffre)
result = ""
-- Affichage sur spyder --
Chiffrement ADFGVX
Chiffrement DE VERNAM
-- Programme capturé sur spyder --
def Vernam(texte, cle):
message_chiffre = "";
ptr = 0;
for char in texte:
message_chiffre = message_chiffre + chr(ord(char) ^ ord(cle[ptr]));
ptr = ptr + 1;
if ptr == len(cle):
ptr = 0;
return message_chiffre
while True:
texte= input("entrer le texte a chiffre :");
cle=input("donner la cle :")
print("le texte chiffre est :" ,Vernam(texte,cle))
-- Affichage sur spyder --

Vous aimerez peut-être aussi