LFSR PDF
LFSR PDF
LFSR PDF
à rétroaction linéaire
Le registre à décalage à rétroaction linéaire
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
Fonctionnement d’un LFSR binaire de longueur L
La suite (s n )n≥0 produite par un LFSR de longueur L est donc une suite a récur-
rence linéaire homogène d’ordre L . Inversement, ce type de suite peut toujours
être produite par un LFSR.
T ≤ 2L − 1
S’il atteint l’état 0 = (0, . . . , 0) alors les registres successifs sont tous nuls et la
suite elle-même est nulle à partir de là.
16
On peut interpréter aussi la relation entre deux registres successifs en termes
matriciels. Notons
0 1 0 0 ... 0
0 0 1 0 ... 0
.. .. ... ... ... ..
. . .
A=
0 0 ... 0 1 0
0 0 ... 0 0 1
c L c L−1 . . . c 3 c 2 c 1
En considérant les R i comme des vecteurs colonnes, on a
R i +1 = AR i .
Ainsi, on a R n = A n R 0 .
sn X n .
X
s(X ) =
n≥0
Définition 3 Soit un LFSR dont la fonction de rétroaction est donnée par la rela-
tion
f (X ) = 1 + c 1 X + c 2 X 2 + · · · + c L X L .
18
Proposition 2 La suite (s n )n≥0 est produite par un LFSR dont le polynôme de
rétroaction est f (X ) = 1 + c 1 X + c 2 X 2 + · · · + c L X L si et seulement si son
développement en série formelle s(X ) = n≥0 s n X n s’écrit
P
g (X )
s(X ) =
f (X )
où g est un polynôme de F 2 [X ] tel que deg(g ) < deg( f ). En outre, le polynôme
g est entièrement déterminé par l’état initial du registre :
L−1 i
i
X X
g (X ) = X ci − j s j .
i =0 j =0
Démonstration –
L
X
On a: g (X ) = s(X ) f (X ). Soit, pour tout i ≥ 0 gi = si − j c j .
j =0
Les formules qui se déduisent de cette équation impliquent que g est un polynôme
à partir du rang L . 19
Afin d’obtenir une forme canonique de la série génératrice de (s n )n≥0 , on définit
le polynôme de rétroaction minimal de la suite (ou du registre) : c’est un
diviseur de f (X ), qui de plus est le polynôme de plus bas degré parmi les
polynômes de rétroaction de tous les LFSRs possibles qui générent la suite (s n )n≥0 .
Définition 4 Soit (s n )n≥0 une suite binaire à rétroaction linéaire d’ordre L dont
l’état initial est non nul. Son polynôme de rétroaction minimal est l’unique polynôme
unitaire f 0 de F 2 [X ] tel qu’il existe g 0 ∈ F 2 [X ], avec deg(g 0 ) < deg( f 0 ) et
pg cd (g 0, f 0) = 1, vérifiant
g 0(X )
s(X ) =
f 0(X )
La complexité linéaire du LFSR produisant la suite (s n )n≥0 , notée Λ(s), est alors
égale au degré de f 0 .
En clair, la complexité linéaire d’un LFSR produisant une suite (s n )n≥0 est
la longueur du plus petit LFSR permettant d’engendrer (s n )n≥0 .
Exemple Soit (s n )n≥0 la suite produite par le LFSR suivant :
f (X ) = X 10 + X 7 + X 4 + X 3 + X + 1.
Soit g le polynôme déterminé par l’état initial du registre :
9 n
n
c n−i s i = X 7 + X + 1
X X
g (X ) = X
n=0 i =0
La série génératrice de (s n )n≥0 est :
X ng (X ) X7+ X +1 1
s(X ) = sn X = = 10 7 4 3
= 3
.
n≥0 f (X ) X + X + X + X + X + 1 X + 1
On a donc f 0 (X ) = X 3 + 1, et (s n )n≥0 peut être générée par un LFSR de
longueur 3. La complexité linéaire du LFSR est donc 3. 20
Proposition 3 Si le polynôme de rétroaction minimal du LFSR est primitif et
que son état initial est non nul, alors la suite produite (s n )n≥0 est de période
maximale 2Λ(s) − 1 et est dite suite de longueur maximale.
Démonstration
Les valeurs propres de A sont les racines de f˜. Elles sont toutes distinctes, et
d’ordre 2L − 1, puisqu’elles sont génératrices du groupe cyclique F2L .
Parmi ces propriétés, les plus classiques sont les trois critères de Golomb, pro-
posés par celui-ci en 1982.
21
1. Dans chaque période, le nombre de 0 est approximativement égal au nombre
de 1:
¯ ¯
¯NX −1 ¯
(−1)si ¯ ≤ 1.
¯ ¯
¯
¯ i =0 ¯
2. Une série (de 0 ou de 1) est une succession de bits identiques, maximale (i.e.
encadrée par des bits opposés). Dans chaque période, soit S l’ensemble des
séries; si 2k ≤ |S| < 2k+1 , on trouve |S|/2 séries de longueur 1, |S|/4 séries de
longueur 2, . . . , |S|/2k séries de longueur k , et pour chaque longueur, autant de
séries de 0 que de séries de 1.
NX
−1
C (τ) := (−1)si +si +τ .
i =0
Proposition 4 Dans une suite de longueur maximale 2L − 1, toute suite
(s i , s i +1, . . . , s i +L−1) de L éléments non tous nuls apparaît une et une seule
fois par période.
Démonstration
Démonstration
Démonstration
22
Corollaire 3 Le troisième critère de Golomb est vérifié.
Démonstration
La suite (s i )0≤i ≤N −1 est obtenue par une relation de récurrence linéaire liée au
registre à décalage donné. La suite (s i +τ )0≤i ≤N −1 est aussi obtenue par une
relation de récurrence linéaire liée au même registre à décalage (obtenue après
un décalage de τ).
t i = s i + s i +τ
pour 0 ≤ i ≤ N − 1. D’après le premier corollaire, on a donc, si τ 6= 0
NX
−1 NX
−1
s i +s i +τ
C (τ) := (−1) = (−1)ti = −1.
i =0 i =0
23
L’algorithme de Berlekamp-Massey
On supposera pour simplifier que la suite produite par le LFSR est une suite
de longueur maximale.
a i R i + · · · + a i +L−1R i +L−1 = 0
donc à
(a i + · · · + a i +L−1 A L−1)R i = 0
donc à l’existence d’un polynôme P non nul de degré au plus égal à L −1 tel que
P (A)R i = 0. Par hypothèse, le polynôme caractéristique de A , égal au polynôme
réciproque du polynôme de rétroaction, est irréductible de degré L , donc premier
à P , donc P (A) est inversible. 24
Théorème 1 Soit (s n )n≥0 une suite binaire à récurrence linéaire de complexité
linéaire Λ(s). L’algorithme de Berlekamp-Massey détermine l’unique LFSR de
longueur Λ(s) qui génère (s n )n≥0 à partir de n’importe quelle suite de 2Λ(s)
bits consécutifs de (s n )n≥0 .
25
5.3 Description de l’algorithme
Dans cette direction, on étend la notion de complexité linéaire aux suites finies:
f = 1 + c1 x + · · · + cL xL
(maintenant f n’est plus nécessairement de degré exactement égal à L ), on
dit que (L, f ) engendre s si
L
X
sj = c i s j −i pour tout j = 0, . . . , n − 1.
i =1
Le plus petit L convenable s’appelle la complexité linéaire de s et se note Λ(s).
26
L’algorithme utilise le lemme suivant
Lemme 2 Soit L n la longueur minimale d’un LFSR qui engendre les bits
s 0, s 1, . . . , s n−1 mais qui n’engendre pas s 0, s 1, . . . , s n . Alors la longueur
minimale L n+1 d’un LFSR engendrant s 0 , s 1 , . . . , s n−1 vérifie
L n+1 ≥ max(n + 1 − L n , L n )
27
On peut maintenant décrire l’algorithme.
•Si d k = 1, alors soit m le plus grand entier tel que m < k et Λ(s (m)) < L , et
soit g tel que (Λ(s (m) ), g ) engendre s (m) . Alors
28
Exemple. Appliquons l’algorithme de Berlekamp-Massey à la suite
0110010101
de longueur 10. Voici les résultats fournis par l’algorithme :
k sk dk L f (X ) m g (X )
30
Présentation
f : Fm
2 −→ F2
31
Définitions
On définit également pour deux fonctions f et g la distance qui les sépare par
d ( f , g ) = w t ( f + g ).
Et de manière générale, à tout vecteur binaire u on associe un poids w t (u) qui
est égal au nombre de ses composantes non nulles.
Une fonction booléenne est entièrement caractérisée par sa table de vérité, c’est-
à-dire la liste de tous les éléments de Fm
2 avec les valeurs qu’elle prend en chacun
d’eux.
32
Exemple
33
Forme Algébrique Normale d’une fonction booléenne f .
f (u 1, . . . , u m ) = Q f (u 1, . . . , u m )
pour tout (u 1 , . . . , u m ) ∈ Fm
2 .
34
Remarque 1 Un polynôme Q f de F2 [x 1 , . . . , x m ]/(x 12 + x 1 , . . . , x m
2 + x ) est
m
souvent représenté par un polynôme de F2 [x 1 , . . . , x m ] de degrés partiels au
plus 1 en les x i : degx ≤ 1.
i
Démonstration –
où j k = 0 si i k = 0, j k = 1 sinon. 35
Définition 9 Soit f une fonction booléenne à m variables. On définit sa trans-
formée de Möbius comme la fonction
f ◦ : Fm
2 −→ F2
X
u 7−→ f (v) (mod. 2)
v≤u
avec v ≤ u si et seulement si pour tout i, v i = 1 ⇒ u i = 1.
36
Proposition 6 La Forme Algébrique Normale d’une fonction booléenne f à m
variables est égale à
u u
f ◦(u)x 1 1 . . . x mm
X
Démonstration :
1) m = 1: on a
f (x 1) = f (0)(1 + x 1) + f (1)x 1,
et donc
f (v 1, . . . , v m−1, x m )
= f (v 1, . . . , v m−1, 1)x m + f (v 1, . . . , v m−1, 0)(x m + 1)
= ( f (v 1, . . . , v m−1, 0) + f (v 1, . . . , v m−1, 1))x m + f (v 1, . . . , v m−1, 0)
On a donc bien
X X u u
f (x 1, . . . , x m ) = f (v 1, . . . , v m )x 1 1 . . . x mm
u∈Fm
2
v≤u
38
Proposition 7 L’application qui associe à un polynôme Q de F2 [x 1 , . . . , x m ] de
degrés partiels ≤ 1 la fonction booléenne (u 1 , . . . , u m ) 7−→ Q(u 1 , . . . , u m ) est
un isomorphisme d’espaces vectoriels.
Démonstration –
39
Dans la suite une fonction booléenne f sera souvent confondue avec sa Forme
Algébrique Normale Q f .
40
Pour combiner des LFSRs en vue d’un chiffrement à flot, on utilise dans l’idéal
des fonctions équilibrées , i.e. dont la sortie est uniformément distribuée (ces
fonctions prennent autant de fois la valeur 0 que la valeur 1), de manière à ce que
la suite produite ne soit pas biaisée; on peut éventuellement utiliser une fonction
qui ne soit pas tout à fait équilibrée, pour peu que le biais reste inexploitable.
La suite obtenue par combinaison de LFSRs étant également une suite à récur-
rence linéaire, il est indispensable d’estimer sa complexité linéaire.
41
Proposition 8 Soient (u n )n≥0 et (v n )n≥0 deux suites à récurrence linéaire de
polynômes de rétroaction minimaux respectifs f u et f v . Alors leur somme est
une suite à récurrence linéaire. La complexité linéaire de leur somme vérifie
De plus, dans le cas de l’égalité, la période de leur somme est égale au ppcm
des périodes de (u n )n≥0 et (v n )n≥0 .
42
Démonstration
Λ(uv) ≤ Λ(u)Λ(v)
Dans ce cas, la période de (uv n )n≥0 est égale au produit des périodes de
(u n )n≥0 et (v n )n≥0.
44
Démonstration
g u (X ) g (X )
u n X n = f (X ) et (v n )n≥0, et v(X ) = v n X n = f v (X ) .
P P
On a u(X ) =
u v
Formons uv :
X
(uv)(X ) = (u n v n )X n
45
Une fraction rationnelle h ∈ F2 (X ) se met de manière unique sous la forme
XA i (X )
h(X ) = B (X ) + (1)
i (X − αi )
ni
Lu
g u (X ) X µi
=
f u (X ) i =1 αi X − 1
d’où
Lu Lu
g u (X ) X n
X nX
µi (αi X ) = X µi (αi )n
X X
u(X ) = u n X n = =
n f u (X ) i =1 n n i =1
d’où
Lu
µi (αi )n
X
un =
i =1
De même il existe des éléments ν1 , . . . , νL v de F2L v tels que
Lu
νi (β)n
X
vn =
i =1
où les β1 , . . . , βL v sont les racines inverses de f v .
µi ν j (αi β j )n et
X
Donc on a un v n =
i,j
n n
µi ν j (αi β j X ) = µi ν j (αi β j X )n
X XX X X
uv(X ) = un v n X =
n n i,j i,j n
X µi ν j g uv (X )
= =
i , j 1 − αi β j X f uv (X )
X µi ν j g uv (X )
= ,
i , j 1 − αi β j X f uv (X )
cela revient à dire que
– µi ν j 6= 0;
47
Théorème 3 Soient m LFSRs binaires dont les polynômes de rétroaction sont
primitifs et de degrés L 1 , . . . , L m deux-à-deux premiers entre eux. Alors la
complexité linéaire de la suite produite en combinant ces LFSRs par la fonction
booléenne f à m variables est égale à
L = f (L 1, . . . , L m )
On en déduit donc qu’une fonction de combinaison doit non seulement être équili-
brée, mais aussi avoir un degré le plus élevé possible.
48
Exemple
Le générateur de Geffe est défini par 3 LFSRs dont les polynômes de rétroaction
sont primitifs et de degrés L 1 , L 2 et L 3 deux-à-deux premiers entre eux. Ces
registres sont assemblés par la fonction booléenne
f (x 1, x 2, x 3) = x 1 x 2 + x 2 x 3 + x 3
49
Le générateur de Geffe
f (x 1, x 2, x 3) = x 1 x 2 + x 2 x 3 + x 3 = x 1 x 2 + (x 2 + 1)x 3
50
Ce générateur de Geffe a deux avantages importants.
D’autre part, pour décoder ce dispositif sans savoir la clef, il serait nécessaire de
résoudre un système de n d équations, avec n d = n a + n b + n c (n a , n b , n c
indiquant le nombre de registre de A, B et C respectivement), mais ces équations
sont non-linéaires et la solution du système est difficile.
51
Attaque par corrélation de Siegenthaler
Cette attaque, développée par T. Siegenthaler est de type "diviser pour mieux
régner" : elle consiste à retrouver l’initialisation de chacun des registres indépen-
demment des autres.
52
Problème: pour une suite de sortie s(t) donnée, retrouver la clef qui a permis
de la produire.
f (x 1, x 2, x 3) = x 1 x 2 + (1 + x 2)x 3 = x 1 x 2 + x 2 x 3 + x 3 (mod. 2)
• En répétant l’opération pour les deux autres registres, l’état initial de chaque
LFSR peut être déterminé en environ
2L 1 + 2L 2 + 2L 3 essais
Ce nombre est bien plus petit que le nombre de différentes clefs qui est
environ
2L 1+L 2+L 3 .
53
Théorème 4 Soit f une fonction booléenne de combinaison à m variables. Pour
1 ≤ i ≤ m , on note
p i = P r [ f (X 1, . . . , X m ) = X i ]
où les X i sont m variables aléatoires indépendantes uniformément distribuées
dans F2 . Soient c 1 , . . . , c N N bits de la suite chiffrante. Alors la corrélation αi
entre le chiffré et la sortie du i-ème LFSR, définie par
N
cj s ij
αi =
X
(−1) (−1)
j =1
On a
N N
cj s ij
αi = (−1)c j +s j
X X
(−1) (−1) =
j =1 j =1
Donc l’espérance de αi est donnée par
N
c j +s j ¢
X ¡
E (α) = E (−1)
j =1
On a
P (c j + s j = 0) = P (c j = s j ) = P ( f (X 1, . . . , X m ) = X i ) = p i
D’où
¡ c j +s j ¢
E (−1) = 1P (c j +s j = 0)+(−1)P (c j +s j = ±1) = p −(1−p) = 2p −1
et
E (α) = N (2p − 1)
D’autre part
N
2 ¡X c j +s j ¢2
E (α ) = E (−1)
j =1
N N
c j 0 +s j 0
³¡ ´ ³ ´
c j +s j ¢2 c j +s j
X X
= E (−1) + E (−1) (−1)
j =1 j 6= j 0 =1
N
c j 0 +s j 0
³ ´
c j +s j ¢
X ¡
= N+ E (−1) E (−1)
j 6= j 0 =1
= N + N (N − 1)(2p − 1)2.
La fonction f est indépendante du temps (donc de l’indice j ). Par conséquent les
événements c j + s j et c j 0 + s j 0 sont indépendants.
La variance est égale à
55
On voudrait mener une attaque à clair connu : on connaît un certain nombre de
bits de la suite chiffrante et on voudrait retrouver l’état d’initialisation des registres.
Pour cela, il suffit d’utiliser habilement une éventuelle corrélation entre la sortie
(σ) d’un registre et la sortie (s) de la suite chiffrante: d’où une attaque par cor-
rélation.
56
L’algorithme est alors le suivant :
• Calculer p i ,
Lj
(2L j − 1) essais,
Y X
(2 − 1) +
j,pj =0,5 j,pj 6=0,5
j=1
Des raffinements de cette attaque ont été étudiés par W. Meier et O. Staffelbach,
ainsi que V. Chepyzhov et B. Smeets.
57
Dans un système combinant m LFSR on peut éviter ce type d’attaque en choi-
sissant f non corrélée à l’ordre k pour k petit.