OUARDI Aissa ROBUSTESSE DES ALGORITHMES III.1 - E

publicité
OUARDI Aissa
Communications Numériques : la Cryptographie
ROBUSTESSE DES ALGORITHMES
III.1 INTRODUCTION
Les algorithmes de chiffrement sont vulnérables à certaines techniques de cryptanalyse.
On dit qu’un algorithme est meilleur qu’un autre s’il faux fournir plus d’effort pour retrouver
la clef utilisée. Chaque algorithme a un certain degré de sécurité qui dépend de sa philosophie
de conception. Pour faire le bon choix, il faut connaître la robustesse des algorithmes contre
les différentes méthodes d'attaque.
Notons qu'un cryptosystème est cassé si la clef de cryptage est trouvée. Dans certains
cas, le cryptanalyste ne cherche pas à mener une attaque coûteuse contre un cryptosystème si
la clef n’est pas bien sécurisée. Dans ce qui suit, nous supposons que la sécurité de la clef est
assurée.
III.2 ALGORITHMES DE CHIFFREMENT EN CONTINU
Avant de donner les résultats de cryptanalyse des algorithmes de chiffrement en
continu, il vaut mieux préciser quelques notions et outils de cryptanalyse dans ce type
d’algorithmes, notamment les types d’attaque et les critères d’évaluation de la robustesse
d’un générateur (ces algorithmes se basent sur des générateurs pseudo aléatoires).
III.2.1 Complexité linéaire
On note S : séquence infinie s0, s1, s2,…
Sn : séquence finie de longueur ‘n’ : s0, s1, s2,…, sn-1.
La complexité linéaire L(S) de S est définie comme suit:
(i) Si S = 0 0 0……. Æ L(S) = 0
(ii) S’il n’y a pas un LFSR qui peut générer S Æ L(S) = .
(iii) Sinon, L(S) est la longueur du plus petit LFSR qui peut produire S.
Propriétés de la complexité linéaire
Pour tout n 1, si Sn a une longueur ‘n’ alors 0 ≤ L(S n ) ≤ n
1- L(Sn) = 0 si et seulement si Sn = 0 0 0………0.
2- L (Sn) = n si et seulement si n = 0 0 0………. 0 1.
3- Si S est périodique de période N alors L (s) N.
4- L (S ⊕ t) L(S) + L(t) [5].
III.2.2 Algorithme de Berlekamp-Massey
L'algorithme de Berlekamp-Massey est un algorithme efficace pour la détermination de
la complexité linéaire d'une séquence Sn de longueur 'n'. L'algorithme prend ‘n’ itérations. A
la Nème itération, l’algorithme calcule la complexité linéaire de la sous séquence SN.
Algorithme de Berlekamp-Massey
ENTREE: Séquence binaire Sn = s0, s1, s2,……………, sn-1 de longueur n.
SORTIE: La complexité linéaire L(Sn) de Sn, 0 L(Sn) n.
Robustesses des algos en continu
1
OUARDI Aissa
Communications Numériques : la Cryptographie
1. Initialisation :
C(d) = 1, L= 0, m= -1, B(d)= 1, N= 0 ;
2. Tant que (N < n) faire:
2.1. Calculez la prochaine anomalie (discrepancy)
d = (S N +
∑
L
c
i =1 i
S N-i ) mod 2 ;
2.2. Si d = 1 alors faire:
T(d)= C(d) ;
C(d)= C(d) + B(d) * DN-m ;
Si L N/2 alors L= N+1-L, m= N, B(d)=T(d) ;
2.3. N= N+1 ;
3. Return(L).
Si ‘S’ est une séquence binaire infinie d’une complexité linéaire ‘L’ et si ‘t’ est une
sous séquence finie dans ‘S’ de longueur au moins 2L et si l'entrée est la séquence ‘t’, alors
l'algorithme de Berlekamp-Massey (avec le pas 3 modifié pour retourner L et C (D))
détermine un LFSR de longueur L qui produit ‘S’.
Exemple : (algorithme de Berlekamp-Massey) :
Le tableau suivant montre l’exécution de l’algorithme en analysant la séquence binaire
de longueur 9, S9= 0; 0; 1; 1; 0; 1; 1; 1; 0 pour calculer sa complexité linéaire. On trouve
qu’elle est égale à ‘5’ et le LFSR qui génère ‘S’ est ⟨5, 1 + D 3 + D 5 ⟩ .
SN
d
T(D)
0
0
1
1
0
1
1
1
0
0
0
1
1
1
1
0
1
1
1
1+D3
1+D+D3
1+D+D2+D3
1+D+D2+D3
1+D+D2
1+D+D2+D5
C(D)
1
1
1
1+D3
1+D+D3
1+D+D2+D3
1+D+D2
1+D+D2
1+D+D2+D5
1+D3+D5
L
0
0
0
3
3
3
3
3
5
5
m
-1
-1
-1
2
2
2
2
2
7
7
B(D)
1
1
1
1
1
1
1
1
1+D+D2
1+D+D2
N
0
1
2
3
4
5
6
7
8
9
Tableau III.1 – Exemple d’exécution de l’algorithme de Berlekamp Massey.
III.2.3 Attaques par corrélation
Supposant qu’on a ‘n’ LFSRs R1 , R2 , …….,Rn de longueurs L1 , L2 ,…,Ln sont utilisés
dans un générateur à combinaison non linéaire. Si les polynômes de connexion des LFSRs et
la fonction de combinaison ‘f’ sont connus, alors le nombre de différentes clefs possibles du
générateur est ∏i =1 (2 LI − 1) .
n
Supposant qu'il y a une corrélation entre les codons (les bits générés) et la séquence de sortie
de R1 avec la probabilité de corrélation p > ½. Si un segment suffisamment long de codons
est connu, l'état initial de R1 peut être déduit en comptant le nombre de coïncidences entre le
flux et tous les sorties possibles de R1 produites par tous les états initiaux possibles jusqu'à ce
que ce nombre soit conforme à la probabilité de corrélation ‘p’. La recherche de l’état initial
de R1 prend au maximum 2 L1 − 1 test de clef.
Robustesses des algos en continu
2
OUARDI Aissa
Communications Numériques : la Cryptographie
Dans le cas où il y a une corrélation entre le flux généré et toutes les séquences
générées par les LFSRs R1, R2,…, Rn, les états initiaux de tous les LFSR peuvent être
n
déterminés indépendamment en testant au maximums
∑ (2
LI
− 1) états initiaux. Ce nombre est
i =1
beaucoup plus petit que le nombre total de clefs différentes. Donc, les corrélations peuvent
être exploitées.
La fonction de combinaison 'f' devra être soigneusement choisie de sorte qu'il n'y a
aucune dépendance statistique entre les sorties des LFSRs et le flux.
III.2.4 Résultats de cryptanalyse
III.2.4.1 Générateurs à combinaison nom linéaire
a. Générateur de Geffe
La complexité linéaire de ce générateur est L c = L1 .L 2 + L 2 .L 3 + L 3 (les Li sont les tailles
des registres utilisés).
Il est cryptographiquement faible car il est vulnérable à une attaque par corrélation. Si
LFSR 1 et LFSR 2 sont multiplexés par LFSR 3, et si ‘z’ est la sortie du générateur, alors
pour LFSR 1
P ( z = x1 ) = P( x 3 = 1 ou ( x 3 = 0 et x 2 = x1 ))
= p( x 3 = 1) + P( x 3 = 0) ∗ P ( x 2 = x1 )
1 1 1
+ ∗
2 2 2
3
=
4
=
3
4
Même pour LFSR2 : P( z = x 2 ) = .
Aussi, avec l’algorithme du syndrome linéaire, si les connexions sont connues et si le
LFSR1 à une taille ‘n’, alors le système est cassé après l’analyse de N=37*n bits en 896*n
opérations.
L’attaque par corrélation est aussi appliquée au générateur de Geffe généralisé.
b. Générateur à Seuil
Il a une complexité linéaire de L c = L1 ⋅ L 2 + L1 ⋅ L 3 + L 2 ⋅ L 3 . Chaque bit de sortie du
générateur donne un peu d’information sur l’état des LFSR, et le tout tombe sous le coup
d’une attaque par corrélation.
c. Générateur à sommation
n
Ce générateur a une complexité linéaire proche de
∏ (2 L
i
− 1).
i =1
Même ce générateur est vulnérable à l’attaque par corrélation.
III.2.4.2 Générateurs Contrôlés par horloge
a. GSAA
La complexité linéaire de ce générateur est comprise entre :
( L 2 + L3 ) ⋅ 2 L1 −1 < Lc ( x ) ≤ ( L 2 + L3 ) ⋅ 2 L1 .
Robustesses des algos en continu
3
OUARDI Aissa
Communications Numériques : la Cryptographie
Ces générateurs ont des longues périodes et des grandes complexités linéaires. On doit choisir
des longueurs de registres premiers entre eux. Les auteurs ont trouvé une attaque par
corrélation contre LSFR-1 (qui commande l’horloge des autres générateurs), mais elle
n’affaiblit pas le générateur.
b. GSAB
« La complexité linéaire de ce système est approximativement égale à la période.
Aucune redondance de codons évidente n’a été constatée dans ce système ».
c. Générateur de Beth Piper
Si les polynômes de LFSR1 et LFSR 3 sont connues et ont des tailles inférieurs à ‘n’,
alors Zeng et les autres, et en utilisant l’algorithme du syndrome linéaire, ont cassé ce
système en analysant un segment de 37 n bits.
d. Cascade de Gollmann
Si tous les LFSR ont la même taille ‘n’, la complexité linéaire d’un système de ‘k’
LFSR est Lc = n ⋅ (2 n − 1) k −1
Il est vulnérable à une attaque appelée verrouillage. Des analyses plus poussées ont montré
que la suite se rapproche de l’aléatoire quand k grandit.
Tableau récapitulatif
Générateur
Complexité linéaire
Geffe
Gen. à seuil
L c = L 1 .L 2 + L 2 .L 3 + L 3
Gen. à
sommatiuon
GSAA
GSAB
Gollmann
L c = L1 ⋅ L 2 + L1 ⋅ L 3 + L 2 ⋅ L 3 .
Attaque par
corrélation
Oui
Oui
Autres
attaques
Oui
--
Oui
--
--
--
---
-Oui
n
Lc ≈
∏ (2
Li
− 1).
i =1
( L 2 + L3 ) ⋅ 2 L1 −1 < Lc ( x ) ≤ ( L 2 + L3 ) ⋅ 2 L1
Lc ≈ période
Lc = n ⋅ (2 − 1)
n
k −1
Tableau III.2 – Tableau récapitulatif des résultats de cryptanalyse des algorithmes en continu.
Robustesses des algos en continu
4
Téléchargement