Audit et Sécurité Informatique

Cryptographie et Cryptanalyse · course

Voir tous les documents en sécurité informatique

Audit et Sécurité Informatique

Chap 3: Cryptographie et Cryptanalyse

Rhouma Rhouma

https://sites.google.com/site/rhoouma

Ecole superieure d’Economie Numerique

3ème année Licence

1 / 91

Plan

1 Cryptographie et Cryptanalyse

2 Protocole d’attaque cryptographique general

3 Algorithmes de substitution

4 Monoalphabetic Cipher

5 Algorithme Playfair

6 Algorithmes poly-alphabetiques

7

Les algorithmes de transposition

8 Algorithmes de cryptage Moderne

Stream ciphers

Block ciphers

9 Exemple : DES

Structure et fonctionnement

Amélioration sur DES jusqu’à utilisation d’AES

10 Modes de cryptage par bloc

2 / 91

Plan

Cryptographie et Cryptanalyse

1 Cryptographie et Cryptanalyse

2 Protocole d’attaque cryptographique general

3 Algorithmes de substitution

4 Monoalphabetic Cipher

5 Algorithme Playfair

6 Algorithmes poly-alphabetiques

7

Les algorithmes de transposition

8 Algorithmes de cryptage Moderne

Stream ciphers

Block ciphers

9 Exemple : DES

Structure et fonctionnement

Amélioration sur DES jusqu’à utilisation d’AES

10 Modes de cryptage par bloc

3 / 91

Types de classification

Cryptographie et Cryptanalyse

On peut classifier les alg de cryptage selon :

Le nb de clés utilisés :

Une seul clé cryptosystème à clé privée (symétrique)

2 clés ou cryptosystème à clé publique (asymétrique)

type d’opération utilisée :

substitution

transposition

produit des deux

la façon dont le plaintext est traité

block

stream (flux)

4 / 91

Cryptage symétrique

Cryptographie et Cryptanalyse

Aussi connu comme cryptage conventionnel ou cryptage à clé

secrète.

c’était le seul type de cryptage jusqu’à invention du cryptage

asymétrique ds les années 70.

reste comme même le cryptage le plus répandu des deux

5 / 91

Terminologie basique

Cryptographie et Cryptanalyse

Plaintext : le message original

Ciphertext : le message chiffré

chiffrement ou cryptage : le processus de conversion du plaintext

vers le ciphertext

déchiffrement ou décryptage : le processus de conversion du

ciphertext vers le plaintext

cryptographie : l’étude des méthodes de cryptage (science des

messages secrets)

cryptanalyse : l’étude des techniques pour casser les algorithmes

de chiffrement

Cryptologie : la cryptographie et la cryptanalyse

6 / 91

Modèle simplifié du cryptage symétrique

Cryptographie et Cryptanalyse

7 / 91

Modèle du cryptage symétrique

Cryptographie et Cryptanalyse

8 / 91

Cryptanalyse

Cryptographie et Cryptanalyse

Son objectif est de retrouver la clé secrète pas simplement le

plaintext

brute force attack (attaque à force brute) :

essayer toutes les combinaisons (sur une ciphertext pour le

déchiffrer) de la clé jusqu’à trouver la bonne

En moyenne, il faut essayer au moins la moitié des clés disponibles

pour arriver à casser un cryptosystème.

cryptanalytic attack : plus intelligente, exploite une connaissance

sur l’algorithme et la manière dont le plaintext est traité.

9 / 91

Protocole d’attaque cryptographique general

Plan

1 Cryptographie et Cryptanalyse

2 Protocole d’attaque cryptographique general

3 Algorithmes de substitution

4 Monoalphabetic Cipher

5 Algorithme Playfair

6 Algorithmes poly-alphabetiques

7

Les algorithmes de transposition

8 Algorithmes de cryptage Moderne

Stream ciphers

Block ciphers

9 Exemple : DES

Structure et fonctionnement

Amélioration sur DES jusqu’à utilisation d’AES

10 Modes de cryptage par bloc

10 / 91

Known-plaintext attack(KPA)

Chosen-plaintext attack(CPA)

Chosen-ciphertext attack(CCA)

Protocole d’attaque cryptographique general

Collecte d’informations : faiblesses théoriques

Observation ou action :Étape "on-line" connecté à la cible.

Ciphertext-only attack(COA)

11 / 91

Chosen-plaintext attack(CPA)

Chosen-ciphertext attack(CCA)

Protocole d’attaque cryptographique general

Collecte d’informations : faiblesses théoriques

Observation ou action :Étape "on-line" connecté à la cible.

Ciphertext-only attack(COA)

Known-plaintext attack(KPA)

11 / 91

Chosen-ciphertext attack(CCA)

Protocole d’attaque cryptographique general

Collecte d’informations : faiblesses théoriques

Observation ou action :Étape "on-line" connecté à la cible.

Ciphertext-only attack(COA)

Known-plaintext attack(KPA)

Chosen-plaintext attack(CPA)

11 / 91

Protocole d’attaque cryptographique general

Collecte d’informations : faiblesses théoriques

Observation ou action :Étape "on-line" connecté à la cible.

Ciphertext-only attack(COA)

Known-plaintext attack(KPA)

Chosen-plaintext attack(CPA)

Chosen-ciphertext attack(CCA)

11 / 91

Protocole d’attaque cryptographique general

Collecte d’informations : faiblesses physiques

Attaques par canal auxiliaire : Side Channel Attack

Mesure du temps de cryptage/décryptage : étude du temps mis

pour effectuer certaines opérations

Fuites électromagnétiques : émet des rayonnements qui varient

selon les opérations effectuées

Analyse du Comportement du processeur lors du calcul : bruit

acoustique

Analyse de la consommation d’énergie : Une consommation accrue

indique un calcul important et peut donner des renseignements sur

la clé

12 / 91

Exploitation : Estimation de la clé et Déchiffrement de tous les

cryptogrammes.

Protocole d’attaque cryptographique general

Analyse, déduction et exploitation

Étape "off-line" : Analyse & Déduction

Attaque à force brute : essayer toutes les clés possibles pour

retrouver un texte en clair à partir du cryptogramme

Attaque statistique : Estimer la fréquence d’apparition des lettres

dans un texte

Attaque algébrique : trouver des représentations équivalentes du

cryptosystème, exploiter des linéarités existantes.

Cryptanalyse linéaire : approximation linéaire de l’algorithme de

chiffrement, augmenter le nombre de couples pour améliorer

l’approximation.

Cryptanalyse différentielle : étudier la manière dont les différences

entre les entrées affectent les différences de leurs sorties pour

découvrir des vulnérabilités.

13 / 91

Protocole d’attaque cryptographique general

Analyse, déduction et exploitation

Étape "off-line" : Analyse & Déduction

Attaque à force brute : essayer toutes les clés possibles pour

retrouver un texte en clair à partir du cryptogramme

Attaque statistique : Estimer la fréquence d’apparition des lettres

dans un texte

Attaque algébrique : trouver des représentations équivalentes du

cryptosystème, exploiter des linéarités existantes.

Cryptanalyse linéaire : approximation linéaire de l’algorithme de

chiffrement, augmenter le nombre de couples pour améliorer

l’approximation.

Cryptanalyse différentielle : étudier la manière dont les différences

entre les entrées affectent les différences de leurs sorties pour

découvrir des vulnérabilités.

Exploitation : Estimation de la clé et Déchiffrement de tous les

cryptogrammes.

13 / 91

Protocole d’attaque cryptographique general

exemple brute force attack

14 / 91

Plan

Algorithmes de substitution

1 Cryptographie et Cryptanalyse

2 Protocole d’attaque cryptographique general

3 Algorithmes de substitution

Publicité

4 Monoalphabetic Cipher

5 Algorithme Playfair

6 Algorithmes poly-alphabetiques

7

Les algorithmes de transposition

8 Algorithmes de cryptage Moderne

Stream ciphers

Block ciphers

9 Exemple : DES

Structure et fonctionnement

Amélioration sur DES jusqu’à utilisation d’AES

10 Modes de cryptage par bloc

15 / 91

Cesar

Algorithmes de substitution

Consiste à remplacer les lettres du plaintext par d’autres lettres ou

symboles ou bits.

le plus connu est l’alg de Cesar : remplacer chaque lettre par celle

qui la suit apres trois positions ds l’alphabet

L’alphabet est enroulé de sorte que la lettre qui suit Z est A

ex :

plain : meet me after the toga party

cipher : PHHW PH DIWHU WKH WRJD SDUWB

16 / 91

Cesar

Algorithmes de substitution

On peut définir la transformation de Cesar comme :

a b c d e f g h i j k l m n o p q r s t u v w x y z

D E F G H I J K L M N O P Q R S T U V W X Y Z A B C

l’alg peut etre exprimé comme :

c = E(3, p) = (p + 3)mod 26

le decalage peut etre généralisé à n’importe quel nombre k :

c = E(k , p) = (p + k )mod 26

si k ∈ [1, 25], alors le déchiffrement est :

p = D(k , c) = (c − k )mod 26

17 / 91

Algorithmes de substitution

Brute force attack

sur Cesar :

essayer toute les

26 combinaisons

18 / 91

Plan

Monoalphabetic Cipher

1 Cryptographie et Cryptanalyse

2 Protocole d’attaque cryptographique general

3 Algorithmes de substitution

4 Monoalphabetic Cipher

5 Algorithme Playfair

6 Algorithmes poly-alphabetiques

7

Les algorithmes de transposition

8 Algorithmes de cryptage Moderne

Stream ciphers

Block ciphers

9 Exemple : DES

Structure et fonctionnement

Amélioration sur DES jusqu’à utilisation d’AES

10 Modes de cryptage par bloc

19 / 91

Monoalphabetic Cipher

Monoalphabetic Cipher

consiste a remplacer chaque lettre arbitrairement (pas simple

décalage)

la clé est de longueur 26 :

Plain : a b c d e f g h i j k l m n o p q r s t u v w x y z

Cipher : D K V Q F I B J W P E S C X H T M Y A U O L R G Z N

exemple :

Plaintext : if we wish to replace letters

Ciphertext : WI RF RWAJ UH YFTSDVF SFUUFYA

20 / 91

Sécurité du crypto monoalphabetique

Monoalphabetic Cipher

On a un total de 26! = 4 × 1026 clés possibles

mais on peut le casser par analyse de fréquence : Al-Kindy

le langage humain est très redondant

ex ds le msg "th lrd s m shphrd shll nt wnt" les lettres de cette

façon ne sont pas ordinaire en anglais

En anglais la lettre "E" est la plus utilisée, suivie par :

"T,R,N,I,O,A,S"

les lettres comme "Z,J,K,Q,X" sont rares en utilisation.

il ya des doublets ou des triplets qui sont plus répondu que

d’autres.

21 / 91

fréquences des lettres en anglais

Monoalphabetic Cipher

22 / 91

Exemple Cryptanalyse

Monoalphabetic Cipher

etant donné un ciphertext :

UZQSOVUOHXMOPVGPOZPEVSGZWSZOPFPESXU

DBMETSXAIZVUEPHZHMDZSHZOWSFPAPPDTSV

PQUZWYMXUZUHSXEPYEPOPDZSZUFPOMBZWPF UPZHMDJUDTMOHMQ

On compte la fréquence de chaque lettre ds le ciphertext

On peut deviner que P et Z sont e et t

On peut deviner que ZW est th et donc ZWP est the

la séquence ZWSZ est remplacé par th*t, on peut deviner que S est a

on continu avec la technique essai-erreur-essai, on trouve le plaintext :

"it was disclosed yesterday that several informal but direct contacts have been made with

political representatives of the viet cong in moscow"

23 / 91

Plan

Algorithme Playfair

1 Cryptographie et Cryptanalyse

2 Protocole d’attaque cryptographique general

3 Algorithmes de substitution

4 Monoalphabetic Cipher

5 Algorithme Playfair

6 Algorithmes poly-alphabetiques

7

Les algorithmes de transposition

8 Algorithmes de cryptage Moderne

Stream ciphers

Block ciphers

9 Exemple : DES

Structure et fonctionnement

Amélioration sur DES jusqu’à utilisation d’AES

10 Modes de cryptage par bloc

24 / 91

Playfair

Algorithme Playfair

L’alg le plus connu qui crypte plusieurs lettres en même temps

traite les diagrammes (2 lettres) comme unité et la converti en

diagramme ciphertext.

basé sur une matrice 5 × 5 utilisant un mot clé

inventé par le Britannique Sir Charles Wheatstone en 1854

utilisé par l’armée Britannique en W.W.I et par l’USA et ses alliés

durant la guerre W.W.II

25 / 91

Matrice de Playfair

Algorithme Playfair

copier les lettres du mots clé dans la matrice (sans duplication)

completer le reste de la matrice par les lettres manquantes

les lettres I et J sont traités comme une seule lettre

ex : en utulisant le mot clé MONARCHY

26 / 91

Cryptage de Playfair

Algorithme Playfair

opérer sur des diagrammes de lettres (2 lettres) à chaque fois

cas particulier : si diagramme de même lettres, séparer par des

lettres spéciales ex : x. par exemple : balloon est traité comme ba

lx lo on

Si plaintext ds la même ligne : remplacer par les lettres de droite.

Ex1 pq est remplacé par qs. Ex2 ar est remplacé par RM.

Si plaintext ds la même colonne : remplacer par les lettres

en-dessous. ex mu est remplacé par CM

sinon, remplacer par lettre en même ligne qu’elle et même

colonne que l’autre lettre du plaintext. ex hs est remplacé par BP.

ex2 ea devient IM ou JM

27 / 91

Sécurité de Playfair

Algorithme Playfair

Sécurité amélioré puisque il ya en tout 26 × 26 = 676 diagrammes

on a besoin d’une analyse fréquentielle sur 676 unité et non plus

sur 26 comme le monoalphabetique

donc l’alphabet du ciphertext est aussi énorme

il peut être cassé si on connaît une centaine de

plaintext/ciphertext

28 / 91

fréquence des lettres

Algorithme Playfair

29 / 91

Plan

Algorithmes poly-alphabetiques

1 Cryptographie et Cryptanalyse

2 Protocole d’attaque cryptographique general

3 Algorithmes de substitution

4 Monoalphabetic Cipher

5 Algorithme Playfair

6 Algorithmes poly-alphabetiques

7

Les algorithmes de transposition

8 Algorithmes de cryptage Moderne

Stream ciphers

Block ciphers

9 Exemple : DES

Structure et fonctionnement

Amélioration sur DES jusqu’à utilisation d’AES

10 Modes de cryptage par bloc

30 / 91

Polyalphabetic Ciphers

Algorithmes poly-alphabetiques

Alg de substitution poly-alphabetique

améliore la sécurité en combinant plusieurs alg

mono-alphabetiques

rende la cryptanalyse plus difficile avec augmentation d’alphabets

et une distribution fréquentielle plus platte

utilise une clé pour choisir quel alphabet mono-alphabetique à

utiliser pour chaque lettre du plaintext

répéter du début si la fin de la clé est atteinte

31 / 91

Vigenère

Algorithmes poly-alphabetiques

l’alg poly-alphabetique le plus simple : algs de Cesar muliples

la clé est constitué de caractères K = k1k2 . . . kd

la ième lettre de la clé spécifie le ième alg de Cesar à utiliser

repeter des le debut chaque d lettres du plaintext

32 / 91

Exemple Vigenère

Algorithmes poly-alphabetiques

écrire le plaintext

écrire la clé et la répéter sur la longueur du plaintext

utiliser chaque lettre de la clé comme clé de Cesar

Publicité

chiffrer chaque lettre indépendamment des autres

ex : clé = deceptive

33 / 91

Autokey cipher

Algorithmes poly-alphabetiques

voulant une clé aussi longue que le message

vigenère propose l’autokey

clé est préfixé au message pour générer une nouvelle clé

connaissant la clé basique, on peut déchiffrer les premières lettres

peut etre cassé par analyse fréquentielle

ex : clé : deceptive

34 / 91

Vernam cipher

Algorithmes poly-alphabetiques

utilise une clé aussi longue que le plaintext

inventé par un ingénieur AT&T Gilbert Vernam en 1918

35 / 91

One time Pad

Algorithmes poly-alphabetiques

Amélioration de Vernam proposé par l’officier de l’armée, Joseph

Mauborgne

Utiliser une clé aléatoire qui est aussi longue que le message de

sorte que la clé n’a pas besoin d’être répétée

La Clé est utilisée pour chiffrer et déchiffrer un seul message, puis

elle est jeté

Chaque nouveau message nécessite une nouvelle clé de la

même longueur que le nouveau message

Ce cryptosystème est incassable

problèmes dans la production et la distribution sécurisée de la clé

Non pratique : reste utilisé ds les communications top-secrets et

très coûteuses (teleph rouge entre Moscow et Washington)

36 / 91

Les algorithmes de transposition

Plan

1 Cryptographie et Cryptanalyse

2 Protocole d’attaque cryptographique general

3 Algorithmes de substitution

4 Monoalphabetic Cipher

5 Algorithme Playfair

6 Algorithmes poly-alphabetiques

7

Les algorithmes de transposition

8 Algorithmes de cryptage Moderne

Stream ciphers

Block ciphers

9 Exemple : DES

Structure et fonctionnement

Amélioration sur DES jusqu’à utilisation d’AES

10 Modes de cryptage par bloc

37 / 91

Les algorithmes de transposition

Transposition

Transposition= permutation

Chiffrer le message en réarrangeant l’ordre des lettres du plaintext

le plaintext et le ciphertext ont même occurence (fréquence) des

lettres

38 / 91

Les algorithmes de transposition

Fail hence cipher

La transposition la plus simple

plaintext est écrit en séquences de diagonales

on le lit ligne par ligne

pour chiffrer le message "meet me after the toga party" avec "Rail

hence" de profondeur(nb de lignes) 2 :

ciphertext est : MEMATRHTGPRYETEFETEOAAT

39 / 91

Les algorithmes de transposition

Raw Transposition Cipher

Transposition plus complexe

écrire le plaintext sous forme de rectangle, ligne par ligne

ciphertext : lire le message colonne par colonne, mais permuter

l’ordre des colonnes

l’ordre de la lecture des colonnes est donc la clé

40 / 91

Les algorithmes de transposition

Product ciphers

Les algorithmes de substitutions ou transposition ne sont pas sécurisés

à cause de l’analyse fréquentielle

donc envisager d’utiliser plusieurs alg à la suite pour rendre la

cryptanalyse plus difficile.

exemple répéter la permutation du texte précédent avec la même clé (ou

même avec une autre clé) :

on peut voir l’effet de la double permutation comme ceci :

avant permutation :

après la première permutation :

après la deuxième permutation :

41 / 91

C’est le concept des algorithmes de cryptage moderne

Algorithmes de cryptage Moderne

Plan

1 Cryptographie et Cryptanalyse

2 Protocole d’attaque cryptographique general

3 Algorithmes de substitution

4 Monoalphabetic Cipher

5 Algorithme Playfair

6 Algorithmes poly-alphabetiques

7

Les algorithmes de transposition

8 Algorithmes de cryptage Moderne

Stream ciphers

Block ciphers

9 Exemple : DES

Structure et fonctionnement

Amélioration sur DES jusqu’à utilisation d’AES

10 Modes de cryptage par bloc

42 / 91

Algorithmes de cryptage Moderne

Algorithmes de chiffrement par bloc, et par flux

en anglais : block ciphers et stream ciphers

block ciphers traitent le plaintext bloc par bloc, chcun est

chiffré/déchiffré (ex : DES et AES)

stream ciphers traitent le plaintext bit par bit (ou octect par octect)

lors de cryptage/decryptge (ex : viginère, vernam)

majorité des algorithmes modernes sont des blocks ciphers

43 / 91

Algorithmes de cryptage Moderne

44 / 91

Algorithmes de cryptage Moderne

Stream ciphers

Plan

1 Cryptographie et Cryptanalyse

2 Protocole d’attaque cryptographique general

3 Algorithmes de substitution

4 Monoalphabetic Cipher

5 Algorithme Playfair

6 Algorithmes poly-alphabetiques

7

Les algorithmes de transposition

8 Algorithmes de cryptage Moderne

Stream ciphers

Block ciphers

9 Exemple : DES

Structure et fonctionnement

Amélioration sur DES jusqu’à utilisation d’AES

10 Modes de cryptage par bloc

45 / 91

Algorithmes de cryptage Moderne

Stream ciphers

Stream cipher : Vernam cipher

utilise une clé aussi longue que le plaintext

inventé par un ingénieur AT&T Gilbert Vernam en 1918

46 / 91

Algorithmes de cryptage Moderne

Stream ciphers

One time Pad

Amélioration de Vernam proposé par l’officier de l’armée, Joseph

Mauborgne

Utiliser une clé aléatoire qui est aussi longue que le message de

sorte que la clé n’a pas besoin d’être répétée

La Clé est utilisée pour chiffrer et déchiffrer un seul message, puis

elle est jeté

Chaque nouveau message nécessite une nouvelle clé de la

même longueur que le nouveau message

Ce cryptosystème est incassable

problèmes dans la production et la distribution sécurisée de la clé

Non pratique : reste utilisé ds les communications top-secrets et

très coûteuses (teleph rouge entre Moscow et Washington)

47 / 91

Algorithmes de cryptage Moderne

Block ciphers

Plan

1 Cryptographie et Cryptanalyse

2 Protocole d’attaque cryptographique general

3 Algorithmes de substitution

4 Monoalphabetic Cipher

5 Algorithme Playfair

6 Algorithmes poly-alphabetiques

7

Les algorithmes de transposition

8 Algorithmes de cryptage Moderne

Stream ciphers

Block ciphers

9 Exemple : DES

Structure et fonctionnement

Amélioration sur DES jusqu’à utilisation d’AES

10 Modes de cryptage par bloc

48 / 91

Algorithmes de cryptage Moderne

Block ciphers

fonctions réversibles et irréversibles

Un alg à chiffrement par bloc prend n bits du plaintext et le

transforme en n bits de ciphertext

il y a 2n combinaisons possibles de plaintext

le Cryptage doit être reversible

chaque bloc du plaintext produit un bloc du ciphertext diffèrent

(bijectivité)

il ya 2n transformations possibles

49 / 91

Algorithmes de cryptage Moderne

Block ciphers

modèle d’un block cipher

50 / 91

Algorithmes de cryptage Moderne

Block ciphers

les tables du bloc cipher exemple

51 / 91

Algorithmes de cryptage Moderne

Block ciphers

Claude Shannon et les alg de substitution-permutation

Shannon a introduit l’idée des réseaux de

substitution-permutation (S-P) en 1949

c’est la base de tout les alg de cryptage moderne

les réseaux S-P sont basés sur deux critère :

Publicité

substitution (S-box)

Permutation(P-box)

Ceci fourni les critères de confusion et de diffusion du plaintext et

de la clé sur le ciphertext

52 / 91

Algorithmes de cryptage Moderne

Block ciphers

Confusion et diffusion

Deux termes introduits par Shanon qui constituent les critères de

base d’un algorithme de cryptage

Son but était de concevoir des cryptosystèmes qui résistent

l’analyse statistique

confusion : Rend la relation entre le ciphertext et la clé aussi

complexe que possible (apparence aléatoire)

diffusion : Chaque bit du plaintext affecte tous les bits du

ciphertext (avalanche)

53 / 91

Plan

Exemple : DES

1 Cryptographie et Cryptanalyse

2 Protocole d’attaque cryptographique general

3 Algorithmes de substitution

4 Monoalphabetic Cipher

5 Algorithme Playfair

6 Algorithmes poly-alphabetiques

7

Les algorithmes de transposition

8 Algorithmes de cryptage Moderne

Stream ciphers

Block ciphers

9 Exemple : DES

Structure et fonctionnement

Amélioration sur DES jusqu’à utilisation d’AES

10 Modes de cryptage par bloc

54 / 91

Plan

Exemple : DES

Structure et fonctionnement

1 Cryptographie et Cryptanalyse

2 Protocole d’attaque cryptographique general

3 Algorithmes de substitution

4 Monoalphabetic Cipher

5 Algorithme Playfair

6 Algorithmes poly-alphabetiques

7

Les algorithmes de transposition

8 Algorithmes de cryptage Moderne

Stream ciphers

Block ciphers

9 Exemple : DES

Structure et fonctionnement

Amélioration sur DES jusqu’à utilisation d’AES

10 Modes de cryptage par bloc

55 / 91

DES

Exemple : DES

Structure et fonctionnement

Data Encryption standard (DES) est le standard de cryptage

recommandé par NIST (National Institute of Standards and

Technologies) en 1977.

l’alg de cryptage le plus utilisé jusqu’à 2001 (l’arrivée de AES par

NIST aussi)

L’alg de DES est appelé DEA (Data Encryption Algorithm)

Le plaintext est chiffré en 64-bit blocs en utilisant une clé de taille

56 bit

l’alg transforme un bloc de 64-bit du plaintext à un bloc de 64-bit

du ciphertext

Les mêmes étapes, avec la même clé, conduisent au décryptage

56 / 91

DES

Exemple : DES

Structure et fonctionnement

57 / 91

Initial permutation (IP) de DES

Exemple : DES

Structure et fonctionnement

ex : A la sortie de IP :

ds la pos 1 =⇒ entrée 58 ;

ds la pos 2 =⇒ entrée 50 ;

ds la pos 64 =⇒ entrée 7

A la sortie de IP−1 :

1 est lu depuis la pos 58

2 est lu depuis la pos 50

64 est lu depuis la pos 7

58 / 91

Structure d’une ronde DES

Exemple : DES

Structure et fonctionnement

59 / 91

Structure d’une ronde DES

Exemple : DES

Structure et fonctionnement

Deux moitiés L et R de taille 32-bits chacune

Structure de Feistel est comme suit :

Li = Ri−1

Ri = Li−1 ⊕ F (Ri−1, Ki )

F prend la moitié R de 32-bit et la clé intermédiaire de 48-bit et

fait comme suit :

Expansion de R à 48-bits en utilisant la permutation E

L’ajouter à la clé intermédiaire par XOR

La faire passer à travers 8 S-box pour avoir le résultat de 32-bits

Finalement la permuter en utilisant une permutation P

60 / 91

Les fonction de permutation E et P

Exemple : DES

Structure et fonctionnement

61 / 91

Structure d’une ronde DES : F(R,K)

Exemple : DES

Structure et fonctionnement

62 / 91

Les 8 S-box

Exemple : DES

Structure et fonctionnement

chaque S-box transforme 6-bits à 4-bits

Pour chaque entrée de chaque S-box :

les bits 1 et 6 (bits extérieurs) sélectionne une ligne parmi 4.

les bits 2-5 (bits intérieurs) sont substitués par la sortie

correspondante ds la ligne choisie

le résultat est 8 lots de 4-bit : ça fait 32-bits en tout

la sélection de la ligne dépend du plaintext et de la clé

exemple 48 bits –> 32 bits : S(18 09 12 3d 11 17 38 39) =

5fd25e03

Sbox1 : 0x18 : 011000 –> ligne n˚0 et colonne n˚ 12 : 5 = 0x5

Sbox2 : 0x09 : 001001 –> ligne n˚1 et colonne n˚ 4 colonne : 15=0xf

Sbox8 : 0x39 : 111001 –> ligne n˚3 et colonne n˚ 12 : 3 = 0x3

63 / 91

Les 8 S-box : (1-4)

Exemple : DES

Structure et fonctionnement

64 / 91

Les 8 S-box : (5-8)

Exemple : DES

Structure et fonctionnement

65 / 91

DES Key schedule

Exemple : DES

Structure et fonctionnement

Key schedule : préparation des clés intermédiaires (des 16

rondes) à partir de la clé originale de 56-bits

Permutation initiale de la clé (PC1) qui sélectionne 56-bits (parmi

64) en 2 moitiés de 28-bits

16 stages qui consistent à :

"Rotation circulaire à gauche" de chaque moitié de 1 ou 2 bits en

fonction de la fonction de rotation K

sélectionner 24 bits de chaque moitié et la permuter par (PC2) pour

être l’entrée de la fonction F.

66 / 91

DES Key schedule

Exemple : DES

Structure et fonctionnement

67 / 91

Exemple : DES

Amélioration sur DES jusqu’à utilisation d’AES

Plan

1 Cryptographie et Cryptanalyse

2 Protocole d’attaque cryptographique general

3 Algorithmes de substitution

4 Monoalphabetic Cipher

5 Algorithme Playfair

6 Algorithmes poly-alphabetiques

7

Les algorithmes de transposition

8 Algorithmes de cryptage Moderne

Stream ciphers

Block ciphers

9 Exemple : DES

Structure et fonctionnement

Amélioration sur DES jusqu’à utilisation d’AES

10 Modes de cryptage par bloc

68 / 91

Sécurité de DES

Exemple : DES

Amélioration sur DES jusqu’à utilisation d’AES

taille de l’espace clé 256 = 7.2 × 1016

une machine à 109 déchiffrement/s peut le casser en 1.125 année

une machine à 1013 déchiffrement/s peut le casser en 1 heure

l’AES-128 avec la même vitesse, la machine reste 5.3 × 1017

années

plusieurs attaques sur DES :

differential cryptanalysis

linear cryptanalysis

related key attack

Le besoin de trouver une alternative de DES devient nécessaire

69 / 91

Cryptage multiple avec DES

Exemple : DES

Amélioration sur DES jusqu’à utilisation d’AES

DES est devenu vulnérable à la brute force attack

Alternative : crypter plusieurs fois avec des clés différentes

Options :

Double DES : n’est pas très performant

Triple DES (3DES) avec deux clés : brute force 2112

Triple DES avec trois clés : brute force 2168

70 / 91

Double encryption

Exemple : DES

Amélioration sur DES jusqu’à utilisation d’AES

clé de taille 2 × 56 = 112

espace clé de 2112.

il faut donc essayer en moyenne 2111 pour le casser en brute force

attaque plus intelligente : Meet-in-the-middle attack

71 / 91

Publicité

Meet-in-the-middle attack

Exemple : DES

Amélioration sur DES jusqu’à utilisation d’AES

Double cryptage DES : C = E(K2, E(K1, P))

soit X = E(K1, P) = D(K2, C)

supposons que l’adversaire connaît 2 paires P/C : (Pa, Ca) et

(Pb, Cb)

chiffrer Pa en utilisant toutes les possibilités 256 de la clé K1 pour

avoir les possibilités de X

Enregistrer les valeurs possibles de X ds un tableau avec leurs clés

correspondantes K1

Déchiffrer Ca en utilisant toutes les possibilités 256 de la clé K2

Pour chaque résultat du décryptage, vérifier avec les valeurs du

tableau

S’il y a correspondance, Prenez les valeurs correspondantes de K1

et K2. Et vérifier si Cb = E(K2, E(K1, Pb)), alors accepter les clés.

Avec deux paires de P/C, la probabilité de succès est 1

Cette attaque est de complexité 2 × 256 qui est très inférieur à

complexité brute force attack 2112

72 / 91

Cryptage Triple

Exemple : DES

Amélioration sur DES jusqu’à utilisation d’AES

2 clés : 112 bits

3 clés : 168 bits

Pourquoi E-D-E ? Pour être compatible avec DES simple :

C = E(K1, D(K1, E(K1, P)))

3DES a été adopté par plusieurs application internet : PGP,

S/MIME

73 / 91

AES

Exemple : DES

Amélioration sur DES jusqu’à utilisation d’AES

Advanced encryption standard est le nouveau alg de cryptage

adopté par NIST crée en 2001 (Rijandael)

Taille block : 128-bit (possibilité d’autres tailles)

taille clé : 128, 192, 256 bits

rondes : 10, 12, 14 dépend de la clé

XOR avec clés intermédiaires, Substitutions avec des S-box,

mixage avec l’arithmétique du corps de Galois

Largement utilisé dans les communications sécurisés en réseaux

Considéré comme sécurisée jusqu’à ce moment.

74 / 91

Plan

Modes de cryptage par bloc

1 Cryptographie et Cryptanalyse

2 Protocole d’attaque cryptographique general

3 Algorithmes de substitution

4 Monoalphabetic Cipher

5 Algorithme Playfair

6 Algorithmes poly-alphabetiques

7

Les algorithmes de transposition

8 Algorithmes de cryptage Moderne

Stream ciphers

Block ciphers

9 Exemple : DES

Structure et fonctionnement

Amélioration sur DES jusqu’à utilisation d’AES

10 Modes de cryptage par bloc

75 / 91

Modes de cryptage par bloc

Modes de cryptage par bloc

NIST SP 800-38A definiti 5 modes de cryptages

ECB : Electronic codebook Book Mode

CBC : cipher block chaining Mode

CFB : cipher FeedBack Mode

OFB : Output FeedBack Mode

CTR : Counter Mode

il y a ceux qui sont orientés bloc et ceux qui sont orienté flux

Ceci est pour couvrir une large variété d’application ds la vie réelle

ces modes peuvent être appliqués sur n’importe quel algorithme

de bloc

76 / 91

ECB

Modes de cryptage par bloc

Le plaintext est divisé en blocs qui seront cryptés

chaque block constitue une valeur qui sera substitué par cryptage

comme un dictionnaire, d’où le nom (dictionnaire=codebook)

Chaque bloc est crypté indépendamment des autres blocs :

Ci = EK (Pi )

Application : transmission sécurisée de messages courts

77 / 91

ECB

Modes de cryptage par bloc

78 / 91

Avantages et limitations de ECB

Modes de cryptage par bloc

Les répétitions dans le plaintext sont montrés aussi dans le

ciphertext (peu de confusion)

Non efficace pour les images : trop de redondance, trop de

répétitions donc image peut rester visible après cryptage

La faiblesse est dans l’indépendance dans le cryptage des

différents blocs

Utilisation principale est le cryptage de plaintext très court

Image originale

Image cryptée (AES) en mode ECB

79 / 91

CBC

Modes de cryptage par bloc

Le plaintext est divisé en blocs

ces blocs seront liés durant le cryptage

chaque bloc du ciphertext est lié avec le bloc du plaintext

correspondant et les bloc ciphertext précédents

utilise un vecteur d’initialisation pour commencer le cryptage :

Ci = EK (Pi XOR Ci−1)

C−1 = IV

Application : Le cryptage de données en vrac (de grande

redondance) ; Authentification (CMAC)

80 / 91

CBC

Modes de cryptage par bloc

81 / 91

Avantages et limitations de CBC

Modes de cryptage par bloc

chaque bloc du ciphertext dépend de tous les blocs qui le

précèdent

n’importe quel changement affecte tous les blocs du ciphertext qui

le suivent

CBC a besoin d’un IV pour l’initialisation :

l’IV doit être connu de l’émetteur et récepteur

S’il est transmis en clair, un adversaire peut changer les bits du

premier bloc et changer IV pour compenser ce changement.

Donc IV doit être soit fixe

soit envoyé crypté en mode ECB avant de traiter le plaintext

82 / 91

Les modes de cryptage en bloc orientés flux

Modes de cryptage par bloc

Les modes de bloc chiffre tout le bloc

dans certaines application, on pourra avoir besoin d’operer sur

des tailles plus petites

application dans le cryptage du flux multimédia (temps réel)

convertir les alg de bloc en alg de flux

CFB

OFB

CTR

l’idée est d’utiliser les alg de blocs sous forme de générateur de

séquences pseudo-aléatoires

83 / 91

CFB

Modes de cryptage par bloc

Le message est traité comme un flux de bits

le message est ajouté à la sortie du l’alg de bloc

le résultat est retourné (feed-back) à l’étage précédent (d’où le

nom)

le standard permet plusieurs tailles de blocs (1 ; 8 ; 64 ; 128 ; etc)

pour être feed-back

notés CFB-1, CFB-8, CFB-64, CFB-128

le cryptage est comme suit :

Ci = Pi XOR EK (Ci−1)

C−1 = IV

Applications : cryptage du flux (temps réel), Authetification

84 / 91

CFB

Modes de cryptage par bloc

85 / 91

Avantages et limitations de CFB

Modes de cryptage par bloc

CFB est approprié si les données arrivent en bits ou octets

approprié pour le mode en flux

Noter que dans le cryptage et le décryptage, les deux opèrent

avec le bloc de chiffrement EK

l’erreur (s’il y en a) peut se propager dans plusieurs blocs après le

bloc erroné

86 / 91

OFB

Modes de cryptage par bloc

Le message est traité comme flux de bits

la sortie du cryptage est ajouté au message

la sortie est ensuite retourné (Output feed-back) à l’entrée de

l’étage suivant (d’où le nom)

le feedback est indépendant du message (plaintext)

il peut être calculé auparavant

Oi = EK (Oi−1)

Ci = Pi XOR Oi

O−1 = IV

Utilisation : Cryptage de flux dans un canal bruité

87 / 91

OFB

Modes de cryptage par bloc

88 / 91

Avantages et Limitations de OFB

Modes de cryptage par bloc

OFB a besoin d’un IV qui doit être unique pour chaque utilisation

si l’IV est réutilisé, l’adversaire peut retrouver les sorties

Les erreurs ne se propagent pas

émetteur et récepteur doivent être en synchronisation

89 / 91

CTR

Modes de cryptage par bloc

un nouveau mode similaire à OFB mais chiffre un compteur au

lieu de la sortie

doit avoir une clé différente et une valeur de compteur différente

pour chaque message

Oi = EK (i)

Ci = Pi XOR Oi

Utilisation : Cryptage dans les réseaux haut débit

90 / 91

CTR

Modes de cryptage par bloc

91 / 91

<...