TP : RSA. 1 Algorithmes de RSA avec bc

Documents pareils
Jeux de caracte res et encodage (par Michel Michaud 2014)

Étude des formes de pratiques de la gymnastique sportive enseignées en EPS à l école primaire

TP 2 : Chiffrement par blocs

Documentation SecurBdF

TP 1 : 1 Calculs en binaire, octal et hexadécimal

Les intermédiaires privés dans les finances royales espagnoles sous Philippe V et Ferdinand VI

Analyse de PRESENT avec peu de données

Peut-on perdre sa dignité?

INF 4420: Sécurité Informatique Cryptographie II

CONJUGUÉ D'UN POINT PAR RAPPORT À UN TRIANGLE

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

VMware ESX : Installation. Hervé Chaudret RSI - Délégation Centre Poitou-Charentes

Sécurité de l'information

Représentation d un entier en base b

CORRECTION EXERCICES ALGORITHME 1

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

Activités numériques [13 Points]

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

Port de Saint Laurent du Var - Barème des redevances Année /10

Le codage informatique

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

SweetyPix, mode d'emploi


Conception de circuits numériques et architecture des ordinateurs

Les droites (d 1 ) et (d 2 ) sont sécantes en A Le point A est le point d intersection des 2 droites

Cours Informatique 1. Monsieur SADOUNI Salheddine

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

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

TP réseaux 4 : Installation et configuration d'un serveur Web Apache

C f tracée ci- contre est la représentation graphique d une

INITIATION AU LANGAGE C SUR PIC DE MICROSHIP

Table des matières Hakim Benameurlaine 1

Manuel des logiciels de transferts de fichiers File Delivery Services

USTL - Licence ST-A 1ère année Codage de l information TP 1 :

Architecture des ordinateurs Introduction à l informatique

SSH, le shell sécurisé

INFORMATIONS DIVERSES

Licence Sciences et Technologies Examen janvier 2010

Limitations of the Playstation 3 for High Performance Cluster Computing

Les Protocoles de sécurité dans les réseaux WiFi. Ihsane MOUTAIB & Lamia ELOFIR FM05

L AIDE AUX ATELIERS D ARTISTES :

Découverte du tableur CellSheet

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

Compte-rendu de projet de Système de gestion de base de données

Nouvelle version de Zonecheck, la 3.0, avec tests DNSSEC

Algorithmes récursifs

QUESTION 1 {2 points}

Architectures PKI. Sébastien VARRETTE

Programmation C. Apprendre à développer des programmes simples dans le langage C

ALGORITHMIQUE ET PROGRAMMATION En C

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

Livre blanc. Sécuriser les échanges

Sylvain Meille. Étude du comportement mécanique du plâtre pris en relation avec sa microstructure.

Déroulement. Evaluation. Préambule. Définition. Définition. Algorithmes et structures de données 28/09/2009

Algèbre binaire et Circuits logiques ( )

Algorithmique et Programmation, IMA

Calculateur quantique: factorisation des entiers

STAGE IREM 0- Premiers pas en Python

Baccalauréat ES Polynésie (spécialité) 10 septembre 2014 Corrigé

Présentation du module Base de données spatio-temporelles

Projet d informatique M1BI : Compression et décompression de texte. 1 Généralités sur la compression/décompression de texte

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)

TP : Shell Scripts. 1 Remarque générale. 2 Mise en jambe. 3 Avec des si. Systèmes et scripts

Challenge Insomni'Hack 2008 Société SCRT - Préverenges - Suisse. Solution des épreuves proposées par Bruno Kerouanton

Angles orientés et trigonométrie

BitLocker. Aurélien Bordes SSTIC juin 2011

Arithmétique binaire. Chapitre. 5.1 Notions Bit Mot

Vers l'ordinateur quantique

1 Introduction au codage

Introduction à l algorithmique et à la programmation (Info 2)

SYSTÈME DE GESTION DE FICHIERS

Recherche dans un tableau

Transmission d informations sur le réseau électrique

Cours d Informatique

DE L ALGORITHME AU PROGRAMME INTRO AU LANGAGE C 51

CONFIGURATION DU SERVEUR DE MAILS EXIM. par. G.Haberer, A.Peuch, P.Saade

EXEMPLE DE PAGE : FORMAT A4 (210X297)

Préparation LPI. Exam Securité. Document sous licence Creative commons «by nc sa» nc sa/2.

1S Modèles de rédaction Enoncés

SSL ET IPSEC. Licence Pro ATC Amel Guetat

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

SYSTÈME DE GESTION DE FICHIERS SGF - DISQUE

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

CODAGE DES SMS. 2 Commandes «AT» 25 3 Matériels utilisés 55 4 Interfacer un téléphone GSM 73 5 Réalisations électroniques 101

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

I.1. Chiffrement I.1.1 Chiffrement symétrique I.1.2 Chiffrement asymétrique I.2 La signature numérique I.2.1 Les fonctions de hachage I.2.

Architecture des ordinateurs TD1 - Portes logiques et premiers circuits

Gestion des clés. Génération des clés. Espaces de clés réduits. Mauvais choix de clés. Clefs aléatoires. Phrases mots de passe

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

Map-Reduce : un cadre de programmation parallèlle pour l analyse de grandes données. Stéphane Genaud ENSIIE

Infrastructure à Clé Publique (PKI Public Key Infrastructure)

Anas Abou El Kalam Sécurité SSH SSH

4. Utilisation d un SGBD : le langage SQL. 5. Normalisation

I. Introduction aux fonctions : les fonctions standards

MASTER ARTS DU SPECTACLE, COMMUNICATION ET MÉDIAS (ETUDES THÉÂTRALES)

Cours 1 : Qu est-ce que la programmation?

Bases de programmation. Cours 5. Structurer les données

Les opérations binaires

Guide de démarrage du système modulaire Sun Blade 6000

Transcription:

Univ. Lille 1 - Master Info 2011-2012 Principes et Algorithmes de Cryptographie Objectifs : TP : RSA 1. Comprendre les algorithmes mis en jeu dans le système RSA. 2. Utiliser OpenSSL pour chirer/déchirer des clés avec RSA. Outils : bc, calulateur de précision arbitraire openssl 1 Algorithmes de RSA avec bc 1.1 Présentation de bc bc est un programme de calcul numérique en précision arbitraire. On l'utilise en mode interactif en tapant la commande bc dans un shell. > bc bc 1.06 Copyright 1991 1994, 1997, 1998, 2000 Free Software Foundation, Inc. This i s f r e e software with ABSOLUTELY NO WARRANTY. For d e t a i l s type ` warranty '. Il est alors possible d'eectuer des calculs arithmétiques avec les quatre opérations usuelles (1 + 3) 5 1 19 19/3 6 Notez que les calculs sont eectués (par défaut) en nombres entiers uniquement. Il existe aussi un opérateur modulo 30 % 4 2 Aucune limitation sur la taille des entiers 1234567890987654321 98765432123456789 121932631239140373304069513112635269 bc possède un langage de programmation (proche du C). Voici un exemple de dénition d'une fonction de calcul de la factorielle d'un entier / f a c t (n) = f a c t o r i e l l e de n / d e f i n e f a c t (n) { auto f, i f = 1 f o r ( i =1; i<=n ; i++) { f = f i } return ( f ) } f a c t ( 3 ) 6 f a c t (100) 93326215443944152681699238856266700490715968264381621468592963895217\ 1

59999322991560894146397615651828625369792082722375825118521091686400\ 0000000000000000000000 Vous trouverez ici un chier contenant la dénition en bc du calcul de l'inverse modulaire d'un entier. Question 1. Réalisez dans le langage de bc une fonction d'exponentiation modulaire à trois paramètres a, b et n. Cette fonction retourne a b (mod n). 1.2 Petits problèmes RSA Voici 3 problèmes (faciles) de déchirement de messages chirés avec le système RSA. Dans le premier, la clef de déchirement est donnée. Dans les deux autres il vous faut la découvrir dans un ensemble de propositions. Tous les messages sont des (petits) textes en français qui ne sont pas du tout de mon cru! Seuls 27 caractères sont utilisés : les 26 lettres de l'alphabet latin + l'espace. Ils ont été codés numériquement à l'aide du codage suivant lettre code lettre code <ESP> 10 N 24 A 11 O 25 B 12 P 26 C 13 Q 27 D 14 R 28 E 15 S 29 F 16 T 30 G 17 U 31 H 18 V 32 I 19 W 33 J 20 X 34 K 21 Y 35 L 22 Z 36 M 23 Table 1 Table de codage des lettres Utilisez bc avec votre programme d'exponentiation modulaire pour résoudre les problèmes suivants. Question 2. PROBLEME 2 clé publique de chirement : n = 4959857312573239457 e = 3194431902064013299 clé privée de déchirement : 5 blocs chirés : d = 1838763639251553019 C 1 = 4249869471061488508 C 2 = 1001776371879623227 C 3 = 2516869311349389770 C 4 = 309660329914070426 C 5 = 1847727059104339995 Question 3. PROBLEME 2 nbres premiers : p = 8140362821 q = 9048887623 2

clé publique de chirement : clé privée de déchirement : à déterminer parmi 5 blocs chirés : Question 4. PROBLEME 3 nbres premiers : clé publique de chirement : clé de déchirement à calculer 2 blocs chirés : n = 73661228377676264483 e = 2962156080621897583 d 1 = 30678752553712701869 d 2 = 26768167864063915899 d 3 = 67054971285286364407 d 4 = 84555992645867585346 C 1 = 21155242310491399846 C 2 = 58440178929188620128 C 3 = 24138070785058552665 C 4 = 801255332636756191 C 5 = 57120670090459116772 p = 3182227225630079723 q = 9803760009659795503 n = 31197792016282814628824090449766885669 e = 44344829669746450844892891211 C 1 = 26875744445373358157856668291282383589 C 2 = 4746889674113357069719785547319742412 2 RSA avec OpenSSL 2.1 Génération d'une paire de clés On peut générer une paire de clés RSA avec la commande genrsa de openssl. > o p e n s s l genrsa out <f i c h i e r > <t a i l l e > où chier est un nom de chier de sauvegarde de la clé, et taille est la taille souhaitée (exprimée en bits) du modulus de la clé. Par exemple, pour générer une paire de clés de 1024 bits, stockée dans le chier macle.pem, on tape la commande > o p e n s s l genrsa out macle. pem 1024 Le chier obtenu est un chier au format PEM (Privacy Enhanced Mail, format en base 64), dont voici un exemple 3

> cat macle. pem BEGIN RSA PRIVATE KEY MIICXAIBAAKBgQCveVjLltevTC5kSAiTYjHMVuAR80DHMLWCp3BOVZ49eXwraXxO 7AfKWpA5g0wFZgZNERIfFYaCnvaQDQA+9BRIfsSSr3oSw0My5SD6eg15v0VmJmvP d8lgbypjhbr6f5mxwqntvzp0qvg6ddenpuirqkkh4udfhfdwqyrkqucvkwidaqab AoGANchUrfnq28DWy0fE0R+cscvC292Z8jN8vrIBWxEk8iSlKU0om6v+a0g8wlP6 3gC6V66uxjY7xxdf7SD+/UykVl4PGFymhLtywSdGlgec3tLgBtV3ytJFilAVDBij LzQwUegCO4zt1JWYc6vvaVdNyQSaGIIeYGsNDWEYlOtDSlkCQQDVRn9JS15G8p+H 4Z0PbU9ZQg2L1u9/SD/kELVe3Kx1fdHulxH0v8V2AgPdXA29Nhi+TxUtC+V8CMc2 KXmAvFsHAkEA0qBDmjHMDPwcGaqbQ2lymYQIGlZ5TLQFA98Dey2uE+CB6pmS/ e/z ilu1iaasue3vbzxfb /JU7DUkV++JQ7TtvQJBAL2s5dUch2sXqlOhjhpDP/eE7CE6 9WLAsbm2Nmd4YJRZYtQLXPfLeeSapC9BCCMHsnfGQ3H9i4mFEQ6VUi7w1Q8CQAQa pvas09qi8y86em4gdvowzwud9b0d4n8jcfdtifa3nrdyjzmte8kramsgeuucet9f uhpsl/9urage/dq44s0cqcmqu4pmqkmtwzcfsv8zqlmkdpn1biniawrlyfcsqrdt gti6rycz3pk1hcvzbfymd8zwqpwkmr5fooxujev+mvg= END RSA PRIVATE KEY 2.2 Visualisation des clés RSA La commande rsa permet de visualiser le contenu d'un chier au format PEM contenant une paire de clés RSA. > o p e n s s l r sa in <f i c h i e r > t e x t noout L'option -text demande l'achage décodé de la paire de clés. L'option -noout supprime la sortie normalement produite par la commande rsa. Par exemple > o p e n s s l r sa in macle. pem t e x t noout Private Key : (1024 b i t ) modulus : 0 0 : a f : 7 9 : 5 8 : cb : 9 6 : d7 : a f : 4 c : 2 e : 6 4 : 4 8 : 0 8 : 9 3 : 6 2 : 3 1 : cc : 5 6 : e0 : 1 1 : f 3 : 4 0 : c7 : 3 0 : b5 : 8 2 : a7 : 7 0 : 4 e : 5 5 : 9e : 3 d : 7 9 : 7 c : 2 b : 6 9 : 7 c : 4 e : ec : 0 7 : ca : 5 a : 9 0 : 3 9 : 8 3 : 4c : 0 5 : 6 6 : 0 6 : 4 d : 1 1 : 1 2 : 1 f : 1 5 : 8 6 : 8 2 : 9 e : f 6 : 9 0 : 0 d : 00:3 e : f 4 : 1 4 : 4 8 : 7 e : c4 : 9 2 : a f : 7 a : 1 2 : c3 : 4 3 : 3 2 : e5 : 2 0 : f a : 7 a : 0 d : 7 9 : bf : 4 5 : 6 6 : 2 6 : 6 b : c f : 7 7 : c2 : e0 : 0 7 : 2a : 4 9 : 1 d : ba : f a : 7 f : 9 3 : 1 7 : 5 a : a9 : ed : bf : 3 a : 7 4 : 4 2 : f 8 : 3 a : 7 5 : d7 : 8 d : a5 : 4 2 : 2 b : aa : 4 9 : 2 1 : e2 : e0 : df : 1 c : 5 0 : d6 : ab : 2 a : e4 : 4 1 : 4 0 : a f : 2 b publicexponent : 65537 ( 0 x10001 ) privateexponent : 3 5 : c8 : 5 4 : ad : f 9 : ea : db : c0 : d6 : cb : 4 7 : c4 : d1 : 1 f : 9 c : b1 : cb : c2 : db : dd : 9 9 : f 2 : 3 3 : 7 c : be : b2 : 0 1 : 5 b : 1 1 : 2 4 : f 2 : 2 4 : a5 : 2 9 : 4 d : 2 8 : 9 b : ab : f e : 6 b : 4 8 : 3 c : c2 : 5 3 : f a : de : 0 0 : ba : 5 7 : ae : ae : c6 : 3 6 : 3 b : c7 : 1 7 : 5 f : ed : 2 0 : f e : fd : 4 c : a4 : 5 6 : 5 e : 0 f : 1 8 : 5 c : a6 : 8 4 : bb : 7 2 : c1 : 2 7 : 4 6 : 9 6 : 0 7 : 9 c : de : d2 : e0 : 0 6 : d5 : 7 7 : ca : d2 : 4 5 : 8 a : 5 0 : 1 5 : 0c : 1 8 : a3 : 2 f : 3 4 : 3 0 : 5 1 : e8 : 0 2 : 3 b : 8 c : ed : d4 : 9 5 : 9 8 : 7 3 : ab : e f : 6 9 : 5 7 : 4 d : c9 : 0 4 : 9 a : 1 8 : 8 2 : 1 e : 6 0 : 6 b : 0 d : 0d : 6 1 : 1 8 : 9 4 : eb : 4 3 : 4 a : 5 9 prime1 : 0 0 : d5 : 4 6 : 7 f : 4 9 : 4 b : 5 e : 4 6 : f 2 : 9 f : 8 7 : e1 : 9 d : 0 f : 6 d : 4 f : 5 9 : 4 2 : 0 d : 8 b : d6 : e f : 7 f : 4 8 : 3 f : e4 : 1 0 : b5 : 5 e : dc : ac : 7 5 : 7 d : d1 : ee : 9 7 : 1 1 : f 4 : bf : c5 : 7 6 : 0 2 : 0 3 : dd : 5 c : 0d : bd : 3 6 : 1 8 : be : 4 f : 1 5 : 2 d : 0 b : e5 : 7 c : 0 8 : c7 : 3 6 : 2 9 : 7 9 : 8 0 : bc : 5 b : 0 7 prime2 : 4

0 0 : d2 : a0 : 4 3 : 9 a : 3 1 : cc : 0 c : f c : 1 c : 1 9 : aa : 9 b : 4 3 : 6 9 : 7 2 : 9 9 : 8 4 : 0 8 : 1 a : 5 6 : 7 9 : 4 c : b4 : 0 5 : 0 3 : df : 0 3 : 7 b : 2 d : ae : 1 3 : e0 : 8 1 : ea : 9 9 : 9 2 : fd : e f : d9 : 8 a : 5 b : b5 : 2 1 : a6 : ac : b8 : 4 d : e f : 0 7 : 3 5 : df : 0 7 : f 2 : 5 4 : ec : 3 5 : 2 4 : 5 7 : e f : 8 9 : 4 3 : b4 : ed : bd exponent1 : 0 0 : bd : ac : e5 : d5 : 1 c : 8 7 : 6 b : 1 7 : aa : 5 3 : a1 : 8 e : 1 a : 4 3 : 3 f : f 7 : 8 4 : ec : 2 1 : 3 a : f 5 : 6 2 : c0 : b1 : b9 : b6 : 3 6 : 6 7 : 7 8 : 6 0 : 9 4 : 5 9 : 6 2 : d4 : 0 b : 5 c : f 7 : cb : 7 9 : e4 : 9 a : a4 : 2 f : 4 1 : 0 8 : 2 3 : 0 7 : b2 : 7 7 : c6 : 4 3 : 7 1 : fd : 8 b : 8 9 : 8 5 : 1 1 : 0 e : 9 5 : 52:2 e : f 0 : d5 : 0 f exponent2 : 04:1 a : a5 : 5 6 : 9 2 : d3 : d4 : 0 8 : f 1 : 8 f : 3 a : 7 8 : ce : 0 6 : 7 6 : f a : 3 0 : cd : 6 b : 9 d : f 5 : bd : 1 d : e0 : df : 2 3 : 7 0 : 5 0 : ed : 2 1 : f 0 : 3 7 : 3 6 : b0 : d8 : 8 f : 3 9 : ad : 7 b : c2 : ab : 6 8 : cb : 2 0 : 1 1 : 4b : 8 2 : 1 1 : 3 f : 4 5 : b8 : 7 3 : d2 : 2 f : f f : 6 e : 4 5 : a8 : 0 4 : fd : da : b8 : e2 : cd c o e f f i c i e n t : 2 3 : 1 0 : 5 3 : 8 3 : cc : aa : 4 3 : 2 d : c3 : 3 0 : 8 5 : b1 : 5 f : 1 9 : a8 : b9 : a4 : 0 c : f 9 : f 5 : 6 e : 2 9 : c8 : 0 3 : 0 4 : 4 b : 6 0 : 5 7 : 2 c : 4 1 : 1 0 : ed : 8 1 : 3 8 : ba : a f : 2 7 : 3 3 : dc : f 9 : 3 5 : 8 4 : 2 5 : 7 3 : 0 5 : f c : 8 c : 7 7 : cc : f 0 : aa : 9 c : 0 a : 9 9 : 1 e : 4 5 : a0 : e5 : ee : 2 4 : 4b : f e : 9 9 : 5 8 Les diérents éléments de la clé sont achés en hexadécimal (hormis l'exposant public). On peut distinguer le modulus, l'exposant public (qui par défaut est toujours 65537 1 ), l'exposant privé, les nombres premiers facteurs du modulus, plus trois autres nombres qui servent à optimiser l'algorithme de déchiffrement. Question 5. Donnez une explication du choix de la valeur 65537 pour exposant public par défaut. 2.3 Chirement d'un chier de clés RSA Il n'est pas prudent de laisser une paire de clé en clair (surtout la partie privée). Avec la commande rsa, il est possible de chirer une paire de clés 2. Pour cela trois options sont possibles qui précisent l'algorithme de chirement symétrique à utiliser : -des, -des3 et -idea. > o p e n s s l r sa in macle. pem des3 out macle. pem w r i t i n g RSA key Enter PEM pass phrase : V e r i f y i n g Enter PEM pass phrase : Une phrase de passe est demandée deux fois pour générer une clé symétrique protégeant l'accès à la clé. Question 6. Avec la commande cat observez le contenu du chier macle.pem. Utilisez à nouveau la commande rsa pour visualiser le contenu de la clé. 2.4 Exportation de la partie publique La partie publique d'une paire de clés RSA est publique, et à ce titre peut être communiquée à n'importe qui. Le chier macle.pem contient la partie privée de la clé, et ne peut donc pas être communiqué tel quel (même s'il est chiré). Avec l'option -pubout on peut exporter la partie publique d'une clé. > o p e n s s l r sa in macle. pem pubout out maclepublique. pem Question 7. Notez le contenu du chier maclepublique.pem. Remarquez les marqueurs de début et de n. Question 8. Avec la commande rsa visualisez la clé publique. Attention vous devez préciser l'option -pubin, puisque seule la partie publique gure dans le chier maclepublique.pem. 1. openssl n'autorise que deux exposants publics : 65537 (valeur par défaut) ou 3 obtenu avec l'option -3 2. Il est possible de chirer le chier lors de sa génération. Il sut de mettre l'une des trois options -des, -des3, -idea dans la ligne de commande genrsa. 5

2.5 Chirement/déchirement de données avec RSA On peut chirer des données avec une clé RSA. Pour cela on utilise la commande rsautl > o p e n s s l r s a u t l encrypt in <f i c h i e r _ e n t r e e > inkey <cle > out <f i c h i e r _ s o r t i e > où chier_entree est le chier des données à chirer. Attention, le chier des données à chirer ne doit pas avoir une taille excessive (ne doit pas dépasser 116 octets pour une clé de 1024 bits). cle est le chier contenant la clé RSA. Si ce chier ne contient que la parte publique de la clé, il faut rajouter l'option -pubin. chier_sortie est le chier de données chiré. Pour déchirer on remplace l'option -encrypt par -decrypt. Le chier contenant la clé doit obligatoirement contenir la partie privée. Question 9. Il s'agit de déchirer le chier cryptogram16. Pour cela vous devez récupérer l'archive les_cryptogrammes4. zip qui contient les chiers suivants (attention la plupart de ces chiers sont des chiers binaires). Le chier cryptogram16 (chier binaire) a été obtenu en chirant un texte avec openssl et la commande enc. Le système de chirement symétrique utilisé est BlowFish en mode CBC. La clé BlowFish a été dérivée à partir d'un mot de passe dont voici la version chirée est contenue dans le chier motdepasse.rsa. La clé privée RSA qui a servi à chirer le mot de passe est dans le chier macle.pem. Enn, le mot de passe protégeant la clé RSA, codé en base 64, est dans le chier Q2FsYnV0aAo=. Quelle est la taille de la clé RSA qui protège le mot de passe? Déchirez le cryptogramme 16. Qu'obtient-on? 6