Réalisation d’un logiciel de Chiffrement RSA. Projet ER13 – 2009- 2010 Réalisation d’un logiciel de Chiffrement RSA.
Sommaire Objectifs Chiffrement L’algorithme RSA Organisation
Sommaire Objectifs Chiffrement L’algorithme RSA Organisation Généralités RSA ? Évaluation Chiffrement L’algorithme RSA Organisation
Objectifs - Généralités Réaliser un programme de chiffrement RSA, 6 séances TP, 3 équipes de 4 personnes.
Objectifs – RSA ? RSA : Rivest, Shamir, Adleman, Premier algorithme à clef publique, Inventé en 1977 3DES, AES, … Adi Shamir, Ronald Rivest, and Leonard Adleman
Objectifs – Evaluation Bon fonctionnement, Qualité du code, Jeux de tests.
Sommaire Objectifs Chiffrement L’algorithme RSA Organisation Symétrique Asymétrique L’algorithme RSA Organisation
Chiffrement - symétrique Confidentialité repose sur un secret, Ex : décalage de 3 rangs dans l’alphabet : 3 est la clef secrète.
Chiffrement - symetrique Symétrique : même clef pour chiffrer et déchiffrer, Comment échanger la clef ?
Chiffrement - asymétrique 2 clefs L’une publique : Chiffre, Publique, L’autre privée : Déchiffre, Secrète.
Sommaire Objectifs Chiffrement L’algorithme RSA Organisation Définitions mathématiques Déchiffrement Robustesse Organisation
RSA – nombres premiers Nombre premier : un nombre premier est un nombre entier qui n’est divisible que par lui-même ou par 1, 3, 5, 7, 11, 13 sont des nombres premiers. 91 n’est pas un nombre premier car 91 = 7 x 13
RSA – nombres premiers entre eux Nombres premiers entre eux : deux nombres entiers sont premiers entre eux si ils n’ont aucun diviseur commun à part 1, 15 et 8 sont des nombre premiers entre eux, 34 et 51 ont un diviseur commun : 17, ils ne sont donc pas premiers entre eux.
RSA – Reste d’une division euclidienne. Rappel : l’opérateur % du C retourne le reste d’une division entre entiers. 55 % 12 = 7 car 55 = 4 * 12 + 7, 55 = 7 [12]. // On dit que 55 est égal à 7 modulo 12. Remarque : le modulo, c’est 12 et non 7 comme on l’entend souvent dire par erreur.
RSA – L’indicatrice d’Euler C’est une fonction notée . Elle est définie de la manière suivante : (N) est le nombre d’entiers inférieurs à N, premiers avec N. Un exemple en page suivante pour calculer (55) .
RSA – L’indicatrice d’Euler On écrit tous les entiers entre 1 et 55. On barre ceux qui ne sont pas premiers avec 55. On compte combien il en reste, c’est (55) 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,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55. (55)=40.
RSA – un gros théorème ! Si P et Q sont premiers, et si N = P x Q, alors (N) = (P-1)(Q-1), (55) = (5x11) = (5-1).(11-1) =40. Plus facile !
RSA – Un exemple de chiffrement Q = 11, (55) =40, Message :12456668452351254626.
RSA – chiffrement Découper le message en nombres < N (55), 12 45 6 6 6 8 45 23 51 25 46 26, M1 = 12, M2 = 45 …
RSA – chiffrement déterminer un nombre qui soit premier avec (N), Ex : (N) = 40, = 3.
RSA – chiffrement Élever chaque partie du message à la puissance , …
RSA – chiffrement Calculer l’équivalent modulo N de chaque partie du message élevée à la puissance , (M1)[N]=(12)3[55]=1728[55]=23= MC1 (M2)[N]=(45)3[55]=91125[55]=45= MC2 …
RSA – chiffrement Message chiffré : 23 45 51 51 51 17 45 12 46 5 41 31 Clef publique = (N, ). Attention : seuls N et sont divulgués. P et Q sont secrets
RSA – déchiffrement On a chiffré en élevant des blocs à la puissance modulo N. On va déchiffrer en utilisant le même principe. On va élever les blocs chiffrés à une puissance modulo N.
RSA – déchiffrement Pour ça, on va déterminer entier tel que : = 1 [ (N) ] ((M1)) [N] = M1 [N].
RSA – déchiffrement x = 1 + ( k x (N) ) Dans notre exemple : 3 = 1 + 40k C’est-à-dire que 3 % 40 = 1 On considère comme un compteur. On part de = 1 et on l’incrémente tant que 3 % 40 != 1 Ici on trouve = 27
RSA – déchiffrement Déchiffrement consiste à effectuer l’opération inverse, (MC1) [N] = ((M1)) [N] = M1 (23)27[55] = ….[55] = 12 = M1 (45)27[55] = ….[55] = 45 = M2 …
RSA – déchiffrement Message déchiffré : 12 45 6 6 6 8 45 23 51 25 46 26 est la clef privée.
RSA – robustesse Longueur de clef = longueur N, Ex : 128 bits = 2128 = 38 chiffres.
RSA – robustesse Trouver nécessite de calculer (N) Calculer (N), c’est très long sans connaître P et Q. Connaître P et Q nécessite de décomposer N en facteurs premiers. C’est long ! … Voir l’exemple donnés par R, S et A pages suivantes
RSA – robustesse N=3107418240490043721350750035888567930037346022842727545720161948823206440518081504556346829671723286782437916272838033415471073108501919548529007337724822783525742386454014691736602477652346609
RSA – robustesse P=1634733645809253848443133883865090859841783670033092312181110852389333100104508151212118167511579 Q=1900871281664822113126851573935413975471896789968515493666638539088027103802104498957191261465571
RSA – robustesse Factorisé en 5 mois 80 machines 640 bits = 193 chiffres Longueur conseillé : 2048 bits.
Sommaire Objectifs Chiffrement L’algorithme RSA Organisation
Organisation 3 équipes IHM Génération des clefs Chiffrement / Déchiffrement + écritures dans des fichiers
Organisation Fourni : Spécifications Documentation mathématique Exécutable Prototypes des fonctions Structure du projet Jeux de tests pré-remplis
Organisation TP 1 : phase « papier » Etude du projet, réalisation d’un diaporama de présentation par équipe. TP 2 : présentation des diaporamas jusqu’à la pause, puis début du développement. TP 3, 4 : développement TP 5 : fin du développement jusqu’à la pause et intégration. TP 6 : présentation des diaporamas de fin de projet.
Organisation Livrables : Voir détails dans le document joint. Diaporama de début de projet Sources Jeux de tests Rapport Diaporama de fin de projet Voir détails dans le document joint.