Feuille de TP 2 - Codage RSA



Documents pareils
Cryptographie et fonctions à sens unique

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

INF 4420: Sécurité Informatique Cryptographie II

Calculateur quantique: factorisation des entiers

Quelques tests de primalité

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

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

Structures algébriques

Fonction de hachage et signatures électroniques

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

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.

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

La cryptographie du futur

Factorisation d entiers (première partie)

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

MATHÉMATIQUES DISCRÈTES (4) CRYPTOGRAPHIE CLASSIQUE

Cryptologie à clé publique

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

Cours Fonctions de deux variables

Tests de primalité et cryptographie

Cryptographie. Cours 3/8 - Chiffrement asymétrique

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

Chapitre VI - Méthodes de factorisation

Fonctions homographiques

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

Représentation d un entier en base b

Sécurité de l'information

Représentation des Nombres

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

Gestion des Clés Publiques (PKI)

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

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

Problème 1 : applications du plan affine

DÉRIVÉES. I Nombre dérivé - Tangente. Exercice 01 (voir réponses et correction) ( voir animation )

Cours d arithmétique Première partie

Les risques liés à la signature numérique. Pascal Seeger Expert en cybercriminalité

avec des nombres entiers

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

Baccalauréat L spécialité, Métropole et Réunion, 19 juin 2009 Corrigé.

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

Exercices sur le chapitre «Probabilités»

ÉPREUVE COMMUNE DE TIPE Partie D

Chapitre 1 : Évolution COURS

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

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

Certificats X509 & Infrastructure de Gestion de Clés. Claude Gross CNRS/UREC

CCP PSI Mathématiques 1 : un corrigé

Objets Combinatoires élementaires

Correction du baccalauréat S Liban juin 2007

Petite introduction aux protocoles cryptographiques. Master d informatique M2

Le produit semi-direct

UNIVERSITE IBN ZOHR Faculté des sciences Agadir. Filière SMA & SMI. Semestre 1. Module : Algèbre 1

Probabilités sur un univers fini

3 Approximation de solutions d équations

Cours arithmétique et groupes. Licence première année, premier semestre

Différentiabilité ; Fonctions de plusieurs variables réelles

Compter à Babylone. L écriture des nombres

Royal Military Academy Brussels, BELGIUM Secure Information Storage in the Cloud

Angles orientés et trigonométrie

1 Année LMD-STSM Algorithmique et Programmation. Série de TD 2

BACCALAURÉAT GÉNÉRAL SESSION 2012 OBLIGATOIRE MATHÉMATIQUES. Série S. Durée de l épreuve : 4 heures Coefficient : 7 ENSEIGNEMENT OBLIGATOIRE

EXERCICES - ANALYSE GÉNÉRALE

Raisonnement par récurrence Suites numériques

Introduction à l étude des Corps Finis

Algorithmique avec Algobox

Dérivation : cours. Dérivation dans R

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

Cryptographie Quantique

Développement décimal d un réel

Exercices Corrigés Premières notions sur les espaces vectoriels

t 100. = 8 ; le pourcentage de réduction est : 8 % 1 t Le pourcentage d'évolution (appelé aussi taux d'évolution) est le nombre :

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

Initiation à la programmation en Python

Maple: premiers calculs et premières applications

Programmation avec Xcas ou Python

FONDEMENTS DES MATHÉMATIQUES

Chapitre 2. Matrices

16 Chapitre 16. Autour des générateurs pseudoaléatoires

Bac Blanc Terminale ES - Février 2011 Épreuve de Mathématiques (durée 3 heures)

Cours de mathématiques

Qu est-ce qu un ordinateur quantique et à quoi pourrait-il servir?

II. REVOD Plongée à l ordinateur. Septembre Plan de l exposé

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

Exo7. Limites de fonctions. 1 Théorie. 2 Calculs

315 et 495 sont dans la table de 5. 5 est un diviseur commun. Leur PGCD n est pas 1. Il ne sont pas premiers entre eux

Premiers exercices d Algèbre. Anne-Marie Simon

Seconde et première Exercices de révision sur les probabilités Corrigé

Chapitre 2 Le problème de l unicité des solutions

Master IMA - UMPC Paris 6 RDMM - Année Fiche de TP

TECHNIQUES DE CRYPTOGRAPHIE

Continuité en un point

Signatures électroniques dans les applications INTERNET

choisir H 1 quand H 0 est vraie - fausse alarme

La question est : dans 450 combien de fois 23. L opération est donc la division. Le diviseur. Le quotient

La cryptographie dans le système bancaire

Probabilités sur un univers fini

Fonctions de plusieurs variables

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

STAGE IREM 0- Premiers pas en Python

Transcription:

Feuille de TP 2 - Codage RSA L'objet de cette feuille de TP est de donner une application à la cryptographie des résultats obtenus dans la partie "Arithmétique" du cours. Plus précisément, nous introduisons les principes de la méthode de Ron Rivest, Adi Shamir et Len Adleman, dite "méthode RSA". Il faut faire le TP en parallèle avec les s de la Feuille "TP 2 - s préliminaires" : 1 (Classes modulo n) 2 (Indicatrice d'euler) 5 (Petit Théorème de Fermat) 6 (Principe Codage RSA) 7 (Echange de clés) 0. PB (2007-09-30-mat231_tp02.mws) 1. Initialisation Dans une première approche, et pour limiter le temps de calcul, on choisira des nombres pas trop grands. NB : On note as un nombre destiné à rester secret et Np un nombre destiné à être public. On choisit deux nombres premiers a et b de l'ordre de 200 et 300.nombres premiers a et b de l'ordre de 200 et 300. Mettre en oeuvre cette étape avec des nombres premiers a et b de l'ordre de 200 et 300 (voir 6). Trouver l'inverse cs (secret) de Cp modulo fs (Voir 6, Question 1)

2. Codage et décodage d'un nombre plus petit que (Np-1) Ecrire une procédure de codage et une procédure de décodage (voir 6, Question 2, fonctions C et D). Vérifier que ces procédures correspondent à des fonctions inverses l'une de l'autre. 3. Avec des nombres plus grands... Recommencer ce qui vient d'être fait avec des nombres premiers initiaux plus grands, par exemple de l'ordre de 500. Introduire un contrôle de temps d'exécution. Conclusion. 4. Transmission de messages cryptés Transmission de messages cryptés Décrire une procédure possible de transmission de messages cryptés basée sur ce qui précède et sur les s 6 et 7 de la Feuille "TP 2 - s préliminaires". a) En utilisant un contrôle de temps d'exécution, appliquer la fonction nextprime de MAPLE à des grands nombres : nombres d'une trentaine de chiffres, nombres de la forme a 10 n + b où a et b ont une vingtaine de chiffres et où n en a une centaine. b) En utilisant un contrôle de temps d'exécution, appliquer la fonction ifactor de MAPLE à des grands nombres (nombres d'une vingtaine de chiffres, trentaine de chiffres et cinquantaine de chiffres). c) Sur quelle hypothèse de travail peut-on baser la sécurité des transmission par la méthode décrite dans l'exercice précédent.

4. Calcul d'une puissance Montrer que le calcul brutal de a n modulo m nécessite de l'ordre de n opérations. Donner un algorithme, basé sur l'écriture de n en base 2, nécessitant de l'ordre de ln( n ) opérations. Faire des tests de rapidité d'exécution avec MAPLE. Références

Université Joseph Fourier L2 MAT231 2007-2008 2007-10-15-mat231_feuille_exos_04.tex (24 octobre 2007) Feuille d exercice n o 4 Certains des exercices de cette Feuille sont nécessaires à la compréhension de la deuxième feuille de TP. Notations. Pour n N, on note R n := { 0, 1,..., n 1 }. Étant donnés deux entiers u, v avec v > 0, on désigne par irem(u, v) le reste de la division euclidienne de u par v. On note Z n l espace quotient de Z par la relation d équivalence (mod n), c est-à-dire l ensemble des classes modulo n. On note e n : Z Z n l application qui à un entier x associe sa classe modulo n. On rappelle que Z n est en bijection avec R n par la formule e n (x) = e n (irem(x, n)). On note également 0, 1,... les éléments de Z n, voire plus simplement encore 0, 1,..., (n 1) quand il n y a pas d ambiguïté. On notera en particulier 0, la classe de l entier 0, et 1, la classe de l entier 1. Les questions suivies de la mention [Facultatif ] ne sont pas nécessaires à la compréhension du TP. 4.1 (Classes modulo n) Soit n N. 1. Étant donnés x, y N, montrer que e n (x + y) ne dépend que de e n (x) et de e n (y). En déduire que l on peut ainsi définir une addition (encore notée +) sur Z n. 2. Étant donnés x, y N, montrer que e n (x y) ne dépend que de e n (x) et de e n (y). En déduire que l on peut ainsi définir une multiplication (encore notée ) sur Z n. 3. Montrer que (Z n, +, ) est un anneau commutatif. [ Facultatif] 4. Montrer que les anneaux Z 6, Z 12 admettent des diviseurs de 0 (ils ne sont pas intègres), c est-à-dire des éléments non nuls α, β vérifiant α β = 0. Donner une condition générale pour que Z n admette des diviseurs de 0. 5. Montrer qu un élément α de Z n est inversible (pour la multiplication) si et seulement s il existe m α (c est-à-dire un entier m dont la classe modulo n est α) tel que pgcd(m, n) = 1. Déterminer l inverse de α au moyen de m. 6. Monter que Z p est un corps si et seulement si p est un nombre premier.

MAT 231 2007-2008 2 s complémentaires. Les deux exercices suivants complètent l 4.1. Ils ne sont pas nécessaires à la compréhension du TP. 4.2 (Classes modulo n, suite) Étant donnés α Z n et k N, on notera kα l élément α + + α (k fois), avec la convention que 0α = 0, la classe 0). On dira qu un élement α engendre Z n si tout élément de Z n est de la forme kα pour un certain k N. 1. Montrer que 1 engendre Z n pour tout n N. Plus généralement, montrer que α est un générateur de Z n si et seulement si α est inversible (pour la multiplication) dans Z n. 2. Soient m, n N. Étant donné α Z mn, montrer que le couple (e m (x), e n (x)) ne dépend pas du choix de x α. En déduire que l on peut ainsi définir une application Φ de Z mn dans Z m Z n. 3. On suppose que pgcd(m, n) = 1. Montrer que Φ est bijective. 4. On suppose toujours que pgcd(m, n) = 1. On se donne (α, β) Z m Z n et x Z un représentant de α, y Z un représentant de β. On se donne également u, v des entiers tels que mu + nv = 1. Montrer que l application (x, y) xnv + ymu permet de construire l application Ψ qui est l inverse de l application Φ définie à la question 2. 4.3 Résoudre les équations suivantes (que l on peut voir comme des congruences ou comme des équations dans un certain Z n ). 1. 6 x 4 (mod 10). 2. 3 x 1 (mod 2 4 ). 3. x 2 (mod 3) et x 3 (mod 5). 4.4 (Indicatrice d Euler) Soit n N. On note P n l ensemble On définit la fonction indicatrice d Euler par P n := {r N 1 r n et pgcd(r, n) = 1}. ϕ(n) = Card(P n ). 1. Calculer ϕ(p) pour p premier. 2. Calculer ϕ(p α ) pour p premier. 3. Calculer ϕ(pq) pour p, q premiers. 4. Plus généralement, montrer que ϕ(mn) = ϕ(m)ϕ(n) pour tous m, n N, premiers entre eux. [ Facultatif] 5. Pour m N, exprimer ϕ(m) en fonction de la décomposition en facteurs premiers de m. [ Facultatif] 6. Montrer que ϕ(n) est le nombre d éléments inversibles pour la multiplication dans Z n. [ Facultatif] 4.5 (Petit théorème de Fermat) Soit p un nombre premier. 1. Montrer que p divise le coefficient du binôme C k p pour tout k tel que k 0 et k p. 2. Montrer que a p a 0 (mod p) c est-à-dire que p divise a p a pour tout entier a N. [ Indication : Récurrence sur a.]

MAT 231 2007-2008 3 4.6 (Principe codage RSA) Soient a, b deux nombres premiers distincts. On considère leur produit N := a b et on choisit un nombre C qui vérifie 1 C ϕ(n) et pgcd(c, ϕ(n)) = 1. 1. Montrer qu il existe un nombre s vérifiant 1 s < ϕ(n) et s C 1 (mod ϕ(n)). 2. On définit deux applications C et D de R N dans lui-même par C(M) := irem(m C, N) et D(M) := irem(m s, N). Montrer que ces deux applications sont inverses l une de l autre. Indications. Établir l identité (x m y m ) = (x y) ( x m 1 +x m 2 y +x m 2 y 2 + xy m 2 + y m 1). Étant donné M R N et P := C(M), appliquer l identité précédente à P s M sc puis montrer que N divise M sc M à l aide du petit théorème de Fermat. Les nombres N, C sont les clés publiques du codage RSA. Le nombre s est la clé secrète. L exercice suivant fournit une manière d échanger une clé secrète commune. 4.7 (Échange de clés) On reprend les notations de l 4.6. Soient deux correspondants Alice et Bob. Alice fournit les clés publiques N et C. Elle choisit x R N et envoie le nombre X := irem(c x, N) à Bob. Bob choisit y R N et calcule m := irem(x y, N) et Y := irem(c y, N). Il envoie alors Y à Alice. Montrer que m = irem(y x, N). Alice et Bob disposent maintenant d une clé secrète commune m.