Master II: Réseaux et Télécommunication TP : Cryptographie et Sécurité Réseaux
Master II: Réseaux et Télécommunication TP : Cryptographie et Sécurité Réseaux Dr. A. Seddiki & Dr. A. Ghaz Dept. de Télécommunication, Faculté de Génie Electrique, UDL SBA p. 1/12 TP 1 : Initiation au Cryptage 1) Le cryptage de César: Le chiffre de César est la méthode de cryptographie la plus ancienne communément admise par l'histoire. Il consiste en une substitution mono-alphabétique : chaque lettre est remplacée ("substitution") par une seule autre ("mono-alphabétique"), selon un certain décalage dans l'alphabet ou de façon arbitraire. César avait coutume d'utiliser un décalage de 3 lettres : A devient D, B devient E, C devient F, etc. Ce système de cryptage est très simple à mettre en œuvre, cependant étant totalement symétrique, il suffit de faire une soustraction pour connaître le message initial. Une méthode primaire est d’essayer les 26 combinaisons possibles et voir si l’on peut obtenir un message compréhensible. Une méthode plus évoluée consiste à calculer les fréquences d'apparition des lettres dans le message chiffré (ce qui est beaucoup plus facile lorsque le message est long). Effectivement, selon la langue, certaines lettres reviennent plus couramment que d'autres (en français, par exemple, la lettre la plus utilisée est la lettre E), ainsi la lettre apparaissant le plus souvent dans un texte crypté par le chiffrage de César correspondra vraisemblablement à la lettre E, une simple soustraction donne alors la clé de cryptage. Substitution mono-alphabétique : La technique est élémentaire : il suffit de remplacer chaque lettre du texte à chiffrer par la lettre qui se situe n places plus loin dans l’alphabet. Par exemple si n=3, on remplacera A par D, B par E, C par F etc. 2) Le cryptage de Vigenère: Le chiffrement de Vigenère ressemble beaucoup au chiffrement de César, à la différence près qu'il utilise une clef plus longue afin de pallier le principal problème du chiffrement de César: le fait qu'une lettre puisse être codée d'une seule façon. Pour cela on utilise un mot clef au lieu d'un simple caractère. Substitution poly-alphabétique : Pour crypter, on choisit une clef (mot ou phrase). A chaque lettre du texte clair on fait correspondre une lettre de la clef (la clef étant répétée autant de fois que nécessaire). CLAIR 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 -> décalage = 3 CODE D E F G H I J K L M N O P Q R S T U V W X Y Z A B C Master II: Réseaux et Télécommunication TP : Cryptographie et Sécurité Réseaux Dr. A. Seddiki & Dr. A. Ghaz Dept. de Télécommunication, Faculté de Génie Electrique, UDL SBA p. 2/12 En posant C le texte codé, T le texte et K la clé, on peut traduire ceci par la formule : C = T + K [mod 26] Pour déchiffrer le message, il suffit de faire l'opération inverse: T = C - K [mod 26] Exemple : On associe dans un premier temps à chaque lettre un chiffre correspondant. 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 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 Texte Clé: Texte crypté : Manipulation : 1) Taper le programme 1. Dite de quel cryptage s’agit-il ? En déduire le déchiffrage ? 2) Taper le programme 2. Dite de quel cryptage s’agit-il ? En déduire le déchiffrage ? 3) On veut réaliser le cryptage de Vernam en utilisant le chiffrage XOR. Donner le programme ? R E N D E Z V O U S A M I D I 17 04 13 03 04 25 21 14 20 18 00 12 08 03 08 B O N J O U R 01 14 13 09 14 20 17 R+B E+O N+N D+J E+O Z+U V+R O+B U+O S+N A+J M+O I+U D+R I+B 17+01 04+14 13+13 03+09 04+14 25+20 21+17 14+01 20+14 18+13 00+09 12+14 08+20 03+17 08+01 S S A M C T L P I F J A C U K 18 18 26=0 [26] 12 28=2 [26] 45=19 [26] 37=11 [26] 15 34=8 [26] 31=5 [26] 09 26=0 [26] 28=2 [26] 20 09 Master II: Réseaux et Télécommunication TP : Cryptographie et Sécurité Réseaux Dr. A. Seddiki & Dr. A. Ghaz Dept. de Télécommunication, Faculté de Génie Electrique, UDL SBA p. 3/12 Programme 1 : clear all base = ['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']; plain = input('the original word or sentence (small letters only) ... ','s'); i = 1; n = input('how many shifts ? ... '); if n > 26 n = mod(n,26); end flag = 0; while i <= length(plain) if ismember(plain(i),'A':'Z') == 1 fprintf('The input is not suitable to this code. \n') flag = 1; %helps breaking the loop pleno = 'Please restart the program.'; break elseif isletter(plain(i)) == 1 y = strfind(base,plain(i)); z = y+n; if z > 26 z = z - 26; end pleno(i) = base(z); elseif isletter(plain(i)) == 0 if plain(i) == ' ' %lets space be space pleno(i) = plain(i); else fprintf('The input is not suitable to this code. \n') flag = 1; pleno = 'Please restart the program.'; end end i = i+1; if flag == 1 %breaking the loop if there are capital letters or numbers in the input break end end fprintf('Result = %s',pleno) fprintf('\n') Programme 2 : message=input('secret message:','s'); password=input('password:','s'); opp=input('decrypt(-1) or encrypt(1):'); password=password-97; [notused size_of_message]=size(message); [notused size_of_password]=size(password); pos=1; output=[]; for i=1:size_of_message output(i)=message(i)+password(pos).*opp; pos=pos+1; if (pos>size_of_password);% pos=1; end end out=sprintf('the mesaage est :%s',output); disp(out) Master II: Réseaux et Télécommunication TP : Cryptographie et Sécurité Réseaux Dr. A. Seddiki & Dr. A. Ghaz Dept. de Télécommunication, Faculté de Génie Electrique, UDL SBA p. 4/12 TP 2 : Réseau de Feistel Rappel : Les algorithmes à clé secrète réduite cherchent, bien sûr, à tendre vers la perfection. Et la perfection, en cryptographie, c'est l'aléatoire : il faut que le message codé paraisse aussi aléatoire que possible, pour limiter au minimum les risques d'une attaque par analyse du texte chiffré, de ses redondances, etc... Le problème est que, si l'on sait depuis longtemps construire des fonctions qui ont l'air aléatoire, on ne savait pas avant les travaux de Feistel construire des bijections aléatoires. La solution apportée par Horst Feistel, ingénieur chez IBM qui dirigea l'équipe qui conçut l'algorithme de chiffrement DES, est très élégante : on suppose par exemple qu'on a une fonction f "presque aléatoire" qui prend comme argument un mot de n bits, et renvoie un mot de n bits (qui donne l'impression d'avoir été choisi au hasard). F n'est pas supposée bijective, c'est-à-dire que deux mots différents peuvent avoir la même image par F (ceci signifie encore que, si on dispose d'un mot de n bits chiffré par F, on ne peut pas retrouver le mot initial). Principe : Un algorithme utilisant un schéma de Feistel va procéder en chiffrant des blocs de 2n bits, qu'on partage en 2, partie gauche G, partie droite D. L'image du bloc (G,D) par le schéma de Feistel est le bloc (L,R), avec L=D, et R=G⊕F(D) ou ⊕désigne le "ou exclusif" bit à bit. Cette transformation est cette fois bijective, car si on a un tel couple (L,R), on retrouve (G,D) par D=L et G=R⊕F(L). Manipulation : 1) Ecrire un programme en Matlab qui permet de chiffrer par un réseau de Feistel à deux rondes (2 tours) un message constitué de quatre bits, en utilisant deux clés K1 et K2 (cas : identiques et cas : non identiques). Voir l’effet dans les deux cas. 2) En déduire le programme qui permet de faire l’opération de déchiffrage, toujours à deux rondes et à deux clés. Interpréter les résultats. 3) Augmenter le nombre de rondes à 4 et à 8. Quel est l’effet sur le cryptage. (Pensez à utiliser une boucle). 4) Augmenter à présent la taille du message (utiliser un message par exemple texte) et le nombre de rondes à quatre. Interpréter. En déduire le déchiffrage. Master II: Réseaux et Télécommunication TP : Cryptographie et Sécurité Réseaux Dr. A. Seddiki & Dr. A. Ghaz Dept. de Télécommunication, Faculté de Génie Electrique, UDL SBA p. 5/12 TP 3 : Cryptage Symétrique DES Master II: Réseaux et Télécommunication TP : Cryptographie et Sécurité Réseaux Dr. A. Seddiki & Dr. A. Ghaz Dept. de Télécommunication, Faculté de Génie Electrique, UDL SBA p. 6/12 Master II: Réseaux et Télécommunication TP : Cryptographie et Sécurité Réseaux Dr. A. Seddiki & Dr. A. Ghaz Dept. de Télécommunication, Faculté de Génie Electrique, UDL SBA p. 7/12 Master II: Réseaux et Télécommunication TP : Cryptographie et Sécurité Réseaux Dr. A. Seddiki & Dr. A. Ghaz Dept. de uploads/Ingenierie_Lourd/ fiches-tp-crypto-seddiki.pdf
Documents similaires










-
29
-
0
-
0
Licence et utilisation
Gratuit pour un usage personnel Attribution requise- Détails
- Publié le Fev 19, 2021
- Catégorie Heavy Engineering/...
- Langue French
- Taille du fichier 1.4547MB