Protection de l information - 61 exercices corrigés

Documents pareils
Cryptographie et fonctions à sens unique

Fonction de hachage et signatures électroniques

ÉPREUVE COMMUNE DE TIPE Partie D

INF 4420: Sécurité Informatique Cryptographie II

Chapitre VI - Méthodes de factorisation

Cryptographie RSA. Introduction Opérations Attaques. Cryptographie RSA NGUYEN Tuong Lan - LIU Yi 1

Chapitre 7. Sécurité des réseaux. Services, attaques et mécanismes cryptographiques. Hdhili M.H. Cours Administration et sécurité des réseaux

Sommaire Introduction Les bases de la cryptographie Introduction aux concepts d infrastructure à clés publiques Conclusions Références

Cryptologie. Algorithmes à clé publique. Jean-Marc Robert. Génie logiciel et des TI

1 Définition et premières propriétés des congruences

Quelques tests de primalité

Exercices - Polynômes : corrigé. Opérations sur les polynômes

Travail d intérêt personnel encadré : La cryptographie

Cours 14. Crypto. 2004, Marc-André Léger

Cryptographie. Master de cryptographie Architectures PKI. 23 mars Université Rennes 1

CRYPTOGRAPHIE. Signature électronique. E. Bresson. SGDN/DCSSI Laboratoire de cryptographie

Nombres premiers. Comment reconnaître un nombre premier? Mais...

Problèmes arithmétiques issus de la cryptographie reposant sur les réseaux

MATHÉMATIQUES DISCRÈTES (4) CRYPTOGRAPHIE CLASSIQUE

Cryptographie. Cours 3/8 - Chiffrement asymétrique

Gestion des Clés Publiques (PKI)

Les fonctions de hachage, un domaine à la mode

Introduction à l étude des Corps Finis

Factorisation d entiers (première partie)

108y= 1 où x et y sont des entiers

Résolution d équations non linéaires

Calcul matriciel. Définition 1 Une matrice de format (m,n) est un tableau rectangulaire de mn éléments, rangés en m lignes et n colonnes.

Petite introduction aux protocoles cryptographiques. Master d informatique M2

Tests de primalité et cryptographie

Modes opératoires pour le chiffrement symétrique

Programmation linéaire

Authentification de messages et mots de passe

Université d Aix-Marseille Master Réseaux & Télécoms Cryptographie

Cours d arithmétique Première partie

Calculateur quantique: factorisation des entiers

Arithmétique binaire. Chapitre. 5.1 Notions Bit Mot

TECHNIQUES DE CRYPTOGRAPHIE

La cryptographie du futur

Gestion des Clés. Pr Belkhir Abdelkader. 10/04/2013 Pr BELKHIR Abdelkader

Durée de L épreuve : 2 heures. Barème : Exercice n 4 : 1 ) 1 point 2 ) 2 points 3 ) 1 point

Panorama de la cryptographie des courbes elliptiques

Probabilités sur un univers fini

Les protocoles cryptographiques

Souad EL Bernoussi. Groupe d Analyse Numérique et Optimisation Rabat http ://

Représentation des Nombres

Exercices types Algorithmique et simulation numérique Oral Mathématiques et algorithmique Banque PT

Cryptologie et physique quantique : Espoirs et menaces. Objectifs 2. distribué sous licence creative common détails sur

Définitions. Numéro à préciser. (Durée : )

TP 2 : Chiffrement par blocs

Architectures PKI. Sébastien VARRETTE

Sécurité des réseaux IPSec

Contexte. Pour cela, elles doivent être très compliquées, c est-à-dire elles doivent être très différentes des fonctions simples,

Signature électronique. Romain Kolb 31/10/2008

De même, le périmètre P d un cercle de rayon 1 vaut P = 2π (par définition de π). Mais, on peut démontrer (difficilement!) que

Carl-Louis-Ferdinand von Lindemann ( )

0x700. Cryptologie Pearson France Techniques de hacking, 2e éd. Jon Erickson

UEO11 COURS/TD 1. nombres entiers et réels codés en mémoire centrale. Caractères alphabétiques et caractères spéciaux.

Le protocole sécurisé SSL

DOCM Solutions officielles = n 2 10.

Initiation à l algorithmique

Cryptographie Quantique

Objets Combinatoires élementaires

Vous revisiterez tous les nombres rencontrés au collège, en commençant par les nombres entiers pour finir par les nombres réels.

Aristote Groupe PIN. Utilisations pratiques de la cryptographie. Frédéric Pailler (CNES) 13 janvier 2009

INITIATION AU LANGAGE C SUR PIC DE MICROSHIP

Licence Sciences et Technologies Examen janvier 2010

LES SECURITES DE LA CARTE BANCAIRE

Polynômes à plusieurs variables. Résultant

Quelques algorithmes simples dont l analyse n est pas si simple

Nouveaux résultats en cryptographie basée sur les codes correcteurs d erreurs

Image d un intervalle par une fonction continue

Protocoles d authentification

Texte Agrégation limitée par diffusion interne

Commun à tous les candidats

Extrait du poly de Stage de Grésillon 1, août 2010

Comparaison de fonctions Développements limités. Chapitre 10

Devoir Surveillé de Sécurité des Réseaux

Capacité d un canal Second Théorème de Shannon. Théorie de l information 1/34

1 Recherche en table par balayage

FICHE UE Licence/Master Sciences, Technologies, Santé Mention Informatique

Continuité et dérivabilité d une fonction

1/24. I passer d un problème exprimé en français à la réalisation d un. I expressions arithmétiques. I structures de contrôle (tests, boucles)

Des codes secrets dans la carte bleue. François Dubois 1

CRYPTOGRAPHIE. Chiffrement par flot. E. Bresson. SGDN/DCSSI Laboratoire de cryptographie

Développements limités. Notion de développement limité

Corrigé des TD 1 à 5

Exercices sur le chapitre «Probabilités»

FONDEMENTS DES MATHÉMATIQUES

Cryptographie appliquée

Représentation d un entier en base b

Baccalauréat ES Pondichéry 7 avril 2014 Corrigé

Problème 1 : applications du plan affine

TIW4 : SÉCURITÉ DES SYSTÈMES D INFORMATION

Exo7. Calculs de déterminants. Fiche corrigée par Arnaud Bodin. Exercice 1 Calculer les déterminants des matrices suivantes : Exercice 2.

Développement décimal d un réel

Chapitre 11. Séries de Fourier. Nous supposons connues les formules donnant les coefficients de Fourier d une fonction 2 - périodique :

Fonctions de plusieurs variables

Travaux dirigés d introduction aux Probabilités

La Licence Mathématiques et Economie-MASS Université de Sciences Sociales de Toulouse 1

Transcription:

1 Pierre-Louis CAYREL www.cayrel.net Protection de l information - 61 exercices corrigés 1 / 63

2

Table des matières 1 Énoncés 7 1.1 Ordres de grandeur.................................. 7 1.1.1 Mot de passe................................. 7 1.1.2 Dénombrements................................ 7 1.1.3 Vider l océan avec un dé à coudre...................... 7 1.1.4 La force brute................................. 7 1.1.5 La loi de Moore................................ 8 1.2 Vigénère, Polybe et Hill............................... 8 1.2.1 César/Vigénère................................ 8 1.2.2 Chiffrement de Vigénère........................... 9 1.2.3 Chiffrement de Polybe............................ 9 1.2.4 Chiffrement affine............................... 9 1.2.5 Chiffrement de Hill.............................. 10 1.3 Chiffrement et modes de chiffrement........................ 11 1.3.1 Cryptographie à clé secrète.......................... 11 1.3.2 Amélioration d un système de chiffrement................. 11 1.3.3 Mode ECB.................................. 11 1.3.4 Mode CBC.................................. 12 1.3.5 Mode CTR.................................. 12 1.3.6 Attaque par insertion............................. 12 1.3.7 Malléabilité des chiffrements à flot...................... 13 1.3.8 3DES et 2DES................................ 13 1.3.9 Algorithme de Berlekamp-Massey...................... 13 1.4 Méthodes de calcul.................................. 15 1.4.1 Square and Multiply............................. 15 1.4.2 Calcul modulaire............................... 15 1.4.3 Théorème des restes chinois......................... 15 1.4.4 Autour des nombres premiers........................ 17 1.4.5 Test de primalité de Miller-Rabin...................... 17 1.4.6 Algorithme p 1 de Pollard......................... 17 1.4.7 Théorème de Wilson............................. 17 1.5 Échange de clefs.................................... 18 1.5.1 Fonctionnement clé privée vs clé publique................. 18 1.5.2 Clé privée vs clé publique.......................... 18 1.5.3 Diffie-Hellman................................. 18 1.5.4 Perte d une clé privée............................. 18 1.5.5 Attaque par le milieu de Diffie-Hellman................... 18 1.6 Chiffrement...................................... 19 1.6.1 Kid-RSA.................................... 19 3

4 TABLE DES MATIÈRES 1.6.2 Chiffrement/Déchiffrement RSA....................... 19 1.6.3 Exemples de RSA............................... 19 1.6.4 Chiffrement RSA............................... 20 1.6.5 RSA-3..................................... 20 1.6.6 Chiffrement El Gamal............................ 21 1.6.7 Changement de clés.............................. 21 1.7 Attaques sur RSA................................... 22 1.7.1 Attaque par module commun........................ 22 1.7.2 De φ(n) à la factorisation.......................... 22 1.7.3 RSA avec deux facteurs trop proches.................... 22 1.7.4 Malléabilité de RSA............................. 23 1.7.5 Le temps de factorisation des grands entiers................ 23 1.8 Signature et hachage................................. 24 1.8.1 Signature RSA................................ 24 1.8.2 Signature aveugle avec RSA......................... 24 1.8.3 Signature El Gamal.............................. 24 1.8.4 Signature El Gamal : utilisation de l aléa.................. 24 1.8.5 Signature El Gamal sans vérification modulaire.............. 25 1.8.6 Signature GHR (Gennaro-Halevi-Rabin).................. 25 1.9 Hachage........................................ 26 1.9.1 Fonction de hachage faiblement sans collision............... 26 1.9.2 Fonction de hachage et signature...................... 26 1.9.3 Le buzz free mobile.............................. 26 1.10 Authentification.................................... 27 1.10.1 Authentification à clef secrète........................ 27 1.10.2 Authentification à clef publique....................... 27 1.10.3 Schéma de Schnorr.............................. 28 1.11 PKI, Certificats.................................... 29 1.11.1 PKI...................................... 29 1.11.2 Certificats................................... 29 1.11.3 Distinguer les clefs utilisées dans PGP................... 29 1.11.4 Hachés de mots de passe........................... 29 1.11.5 Le protocole HTTPS............................. 30 1.11.6 La carte bleue................................. 30 2 Corrections 31 2.1 Pour se familiariser avec les ordres de grandeur.................. 31 2.1.1 Mot de passe................................. 31 2.1.2 Dénombrements................................ 31 2.1.3 Vider l océan avec un dé à coudre...................... 31 2.1.4 La force brute................................. 32 2.1.5 La loi de Moore................................ 32 2.2 Vigénère, Polybe et Hill............................... 34 2.2.1 César/Vigénère................................ 34 2.2.2 Chiffrement de Vigénère........................... 34 2.2.3 Chiffrement de Polybe............................ 34 2.2.4 Chiffrement affine............................... 34 2.2.5 Chiffrement de Hill.............................. 35 2.3 Chiffrement et modes de chiffrement........................ 36

TABLE DES MATIÈRES 5 2.3.1 Cryptographie à clé secrète.......................... 36 2.3.2 Amélioration d un système de chiffrement................. 36 2.3.3 Mode ECB.................................. 36 2.3.4 Mode CBC.................................. 36 2.3.5 Mode CTR.................................. 37 2.3.6 Attaque par insertion............................. 37 2.3.7 Malléabilité des chiffrements par flot.................... 37 2.3.8 3DES et 2DES................................ 38 2.3.9 Algorithme de Berlekamp-Massey...................... 39 2.4 Méthodes de calcul.................................. 40 2.4.1 Square and Multiply............................. 40 2.4.2 Calcul modulaire............................... 40 2.4.3 Théorème des restes chinois......................... 40 2.4.4 Autour des nombres premiers........................ 41 2.4.5 Test de primalité de Miller-Rabin...................... 42 2.4.6 Algorithme p 1 de Pollard......................... 42 2.4.7 Théorème de Wilson............................. 43 2.5 Échange de clefs.................................... 44 2.5.1 Fonctionnement clé privée vs clé publique................. 44 2.5.2 Clé privée vs clé publique.......................... 44 2.5.3 Perte d une clé privée............................. 44 2.5.4 Diffie-Hellman................................. 44 2.5.5 Attaque par le milieu de Diffie-Hellman................... 45 2.6 Chiffrement...................................... 46 2.6.1 Kid-RSA.................................... 46 2.6.2 Chiffrement/Déchiffrement RSA....................... 46 2.6.3 Exemple de RSA............................... 47 2.6.4 Chiffrement RSA............................... 48 2.6.5 RSA-3..................................... 49 2.6.6 Chiffrement El Gamal............................ 51 2.6.7 Changement de clés.............................. 51 2.7 Attaques sur RSA................................... 52 2.7.1 Attaque par module commun........................ 52 2.7.2 De φ(n) à la factorisation.......................... 52 2.7.3 RSA avec deux facteurs trop proches.................... 52 2.7.4 Malléabilité de RSA............................. 53 2.7.5 Le temps de factorisation des grands entiers................ 53 2.8 Signature....................................... 54 2.8.1 Signature RSA................................ 54 2.8.2 Signature aveugle avec RSA......................... 54 2.8.3 Signature El Gamal.............................. 55 2.8.4 Signature El Gamal : utilisation de l aléa.................. 55 2.8.5 Signature El Gamal sans vérification modulaire.............. 56 2.8.6 Signature GHR (Gennaro-Halevi-Rabin).................. 56 2.9 Hachage........................................ 57 2.9.1 Fonction de hachage faiblement sans collision............... 57 2.9.2 Fonction de hachage et signature...................... 57 2.9.3 Le buzz free mobile.............................. 57 2.10 Authentification.................................... 58 5 / 63

6 TABLE DES MATIÈRES 2.10.1 Authentification à clef secrète........................ 58 2.10.2 Authentification à clef publique....................... 58 2.10.3 Schéma de Schnorr.............................. 58 2.11 PKI, certificats.................................... 59 2.11.1 PKI...................................... 59 2.11.2 Certificats................................... 59 2.11.3 Distinguer les clefs utilisées dans PGP................... 59 2.11.4 Hachés de mots de passe........................... 60 2.11.5 Le protocole HTTPS............................. 60 2.11.6 La carte bleue................................. 61 Ces exercices ont été inspirés par les supports de cours/td de : Didier Alquié Christine Bacchoc Florent Bernard Emmanuel Bresson Céline Chevalier Philippe Gaborit Arthur Hecker Jean Leneutre Philippe Oechslin Rodolphe Ortalo Nouha Oualha Emmanuel Thomé Damien Vergnaud

Chapitre 1 Énoncés Cryptographie à clef secrète 1.1 Ordres de grandeur 1.1.1 Mot de passe Un système est protégé par un mot de passe, après un essai infructueux le système attend 1s avant de redemander. Combien de temps faudra-t-il pour s identifier dans les cas suivants : 1. le mot de passe est un prénom 1 ; 2. c est un mot du dictionnaire 2 ; 3. il est composé de 4 chiffres ; 4. il fait 8 caractères. 1.1.2 Dénombrements Le nombre de clés disponibles dans un système de chiffrement donne une borne maximale de sa sécurité (mesure de la complexité d une recherche exhaustive). 1. Quel est le nombre de clés possibles dans un chiffrement de César? 2. Pour un chiffrement affine? (C(x) = ax + b mod 26 pour chaque caractère x Z 26 ) 3. Pour un chiffrement par substitution (substitution arbitraire, caractère par caractère)? 4. Pour un chiffrement de Vigénère (avec une clé de longueur k)? 1.1.3 Vider l océan avec un dé à coudre On considère qu un dé à coudre est un cylindre de 1, 5 cm. de hauteur pour 1, 5 cm de diamètre. Selon l Institut Français des Mers, les océans couvrent 360 millions de km 2 avec une profondeur moyenne de 3800 m. Encadrer entre deux puissances de 2 consécutives le nombre de dés à coudre d eau que contiennent les océans. 1.1.4 La force brute Le facteur de travail d un algorithme est le nombre d instructions élémentaires nécessaire à son exécution. La puissance d une machine est le nombre d instructions qu elle exécute par unité 1. L INSEE publie la liste des 20 000 prénoms donnés en France depuis 1946. En pratique, seul un millier de prénoms suffit à désigner plus de la moitié de la population française. 2. Le français compte environ 200 000 mots dont seulement 3000 sont utilisés couramment. 7

8 CHAPITRE 1. ÉNONCÉS de temps. La puissance d un PC actuel est d environ 2000 Mips. (millions d instructions par secondes). Le facteur de travail d un algorithme optimisé pour tester une clé de 128 bits de l algorithme AES est d environ 1200 instructions élémentaires. On dispose d un couple clair/chiffré connu et on désire retrouver la clé utilisée par force brute, c est- à-dire en testant toutes les clés les unes après les autres. Une clé est constituée d un mot de 128 symboles binaires. On suppose que toutes les clés sont équiprobables. 1. En combien de temps une machine de 2000 Mips teste-t-elle une clé? 2. Combien y a-t-il de clés possibles? Quel est le nombre moyen de clés à tester avant de trouver la bonne? 3. À quel temps moyen de calcul cela correspond-il si on suppose que le milliard de PC de l internet sont mobilisés à cette tâche? 1.1.5 La loi de Moore Il est admis que, grâce aux progrès technologiques permanents, la puissance des machines double en moyenne tous les 18 mois (loi de Moore). On suppose maintenant que l on change les machines tous les mois (30 jours) en commençant avec une machine d une puissance de 1000 Mips. Pour tout entier n, on note W n le nombre d instructions exécutées par la machine du mois n. 1. Quel est le facteur d amélioration a de la puissance des machines d un mois à l autre? 2. Calculer W 0, puis W n en fonction de W 0, de a et de n. 3. Quel est le temps moyen nécessaire pour trouver la clé (de l exercice précédent)? 1.2 Vigénère, Polybe et Hill 1.2.1 César/Vigénère Le chiffrement de César prend un texte composé de lettres, et décale chaque lettre d un nombre constant de positions dans l alphabet. Ce nombre de positions est la clé. Pour déterminer la clé à partir d un message chiffré, on fait des suppositions statistiques sur le message d entrée. Par exemple, si on suppose que le message est en français, la lettre la plus fréquente est le e. Par ordre décroissant de fréquence, on trouve : e, s, a, i, t, n, r, u. 1. Est-il plus facile de déchiffrer un texte long ou un texte court? 2. Pouvez-vous déchiffrer le message suivant : pwpnetzyacpdtopyetpwwp Le chiffrement de Vigénère (en fait du à Alberti au XVème siècle) est une sorte de César amélioré. La clé est constituée non pas d un, mais de plusieurs décalages. Cette clé est spécifiée sous forme d un mot qui constitue la clé. Par exemple la clé bac, de longueur trois, spécifie que pour chiffré un message, on décale la première lettre d une position (lettre b), la deuxième de zéro positions (lettre a), la troisième de deux positions (lettre c), et ainsi de suite en reprenant la clé au début. 3. Si l attaquant obtient la connaissance d un couple message clair / message chiffré, peut-il déchiffrer tous les messages chiffrés ensuite avec cette même clé? 4. On suppose que seulement un message chiffré est à disposition de l attaquant. Si un attaquant connaît la longueur de la clé, comment faire pour déchiffrer?

1.2. VIGÉNÈRE, POLYBE ET HILL 9 5. D une manière générale, ce système de chiffrement est-il difficile à casser? 1.2.2 Chiffrement de Vigénère 1. Chiffrer à l aide de l algorithme de Vigénère le texte suivant : textesecretadecoder en utilisant comme clé le mot crypto ; 2. Pour le même texte clair on obtient le texte chiffré suivant brqksmzcspxiqxtcxzr. Quelle est la clé? 3. Même question si le chiffré est aaabbbcccdddeeefffg. Que remarque-t-on? 1.2.3 Chiffrement de Polybe On considère l alphabet privé du W, soit 25 lettres. Polybe a proposé le mécanisme suivant : on range les lettres dans un tableau 5 5, en commençant par le mot clé (et en supprimant les doublons), puis on continue avec les lettres restantes de l alphabet, dans l ordre. Par exemple, avec le mot-clé MYSTERE, on construit le tableau suivant : 1 2 3 4 5 1 M Y S T E 2 R A B C D 3 F G H I J 4 K L N O P 5 Q U V X Z Le chiffrement s effectue alors en remplaçant chqaue lettre par les deux chiffres : ligne colonne qui indiquent sa position dans la grille. Par exemple, F est chiffré 31. 1. Expliquer comment on peut cryptanalyser un tel système : par une attaque à clair connu, puis dans une attaque simple (seulement un chiffré). Raoul envoie un message à Anna pour lui fixer rendez-vous. Le cryptogramme est le suivant : 123222 512215 424215 512242 242255 534352 111524 225254 322252 512211 515222 532251 142251 154352 21 2. Décrypter ce message. Quelle est la sévérité de l attaque (distinguer le chiffré d un aléa, cassage total,...)? 1.2.4 Chiffrement affine 1. On représente l alphabet latin par les entiers entre 0 et 25 avec la convention A = 0, B = 1, C = 2,... Un chiffrement affine x ax+b mod 26 transforme le message CRYPTO en le cryptogramme ROXEYZ. Trouver la clé (a, b)correspondante. 2. Le message clair CRYPTO a cette fois été chiffré deux fois de suite par un chiffre affine de clé (a, b ) (c est-à-dire qu on a chiffré le chiffré) pour donner en sortie NGBAMX. (a) Montrer que NGBAMX est le chiffré de CRYPTO par un chiffre affine de clé (a, b ). Trouver (a, b ). 9 / 63

10 CHAPITRE 1. ÉNONCÉS 1.2.5 Chiffrement de Hill Examen 2012-2013 Dans le chiffrement de Hill, chaque lettre de l alphabet est représentée par un entier compris entre 0 et 25. L algorithme est un chiffrement par blocs de m lettres, qui transforme un bloc (x 1, x 2,..., x m ) en un bloc (y 1, y 2,..., y m ) défini par la relation algébrique : (y 1, y 2,..., y m ) = (x 1, x 2,..., x m ) A où A est une matrice carrée d ordre m à coefficients dans Z 26, tous les calculs sont effectués modulo 26. ( ) 5 1 Par exemple avec m = 2 et A =, le message (10, 21) est chiffré en : 12 3 (10, 21) A = (10 5 + 21 12, 10 + 21 3) = (16, 21). Sachant que le chiffrement du mot chiffrement avec la même clé donne le chiffré jvfrtqealv. Décrypter (partiellement, les 4 premiers caractères suffiront) le texte suivant qui a été obtenu en appliquant le chiffrement de Hill sur des blocs de taille 2 sur un mot de la langue française : gzatzxjihvbreosu 4pts Indications : ( ) a b Posons : M = M c d 4 (Z 26 ) la matrice à utiliser pour le déchiffrement. Le fait que M transforme ( le bigramme ) ( jv) en le bigramme ch et le bigramme fr en le bigramme 9 5 2 8 if, nous donne 3 : M. = 21 17 7 5 3. Si la matrice n est pas inversible, prenez le bigramme suivant.

1.3. CHIFFREMENT ET MODES DE CHIFFREMENT 11 1.3 Chiffrement et modes de chiffrement 1.3.1 Cryptographie à clé secrète Examen 2012-2013 1. Quel candidat a gagné le concours AES? 0.5pt 2. Expliquer la différence entre décoder, déchiffrer et décrypter. 1.5pt 3. Que signifie confusion et diffusion? 2pts 4. Quelles sont les grandes idées utilisées en chiffrement par blocs? 1.5pt 5. Citer 3 noms de cryptographes (célèbres) 4 ayant travaillé sur les schémas de chiffrement par blocs. 0.5pt 1.3.2 Amélioration d un système de chiffrement Monsieur X utilise pour chiffrer ses données privées le cryptosystème DES, paramétré par une clé secrète k de 56 bits connue de lui seul. Comme Monsieur X a entendu dire que 56 bits étaient bien peu de nos jours, il envisage de rendre plus sûr le stockage de ses données en chiffrant une seconde fois toutes ses données, avec la clé DES k = k + 1 (pour chaque donnée en clair m, la donnée chiffrée est donc c = DES k+1 (DES k (m)), où k désigne la clé). 1. Est-ce une bonne idée? 2. Discuter les avantages et/ou les inconvénients. 3. Monsieur X pense à une autre amélioration possible. Il va chiffrer une fois avec DES, et une fois avec AES128. Comme AES128 a besoin de clés de 128 bits, il va paramétrer son chiffrement DES par sa clé secrète k, et pour son chiffrement AES128 la mêeme clé secrète k, mais avec des zéros pour faire le remplissage. Est-ce mieux? 4. Quelle erreur fondamentale Monsieur X commet-il, eu égard aux principes de Kerckhoffs? 1.3.3 Mode ECB Le mode de chiffrement ECB (Electronic Code Book ou Dictionnaire de code) est le mode de chiffrement le plus simple que l on puisse imaginer : chaque bloc de données est chiffré indépendamment par la fonction de chiffrement. 1. Ce mode de chiffrement n est pas sûr, expliquer pourquoi. 2. Jack, qui gagne 105000 euros par an, a retrouvé l entrée chiffrée qui lui correspond dans la base de données des salaires de son entreprise : Q92DFPVXC9IO Sachant que la fonction de chiffrement utilisé a des blocs de deux caractères et que le service informatique de son entreprise ne comprend aucun expert en cryptographie (entendre par là, utilise le mode ECB!), retrouver le salaire de Jane la patronne de Jack parmi le reste de la base de données : TOAV6RFPY5VXC9, YPFGFPDFDFIO, Q9AXFPC9IOIO, ACED4TFPVXIOIO, UTJSDGFPRTAVIO 3. Exemple 2. Imaginer à quel point ce mode chiffrement est déplorable pour les photographies. 4. Cayrel n est pas (encore) une réponse acceptable 11 / 63

12 CHAPITRE 1. ÉNONCÉS 1.3.4 Mode CBC Le mode de chiffrement CBC (Cipher Block Chaining ou Enchaînement des blocs) suit le shéma suivant : 1. Dessiner le schéma de déchiffrement correspondant à ce mode de chiffrement. 2. À quoi sert le vecteur d initialisation (IV)? Doit-il rester secret? 3. Que se passe-t-il lors du déchiffrement si l un des blocs chiffrés a été altéré? 1.3.5 Mode CTR Le mode de chiffrement CTR (mode compteur) consiste à chiffrer un compteur qui est incrémenté à chaque bloc, puis à en calculer le ou exclusif avec le message. Le compteur est initialisé à une valeur choisie au hasard appelée la nonce. 1. Dessiner les schéma de chiffrement et déchiffrement de ce mode opératoire. 2. Expliquer l intérêt de la nonce. 3. Quel intérêt voyez-vous à ce mode de chiffrement quant à son implémentation? 1.3.6 Attaque par insertion On considère un chiffrement par blocs utilisant un mode opératoire OFB ou CTR. Un attaquant parvient à intercepter un chiffré C = (c 0, c 1,... ), correspondant à un message M = (m 0, m 1,... ). L attaquant connaît uniquement C, mais pas M, ni bien sûr la clé K ou encore la valeur IV (pour OFB) ou la nonce (pour CTR). On suppose que l attaquant parvient à forcer la personne qui chiffre à re-chiffrer un message M quasiment identique à M, mais avec uniquement un bloc de zéros inséré parmi les autres blocs. On suppose en outre que l attaquant parvient à forcer ce deuxième chiffrement à être réalisé avec la même IV (pour OFB) ou nonce (pour CTR). L attaquant obtient donc un nouveau chiffré C. 1. Comment l attaquant peut-il déterminer le bloc à partir duquel M et M diffèrent? 2. Supposons que ce premier bloc différent ait pour indice i. Que vaut alors c i? Comment l attaquant peut-il en déduire m i? 3. Que doit-on en conclure comme précaution sur l utilisation de OFB ou CTR?

1.3. CHIFFREMENT ET MODES DE CHIFFREMENT 13 1.3.7 Malléabilité des chiffrements à flot 1. Rappeler le fonctionnement du chiffrement à flot. 2. Soit C le chiffré d un message M, comment pouvez vous produire le chiffré C du même message que vous aurez altéré. 3. Imaginer une utilisation pratique de cette attaque. 1.3.8 3DES et 2DES 1. Expliquer le fonctionnement de 3DES (T DES). Pourquoi ce schéma de chiffrement est-il utilisé à la place de DES? Quel facteur de complexité ajoute-t-il? 2. Comme l exécution de 3DES est coûteuse, on propose d utiliser à la place l algorithme 2DES, qui consiste à composer deux chiffrements DES classiques avec des clefs différentes. Soit m un message et k 1 et k 2 des clefs DES, on obtient le chiffré c de la façon suivante : c = 2DES(k 2 k 1 ; m) = DES(k 2 ; DES(k 1 ; m)) (a) Quels sont les avantages de cette approche par rapport à 3DES? Quelle est la première estimation naïve de la force cryptographique théorique de 2DES? (b) Analyse de sécurité de 2DES : i. Combien y a-t-il de clefs différentes possibles? On dé?nit les collisions par l existence de messages clair m et chiffré c tels que c = 2DES(k; m) = 2DES(k ; m) avec k k. En considérant la taille des blocs de messages clairs à chiffrer, combien existe-t-il en moyenne de clefs qui pour un clair m donné, crée une collision (i.e. fournissent le même c)? ii. En exploitant la propriété suivante de DES : si c = DES(k 2 ; DES(k 1 ; m)), alors il existe un chiffré c = DES(k 1 ; m) = DES 1 (k 2 ; c), construire une méthode d attaque sur 2DES qui utilise 2 paires de messages clair/chiffré. iii. À partir du nombre moyen d opérations nécessaires à la cryptanalyse de DES, estimer les efforts nécessaires pour cette attaque ainsi que la probabilité d avoir trouver la bonne clef grâce à elle. Quelle est?nalement la force estimée de 2DES? 1.3.9 Algorithme de Berlekamp-Massey Cet algorithme consiste à construire pour les valeurs successives de N un LFSR de longueur L N et de polynôme de rétroaction f N qui génère les N premiers bits de la suite s. Pour N = 2L, l algorithme retourne le polynôme de rétroaction du LFSR de départ. Algorithme de Berlekamp-Massey Entrée : s 0, s 1,..., s n 1 une suite de longueur n. Init : f(x) = 1, L = 0, m = 1, g(x) = 1 Pour N variant de 0 à n 1 1. Calculer d = s N + L i=1 c is N i mod 2.(f(X) = 1+c 1 X +c 2 X 2 +...) 2. Si d = 1 alors t(x) = f(x) et f(x) = f(x) + g(x)x N m. Si 2L N alors L = N + 1 L, m = N, g(x) = t(x). 1. Appliquer l algorithme de Berlekamp Massey à la suite : 001101110. 2. Puis concluez en vérifiant votre réponse. 13 / 63

14 CHAPITRE 1. ÉNONCÉS Cryptographie à clef publique Dans toute la suite, on pourra utiliser les résultats numériques suivants : 319 = 11 29 ; 10 11 = 263 (mod 319) ; 263 2 = 216 319 + 265 ; 133 3 = 12 (mod 319) ; 133 25 = 133 (mod 319) ; 11 2 = 121 (mod 280) ; 11 4 = 81 (mod 280) ; 11 8 = 121 (mod 280) ; 11 16 = 81 (mod 280) ; 95 = 64 + 31 ; 81.11 = 51 (mod 280) ; 81.121 = 1 (mod 280). Identité de Bezout Soient a et b deux entiers relatifs et d leur PGCD alors il existe deux entiers u et v tels que : au + bv = d Résolution d une équation diophantienne Soient a, b et c des entiers, et d le PGCD de a et b, alors l équation au + bv = c admet des solutions entières si et seulement si c est un multiple de d. Théorème de Bezout Soient a et b deux entiers relatifs non nuls. a et b sont premiers entre eux si, et seulement si, il existe deux entiers u et v tels que au + bv = 1. Théorème de Gauss Si un nombre a divise un produit de facteurs et si a est premier avec l un des deux facteurs alors a divise le deuxième facteur. L algorithme d Euclide permet de calculer le P.G.C.D. de deux entiers naturels a et b tels que a > b. Il consiste à réitérer les manipulations suivantes : 1. Effectuer la division euclidienne de a par b. Soit r le reste. 2. Remplacer a par b et b par r. On a b > r d après la définition de la division euclidienne. Le P.G.C.D. est le dernier reste non nul. Exemple d application : calcul d inverse modulaire Déterminez d tel que 7d = 1 mod 360. (revient à calculer l inverse de 7 mod 360). puis "on remonte" : D où d = 103. Entraînez-vous en montrant que : 360 = 51 7 + 3 7 = 2 3 + 1 1 = 7 2 3 mod 360 1 = 7 2 (360 51 7) mod 360 1 = 7 + 102 7 mod 360 1 = 7 (1 + 102) mod 360 1 = 7 103 mod 360 56 = 3 1 mod 170; 37 = 13 1 mod 143; 113 = 17 1 mod 120; 219 = 19 1 mod 520. Détailler le calcul de 3 inverses modulaires (différents de ceux proposés ci-dessus).

1.4. MÉTHODES DE CALCUL 15 1.4 Méthodes de calcul 1.4.1 Square and Multiply En utilisant l algorithme square and multiply, montrer que : 41 37 mod 527 = 113; 5 7 mod 403 = 346; 128 17 mod 407 = 50; 84 113 mod 143 = 2; 207 219 mod 583 = 192. Détailler le calcul de 3 exponentiations modulaires (différentes de celles déjà proposées). 1.4.2 Calcul modulaire Calculer (de tête si possible) 1. 2. 3. 4. 2 256 mod 128 529 436 mod 66 1023 4096 mod 1024 456 2308 mod 234327 1.4.3 Théorème des restes chinois Comment résoudre le système de congruences suivant : x = r 1 mod m 1 x = r 2 mod m 2?... x = r k mod m k C est le théorème des restes chinois qui nous fournit la réponse : Soit k nombres entiers naturels m 1, m 2,..., m k, premiers entre eux deux à deux, et k entiers r 1, r 2,..., r k. Le système de congruences x = r 1 mod m 1 x = r 2 mod m 2... x = r k mod m k admet une unique solution modulo M = m 1 m 2...m k. La méthode permettant de construire une solution de ce système est fournit ci-dessous. Posons M i = M m i pour i = 1, 2,..., k. On a donc pgcd(m i, m i ) = 1 et on peut ainsi trouver d après l identité de Bezout deux entiers u i et v i tel que M i u i + m i v i = 1. 15 / 63

16 CHAPITRE 1. ÉNONCÉS On a alors : u 1 M 1 r 1 + u 2 M 2 r 2 +... + u k M k r k = r i mod m i pour i = 1, 2,..., k Par conséquent le nombre x = u 1 M 1 r 1 + u 2 M 2 r 2 +... + u k M k r k est solution du système. De plus si y est une autre solution de celui-ci, alors m i divise x y pour chaque i = 1, 2,..., k. Ainsi x y est divisible par M. Le système admet donc une seule solution modulo M. Autrement dit, les solutions du système sont de la forme avec n entier. x = u 1 M 1 r 1 + u 2 M 2 r 2 +... + u k M k r k + nm Application - 1 Une bande de 17 pirates s est emparée d un butin composé de pièces d or d égale valeur. Ils décident de se les partager également et de donner le reste au cuisinier chinois. Celui-ci recevrait trois pièces. Mais les pirates se querellent et six d entre eux sont tués. Le cuisinier recevrait alors 4 pièces. Survient alors un naufrage et seuls 6 pirates, le cuisinier et le trésor sont sauvés et le partage laisserait 5 pièces d or à ce dernier. Quelle est alors la fortune minimale que peut espérer ce dernier s il décide d empoisonner le reste des pirates? Application - 2 Pour vous entraîner, vous appliquerez le théorème des restes chinois à deux des systèmes de congruences suivants (vérifiez votre résultat) : 1. 2. x = 0 mod 5 x = 4 mod 7 x = 4 mod 19 x = 2 mod 5 x = 5 mod 7 x = 10 mod 19 Application - 3 3. 4. x = 0 mod 5 x = 6 mod 7 x = 1 mod 19 x = 5 mod 6 x = 4 mod 11 x = 3 mod 17 Choisissez, sans me le dire, un nombre entier entre 1 et 500. Je vais seulement vous demander trois nombres construits à l aide de celui-ci et je retrouverais sans trop de difficulté le nombre que vous aviez choisi. Pour cela, diviser votre nombre par 5 et donner moi le reste obtenu. Faites de même avec la division par 7 et celle par 19. Ces trois restes suffisent pour retrouver votre nombre. Réaliser cette expérience avec votre voisin (avec trois nombres premiers entre eux de votre choix). Noter sur une feuille, que vous me rendrez, l ensemble des résultats.

1.4. MÉTHODES DE CALCUL 17 1.4.4 Autour des nombres premiers 1. Pour quelles valeurs du nombre entier n le nombre n 2 8n + 15 est-il premier? Même question pour n 2 + 4n + 3. 2. Pour quelles valeurs de n et m (entiers) le nombre 2n 2 + 5mn + 3m 2 est-il premier? 3. Trouver 1 000 entiers naturels consécutifs, tous composés. 4. Théorème : Soit n un entier naturel. Si n est un nombre premier, alors pour tout entier a premier avec n, on a a n 1 = 1 mod n (c est-à-dire n divise a n 1 1). Remarque : Le théorème de Fermat peut être utilisé pour montrer qu un entier n est pas premier : si il existe un entier a premier avec n tel que a n 1 1 mod n alors n n est pas premier. Application : L entier 37901 est-il premier? 1.4.5 Test de primalité de Miller-Rabin Soit p un nombre premier impair que l on écrit sous la forme p = 2 s d+1. Soit a {1,..., p 1}. On définit une suite récurrente (b i ) en posant : b i = a d 2i. 1. Montrer que dans Z/pZ, l équation x 2 = 1 entraine x = 1 ou x = 1. 2. Montrer que b s 1 mod p. 3. On suppose que b 0 n est pas congru à 1 modulo p. Montrer l existence de i {0,..., s 1} tel que b i 1 mod p. 4. En déduire un test de non-primalité d un entier. 1.4.6 Algorithme p 1 de Pollard Le but est de trouver un fecteur non trivial de n = 19 048 567. On prend B = 19 et a = 3. 1. Vérifier que gcd(a, n) = 1. 2. Déterminer, pour chaque nombre premier 19, sa plus grande puissance qui soit n. Soit Q le ppcm de toutes ces puissances, et p un hypothétique fecteur premier de n tel que p 1 soit 19-friable 5. 3. Montrer que p 1 divise Q. 4. En déduire que p divise a Q 1 (on pourra utiliser le petit théorème de Fermat). 5. En déduire que gcd(a Q 1, n)(= gcd((a Q 1) mod n, n)) est différent de 1. 6. On admet le calcul intermédiaire a Q mod n = 554 56. En déduire numériquement un facteur non-trivial de n. 1.4.7 Théorème de Wilson Le but de cet exercice est de démontrer le théorème de Wilson : un entier n 2 est premier si et seulement si (n 1)! 1 mod n. 1. Soit p premier. Combien de solutions l équation x 2 = 1 admet-elle dans Z/pZ? 2. Soit p premier. Montrer que (p 1)! = 1 mod p. 3. Soit n 2 un entier tel que n divise (n 1)! + 1. Montrer que pour tout a {1,..., n 1}, a est inversible dans (Z/nZ, ). En déduire que n est premier. 5. C est-à-dire que tous les facteurs premiers sont inférieurs à 19. 17 / 63

18 CHAPITRE 1. ÉNONCÉS 1.5 Échange de clefs 1.5.1 Fonctionnement clé privée vs clé publique Expliquez les principes de fonctionnement de la cryptographie symétrique et de la cryptographie asymétrique, en mettant en évidence les différences entre ces deux catégories, leurs avantages et leurs inconvénients respectifs. Vous pourrez illustrer votre réponse par un exemple de chaque catégorie, décrit aussi précisément que possible. Réponse limitée à une page. 1.5.2 Clé privée vs clé publique Dix-sept personnes veulent pouvoir s échanger des messages deux à deux. Si elles choisissent un système à clé secrète, combien de clés faut-il en tout? Même question pour un système à clé publique. Quels sont les avantages de chaque système? Lequel conseillez-vous? 1.5.3 Diffie-Hellman Déterminer la clé commune d Alice et Bob dans le cas où p = 23 et g = 3 et Alice choisit un nombre secret a = 6 et Bob choisit b = 15. 1.5.4 Perte d une clé privée Un utilisateur, qui utilise souvent la messagerie sécurisée de son entreprise, vient de perdre sa clé privée, mais dispose encore de la clé publique correspondante. 1. Peut-il encore envoyer des courriers électroniques chiffrés? En recevoir? 2. Peut-il encore signer les courriers électroniques qu il envoie? Vérifier les signatures des courriers électroniques qu il reçoit? 3. À quoi peut encore servir la clé publique de notre utilisateur? 4. Que doit-il faire pour être à nouveau capable d effectuer toutes les opérations mentionnées ci-dessus? 1.5.5 Attaque par le milieu de Diffie-Hellman Décrire une attaque dans le protocole de Diffie-Hellman dans laquelle un attaquant actif (i.e. qui peut modifier les données pendant le protocole Diffie-Hellman) peut ensuite intercepter, déchiffrer et modifier toutes les communications qu Alice ou Bob chiffrerait avec sa clé.

1.6. CHIFFREMENT 19 1.6 Chiffrement 1.6.1 Kid-RSA Cet exemple indiqué à des fin pédagogiques par Neil Koblitz donne une idée de ce que peut être la cryptographie à clé publique. Evidemment il n est pas réaliste dans la mesure où il est élémentairement cassable. Les lettres A, B,..., Z sont représentées par les nombres 0, 1,..., 25. Alice choisit 4 entiers 3 notés a, b, a, b et calcule successivement : M = ab 1 e = a M + a d = b M + b n = ed 1 M Alice rend public (dans un annuaire par exemple) le couple (n; e) (sa clé publique) et maintient d secret (sa clé privée). L utilisation du système se fait de la façon suivante : si Bob désire envoyer un message à Alice, il chiffre successivement toutes les lettres de ce message en faisant correspondre à tout nombre m compris entre 0 et 25 le nombre c = em mod n. 1. Montrer que n > 25. Pourquoi est-il souhaitable qu il en soit ainsi? Montrer que e et n sont premiers entre eux. 2. Comment Alice peut elle récupérer simplement m lorsqu elle a reçu c? 3. Charlie écoute la ligne de communication entre Alice et Bob et disposent donc de c. Comment peut-il attaquer le système et découvrir m? 4. Utiliser ce système pour signer un message. 1.6.2 Chiffrement/Déchiffrement RSA On considère la clef publique RSA (11, 319), c est-à-dire pour n = 319 et e = 11. 1. Quel est le chiffrement avec cette clé du message M = 100? 2. Calculer d la clé privée correspondant à la clé publique e. 3. Déchiffrer le message C = 133. 4. Le message chiffré 625 peut-il résulter d un chiffrement avec la clé publique? 1.6.3 Exemples de RSA Considérer le système RSA avec p = 19 et q = 23. 1. Calculer n et φ(n). 2. Calculer l exposant d associé à e = 9, puis e = 14. 3. Calculer l exposant d associé à e = 17. Dans le tableau ci-contre n et e sont publics : n = pq avec p et q deux nombres premiers secrets. e a pour inverse d : ed = 1 mod (p 1)(q 1) qui est tenu secret. On donne un chiffré C = m mod n. À vous de retrouver p, q et m. Détaillez votre méthode et vérifiez votre résultat. n e C 143 17 84 247 5 115 319 11 133 323 25 19 403 7 346 407 17 50 583 19 207 4717 21 2804 Donner un autre triplet (n, e, C) (non présent dans le tableau ci-dessus) à votre voisin. À lui de déterminer p, q et m. 19 / 63

20 CHAPITRE 1. ÉNONCÉS 1.6.4 Chiffrement RSA Examen 2012-2013 On utilise les notations habituelles du chiffrement RSA : N est un entier et p et q sont deux entiers premiers tels que N = pq. On note φ l indicatrice d Euler φ = φ(n) = (p 1)(q 1) et e et d sont deux éléments de Z/NZ tels que ed = 1 mod φ. 1. On souhaite utiliser l algorithme de chiffrement RSA. Comment chiffre-t-on un message m? 0.5pt Et comment déchiffre-t-on un message c? 0.5pt Parmi les entiers N, p, q, φ, e et d quels sont ceux qui doivent rester secrets? 0.5pt Montrer que la divulgation de l une quelconque des valeurs secrètes permet de retrouver toutes les autres valeurs privées. 2pts 2. On pose N = 1003 et e = 3. Calculer p, q et φ. 1pt Que vaut alors l entier d associé à e? 1pt Que vaut le message chiffré c associé au message clair m = 4? 0.5pt Dans ce cas particulier, est-il possible de retrouver m à partir de c sans connaître d? 1pt 3. On pose désormais N = 65. Donner tous les couples (e, d) possibles. 1pt Chiffrer le message m = 4 en utilisant e = 5. 0.5pt Vérifier le résultat obtenu en le déchiffrant à l aide de la clef privée correspondante. 1.5pt 1.6.5 RSA-3 Dans tout cet exercice, on se donne trois entiers premiers impairs p, q et r differents deux à deux. Soit n l entier égal au produit pqr. On s intéresse ici à un cryptosystème identique à RSA. 1. Montrer que l on peut définir, de la même manière que pour RSA, une fonction de chiffrement et de déchiffrement ainsi qu un cryptosystème à clé publique en utilisant l entier N. Vous exhiberez les clés publiques et privées et définirez l ensemble des messages possibles. On notera ce cryptosystème RSA-3 dans toute la suite de l exercice. 2. Rappeler quels sont les messages qui sont dangereux lors de l utilisation de RSA. Quels seront ceux qui seront dangereux pour RSA-3? (Vous argumenterez votre réponse.) 3. Montrer qu il est possible d utiliser le théorème des restes chinois lors du déchiffrement d un message. 4. Donner le chiffrement de x = 13 et le déchiffrement de y = 11 en utilisant le théorème des restes chinois avec p = 3, q = 5, et r = 7 et e (l exposant de chiffrement) égal à 19. Réaliser un protocole de chiffrement à la RSA-3 avec votre voisin. Noter sur une feuille, que vous me rendrez, l ensemble des résultats.

1.6. CHIFFREMENT 21 1.6.6 Chiffrement El Gamal Alice choisit p = 97 et g = 13. (a) Elle choisit aléatoirement un nombre a, disons 45, dans l intervalle [1,..., 95]. (b) Elle calcule α = (13 45 mod 97) = 20. (c) Elle publie sa clé (97, 13, 20) et garde secrète sa clé 45. Bob veut envoyer le message RAS à Alice. (a) En utilisant le code ASCII, son message est 118 101 119. (b) Il le découpe en nombres entre 0 et 97 : 11 81 01 11 09. (c) Il choisit aléatoirement un nombre b, disons 35, dans l intervalle [1,.., 95]. (d) Il calcule β = 13 35 mod 97 = 71 mod 97. 1. Vérifier que le chiffré de son message est (71, 21 40 46 21 26). 2. Comment Alice déchiffre-t-elle le message de Bob? Déchiffrer-le. Réaliser un protocole de chiffrement à la El Gamal avec votre voisin. Noter sur une feuille, que vous me rendrez, l ensemble des résultats. 1.6.7 Changement de clés Alice change sa clé RSA tous les 25 jours. Bob lui change sa clé tous les 31 jours. Sachant qu Alice change sa clé aujourd hui et que Bob a changé sa clé il y a trois jours, déterminer quand sera la prochaine fois qu Alice et Bob changeront leur clé le même jour. 21 / 63

22 CHAPITRE 1. ÉNONCÉS 1.7 Attaques sur RSA 1.7.1 Attaque par module commun Une implantation de RSA donne à deux personnes (Alice et Bob) le même nombre n (produit de deux nombres premiers) mais des clefs (e A, d A ) et (e B, d B ) différentes. On suppose de plus que e A et e B sont premiers entre eux (ce qui est le plus général). Supposons alors que Alice et Bob chiffrent un même message m et que Oscar intercepte les deux messages c A = m e A mod n et c B = m e B mod n qu il sait être deux chiffrements du même message m. Montrer qu Oscar peut alors très facilement découvrir le message m. Vous illustrerez cette attaque par un exemple de votre choix. 1.7.2 De φ(n) à la factorisation On considère un module RSA n = pq, où p et q sont les inconnues. Montrer simplement comment la connaissance de φ(n) = (p 1)(q 1) (la fonction d Euler) permet de remonter à la factorisation de n. On rappelle que si on connaît pq et p + q alors p et q sont racines d un polynôme de degré 2 à déterminer. 1.7.3 RSA avec deux facteurs trop proches Supposons que n soit un entier produit de deux nombres premiers p et q proches (on peut toujours supposer que p > q). On pose t = p+q et s = p q. 2 2 Montrer que : 1. n = t 2 s 2, 2. t est légèrement supérieur à la racine carrée de n. On peut utiliser ces informations pour factoriser n. L algorithme s appelle l algorithme de Fermat, le voici : 1. A n ( N) 2. x = A 2 n ( N) 3. Tant que x n est pas carré parfait (a) A A + 1 (b) x A 2 n 4. Retourner p = A + x et q = A x 1. Appliquer cet algorithme pour factoriser 24960007, puis 3649574023. 2. Déterminer la complexité de cet algorithme, en fonction de p et de n. On sait que lorsque A vaudra p+q 2 = alors x = t 2 n = s 2 sera un carré. 3. Déterminer le nombre d itérations de l algorithme lorsque p diffère de n de moins de 4 4n.

1.7. ATTAQUES SUR RSA 23 1.7.4 Malléabilité de RSA Nous allons montrer comment les propriétés multiplicatives de RSA rendent une utilisation naïve de ce cryptosystème complètement illusoire. 1. Proposer un procédé de signature naïf d un message m Z/nZ par Alice avec sa clé privée RSA. 2. Ève a réussi à se procurer les signatures du message m 1 et du message m 2. Montrer quels autres messages elle peut signer au nom d Alice, et comment. 3. Nous allons montrer une sorte de généralisation de ce procédé. On suppose qu Ève s est procuré un ensemble de signatures de messages : elle connaît un grand nombre de couples (m i ; S(m i )). De plus, les m i sont petits et Ève a pu les factoriser : i, m i = µ α i,j j. j On appelle falsifier une signature le fait d en créer une de toutes pièces. Quelles signatures Ève est-elle capable de falsifier dans ces conditions? 4. On suppose qu Ève souhaite falsifier la signature d un message cible noté m t qu elle a aussi réussi à factoriser en fonction des µ j : m t = j µ β j j. Montrer comment Ève doit s y prendre pour falsifier la signature de m t. 1.7.5 Le temps de factorisation des grands entiers Le meilleur algorithme connu à ce jour pour factoriser les grands entiers est le GNFS (General Number Field Sieve). SOn facteur de travail, pour factoriser un entier N est donné par la formule : W (N) = k exp ( c(log 2 N) 1/3 (log 2 log 2 N) 2/3) avec : c = 3 64/9. k est une constante qui dépend de la qualité du programme. 1. Calculer k sachant qu en 1999, un entier de 512 bits a été factorisé par une équipe internationale avec un facteur de travail de 8000 Mips-années ; 2. Avec cette valeur, quel est le facteur de travail nécessaire pour factoriser un entier de 768 bits? et 1024 bits? 23 / 63

24 CHAPITRE 1. ÉNONCÉS 1.8 Signature et hachage 1.8.1 Signature RSA 1. Calculer le module n et l entier φ(n) associés aux nombres premiers p = 17 et q = 23. 2. Quels sont les exposants secrets de signature associés aux exposants publics e = 11 et e = 13? 3. Quelle est la signature de m = 100? 4. Vérifier que la vérification fonctionne. Réaliser un protocole de signature RSA avec votre voisin. Noter sur une feuille, que vous me rendrez, l ensemble des résultats. 1.8.2 Signature aveugle avec RSA Trouver un algorithme à partir de la signature R.S.A qui permet de faire un algorithme de signature aveugle. On a un message m qu on souhaite faire signer sans que le signataire sache ce qu il signe, et un couple de clés publique/privée. 1.8.3 Signature El Gamal On considère la méthode de signature d El Gamal, avec p = 467, g = 2, x = 65 1. Justifier la validité du choix de p et g. 2. Calculer la clé publique y = g x mod p. 3. Calculer la signature du message m = 100 en utilisant les valeurs aléatoires k = 64 et k = 213. 4. Vérifier que la vérification fonctionne. Réaliser un protocole de signature à la El Gamal avec votre voisin. Noter sur une feuille, que vous me rendrez, l ensemble des résultats. 1.8.4 Signature El Gamal : utilisation de l aléa Le schéma de signature El Gamal utilise un générateur g de Z p et une clef publique y = g x mod p, où x est la clé privée. 1. Dans quel ensemble choisir x? Pour signer un message m, le signataire tire un aléa k et calcule r = g k mod p et s = k 1 (h(m) xr) où h(.) est une fonction de hachage. Le couple (r, s) est la signature du message m. 2. Décrire une attaque contre ce schéma de signature si le même aléa k est utilisé pour signer deux messages différents. De quel type d attaque s agit-il?

1.8. SIGNATURE ET HACHAGE 25 1.8.5 Signature El Gamal sans vérification modulaire On suppose que le schéma de signature El Gamal est utilisé sans vérifier si 0 < r < p. On suppose que l ataquant connaît la signature (r, s) d un message m. Soit m un message arbitraire et s = sα avec α = h(m )h(m) 1 mod p 1. 1. Trouver deux équations vérifiées par r (l une modulo p et m autre modulo p 1) telles que (r, s ) soit une signature de m. 2. Comment peut-on résoudre ces équations? 3. De quel type d attaque s agit-il? 1.8.6 Signature GHR (Gennaro-Halevi-Rabin) Ce schéma de signature proposé en 99 fonctionne de la manière suivante. On considère un module RSA de la forme N = pq où p = 2p + 1 et q = 2q + 1, avec p, p, q, q tous premiers. On prend au hasard u Z N tel que u soit d ordre 2p q (u 2p q mod N = 1). La clé publique est (N, u). La clé privée est constituée de la factorisation de N. 1. Montrer que p suffit à retrouver la factorisation de N. 2. Montrer que la valeur p q suffit également à retrouver la factorisation. 3. Quelle est la valeur de φ(n)? Soit h(.) une fonction de hachage qui produit des hachés de taille N. Pour signer un message M, on calcule m = H(M), puis s = u m 1 mod 2p q mod N : la valeur de la signature est s. 4. Pourquoi l inverse de m est-il calculé modulo 2p q? 5. Retrouver quelle est la procédure de vérification d un couple message/signature (M, s). La sécurité de ce schéma est liée au problème algorithmique suivant, qui est une variante du problème RSA (on l appelle flexible RSA) : étant donnée (N, v) où N est un module RSA et v un élément de Z N trouver un couple (x, e) tel que e > 1 et x = v mod N. 6. Rappeler la différence avec le problème RSA classique. 7. Expliquer pourquoi on impose e > 1. 8. Montrer que si le problème RSA classique est facile, alors le problème flexible RSA présenté ci-dessus est également facile. 25 / 63

26 CHAPITRE 1. ÉNONCÉS 1.9 1.9.1 Hachage Fonction de hachage faiblement sans collision Définition : Soit h : X Y une fonction de hachage. h est dite à sens unique si, pour presque tout y de Y, il est calculatoirement infaisable de trouver x tel que y = h(x). h dite faiblement sans collision si, pour x donné, il est calculatoirement infaisable de trouver x0 tel que h(x0 ) = h(x). h est dite sans collision s il est calculatoirement infaisable de trouver x et x0 tels que h(x) = h(x0 ). 1. Montrer que sans collision implique faiblement sans collision et que à sens unique implique faiblement sans collision. 2. Montrer qu une fonction peut être sans collision mais pas à sens unique. 1.9.2 Fonction de hachage et signature Soit h une fonction de hachage à valeur dans Fn2. On considère le cas d un attaquant qui pour abuser une signature souhaite construire deux messages (presque identiques) ayant le même haché. 1. Donner une attaque en O(2n/2 ) pour la fonction de hachage h qui permet de construire deux messages (presque identiques) mais avec le même hachés. 2. Montrer comment l attaque précédente peut être utilisée avec la signature RSA pour abuser un vérificateur de signature. 1.9.3 Le buzz free mobile Le 6 janvier 2012, les geeks s agitent pour savoir quand les forfaits de la marque Free Mobile seront lancés. Le site live.free.fr contient un dessin de fusée, avec les symboles : efb7929e6a5b7dcc6ebb79aa3c45af13 Cette valeur est ce que renvoie la fonction de hachage md5 sur la donnée jesaispas. Des petits malins y voient aussi un second message caché en interprétant la chaîne précédente dans le codage ascii. On y lirait NIEL JOIN RACE >>START Est-il plausible d obtenir à fabriquer un message intelligible qui donne un haché intelligible?

1.10. AUTHENTIFICATION 27 1.10 Authentification 1.10.1 Authentification à clef secrète Il existe des protocoles permettant d authentifier une entité A auprès d une entité B. Cela présuppose donc que A sache effectivement que l entité vérificatrice est bien B, et pas un attaquant C qui se fait passer pour B. Or lors de la plupart des connexions, rien ne l en assure. Il faudrait alors que B s authentifie également auprès de A. C est ce qu on appelle l authentification mutuelle. L idée générale est alors de reprendre les protocoles qui existent pour l authentification d une entité et de l appliquer de manière symétrique pour authentifier B auprès de A. Nous allons voir sur deux exemples qu il est tout de même nécessaire de prévoir quelques ajustements. 1. Expliquer pourquoi il n est pas possible de faire de l authentification mutuelle par mot de passe. 2. Suggérer alors une attaque qui permet de récupérer un mot de passe Unix. Enumérez d autres situations dans lesquelles une interception de mot de passe est possible en l absence d authentification du serveur. On cherche maintenant à utiliser une authentification de type défi-réponse utilisant un système à clé secrète. Considérons le protocole suivant qui utilise un chiffrement à clé secrète. A et B partagent au préalable une clé secrète K. (i) A tire une valeur aléatoire r A et l envoie à B; (ii) B tire une valeur aléatoire r B et calcule β = E K (r A, r B ). B envoie β à A; (iii) A calcule D K (β). S il n y a pas eu d attaque, il retrouve r A : B s est authentifié. Il prend connaissance de r B. Il envoie r B à B : A s est authentifié. 3. Trouver une attaque de ce protocole par rejeu. On donne les éléments de départ de l approche. Le participant A est honnête, et l attaquant C (malhonnête) se fait passer pour B.C va, parallèlement à la tentative d authentification mutuelle émanant de A (vers B, pense-t-il) appelée session 1, initier une session d authentification vers A (en faisant croire qu elle émane de B), qu on appellera session 2. Les messages de ces deux sessions s entrelacent. Les premières étapes sont (exactement dans cet ordre) : session 1 : A envoie r A à C. session 2 : C envoie r A à A. Compléter, et expliquer d où provient le problème. 4. Suggérer une amélioration. 1.10.2 Authentification à clef publique Proposer un schéma basé sur le chiffrement ou sur la signature pour faire de l authentification à clé publique. 27 / 63