La cryptographie à clés publiques : le système RSA

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

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

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

Calculateur quantique: factorisation des entiers

Factorisation d entiers (première partie)

Cryptographie et fonctions à sens unique

Cryptographie. Cours 3/8 - Chiffrement asymétrique

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

Projet Matlab : un logiciel de cryptage

Sub CalculAnnuite() Const TITRE As String = "Calcul d'annuité de remboursement d'un emprunt"

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

Cryptographie Quantique

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

FORD C-MAX + FORD GRAND C-MAX CMAX_Main_Cover_2013_V3.indd /08/ :12

INF 4420: Sécurité Informatique Cryptographie II

Licence Sciences et Technologies Examen janvier 2010

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

Chapitre VI - Méthodes de factorisation

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

Développement décimal d un réel

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

Cryptologie à clé publique

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

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

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

LES SECURITES DE LA CARTE BANCAIRE

Steganos présente Security Suite 2007, son incontournable suite de sécurité pour PC.

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

ApiCrypt - Réception des résultats de biologie

1 Introduction au codage

Triangle de Pascal dans Z/pZ avec p premier

Travaux Pratiques de Commande par ordinateur 1 TRAVAUX PRATIQUES

Sécurité de l'information

CA SIC Directives de certification Certificate Practice Statement (CPS) du SIC Customer ID CA 1024 Level 2

IV- Comment fonctionne un ordinateur?

titre : CENTOS_CUPS_install&config Système : CentOs 5.7 Technologie : Cups Auteur : Charles-Alban BENEZECH

Le protocole sécurisé SSL

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

Compression Compression par dictionnaires

Analyse Combinatoire

La cryptographie du futur

Enfin une messagerie dont l utilisateur n est pas le «produit»!

Matrice d accès. Master SEMS, Pierre Paradinas. October 16, 2013

Chapitre 7. Récurrences

EMV, S.E.T et 3D Secure

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

MATHÉMATIQUES DISCRÈTES (4) CRYPTOGRAPHIE CLASSIQUE

Recherche dans un tableau

Examen Médian - 1 heure 30

Programmation Visual Basic. Visite guidée d'un programme Visual Basic 6.0

TP 2 : Chiffrement par blocs

TECHNIQUES DE CRYPTOGRAPHIE

Représentation des Nombres

L identité numérique. Risques, protection

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

SNT4U16 - Initiation à la programmation TD - Dynamique de POP III - Fichiers sources

Théorie et codage de l information

1 Recherche en table par balayage

Architectures PKI. Sébastien VARRETTE

Cours d Informatique

MEMOIRE DE MAGISTER EN ELECTRONIQUE. OPTION : Télédétection. Application des techniques de cryptage pour la transmission sécurisée d images MSG

Théorie et Codage de l Information (IF01) exercices Paul Honeine Université de technologie de Troyes France

Informatique Générale

Crypter le courrier. Pourquoi crypter? Les clés de cryptage. Supplément au manuel Internet sécurité d'abord!

Richard MONTBEYRE Master 2 Professionnel Droit de l Internet Administration Entreprises. La banque en ligne et le protocole TLS : exemple

SOCLE COMMUN - La Compétence 3 Les principaux éléments de mathématiques et la culture scientifique et technologique

L ALGORITHMIQUE. Algorithme

Cours Informatique Master STEP

PROTEGER SA CLE USB AVEC ROHOS MINI-DRIVE

Livre blanc. Sécuriser les échanges

Acer edatasecurity Management

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

Sécurisez votre serveur Web Internet Information Services de Microsoft (MS IIS) avec un certificat numérique de thawte thawte thawte thawte thawte

Sync-A-BOX et Duplicati. est une plateforme Cloud pour stocker et gérer vos données en ligne.

PROJET ALGORITHMIQUE ET PROGRAMMATION II

Cours d arithmétique Première partie

Certificats (électroniques) : Pourquoi? Comment? CA CNRS-Test et CNRS

Programmation Linéaire - Cours 1

Tests de primalité et cryptographie

La cryptographie dans le système bancaire

DISTANT ACESS. Emna TRABELSI (RT3) Chourouk CHAOUCH (RT3) Rabab AMMAR (RT3) Rania BEN MANSOUR (RT3) Mouafek BOUZIDI (RT3)

Vers l'ordinateur quantique

COMMUNICATION ENTRE DEUX ORDINATEURS PAR LASER MODULE EN CODE MORSE OU BINAIRE.

TS 35 Numériser. Activité introductive - Exercice et démarche expérimentale en fin d activité Notions et contenus du programme de Terminale S

Le format OpenPGP. Traduit par : Sébastien Person. personseb@yahoo.fr. Matthieu Hautreux. matthieu.hautreux@insa-rouen.fr.

Représentation d un entier en base b

Conversion d un entier. Méthode par soustraction

Travaux pratiques. Compression en codage de Huffman Organisation d un projet de programmation

Introduction à l Informatique licence 1 ère année Notes de Cours

Fonction de hachage et signatures électroniques

La sécurité dans un réseau Wi-Fi

Licence Sciences, Technologies, Santé Mention Informatique Codage de l'information

ÉPREUVE COMMUNE DE TIPE Partie D

Programmation linéaire

Application 1- VBA : Test de comportements d'investissements

Cours d algorithmique pour la classe de 2nde

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.

Organigramme / Algorigramme Dossier élève 1 SI

DEVOIR MAISON : THEME : LES CLES DE CONTROLE. I. La clé des codes barres

Transcription:

I Objectifs Présenter un système de cryptage récent. En faire une implémentation sous le tableur Excel. II Propriété fondamentale n = pq est le produit de deux entiers premiers p et et q distincts. On pose m = (p 1)(q 1) et on note c un nombre premier avec m. On note x un entier naturel. a) Démontrer qu'il existe des entiers d et k tels que : cd = mk + 1 (c'est-à-dire cd 1 [m]) b) Cas où x est non divisible par p. Démontrer que x p-1 1 [p]. En déduire que x km 1 [p], puis que x cd x [p] Cas où x est divisible par p. Démontrer que x cd x [p]. c) Démontrer de façon analogue que pour tout entier naturel x, x cd x [q]. d) En déduire que pour tout entier naturel x, x cd x [n]. III Principe du cryptage Pour chiffrer un message (cartes bancaires, internet, ), on choisit deux nombres premiers p et q très grand et on calcule n = pq. On pose m = (p 1)(q 1). On cherche deux entiers naturels c et d tels que cd 1 [m]. Les messages x seront des entiers naturels appartenant à [0;1;.;n 1]. Le codage de ce message consiste à calculer C(x) x c [n]. Le décodage consiste à calculer D(y) y d [n]. On a bien D(C(x)) x cd x [n]. Pour chiffrer un message on a besoin de connaître c et n. 1

Le couple (n;c) est appelé la clé publique car elle est connue de tous et repertoriée dans un annuaire. Pour déchiffrer, il faut connaître d et n. d est appelé la clé privée car elle n'est connue que de la personne qui reçoit le message codé. IV Notes Les trois lettres RSA sont les initiales de Rivest, Shamir, Adleman qui ont mis au point cet algorithme en 1978. Les nombres premiers p et q doivent demeurés cachés car leur connaissance entraîne celle de m = (p 1)(q 1), puis celle de d en résolvant l'équation de Bézout : cd km = 1 (ce qui est possible car c est dans l'annuaire). Le sytème RSA 1 024 bits correspond à un nombre n = pq de l'ordre de 2 1024 10 308 s'écrivant avec 309 chiffres décimaux. V Application 1 Alexandre veut choisir une clé publique (n;c) et sa clé privée d. Il prend p = 5, q = 11 et donc n = 55 (p et q sont choisis petits, contrairement à la réalité, pour la simplicité des calculs). a) Démontrer qu'il peut choisir c = 3 et d = 27. b) Les lettres de l'alphabet sont chiffrés par : A B C D. Y Z 01 02 03 04. 25 26 Paul qui connait la clé publique d'alexandre, crypte le message : "VIVE LA CRYPTOGRAPHIE" et lui envoie. Quel message crypté Alexandre reçoit-il? Comment le décode-t-il? c) A l'aide du tableur Excel, implémenter les fonctionnalités suivantes : Vérifier que les couples (c;n) et (d;n) donnés sont corrects. A l'aide de formules Excel implémenter le codage et le décodage d'un message. 2

On pourra utiliser les fonctions Excel suivantes : CODE() : codage ASCII d'un caractère CAR() : fournit le caractère alphabétique correspondant à un code ASCII MOD() : donne le reste de la division euclidienne d'un nombre par un autre. d) A quel problème est-on confronté lors de l'implémentation du décodage? Proposer alors deux algorithmes à implémenter avec deux procédures écrites en Visual-Basic qui contournent le problème : une de codage et une de décodage. V Application 2 Lise a pour clé publique (n;c) avec n = pq, p = 3, q = 13. a) Démontrer qu'elle peut choisir c = 29 et d = 5. b) Elle reçoit le message crypté suivant de Julie : 28 01 12 21 11 12 03 28 05. Décrypter ce message. 3

II Propriété fondamentale a) c et m étant premiers entre eux, d'après le théorème de Bézout il existe des entiers d et l tels que cd + lm = 1 Soit cd = km + 1 en prenant k = -l. b) Si x est non divisible par p, alors le petit théorème de Fermat assure que : x p-1 1 [p]. Or x m = x (p-1)(q-1) = (x (p-1) ) (q 1) 1 q-1 1 [p] Donc x km 1 k 1 [p]. Et x cd = x km x x [p] Si x est divisible par p, alors x 0 [p] et donc x cd x [p]. Conclusion, pour tout x, x cd x [p]. c) p et q ayant un rôle symétrique, le résultat est immédiat. d) x cd x est divisible par p et par q. Or comme p et q sont premiers entre eux (puisque ce sont deux nombres premiers) alors x cd x est divisible par leur produit pq. Soit : x cd x [n]. V Application 1 a) m = (p 1)(q 1) = 4 10 = 40 Si c = 3 et d = 27. 3 et 40 sont premiers entre eux. cd = 3 27 = 81 1 [40] Donc le choix de c et d est valable. b) La lettre "V" est codée par 33 car 22 3 33 [55]. La lettre "I" est codée par 14 car 9 3 14 [55]. Etc. Le message codé est alors : 331433152301270205262520 13020126171415 4

c) La vérification des couples (c;n) et (d;n) est faite dans la cellule I4 par la formule :=SI(MOD(E4*E5;(B4-1)*(B5-1))=1;"OK";"KO") La lettre en cellule B10 (V dans l'exemple) est chiffrée en B11 par la formule : =SI(B10="";"";CODE(B10)-64) et ce nombre est cryptée avec la clé publique RSA en cellule B12 par la formule : =SI(B11="";"";MOD(B11^$E$4;$B$4*$B$5)) Le nombre à déchiffrer en cellule B14 (28 dans l'exemple) est décryptée avec la clé secrète RSA en cellule B15 par la formule : =SI(B14="";"";MOD(B14^$E$5;$B$4*$B$5)) et ce nombre décrypté est traduit par la lettre correspondante en cellule B16 par la formule : =SI(B15="";"";CAR(B15+64)) d) Excel ne parvient à décrypter les nombres différents de 1 avec d = 27. En effet, y 27 est un nombre "trop grand" pour le tableur. Le même problème peut se produire pour le cryptage si on prend pour c une valeur assez grande. 5

Grace à deux procédures Visual-Basic, on peut contourner ce problème : A l'aide d'une boucle, on peut évaluer par étape x c [n] sans calculer x c explicitement. Algorithme de cryptage RSA : Données : Traitement n,c : entiers (constituant la clé RSA de codage) i,j : entier de boucle r : entier lettre_codee : lettre de l'alphabet msg : message à crypter msg_crypte : message crypé Pour i = 1 à longueur(msg) Faire i Suivant r 1 Pour j = 1 à c Faire j Suivant lettre_codee code_ascii(msg(j)) - 64 r Mod(r*lettre_codee,n) msg_crypte(i) r Procédure Visual Basic correspondante Public Sub code_rsa() n = Cells(4, 2) * Cells(5, 2) For i = 2 To 2000 If Cells(10, i) = "" Then Exit For End If r = 1 For j = 1 To Cells(4, 5) r = (r * (Asc(Cells(10, i)) - 64)) Mod n Next j Cells(11, i) = r Next i End Sub 6

Algorithme de décryptage RSA : Données : Traitement n,d : entiers (constituant la clé RSA de décodage) i,j : entier de boucle r : entier msg : message à décrypter msg_decrypte : message crypé Pour i = 1 à longueur(msg) Faire i Suivant r 1 Pour j = 1 à d Faire j Suivant r Mod(r*msg(i),n) msg_decrypte(i) lettre_ascii(r + 64) Procédure Visual Basic correspondante Public Sub decode_rsa() n = Cells(4, 2) * Cells(5, 2) For i = 2 To 2000 If Cells(13, i) = "" Then Exit For End If r = 1 For j = 1 To Cells(5, 5) r = (r * Cells(13, i)) Mod n Next j Cells(14, i) = Chr(r + 64) Next i End Sub V Application 2 a) On vérifie que cd = 29 5 = 145 1 [24] b) 28 01 12 21 11 12 03 28 05 se décode en SALUTLISE 7