Vous êtes sur la page 1sur 58

CRYPTOGRAPHIE

NOTE DE COURS LICENCE PROFESSIONNELLE

SERGE CHRISTIAN HAMENI

Email : christianhameni@gmail.com

Tel : (+237) 698 93 28 62 / 694 06 52 93

INSTITUT UNIVERSITAIRE DE LA COTE | Douala - Cameroun


Cryptographie

Table des matières

INTRODUCTION GENERALE ..................................................................................................................................... 4


CHAPITRE : I .................................................................................................................................................................. 6
RAPPEL MATHEMATIQUE : CONGRUENCES ET ARITHMETIQUE MODULAIRE ......................................... 6
1. CONGRUENCES .................................................................................................................................................. 6
I.1 Définition :............................................................................................................................................................. 6
I.2 Quelques propriétés de la congruence ........................................................................................................................ 7
II. Théorème d’Euclide ................................................................................................................................................ 8
III. Théorème de Bézout .............................................................................................................................................. 9
IV. Théorème de Fermat ........................................................................................................................................... 11
V. Théorème d’exponentiation rapide ......................................................................................................................... 11
VI. Théorème des restes Chinois ................................................................................................................................ 12
CHAPITRE : II............................................................................................................................................................... 14
GENERALITE SUR LE CONCEPT DE CRYPTOGRAPHIE .................................................................................... 14
INTRODUCTION ...................................................................................................................................................... 14
I. TECHNIQUES OU METHODES DE CHIFFREMENT .................................................................................... 16
I.1 CHIFFREMENT PAR SUBSTITUTION ........................................................................................................... 16
1. Le chiffrement de César ...................................................................................................................................... 17
2. Le chiffrement de Vigenère ................................................................................................................................. 18
3. Chiffrement affine.............................................................................................................................................. 19
4. Le chiffrement de Hill ........................................................................................................................................ 20
5. Chiffrement De Vernam Ou Masque Jetable ........................................................................................................ 21
I.2 CHIFFREMENT PAR TRANSPOSITION OU PERMUTATION .................................................................... 23
I.3 CHIFFREMENT A REPERTOIRE .................................................................................................................... 24
CHAPITRE : III ............................................................................................................................................................. 25
CRYPTOGRAPHIE SYMETRIQUE (CLE SECRETE) ............................................................................................... 25
Introduction .................................................................................................................................................................. 25
II.1 Les algorithmes de chiffrement à clé symétrique .............................................................................................. 26
1. DES (Data Encryption Standard) ........................................................................................................................ 26
2. Triple DES ....................................................................................................................................................... 27
3. AES (Advanced Encryption Standard) ................................................................................................................. 28
II.2 MODES DE CHIFFREMENTS ......................................................................................................................... 29
II.2.1 Mode ECB (Electronic Code Book)............................................................................................................. 30
II.2.2 Mode déchiffrement avec chainage de bloc ou Mode CBC (Cypher Block Chaining) ....................................... 30
II.2.3 Mode de chiffrement CFB (Cypher Feed Back)............................................................................................ 31

Ing. Christian HAMENI © copyright Page | 1


Cryptographie

II.2.4 Mode de chiffrement OFB (Output Feedback) ............................................................................................... 32


II.2.5 Mode de chiffrement CTR (Counter Mode Encryption) ............................................................................... 33
II.3 Chiffrement par flot ............................................................................................................................................. 34
CHAPITRE : IV ............................................................................................................................................................. 37
CRYPTOGRAPHIE ASYMETRIQUE A CLE PUBLIQUE ........................................................................................ 37
INTRODUCTION ...................................................................................................................................................... 37
I. PRINCIPE DE FONCTIONNEMENT ............................................................................................................... 39
II. Attaques sur RSA .................................................................................................................................................. 41
2.1 Attaque par module commun .......................................................................................................................... 41
2.2 De φ(n) à la factorisation ............................................................................................................................... 41
2.3 RSA avec deux facteurs trop proches ............................................................................................................... 41
EXERCICE D’APPLICATION :1 Encryptage d’un message par blocs (digrammes).................................................. 42
EXERCICE D’APPLICATION : 2 ....................................................................................................................... 43
III. Infrastructure à Clé Publique ou PKI (Public Key Infrastructure) ........................................................................... 43
IV. Le standard X.509................................................................................................................................................. 46
V. OpenSSL .............................................................................................................................................................. 49
VI. Échange des clés - Diffie Hellman .......................................................................................................................... 49
CHAPITRE : V............................................................................................................................................................... 51
FONCTION DE HACHAGE ET SIGNATURES NUMERIQUES ............................................................................. 51
I. Fonctions de hachage ............................................................................................................................................. 51
Principe : ................................................................................................................................................................... 51
II. Signature électronique ............................................................................................................................................ 53
Principe : ................................................................................................................................................................... 55

Ing. Christian HAMENI © copyright Page | 2


Cryptographie

CRYPTOGRAPHIE
Ce cours de cryptographie, a pour objectif de donner à l’étudiant la base de
la sécurité de l’information dans de nombreuses applications. Ceci à travers
la bonne connaissance des écritures secrètes et de l’analyse des
cryptogrammes

Ing. Christian HAMENI © copyright Page | 3


Cryptographie

INTRODUCTION GENERALE

Dès que les hommes apprirent à communiquer, ils durent trouver des moyens d’assurer la confidentialité d’une partie de
leurs communications : l’origine de la cryptographie remonte sans doute aux origines de l’homme. En effet, le mot
cryptographie est un terme générique désignant l’ensemble des techniques permettant de chiffrer des messages c’est-à-
dire de les rendre inintelligibles sans une action spécifique.
Du bâton nommé « scytale » au Vieme siècle avant JC, en passant par le code de César, on assista au développement plus
ou moins ingénieux de techniques de chiffrement expérimentales ou traditionnelles dont la sécurité reposait
essentiellement dans la confiance que leur accordaient leurs utilisateurs. Après la première guerre mondiale a eu lieu une
première révolution technologique. Mais ce n’est qu’à l’avènement de l’informatique et d’Internet que la cryptographie
prend tout son sens. Les efforts conjoints d’IBM et de la NSA conduisent à l’élaboration du DES (Data Encryption
Standard), l’algorithme de chiffrement le plus utilisé au monde durant le dernier quart du XXème siècle. À l’ère
d’Internet, le nombre d’applications civiles de chiffrement (banques, télécommunications, cartes bleues, …) explose. Le
besoin d’apporter une sécurité accrue dans les transactions électroniques fait naître les notions de signature et
authentification électronique. La première technique de chiffrement à clef publique sûre (intimement liée à ces notions)
apparaît : le RSA.

Depuis l’Antiquité, on cherche à envoyer des messages sans que des personnes extérieures ne puissent les intercepter. Le
plus vieux document chiffré date du XVIe siècle avant J. C. Ainsi, deux manières complémentaires de dissimuler
l’information existent :

- STEGANOGRAPHIE qui consiste à cacher le message pour que l’ennemi ne le trouve pas.
- CRYPTOGRAPHIE qui revient à rendre le message incompréhensible par l’ennemi.

Le mot cryptographie vient du mot grec « Kruptos » qui signifie cacher et de « Graphein » qui signifie écrire. Les
professionnels font une distinction entre chiffre et code. Un chiffre est une transformation caractère par caractère ou bit
par bit quel que soit la structure linguistique du message. Le code quant à lui remplace un mot par un autre mot ou par
un symbole. Depuis plusieurs années, la montée en puissance des technologies de l’information avec pour corollaire, la
dématérialisation des échanges a accentué le besoin de disposer d’une technologie fiable permettant à des utilisateurs de
signer des informations et de vérifier ces signatures.
Ing. Christian HAMENI © copyright Page | 4
Cryptographie

Deux besoins fondamentaux sont aujourd’hui clairement identifiés :

 Le premier est de pouvoir assurer la confidentialité des communications, qu’il s’agisse de communications
d’ordre privées ou professionnelles,
 Le second est d’authentifier l’émetteur d’une information et, le plus souvent conjointement, de faire en sorte
que l’émetteur ne puisse contester le fait qu’il l’ait émise. On parle alors de non répudiation et de signature
électronique.

Dans ces deux cas, la cryptologie s’est imposée comme un moyen de satisfaire ces deux besoins. Ce n’est pas la seule
technique mais c’est aujourd’hui la plus efficace. Nous ne considérerons que celle-là dans la suite de ce document.

Aujourd’hui la dématérialisation des processus a entraîné une explosion de l’utilisation de la cryptographie mais aussi
une extension de son champ d’applications tels que :

 Le commerce en ligne (e-commerce : paiement par carte bancaire...),


 Les transactions bancaires et boursière (e-banking : la consultation des données bancaires, ordres de bourse,
virements de compte à compte, ...),
 L’administration en ligne (e-administration : télé déclaration d’impôts, paiement de la TVA pour les
entreprises, ...),
 La télévision payante (chaîne payante, pay per view, ...),
 La protection des télécommunications (internet, WIFI, Bluetooth, GSM, téléphonie mobile, ...), l’identification
automatique (avions, camions suivis par GPS, ...),
 Le tatouage ou watermarking des données numériques ainsi que la gestion des droits numériques (digital right
management), etc. ont entraîné une explosion de l’utilisation de la cryptographie mais aussi une extension de
son champ d’applications.

Dans le cadre de ce cours, nous nous tournerons dans un premier temps vers les techniques cryptographiques
traditionnelles qui ont marqué l’histoire, suivis par les techniques actuelles du monde moderne de l’informatique. Par
ailleurs, nous nous arrêterons également sur la sécurité des algorithmes les plus connus ainsi que les notions de
signatures, certificats et fonctions de hachage.

Ing. Christian HAMENI © copyright Page | 5


Cryptographie

CHAPITRE : I
RAPPEL MATHEMATIQUE :
CONGRUENCES ET ARITHMETIQUE
MODULAIRE
1. CONGRUENCES

I.1 Définition :

Étant donné un entier n ≥2, l’arithmétique modulo n consiste à faire des calculs sur les restes dans la division
euclidienne des entiers par n.
Exemples :

(1) Je me couche à 21 h et je dors pendant 10 h. Quelle heure est-il alors ?

Réponse : 7 h, puisque 21 + 10= 31 ≡ 7 (mod 24)

(2) Aujourd’hui on est mardi (2e jour de la semaine). Quel jour sera-t-on dans 30 jours ?

Réponse : Jeudi, puisque : 2 +30= 32 ≡ 4 (mod 7)

(3) La mesure d’un angle est définie à 360° près. Cela veut dire que la différence entre deux mesures quelconques d’un
angle est un multiple entier de 360°.

Par exemple : -750° ≡ -30° (mod 360°).

Soit m, a, b entiers. On dit que a est congru à b modulo m si m divise a−b. (On dit aussi que “a et b sont congrus
modulo m”.).

En symboles : a≡ b (mod m) ⇐⇒m | a−b⇐⇒∃k ∈ Z avec a−b = kn.

Ing. Christian HAMENI © copyright Page | 6


Cryptographie

Par exemple on a 2 ≡ 8 (mod 3) car 3 divise 2 − 8 = −6. On a a≡ 0 (mod 2) si et seulement si 2 divise a−0 = a, c’est à
dire ssi a est pair.

On a a≡ 1 (mod 2) ssi il existe k avec a−1 = 2k et donc a = 2k +1 est impair. Similairement on a :

a≡2 (mod 5) ⇐⇒ a = 5k +2 avec k entier,

a≡1 (mod 4) ⇐⇒ a = 4k +1 avec k entier,


a≡3 (mod 4) ⇐⇒ a = 4k +3 avec k entier.
Surtout on a
a≡0 (mod n) ⇐⇒ a = nk avec k entier. ⇐⇒a est un multiple de n

I.2 Quelques propriétés de la congruence


Théorème : Soit a, b, c, a’, b’, n entiers.

Les énoncés suivants sont vrais :

(a) (Réflexivité) a≡ a (mod n).

(b) (Symétrie) a ≡ b (mod n) implique b ≡ a (mod n).

(c) (Transitivité) a ≡ b, b ≡ c (mod n) implique a ≡ c (mod n).

(d) a ≡ a’, b ≡ b’ (mod n) implique a±b≡a’±b’ (mod n).

(e) a ≡ a’, b ≡ b’ (mod n) implique ab≡a’b’ (mod n).

(f) Si d est un diviseur commun de a, b et n, alors a≡ b (mod n) implique ≡ (mod ).

(g) Si d divise n, alors a≡ b (mod n) implique a ≡ b (mod d).

Donc les règles de manipulation des congruences contiennent la plupart des règles de manipulations d’égalités entre
entiers pour l’addition, la soustraction, et la multiplication. Mais pour la division (et la simplification des congruences),
c’est plus compliqué.

Exemple : 2≡16 et 3≡10 (mod 7) impliquent 2·3≡16·10 et donc 6≡160 (mod 7).

(a) a−a = 0 = 0n.

(b) a−b = kn ⇒ b−a =−kn.

Ing. Christian HAMENI © copyright Page | 7


Cryptographie

(c) a−b = kn, b−c = en ⇒ a−c = (a−b) + (b−c) = (k + e)n.

(d) Laissée comme exercice.

(e) a−a’ = kn, b−b’ = en ⇒ ab−a’b’ = ab−a’b + a’b−a’b’ = (a−a’) b + a’(b−b’) = (kb+ a’e)n.

(f) Laissée comme exercice.

(g) Si d | n et n | a−b, alors d | a−b

II. Théorème d’Euclide

Soit a, b ∈ N/a ≤ b deux entiers naturels non nuls et r le reste de la division euclidienne de a par b. Alors PGCD(a;b)
= PGCD(b;r). Idée de la démonstration : De l’égalité a = bq + r, on tire que D(a;b) = D(b;r)

Ing. Christian HAMENI © copyright Page | 8


Cryptographie

III. Théorème de Bézout

Étienne Bézout, mathématicien français né en 1730, a établi que le PGCD de deux entiers est en fait une
combinaison linéaire de ces deux entiers.

Le sens direct découle du théorème précédent. Pour la réciproque, l’égalité au+ bv =1 entraîne que le PGCD de a
et b divise 1

Ing. Christian HAMENI © copyright Page | 9


Cryptographie

Remarque :

- cela signifie que leur seul diviseur commun est 1.


- un nombre premier est premier avec n’importe quel autre nombre

Ce théorème est utilisé pour déterminer l’inverse d’un modulo dans les systèmes cryptographiques utilisant
les congruences arithmétique et modulaire pour la détermination des clés de chiffrements.

Le théorème de Bezout s’appuie fortement sur le théorème d’Euclide pour la détermination des coefficients de Bezout.

À partir de la suite (rn) des restes des divisions euclidiennes de l’algorithme d’Euclide, on construit deux suites (un) et

(vn) telles que, pour tout n, rn = aun + bvn.

Exemple :

a. Inverse modulo n

Soit a∈Z, on dit que x∈Z est un inverse de a modulo n si ax ≡1 (mod n).

Trouver un inverse de a modulo n est donc un cas particulier de l’équation ax≡b (mod n). Proposition 1.
- a admet un inverse modulo n si et seulement si a et n sont premiers entre eux.

- Si au + nv =1 alors u est un inverse de a modulo n.

En d’autres termes, trouver un inverse de a modulo n revient à calculer les coefficients de Bézout associés à la paire
(a,n).

Ing. Christian HAMENI © copyright Page | 10


Cryptographie

IV. Théorème de Fermat

Le théorème de Fermat est ce petit théorème qui permet de déterminer la clé de chiffrement dans la cryptographie
asymétrique. Ce théorème n’est qu’une conséquence du théorème d’Euler.

Théorème 1 : Si p est un nombre premier et a∈Z alors

Corollaire 1. Si p ne divise pas a alors

Théorème 2 (Fermat amélioré). Encore appelé théorème d’Euler


Soient p et q deux nombres premiers distincts et soit n= pq. Pour tout a ∈ Z tel que pgcd (a, n)=1 alors :

On note ϕ(n) = (p−1)(q−1), la fonction d’Euler.


L’hypothèse pgcd (a, n) = 1 équivaut ici à ce que a ne soit divisible ni par p, ni par q. Par exemple pour p = 5, q = 7,
n = 35 et ϕ(n) = 4·6 = 24.

Alors pour a =1,2,3,4,6,8,9,11,12,13,16,17, 18, … on a bien a 24≡1(mod35)

V. Théorème d’exponentiation rapide

Ing. Christian HAMENI © copyright Page | 11


Cryptographie

VI. Théorème des restes Chinois

Soient m1, m2, …, mr des entiers naturels deux à deux entre eux et a1, a2, .., ar des entiers relatifs. Le système de
congruences

a toujours une solution et deux solutions quelconques sont congrus modulo M = m1m2 . . . mr

Exemple : Prenons r = 2, m1 = 15, m2 = 14, a1 = 6, a2 = 9.


On veut donc résoudre simultanément :

Exemple
Une bande de 17 pirates s’est emparée d’un butin composé de pièces d’or d’égale valeur. Ils décident de se les partager
également, et de donner le reste au cuisinier chinois. Celui-ci recevrait alors 3 pièces. Mais les pirates se querellent, et six
d’entre eux sont tués. Le cuisinier recevrait alors 4 pièces. Dans un naufrage ultérieur, seul le butin, six pirates et le
cuisinier sont sauvés, et le partage donnerait alors 5 pièces d’or à ce dernier.
Quelle est la fortune minimale que peut espérer le cuisinier quand il décide d’empoisonner le reste des pirates ?

Ing. Christian HAMENI © copyright Page | 12


Cryptographie

Si x est ce nombre, x est le plus petit entier positif tel que :

On applique alors le théorème chinois :

Ing. Christian HAMENI © copyright Page | 13


Cryptographie

CHAPITRE : II
GENERALITE SUR LE CONCEPT DE
CRYPTOGRAPHIE
INTRODUCTION

Historiquement, quatre groupes ont utilisés l’art de la cryptographie et ont contribué à son développement : les
militaires, le corps diplomatique, ceux qui tiennent un journal intime, les amoureux. Parmi eux, ce sont les militaires qui
ont eu le rôle le plus important et qui ont donné le ton au cours des siècles. Contrairement à ce que l’on peut penser, la
cryptographie n’est pas seulement une technique moderne, ni un produit de l’ère informatique. En effet de tout temps,
les hommes ont ressenti le besoin de cacher des informations confidentielles. Bien évidemment depuis ses débuts, la
cryptographie a grandement évolué. Au cours des siècles, de nombreux systèmes de chiffrage ont été inventés, tous de
plus en plus perfectionnés, et il est vrai que l’informatique y a beaucoup contribué. Mais au commencement les
algorithmes étaient loin d’être aussi complexes et astucieux qu’à notre époque. La majeure partie des méthodes d’antan
reposait sur deux principes fondamentaux : la substitution (remplacer certaines lettres par d’autres) et la transposition
(permuter des lettres du message afin de le brouiller).
La cryptographie traditionnelle est l’étude des méthodes permettant de transmettre des données de manière
confidentielle. Afin de protéger un message, on lui applique une transformation qui le rend incompréhensible : c’est ce
qu’on appelle chiffrement qui à partir d’un texte en clair, donne un texte chiffré ou cryptogramme. Inversement, le
déchiffrement est l’action qui permet de reconstruire le texte en clair à partir du texte chiffré. D’autres parts, dans la
cryptographie moderne, les transformations en question sont des fonctions mathématiques appelées algorithmes
cryptographiques qui dépendent d’un paramètre appelé clé. La cryptanalyse à l’inverse est l’étude des procédés
cryptographiques dans le but est de trouver des faiblesses et en particulier de pouvoir décrypter les textes chiffrés. Le
décryptement est l’action consistant à retrouver le texte en clair sans connaitre la clé de déchiffrement. Le but de la
cryptographie est d’offrir un certain nombre de services de sécurité comme la confidentialité, l’authentification,
l’intégrité et la non répudiation des données. (CAIN)

Un "système cryptographique" est composé de :


 Un ensemble fini P appelé "l'espace des textes clairs"
 Un ensemble fini C appelé "l'espace des textes chiffrés"
 Un ensemble fini K appelé "l'espace de clés"
Ing. Christian HAMENI © copyright Page | 14
Cryptographie

Ces nécessités conflictuelles ont donné naissance aux modèles suivantes

Le message à chiffrer appeler texte en clair est transformé au moyen d’une fonction paramétrée par une clé. On obtient
ainsi un texte chiffré qui est transmis le plus souvent par un messager. On suppose que l’ennemi ou l’intrus écoute
scrupuleusement et en précarité. Cependant, à la différence du destinataire réel, l’intrus ne connait pas la clé de
déchiffrement et ne peut donc pas décoder facilement le texte chiffré.

N.B : Parfois, l’intrus peut non seulement écouter le canal de transmission (intrus passif) mais aussi enregistrer ce
message ou modifier le texte légitime avant que le message ne parvienne à son destinataire réel.

C=EK(P) signifie que le chiffrement du texte en clair P au moyen de la clé « K » donne le texte chiffré « C ». De la
même façon, P=DK(C) représente le déchiffrement de C pour rendre DK[EK(P)] =P.

Qualités d’un crypto système :

 Confidentialité : seules les personnes habilitées ont accès au contenu du message.


 Intégrité des données : le message ne peut pas être falsifié sans qu’on s’en aperçoive.
 Authentification :
 L’émetteur est sûr de l’identité du destinataire c’est à dire que seul le destinataire pourra prendre
connaissance du message car il est le seul à disposer de la clef de déchiffrement.
 Le receveur est sûr de l’identité de l’émetteur
 Non-répudiation qui se décompose en trois :
 Non-répudiation d’origine l’émetteur ne peut nier avoir écrit le message et il peut prouver qu’il ne l’a
pas fait si c’est effectivement le cas.
 Non-répudiation de réception le receveur ne peut nier avoir reçu le message et il peut prouver qu’il ne
l’a pas reçu si c’est effectivement le cas.
 Non-répudiation de transmission l’émetteur du message ne peut nier avoir envoyé le message et il peut
prouver qu’il ne l’a pas fait si c’est effectivement le cas.
Ing. Christian HAMENI © copyright Page | 15
Cryptographie

Quelques définitions :

 Sécurité = sécurité informatique + cryptologie


 Cryptologie = cryptographie + cryptanalyse
 Cryptographie = est l’art de rendre inintelligible, de crypter, de coder, un message pour ceux qui ne sont pas
habilités à en prendre connaissance. Le chiffre, le code est le procédé, l’algorithme, la fonction, qui permet de
crypter un message. C’est également défini comme étant l’étude et la conception des procédures de chiffrement
des informations (ensemble des techniques permettant de chiffrer des messages) c’est-à-dire permettant de les
rendre incompréhensible
 Cryptanalyse : est l’art pour une personne non habilitée, de décrypter, de décoder, de déchiffrer, un message.
C’est donc l’ensemble des procédés d’attaque d’un système cryptographique.
 Chiffrement : c’est le fait de coder un message de telle façon à le rendre secret à l’aide d’une clé de chiffrement.
 Déchiffrement : c’est le fait de décoder un message à l’aide d’une clé de déchiffrement

I. TECHNIQUES OU METHODES DE CHIFFREMENT

La sécurité en informatique vise un certain nombre d’objectifs à savoir la confidentialité, l’intégrité, authentification.
Nous pouvons donc affirmer que la cryptographie est une forme de sécurité car elle permet d’atteindre ces objectifs à
travers la cryptographie asymétrique et symétrique.

Les méthodes de chiffrement ont été historiquement divisées en 2 catégories.

 Le chiffrement à clef secret qui se subdivise en deux :


 Les chiffrements par transposition ou permutation qui sont des codes par blocs.
 Les chiffrements par substitution qui peuvent être des codes par blocs ou par flots
 Le chiffrement à répertoire
Ces deux catégories constituent une base fondamentale de la cryptographie moderne.

I.1 CHIFFREMENT PAR SUBSTITUTION

Dans un chiffre de substitution, chaque lettre ou groupe de lettre est remplacé par une autre lettre ou un autre groupe de
lettre. Un des chiffres les plus anciennement connus est le chiffre de César attribué à Jules César. Dans cette méthode, A
devient D, B devient E, C devient F ……. Z devient C.
En cryptographie classique, quatre types de chiffrement par substitution sont distingués :

 Substitution simple
Dans une substitution simple, un caractère du message clair est substitué par un caractère unique du message
chiffré. Cela correspond le plus souvent à une permutation des caractères de l'alphabet des messages clairs
 Substitution homophonique

Ing. Christian HAMENI © copyright Page | 16


Cryptographie

Dans une substitution homophonique, un caractère du message clair correspond à plusieurs caractères du
message chiffré. Le principe est qu'à chaque caractère de l'alphabet des messages clairs soit associé une liste de
lettre dans l'alphabet des messages chiffrés (qui est en général beaucoup plus gros que celui pour les messages
clairs), l'ensemble de ces listes formant une partition de l'alphabet des messages chiffrés.
 Substitution polygrammique
Le principe est de substituer des blocs de caractères, au lieu d'un seul caractère.
 Substitution poly alphabétique

Il s'agit d'un ensemble de substitutions simples. Suivant la position du caractère dans le message clair, on applique une
des substitutions simples. Ce sont des sortes de « permutations à paramètres ». Le point culminant de ces méthodes a
été Enigma, la machine utilisée par les allemands durant la seconde guerre mondiale. Enigma : 1939−45, Allemagne.

1. Le chiffrement de César

L’un des systèmes les plus anciens et les plus simples est le codage par substitution mono alphabétique (ou alphabets
désordonnés). Il consiste à remplacer chaque lettre par une lettre différente. Il existe donc grâce à ces techniques 26
façons de coder un message, ce qui fait que ce système a été longtemps utilisé par les armées pendant l’antiquité. Il
consiste à une substitution mono-alphabétique c’est-à-dire que chaque lettre est remplacée par une seule autre (mono-
alphabétique) et ceci selon un certain décalage dans l’alphabet français. Dans le chiffre de CESAR, le décalage utilisé est
de 3 lettres. Le chiffrement de César entre dans la catégorie des « substitutions simples ».

Une légère généralisation du chiffre de César permet à l’alphabet chiffré d’être décalé de k lettres au lieu de 3. « K »
devient alors une clé pour la méthode générale de décalage circulaire des alphabets. L’amélioration suivante consiste à
faire correspondre chacun des symboles des textes en clair pour simplifier les 26 lettres de l’alphabet avec une autre
lettre. Le système général de substitution symbole pour symbole est appelé substitution mono-alphabétique. La clé a une
chaine de 26 caractères correspondant à l’ensemble de l’alphabet.

P 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

C 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

N.B : le texte en clair est généralement écrit en minuscule tandis que le chiffré est écrit en majuscule.

Fig. chiffre de César

Ing. Christian HAMENI © copyright Page | 17


Cryptographie

 Le chiffre de César fonctionne par décalage des lettres de l'alphabet. Par exemple dans l'image ci-dessus, il y a
une distance de 3 caractères, donc B devient E dans le texte codé.

 Le texte chiffré s'obtient en remplaçant chaque lettre du texte clair original par une lettre à distance fixe,
toujours du même côté, dans l'ordre de l'alphabet. Pour les dernières lettres (dans le cas d'un décalage à droite),
on reprend au début. Par exemple avec un décalage de 3 vers la droite, A est remplacé par D, B devient E, et
ainsi jusqu'à W qui devient Z, puis X devient A etc.

 Il s'agit d'une permutation circulaire de l'alphabet. La longueur du décalage, 3 dans l'exemple évoqué, constitue
la clé du chiffrement qu'il suffit de transmettre au destinataire — s'il sait déjà qu'il s'agit d'un chiffrement de
César — pour que celui-ci puisse déchiffrer le message.

Remarque :

 Ici, il n’existe que 26 façons différentes de crypter un message puisqu’on ne dispose que de 26 lettres, il n’y a
que 26 décalages possible
 Le chiffrement de CESAR est très vulnérable à l’analyse des fréquences
 Si on déchiffre le texte crypté, on obtient le texte clair

N.B : le décalage de 13 est appelé ROT 13.

2. Le chiffrement de Vigenère

Un autre système de cryptographie des plus anciens est cette fois-ci, la substitution poly alphabétique, qui utilise
plusieurs alphabets décalés pour crypter un message. L’algorithme de substitution poly alphabétique le plus connu est le
chiffre de Vigenère, mis au point par Blaise de Vigenère en 1586, qui fut utilisé pendant plus de 3 siècles. Son chiffre
consiste à utiliser le chiffre de César, mais en changeant le décalage à chaque fois

Ici, la clé définit le décalage pour chaque clé du message.

A : décalage de 0
B : décalage de 1
Z : décalage de 25
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

0 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

Ing. Christian HAMENI © copyright Page | 18


Cryptographie

Exemple : chiffrement de « la vie est belle » clé = bonjour

Texte en Clair L A V I E E S T B E L L E
11 0 21 8 4 4 18 19 1 4 11 11 4
Clé de B O N J O U R B O N J O U
Décalage 1 14 13 9 14 20 17 1 14 13 9 14 20
= 12 14 8 17 18 24 9 20 15 17 20 25 24
Transcription M O I R S Y J U P R U Z Y

Carré de Vigenère
3. Chiffrement affine

On dit qu’une fonction est affine lorsqu’elle est de la forme x → a∗x + b, c’est-à-dire un polynôme de degré 1. Une
fonction linéaire est une fonction affine particulière.

L’idée est d’utiliser comme fonction de chiffrement une fonction affine du type y = (ax+b) mod 26, où a et b sont des
constantes, et où x et y sont des nombres correspondant aux lettres de l’alphabet (A=0, B=1, ...). On peut remarquer
que si a = 1, alors on retrouve le chiffre de César où b est le décalage (le k du chiffre de César).

Propriété de neutralité : si b = 0, alors "a" est toujours chiffré "A" car il ne subit aucun décalage. En effet, si aucun
décalage n’a lieu, l’alphabet de départ se retrouve chiffré par lui-même, et donc ne subit aucune modification.

Ing. Christian HAMENI © copyright Page | 19


Cryptographie

Pour le chiffrement affine, la clé est constituée de (k1, k2) où k1, k2 ∈ [0,25] et telle que pgcd(k1,26) = 1. Le

chiffrement en lui-même est donné par ci = f(mi) = k1 ∗mi + k2 mod 26.

Pour le déchiffrement, il vient mi = f−1(ci) = k1−1 ∗(ci −k2) mod 26.

Par le chiffrement affine, on obtient 312 clés possibles. En effet, pour obéir à la propriété de k1, il n’y a que 12 choix
possibles. Et puisque k2 peut prendre n’importe valeur dans [0,25], il vient 12∗26 = 312.

Exemple : Soient la clé = (k1, k2) = (3,11)

Transformation de chiffrement :

ci = f(mi) = 3∗mi +11 mod 26 Transformation de déchiffrement : k1−1 = 3−1 mod 26 = 9 [car 3∗9 mod 26 = 1]

mi = f−1(ci) = 9∗(ci −11) mod 26 Ainsi, pour une suite de lettres telle que ’NSA’ →13 18 0→24 13 11→’YNL’

Cryptanalyse

Il n'existe que 12 entiers compris entre 0 et 25 et premiers avec 26 (1, 3, 5, 7, 9, 11, 15, 17, 19, 21, 23 et 25). Il
n'existe donc que clés de chiffrement possible. Si l'on sait qu'un code affine a été utilisé, on peut
casser le code par force brute en essayant les 312 clés.

À la lumière du principe de Kerckhoffs, ce manque de variété rend ce système très peu sécurisé.

4. Le chiffrement de Hill

En cryptographie symétrique, le chiffrement de Hill est un modèle simple d'extension du chiffrement affine à un bloc.
Ce système étudié par Lester S. Hill, utilise les propriétés de l'arithmétique modulaire et des matrices. Il s'agit de chiffrer
le message en substituant les lettres du message, non plus lettre à lettre, mais par groupe de lettres. Il permet ainsi de
rendre plus difficile le cassage du code par observation des fréquences.
C’est une méthode de chiffrement qui utilise les matrices carrées. Les lettres sont d’abord remplacées par leur rang dans
l’alphabet suivant ce tableau

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
0 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

Les lettres PK et PK+1 du texte clair seront chiffré en Ck et Ck+1 avec la formule ci-dessous :

CK a b Pk
=
CK+1 c d Pk+1

Ing. Christian HAMENI © copyright Page | 20


Cryptographie

Ceci signifie que les deux premières lettres du message clair P1 et P2 seront chiffrées (C1 et C2) selon les 2 équations
suivantes

C1 = a.P1 + b.P2 (mod 26)

C2 = c.P1 + d.P2 (mod 26)

Exemple : « je vous aime »

Les deux premières lettres du message seront cryptées ainsi :

C1 = 9*J + 4*E (mod 26) = 9*10 + 4*5 (mod 26) = 6

C2 = 5*J + 7*E (mod 26) = 5 *10 + 7*5 (mod 26) = 7

En procédant de même avec les lettres suivantes, on obtiendra finalement

Lettres J E V O U S A I M E
Rang (Pk) 10 5 22 15 21 19 1 9 13 5
Rang chiffrés (Ck) 6 7 24 7 5 4 19 16 7 22
Lettres Chiffrées F G X G E D S P G V

Le message chiffré sera donc « FGXGE DSPGV ». Par convention, le message chiffré s’écrit en lettres majuscules
groupées en 5. Si le nombre de lettres du message clair est impair, on ajoute une lettre arbitraire à la fin du message
originale.

On ne peut pas prendre n’importe quelle matrice comme matrice de chiffrement. Ses composantes doivent tout d’abord
être des nombres entiers positifs et il faut qu’elle ait d’abord une matrice inverse dans Z26. Cette matrice existe si et
seulement si (ad – bc) -1 mod 26 existe. Ce qui est le cas lorsqu’ad–bc et 26 sont premiers entre eux.

5. Chiffrement De Vernam Ou Masque Jetable

Le masque jetable, également appelé chiffre de Vernam, est un algorithme de cryptographie en décalage circulaire
inventé par Gilbert Vernam en 1917 et perfectionné par Joseph Mauborgne, qui rajouta la notion de clé aléatoire
(générateur de nombres aléatoires). Cependant, bien que simple, facile et rapide, tant pour le codage que pour le
décodage, ce chiffrement est le seul qui soit théoriquement impossible à casser, même s'il présente d'importantes
difficultés de mise en œuvre pratique.

Principe

Le chiffrement par la méthode du masque jetable est une Substitution poly-alphabétique avec une clé particulière, qui
consiste à combiner le message en clair avec une clé présentant les caractéristiques très particulières suivantes :

Ing. Christian HAMENI © copyright Page | 21


Cryptographie

 La clé doit être une suite de caractères au moins aussi longue que le message à chiffrer.

 Les caractères composant la clé doivent être choisis de façon totalement aléatoire.

 Chaque clé, ou « masque », ne doit être utilisée qu'une seule fois (d'où le nom de masque jetable).

L'argument théorique est le suivant, dans son principe : si on ne connaît que le texte chiffré, et que toutes
les clés sont équiprobables alors tous les textes clairs sont possibles et avec la même probabilité puisqu'il y a
bijection, une fois le chiffré fixé, entre clés et textes clairs. Même une attaque par force brute aidée par la
connaissance des caractéristiques statistiques du langage utilisé ne donnera aucune information.

Ce type d'impossibilité, appelé sécurité sémantique, ne repose pas sur la difficulté du calcul, comme c'est le
cas avec les autres systèmes de chiffrement en usage. Autrement dit, le système du masque jetable est
inconditionnellement sûr.

Supposons que la clé aléatoire retenue, ou « masque », soit : WMCKL


Cette clé est choisie à l'avance entre les deux personnes souhaitant communiquer. Elle n'est connue que d'eux. On veut
chiffrer le message « HELLO ». Pour cela, on attribue un nombre à chaque lettre, par exemple le rang dans l'alphabet,
de 0 à 25. Ensuite on additionne la valeur de chaque lettre avec la valeur correspondante dans le masque ; enfin si le
résultat est supérieur à 25 on soustrait 26 (calcul dit « modulo26 ») :

7 (H) 4 (E) 11 (L) 11 (L) 14 (O) message


+ 22 (W) 12 (M) 2 (C) 10 (K) 11 (L) masque
= 29 16 13 21 25 masque + message
= 3 (D) 16 (Q) 13 (N) 21 (V) 25 (Z) masque + message modulo 26
Le texte reçu par le destinataire est « DQNVZ ».
Le déchiffrement s'effectue de manière similaire, mais l'on soustrait le masque au texte chiffré au lieu de l'additionner.
Ici encore on ajoute éventuellement 26 au résultat pour obtenir des nombres compris entre 0 et 25 :

3 (D) 16 (Q) 13 (N) 21 (V) 25 (Z) message chiffré


- 22 (W) 12 (M) 2 (C) 10 (K) 11 (L) masque
= -19 4 11 11 14 message chiffré - masque
= 7 (H) 4 (E) 11 (L) 11 (L) 14 (O) message chiffré - masque modulo 26

On retrouve bien le message initial « HELLO ».

Il est véritablement très facile de construire un chiffrement incassable et cette technique est connue depuis des décennies.
On commence par choisir un masque constitué d’une chaine de bits aléatoires que sera la clé ; puis l’on convertit le texte
en clair en une autre chaine de bits. Généralement on utilise la représentation en ASCII (voir code Ascii). On termine en
effectuant un « ou exclusif » noté XOR sur ces deux chaines bits à bits. Le texte chiffré qui en résulte ne peut pas être
cassé car, dans un échantillon suffisamment grand du texte chiffré, chaque lettre apparait avec la même fréquence ainsi

Ing. Christian HAMENI © copyright Page | 22


Cryptographie

que chaque digramme (deux lettres dont on se sert pour transcrire une seule) et ainsi de suite. Cette méthode est appelée
masque jetable ou One Time Pad. Elle est protégée contre toute attaque actuelle ou future quel que soit la puissance de
calcul qui soit mise en œuvre par l’intrus. Sa justification découle de la théorie de l’information : il n’y a tout
simplement aucune information dans le message car tous les textes en clair d’une longueur donné sont également
probables. La figure ci-dessous montre tout simplement comment l’on peut mettre en application cette méthode « I love
You ». Ce texte est d’abord converti en une chaine de bits en fonction du code Ascii à 7 bits ;

I.2 CHIFFREMENT PAR TRANSPOSITION OU PERMUTATION

Les chiffres de substitution conservent l’ordre des symboles du texte en clair mais les déguisent à l’opposé. Les
chiffres de transposition modifient l’ordre des lettres mais ne les déguisent pas. La figure suivante montre un chiffre de
substitution courant avec « i » disposition en colonne. La clé consiste en un mot ou une phrase ne contenant aucune
lettre répétée. Dans cet exemple, la clé est « BRIQUES ». Son rôle est de numéroté les colonnes. La colonne 1 se
trouvant sur la lettre la plus proche du début de l’alphabet et ainsi de suite. Le texte en clair est écrit horizontalement et
complété au besoin pour remplir la matrice. Le texte chiffré est lu par colonne ; la colonne 1 se trouvant sous la lettre de
la clé la plus proche du début de l’alphabet et ainsi de suite. En d’autres termes, le texte chiffré est lu par colonne en
commençant par celle donc la lettre de la clé est la plus petite.
Exemple : transférez un milliard de francs à mon compte suisse numéroté zéro zéro sept

Clé : BRIQUES

B R I Q U E S
1 5 3 4 7 2 6
t r a n s f e
r e z u n m i
l l i a r d d
e f r a n c s
Clé
à m o n c o m
p t e s u i s
s e n u m é r
o t é z é r o
z e r o s e p
t

Le texte chiffré :Trleàpsozt ; fmdeoiere ; aziroenér ; nuaansuzo ; relfmteté ; eidsmsrop ; snrncumés

Ing. Christian HAMENI © copyright Page | 23


Cryptographie

I.3 CHIFFREMENT A REPERTOIRE

Ils consistent en un dictionnaire qui permet de remplacer certains mots par des mots différents. Ils sont très anciens et
ont été utilisés intensivement jusqu’au début du 20-ième siècle. Ils ont fait l’objet d’une critique sévère de A. Kerchkoffs
dans son article fondateur. On peut par exemple créer le dictionnaire suivant :

La phrase en clair :

RENDEZ VOUS DEMAIN MIDI VILLETANEUSE

Devient avec ce code

175 OISEAUX A VENDRE AU MARCHE

Il faut donc disposer de dictionnaires qui prévoient toutes les possibilités. Donc, sauf si on se restreint à transmettre des
informations très limitées, la taille du dictionnaire s’accroit démesurément. Au 19e siècle on avait ainsi pour des usages
commerciaux ou militaires des dictionnaires de plusieurs milliers de mots de codes. Tout changement du code
nécessitait l’envoi de documents volumineux avec un risque d’interception non négligeable.

Ces codes manquent de souplesse ils ne permettent pas de coder des mots nouveaux sans un accord préalable entre
l’expéditeur et le destinataire. Pour cela il faut qu’ils échangent des documents ce qui accroît le risque d’interception du
code. Ils ne sont pas adaptés à des usages intensifs entre de nombreux correspondants. Ils ne sont pratiquement plus
utilisés pour les usages publics. En revanche ils peuvent rendre des services appréciables pour un usage unique.

Ing. Christian HAMENI © copyright Page | 24


Cryptographie

CHAPITRE : III

CRYPTOGRAPHIE SYMETRIQUE (CLE


SECRETE)
Introduction

La cryptographie moderne utilise les mêmes bases que la cryptographie traditionnelle (transposition et substitution)
mais de façon différente. Dans le passé, les cryptographes ont mis en œuvre des algorithmes simples. De nos jours, on
préfère à l’inverse. L’objectif étant de trouver des algorithmes suffisamment complexes pour que même si le
cryptanalyste parvient à acquérir les grandes quantités de texte chiffré de son choix, il soit incapable d’y trouver un sens
s’il n’en a pas de clé.
Les principales familles de cryptographies modernes sont :
 La cryptographie par flot (registres à décalage) : M est traité bit par bit (Exemple d’algorithmes : RC4,
Bluetooth E0/1, GSM A5/1)
 La cryptographie par blocs : M est traité par blocs de données (Exemple d’algorithmes : DES, AES, IDEA,
RC6, BLOWFISH…)
 Les cryptographies symétriques (ou à clé secrète).
 Les cryptographies asymétriques (ou à clé publique)

La cryptographie symétrique utilise des algorithmes à clé symétrique parce que c’est la même clé qui sert pour le
chiffrement et le déchiffrement.

Ing. Christian HAMENI © copyright Page | 25


Cryptographie

Le concept fondamental en cryptographie symétrique est la clé. Il fonctionne suivant le principe de Kerchoffs :
l’algorithme doit pouvoir être divulgué. De plus, la clé prend suffisamment de valeur contre une attaque exhaustive.

II.1 Les algorithmes de chiffrement à clé symétrique

Les algorithmes de chiffrement symétrique se fondent sur une clé unique pour chiffrer et déchiffrer un message.
Basée sur 2 approches :
 Substitution
 Permutation
Avantage :
 Les algorithmes symétriques sont beaucoup plus rapides que les algorithmes asymétriques
 Longueur réduite des clés (128 – 256 bits)
Inconvénients :
 La distribution de la clé doit être confidentielle (Problème dans Internet !).
 Si un grand nombre de personnes désirent communiquer ensemble, le nombre de clés augmente de façon
importante (une pour chaque couple de communicants).
 Pour n partenaires, il faut (n*(n-1)) /2 clés
 Service de non répudiation non assurée
Exemples :
DES (Data Encryption Standard), 3DES, AES (Advanced Encryption Standard), RC4 (RivestCipher 4), RC5,
Kerberos, Blowfish, IDEA (International Data EncryptionAlgorithm)

Fig. chiffrement symétrique

1. DES (Data Encryption Standard)

Devant l’explosion des besoins de cryptages pour des données non-classifiées (c’est à dire non militaires et non
diplomatiques) la National Bureau of Standards des Etats-Unis a lancé un appel d’offre avec un cahier des charges en
1973.Cet appel d’offre a donné naissance au crypto système DES (Data Encrytion Standard). Il a été publié en 1975 et
adopté par le NBS en 1977 comme standard de cryptage pour les applications non classifiées

a) Fonctionnement

C’est un système cryptographique produit, basé sur un schéma de Feistel. Il compose des opérations de cryptage,
autrement dit il effectue un produit d’opérations de cryptage. Il répète 16 fois un algorithme appelé la fonction d’étage

Ing. Christian HAMENI © copyright Page | 26


Cryptographie

qui dépend d’un paramètre la clef d’étage. La répétition de cet algorithme mélange les bits du message en clair en
respectant les principes de C. Shannon : confusion et diffusion.

 La confusion gomme les relations entre le texte clair et le texte chiffré pour éviter les attaques par analyse
statistique. Autrement dit un changement d’un seul bit dans le texte clair doit affecter un grand nombre de
bits (idéalement tous) du texte chiffré.
 La diffusion disperse la redondance du texte clair dans le texte chiffré, par exemple deux lettres doublées ne
doivent pas rester côte à côte après cryptage
b) Schéma de Freistel

Un bon algorithme à clé secrète doit transformer le message clair en un message crypté qui ressemble autant que
possible à une suite aléatoire, pour limiter au minimum les risques d’une attaque par analyse statistique du texte chiffré,
de ses redondances, etc...

Le problème est que, si l’on sait depuis longtemps construire des fonctions qui ont l’air aléatoire, on ne savait pas avant
les travaux de Feistel construire des bijections aléatoires. La solution apportée par Feistel est très élégante : on suppose
par exemple qu’on a une fonction f presque aléatoire qui prend comme argument un mot de n bits, et renvoie un mot de
n bits (qui donne l’impression d’avoir été choisi au hasard). L’algorithme de chiffrement va procéder en chiffrant des
blocs de 2n bits, qu’on partage en 2, partie gauche G, partie droite D. L’image du bloc (G, D) par le schéma de Feistel
est le bloc (L, R), avec L = D, et R = G⊕f(D) où⊕ est l’opération XOR. Cette transformation est cette fois bijective,
car si on a un tel couple (L, R), on retrouve (G, D) par D = L et G = R⊕f(L).

En 1999 la clé a été cassée en moins d’une journée, 22 heures, grâce à un ordinateur dédié couplé avec un réseau de
plusieurs milliers d’ordinateurs. Afin de prolonger la durée de vie de DES en attendant AES on a introduit le triple

D.E.S.

2. Triple DES

Convaincu que la taille de la clé D.E.S était trop courte, IBM conçut un moyen de l’augmenter efficacement au moyen
d’un triple chiffrement. La méthode adoptée utilise deux clés et trois étapes. Dans le premier étage, le texte en clair est
codé à l’aide de D.E.S de la façon habituelle avec la clé K1. Dans le deuxième étage, D.E.S est exécuté en mode de
déchiffrement en utilisant la clé K2. Un chiffrement final est effectué au troisième étage avec la clé K1.

Ing. Christian HAMENI © copyright Page | 27


Cryptographie

3. AES (Advanced Encryption Standard)

Le principe de l’AES est très proche du DES. C’est aussi un système cryptographique produit constituer d’une suite
d’opérations de permutation et de substitution. Contrairement à DES ce n’est pas un schéma de Feistel mais un réseau
de substitution-permutation. Il est issu d’un appel d’offre international lancé en janvier 1997 et ayant reçu 15
propositions. Parmi ces 15 algorithmes, 5 furent choisis pour une évaluation plus poussée en avril 1999 (Mars, RC6,
Rinjdael, Serpent,Twofish). Au cours de cette évaluation, ce fut finalement l’algorithme Rinjdael du nom de ses 2
concepteurs Joan Daemen et Vincent Rijmen. Ainsi le terme AES remplace ainsi celui de Rinjdaelpar abus de langage.
Précisément AES est un sous ensemble de Rinjdael parce qu’il ne travaille qu’avec les blocs de 128 bits alors que
Rinjdael offre des tailles de blocs et des clefs qui sont multiples de 32 bits (compris entre 128 et 256 bits).

N.B : De nos jours l’AES remplace le DES. Car le DES est devenu obsolète. Son utilisation est très pratique car il
consomme peu de mémoire. Sa complexité est moindre et il est plus facile à implémenter.

Ing. Christian HAMENI © copyright Page | 28


Cryptographie

II.2 MODES DE CHIFFREMENTS

Dans la partie historique nous avons donné des exemples de chiffrement par blocs (code de Hill) et de
chiffrement par flots (code de César). Les systèmes de chiffrement par blocs agissent sur les données avec une
transformation fixe des grands blocs de données en clair ; les systèmes de chiffrement par flots (ou chiffrement par flux)
agissent avec une transformation variant avec le temps sur des données en clair individuelles.
Le chiffrement par blocs est le plus répandu et jouit d’une meilleure réputation que le chiffrement par flots plus facile à
analyser mathématiquement.

Le schéma général du chiffrement par blocs symétrique ou à clef secrète est le suivant :

1. Coder l’information source en binaire. On obtient ainsi une chaîne de caractères composée de 0 et de 1.
2. Découper cette chaîne en blocs de longueur donnée (par exemple 64 bits ou 128 bits ou 256 bits).
3. Chiffrer un bloc en faisant un OU exclusif (ou XOR) bit à bit avec une clé secrète, k, qui est une suite
de 0 et de 1 de même longueur, (un XOR est donc l’addition sans retenu en base deux).
4. Déplacer et permuter certains bits du bloc.
5. Recommencer un certain nombre de fois l’étape précédente, on appelle cela une ronde.
6. Passer au bloc suivant et retourner à l’étape 3 jusqu’à ce que tous les blocs soient chiffrés.
Le OU exclusif ou XOR entre deux blocs en binaire, m et n, est noté m⊕n, par exemple

m = 1001111010001111, n = 1011111000010111

m⊕n = 0010000010011000

Le schéma général de chiffrement par blocs asymétrique ou à clef publique est le suivant :

1. Coder l’information source en binaire. On obtient ainsi une chaîne de caractères composée de 0 et de 1.
2. Découper cette chaîne en blocs de longueur donnée (par exemple 1024 bits à 2048 bits pour RSA et El Gamal,
256 bits pour les codes elliptiques).
3. Chiffrer un bloc en utilisant la fonction de chiffrement (exponentiation modulaire pour RSA).
4. Passer au bloc suivant et retourner à l’étape 3 jusqu’à ce que tous les blocs soient chiffrés.

Le problème pratique qui se pose ensuite est le protocole d’envoi des blocs successivement obtenus. Il faut que ce
protocole ne diminue pas la sureté du crypto système.

Que ce soit pour DES ou des crypto systèmes symétriques plus récents comme IDEA ou AES ou pour des crypto
systèmes asymétriques comme RSA ou ElGamal les clés sont de longueur fixée. Les messages eux peuvent avoir une
longueur arbitraire. Pour adapter la taille du message à celle de la clef on décompose le message par blocs de taille fixe
correspondant aux tailles des clés que l’on chiffre ensuite un `a un et que l’on envoie successivement. Pour cela quatre
modes de chiffrement par blocs sont possibles : ECB, CBC, CFB et OFB

Ing. Christian HAMENI © copyright Page | 29


Cryptographie

II.2.1 Mode ECB (Electronic Code Book)

Le mode ECB, Electronic Code Book, est le mode le plus simple. Le message, M, est découpé en blocs, (mi)i≥1, et chaque
bloc est crypté séparément par ci = E(mi)où E = Ek dépend de la clé secrète k et ci est le bloc crypté correspondant.
 Chiffrement : chaque bloc clair mi est chiffré indépendamment et donne un bloc chiffré Ci. Ci = Ek (Mi)
 Déchiffrement : chaque bloc chiffré est déchiffré indépendamment pour donner le bloc clair correspondant.
Mi = Dk (Ci)
 Conséquence de ce mode : deux blocs clairs identiques donnent toujours le même bloc chiffré pour une clé K
fixée. Il n’y a donc aucune sécurité ici et elle est très peu utilisée.

On procède donc suivant le schéma suivant :

On transmet c1||c2||...||cn

II.2.2 Mode déchiffrement avec chainage de bloc ou Mode CBC (Cypher Block Chaining)

Le mode CBC, Cipher Block Chaining, a été introduit pour qu’un bloc ne soit pas codé de la même manière s’il
apparaît dans deux messages différents ou s’il apparaît deux fois dans un message. Le message, M, est découpé en blocs,
(mi)i≥1, et chaque bloc est crypté de la manière suivante. On commence par choisir un vecteur initial Co. Chaque bloc
clair mi est d’abord modifié en faisant un XOR de ce bloc avec le bloc crypté précédent, Ci−1 puis on crypte le résultat
obtenu par XORisation avec la clé.

Deux blocs identiques chiffrés donnent deux blocs chiffrés différents

Ing. Christian HAMENI © copyright Page | 30


Cryptographie

II.2.3 Mode de chiffrement CFB (Cypher Feed Back)

Le mode CFB, Cipher Feed Back, a été introduit pour ne pas avoir à calculer la fonction inverse, Dk, de la fonction de
chiffrage Ek.

Le principe est le même que celui du mode CBC. Le message, M, est découpé en blocs, (mi)i≥1, et chaque bloc est crypté
de la manière suivante. On commence par choisir un bloc initial m0, choisi suivant les mêmes principes que le bloc C0 en
mode CBC. Chaque bloc clair mi est XORé avec le crypté du bloc de sortie précédent, ci−1, suivant le schéma

Ing. Christian HAMENI © copyright Page | 31


Cryptographie

II.2.4 Mode de chiffrement OFB (Output Feedback)

Ce mode de chiffrement de flot possède les mêmes avantages que le CFB. De plus, il est possible de précalculer en
chiffrant successivement le vecteur d’initialisation. Ce mode, est une variante de CFB qui permet d’avoir un cryptage et
un décryptage totalement symétrique :

Ing. Christian HAMENI © copyright Page | 32


Cryptographie

On transmet le message C0||C1||...||Cn. Ce mode est utilisé par exemple pour les cryptages satellites et se déchiffre
par :

II.2.5 Mode de chiffrement CTR (Counter Mode Encryption)

Ici on commence par chiffrer le IV auquel on a ajouté une constante. Ce texte chiffré est alors combiné avec le texte en
clair par un ou exclusif noté XOR. En incrémentant le vecteur d’initialisation d’une unité pour chaque nouveau bloc, il
est facile de déchiffrer un bloc quelconque quel que soit son emplacement dans le fichier et sans avoir besoin de
déchiffrer préalablement les blocs qui le précèdent

Ing. Christian HAMENI © copyright Page | 33


Cryptographie

II.3 Chiffrement par flot

Encore appelé chiffrement de flux, il traite les données de longueur quelconque et n’a pas besoin de les
découper. On commence par chiffrer un vecteur d’initialisation au moyen d’une clé ce qui donne un bloc de sortie.
Celui-ci est à son tour chiffré au moyen de la clé pour obtenir en sortie un second bloc qui est également chiffré ce qui
donne un troisième bloc et ainsi de suite. La séquence de bloc de sortie est appelée keystream (flot avec clé ou flux de
clé). Elle est traitée comme s’il s’agissait d’un masque jetable et combiné par un ou exclusif (XOR) avec le texte clair
pour donner le texte chiffre.

Ing. Christian HAMENI © copyright Page | 34


Cryptographie

N.B : certains modes opératoires permettent à des chiffrements par bloc de se comporter comme des chiffrements par
flux. Exemple : CFB (cipher feedback) et OFB (output feedback)

Boîte de IV
IV
chiffrement

Clé D
Clé E

Texte
+ Texte Chiffré Texte Chiffré +
Déchiffré

Chiffrement par Keystream (a) Déchiffrement par Keystream (b)

Comme le montre le schéma (a), on remarque que le vecteur d’initialisation n’est utilisé qu’à la première étape ensuite la
sortie est chiffrée. On remarque également que keystream est indépendant des données.

N.B : il est insensible aux erreurs de transmission

Le déchiffrement s’effectue en générant le même keystreamdu côté de la réception. Etant donné qu’il ne dépend que du
vecteur d’initialisation et de la clé, il n’est pas affecté par les erreurs de transmission.

N.B : il est essentiel de ne jamais utiliser 2 fois de suite le même couple d’initialisation clé pour ne pas générer à chaque
fois le même keystream.

Caractéristiques :

- Pas besoin de lire le message, ni d’avoir sa longueur pour chiffrer


- Génération du pseudo aléa appelé flux de clé que l’on combine par XOR avec le flux de données
- Les chiffrements par flot sont très utilisés pour protéger les données multimédia. Exemple : RC4 (utilisé
dans le SSL et dans le Wifi 802.11) et E0/1 (norme Bluetooth)
- Ici on a de très bonnes performances mais la sécurité est délicate

Ing. Christian HAMENI © copyright Page | 35


Cryptographie

Avantage :

 Très rapide en matériel et logiciel


 Implémentation matérielle avec peu de portes
 Adapter aux applications en temps réel

Inconvénients :

 Propagation d’erreurs
 Sécurité difficile à atteindre

Ing. Christian HAMENI © copyright Page | 36


Cryptographie

CHAPITRE : IV

CRYPTOGRAPHIE ASYMETRIQUE A
CLE PUBLIQUE
INTRODUCTION

L’algorithme le plus célèbre des algorithmes à clef publique a été inventé en 1977 par Ron Rivest, Adi Shamir et Len
Adleman, à la suite de la publication de l’idée d’une cryptographie à clef publique par Diffie et Hellman. Il fut appelé
RSA, des initiales de ces inventeurs.
Les codes asymétriques les plus utilisés :

 RSA basé sur la difficulté calculatoire de la factorisation des grands entiers.


 El Gamal basé sur la difficulté calculatoire de calculer le logarithme discret dans un corps fini.
 Menezes-Vanstonne basés sur le logarithme associé au groupe des points d’une courbe elliptique sur un corps
fini. C’est une modification d’autres crypto systèmes, comme El Gamal. Sa sureté peut être mieux analysée. La
longueur de sa clé est bien inférieure à celle des systèmes RSA et El Gamal pour une sureté équivalente. Ils
offrent des fonctionnalités supplémentaires comme la possibilité de monter un crypto système basée sur
l’identité.

Ing. Christian HAMENI © copyright Page | 37


Cryptographie

On peut classer l’utilisation des algorithmes à clé publique en 3 catégories :

 Chiffrement/déchiffrement : cela fournit le secret.


 Signatures numériques : cela fournit l’authentification.
 Échange de clés (ou des clefs de session).

Quelques algorithmes conviennent pour tous les usages, d’autres sont spécifiques à un d’eux.

Dans les années 1970, la cryptographie n’est plus seulement l’apanage des militaires. Les banques, pour la sécurité de
leurs transactions, sont devenues de grandes consommatrices de messages codés. Les chiffrements disponibles alors sont
sûrs, eu égard aux possibilités d’attaques contemporaines. Le problème essentiel est alors la distribution des clés, ce
secret que l’envoyeur et le destinataire doivent partager pour pouvoir respectivement chiffrer et déchiffrer. Les armées et
les états ont recours aux valises diplomatiques pour ces échanges, mais ceci n’est pas accessible aux civils...

En 1976, Whitfield Die et Martin Hellman proposent une nouvelle façon de chiffrer, qui contourne cet écueil.
Commençons par expliquer leur procédé de façon imagée. Un ami doit vous faire parvenir un message très important
par la poste, mais vous n’avez pas confiance en votre facteur que vous soupçonnez d’ouvrir vos lettres. Comment être
sûr de recevoir ce message sans qu’il soit lu ? Vous commencez par envoyer à votre ami un cadenas sans sa clé, mais en
position ouverte. Celui-ci glisse alors le message dans une boîte qu’il ferme à l’aide du cadenas, puis il vous envoie cette
boîte. Le facteur ne peut pas ouvrir cette boîte, car la seule clé le permettant est en votre possession.

La cryptographie à clé publique repose exactement sur ce principe. Mais il s’agira de créer deux clés différentes :
une permettant de crypter (clé publique) et une deuxième, ne pouvant être déduire de la précédente permettant de
décrypter le message (clé privée).

Ing. Christian HAMENI © copyright Page | 38


Cryptographie

On dispose d’une fonction f sur les entiers, qui possède un inverse g. On suppose qu’on peut fabriquer un tel
couple (f, g), mais que connaissant uniquement f, il est impossible (ou du moins très difficile) de retrouver g.

f est la clé publique, que vous pouvez révéler à quiconque. Si Alice veut vous envoyer un message M, elle le code à l’aide
de f et vous transmet M’, sans aucune précaution. g est la clé privée, elle reste en votre seule possession. Vous décodez le
message en calculant :

La connaissance de f par un tiers ne compromet pas la sécurité de l’envoi des messages codés, puisqu’elle ne
permet pas de retrouver g. Il est possible de donner librement f, qui mérite bien son nom de clé publique.

Le schéma général de chiffrement par blocs asymétrique ou à clef publique est le suivant :

1. Coder l’information source en binaire. On obtient ainsi une chaîne de caractères composée de 0 et de 1.
2. Découper cette chaîne en blocs de longueur donnée (par exemple 1024 bits à 2048 bits pour RSA et El Gamal,
256 bits pour les codes elliptiques).
3. Chiffrer un bloc en utilisant la fonction de chiffrement (exponentiation modulaire pour RSA).
4. Passer au bloc suivant et retourner à l’étape 3 jusqu’à ce que tous les blocs soient chiffrés.

Le problème pratique qui se pose ensuite est le protocole d’envoi des blocs successivement obtenus. Il faut que ce
protocole ne diminue pas la sureté du crypto système.

I. PRINCIPE DE FONCTIONNEMENT

Whitfield Die et Hellman n’ont pas eux-mêmes proposé de fonctions satisfaisantes, mais dès 1977, R. Rivest, A.
Shamir et L. Adleman trouvent une solution possible, la meilleure et la plus utilisée à ce jour, la cryptographie RSA.

Étant donné un nombre entier n= p.q produit de 2 grands nombres premiers, il est très difficile de retrouver les facteurs
p et q.

Alice doit envoyer un message à Bob, elle a donc besoin de la clé publique RSA de Bob. Voici les différentes étapes :

1) Il choisit p et q deux grands nombres premiers (plus de 100 chiffres).

2) Il calcule n = p .q. Le nombre n, le modulo RSA, a environ 200 chiffres. Il est public alors que p et q sont gardés
secrets.

Ing. Christian HAMENI © copyright Page | 39


Cryptographie

3) Il calcule Ф (n) = (p-1)(q-1) qui s’appelle la fonction d’Euler, et qui doit rester secret. Retrouver Ф (n) sans
connaître p et q est aussi difficile que de factoriser n.

4) Il choisit un nombre e en s’assurant que le PGCD (e, Ф (n)) =1. Il s’agira de l’exposant d’encryptage RSA.

5) Il calcule d, inverse de e modulo Ф (n) et garde secret le couple (n, d). Il s’agira de la clé privée RSA. Il la garde
secrète afin de pouvoir décoder par la suite le message transmis par Alice.

6) Il transmet (ou publie dans un annuaire) le couple (n, e). Ce couple s’appelle la clé publique RSA.

7) Elle convertit son message “texte” en un nombre M compris entre 0 et n.

8) Elle calcule M ’=M e (mod n) et envoie ce message crypté M’. À l’aide d’un logiciel (comme Sage Math par

exemple).

9) Pour le décoder, il calcule M = (M’) d (mod n) à l’aide de sa clé privée d. Ceci lui permet de retrouver le message

e
d’origine, car : (M’)d= (M )d (mod n) =M e.d (mod n)= M (mod n).

10) Il reconvertit ce nombre en un message clair.

Exemple :

Une personne Alice veut recevoir un message d'une autre personne Bob. Le crypto-système RSA comprend 3 étapes.

1. Choix de la clé et sa publication par Alice.

2. Chiffrement du message par Bob et envoi.

3. Déchiffrement du message par Alice par clé privée.

Alice choisit deux grands entiers naturels premiers p et q (100 chiffres chacun ou plus) et fait leur produit n = pq.

Puis elle choisit un entier e premier avec (p - 1) (q - 1). Enfin, elle publie dans un annuaire, par exemple sur le web, sa
clé publique RSA : (n; e).

Soient p = 53, q = 97 donc n = 5141 et e = 7.

Ing. Christian HAMENI © copyright Page | 40


Cryptographie

II. Attaques sur RSA

2.1 Attaque par module commun

Oscar connaît (eA, eB, n) et (cA, cB). Par l’algorithme d’Euclide étendu, il calcule facilement (en temps -presque- linéaire

du nombre de bits de n) les coefficients de Bezout r et s tels que reA + seB = 1. Oscar peut alors calculer (par
exponentiation rapide) crA .csB mod n = mr.eA+s.eB mod n = m

Moralité : ne jamais utiliser le même n pour un groupe d’utilisateurs.

2.2 De φ(n) à la factorisation

n = pq et φ(n) = (p−1)(q−1) = n−p−q + 1 donc p + q = n−φ(n) + 1. Nous avons la somme et le produit de p et q.


Nous en déduisons alors que p et q sont les deux racines de l’équation du second degré : X2 −(n−φ(n) + 1)X + n = 0
Vérification : p2 −(n−n + p + q−1 + 1)p + n = p2 −pn + pn−p2 −pq + p−p + n =0

2.3 RSA avec deux facteurs trop proches

1.

t2 −s2 = ((p + q)2 −(p−q)2) = (p2 + 2pq + q2 −p2 + 2pq−q2) = (4pq) = pq = n.

2.

t2 = n + s2 > n donc t > √n, de plus s est petit dès que p et q sont proches.

1. Avec n = 24960007, on trouve t = 4996 et s2 = 9 en une seule itération. Donc n = 4993×4999.

Avec n = 3649574023, on démarre à t = 60412, on trouve s2 = 35721 = 1892, donc une seule itération suffit et

n = 60601×60223.

2. Complexité de l’algorithme : A varie dans le pire des cas de √n à = t. Le nombre d’itérations de la boucle est
majoré par (valeur d’arrivée - valeur de départ) :

3. Donc si p diffère de √n de moins du nombre d’itérations est majoré par

Ing. Christian HAMENI © copyright Page | 41


Cryptographie

Donc le nombre d’itérations est égal à 1

EXERCICE D’APPLICATION :1 Encryptage d’un message par blocs (digrammes)

Encryptage d’un message par blocs (digrammes). Supposons que la clé publique de Bob soit (1943,5).

Alice veut lui envoyer le message : OKPOURLUNDI en utilisant le code standard sur 26 lettres. Elle convertit ces
lettres en chiffres comme d’habitude :

Afin d’obtenir exactement 6 blocs de 2 lettres, elle ajoute deux zéros à la fin du chiffre. Elle obtient :

Alice va numériser les digrammes de la manière suivante :

En utilisant la clé publique de Bob, elle obtient ainsi :

Elle peut envoyer le message : ‚

- Soit directement sous sa forme numérique : 1932 635 68 1705 71 660


- Soit en convertissant ces nombres, selon le même principe, en lettres :

Elle enverra donc le message : CWI YL CQ CNP CT ZK Bob recevant ce message, il le décrypte à l’aide de sa clé
privée (n=1943, d=1109) :

Ing. Christian HAMENI © copyright Page | 42


Cryptographie

Le A terminal étant dû à la technique d’encryptage, il doit donc être supprimé

EXERCICE D’APPLICATION : 2

a) Coder, à l’aide de digrammes, le message JETAIME à l’aide de la clé publique (2077,19).

b) Retrouver la clé privée d puis décoder ce nouveau message : 3 261 833.

III. Infrastructure à Clé Publique ou PKI (Public Key Infrastructure)

Une PKI est un ensemble de technologies, organisations, procédure et pratiques qui supportent l'implémentation et
l'exploitation de certificats basés sur la cryptographie à clé publique.

L’une des problématiques dans la gestion des clés de chiffrement est la diffusion de ces clés, la garantie de la provenance
d’une clé (privée comme publique), la gestion de la durée de validité des clés, la mise en place d’un système de
normalisation pour l’échange des clés, et la reconnaissance des participants cryptographiques par une tierce partie.

On distingue deux types d'infrastructures :


 Architectures hiérarchiques
 Reposent sur différents CA, qui sont distincts des utilisateurs.
- Ex : PKIX (Public Key Infrastructure X.509)
 Architectures non-hiérarchiques
 Chaque utilisateur est son propre CA
 Initialement conçues pour la messagerie comme PGP et le P2P sécurisés
 Confiance mutuelle entre les utilisateurs
- Ex : SPKI (Simple Public Key Infrastructure, Spooky), SDSII (Simple Distributed Security
Infrastucture ou Sudsy)

Les fonctions d’une Infrastructure à Clé Publique à titre externe (réseau internet, inter entreprise, …) comme à titre
intra entreprise :

Ing. Christian HAMENI © copyright Page | 43


Cryptographie

 Émettre des certificats à des entités préalablement authentifiées ;


 Révoquer des certificats, les maintenir ;
 Établir, publier et respecter des pratiques de certification pour établir un espace de confiance ;
 Rendre les certificats publics par le biais de services d'annuaires ;
 Éventuellement, gérer les clés et fournir des services d'archivage.
 Assurer la non-répudiation
 Générer les paires de clés privée/publiques
 Garantir la provenance d’une clé publique en y apposant sa propre signature (= certificat)
 Définir/renouveler la durée de vie du couple de clés.

Voyons comment cela fonctionne-t-il :

Etape 1

Bob souhaite chiffrer un message pour l’envoyer à Alice, ils vont faire appel à une PKI pour cette opération

1. Alice présente son identité auprès de l’Autorité de Certification (en fait cela devrait être l’Autorité
d’Enregistrement mais dans la pratique, ces rôles sont cumulés par l’AC)
2. L’Autorité de Certificat ou CA génère une paire de clé (avec un clé publique signée par la propre clé privée de
l’Autorité de Certification)

Ing. Christian HAMENI © copyright Page | 44


Cryptographie

3. L’Autorité de Certification délivre la clé privée au demandeur


4. La CA publie le certificat dans une liste de révocations de certificats (CRL)

Etape 2

Bob souhaite chiffrer le document pour Alice. Il va contacter l’Annuaire (ou Alice) pour obtenir le certificat publié
d’Alice.

1 & 2 – Bob contacte l’Annuaire (ou Alice) pour obtenir le certificat idoine (qui contient la clé publique d’Alice signée
par l’Autorité de Certification, la CA).

3 – Bob doit pouvoir vérifier que le certificat obtenu est bien celui d’Alice.

Ing. Christian HAMENI © copyright Page | 45


Cryptographie

Il va devoir vérifier la signature de la CA, donc devoir posséder la clé publique de la CA. C’est couramment chose
immédiatement possible : un certain nombre de CA externes (ou Autorités de Certification Principales) sont déjà
installées avec les OS et affichables facilement depuis son navigateur web. Ces certificats sont donc délivrés par des CA
connues et répandues donc nativement installées avec les outils classiques de communication Internet.

Bob va donc retrouver le certificat qui correspond à l’Autorité de Certification qui a signé la clé publique d’Alice et
valider cette clé publique.

4 – Bob chiffre le message avec la clé publique d’Alice contenu dans le certificat

5 – Bob envoi son document à Alice, seule Alice pourra le déchiffrer.

6 – Alice utilise sa clé privée pour déchiffrer le message.

Un avantage de ce système est la diffusion facilitée des clés publiques sans compromission et également la robustesse des
algorithmes basés sur des problèmes mathématiques complexes (factorisation, logarithme). De ce fait, un chiffrement à
clés asymétriques est considéré comme 1000 fois plus lent qu’un chiffrement à clé symétriques.

IV. Le standard X.509

Un certificat est un élément d'information qui prouve l'identité du propriétaire d'une clé publique. X.509 est un
standard de cryptographie. Il définit le format des certificats numériques. Il repose sur un système hiérarchique
d’autorités de certifications.

 Les autorités racines de certification (Root CA)


 Les autorités de certification (CA)

Les « autorités de certifications » (CA) peuvent être privées ou publiques

 Publiques : Thawte, Verisign, RSA, Entrust,…


 Privées : Une entreprise est alors sa propre autorité de certification

Nous avons également la possibilité d’avoir des certificats auto-signés

 Dans ce cas, il n’y a pas de garanties d’authenticité


 La plupart des navigateurs Internet informent l’utilisateur.

L’échange de certificats est normalisé par la norme X509 (v3) et contient :

- la version de la norme utilisée (v1, v2 ou v3)


- un numéro de série
- la signature de l’algorithme utilisé
- Le nom de l’organisme délivrant

Ing. Christian HAMENI © copyright Page | 46


Cryptographie

- La période de validité du certificat


- L’objet du certificat
- La clé publique
- La signature par la CA

Vous retrouvez toutes ces informations en clair lorsque vous affichez le contenu du certificat depuis votre navigateur. Il
existe par ailleurs un certain nombre de standards (ou spécifications) qui interviennent dans les systèmes d’échanges
cryptographiques à clé publique, les PKCS (Public Key Cryptography Standards) déposés par le laboratoire du RSA.

 Lors d’une connexion à un site sécurisé, le navigateur vérifie le certificat présenté par le serveur :

 Cas du certificat non approuvé par une autorité de certification :

Ing. Christian HAMENI © copyright Page | 47


Cryptographie

 Le navigateur possède une liste des autorités de confiance :

 Windows XP intègre sa propre gestion des certificats :

Ing. Christian HAMENI © copyright Page | 48


Cryptographie

V. OpenSSL

C’est un logiciel Open Source orienté cryptographie permettant de :

 Génération des paires de clés privée/publique


 Cryptage et décryptage des clés
 Gestion de certificats numériques
 Prise en charge de nombreux algorithmes de chiffrement (RSA, DES, 3DES, RC4, RC5, blowfish)
 Disponible pour les systèmes Linux/Unix et Windows
- Plus utilisé sous Linux en ligne de commande
- Très utilisé pour générer des certificats SSL pour les sites web
 Sous licence Apache
- Utilisation commerciale ou non commerciale libre

Il est orienté « ligne de commande » permettant 3 types d’actions :

 Actions standards (Création et signature de certificats)


 Signature de message (Hachage MD5, SHA, SHA1, …)
 Encodage et chiffrement (RC4, RC5, base 64)

Formats de sorties des certificats

 Standard X.509
 PEM, DER, PKCS12, …

VI. Échange des clés - Diffie Hellman

La distribution de clés publiques bien que simple et permettant la confidentialité et l’authentification, reste lente.
L’objectif restant de protéger le contenu d’un message, une solution plus rapide est d’utiliser un système hybride
permettant l’échange final d’une clé de session. Diffie-Hellman est une méthode pratique pour l’échange public d’une
clef secrète (ou de session). Contrairement à ce que beaucoup pensent, il ne peut pas être employé pour échanger
directement un message arbitraire. La méthode de Diffie-Hellman (DH) est basée sur l’élévation à une puissance dans
un champ fini, ce qui est facile à calculer. La sécurité se fonde sur la difficulté de calculer des logarithmes discrets,
problème difficile comme dans le cas d’El Gamal. La valeur de la clef dépend des participants (et de l’information sur
leurs clés privée et publique).

Principe :

Soient A et B, les deux parties de la communication. A génère un nombre premier p et un primitif a (p et a sont
publics).

Ing. Christian HAMENI © copyright Page | 49


Cryptographie

Soient p premier et a < p. On dit que a est un primitif de p si ∀b ∈ (1, p - 1), ∃g tel que ag = b mod p2. Une fois ces
deux valeurs rendues publiques, A et B génèrent chacun un nombre aléatoire :

x A (< p) et xB (< p) (gardés secrets).

A et B partagent ainsi la même clé puisque KAB = KBA. En effet :

Ing. Christian HAMENI © copyright Page | 50


Cryptographie

CHAPITRE : V

FONCTION DE HACHAGE ET
SIGNATURES NUMERIQUES
I. Fonctions de hachage

Lors d’échanges de messages cryptés, il est important de pouvoir s’assurer que le message n’a pas été altéré ou modifié
par un tiers pendant l’envoi. La cryptographie asymétrique assure certes la confidentialité des données, mais ne garantit
pas l’intégrité de ces dernières, qui constitue ici l’épicentre de la problématique que vient résoudre la fonction de
hachage. Il s’agit d’une fonction mathématique qui produit un résultat différent pour toute entrée de données.

 hash = H (m)
 m : Entrée de données de taille variable
 hash : Code de hachage résultant
 H : Fonction de hachage

Principe :

Une fonction de hachage calcule l’empreinte y (ou digest) d’un message x. Cette fonction F doit être une fonction à sens
unique c’est-à-dire qu’il doit être facile de trouver y à partir de x, mais très difficile de trouver x à partir de y. Elle doit
aussi être très sensible pour qu’une petite modification du message entraîne une grande modification de l’empreinte. En
envoyant le message accompagné de son empreinte, le destinataire peut ainsi s’assurer de l’intégrité du message en
recalculant le résumé à l’arrivée et en le comparant à celui reçu. Si les deux résumés sont différents, cela signifie que le
fichier n’est plus le même que l’original : il a été altéré ou modifié par une tierce personne.

Utilisations courantes :

 Stockage des mots de passe


- Stockage du Hash plutôt que le mot de passe en clair
 Signatures numériques
- Permet de s’assurer qu’un message n’a pas subi de modifications

Ing. Christian HAMENI © copyright Page | 51


Cryptographie

Une fonction de hachage offre 4 caractéristiques :

1. Difficile de trouver deux entrées de données donnant le même code de hachage


2. La taille du hachage est petite comparée aux données
3. Tout changement des données induit un changement du hachage
4. Le hachage est généralement très rapide

Les fonctions de hachage les plus répandus sont MD5 et SHA-1 qui sont basés tous les deux sur MD4, MD5 générant
des empreintes de 128 bits et SHA-1 de 160 bits (seul MD5 sera décrit, ces deux fonctions ayant un fonctionnement
similaire). La fonction de hachage est une fonction prenant en entrée un message de longueur variable et générant une
empreinte de taille fixe. Cependant, l’empreinte : permet de s’assurer avec un certain niveau de vraisemblance qu’un
message n’a pas été altéré accidentellement (bits de parité, codes détecteurs d’erreurs).

HMAC est un principe de hachage couplé à une clé secrète :

Ing. Christian HAMENI © copyright Page | 52


Cryptographie

Nous verrons plus en avant qu’une fonction de hachage joue un rôle dans la signature électronique, méthode qui permet
d’authentifier l’expéditeur.

II. Signature électronique

Les fonctions de hachage permettent de s’assurer de l’intégrité d’un message mais un autre problème se pose : comment
être certain que personne n’a usurpé l’identité de l’expéditeur pour vous envoyer un message ? Ou que l’expéditeur ne va
pas nier vous l’avoir envoyé ?

C’est le rôle de la signature numérique, celle-ci fournissant donc les services d’intégrité des données, d’authentification
de l’origine des données et de non-répudiation.

Ing. Christian HAMENI © copyright Page | 53


Cryptographie

  Scénario d’attaque :
 Paul envoie un message à Jean
 Paul envoie le message + le résultat du hachage
 Un attaquant modifie le message ET recalcule le hash
 Jean vérifie la correspondance entre résumé et message et pense qu’il est n’a pas été altéré.

L’idée serait de combiner le chiffrement asymétrique avec les fonctions de hachage pour garantir une meilleure sécurité.

Solution possible :
 Paul aurait pu chiffrer le résumé avec sa clé privée
 Jean utilise la clé publique de Paul pour décrypter le hachage et vérifier la correspondance
 L’attaquant ne peut pas changer le résumé
- Il ne possède pas la clé privée de Paul
- Même s’il peut connaître la clé publique de Paul

Le résumé (hash) chiffré est appelé « une signature numérique »

La façon la plus simple de signer un message est d’utiliser la cryptographie asymétrique pour le chiffrer en utilisant sa
clef privée : seul le possesseur de cette clef peut générer la signature et toute personne ayant accès à la clef publique
correspondante peut la vérifier. Mais cette méthode est très lente et en pratique elle n’est que peu utilisée.

La méthode réellement utilisée repose non pas sur le chiffrement du message lui-même mais sur l’empreinte (empreinte
issue d’une fonction de hachage comme MD5 par exemple) de celui-ci. En effet, cette méthode est beaucoup plus rapide
du fait de la quantité réduite des données à chiffrer.

Une signature numérique est plus sûre qu’une signature papier car la signature change à chaque message. Elle est de ce
fait inimitable (sans la connaissance de la clef secrète bien entendue).

Les signatures numériques permettent de :

 Authentifier l’auteur d’un document numérique


- Le lecteur du document a la garantie de l’identité de l’auteur
 Assurer son intégrité (Document non modifié)
- Le lecteur est certain que le document n’a pas été altéré
 Prouver le principe de non répudiation
- Le signataire ne pourra nier être l’auteur du document
 Assurer la non réutilisation
- Une signature numérique est unique pour un message donné
- Elle ne peut être réutilisée pour un autre message

La signature numérique est le résultat de l’utilisation conjointe de :


Ing. Christian HAMENI © copyright Page | 54
Cryptographie

 La cryptographie asymétrique
 Et du principe de hachage

Ainsi :

o Le signataire crée un résumé du message (hachage)


o Le résumé est crypté à l’aide de la clé privée
o La signature est ajoutée au message en clair avant envoi

Principe :

Le crypto système RSA permet aussi facilement de réaliser l’authentification de l’expéditeur (en admettant que sa clef
privée n’est utilisée que par lui).

1. Alice commence par découper le message M en blocs M de taille bien choisie par rapport à na et nb. Elle crypte

chaque bloc du message avec sa clé secrète da, elle obtient à partir du texte en clair M un premier texte crypté,
M''

Ing. Christian HAMENI © copyright Page | 55


Cryptographie

2. Avec la clé publique de Bob, elle crypte M'' et obtient un deuxième texte crypté, M'

qui constitue la signature du message M.

3. Elle crypte alors le message M avec la clé publique de Bob en suivant le protocole précédent et obtient le texte
crypté du message fb(M)

4. Elle envoie à Bob le couple

qui constitue le message chiffré et signé d’Alice à


Bob.

Pour décoder et vérifier la signature qui authentifie l’expéditeur du message d’Alice, Bob effectue les opérations
suivantes :

1. Il calcule d’une part

Puis

(Si le choix de la taille des blocs M est bien choisi par rapport à na et nb, il n’y a pas d’ambiguïté au décodage)

2. Il calcule d’autre part, en décodant comme dans le chapitre précédent

3. Il compare les deux résultats obtenus. S’il constate que M = M, c’est à dire que les deux résultats sont les
mêmes, il est sûr alors que le message vient d’Alice car seule Alice connait.

C’est à dire sa clé secrète. De plus il est sûr que le message n’a pas été altéré.

Ing. Christian HAMENI © copyright Page | 56


Cryptographie

Depuis toujours, le document papier est notre support privilégié dès lors qu’il nous est nécessaire de conserver le
témoignage d’un accord entre plusieurs parties. Traditionnellement, et à défaut de pouvoir en protéger l’intégrité, l’usage
de sceaux ou de signatures, permet de garantir l’authenticité de tels documents. Avec l’utilisation croissante des outils de
communication « immatériels », que sont le téléphone, le fax ou encore l’Internet, le problème de la protection de nos
échanges est devenu particulièrement critique. Les progrès conjugués des mathématiques et de l’informatique ont permis,
depuis les années 1970, de disposer progressivement d’un panel complet de solutions algorithmiques et de standards
adaptés à la certification de nos documents électroniques. Avec la criticité croissante de nos échanges et la disponibilité
de solutions techniques avérées, la mise en place progressive d’un cadre juridique adapté est venue compléter l’ensemble.

La signature électronique est un procédé technique dans lequel, une personne (signataire) apporte son accord à valeur
juridique sur un document électronique. Il y a donc réunion de 3 éléments : le document, le signataire et l’outil de
signature.
Si l’outil nécessaire à la signature manuscrite n’est ni plus ni moins qu’un stylo, les outils de signature électronique sont
multiples, autant que les moyens techniques nécessaires à leur réalisation. Il s’agit dans la majorité des cas, d’un certificat
numérique porté sur différents supports (carte à puce, clé USB, carte d’identité, PC, smartphone, etc.) qui a pour
fonction d’identifier le signataire d’une part, et de sceller le document pour en garantir l’intégrité d’autre part.

En résumé la signature électronique permet plusieurs choses, se montrant bien plus efficace que son pendant manuscrit :
 Authentifier le signataire ;
 Garantir l'intégrité du document ;
 Assurer la non‐répudiation (l’émetteur du document ne peut nier l’avoir envoyé).

Véritable vecteur de performance et de croissance, la signature numérique est aujourd’hui au cœur de la transformation
numérique des processus métiers au sein des entreprises avec l’introduction tout récemment de la monnaie virtuelle : la
crypto monnaie qui fera l’objet d’une étude approfondit en master 1.

Ing. Christian HAMENI © copyright Page | 57

Vous aimerez peut-être aussi