Vous êtes sur la page 1sur 68

Services et Mcanismes de base de la Cryptographie

Systmes symtriques et asymtriques


Fonction de hachage Signature numrique

Khaled SAMMOUD

Sommaire

Domaine de la scurit. Services de scurit. Algorithmes de chiffrement symtrique. Chiffrement symtrique DES.

Algorithmes de chiffrement asymtrique.


Chiffrement asymtrique RSA. Fonctions de hachage.

Signature.
Certificat. Quelques standards

Services de la scurit

Authentification Identification Intgrit Confidentialit

Non-rpudiation Non-rejeu Contre lanalyse de trafic Horodatage

Problmatique

Failles dans les protocoles de communication

Toute information circulant sur Internet peut tre capture et enregistre et/ou modifie
Problme de confidentialit et dintgrit

Toute personne peut falsifier son adresse IP (spoofing) ce qui engendre une fausse identification
Problme dauthentification

Aucune preuve nest fournie par Internet quant la participation dans un change lectronique
Problme dabsence de traabilit

Cryptographie

Science mathmatique permettant deffectuer des oprations sur un texte intelligible afin dassurer une ou plusieurs proprits de la scurit de linformation.

Intgrit Authentification

Non Rpudiation Confidentialit

Dfinition dun crypto-systme


Un crypto-systme est dcrit par cinq uplets (P,C,K,E,D), satisfaisant ces conditions:

P est un ensemble fini de textes clairs (Plain text) C est un ensemble fini de textes crypts (Cypher text) K est lespace de cls (key space), reprsente un ensemble fini de cls possibles. Pour chaque k K, il existe une fonction cryptage ek E, et une fonction de dcryptage correspondante dk D

Les fonctions ek : P C

et

dk : C P doivent satisfaire:

dk(ek(x))=x pour chaque x P

Principaux objectifs

Le texte clair ne doit pas tre facilement obtenu partir dun texte crypt.
Les cls ne doivent pas tre facilement obtenues partir dun texte crypt. Lespace des cls doit tre assez large pour rsister aux attaques brute-force.

Cryptanalyse

Principes et mthodes permettant de trouver un message clair partir dun message crypt sans connaissance de la cl. Attaques classifies selon le type de connaissance disponible pour lintrus (cryptanalyst). Connaissant C=E(P,K) mais pas K, lobjectif est de trouver P ou K. Types dattaques de cryptanalyse:

Texte chiffr uniquement: uniquement C et E sont connus par lintrus


Texte clair connu: Uniquement E, C, et quelques paires de messages clairs/crypts avec K, sont connus par lintrus Texte clair choisi: E, C, sont connus, et P a t choisi par lintrus.

Cryptage symtrique

Exigences:

Un algorithme de cryptage solide.

Une cl secrte partage et connue entre lmetteur et le rcepteur.

Y = EK(X) X = DK(Y)

Suppose que lalgorithme de cryptage est connu lavance. Les cls sont distribues travers des canaux scuriss. Exemples :

Algorithmes : DES, IDEA, AES Taille des cls : 56-128-192-256- bits

Cryptage symtrique: principe de base


Cl 01010000111
Transmission par canal scuris

Cl 01010000111

Cryptanalyst

Texte clair
Voici le numro de ma carte de crdit 111111,

Cryptage

Internet

Dcryptage

Texte clair
Voici le numro de ma carte de crdit 111111,

Texte crypt Emetteur Rcepteur

Algorithme Symtrique
Message clair Message Message clair

chiffrement
Cl

chiffr

dchiffrement
Cl

Alice

Bob

Une seule cl: cl secrte Transformation et permutation. Traitement relativement rapide. Problme dchange et de gestion des cls. Usage : service de confidentialit

Cryptage symtrique: Modes Oprationnels

Cryptage par flux (Stream Cipher)

Principe: Traite les lments dentre de faon continue, produisant la fois un lment de sortie (crypt). La cl est aussi longue que le stream de donnes. Mode adapt pour la communication en temps rel: Pas besoin
dattendre larriv du block entier

Implment en gnral sur des supports hardware.


Principe: Le texte est divis en diffrents blocks de taille fixe. Un block est trait la fois, produisant un block de donnes cryptes.
le block doit tre entirement disponible avant le traitement

Cryptage par bloc (Bloc Cipher)

La mme fonction et la mme cl est utilise pour crypter les blocks successifs. Implmentation dune manire logicielle en gnrale.

Algorithme Symtrique

Deux modes:

Chiffrement symtrique en stream Chiffrement symtrique en bloc

Electric Code Block (ECB).


Cipher Block Chaining (CBC).
E E Ci-1 Ci Mi-1 Mi E E CBC Mode Ci-1 Ci

Mi-1 Mi

ECB Mode

Cryptographie Symtrique: oprations de base

Substitution

Remplacement de chaque lment (bit, lettre, groupe de bits ou de lettres) dans le texte clair par un autre lment. Rarrangement des lments du texte clair

Transposition

La plupart des systmes utilisent plusieurs tapes de transposition et de substitution.


Aucune information ne doit tre perdue durant ces deux oprations

Exemple de cryptage par substitution


Exemple: Caesar's cipher

Etapes:

Cl = 3 Remplacer chaque lettre par celle qui la succde de trois (3). a devient d, b devient e, , y devient b, z devient c Lalgorithme peut tre dcrit comme suit:

C = E(p) = (p+3) mod (26)

Problmes rendant la cryptanalyse de cet algorithme simple:


Algorithme de cryptage et de dcryptage connu. Seulement 25 cls essayer. Le langage du message clair est connu et facilement identifiable.

Exemple de cryptage par transposition


Exemple: Rail fence technique

Principe: Le texte clair est rcrit comme une squence de lignes, puis rordonne comme une squence de colonnes
Key: 4 3 1 2 5 6 7 o s t p o n e d u n t i l t w o a m x y z Ciphertext: TTNA APTM TSUO AODW COIX KNLY PETZ Plaintext: a t t a c k p

Cryptanalyse possible vue que lalgorithme prserve la frquence de distribution des lettres du texte original.

Cryptographie Symtrique : exemples

Algorithmes de chiffrement en continu (Stream Cipher)

Exemple : RC4 (RSA Security)

Taille de la cl variable (128 bits en pratique).

Algorithmes de chiffrement par blocs (Block Cipher)

Chiffrement par blocs de texte clair: 64 bits (DES), 128 bits (AES). DES (cl 56 bits), 3DES (cl de 168 bits ou 112 bits).

RC2 (cl 128 bits), Blowfish (cl 128bits, jusqu' 448 bits), AES (cl 128, 192, 256 bits).

Algorithme Symtrique
Algorithme Nom et commentaires Type de chiffrement Longueur de Normalis la cl

DES

Data Encryption Standard

en bloc de 64 bits

56 bits

FIPS Pub 81,1981 ANSI X3.92, X3.105, X3.106 ISO 8372 ISO/IEC 10116

IDEA RC2

International Algorithm,

Data

Encryption en bloc de 64 bits en bloc de 64 bits

128 bits variable, 40 b.export. Non et propritaire

dvelop par Ronald Rivest

RC4

dvelop par R. Rivest

enfil

variable Non, mais divulg sur 40/ 128 lInternet en 1994 bits Non et propritaire

RC5

dvelop par R. Rivest

en bloc de 32, 64 ou variable 128 bits jusqu 2048 bits 80 bits

SKIPJACK

Confidentiel dvelopp aux tats en bloc de 64 bits Unis par la NSA (National Security Agency - Agence de scurit nationale des tats Unis) pour des applications sur la carte PCMCIA Fortezza. en bloc de 64 bits

Secret dfence aux tatsUnis

Triple DES

112 bits

ANSI X9.52

Cryptage symtrique

Avantages

Confidentialit des donnes. Rapidit, et facilit de mise en uvre sur des circuits. Problmatique de l'change de la cl de chiffrement tablissement pralable d'un canal sr pour la transmission de la cl Une tierce partie ne peut pas sassurer de lauthenticit des messages. Problme de la distribution des cls de cryptage Ncessit dtablir un canal scuris pour la transmission de la cl

Limitations

Nombre de cls changes (en n).

DES (Data Encryption Standard)


DES (Data Encryption Standard) IBM 1977 Lalgorithme de cryptage (Block cipher) cls symtriques le plus utilis. Crypte des blocks de 64 bits en utilisant des cls relativement courtes (taille effective 56-bit). Produit de transpositions et de substitutions. Implmentation facile en matriel.

Boites transposition P-Box Boites de substitution S-Box

Les tapes des cette laboration sont rests secrets, (la conception des S Boxes). Les S Boxes sont des tables qui dfinissent des permutation. Le message est dcoup en blocs de 64 bits. Initialisation : permutation de tous les bits formant ce bloc. On le coupe en deux parties : L0 et R0.

Algorithme DES

1 48 bits 3

DES (tapes 1 et 3): P-Box

Permutation initiale

Permutation finale

Le bit numro 1 deviendra la position 58 Implmentation simple en matriel

DES (tape 2)

Les sous-cls (Round keys) sont gnres partir de la cl principale de 56 bits:


Diviser la cl de 56 bits en deux segments.

Rotation de chaque segment par un ou deux bits droite.


Slection de 24 bits de chaque segment.

DES (tape 3) Un tour DES (One DES round)


Cryptage
Block de 64 bits en entre
Sous-cl de 48 bits Sous-cl de 48 bits

Dcryptage
Block de 64 bits en entre

32 bits Li

32 bits Ri

32 bits Li+1

32 bits Ri+1

Fonction de cryptage

Fonction de cryptage

+ 32 bits Li+1 32 bits Ri+1

+ 32 bits Li 32 bits Ri

Block de 64 bits en sortie

Block de 64 bits en sortie

Fonction de cryptage
A

A- Fonction dexpansion

Etendre les blocks dentr Ri de 32 bits un block Ri de 48 bits.


Division des 32 bits en des segments de 4 bits largir chaque segment de 4 bits avec les bits de ses voisins pour attendre 6 bits. XOR des 48 bits en sortie avec la cl.

1 2 3 4 5 6 7 8 9

32

1 2 3 4 5

4 5 6 7 8 9

B- Fonction de substitution
0 0 1 0 0 1
1110
01=1 0100=4

14

Un sous-bloc de 6 bits est transform en un sous-bloc de 4 bits.

C Fonction de permutation

Bit en position 1 est envoy en position 16

Chiffrement symtrique

La cl secrte est transforme en 16 parties Ki de 48 bits. Puis, on permute les deux parties en introduisant une fonction de la cl.

L1 = R0. R1 = L0 + f (K1, R0).

Cette opration se rpte 16 fois. A chaque tape i, on a :


Li = Ri-1. Ri = Li-1 + f (Ki, Ri-1).

Chiffrement symtrique - DES

Ki reprsente la sous cl numro i obtenu partir de la cl secrte. Le calcul de f se fait de la manire suivante :

les 32 bits de la partie R sont tendue 48 bits grce une table appele E (Expansion). Ce nouveau R, E(R) pour tre plus prcis, est additionn Ki. Le rsultat est dcoup en huit suites Bi de six bits : Grce la table S-Box, les donnes de ces huit suites donne un rsultat de 32bits.

Chiffrement symtrique - DES


Il y a 8 S-Box, une pour chacun Bi. Chaque S-Box 16 colonnes et 4 lignes. Bi = b1b2b3b4b5b6. On calcule

r = b1b6

c = b2b3b4b5.

On regarde le nombre qui figure la ligne r et la colonne c. Il est cod sur 4 bits est correspond la sortie Si(Bi).

Ensuite on effectue une permutation reprsente par une table appele P et le rsultat de cette permutation est retourn par la fonction f.
Pour le dchiffrement, il suffit de faire lopration inverse.

Limites de DES

Les progrs en cryptanalyse et en lectronique a fait que la longueur 56 des cls est devenu un problme pour DES La taille de lensemble : {0,1}56 permet de retrouver la cl partir dun texte clair connu en faisant du brute force.

3-DES (triple DES) a t lanc comme un nouveau standard en 1999.


Utilise 2 ou 3 cls. Niveau de scurit satisfaisant. Permet de continuer lutilisation des boites S-Box et P-Box matriel et logiciel, en attendant la migration vers AES.

K3
Cryptage dcryptage Cryptage Cryptage

DES
Cryptage Cryptage

Attaque par force brute


Key Size 40 bit key 56 bit key 64 bit key 80 bit key 112 bit key 128 bit key 1995 .2 seconds 3.6 hours 38 days 7000 years 10(13) years 10(18) years 2005 2 milliseconds 2 minutes 2015 .02 milliseconds 1 second 5.5 minutes 251 days 10(9) years 10(14) years 2030 .02 microseconds 1 millisecond .3 seconds 6 hours 10(6) years 10(11) years

9 hours 70 years 10(11) years 10(16) years

Cryptographie asymtrique (1)

Appel aussi: cryptographie cl publique / paire de cls

/ asymtrique

Reprsente une rvolution dans lhistoire de la cryptographie Utilisation de deux cls:

Cl publique: Connue par tout le monde, et peut tre utilise pour crypter des messages ou pour vrifier la signature. Cl prive: Connue par le rcepteur uniquement, utilise pour dcrypter les messages, ou pour crer la signature.

Si on crypte avec lune de ces cls le dcryptage se fait uniquement avec lautre. Impossible de trouver la cl prive partir de la cl publique.

Cryptographie asymtrique (2)

Cls grande taille (ex: RSA: 1024-2048-).

Fonction trappe sens unique


Kpr: cl prive, Kpu: cl publique Y=fKpr(X) facile calculer si Kpr et X sont connus.

X=fKpu-1(Y) facile si Kpu et Y sont connus, mais impossible si Y est connu et Kpu non connue. Utilis gnralement pour Cryptage / dcryptage: assurer la confidentialit. Signature numrique: assurer lauthentification et la non rpudiation. Distribution de cls: se mettre daccord sur une cl de session.

Algorithme Asymtrique
Message clair Message Message clair

chiffrement
Cl 1

chiffr

dchiffrement
Cl 2

Deux cls : cl publique / cl priv. Traitement relativement lent. Exemple : RSA (Rivest Shamir Adleman). Usage: authentification, signature, change de cls.

Cryptographie asymtrique: scnarios dutilisation Scnario: confidentialit


Cl publique du rcepteur Texte clair
Voici le numro de ma carte de crdit 111111,

Cl prive du rcepteur

Cryptage

Internet

Dcryptage

Texte clair
Voici le numro de ma carte de crdit 111111,

Texte crypt
Emetteur Rcepteur

Cryptographie asymtrique: scnarios dutilisation Scnario: authenticit de lmetteur et non rpudiation denvoi

Cl prive de lmetteur Texte clair


Voici le numro de ma carte de crdit 111111,

Cl publique de lmetteur Texte clair


Voici le numro de ma carte de crdit 111111,

Cryptage

Internet

Dcryptage

Texte crypt Emetteur Rcepteur

Chiffrement mixte

Cl Alatoire de Cryptage Symtrique

Texte Clair Cl publique du destinataire

Texte Chiffr

Cl Alatoire de Cryptage Symtrique Texte Chiffr Cl prive du destinataire

Texte Clair

Cryptographie asymtrique: scnarios dutilisation Scnario: Distribution des cls de session (cls symtriques)

Cryptographie asymtrique : exemples

RSA

Dvelopp par Rivest, Shamir & Adleman MIT en 1977, publi en 1978. Le plus connu et le plus utilis comme algorithme de cryptage asymtrique : utilis pour le cryptage et la signature lectronique. Utilise des entiers trs larges 1024+ bits La scurit repose sur le cot de factorisation des entiers larges.

Diffie-Hellman

Algorithme utilis pour lchange et la distribution des cls symtriques.

RSA: Algorithme

Etapes
1. 2. 3. 4. 5. 6. 7. Slectionner deux entiers premiers entre eux p et q Calculer n = p x q Calculer (n)=(p-1)(q-1) Slectionner e tel que: pgcd((n),e)=1 ; 1<e<(n)

En gnral e est un entier de petite taille.

Calculer d=e-1 mod (n) En dautre terme: d.e = 1 mod ((n)) Cl publique: Kpu={e,n} Cl prive Kpr = {d,n} Obtient une cl publique du rcepteur et calcule C= Me mod n

Pour crypter un message M < n, lmetteur: Pour dcrypter un message crypt C le rcepteur

Utilise sa cl prive et calcule M = Cd mod n

RSA: Exemple
Cryptage Texte clair Texte crypt Dcryptage Texte clair

p = 17,

q = 11,

n = p x q= 187

(n) = 16 x 10 =160, Choisir e = 7, d.e =1 (mod (n)) d = 23

Chiffrement asymtrique - RSA

Pour percer RSA, il suffit de pouvoir factoriser n. En effet, n est connu et si on le factorise, on obtient p et q puis j et connaissant j et d, on obtient e. Mais, la factorisation de n nest pas une chose facile. La factorisation de grands nombres suffit , elle seule, dissuader de nombreuses tentatives. En pratique, il y a deux difficults pour implmenter RSA. La premire est la gnration de grands nombres premiers (p et q) et la seconde est llvation de nombre des puissances trs grandes. Un standard de RSA est PKCS 1.

RSA: formules de base

Fonction d'Euler (n) : reprsente le nombre d'entiers premiers avec n.

Exemples:

n est premier (n) = n-1


n = p . q avec p et q premiers (n) = (p-1).(q-1)

Thorme d'Euler:

a et n sont premiers entre eux a(n) = 1 (mod n)

Preuve de RSA

D(E(M)) = (Me mod n)d mod n = Me.d mod n On a: e.d = 1 (mod (n) ) = z x (n) + 1 Me.d = M
z x (n) + 1

= (Mz)(n) x M

= 1 x M (mod n)

Par hypothse RSA crypte des blocks de donnes de taille infrieure n (dcomposition en blocks) D(E(M)) = M

Cryptage asymtrique: Avantages et inconvnients

Avantages

Pas besoin dtablir un canal sr pour la transmission de la cl. Plusieurs fonctions de scurit: confidentialit, authentification, et non-rpudiation Gnralement dix fois plus lent que le cryptage symtrique. Problme dimplmentation sur les quipements disposants de faible puissance de calcul (ex: cartes bancaire, stations mobiles, etc.)

Inconvnient

Cls longues Complexit algorithmique de la mthode (ex: ralisation des oprations modulo n)

Solution: Utilisation du cryptage asymtrique pour lchange des cls secrtes de session d'un algorithme symtrique cls prives.

Fonction de hashage

Entre: message M avec contenu et taille arbitraire. Sortie: message de taille fixe h=H(M). La fonction de hachage permet dextraire une empreinte qui caractrise les donnes.

Une empreinte a toujours une taille fixe indpendamment de la taille des donnes. Etant donne h, il est difficile de trouver x tel que: h = H(x) Complexit de lordre de 2n, n est le nombre de bits du digest.

Irrversible:

Calcul facile et rapide (plus rapide que le cryptage symtrique). Exemples:


MD5, SHA, Taille du digest: 128-160- bits

Fonction de hashage

H (M) = C

M est de taille quelconque C est de taille fixe (16 ou 20 octets)

C est appel condenst, ou empreinte, ou fingerprint, ou message digest

Fonction sens unique Si H (M1) = C1 ,

il est trs difficile de trouver : M2 diffrent de M1 tel que H (M2) = C1

Usage : checksums, intgrit

Fonction de hashage

Condensat Texte Clair

Fonctions de Hachage: Principes


Texte clair Internet
Hachage
Empreinte Empreinte reue

Texte clair

=?
Empreinte recalcule

Hachage

1)
Empreinte reue

=
Empreinte recalcule

Le texte reu est intgre

2)
Empreinte reue

Empreinte recalcule

Le texte reu est altr

Proprits dune fonction de hachage

Irrversible

Soit y le rsultat de hachage, il est pratiquement infaisable de trouver x tel que h(x)=y. Soit x et y=h(x) , il est pratiquement infaisable de trouver xx tel que h(x)=h(x). Il est pratiquement infaisable de trouver deux valeurs distinctes x et x tel que h(x)=h(x).

Rsistance forte la collision:

Fonctions de Hachage: Exemples

MD5 : Message Digest 5


Dvelopp en 1991

Gnre une empreinte de taille 128 bits en traitant les donnes dentre par blocs de 512 bits. Gnre une empreinte de taille 160 bits.
Plus fort que MD5.

SHA-1 : Secure Hash algorithm

Signature numrique

Principe de fonctionnement

Le Hash (rsultat de la fonction de hachage) dun message est crypt avec la cl prive de lmetteur. La cl publique est utilise pour la vrification de la signature M: message signer, H: fonction de hachage

Soit:

Kpr, Kpu: paire de cls prive/publique de lmetteur.


E / D: fonction de cryptage / Dcryptage en utilisant Kpu / Kpr.

En recevant (M, EKpr(H(M))), le rcepteur vrifie si: H(M)=DKpu(EKpr(H(M)))

Signature

Message

Message Texte Chiffr

Cl Prive de L'Expditeur

Condenst

Signature

Signature

Message Texte Chiffr

Condenst

?
Cl publique du signataire

Signature

Condenst

Signature

La signature permet de mettre en uvre les services:

Intgrit du message

Authentification
Non-rpudiation

Gnration dune cl de chiffrement symtrique pour le service de Confidentialit

Signature numrique: Gnration

Cl prive du signataire Signature numrique

Texte clair

Fonction de Hachage

Cryptage Asymtrique

Empreinte
Processus de Gnration de la Signature numrique

Signature numrique: Vrification


Texte clair

Hachage
Cl publique de lmetteur
Empreinte recalcule

=?

Signature numrique

Dcryptage
Empreinte reue

1)
Empreinte reue

=
Empreinte recalcule

La signature reue est correcte

2)
Empreinte reue

Empreinte recalcule

La signature reue est incorrecte

Emetteur

Transmission du message, du rsultat de hachage crypt, et des informations relatives aux algorithmes utiliss

Cryptage du rsultat de hachage avec la cl prive de lmetteur

Rcepteur

Dcryptage avec la cl public de lmetteur

Signature incorrecte

Rsultats diffrent

Rsultats gaux

Emetteur du message authentifi, message intgre, et lmetteur ne peut pas rpudier lenvoi

Signature numrique VS Signature Manuscrite

Les deux signatures (numrique & manuscrite ) assurent:


Authentification du signataire Non rpudiation.


Authentification

Intgrit

La signature numrique, seule,


Non Rpudiation

assure lintgrit des donnes.

Certificat (1/2)

Un certificat est un message sign avec la cl priv d une entit


On nomme cette entit une autorit de certification Le certificat peut tre vrifi avec la cl publique de lautorit de certification Les autorits de certification peuvent tre organises en arbre. Il suffit d avoir confiance en une seule pour pouvoir vrifier un certificat quelconque de la hirarchie.

Certificat (2/2)
texte en clair condenst Algorithme de hachage cl prive de l'metteur signature numri que (sceau)

cl DES gnre alatoirement pour chaque message certi fi cat de l'metteur message envoy

Message OAEP

enveloppe numrique cl publi que du destinataire

Benchmarks

Pentium II cadenc 233 MHz, API BSAFE 4.0 de RSA


Opration effectuer
DES :gnration de la cl DES : chiffrement DES : dchiffrement MD5 : cration dun condensat RSA : chiffrement 6msec 3241 Koctets/s 3333 Koctets/s 36 250 Koctets/s 4,23 Koctet/s

Dure du traitement

RSA : dchiffrement

2,87 Koctet/s

SHA : cration dun condenst

36 250 Koctet/s

Standards PKCS

PKCS : Public Key Cipher Systems


Standards de la compagnie RSA

Format de stockage des cls prives Format et extensions des certificats

Requte pour l obtention d un certificat


etc, ...

Les standards PKCS


PKCS#1 : RSA Encryption Standard PKCS#3 : Diffie-Helman Key Agreement Standard PKCS#5 : Password-Based Encryption Standard PKCS#6 : Extended-Certificate Syntax Standard PKCS#7 : Cryptographic Message Syntax Standard PKCS#8 : Private-Key Information Syntax Standard PKCS#9 : Selected Attribute Types

PKCS#10 : Certification Request Syntax Standard


PKCS#11 : Cryptographic Token Interface Standard PKCS#12 : Personal Information Exchange Syntax Standard