[PDF] Exercices de cryptographie - univ-reunionfr



Previous PDF Next PDF







Corrig e - DIENS

Introduction a la cryptographie Examen (d) (4pts) Identi er et expliquer quelles sont les vulnerabilit es d’un tel cryptosyst eme Solution 1 Il s’agit d’un chi rement sym etrique, la cl e de d echi rement peut ^etre facilement d eduite a partir de la cl e de chi rement (c’est l’inverse modulo 30)



Cryptographie Paris 13

La cryptographie est l’art de rendre inintelligible, de crypter, de coder, un message pour ceux qui ne sont pas habilit´es a en prendre connaissance Le chiffre, le code est le proc´ed´e, l’algorithme, la fonction, qui permet de



Exercices et problèmes de cryptographie - Dunod

Exercices et problèmes de cryptographie déjà un véritable spécialiste, capable de se confronter aux multiples concepts que la cryptologie moderne a développés ces trente dernières années A un moment où la cryptologie est au cœur de la société de l’information, de l’internet aux moyens de



TD Cryptographie et ACL

Exercice 1 cryptographie symétrique Soit M un message divisé en blocs {x1,x2,x3, xp}chacun de taille n bits et soit K une clé de même taille que les blocs (n bits) Soit {c1,c2,c3, cp}les cryptogrammes des blocs obtenus en appliquant la clé K aux blocs Le chiffrement des blocs se fait selon le schéma suivant:



TD 2 : Le cryptosyst eme RSA 1 Example de protocole RSA

Introduction a la cryptographie TD 2 2 Applications Exercice 5 Connaissant la cl e publique (n = 119;e = 5) de ce cryptogramme RSA 7 bits, (on consid ere des nombres a 7 bits soit inf erieurs a 27 = 128) : 090 086 036 067 032 001 003 031 059 031 1 Calculez (par tout les moyens a votre disposition) p et q 2 Calculez la cl e secr ete d 3



Exercices de cryptographie - univ-reunionfr

Exercices de cryptographie M1 informatique 1 Cryptographieclassique 1 1 Divers 1 Donnezletexteenclaircorrespondantautextecryptésuivant: irwimkriqirx hi wigyvmxi



1 Le chiffrement de César - Cours et exercices de

Les ordinateurs ont révolutionné la cryptographie et surtout le décryptage d’un message intercepté Nous montrons ici, à l’aide du langage Pythoncomment programmer et attaquer le chiffrement de César Tout d’abord la fonction de chiffrement se programme en une seule ligne : Code 1 (cesar py (1)) def cesar_chiffre_nb(x,k): return (x



Feuille d’exercices 8

Universit¶e Pierre et Marie Curie M1 Cryptographie Ann¶ee 2010 Feuille d’exercices 8 Avertissement: tous les exercices ne seront pas trait¶es durant les s¶eances; pour en suivre l’avancement veuillez consulter mon site personnel dans la rubrique Forum Cryptosystµemes Exercice 1 Soit E la cubique d¶eflnie sur F11 d’¶equation y2





1 Codage et décodage RSA - imag

4 Cryptographie à clef publique par résidu quadra-tique Soient a et b deux entiers; on dit que a 6= 0 est un arrcé (ou ésidur quadratique ) modulo b ssi il existe x tel que x2 ≡ a mod b On dit alors que x est une aciner arrceé de a modulo b Dans tout l'exercice, p et q désignent deux nombres premiers di érents de 2 et n = p q 1

[PDF] les nombres en lettres pdf

[PDF] les nombres en lettres de 0 ? 1000

[PDF] ap seconde chiffres significatifs

[PDF] chiffres significatifs excel

[PDF] les chiffres significatifs cours

[PDF] chiffres significatifs sinus

[PDF] precision d une mesure et chiffres significatifs

[PDF] chiffres significatifs exacts

[PDF] chiffres significatifs exos

[PDF] exercices chiffres significatifs 2nde

[PDF] les nombres cardinaux en anglais pdf

[PDF] les nombres en anglais pdf

[PDF] les nombres et les chiffres en anglais pdf

[PDF] l'heure en anglais pdf

[PDF] les nombres ordinaux anglais de 1 ? 100

Exercices de cryptographie

M1 informatique

1 Cryptographie classique

1.1 Divers

1. Donnez le texte en clair corr espondantau texte crypté suiv ant: irwimkriqirx hi wigyvmxi qewxiv mrjsvqexmuyi 2. On considère le c hiffrede Hill a vecm= 2,a= 3,b= 5,c= 2etd= 7. Codez le message

Helloet décodez le messagePBAQT BRD.

3. Relev ezles c hallengesde cryptographie prop oséspar le site

NewbieCon test.

1.2 Programmation

Implémentez les chiffres suivants, par exemple en Python ou pour une plate-forme mobile. L"utilisateur doit pouvoir : choisir sa clé s"il y a lieu, crypter et décrypter. -(Substitutions)Atbash, César, Vigenère, homophone avec carré de Polybe, Playfair, Hill (cas oùm= 2uniquement). -(Transpositions)Transposition rectangulaire. -(Surchiffrements)Delastelle.

Dans un premier temps, seules les lettres du message à traiter seront cryptées/décryptées (les

autres caractères seront ignorés). Dans un second temps, vous étendrez les programmes n"utilisant

pas de carré de Polybe à la portion de la table ASCII allant du caractère 32 (espace) au caractère

126 (tilde).

2 DES simplifié

On considère une simplification de l"algorithme DES dans laquelle les clés et les blocs ont une

taille de 16 bits (au lieu de 64). Les tables utilisées dans cette simplification sont en annexe, à la fin

de ce document (section A ). On considère les éléments suivants donnés en notation hexadécimale :

K= 0x1a2b;la clé

M= 0x3c4d;un bloc du texte en clair.

Les conversions entre écritures hexadécimales et binaires se font simplement en utilisant le tableau

de correspondances suivant :hexa01234567 bin00000001001000110100010101100111 hexa89abcdef bin10001001101010111100110111101111 Par exemple, 23 en hexadécimal correspond à0010|{z}

20011|{z}

3en binaire.

1. Calculer les deux sous-blo csde 8 bits L0etR0(figure1 ). 1

2.Appliquer l"expansion EsurR0pour obtenirE(R0)(figure2 ).

3. Dériv erla première sous-clé K1(figure3 ); la rotation à gauche est de 1 bit. 4. Calculer A=E(R0)K1, oùest le ou exclusif (xor). 5. Group erles bits de Aen 2 blocs de 6 éléments et calculer la valeur fournie par la S-BoxS1 sur le premier bloc et celle fournie parS2sur le second bloc (figures2 et 4 ). 6. Concaténer les résultats obten usà la question ( 5 ) ci-dessus pour obtenir la suiteBde 8 bits. 7. Appliquer la p ermutationPàBpour obtenirP(B)(figure2 ). 8.

Calculer R1=P(B)L0.

9. Écrire en hexadécimal le blo cc hiffréL1R1obtenu (figure1 ).

3 DES complet

Les tables utilisées dans l"algorithme DES complet sont en annexe, à la fin de ce document (section B ). On considère les éléments suivants donnés en notation hexadécimale :

K= 0x0123456789abcdef;la clé

M= 0x23456789abcdef01;un bloc du texte en clair.

Les conversions entre écritures hexadécimales et binaires se font comme à l"exercice précédent.

1. Calculer les deux sous-blo csde 3 2bits L0etR0(figure1 ). 2. Appliquer l"expansion EsurR0pour obtenirE(R0)(figure2 ). 3. Dériv erla première sous-clé K1(figure3 ); la rotation à gauche est de 1 bit. 4. Calculer A=E(R0)K1, oùest le ou exclusif (xor). 5. Group erles bits de Aen blocs de 6 éléments et calculer les valeurs fournies par les S-Box S

1, ...,S8correspondantes (figures2 et 4 ).

6. Concaténer les résu ltatsobten usà la question ( 5 ) ci-dessus pour obtenir la suiteBde 32 bits. 7. Appliquer la p ermutationPàBpour obtenirP(B)(figure2 ). 8.

Calculer R1=P(B)L0.

9. Écrire en hexadécimal le blo cc hiffréL1R1obtenu (figure1 ). Vérifiez vos réponses en implémentant l"algorithme du DES en Python. 4 RSA

Calculs à la main

On choisitp= 5etq= 11.

1.

Com bienv autn?

2.

Com bienv aut(n)?

3.

On c hoisite= 3: est-ce correct? Pourquoi?

4.

Donnez une v aleurcorrecte p ourd.

5.

Cryptez le message M= 5.

Un sujet d"examen

Résolvez l"exercice 1 du

sujet d"examen de 20 09. 2 Figure1 - Les 16 rondes du DES, oùIPest la permutation initiale,FPla permutation finale,

Fla fonction de Feistel etle ou exclusif (xor).Figure2 - La fonction de FeistelF, oùEest l"expansion,le ou exclusif (xor), lesS1, ...,S8

sont les S-Box etPest la permutation. 3 Figure3 - Calcul des sous-clés du DES. La notation<<Un petit (?) programme Le but de cet exercice est d"écrire un programme Python permettant de créer des espions s"envoyant des messages cryptés au moyen de l"algorithme RSA. Chaque espion possède une clé

publique et une clé privée qui sont fabriquées à la création de l"espion. Le programme doit proposer

le menu suivant à l"utilisateur et exécuter l"action correspondant à son choix :

1) Creer un espion

2) Afficher la liste des espions

3) Envoyer un message

4) Quitter le programme

Nombres premiers

Écrivez le moduleEratosthenepermettant de gérer les nombres premiers. Vous prévoirez les

éléments suivants.

La liste criblequi sert à stocker les nombres premiers qui sont calculés pendant l"exécution

du programme. La fonction estPremierprenant en argument un entier et renvoyanttruesi et seulement si l"entier est premier. Vous écrirez cette méthode en utilisant la technique du crible d"Era- tosthène. La fonction getprenant en argument une borne (un entier) et renvoyant un nombre premier strictement plus petit que cette borne et choisi au hasard.

Modulo

Écrivez le moduleModulopermettant de gérer des calculs dansZ=nZ. Vous prévoirez les

éléments suivants.

La fonction inverseprenant en argument deux entiersaetnet renvoyant l"inverse dea modulon. La fonction puissanceprenant en argument trois entiersa,betnet renvoyant le nombre : (aà la puissanceb) modulon. 4

Schéma de remplissage

Écrivez le moduleOAEPpermettant de gérer le schéma de remplissage précédant le cryptage.

Vous prévoirez :

les fonctions GetHcalculant un résumé (digest) de leur argument, par exemple en utilisant

SHA1 ou MD5 (module

hashlib de Python); la fonction padprenant en argument un message en clairmet renvoyant les nombresXetY calculés par le schéma de remplissage OAEP; vous vous arrangerez pour que ces nombres soient plus petits que l"entierndu cryptage RSA; la fonction unpadprenant en argument des nombresXetY(supposés calculés par OAEP) et renvoyant le messagemcorrespondant.

Les espions

Écrivez la classeEspionpermettant de gérer les espions créés par l"utilisateur. Vous prévoirez

les éléments suivants. Les attributs p,q,n,phi_n,eetd(des entiers) correspondant aux nombres du même nom dans l"algorithme RSA. L"attribut nom(une chaîne de caractères) permettant de stocker le nom de l"espion. Un constructeur don tles argumen tsson t: un ec haînede caractères p ermettantd"initia- liser le nom, un entier permettant d"initialiserpet un entier permettant d"initialiserq. Ce constructeur devra calculer la valeur denet dephi_n, choisir au hasard une valeur convenable pourepuis calculer la valeur ded. Les métho desget_e,get_netgetNomqui renvoient respectivement la valeur de l"attribut e,netnom. La métho decrypterprenant en argument un message (une chaîne de caractères) et deux entierseetnet qui crypte le message en utilisant la clé publique(e,n). La m éthodedecrypterprenant en argument un message crypté, qui décrypte le message

en utilisant la clé privée(d,n)(attributs définis ci dessus) et qui renvoie une chaîne de

caractères correspondant au message en clair. La métho de__str__qui renvoie une chaîne de caractères de la formenom(e,n)(oùnom, eetnsont remplacés par leur valeur).

Le programme principal

Le programme principal devra afficher le menu, demander à l"utilisateur quel est son choix, effectuer l"opération correspondante puis recommencer, ceci tant que l"utilisateur ne demande pas

de quitter le programme. Le programme devra gérer la liste des espions créés par l"utilisateur.

-Création d"un espion: le programme doit demander à l"utilisateur le nom de l"espion ainsi que deux entiers premierspetq, vérifier quepetqsont bien premiers (si ce n"est pas le cas il faut redemander ces valeurs), créer un espion à partir de ces données et ajouter l"espion créé à la liste des espions. -Afficher la liste des espions: le programme doit afficher la liste des espions qui ont été créés par l"utilisateur. -Envoyer un message: le programme doit demander à l"utilisateur le nom de l"espion ex- péditeur, le nom de l"espion destinataire (si ces noms n"existent pas il faut les redemander),

le contenu du message, afficher le message crypté par l"expéditeur et afficher le résultat du

décryptage (par le destinataire) du message crypté par l"expéditeur (ce message décrypté

doit correspondre au message en clair original lorsque tout va bien). Par exemple :

Nom de l"expediteur: Austin

Nom du destinataire: Felicity

Message a envoyer: Yeah baby, yeah!

Austin envoie le message crypte suivant a Felicity: 37 57 95 25 95 37 57

151 0 0 95 95 95 37 95 95 94 25 1 151 0 0 94 25 95 25 95 37 57 151 0 1

Felicity decrypte le message de Austin: Yeah baby, yeah! 5

5 Fonctions de hachage

On considère l"algorithme MD5 appliqué à des blocs de 32 bits (au lieu de 512). On part du messageM= 0x2345abc(notation hexadécimale). Les conversions entre écritures hexadécimales et binaires se font simplement en considérant le tableau de correspondances de l"exercice 3

1.Remplissage.On modifie le schéma de remplissage de MD5 pour obtenir un message dont

la longueur est un multiple de 32. Soitlla taille en bits deM. On ajoute un 1 à la fin deM, puis suffisamment de 0 pour que le message obtenu ait une longueur inférieure de

8 bits à un multiple de 32. Ensuite, on ajoute à la fin de ce message la valeur del, codée

en binaire sur 8 bits. Calculez le messageM0obtenu par ce procédé et les blocs de 32 bits M

00,M01, ... issus deM0.

2.Une étape de calcul.On s"intéresse au traitement du blocM00. On utilise les éléments

suivants.

4 buffers de 8 bits A,B,CetDinitialisés ainsi :

A= 0x01B= 0x89C= 0xfeD= 0x76:

La fonction Fqui prend des arguments codés sur 8 bits et renvoie une valeur sur 8 bits, les opérations se faisant bit à bit :

F(B;C;D) = (B^C)_(:B^D):

Un tableau Kde 64 cases initialisées ainsi : pour tout0i63,

K[i] =b28 jsin(i+ 1)jc:

Un tableau Wde 4 cases initialisées ainsi :W[0]contient les 8 premiers bits (en partant de la gauche) deM00,W[1]contient les 8 bits suivants, et ainsi de suite. La partie itérative de l"algorithme MD5 consiste à effectuer 4 rondes, chacune subdivisée en 16 opérations similaires. Calculez le contenu du registreBaprès la première opération de la première ronde, définie de la façon suivante :

B=B+ ((A+F(B;C;D) +W[0] +K[0])<<<7)

où+désigne l"addition modulo28et<<<7une rotation à gauche de 7 bits.

A Tables pour l"algorithme DES simplifié

A.1 Permutation initialeIP

Entrée : 16 bits. Sortie : 16 bits. Le1erbit de la sortie est obtenu en prenant le16ebit de

l"entrée, le second en prenant le14ebit de l"entrée, ..., le dernier en prenant le1erbit de l"entrée.161412108642

15131197531

A.2 ExpansionE

quotesdbs_dbs4.pdfusesText_8