0% found this document useful (0 votes)
103 views140 pages

Crypto Bases

The document discusses definitions and concepts related to cryptography and cryptanalysis. Cryptography is defined as the science of secret communication and involves encrypting information using cryptosystems. Cryptanalysis involves studying the security of cryptosystems and attempting to break their encryption through techniques like cryptanalysis of algorithms or side-channel attacks on implementations. Symmetric cryptography uses the same key for encryption and decryption, while asymmetric cryptography uses a public/private key pair.

Uploaded by

Salah Gharbi
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
103 views140 pages

Crypto Bases

The document discusses definitions and concepts related to cryptography and cryptanalysis. Cryptography is defined as the science of secret communication and involves encrypting information using cryptosystems. Cryptanalysis involves studying the security of cryptosystems and attempting to break their encryption through techniques like cryptanalysis of algorithms or side-channel attacks on implementations. Symmetric cryptography uses the same key for encryption and decryption, while asymmetric cryptography uses a public/private key pair.

Uploaded by

Salah Gharbi
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 140

Les bases de la Cryptologie

Guénaël Renault

POLSYS LIP6/UPMC/INRIA
Part I

Définitions

2/91
La cryptologie

Définitions
La cryptologie est la science du secret. Elle se divise en deux
disciplines :
La cryptographie qui est l’étude des algorithmes permettant la
protection d’informations (numériques). Ces algorithmes sont
appelés cryptosystèmes +design;
la cryptanalyse qui est l’étude du niveau de sécurité des
cryptosystèmes fournis par les cryptographes +attack.

3/91
La cryptanalyse

Peut essentiellement se diviser en deux grandes familles d’attaques


qui viseront deux cibles différentes :

algorithmes : ici l’attaquant essaie de trouver des algorithmes


efficaces pour résoudre les problèmes mathématiques sur
lesquels reposent les cryptosystèmes +Cours CRYPTO
implémentations matérielles : ici l’attaquant utilisera les fuites
d’information lors de l’exécution d’un cryptosystène pour retrouver
les secrets +Cours SCA.

4/91
La cryptanalyse

Peut essentiellement se diviser en deux grandes familles d’attaques


qui viseront deux cibles différentes :

algorithmes : ici l’attaquant essaie de trouver des algorithmes


efficaces pour résoudre les problèmes mathématiques sur
lesquels reposent les cryptosystèmes +Cours CRYPTO
implémentations matérielles : ici l’attaquant utilisera les fuites
d’information lors de l’exécution d’un cryptosystène pour retrouver
les secrets +Cours SCA.

Cours CRYPTO : G. R. , Luk Bettale (Oberthur Tech.)

4/91
La cryptanalyse
Peut essentiellement se diviser en deux grandes familles d’attaques
qui viseront deux cibles différentes :

algorithmes : ici l’attaquant essaie de trouver des algorithmes


efficaces pour résoudre les problèmes mathématiques sur
lesquels reposent les cryptosystèmes +Cours CRYPTO
implémentations matérielles : ici l’attaquant utilisera les fuites
d’information lors de l’exécution d’un cryptosystène pour retrouver
les secrets +Cours SCA.

Cours SCA : G. R. et P. Bazargan Sabet (UPMC)


E. Prouff , V. Lomné, A. Thillard, N. Robert, R. Benadjila,
J. Lopes-Esteves et Mathieu Renard, N. Robert (ANSSI)
David Vigilant (Gemalto)
Sylvain Guilley (Télécom ParisTech)
Luk Bettale (Oberthur)
Jessy Clédière (CEA LETI)
4/91
La cryptographie
La cryptographie protège l’information de différentes manières :
confidentialité : pour s’assurer que l’information ne soit seulement
accessible qu’à ceux dont l’accès est autorisé ;
authenticité : vérifier l’identité d’une personne ou d’un matériel
informatique ;
intégrité : pouvoir affirmer que les données ont ou n’ont pas été
modifiées ;
+Ces moyens doivent reposer sur des secrets
clé secrète : cryptographie symétrique ;
clé publique/secrète : cryptographie asymétrique

Principe de Kerckhoffs (Journal des sciences militaires, 1883)
La sécurité d’un cryptosystème ne doit reposer que sur le secret
de la clef. En particulier un attaquant est supposé connaı̂tre le
cryptosystème (Les cryptosystèmes militaires, vus comme des
dispositifs physiques, peuvent tomber aux mains de l’ennemi).
5/91
La cryptographie
La cryptographie protège l’information de différentes manières :
confidentialité : pour s’assurer que l’information ne soit seulement
accessible qu’à ceux dont l’accès est autorisé ;
authenticité : vérifier l’identité d’une personne ou d’un matériel
informatique ;
intégrité : pouvoir affirmer que les données ont ou n’ont pas été
modifiées ;

Terminologie
Chiffrer : l’action de rendre un message clair M (plaintext) en un
message C appelé cryptogramme ou message chiffré, illisible.
Déchiffrer : Action inverse du chiffrement.
Cryptosystème : L’algorithme (ou le dispositif physique) permettant de
chiffrer des données.
Attaquer, Casser : Mettre à mal la sécurité d’un cryptosystème
(retrouver M à partir de C sans connaı̂tre la clé, retrouver la clé).
5/91
La cryptographie: outils mathématiques

Théorie de l’information (Shannon)


Probabilité et statistique
Arithmétique modulaire
Arithmétique des polynômes
Corps finis (Galois)
Courbes ellitiques
Théorie algorithmiques des nombres
etc.

6/91
Part II

Chiffrement symétrique

7/91
Chiffrement symétrique : Modélisation
Définition
Un chiffrement est dit symétrique (ou à clé privée) si pour chiffrer et
déchiffrer, la même clé secrète est utilisée.

+On s’intéresse uniquement aux chiffrements par bloc (pas aux


chiffrements par flot).
Modélisation du cryptosystème
P et C les alphabets pour écrire les messages clairs et les
messages chiffrés respectivement.
K l’ensemble des clés possibles.
Pour tout K ∈ K on peut définir deux applications eK : P → C et
dK : C → P telles que dK (eK (x)) = x pour tout x ∈ P.

+les alphabets peuvent être composés de symboles uniques ou de


blocs de symboles. Par exemple on peut choisir les 26 caractères non
accentués de l’alphabet usuel.
8/91
Chiffrement d’un texte : Mode ECB

Chiffrement symétrique (la même clé K pour dé/chiffrer)


P et C les alphabets clairs et chiffrés.
K l’ensemble des clés possibles.
K ∈ K : eK : P → C et dK : C → P avec ∀x ∈ P dK (eK (x)) = x.
Les applications eK et dK nécessitent la connaissance complète
de K pour être définies.

En pratique : chiffrer avec la clé K


Pour chiffrer un texte P clair on procède comme suit
1 On découpe P en blocs correspondant aux éléments de P
2 On applique eK sur chacun des blocs de P
3 On obtient ainsi C un message correspondant à P et écrit à l’aide
de C.

9/91
Chiffrement d’un texte : Mode ECB
Chiffrement symétrique (la même clé K pour dé/chiffrer)
P et C les alphabets clairs et chiffrés.
K l’ensemble des clés possibles.
K ∈ K : eK : P → C et dK : C → P avec ∀x ∈ P dK (eK (x)) = x.
Les applications eK et dK nécessitent la connaissance complète
de K pour être définies.


Ce mode de chiffrement est à éviter. 9/91
Chiffrement d’un texte : Mode ECB

Chiffrement symétrique (la même clé K pour dé/chiffrer)


P et C les alphabets clairs et chiffrés.
K l’ensemble des clés possibles.
K ∈ K : eK : P → C et dK : C → P avec ∀x ∈ P dK (eK (x)) = x.
Les applications eK et dK nécessitent la connaissance complète
de K pour être définies.

En pratique : déchiffrer avec la clé K


Pour déchiffrer le texte C on procède comme suit
1 On découpe C en blocs correspondant aux éléments de C
2 On applique dK sur chacun des blocs de C
3 On obtient ainsi P le clair de à C.

9/91
Période artisanale : Cesar

+Le chiffrement de César (décrit précédemment dans le Kàma-sùtra


-400), le point de départ de la cryptographie par substitution générale.

Implantation en shell d’un décalage de César :

tr a-zA-Z n-za-mN-ZA-M

10/91
Période artisanale : Transposition/Substitution

Chiffrement par transposition

Clef secrète est la permutation entre les positions des caractères.

11/91
Période artisanale : Transposition/Substitution

Chiffrement par substitution monoalphabétique

Clef secrète est la permutation entre les alphabets .

11/91
Période artisanale : Transposition/Substitution

Chiffrement par substitution monoalphabétique

Clef secrète est la permutation entre les alphabets .

Cryptanalyse force brute :


Substitution : 26! permutations possibles.
Décalage : 26 décalages possibles.

11/91
Période artisanale : Transposition/Substitution

Chiffrement par substitution monoalphabétique

Clef secrète est la permutation entre les alphabets .

Cryptanalyse un peu plus intelligente : analyse des fréquences

11/91
Période artisanale : le point faible du
monoalphabétique

+Al Kindi (˜ 800) explique dans son ouvrage


de cryptanalyse la méthode de l’étude des
fréquences.
+Marie Stuart (1587) Reine d’Écosse perd la
tête pour haute trahison. Elle utilisait un
chiffrement monoalphabétique qui a cassé par
un man-in-the-middle .

12/91
Période artisanale : Vigenère et le polyalphabétique

+Vigenère publie en 1587 le résultat de ses recherches


sur des méthodes proposées par Alberti, Trithème et
Porta. Il propose un cryptosystème polyalphabétique .

Vigenère ou multi-décalage
On associe aux lettres un entier dans {0, . . . , 25} et on fixe un mot
C = (c1 , . . . , c` ) de ` lettres pour être la clé secrète . On découpe le
message à envoyer en blocs Bi = (x(i,1) , x(i,2) , . . . , x(i,`) ) de ` lettres . Le
chiffrement/déchiffrement par un multi-décalage sur les Bi :
E(x(i,j) ) = x(i,j) + cj mod 26
D(x(i,j) ) = x(i,j) − cj mod 26

13/91
Période artisanale : Vigenère et le polyalphabétique

+Vigenère publie en 1587 le résultat de ses recherches


sur des méthodes proposées par Alberti, Trithème et
Porta. Il propose un cryptosystème polyalphabétique .

Vigenère ou multi-décalage
On associe aux lettres un entier dans {0, . . . , 25} et on fixe un mot
C = (c1 , . . . , c` ) de ` lettres pour être la clé secrète . On découpe le
message à envoyer en blocs Bi = (x(i,1) , x(i,2) , . . . , x(i,`) ) de ` lettres . Le
chiffrement/déchiffrement par un multi-décalage sur les Bi :
E(x(i,j) ) = x(i,j) + cj mod 26
D(x(i,j) ) = x(i,j) − cj mod 26

Cryptanalyse force brute : longueur ` fixée, on a 26` clés possibles !


Analyse des fréquences : Ne fonctionne plus directement !

13/91
Période artisanale : Vigenère et le polyalphabétique

+Vigenère publie en 1587 le résultat de ses recherches


sur des méthodes proposées par Alberti, Trithème et
Porta. Il propose un cryptosystème polyalphabétique .

Vigenère ou multi-décalage
On associe aux lettres un entier dans {0, . . . , 25} et on fixe un mot
C = (c1 , . . . , c` ) de ` lettres pour être la clé secrète . On découpe le
message à envoyer en blocs Bi = (x(i,1) , x(i,2) , . . . , x(i,`) ) de ` lettres . Le
chiffrement/déchiffrement par un multi-décalage sur les Bi :
E(x(i,j) ) = x(i,j) + cj mod 26
D(x(i,j) ) = x(i,j) − cj mod 26

Cryptanalyse force brute : longueur ` fixée, on a 26` clés possibles !


Analyse des fréquences : Ne fonctionne plus directement !
Difficulté de son utilisation manuelle ⇒ impopulaire jusqu’au 19eme
siècle . Mono-alphabétique persiste (homophonique )
13/91
il contient des redondances intéressantes.
Cryptanalyse (
˜ 1860): Vigenère et le
polyalphabKQOWEFVJPUJUUNUKGLMEKJINMWUXFQMKJBGWRLFNFGHUDWUUMBSVLPS
étique
NCMUEKQCTESWREEKOYSSIWCTUAXYOTAPXPLWPNTCGOJBGFQHTDWXIZA
YGFFNSXCSEYNCTSSPNTUJNYTGGWZGRWUUNEJUUQEAPYMEKQHUIDUXFP
GUYTSMTFFSHNUOCZGMRUWEYTRGKMEEDCTVRECFBDJQCUSWVBPNLGOYL
SKMTEFVJJTWWMFMWPNMEMTMHRSPXFSSKFFSTNUOCZGMDOEOYEEKCPJR
+Charles Babbage (1792-1871)
GPMURSKHFRSEIUEVGOYCWXIZAYGOSAANYDOEOYJLWUNHAMEBFELXYVL
+Friedrich Wilhelm Kasiski (1805-1881)
WNOJNSIOFRWUCCESWKVIDGMUCGOCRUWGNMAAFFVNSIUDEKQHCEUCPFC
MPVSUDGAVEMNYMAMVLFMAOYFNTQCUAFVFJNXKLNEIWCWODCCULWRIFT
WGMUSWOVMATNYBUHTCOCWFYTNMGYTQMKBBNLGFBTWOJFTWGNTEJKNEE
DCLDHWTVBUVGFBIJG
Longueur de la clé : Test de Kasiski
KQOWEFVJPUJUUNUKGLMEKJINMWUXFQMKJBGWRLFNFGHUDWUUMBSVLPS
NCMUEKQCTESWREEKOYSSIWCTUAXYOTAPXPLWPNTCGOJBGFQHTDWXIZA
YGFFNSXCSEYNCTSSPNTUJNYTGGWZGRWUUNEJUUQEAPYMEKQHUIDUXFP
GUYTSMTFFSHNUOCZGMRUWEYTRGKMEEDCTVRECFBDJQCUSWVBPNLGOYL
SKMTEFVJJTWWMFMWPNMEMTMHRSPXFSSKFFSTNUOCZGMDOEOYEEKCPJR
GPMURSKHFRSEIUEVGOYCWXIZAYGOSAANYDOEOYJLWUNHAMEBFELXYVL
WNOJNSIOFRWUCCESWKVIDGMUCGOCRUWGNMAAFFVNSIUDEKQHCEUCPFC
MPVSUDGAVEMNYMAMVLFMAOYFNTQCUAFVFJNXKLNEIWCWODCCULWRIFT
WGMUSWOVMATNYBUHTCOCWFYTNMGYTQMKBBNLGFBTWOJFTWGNTEJKNEE
DCLDHWTVBUVGFBIJG

+Le pgcd (probable) entre les différentes distances


On regarde ensuite la distance entre les répétitions. On cherche les facteurs pour chaque pa
14/91
Cryptanalyse automatique du chiffrement de Vigenère

1 Retrouver la longueur de la clé


2 Retrouver la clé

+Pour la seconde étape on peut voir cela comme une attaque d’un
multi-chiffrement monoalphabétique.
Idée clé:

Plutôt que de réaliser une attaque brute force en t` on passe


en ` × t où t est la taille de l’alphabet et ` la longueur de la clé
secrète.
Pour tester chaque caractère de la clé secrète on utilise un dis-
tingueur statistique.

15/91
Cryptanalyse automatique : Utilisation des
Statistiques
William F. Friedman (1891 - 1969)

+Utilisation des invariants


statistiques pour distinguer
un langage courant d’un flux
aléatoire.
+Ne s’attache pas
uniquement à la proba de
chaque caractère pris
indépendamment les uns
des autres
+Considère la distribution
dans sa généralité

16/91
Cryptanalyse automatique : Utilisation des
Statistiques

Application
Karl Pearson (1857 - 1936)
Mono-Alphabétique
On s’intéresse à la
corrélation entre la
distribution d’un texte chiffré
et celle d’un texte clair dans
un langage donné.

Pn
i=1 (Xi − X̄)(Yi − Ȳ)
ρ(X, Y) = qP qP
n 2 n 2
i=1 (Xi − X̄) i=1 (Xi − X̄)

16/91
Cryptanalyse automatique : Utilisation des
Statistiques
William F. Friedman (1891 - 1969)
Définition
L’indice de coı̈ncidence d’un
texte est la probabilité de
tirer un couple de lettres
identiques au hasard.
25 25
X Cni
2
X ni (ni − 1)
IC = =
C2n n(n − 1)
i=0 i=0

où ni est le nombre de


caractère ci dans le texte et n
est la longueur total de ce
dernier.

16/91
Cryptanalyse automatique : Utilisation des
Statistiques
P25 ni (ni −1)
+IC = i=0 n(n−1) distingue l’aléatoire ⇒ attaque longueur de la clé

Lorsque le texte est suffisamment long (n → ∞) l’indice IC est


donné par
25
X
IC ' p2i = 0.074 pour l’alphabet français
i=0

où pi est la probabilité d’apparition de la lettre numérotée i dans


un texte en français.
Lorsque les lettres sont distribuées aléatoirement, l’indice de
coı̈ncidence est faible
25
X 1
IC ' ( )2 ' 0.038
26
i=0
16/91
Cryptanalyse automatique : Utilisation des
Statistiques

P25 ni (ni −1)


+IC = i=0 n(n−1) distingue l’aléatoire ⇒ attaque longueur de la clé

16/91
De l’artisanal à l’informatique via la mécanique
+Création de bureaux spéciaux de cryptanalyse
+Avant 1914, la crypto reste très proche de Vigenère.

17/91
De l’artisanal à l’informatique via la mécanique
+La cryptanalyse pousse les USA à entrer en guerre !

17/91
De l’artisanal à l’informatique via la mécanique
+La cryptanalyse d’un message allemand évite une défaite sur Paris !
Le chiffrement ADFGVX inventé par Nebel et cryptanalysé par Painvin.

17/91
Période intermédiaire entre deux guerres et WW2 :
Enigma la mécanique cryptographique
+Invention de la télécommunication et croissance du nombre des
échanges chiffrés

Enigma (Scherbius, 1919) ⇔ polyalphabétique mécanique

18/91
Période intermédiaire 1914-1945 : Enigma la
mécanique cryptographique
+Le Biuro Szyfrów, bureau du chiffre polonais autour du M. Rejewski
puis le centre de cryptanalyse anglais de Bletchley Park autour de A.
Turing perce le secret d’Enigma.

+Identifier un certain type de permutations dans le cryptosystème,


utilisation des premiers ordinateurs électro-mécaniques (Bombes ).
+Reste classifiée jusqu’en 1974.
19/91
Shannon et la théorie de l’information

Claude Shannon (1916 - 2001) a publié


deux articles de recherche en 1948 et
1949 donnant les fondations de la théorie
de l’information et, plus généralement,
de la cryptologie moderne. Il donne les
premières preuves de sécurité d’un
cryptosystème en se basant sur des
principes de probabilité et de statistique.

Définitions importantes
Chiffrement parfait
Entropie d’un langage

20/91
Chiffrement parfait

Intuition
Un cryptosystème sera dit chiffrement parfait lorsque la donnée d’un
message chiffré ne révèle aucune fuite d’information sur la clé ou le
message clair correspondant et aucune information non plus sur les
textes chiffrés futurs.

21/91
Chiffrement parfait

Caractérisation
Supposons qu’un cryptosystème vérifie

#K = #P = #C

alors (c’est aussi une condition nécessaire) il sera chiffrement parfait


ssi les deux conditions suivantes sont vérifiées:
Toutes les clés sont utilisées avec même probabilité
Pour tout couple (m, c) ∈ P × C il existe une unique clé k telle que
ek (m) = c.

+Beaucoup de contraintes sur le cryptosystème


+Peu fréquent en pratique

21/91
Exemple : Vernam’s One Time Pad

Gilbert S. Vernam (1890-1960), proposa le


cryptosystème qui porte son nom en 1917 et
fût déposé un brevet le concernant jusqu’en
1919 (US PATENT 1310719).
Le principe est simple : l’utilisation du XOR !
Les messages clairs et chiffrés, les clés seront
des suites de bits de même longueur.

C[i] = M[i] ⊕ K[i] et M[i] = C[i] ⊕ K[i]

22/91
Exemple : Vernam’s One Time Pad

C’est le seul cryptosystème à chiffrement parfait !


Très peu pratique !
Utilisé dans la cryptographie Top Secrète (téléphone rouge, valise
diplomatique, militaire (Atomique)).
Le principe est utilisé pour faire des chiffrements symétrique
dépendant de générateur aléatoire.

23/91
Exemple : Vernam’s One Time Pad

La clé doit être aussi longue que le message


Elle doit être aléatoire
Elle doit être utilisée une unique fois
Projet VENONA des USA pour écouter les discussions Russes
utilisant un Two-Time Pad ⇒ faiblesse !

23/91
Début 1970 : besoin de standardisation
˜
Basé sur deux concepts introduits par Shannon, le DES est proposé
en 1977 comme standard de chiffrement par bloc.

Confusion: chaque bit du


chiffré dépend de manière
hautement non-linéaire en les
bits du clair et de la clé.
Diffusion: chaque bit du clair
ou de la clé affecte un grand
nombre de bits du chiffré.
+Shannon propose ces conditions
comme nécessaires pour obtenir
un chiffrement sûr.

24/91
La fin du DES
Très tôt le DES est critiqué pour la taille de clé trop petite (64 bits mais
seulement 56 utiles).

Ordinateurs construits pour casser le


DES par recherche exhaustive :
1977 : 20 million $, DES casser th.
en 24h (Diffie Hellman)
1993 : 1 million $, DES casser th.
en 7h (Wiener)
1998 : 250 K$, DES casser en 3
jours (Deep crack de EFF)

Attaques théoriques
Cryptanalyse différentielle (Biham, Shamir, 1988) en 248
Cryptanalyse linéaire (Matsui, Gilbert, 1993) en 243
+On passe au 3DES pour assurer une bonne sécurité !
25/91
Le remplaçant du DES : AES

En 1997 une compétition est organisée pour trouver un remplaçant au


DES

Rijndael (Daemen, Rijmen) gagne le


concours en 2001
S-Box basée sur arithmétique
modulaire assure la confusion
Une permutation en plusieurs
étapes assure la diffusion
Une expansion de clé simple assure
l’efficacité
+En 2003 la NSA déclare AES comme
moyen de chiffrement pour des données
classifiées SECRET ou TOP SECRET.

26/91
AES : Fips-197

+Représentation matricielle

27/91
AES : Fips-197

28/91
AES : Byte Sub

+Représentation matricielle

29/91
AES : Byte Sub (S-Box)
+Boite-S définit sur 8 bits (description arith. plus loin)
| 0 1 2 3 4 5 6 7 8 9 a b c d e f
---|--|--|--|--|--|--|--|--|--|--|--|--|--|--|--|--|
00 |63 7c 77 7b f2 6b 6f c5 30 01 67 2b fe d7 ab 76
10 |ca 82 c9 7d fa 59 47 f0 ad d4 a2 af 9c a4 72 c0
20 |b7 fd 93 26 36 3f f7 cc 34 a5 e5 f1 71 d8 31 15
30 |04 c7 23 c3 18 96 05 9a 07 12 80 e2 eb 27 b2 75
40 |09 83 2c 1a 1b 6e 5a a0 52 3b d6 b3 29 e3 2f 84
50 |53 d1 00 ed 20 fc b1 5b 6a cb be 39 4a 4c 58 cf
60 |d0 ef aa fb 43 4d 33 85 45 f9 02 7f 50 3c 9f a8
70 |51 a3 40 8f 92 9d 38 f5 bc b6 da 21 10 ff f3 d2
80 |cd 0c 13 ec 5f 97 44 17 c4 a7 7e 3d 64 5d 19 73
90 |60 81 4f dc 22 2a 90 88 46 ee b8 14 de 5e 0b db
a0 |e0 32 3a 0a 49 06 24 5c c2 d3 ac 62 91 95 e4 79
b0 |e7 c8 37 6d 8d d5 4e a9 6c 56 f4 ea 65 7a ae 08
c0 |ba 78 25 2e 1c a6 b4 c6 e8 dd 74 1f 4b bd 8b 8a
d0 |70 3e b5 66 48 03 f6 0e 61 35 57 b9 86 c1 1d 9e
e0 |e1 f8 98 11 69 d9 8e 94 9b 1e 87 e9 ce 55 28 df
f0 |8c a1 89 0d bf e6 42 68 41 99 2d 0f b0 54 bb 16
30/91
AES : Permutation (les lignes)

+Représentation matricielle

31/91
AES : Permutation (les colonnes)

+Représentation matricielle

c(x) = 3x3 + x2 + x + 2 mod x4 + 1 dans F8 [x]

32/91
AES : Addition de la sous-clé

+Représentation matricielle

33/91
AES : Un mode opératoire plus secure

+Rappelez vous, ne jamais utiliser ECB !

34/91
Part III

De l’échange de clés à la clé publique

35/91
Problématique

+Le nombre énorme de clés à gérer !

Bob

Alice Henry

Fred
Gil

Eve Dan Ines

Jean

Carl
Ken

+Des échanges chiffrés avec n amis nécessitent n clés !

36/91
New Directions in Cryptogra
Échanger des clés Invited Paper
+1976 Diffie, Hellman et Merkle publient le premier schéma d’échange
Whitfield Diffie and Martin E. Hellm
de clés. Ils proposent (enfin) la notion de clé publique.

Abstract Two kinds of contemporary developments in cryp- communications o


tography are examined. Widening applications of teleprocess- raphy to insure pri
ing have given rise to a need for new types of cryptographic communicating pa
systems, which minimize the need for secure key distribution one else. This is do
channels and supply the equivalent of a written signature. This secure channel su
paper suggests ways to solve these currently open problems. private conversatio
It also discusses how the theories of communication and compu- tance is a common
tation are beginning to provide the tools to solve cryptographic unrealistic to expe
problems of long standing. long enough for ke
The cost and dela
is a major barrier
1 INTRODUCTION to large teleproces
Section III prop
We stand today on the brink of a revolution in cryptography. information over p
The development of cheap digital hardware has freed it from mising the security
the design limitations of mechanical computing and brought enciphering and d
the cost of high grade cryptographic devices down to where
and D, such that co
they can be used in such commercial applications as remote
ble (e.g., requirin
37/91
Échanger des clés
+1976 Diffie, Hellman et Merkle publient le premier schéma d’échange
de clés. Ils proposent (enfin) la notion de clé publique.
+Basé sur la difficulté du logarithme discret.

37/91
Logarithme discret : du plan continue au discret

Étant donné ex

Il est facile de calculer x

38/91
Logarithme discret : du plan continue au discret

Étant donné 192 = gx mod 449 (g = 3 générateur du groupe cyclique)

Il est difficile de calculer x

38/91
Logarithme discret : du plan continue au discret

Étant donné 192 = gx mod 449 (g = 3 générateur du groupe cyclique)

Il est difficile de calculer x

38/91
La trappe de Diffie-Hellman
+Le nombre croissant d’échanges augmente le nombre de clés
secrètes nécessaires.
+En 1975 ils proposent les grandes lignes de leur idée théorique pour
éviter ce problème.

Définition
Une fonction F : X → Y est à sens unique avec trappe , si :
F est à sens unique, i.e. elle est difficile à inverser, facile à
calculer.
La connaissance d’une information supplémentaire, appelée la
trappe, rend le calcul pour tout y ∈ Im(F) de x ∈ X tel que F(x) = y
réalisable en temps polynomial.

Clé publique : F
Clé secrète : la trappe
39/91
Rivest, Shamir, Adleman
+1977 première instance d’un cryptosystème à clé publique : RSA.

40/91
Rivest, Shamir, Adleman
+1977 première instance d’un cryptosystème à clé publique : RSA.

40/91
Rivest, Shamir, Adleman

+1977 première instance d’un cryptosystème à clé publique : RSA.

RSA
Soient p et q deux nombres premiers et n = pq et deux entiers e, d tels
que ed = 1 mod φ(n) . L’instance F(n,e) : Z/nZ → Z/nZ qui à un
élément x fait correspondre son exponentiation modulaire xe mod p .
F est bien à sens unique, difficulté basée sur la factorisation de n .
La trappe est la connaissance de p,q et d.

Chiffrement x : xe mod n
Déchiffrement y : yd mod n

40/91
Complexités modulo N

+Tous les calculs se font modulo N ⇒ les opérandes sont toutes


majorées par N !

Complexité des algos naı̈fs


Addition : O(log(N))
Multiplication : O(log(N)2 )
Division : comment divise-t-on modulo N ?
+Les complexités sont au plus quadratique en la taille de N mais que
coûte le calcul d’un inverse ?

41/91
Complexités modulo N

+Tous les calculs se font modulo N ⇒ les opérandes sont toutes


majorées par N !

Complexité des algos naı̈fs


Addition : O(log(N))
Multiplication : O(log(N)2 )
Division : comment divise-t-on modulo N ?
+Les complexités sont au plus quadratique en la taille de N mais que
coûte le calcul d’un inverse ?

+Coût du calcul du PGCD ?

41/91
Calculer le PGCD : définition

Par définition on a

Y
PGCD(a, b) := pmin(vp(a)vp(b))
p∈P

+Dépend de la factorisation de a et de b
+Le meilleure algorithme permettant de factoriser des entiers est de
complexité sous-exponentielle. Le problème de la factorisation est
donc assez difficile.
+Si l’on ne connaissait pas d’autres algorithmes permettant le calcul
du PGCD il en serait de même...

42/91
Calculer le PGCD : Euclide

On cherche le plus grand diviseur entre 14 et 8.


+On a 14 = 8 + 6 ainsi comme on cherche d divisant 8 et 14 il suffit de
chercher d divisant 8 et 6, on recommence le procédé avec 8 et 6 etc.
+On s’arrête dès que l’un des entiers considéré est nul.

Lemmes immédiats
Si d divise a et c et que (a + b) = c alors d divise b.
Le pgcd d’un élément a 6= 0 et 0 est a.

43/91
Calculer le PGCD : dans un anneau Euclidien
L’anneau A possède donc une fonction d permettant d’ordonner les
éléments de cet anneau et de définir une division. Pour calculer le
pgcd de deux éléments a et b tels que d(b) < d(a).

Algorithme d’Euclide
Posant r0 = a et r1 = b on calcule jusqu’à obtenir un reste nul .
1 si r1 6= 0 on a r0 = r1 q1 + r2 avec d(r2 ) < d(r1 )
2 si r2 =6 0 on a r1 = r2 q2 + r3 avec d(r3 ) < d(r2 )
..
.
n − 1 si rn−2 6= 0 on a rn−2 = rn−1 qn−1 + rn avec d(rn ) < d(rn−1 )
n si rn−1 6= 0 on a rn−1 = rn qn + rn+1 avec rn+1 = 0 et d(rn+1 ) < d(rn )

PGCD par Euclide


Le dernier reste non nul rn est égal au pgcd de a et b .
44/91
Algorithme d’Euclide Étendu
La démonstration du théorème de Bachet Bézout permet de déduire
une formule de récurrence pour calculer les coefficients de Bézout de
a et b et le pgcd(a, b). Cette formule se traduit sous la forme d’un
algorithme :
Algorithme d’Euclide étendu
Initialisation : 
u0 = 1, v0 = 0, r0 = a
u1 = 0, v1 = 1, r1 = b

Calcul i > 1 tant que ri 6= 0 :


qi = ri−1 div ri
ui+1 = ui−1 − qi ui , vi+1 = vi−1 − qi vi , ri+1 = ri−1 − qi ri
+Représentation matricielle :
    
ui+1 vi+1 ri+1 −qi 1 ui vi ri
=
ui vi ri 1 0 ui−1 vi−1 ri−1
45/91
Algorithme d’Euclide Étendu

Exemple : a = 1234 et b = 896.

i ri ri+1 qi ui ui+1 vi vi+1


0 1234 896 ∗ 1 0 0 1


u0 = 1, v0 = 0, r0 = a
u1 = 0, v1 = 1, r1 = b

46/91
Algorithme d’Euclide Étendu

Exemple : a = 1234 et b = 896.

i ri ri+1 qi ui ui+1 vi vi+1


0 1234 896 ∗ 1 0 0 1
1 896 338 1 ∗ ∗ ∗ ∗

Pour i > 1:
qi = ri−1 div ri , ri+1 = ri−1 mod ri

46/91
Algorithme d’Euclide Étendu

Exemple : a = 1234 et b = 896.

i ri ri+1 qi ui ui+1 vi vi+1


0 1234 896 ∗ 1 0 0 1
1 896 338 1 0 1 1 −1

    
ui+1 vi+1 ri+1 −qi 1 ui vi ri
=
ui vi ri 1 0 ui−1 vi−1 ri−1

46/91
Algorithme d’Euclide Étendu
Exemple : a = 1234 et b = 896.

i ri ri+1 qi ui ui+1 vi vi+1


0 1234 896 ∗ 1 0 0 1
1 896 338 1 0 1 1 −1
2 338 220 2 1 −2 −1 3
3 220 118 1 −2 3 3 −4
4 118 102 1 3 −5 −4 7
5 102 16 1 −5 8 7 −11
6 16 6 6 8 −53 −11 73
7 6 4 2 −53 114 73 −157
8 4 2 1 114 −167 −157 230
9 2 0 2 −167 448 230 −617
La relation de Bézout :

1234 × (−167) + 896 × 230 = 2

46/91
Nombre de boucles : le pire cas (pour une taille
donnée) !

+Quand on ne peut pas faire mieux qu’utiliser la version simple


d’Euclide (géométrique) : dans ce cas la division euclidienne est
remplacée par une soustraction.
Exemple : pour a = 13 et b = 8 :

13 = 1×8+5
8 = 1×5+3
5 = 1×3+2
3 = 1×2+1
2 = 2×1+0

+ Le nombre de calcul est maximal car les quotients sont tous (sauf le
dernier) réduits à 1.

47/91
Nombre de boucles : le pire cas (pour une taille
donnée) !
+Quand on ne peut pas faire mieux qu’utiliser la version simple
d’Euclide (géométrique) : dans ce cas la division euclidienne est
remplacée par une soustraction.
Plus généralement : cette propriété est vraie pour tout couple
Fn+2 , Fn+1 de nombres de Fibonaci successifs
13

3 2

+ Par définition , ces couples sont les pires cas . 47/91


Nombre de boucles : les nombres de Fibonacci

Définition

 F0 = 0
F1 = 1
Fn+2 = Fn+1 + Fn

Propriétés
√ √
(φn −φ̂n ) 1+ 5 1− 5
Fn = √
5
avec φ = 2 et φ̂ = 2 .
Le calcul de pgcd(Fn+2 , Fn+1 ) par l’algorithme d’Euclide demande
exactement n itérations .
De plus pgcd(Fn+2 , Fn+1 ) = 1

48/91
Nombre de boucles : le cas général

Théorème
Soit a > b > 0. Si le calcul pgcd(a, b) demande n itérations alors

a > Fn+2 et b > Fn+1

Corollaire (Théorème de Lamé)


n + 2 < O(log(a)) et n + 1 < O(log(b))

+ Le théorème de Lamé donne la meilleure constante possible dans


le O (5 dans le cas des chiffres décimaux).
+ On se rappellera que le nombre d’itérations est de l’ordre de log(b)
i.e la taille (le nombre de chiffres) de la plus petite opérande.
49/91
Algorithme d’Euclide : résultat final

Retour sur la complexité de l’algorithme d’Euclide


Pour a > b > 0
Il y a O(log(b)) itérations de la boucle.
Le coût d’une boucle est majoré par celui de la division
En notant ti = log(ri ) la taille de ri le coût d’une boucle est
ri
O(log( ) log(ri+1 )) = ci ti+1 (ti − ti+1 )
ri+1

50/91
Algorithme d’Euclide : résultat final
Retour sur la complexité de l’algorithme d’Euclide
Pour a > b > 0
Il y a O(log(b)) itérations de la boucle.
Le coût d’une boucle est majoré par celui de la division
En notant ti = log(ri ) la taille de ri le coût d’une boucle est
ri
O(log( ) log(ri+1 )) = ci ti+1 (ti − ti+1 )
ri+1

En notant n le nombre de boucles, le coût total du pgcd est majoré par


la somme suivante (rappel : ti > ti+1 )

n
X n
X
ci ti+1 (ti − ti+1 ) 6 ct1 (ti − ti+1 ) 6 ct1 t0 6 O(log(a) log(b))
i=0 i=0
+complexité quadratique en la taille des entrées
50/91
Exponentiation modulaire

entrée a ∈ {0, . . . , n − 1} et k ∈ N.
sortie ak mod n

Algorithme Naı̈f (pour ne pas dire crétin)


on fait n multiplications de a dans Z et on réduit mod n
complexité proportionnelle à k pas log(k) ⇒ exponentielle
on utilise l’arithmétique sur les grands entiers pour réduire à la fin
⇒ il faut absolument penser à réduire pendant les calculs

+dans la suite on oublie le caractère modulaire, on commence par


s’occuper de l’exposant k .

51/91
Exponentiation : square-and-multiply

Pour calculer une exponentiation, réfléchissons (tk = `(k) − 1)

k k0 20 +···+ki 2i +···+ktk 2tk


a =a
avec ki ∈ {0, 1} en particulier on a deux cas possibles pour k0 .

52/91
Exponentiation : square-and-multiply

Pour calculer une exponentiation, réfléchissons (tk = `(k) − 1)

Si k0 = 0 (i.e. k est pair) alors

0 +···+k 2tk 1 +···+k 2tk


ak02 tk
= ak12 tk

0 +···+k 2tk −1 )
= a2(k12 tk

k1 20 +···+ki 2i+1 +···+ktk 2tk −1 2


= (a ) Square

52/91
Exponentiation : square-and-multiply

Pour calculer une exponentiation, réfléchissons (tk = `(k) − 1)

Si k0 = 1 (i.e. k est impair) alors

0 +···+k 2i +···+k 2tk 1 +···+k 2tk


ak02 i tk
= a1+k12 tk

k1 21 +···+ktk 2tk
= (a )·a Multiply

52/91
Exponentiation : square-and-multiply
Pour calculer une exponentiation, réfléchissons (tk = `(k) − 1)

Square and Multiply dépendant de la valeur de k0 :


Ptk −1 i
(a i=0 ki+1 2 2 ) Square si k0 = 0

Ptk i
(a i=1 ki 2 )·a Multiply si k0 = 1
Algorithme récursif (écrire une version séquentielle de cet algorithme
est un bon exercice)
+on ne va faire que log(k) multiplications
+Beaucoup mieux !
52/91
Dans le cas modulaire

On fait les calculs modulo un entier n.


+On peut considérer k ≤ n − 1, pourquoi ?
+On fait tous les calculs modulo n donc toutes les opérandes sont de
taille log(n)

Conclusion
Complexité de l’exponentiation modulaire
O(log(n)M(log(n))) = O(log(n)3 )

53/91
Problèmes algorithmiques / RSA et DLP

Vérifications faciles
Étant donné n, a, b on peut vérifier n = a × b en multipliant !
Étant donné n, a, b, k on peut vérifier facilement b = ak mod n en
calculant une exponentiation modulaire !

Problèmes difficiles correspondants


FACT : Etant donner un grand entier n, donner sa factorisation ?
DLP : Etant donner b, a, n, comment retrouver l’exposant k tel que
b = ak mod n ?
+On ne connaı̂t pas d’algorithme de complexité polynomiale résolvant
ces problèmes !

54/91
Part IV

Implémentation efficace de RSA

55/91
Rivest, Shamir, Adleman

RSA
Basé sur la difficulté de calculer une racine e-ième mod un entier N
de factorisation inconnue
Si on sait factoriser facilement alors ce problème se résout tout aussi
facilement.

56/91
Rivest, Shamir, Adleman

RSA
Soient p et q deux nombres premiers et n = pq . On choisit deux
entiers e, d tels que ed = 1 mod ϕ(n) . L’application

F(n,e) : Z/nZ → Z/nZ définie par x 7→ xe mod n

F est bien à sens unique , difficulté basée sur le calcul de la


racine e-ieme modulaire.
La trappe est la connaissance de d (ou de manière équivalente p
et q).
+on chiffre en faisant xe mod n on déchiffre en calculant yd mod n

Preuve : On a |Z/nZ× | = ϕ(n) = (p − 1)(q − 1) ⇒ ed = 1 + k × ϕ(n)...


Les messages qui ne sont pas inversibles mod n sont dangereux !

56/91
RSA : implémentation chiffrement

+Exponentation modulaire

Square and Multpily


Pl−1 i
Basé sur l’écriture binaire de l’exposant e = i=0 ei 2 :

Pl−1 l−1
i i
Y
e
x =x i=0 ei 2 = xei 2
i=0

+On réduit la complexité de l’exponentiation modulo n à O(log3 (n))


(voir cours précédent).

57/91
RSA : implémentation déchiffrement

+dans ce cas on connaı̂t p et q, idée couper les calculs en deux !

RSA et CRT1
On pré-calcule les valeurs :
up = q × (q−1 mod p) mod n
uq = p × (p−1 mod q) mod n
dp = d mod (p − 1)
dq = d mod (q − 1)
Pour déchiffrer y et obtenir le message x d’origine on utilise le CRT :
1 xp = ydp mod p
2 xq = ydq mod q
3 x = xp up + xq uq mod n

58/91
Théorème chinois des restes

Théorème
Soit m1 et m2 deux éléments de A un anneau euclidien. Si
pgcd(m1 , m2 ) = 1 alors nous avons l’isomorphisme d’anneau

A/m1 A × A/m2 A ' A/(m1 m2 )A

Démonstration existentielle (à lire chez vous) :


Le morphisme d’anneau

φ : A −→ A/m1 A × A/m2 A
e 7−→ (e mod m1 , e mod m2 )

est surjectif.

59/91
Théorème chinois des restes

Théorème
Soit m1 et m2 deux éléments de A un anneau euclidien. Si
pgcd(m1 , m2 ) = 1 alors nous avons l’isomorphisme d’anneau

A/m1 A × A/m2 A ' A/(m1 m2 )A

Démonstration existentielle (à lire chez vous) :


Le noyau de φ est donné par

{e ∈ A tq e = 0 mod m2 et e = 0 mod m2 }

ainsi le noyau est l’ensemble des multiples de m1 et m2 . Comme


pgcd(m1 , m2 ) = 1 on obtient le résultat.

59/91
Théorème chinois des restes

Théorème
Soit m1 et m2 deux éléments de A un anneau euclidien. Si
pgcd(m1 , m2 ) = 1 alors nous avons l’isomorphisme d’anneau

A/m1 A × A/m2 A ' A/(m1 m2 )A

Démonstration constructive:
Comment reconstruire l’élément e dans A/(m1 m2 )A à partir de son
image (e1 , e2 ) dans A/m1 A × A/m2 A ? (l’autre direction est triviale)

59/91
Théorème chinois des restes

Théorème
Soit m1 et m2 deux éléments de A un anneau euclidien. Si
pgcd(m1 , m2 ) = 1 alors nous avons l’isomorphisme d’anneau

A/m1 A × A/m2 A ' A/(m1 m2 )A

Démonstration constructive:
Comment reconstruire l’élément e dans A/(m1 m2 )A à partir de son
image (e1 , e2 ) dans A/m1 A × A/m2 A ? (l’autre direction est triviale)
Pour cela, nous utilisons la relation de Bézout entre m1 et m2 :

um1 + vm2 = 1

59/91
Théorème chinois des restes

Théorème
Soit m1 et m2 deux éléments de A un anneau euclidien. Si
pgcd(m1 , m2 ) = 1 alors nous avons l’isomorphisme d’anneau

A/m1 A × A/m2 A ' A/(m1 m2 )A

Démonstration constructive:
Comment reconstruire l’élément e dans A/(m1 m2 )A à partir de son
image (e1 , e2 ) dans A/m2 A × A/m1 A ? (l’autre direction est triviale)
En notant M = m1 m2 il vient alors

e = e1 vm2 + e2 um1 mod M

59/91
Théorème chinois des restes : algorithme général

On applique récurssivement le procédé de résolution sur les équations


du système. Il faut que pgcd(mi , mj ) = 1 pour i 6= j.

CRT
 ! 

 x = e1 mod m1 
 x = c mod M = m1 m2

 x = e2 
 x = e3 mod m3
mod m2
.. ..

 . 
 .

 

x = ek mod mk x = ek mod mk

60/91
Théorème chinois des restes : exemple sur Z
Soit à résoudre le système

 x = 2 mod 3
x = 3 mod 7
x = 8 mod 19

Les entiers 3, 7 et 19 sont premiers deux à deux. CRT possible.


Initialisation : Calculs :
c←2 c ← c × u × mi + ei × v × M
M←3 M ← mi × M
c ← c mod M
avec umi + vM = 1 (relation de Bézout):
i ei mi u v c M c mod M
1 2 3
2 3 7 1 −2 2 × 1 × 7 + 3 × −2 × 3 = −4 7 × 3 = 21 17
3 8 19 10 −9 17 × 19 × 10 + 8 × −9 × 21 = 1718 19 × 21 = 399 122

Les solutions sont de la forme 122 + 399k pour k ∈ Z.


61/91
CRT et RSA avec p et q de même taille

Lors du déchiffrement, on connaı̂t p et q et l’on doit calculer

x = yd mod n

Cette opération prend ' log(d) log(n)2 ' log(n)3 mais on ne se sert
pas de la connaissance de p et q !
Mais d’après le CRT on a

Z/nZ ' Z/pZ × Z/qZ

62/91
CRT et RSA avec p et q de même taille

Mais d’après le CRT on a

Z/nZ ' Z/pZ × Z/qZ

On peut donc faire les calculs à droite :


mod (p−1) mod (q−1)
xp = yd mod p = yd mod p et xq = yd mod q

et on reconstruit la solution modulo n :

x = xp up + xq uq mod n

Ici on fait ' 2 × log( n)3 ' 14 log(n)3 pour le calcul des exponentiations

et 2 × log( n)2 + log(n) pour la reconstruction.
+log(n)3 >> 14 log(n)3
+Temps d’execution de 2 à 4 fois plus rapide avec le CRT !

62/91
Part V

Corps finis et Applications

63/91
Corps finis : Propriétés

A partir des corps premiers Fp = Z/pZ on veut pouvoir construire des


corps de même caractéristique p mais de cardinal plus grand.

+ On utilise la rupture
Définition
Soit P un polynôme irréductible de degré n

Fpn := Fp[X]/(P)

64/91
Corps finis : Exemple

Théorèmes
Fpn est de cardinal pn .
Pour tout p premier et tout entier n > 0 il existe un polynôme
irréductible de degré n dans Fp .

Exemple : Fp = Z/2Z et P = X 2 + X + 1

F4 = F2 [X]/(X 2 + X + 1)
Si on note ω une racine de P (image de X dans F2 [X]/P) on a :

F4 = {0, 1, ω, ω + 1}

65/91
Corps finis : Exemple
Exemple : Fp = Z/2Z et P = X 2 + X + 1

F4 = F2 [X]/(X 2 + X + 1)
Si on note ω une racine de P (image de X dans F2 [X]/P) on a :

F4 = {0, 1, ω, ω + 1}

Pour calculer la table de multiplication dans F4 on revient au calcul


dans F2 [X]/P :

× 0 1 ω ω+1
0 0 0 0 0
1 0 1 ω ω+1
ω 0 ω ω+1 1
ω+1 0 ω+1 1 ω

65/91
Corps finis : Application

+Applications Crypto Asymétrique

Théorème
Le groupe multiplicatif F× n
pn est cyclique d’ordre p − 1 .

+Il existe un ω ∈ Fpn tel que tous les éléments de F×


pn puissent s’écrire
i
sous la forme ω .
+Ce groupe multiplicatif peut être utilisé comme support de DLP et
donc pour faire de l’échange de clés.

66/91
Corps finis : Application

+Applications Crypto Symétrique


La boite S de AES est définie comme une fonction de F28 dans lui
même avec
F28 = F2 [x]/(x8 + x4 + x3 + x + 1)
et S définie en deux temps : S(x) = A(Inv(x)) + C avec

Inv(x) = x−1 si x 6= 0 et Inv(0) = 0

A est une matrice et C un vecteur (application affine).

67/91
Part VI

Signer un message avec RSA et le DLP

68/91
Signer un message

+La signature permet d’authentifier l’expéditeur d’un message

Problème de l’authentification
Étant donné un message m et sa signature s, on doit être capable de
vérifier l’expéditeur de m à partir de données publiques.

+Les problèmes RSA et DLP peuvent être utilisés à cet usage.

69/91
Signer avec RSA
+La signature permet d’authentifier l’expéditeur d’un message

La signature RSA
Soit N = pq un entier RSA et (e, d) un couple d’exposants de
chiffrement/déchiffrement choisis par l’expéditeur.
L’expéditeur publie N et d
Un message m ∈ (Z/NZ)× envoyé par l’expéditeur aura pour
signature
sm = me mod N
Le destinataire recevra le couple (m, s) et authentifiera l’expéditeur
à partir ses clés publiques (N, d) en vérifiant

m = sdm mod N


ATTENTION il ne faut pas mélanger chiffrement et signature RSA
n’importe comment. 70/91
Fonctions de hachage
Problème signature RSA : la signature est de la taille du message !

Fonction de hachage cryptographique


Une fonction de 0, 1∗ dans [0, 2t − 1] (avec t = 160, 256, 512 etc) est
dite de hachage si elle vérifie
difficile à inverser (reconstruire un message a partir d’une
signature)
difficile de reconstruire un second message de même signature
(seconde préimage)
la probabilité de trouver deux messages de même signature est
très faible (collision)

Exemples : MD5 , SHA1, SHA2 (SHA-256, SHA-512), SHA3 ,...


+Permet de vérifier l’intégrité d’un fichier (paquets linux par exemple)
+Plutôt que signer un message, on signe son empreinte après
application d’une fonction de hachage (compression).
71/91
Signer avec DLP

+Elle repose sur une modification du chiffrement de ElGamal


+Nécessite l’utilisation d’une fonction de hachage de l’ensemble des
messages dans le groupe support du DLP.

La signature DSA sur les corps finis


La génération des clés :
une fonction de hachage H (e.g. SHA1)
p, q deux premiers de tailles respectives 1024 et 160 bits tels que
p − 1 est un multiple de q
g un entier d’ordre q modulo p
un problème DLP : h = gt mod p (le groupe support est d’ordre q)

72/91
Signer avec DLP
+Elle repose sur une modification du chiffrement de ElGamal
+Nécessite l’utilisation d’une fonction de hachage de l’ensemble des
messages dans le groupe support du DLP.

La signature DSA sur les corps finis


L’expéditeur publie les clés publiques (p, q, g, h) et conserve t comme
clé secrète. La fonction de hachage H est aussi une donnée publique.
Pour signer un texte m, l’expéditeur procède comme suite
1 Il choisit un entier km au hasard (pour chaque message )
2 r = (gkm mod p) mod q
3 −1 (H(m) + t × r) mod q
s = km
4 si r et s sont non nuls alors la signature de m est le couple (r, s)
sinon retourner à la première étape.
+ATTENTION km doit vraiment être choisi au hasard ! (voir TD)

72/91
Signer avec DLP

+Elle repose sur une modification du chiffrement de ElGamal


+Nécessite l’utilisation d’une fonction de hachage de l’ensemble des
messages dans le groupe support du DLP.

La signature DSA sur les corps finis


Le destinataire vérifiera l’authenticité de l’expéditeur en vérifiant

v=r mod q

où v est calculé comme suit :


1 u1 = H(m) × s−1 mod q
2 u2 = r × s−1 mod q
3 v = (gu1 hu2 mod p) mod q

72/91
Part VII

RSA dans des cartes bancaires (ancien


protocole B0 utilisé avant 2004)

73/91
Création de la carte bancaire
+La signature RSA permet d’authentifier une transaction

Banque GIE CB

GIE priv
Csec Info
GIE pub

VS=GIEpriv(Info)
Centre de
Contrôle

Info, VS,
Csec, PIN

74/91
Utilisation de la carte bancaire

GIE CB Centre de
Contrôle
GIE priv
GIE pub Csec

Appel contrôle

Vendeur

Transaction
Info, VS, GIE pub
Csec, PIN

75/91
Utilisation de la carte bancaire

Authentification de la carte : le terminal lit Info et VS sur la carte et


vérifie la signature à l’aide de GIEpub.
PIN : le PIN est envoyé à la carte pour calcul en place et
vérification.
Authentification par Csec : appel téléphonique à l’organisme de
contrôle pour vérifier de la présence la clé secrète.

Attaque Serge Humpich (1997, factorisation 32 bits), divulgation
des YES card (2000)

76/91
Part VIII

Une fausse bonne nouvelle idée ?

77/91
OTP par carte bancaire

+CAP (Chip Authentication Protocol) permet une authentification forte

78/91
OTP par carte bancaire
+CAP (Chip Authentication Protocol) permet une authentification forte


Attaque Side-Channel possible ?
78/91
Part IX

Groupes des points rationnels sur


courbes elliptiques

79/91
Rappel sur le DLP

+sécurité basée sur la difficulté de résoudre le problème de calculer


un logrithme discret

On a vu comment utiliser le groupe multiplicatif de:


Corps premiers : Fp = Z/pZ
Corps finis généraux : Fq


Les meilleures attaques connues sont sous-exponentielles pour les
corps premiers. Une attaque de janvier 2013 implique le rejet total du
cas des corps finis généraux de petites caractéristiques.

+Un groupe plus sûr ?

80/91
Courbes elliptiques

+Lieu géométrique !

Sur K = Fpk avec p > 3


Pour a et b dans K vérifiant

∆ := −16(4a3 + 27b2 ) 6= 0

On définit la courbe elliptique Ea,b sur K par l’ensemble des points


(x, y) ∈ K2 vérifiant l’équation:

y2 = x3 + ax + b

+Définition équivalente dans le cas de la caractéristique 3 et 2.

81/91
Courbes elliptiques sur R2

82/91
Courbes elliptiques sur Fp , p = 389, y2 = x3 − x + 1

83/91
Structure de groupe Ea,b = Ea.b ∪ O

84/91
Structure de groupe Ea,b = Ea.b ∪ O

Groupe additif commutatif de la courbe


Soit P1 = (x1 , y1 ), Q = (x2 , y2 ) ∈ Ea,b
Point à l’infini O est l’élément neutre :

P+O =O+P=P

Si x2 = x1 et y2 = −y1 alors P + Q = O
P + Q = (x3 , y3 ) avec

x3 = λ 2 − x1 − x2

y3 = λ(x1 − x3 ) − y1
3x12 +a y2 −y1
et λ = 2y1 si P = Q et λ = x2 −x1 sinon.

+Ne pas oublier de rajouter le point à l’infini pour former le groupe !


84/91
Un exemple concret

On étudie le groupe construit avec K = F11 et E1,6 : y2 = x3 + x + 6.


Pour chaque x ∈ {0, . . . , 10} on cherche à résoudre une équation
quadratique modulo 11. Pour faciliter ce travail, on peut commencer
par lister l’ensemble des carrés dans K.
y z = y2 mod 11
0 0
±1 1
±2 4
±3 9
±4 5
±5 3

85/91
Un exemple concret

On étudie le groupe construit avec K = F11 et E1,6 : y2 = x3 + x + 6.


Pour chaque x ∈ {0, . . . , 10} on cherche à résoudre une équation
quadratique modulo 11. Pour faciliter ce travail, on peut commencer
par lister l’ensemble des carrés dans K.
z

x z = x3 + x + 6 mod 11 11 y
0 6 -1
2 1 8 -1
y z=y mod 11
2 5 1 ±4
0 0
3 3 1 ±5
±1 1
4 8 -1
±2 4
5 4 1 ±9
±3 9
6 8 -1
±4 5
7 4 1 ±9
±5 3
8 9 1 ±3
9 7 -1
10 4 1 ±9

85/91
Un exemple concret
On étudie le groupe construit avec K = F11 et E1,6 : y2 = x3 + x + 6.
Pour chaque x ∈ {0, . . . , 10} on cherche à résoudre une équation
quadratique modulo 11. Pour faciliter ce travail, on peut commencer
par lister l’ensemble des carrés dans K.
z

x z = x3 + x + 6 mod 11 11 y
0 6 -1
1 8 -1
y z = y2 mod 11
2 5 1 ±4
0 0
3 3 1 ±5
±1 1
4 8 -1
±2 4
5 4 1 ±9
±3 9
6 8 -1
±4 5
7 4 1 ±9
±5 3
8 9 1 ±3
9 7 -1
10 4 1 ±9
+12 points rationnels + le point à l’infini = un groupe d’ordre 13, donc
cyclique engendré par tout élément autre que le neutre.
85/91
Exemple concret
Calculons explicitement avec K = F11 , E1,6 : y2 = x3 + x + 6.
Soit P = (2, 7) on veut calculer [2]P = P + P et [3]P .
λ = (3 × 22 + 1)(2 × 7)−1 mod 11
= 2 × 3−1 mod 11
= 2 × 4 mod 11
= 8

[2]P = (82 − 2 − 2 mod 11, 8(2 − 5) − 7 mod 11) = (5, 2)

Pour [3]P on a [3]P = [2]P + P, on calcule l’autre λ


λ = (7 − 2)(2 − 5)−1 mod 11
= 5 × 8−1 mod 11
= 5 × 7 mod 11
= 2

[3]P = (22 − 5 − 2 mod 11, 2(5 − 8) − 2 mod 11) = (8, 3)


86/91
Carrés modulo p, symbole de Legendre

+Etant donné un entier a on ne connaı̂t pas d’algorithme déterministe


qui calcule b tel que a = b2 mod p en temps polynomial (en log p).
+On peut décider qu’un élément est résidu quadratique (un carré
modulo p) en temps polynomial

Définition : Symbole de Legendre



1
   si a est un résidu quadratique (mod p)
a
= −1 si a n’est pas un résidu quadratique (mod p)
p 
0 si p divise a

Propriétés
        
a1 a2 a1 a2 a a (mod p)
= et =
p p p p p

87/91
Carrés modulo p, symbole de Legendre
+Etant donné un entier a on ne connaı̂t pas d’algorithme déterministe
qui calcule b tel que a = b2 mod p en temps polynomial (en log p).
+On peut décider qu’un élément est résidu quadratique (un carré
modulo p) en temps polynomial
Réciprocité quadratique
Soit p et q deux premiers distincts > 2 (le cas p = 2 est trivial)
  (
−1 1 si p ≡ 1 (mod 4)
= ,
p −1 si p ≡ −1 (mod 4)
  (
2 1 si p ≡ ±1 (mod 8)
=
p −1 si p ≡ ±3 (mod 8)
 
   q
p p  si p ≡ 1 (mod 4) ou q ≡ 1 (mod 4)
=
q − q si p ≡ 3 (mod 4) et q ≡ 3 (mod 4)
p

87/91
Structure de groupe pour K = Fq avec q = pk et p > 3

Théorème de Hasse
Soit q = pk .
√ √
q + 1 − 2 q 6 |Ea,b | 6 q + 1 + 2 q

Théorème de structure
(Ea,b , +) ' (Z/d1 Z × Z/d2 Z, +)
où d1 divise d2 et d1 divise q − 1. En d’autres termes, le groupe
construit à partir d’une courbe elliptique est soit cyclique (le cas
d1 = 1), soit le produit de deux groupes cycliques.

+Pour la cryptographie on choisit des courbes elliptiques telles que


(Ea,b , +) soit cyclique (le cas d1 = 1) ou au moins contient un grand
groupe cyclique (Pohlig-Hellman).
88/91
Avantages des courbes elliptiques
Pas d’attaque connue de complexité sous-exponentielle
L’arithmétique peut être rendue très efficiace
Clés plus petites pour des sécurités équivalentes

89/91
Signer avec ECDSA

La signature DSA sur EC


La génération des clés :
une fonction de hachage H (SHA-1, 2)
une courbe C support
un point G d’ordre q un grand premier
un problème DLP : H = [t]G (le groupe support est d’ordre q)

90/91
Signer avec ECDSA

La signature DSA sur EC


L’expéditeur publie les clés publiques (C, G, H) et conserve t comme
clé secrète. La fonction de hachage H est aussi une donnée publique.
Pour signer un texte m, l’expéditeur procède comme suite
1 Soit z les log(q) bits de poids forts de H(m)
2 Il choisit un entier 1 6 km < q au hasard (pour chaque message
3 (x1 , y1 ) = [km ]G
4 r = x1 mod q
5 −1 (z + t × r) mod q
s = km
6 si r et s sont non nuls alors la signature de m est le couple (r, s)
sinon retourner à la première étape.
+ATTENTION km doit vraiment être choisi au hasard !

90/91
Signer avec ECDSA

La signature DSA sur EC


Le destinataire vérifiera l’authenticité de l’expéditeur en vérifiant

v=r mod q

où v est calculé comme suit :


1 Soit z les log(q) bits de poids forts de H(m)
2 u1 = z × s−1 mod q
3 u2 = r × s−1 mod q
4 (x1 , y1 ) = [u1 ]G + [u2 ]H
5 v = x1 mod q

90/91
mais parfois mal utilisées...
+En janvier 2011 , une équipe de hackers allemands ont
démontré qu’une très grand entreprise informatique utilisait des
cryptosystèmes sans les comprendre ... ERROR!

91/91
mais parfois mal utilisées...
+En janvier 2011 , une équipe de hackers allemands ont
démontré qu’une très grand entreprise informatique utilisait des
cryptosystèmes sans les comprendre ... ERROR!

91/91

You might also like