Vous êtes sur la page 1sur 29

Chiffrements symétriques

Laurent Fousse

laurent.fousse@imag.fr

19 mars 2010

Chiffrements symétriques Laurent Fousse laurent.fousse@imag.fr 19 mars 2010

Plan

  • 1 Linear Feedback Shift Register

Plan 1 Linear Feedback Shift Register

Plan

  • 1 Linear Feedback Shift Register

Plan 1 Linear Feedback Shift Register

Linear Feedback Shift Registers (LFSR)

Un algorithme pour produire un flux de bits.

Utilisé comme un générateur de nombre aléatoire dans le cadre des chiffrements par flot additifs.

Linear Feedback Shift Registers (LFSR) Un algorithme pour produire un flux de bits. Utilisé comme un

Exemple d’utilisation: E0

E0 est un chiffrement par flot utilisé pour les communications Bluetooth.

Chiffrement par flot binaire additif

  • 4 LFSR de tailles 25, 31, 33 and 39 bits (total: 128).

  • 4 bits d’état interne.

Exemple d’utilisation: E0 E0 est un chiffrement par flot utilisé pour les communications Bluetooth. Chiffrement par
Linear Feedback Shift Registers (Galois setup) a 1 a 2 a m−2 a m−1 s 0
Linear Feedback Shift Registers (Galois setup)
a 1
a 2
a m−2
a m−1
s 0
s 1
s 2
s m−2
s m−1
s
=
s
0
m−1
s
=
s i−1 + s m−1 a i for 0 < i < m
i
Linear Feedback Shift Registers (Galois setup) a 1 a 2 a m−2 a m−1 s 0

Linear Feedback Shift Registers (Galois setup)

Propriété du polynôme de rétroaction

P(X) U(X) U (X)

=

=

=

1 + a 1 X + a 2 X 2 +

. . .

+ a m1 X m1 + X m

s 0 + s 1 X +

. . .

+ s m1 X m1

X · U(X)

mod P(X).

Linear Feedback Shift Registers (Galois setup) Propriété du polynôme de rétroaction P ( X ) U

Linear Feedback Shift Registers (Fibonacci setup)

L registres numérotés (0, 1,

. . .

L 1)

à chaque clock d’horloge, le contenu du registre 0 est copié dans la séquence de sortie.

le contenu du registre i est déplacé dans le registre i 1 pour 1 i L 1.

le nouveau contenu du registre L 1 est le bit de rétroaction, calculé comme l’addition (mod 2) du contenu précédent d’un certain ensemble fixé de registres.

Linear Feedback Shift Registers (Fibonacci setup) L registres numérotés ( 0 , 1 , . .

Linear Feedback Shift Registers (Fibonacci setup)

. . . s j = (c 1 s j−1 + c 2 s j−2 +
. . .
s j = (c 1 s j−1 + c 2 s j−2 + . . .
C(D) = 1 + c 1 D + c 2 D 2 +
(s 0 , s 1 ,
, s L−1 ) état initial
+ c L s j−L )
. . .
+ c L D L
Linear Feedback Shift Registers (Fibonacci setup) . . . s j = (c 1 s j−1

LFSR: Exercices

  • 1 Montrer que la sortie d’un LFSR est ultimement périodique.

  • 2 Borner la période de la séquence de sortie d’un LFSR en fonction de son nombre de registres.

  • 3 Calculer les séquences binaires possibles pour un LFSR dont le polynôme de rétroaction est P(X) = X 4 + X 2 + X + 1. Quelles sont leurs périodes ?

  • 4 Mêmes questions avec P(X) = X 4 + X 3 + X 2 + X + 1 et P(X) = X 4 + X 3 + 1.

LFSR: Exercices 1 Montrer que la sortie d’un LFSR est ultimement périodique. 2 Borner la période

Linear Feedback Shift Registers

Theorem

La séquence de sortie d’un LFSR à L registres est périodique avec une période inférieure à 2 L 1 (et ce pour tout état initial).

Linear Feedback Shift Registers Theorem La séquence de sortie d’un LFSR à L registres est périodique

Polynôme primitif

Definition

Un polynôme P(X) de degré L > 0 défini sur F 2 est primitif s’il est irréductible et

min i > 0 | X i = 1

mod P = 2 L 1

Polynôme primitif Definition Un polynôme P ( X ) de degré L > 0 défini sur

Polynôme primitif: Exercices

Montrer qu’un polynôme primitif sur F 2 :

  • 1 a toujours un coefficient constant non nul (a 0 = 0),

  • 2 a toujours un nombre impair de monomes,

  • 3 a au moins un monome de degré impair.

La réciproque est-elle vraie?

Polynôme primitif: Exercices Montrer qu’un polynôme primitif sur F : 1 a toujours un coefficient constant

Polynôme primitif: Exercices

Sur F 2 :

  • 1 Est-ce que X 2 + X + 1 est primitif?

  • 2 Montrer que X 6 + X 3 + 1 n’est pas primitif.

  • 3 Montrer que X 5 + X 3 + X 2 + X + 1 est primitif. Qu’en est-il des autres polynômes de degré 5?

Polynôme primitif: Exercices Sur F : 1 Est-ce que X + X + 1 est primitif?

LFSR de période maximale

Theorem

Un LFSR à L registres a une période 2 L 1 (la période maximale) ssi

son polynôme de rétroaction est primitif et que l’état initial est non-nul.

LFSR de période maximale Theorem Un LFSR à L registres a une période 2 − 1

LFSR de période maximale

Theorem

Un LFSR à L registres a une période 2 L 1 (la période maximale) ssi

son polynôme de rétroaction est primitif et que l’état initial est non-nul.

Exercice

Le prouver pour un LFSR «de Galois».

LFSR de période maximale Theorem Un LFSR à L registres a une période 2 − 1

Série formelle associée à un LFSR

Pour un LFSR de séquence de sortie s 0 , s 1 ,

formelle

s(X) =

i=0

s i X i .

. . .

on définit la série

Série formelle associée à un LFSR Pour un LFSR de séquence de sortie s , s

Série formelle associée à un LFSR

Theorem La séquence de sortie (s i ) i≥0 est produite par un LFSR de Fibonacci
Theorem
La séquence de sortie (s i ) i≥0 est produite par un LFSR de Fibonacci
avec polynôme de rétroaction f(X) = 1 + c 1 X +
. . .
+ c L X L si et
seulement si
g(X)
s(X) =
f(X)
où g(X) est un polynôme à coefficients dans F 2 avec deg(g) < deg(f).
De plus on peut calculer g(X) avec l’état initial du LFSR:
L−1
i
g(X) =
X i
c i−j s j .
i=0
j=0
Série formelle associée à un LFSR Theorem La séquence de sortie (s i ) i≥0 est

Série formelle associée à un LFSR

Preuve

s(X) · f(X)

=

=

i0

s i X i

L

i=0

c i X i

L1

i=0

X i

i

j=0

c ij s j

+ X i

iL

L

j=0

c j s ij

Série formelle associée à un LFSR Preuve s ( X ) · f ( X )

Série formelle associée à un LFSR

Preuve

Par définition on a L s i = c j s i−j j=1 donc  L−1
Par définition on a
L
s i =
c j s i−j
j=1
donc
L−1
i
s(X) · f(X) =
X i 
+ X i  s i + s i
c i−j s j 
i=0
j=0
i≥L
0
g(X)
Série formelle associée à un LFSR Preuve Par définition on a L s i = c

Série formelle associée à un LFSR

Theorem

Tout séquence binaire périodique peut être générée par un LFSR.

Série formelle associée à un LFSR Theorem Tout séquence binaire périodique peut être générée par un

Série formelle associée à un LFSR

Preuve Soit s(X) = i≥0 s i X i la série formelle associée à la séquence
Preuve
Soit s(X) = i≥0 s i X i la série formelle associée à la séquence périodique
(s i ) i≥0 de période ω:
=
s i+ω
s i
s i X i+ω
X ω s(X)
=
s i+ω X i+ω
i≥0
i≥0
ω−1
=
s i X i =
s i X i + s(X)
i≥ω
i=0
ω−1
(X ω + 1)
s(X)
=
s i X i
i=0
f (X)
g (X)
Série formelle associée à un LFSR Preuve Soit s(X) = i≥0 s i X i la

Série formelle associée à un LFSR

On a montré

s(X) =

g (X)

=

f (X)

g(X)

f(X)

g et f sont premiers entre eux et définissent un LFSR produisant la

séquence (s i ) i0 .

Série formelle associée à un LFSR On a montré s ( X ) = g (

Série formelle associée à un LFSR

  • 1 Décrire un LFSR de Fibonacci calculant la séquence (s i ) i0

s(X) =

X 2 + X + 1

X 3 + X + 1 .

  • 2 Décrire le LFSR minimal calculant la séquence répétant le motif "101011", i. e.

S = 101011101011101011101011 .
S = 101011101011101011101011
.

Attaques contre des LFSR

À partir d’un certain nombre de bits du flot chiffrant, l’algorithme

de Berlekamp-Massey retrouve le polynôme minimal f(X) d’un

LFSR qui le génère.

En supposant que le polynôme f a un degré plus petit que L, il est

nécessaire de connaitre 2L bits de la séquence pour trouver f.

L’algorithme de Berlekamp-Massey a une complexité O(L 2 ). Il est

possible d’utiliser un algorithme plus simple dont la complexité est

O(L 3 ).

Attaques contre des LFSR À partir d’un certain nombre de bits du flot chiffrant, l’algorithme de

Relations linéaires

Rappel:

 

s j = (c 1 s j1 + c 2 s j2 +

 

+ c L s jL )

Supposons s 0 , s 1

, s 2L1 connus. On peut écrire le système 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 indépendantes avec L inconnues, donc on peut utiliser la

méthode de Gauss.

Relations linéaires Rappel: s = ( c s + c s + + c s )

Algorithme de Berlekamp-Massey

Entrée: séquence de bits (s 0 , s 1 ,

. .

.) générés par un LFSR

Sortie: d et des c 0 , c 1 ,

. . .

, c d tels que

pour tout t d.

c 0 s t = c 1 s t1 +

. . .

+ c d s td

Principe: calculer des polynômes annulateurs de la séquence.

Algorithme de Berlekamp-Massey Entrée: séquence de bits ( s , s , . . . )

Algorithme de Berlekamp-Massey

Algorithme de Berlekamp-Massey
Algorithme de Berlekamp-Massey

Algorithme de Berlekamp-Massey

Exemple sur la séquence s n = (0, 0, 1, 1, 0, 1, 1, 1, 0).

Algorithme de Berlekamp-Massey Exemple sur la séquence s = ( 0 , 0 , 1 ,
Algorithme de Berlekamp-Massey Exemple sur la séquence s = ( 0 , 0 , 1 ,