Chiffrement à flot

Transcription

Chiffrement à flot
Introduction
Chiffrement à flot
Alea en crypto
Introduction
Chiffrement à flot
Alea en crypto
Introduction
Chiffrement à flot
Principes
Exemples
Génération d’alea à usage cryptographique
Propriétés requises
BBS
LFSR
Chiffrement à flot
Éric Wegrzynowski
Licence et Master mention informatique, Université de Lille 1
3 avril 2009
Chiffrement à flot
Introduction
Licence et Master mention informatique, Université de Lille 1
Chiffrement à flot
Alea en crypto
Chiffrement à flot
Licence et Master mention informatique, Université de Lille 1
Introduction
Chiffrement à flot
Alea en crypto
Chiffrement symétrique
Introduction
k
Chiffrement à flot
Principes
Exemples
m
?
- E
Alice
Génération d’alea à usage cryptographique
Propriétés requises
BBS
LFSR
Chiffrement à flot
Licence et Master mention informatique, Université de Lille 1
k
c
?
- D
- m
Bob
Chiffrement : Alice chiffre son message m à l’aide de la clé secrète
k,c = E k (m), et envoie le chiffré c à Bob.
Déchiffrement : Bob utilise la même clé k pour déchiffrer c,
m = D k (c).
Principe de Kerkhoffs : les algorithmes de chiffrement E et
déchiffrement D sont connus. Seule la clé k est secrète et nécessite
un échange préalable.
Chiffrement à flot
Licence et Master mention informatique, Université de Lille 1
Introduction
Chiffrement à flot
Alea en crypto
Introduction
Chiffrement à flot
Alea en crypto
Retour sur le masque jetable
Introduction
Système inconditionnellement sûr
dans lequel chaque symbole mi du message clair est combiné à un
symbole aléatoire si
ci = mi + si ,
la suite (si ) n’étant jamais réutilisée.
Chiffrement à flot
Licence et Master mention informatique, Université de Lille 1
Introduction
Chiffrement à flot
Alea en crypto
Chiffrement à flot
Principes
Exemples
Génération d’alea à usage cryptographique
Propriétés requises
BBS
LFSR
Chiffrement à flot
Licence et Master mention informatique, Université de Lille 1
Introduction
Chiffrement à flot
Principes
Principes
Définition
Générateur Pseudo-Aléatoire
Alea en crypto
GPA
Définition
On désigne par chiffrement à flot, ou parfois chiffrement en continu
(stream-cipher en anglais), tout système de chiffrement
(symétrique) dans lequel chaque symbole du texte clair subit une
transformation variable dans le temps.
La transformation que subit chaque symbole mi du texte clair est le
plus souvent une combinaison additive avec un symbole si produit
par un générateur pseudo-aléatoire (GPA).
ci
mi
= mi +si (chiffrement)
= ci −si (déchiffrement)
Un générateur pseudo-aléatoire de symboles (GPA) est un automate
à nombre fini d’états qui à partir de la donnée d’un nombre fini de
symboles, que l’on appelle graine ou germe (seed en anglais)
produit une suite potentiellement illimitée de symboles qui a
l’apparence d’une suite aléatoire.
Formellement, c’est un triplet (Q, Φ, f ) où
I
I
I
Q est un ensemble fini d’états ;
Φ est une fonction (déterministe) de transition qui transforme
l’état de l’automate ;
f est une fonction (déterministe) de sortie Q → Σ qui associe
un symbole à chaque état.
Le germe est un état q0 ∈ Q qui doit être choisi au hasard. La suite
de symboles produite par ce GPA est définie par
z0 = f (q0 )
Dans le cas binaire, + = − = ⊕.
et pour i > 0
La suite des symboles (si ) est appelée suite chiffrante ou masque.
Chiffrement à flot
Licence et Master mention informatique, Université de Lille 1
zi
Chiffrement à flot
= f (qi ).
Licence et Master mention informatique, Université de Lille 1
Introduction
Chiffrement à flot
Alea en crypto
Introduction
Chiffrement à flot
Principes
Principes
Initialisation d’un système de chiffrement à flot
Chiffrement synchrone
Alea en crypto
Synchrone
Le chiffrement est dit synchrone si les symboles produits par le GPA
ne dépendent que de son état interne et non du message à chiffrer.
Dans un système de chiffrement à flot, le germe du GPA est
calculé à partir
I
de la clé k ;
qi
= Φ(qi−1 ), ∀i ≥ 1,
I
et d’un vecteur d’initialisation IV .
zi
= f (qi ), ∀i ≥ 0.
q0 = g (k, IV ).
k
mi
IV
GPA
zi
ci
Fig.: Schéma des systèmes de chiffrement à flot synchrones
Chiffrement à flot
Licence et Master mention informatique, Université de Lille 1
Introduction
Chiffrement à flot
Alea en crypto
Chiffrement à flot
Licence et Master mention informatique, Université de Lille 1
Chiffrement à flot
Introduction
Alea en crypto
Principes
Exemples
Chiffrement asynchrone
Chiffrements par blocs en mode OFB, CFB et CTR
Asynchrone
Peuvent être considérés comme chiffrements à flot . . .
Le chiffrement est dit asynchrone ou auto-synchronisant si les
symboles produits par le GPA ne dépendent que de son état interne
et d’un nombre fixé t de symboles du message à chiffrer.
= Φ(qi−1 , ci−1 , ci−2 , . . . , ci−t ), ∀i ≥ 1,
zi
= f (qi ), ∀i ≥ 0.
. . . en considérant que les symboles du clair sont les blocs.
I
synchrone avec les modes OFB et CTR ;
VI
VI
k
f
mi
m2
Ek
c1
c2
c1
ci
c2
ci
Chiffrement
Chiffrement
I
Ek
Ek
Ek
Ek
m2
Ek
ci
m1
zi
mi
GPA
m1
IV
mi
qi
asynchrone avec le mode CFB.
VI
Ek
m1
m2
c1
Fig.: Schéma des systèmes de chiffrement à flot asynchrones
Chiffrement à flot
Ek
Ek
mi
c2
ci
Chiffrement
Licence et Master mention informatique, Université de Lille 1
Chiffrement à flot
Licence et Master mention informatique, Université de Lille 1
Introduction
Chiffrement à flot
Alea en crypto
Introduction
Exemples
Exemples
A5/1
E0
Chiffrement à flot
Alea en crypto
E0 = système de chiffrement à flot synchrone utilisé dans le
protocole de communication Bluetooth.
A5/1 = système de chiffrement à flot synchrone utilisé par le GSM
dans la plupart des pays européens.
LFSR 1
x_t^1
s_t^1
LFSR 2
x_t^2
s_t^0
LFSR 3
x_t^3
c_t^1
LFSR 4
x_t^4
c_t^0
z_t
b
Fig.: Génération de la suite chiffrante de A5/1
Suite chiffrante produite par quatre LFSR de longueur 25, 31, 33 et
39 et de polynômes de rétroaction :
Suite chiffrante produite par 3 LFSR de longueur 19, 22 et 23 bits
et de polynômes de rétroaction :
P1 (x) = x
19
+x
18
+x
17
+x
14
P1 (x) = x 25 + x 20 + x 12 + x 8 + 1,
P2 (x) = x 31 + x 24 + x 16 + x 12 + 1,
P3 (x) = x 33 + x 28 + x 24 + x 4 + 1,
+ 1,
P4 (x) = x 39 + x 36 + x 28 + x 4 + 1.
P2 (x) = x 22 + x 21 + 1,
P3 (x) = x 23 + x 22 + x 21 + x 8 + 1.
Au t-ième top d’horloge, ces 4 LFSR sont avancés et produisent
chacun un bit xt1 , xt2 , xt3 et xt4 .
La suite chiffrante zt est obtenue par les équations
LFSR initialisés à partir d’une clé secrète de 64 bits et d’une chaı̂ne
de 22 bits.
Sur chacun d’eux, une cellule (un bit) du registre sert à déterminer
un bit b (cellule 11 pour le registre de longueur 19, cellule 12 pour
celui de longueur 22 et cellule 13 pour celui de longueur 23). Ce bit
b est le bit majoritaire de ces trois bits. Chaque LFSR est avancé si
et seulement si le bit de cette cellule coı̈ncide avec b.
La suite chiffrante est obtenue par un ou-exclusif des trois sorties de
LFSR.
Chiffrement à flot
Introduction
zt
= xt1 ⊕ xt2 ⊕ xt3 ⊕ xt4 ⊕ ct0
0
0
0
1
ct+1
= st+1
⊕ ct0 ⊕ ct−1
⊕ ct−1
1
1
0
ct+1
= st+1
⊕ ct1 ⊕ ct−1
1
xt + xt2 + xt3 + xt4 + ct0 + 2ct1
2
0
1
(st+1
, st+1
) =
(le + désigne l’addition des entiers, et b. . .c désigne la partie
entière)
E0 peut utiliser des clés de tailles variables.
Licence et Master mention informatique, Université de Lille 1
Chiffrement à flot
Alea en crypto
Chiffrement à flot
Introduction
Exemples
Exemples
RC4
Algorithmes de RC4
RC4 = système de chiffrement à flot dû à Ron Rivest, couramment
utilisé dans les protocole SSL et WiFi.
RC4 peut utiliser des clés de taille variables jusqu’à 2048 bits ( !).
La description de RC4 n’est officiellement pas publique. La suite
chiffrante est produite à partir d’un tableau S de 256 octets,
initialisé à partir de la clé secrète, et dont l’état évolue au cours de
la production.
Licence et Master mention informatique, Université de Lille 1
Chiffrement à flot
Entrée: clé K de l octets
Sortie: initialisation du tableau S
j ←0
pour i = 0 à 255 faire
S[i] ← i
fin pour
pour i = 0 à 255 faire
j ← j + S[i] + K [i mod l]
échanger S[i] et S[j]
fin pour
i ←0
j ←0
Alea en crypto
Production de la suite
chiffrante
Sortie: un octet de la suite
chiffrante
i ←i +1
j ← j + S[i]
échanger S[i] et S[j]
retourner S[S[i] + S[j]]
les additions sont des additions modulo 256.
Chiffrement à flot
Licence et Master mention informatique, Université de Lille 1
Chiffrement à flot
Licence et Master mention informatique, Université de Lille 1
Introduction
Chiffrement à flot
Alea en crypto
Introduction
Chiffrement à flot
Alea en crypto
Besoins
Introduction
Chiffrement à flot
Principes
Exemples
Nécessité des GPA en cryptographie pour
1. génération de clés ;
2. initialisation (vecteurs IV ) ;
3. identification (défis) ;
Génération d’alea à usage cryptographique
Propriétés requises
BBS
LFSR
Chiffrement à flot
Introduction
4. . . .
Licence et Master mention informatique, Université de Lille 1
Chiffrement à flot
Alea en crypto
Chiffrement à flot
Introduction
Licence et Master mention informatique, Université de Lille 1
Chiffrement à flot
Propriétés requises
Propriétés requises
Constat
Bonnes proriétés statistiques
Théorème
Toute suite produite par un GPA est ultimement périodique.
⇒ ces suites ne sont pas aléatoires.
Chiffrement à flot
Alea en crypto
1. Test de fréquences (répartition équitable entre tous les
symboles) ;
2. Tests de séries sur n symboles (répartition équitable de tous
les motifs de longueur n) ;
3. et de très nombreux autres.
Licence et Master mention informatique, Université de Lille 1
Chiffrement à flot
Licence et Master mention informatique, Université de Lille 1
Introduction
Chiffrement à flot
Alea en crypto
Introduction
Propriétés requises
Propriétés requises
Postulats de Golomb
GPACS
Postulats
Chiffrement à flot
Alea en crypto
Test du Prochain bit
1. dans une période les nombres de 0 et de 1 diffère d’au plus 1 ;
Un GPA de bits passe le test du prochain bit si aucun algorithme
polynomial ne peut prédire le k + 1-ème bit de s en connaissant les
k bits précédents avec une probabilité significativement différente
de 1/2.
2. dans une période la moitié des runs ont une longueur égale à
1, un quart ont une longueur égale à 2, un huitième une
longueur égale à 3, etc.
3. la fonction d’autocorrélation C (t) ne prend que deux valeurs
N · · · C (t) =
N−1
X
(2si − 1)(2si+t − 1) =
i=1
N
K
GPACS
si t = 0
si 1 ≤ t < N
Un GPA est cryptographiquement sûr (GPACS) s’il passe le test du
prochain bit.
où K est un entier compris entre −(N − 1) et N − 1
Chiffrement à flot
Introduction
Licence et Master mention informatique, Université de Lille 1
Chiffrement à flot
Alea en crypto
Chiffrement à flot
Introduction
BBS
BBS
Blum-Blum-Shub
Intérêt de BBS
Licence et Master mention informatique, Université de Lille 1
Chiffrement à flot
Alea en crypto
Générateur BBS
Entrée: n = pq entier produit de deux (grands) nombres premiers
congrus à 3 modulo 4. g ∈ Σ = [[1, n − 1]] une graine telle que
pgcd(g , n) = 1. k ≥ 1 le nombre de bits à produire
Sortie: k bits de la suite chiffrante.
x0 ← g 2 (mod n)
pour i variant de 1 a k faire
2
xi ← xi−1
(mod n)
si ← xi (mod 2)
fin pour
retourner s1 , s2 , . . . , sk
Chiffrement à flot
Licence et Master mention informatique, Université de Lille 1
1. BBS est un GPACS,
2. mais très coûteux (opérations complexes pour produire un bit)
3. donc non utilisable en pratique pour le chiffrement à flot.
Chiffrement à flot
Licence et Master mention informatique, Université de Lille 1
Introduction
Chiffrement à flot
Alea en crypto
Chiffrement à flot
Introduction
Alea en crypto
LFSR
LFSR
Polynôme de rétroaction
Définition
Définition
LFSR
On appelle polynôme de rétroaction d’un LFSR de longueur L, le
polynôme
L
X
P(x) = 1 +
ci x i
Un registre à décalage à rétroaction linéaire, désigné par l’acronyme
LFSR (Linear Feedback Shift Register), est la donnée
i=1
où chaque ci est le coefficient utilisé pour le bit i du registre dans le
calcul de la combinaison linéaire.
1. d’un registre de L cases contenant chacune un bit st , . . . ,
st+L−1 ;
2. et d’une fonction de rétroaction calculant un bit st+L par
combinaison linéaire de certains bits du registre
s=
L
X
Exemple
Le LFSR de longueur 4 ci-dessous
cL−i+1 st+i−1 ;
i=1
Au top t d’horloge, le bit st sort du registre, tous les bits sont
décalés d’un rang vers la gauche, et le bit st+L entre dans le registre.
st
st+1
st+2
st+L−2st+L−1
a pour polynôme de rétroaction
P(x) = 1 + x 2 + x 4 .
Propriété
1. degré de P ≤ L ;
2. égalité si le bit le plus à gauche intervient dans la rétroaction.
Chiffrement à flot
Licence et Master mention informatique, Université de Lille 1
Introduction
Chiffrement à flot
Alea en crypto
Chiffrement à flot
Introduction
Licence et Master mention informatique, Université de Lille 1
Chiffrement à flot
LFSR
LFSR
Exemple de suite chiffrante produite par un LFSR
Cycles des états d’un LFSR
Avec le LFSR de longueur 4 et de
polynôme P(x) = 1 + x 2 + x 4 et à
partir de l’état initial 1000, on
obtient
t
qt
st
0 1000
1 0001 1
2 0010 0
3 0101 0
4 1010 0
5 0100 1
6 1000 0
st
st+1
st+2
1
0
0
0
st+L−2st+L−1
En 6 tops d’horloge on est revenu au
point de départ. La suite produite
est périodique de période 6.
Chiffrement à flot
1
Alea en crypto
Suite chiffrante :
s = 1 s = 10 s = 100 s = 1000
s = 10001 s = 100010 s = 100010
Licence et Master mention informatique, Université de Lille 1
Fig.: Cycles des états d’un LFSR de longueur 3 et de polynôme de
rétroaction 1 + x + x 3
Chiffrement à flot
Licence et Master mention informatique, Université de Lille 1
Introduction
Chiffrement à flot
Alea en crypto
Introduction
Chiffrement à flot
LFSR
LFSR
Cycles des états d’un LFSR
Cycles des états d’un LFSR
Fig.: Cycles des états d’un LFSR de longueur 4 et de polynôme de
rétroaction 1 + x 2 + x 4
Fig.: Cycles des états d’un LFSR de longueur 4 et de polynôme de
rétroaction 1 + x + x 3
Chiffrement à flot
Licence et Master mention informatique, Université de Lille 1
Remarque : Certains sommets du graphe ont deux flèches
entrantes. Cela arrive si et seulement si le degré du polynôme de
Introduction
Chiffrement à flot
Alea en crypto
rétroaction est plus petit que la longueur du LFSR.
Alea en crypto
Chiffrement à flot
Introduction
Licence et Master mention informatique, Université de Lille 1
Chiffrement à flot
LFSR
LFSR
Cycles des états d’un LFSR
Cycles des états d’un LFSR
Alea en crypto
Fig.: Cycles des états d’un LFSR de longueur 4 et de polynôme de
rétroaction 1 + x + x 4
Fig.: Cycles des états d’un LFSR de longueur 4 et de polynôme de
rétroaction 1 + x + x 2 + x 4
Chiffrement à flot
Licence et Master mention informatique, Université de Lille 1
Remarque : Ce graphe de transition des états du LFSR ne
présente que deux cycles : l’un de longueur 1 sur l’état nul, et
l’autre de longueur 216 − 1 = 15. C’est le cas si et seulement si le
polynôme de rétroaction est primitif.
Chiffrement à flot
Licence et Master mention informatique, Université de Lille 1
Introduction
Chiffrement à flot
Alea en crypto
Introduction
Chiffrement à flot
LFSR
LFSR
Cycle unique
Sécurité des LFSR
I
Alea en crypto
Les LFSR ne sont pas des GPACS car ils sont prédictibles.
1. Connaissant L bits consécutifs produits par un LFSR de
longueur L et dont on connaı̂t le polynôme de rétroaction, on
peut en déduire le L + 1-ème bit produit.
2. Connaissant 2L bits consécutifs produits par un LFSR de
longueur L dont on ne connaı̂t pas le polynôme de rétroaction,
on peut retrouver ce polynôme par l’algorithme de
Berlekamp-Massey (cf TD).
I
Il ne faut pas utiliser les LFSR seuls pour un usage
cryptographique.
Fig.: Cycle unique des états d’un registre non linéaire de longueur 4
Chiffrement à flot
Licence et Master mention informatique, Université de Lille 1
Chiffrement à flot
Licence et Master mention informatique, Université de Lille 1