Вы находитесь на странице: 1из 29

Chiffrements symtriques

Laurent Fousse
laurent.fousse@imag.fr
19 mars 2010
Laurent Fousse (laurent.fousse@imag.fr) Chiffrements symtriques 19 mars 2010 1 / 28
Plan
1
Linear Feedback Shift Register
Laurent Fousse (laurent.fousse@imag.fr) Chiffrements symtriques 19 mars 2010 2 / 28
Plan
1
Linear Feedback Shift Register
Laurent Fousse (laurent.fousse@imag.fr) Chiffrements symtriques 19 mars 2010 3 / 28
Linear Feedback Shift Registers (LFSR)
Un algorithme pour produire un ux de bits.
Utilis comme un gnrateur de nombre alatoire dans le cadre
des chiffrements par ot additifs.
Laurent Fousse (laurent.fousse@imag.fr) Chiffrements symtriques 19 mars 2010 4 / 28
Exemple dutilisation: E0
E0 est un chiffrement par ot utilis pour les communications
Bluetooth.
Chiffrement par ot binaire additif
4 LFSR de tailles 25, 31, 33 and 39 bits (total: 128).
4 bits dtat interne.
Laurent Fousse (laurent.fousse@imag.fr) Chiffrements symtriques 19 mars 2010 5 / 28
Linear Feedback Shift Registers (Galois setup)
s
m1
s
m2
s
2
s
1
s
0
a
m2
a
m1
a
1
a
2
s

0
= s
m1
s

i
= s
i 1
+s
m1
a
i
for 0 < i < m
Laurent Fousse (laurent.fousse@imag.fr) Chiffrements symtriques 19 mars 2010 6 / 28
Linear Feedback Shift Registers (Galois setup)
Proprit du polynme de rtroaction
P(X) = 1 +a
1
X +a
2
X
2
+. . . +a
m1
X
m1
+X
m
U(X) = s
0
+s
1
X +. . . +s
m1
X
m1
U

(X) = X U(X) mod P(X).


Laurent Fousse (laurent.fousse@imag.fr) Chiffrements symtriques 19 mars 2010 7 / 28
Linear Feedback Shift Registers (Fibonacci setup)
L registres numrots (0, 1, . . . L 1)
chaque clock dhorloge, le contenu du registre 0 est copi dans
la squence de sortie.
le contenu du registre i est dplac dans le registre i 1 pour
1 i L 1.
le nouveau contenu du registre L 1 est le bit de rtroaction,
calcul comme laddition (mod 2) du contenu prcdent dun
certain ensemble x de registres.
Laurent Fousse (laurent.fousse@imag.fr) Chiffrements symtriques 19 mars 2010 8 / 28
Linear Feedback Shift Registers (Fibonacci setup)
(s
0
, s
1
, . . . , s
L1
) tat initial
s
j
= (c
1
s
j 1
+c
2
s
j 2
+. . . +c
L
s
j L
)
C(D) = 1 +c
1
D +c
2
D
2
+. . . +c
L
D
L
Laurent Fousse (laurent.fousse@imag.fr) Chiffrements symtriques 19 mars 2010 9 / 28
LFSR: Exercices
1
Montrer que la sortie dun LFSR est ultimement priodique.
2
Borner la priode de la squence de sortie dun LFSR en fonction
de son nombre de registres.
3
Calculer les squences binaires possibles pour un LFSR dont le
polynme de rtroaction est P(X) = X
4
+X
2
+X +1. Quelles
sont leurs priodes ?
4
Mmes questions avec P(X) = X
4
+X
3
+X
2
+X +1 et
P(X) = X
4
+X
3
+1.
Laurent Fousse (laurent.fousse@imag.fr) Chiffrements symtriques 19 mars 2010 10 / 28
Linear Feedback Shift Registers
Theorem
La squence de sortie dun LFSR L registres est priodique avec
une priode infrieure 2
L
1 (et ce pour tout tat initial).
Laurent Fousse (laurent.fousse@imag.fr) Chiffrements symtriques 19 mars 2010 11 / 28
Polynme primitif
Denition
Un polynme P(X) de degr L > 0 dni sur F
2
est primitif sil est
irrductible et
min
_
i > 0 | X
i
= 1 mod P
_
= 2
L
1
Laurent Fousse (laurent.fousse@imag.fr) Chiffrements symtriques 19 mars 2010 12 / 28
Polynme primitif: Exercices
Montrer quun polynme primitif sur F
2
:
1
a toujours un coefcient constant non nul (a
0
= 0),
2
a toujours un nombre impair de monomes,
3
a au moins un monome de degr impair.
La rciproque est-elle vraie?
Laurent Fousse (laurent.fousse@imag.fr) Chiffrements symtriques 19 mars 2010 13 / 28
Polynme primitif: Exercices
Sur F
2
:
1
Est-ce que X
2
+X +1 est primitif?
2
Montrer que X
6
+X
3
+1 nest pas primitif.
3
Montrer que X
5
+X
3
+X
2
+X +1 est primitif. Quen est-il des
autres polynmes de degr 5?
Laurent Fousse (laurent.fousse@imag.fr) Chiffrements symtriques 19 mars 2010 14 / 28
LFSR de priode maximale
Theorem
Un LFSR L registres a une priode 2
L
1 (la priode maximale) ssi
son polynme de rtroaction est primitif et que ltat initial est non-nul.
Exercice
Le prouver pour un LFSR de Galois.
Laurent Fousse (laurent.fousse@imag.fr) Chiffrements symtriques 19 mars 2010 15 / 28
LFSR de priode maximale
Theorem
Un LFSR L registres a une priode 2
L
1 (la priode maximale) ssi
son polynme de rtroaction est primitif et que ltat initial est non-nul.
Exercice
Le prouver pour un LFSR de Galois.
Laurent Fousse (laurent.fousse@imag.fr) Chiffrements symtriques 19 mars 2010 15 / 28
Srie formelle associe un LFSR
Pour un LFSR de squence de sortie s
0
, s
1
, . . . on dnit la srie
formelle
s(X) =

i =0
s
i
X
i
.
Laurent Fousse (laurent.fousse@imag.fr) Chiffrements symtriques 19 mars 2010 16 / 28
Srie formelle associe un LFSR
Theorem
La squence de sortie (s
i
)
i 0
est produite par un LFSR de Fibonacci
avec polynme de rtroaction f (X) = 1 +c
1
X +. . . +c
L
X
L
si et
seulement si
s(X) =
g(X)
f (X)
o g(X) est un polynme coefcients dans F
2
avec deg(g) < deg(f ).
De plus on peut calculer g(X) avec ltat initial du LFSR:
g(X) =
L1

i =0
X
i
i

j =0
c
i j
s
j
.
Laurent Fousse (laurent.fousse@imag.fr) Chiffrements symtriques 19 mars 2010 17 / 28
Srie formelle associe un LFSR
Preuve
s(X) f (X) =
_
_

i 0
s
i
X
i
_
_
_
L

i =0
c
i
X
i
_
=
L1

i =0
X
i
_
_
i

j =0
c
i j
s
j
_
_
+

i L
X
i
_
_
L

j =0
c
j
s
i j
_
_
Laurent Fousse (laurent.fousse@imag.fr) Chiffrements symtriques 19 mars 2010 18 / 28
Srie formelle associe un LFSR
Preuve
Par dnition on a
s
i
=
L

j =1
c
j
s
i j
donc
s(X) f (X) =
L1

i =0
X
i
_
_
i

j =0
c
i j
s
j
_
_
. .
g(X)
+

i L
X
i
_
_
s
i
+s
i
. .
0
_
_
Laurent Fousse (laurent.fousse@imag.fr) Chiffrements symtriques 19 mars 2010 19 / 28
Srie formelle associe un LFSR
Theorem
Tout squence binaire priodique peut tre gnre par un LFSR.
Laurent Fousse (laurent.fousse@imag.fr) Chiffrements symtriques 19 mars 2010 20 / 28
Srie formelle associe un LFSR
Preuve
Soit s(X) =

i 0
s
i
X
i
la srie formelle associe la squence priodique
(s
i
)
i 0
de priode :
s
i +
= s
i
X

s(X) =

i 0
s
i
X
i +

i 0
s
i +
X
i +
=

i
s
i
X
i
=
1

i =0
s
i
X
i
+s(X)
(X

+1)
. .
f

(X)
s(X) =
1

i =0
s
i
X
i
. .
g

(X)
Laurent Fousse (laurent.fousse@imag.fr) Chiffrements symtriques 19 mars 2010 21 / 28
Srie formelle associe un LFSR
On a montr
s(X) =
g

(X)
f

(X)
=
g(X)
f (X)
o g et f sont premiers entre eux et dnissent un LFSR produisant la
squence (s
i
)
i 0
.
Laurent Fousse (laurent.fousse@imag.fr) Chiffrements symtriques 19 mars 2010 22 / 28
Srie formelle associe un LFSR
1
Dcrire un LFSR de Fibonacci calculant la squence (s
i
)
i 0
o
s(X) =
X
2
+X +1
X
3
+X +1
.
2
Dcrire le LFSR minimal calculant la squence rptant le motif
"101011", i. e.
S = 101011101011101011101011. . .
Laurent Fousse (laurent.fousse@imag.fr) Chiffrements symtriques 19 mars 2010 23 / 28
Attaques contre des LFSR
partir dun certain nombre de bits du ot chiffrant, lalgorithme
de Berlekamp-Massey retrouve le polynme minimal f (X) dun
LFSR qui le gnre.
En supposant que le polynme f a un degr plus petit que L, il est
ncessaire de connaitre 2L bits de la squence pour trouver f .
Lalgorithme de Berlekamp-Massey a une complexit O(L
2
). Il est
possible dutiliser un algorithme plus simple dont la complexit est
O(L
3
).
Laurent Fousse (laurent.fousse@imag.fr) Chiffrements symtriques 19 mars 2010 24 / 28
Relations linaires
Rappel:
s
j
= (c
1
s
j 1
+c
2
s
j 2
+. . . +c
L
s
j L
)
Supposons s
0
, s
1
. . . , s
2L1
connus. On peut crire le systme suivant:
s
L
= (c
1
s
L1
+c
2
s
L2
+. . . +c
L
s
0
)
s
L+1
= (c
1
s
L
+c
2
s
L1
+. . . +c
L
s
1
)
s
L+2
= (c
1
s
L+1
+c
2
s
L
+. . . +c
L
s
2
)
.
.
.
s
2L1
= (c
1
s
2L2
+c
2
s
2L1
+. . . +c
L
s
L1
)
L quations indpendantes avec L inconnues, donc on peut utiliser la
mthode de Gauss.
Laurent Fousse (laurent.fousse@imag.fr) Chiffrements symtriques 19 mars 2010 25 / 28
Algorithme de Berlekamp-Massey
Entre: squence de bits (s
0
, s
1
, . . .) gnrs par un LFSR
Sortie: d et des c
0
, c
1
, . . . , c
d
tels que
c
0
s
t
= c
1
s
t 1
+. . . +c
d
s
t d
pour tout t d.
Principe: calculer des polynmes annulateurs de la squence.
Laurent Fousse (laurent.fousse@imag.fr) Chiffrements symtriques 19 mars 2010 26 / 28
Algorithme de Berlekamp-Massey
Laurent Fousse (laurent.fousse@imag.fr) Chiffrements symtriques 19 mars 2010 27 / 28
Algorithme de Berlekamp-Massey
Exemple sur la squence s
n
= (0, 0, 1, 1, 0, 1, 1, 1, 0).
Laurent Fousse (laurent.fousse@imag.fr) Chiffrements symtriques 19 mars 2010 28 / 28

Вам также может понравиться