S Améliorer les performances du chiffrage à flot SYND 1
1
S
Améliorer les performances du
chiffrage à flot SYND
2
Sommaire
Principes La méthode actuelle : le SYND La méthode proposée : le XSYND
Sécurité Sécurité théorique Sécurité pratique
Performances
3
S
Les principes Le SYND
4
Le fonctionnement du SYND
Fonctionnement en trois étapes principales : Étape d’initialisation appelée INI Réalisation d’un cycle Étape finale pour chiffrer le message
5
L’initialisation
On utilise : Une clé secrète K de taille r/2 bits Un vecteur initial IV de taille r/2 bits
On applique la fonction Ini pour obtenir e0, un vecteur qui va servir à la première étape de génération du flux La fonction Ini une transformation en trois phases de
Feistel On utilise les fonctions Upd et Out
6
Le cycle de génération de flux
À chaque instant t :
Où B est une matrice aléatoire et θ une fonction qui transforme un vecteur de r bits en un mot régulier de longueur n et de poids w.
Et
Où A est une matrice aléatoire
7
Chiffrement du message
Dernière étape : On effectue un XOR entre chaque m_i et z_i pour
obtenir les messages chiffrés c_i
8
9
S
Les principesLa proposition : le XSYND
10
Les améliorations
Modification de la fonction Ini qui devient Xini : Deux fonctions d’évaluation au lieu de trois sans
perte de sécurité
Modification des fonctions Upd et Out
11
La nouvelle fonction XIni
Toujours la concaténation de K et IV
On applique la nouvelle fonction Upd à ce vecteur que l’on XOR avec K
On applique Out à ce vecteur que l’on XOR avec lui-même pour obtenir e0
12
13
Les nouvelles fonctions Upd et Out
Basé sur le principe du paradigme randomisation puis combinaison : Découpage d’un vecteur en w blocs de b bits (taille
choisie) On applique une fonction f aléatoire (slide suivant) à
chaque bloc puis on combine
14
Les nouvelles fonctions Upd et Out
On divise x en w blocs
On divise la matrice A en w sous-matrices Ai
On prend la xi colonne de la sous-matrice Ai
On fait un XOR de toutes les colonnes ainsi obtenues pour obtenir Upd(x)
15
S
SécuritéLa sécurité théorique
16
La sécurité théorique
2 étapes à valider : Difficulté à trouver x connaissant Upd(x) et Out(x) Prouver que XSYND est un générateur pseudo-
aléatoire.
17
Trouver x - Principe
Construction de A par concaténation de sous-matrices A i
Construction de z à partir de x
Calcul de A . zT
18
Exemple
19
Trouver x
Trouver x : Revient à trouver z
Problème du syndrome
20
XSYND est-il un PRNG ?
Rendre XSYND « non distinguable » Prouver que la fonction g M (z)=M.zT est PR.
Utilisation des théorèmes de Goldreich-Levin Preuve avec théorème 2
21
S
SécuritéLa sécurité pratique
22
La sécurité pratique
Sécurité face aux attaques Complexité des algorithmes
3 attaques possibles : Attaques par linéarisation Attaques des anniversaires (GBA) Attaque de l’Identification Set Decoding (ISD)
23
Rappel de notions
24
Attaques par linéarisation
2 types d’attaques intéressantes pour le XSYND : Bellare-Micciancio Saarinen
25
L’attaque Bellare-Micciancio
Attaque par préimage contre la fonction de hashage XHASH.
But : trouver z tel que z =XHASH (x)
26
L’attaque Saarinen
Attaque contre FSB (fonction de hashage)
But : Réduire le nombre de recherche de collisions ou de préimages
27
Attaque de l’anniversaire généralisé
On cherche à trouver des bouts de mots (mots décimaux) de façon à ce qu’ils soient compris dans les listes et qu’un XOR de ceux-ci donne 0 On prend K listes au hasard (par exemple K=4) On construit deux nouvelles listes en faisant un XOR
deux à deux On cherche deux mots tels que le XOR des deux
mots fasse 0 On construit une nouvelle liste avec la composition
de ces deux mots
28
Information Set Decoding
L’attaque la plus efficace en général
Le but est de trouver un mot valide de longueur n contenant k positions sans erreur k dimension n longueur du mot
On vérifie ce qui a été trouvé à l’aide de l’élimination gaussienne.
29
Récapitulatif sécurité
30
S
PerformancesComparaison des performances avec le
SYND
31
Comparaison avec le SYND
32
Merci de votre attention