La présentation est en train de télécharger. S'il vous plaît, attendez

La présentation est en train de télécharger. S'il vous plaît, attendez

Une tentative de cryptanalyse

Présentations similaires


Présentation au sujet: "Une tentative de cryptanalyse"— Transcription de la présentation:

1 Une tentative de cryptanalyse
HFE, FB & BDD Une tentative de cryptanalyse

2 HFE: histoire HFE ? Hidden Field Equations
Cryptographie à clé publique utilisant des polynômes sur corps finis Matsumoto & Imai: EuroCrypt’88 Patarin: Crypto’95 Patarin: HFE EuroCrypt’96 Intérêts: cryptographie embarquée

3 HFE: principes Principes:
Algorithmes d’extraction des zéros d’un polynôme mono-varié sur corps fini si son degré n’est pas trop élevé Corps fini extension de F2 (F2n), expression possible sous forme SEB (n eqs. à n vars. Booléennes)

4 HFE: exemple Polynôme secret de degré 9 sur F26:
(01111)X1 + (01001)X2 + (01001)X3 + (000011)X4 + (11101)X5 + (110011)X6 + (010111)X8 + (11111)X9 y1=1+x1+x5+x6+x1x2+x1x3+x1x4+x2x3+x2x5+x2x6+x5x6 y2=1+x1+x2+x3+x4+x6+x1x2+x1x5+x1x6+x2x3+x3x4+x4x5+x4x6+x5x6 y3=0+x1+x2+x4+x5+x6+x1x2+x3x6+x4x6+x5x6 y4=0+x1+x2+x3+x1x2+x1x5+x1x6+x2x4+x2x6+x3x5+x3x6+x4x5+x4x6 y5=0+x4+x6+x1x5+x2x5+x2x6+x3x4+x3x5+x3x6 y6=0+x1+x2+x4+x6+x1x2+x1x4+x1x5+x2x5+x3x5+x3x6+x4x5+x4x6

5 HFE: publique/privée Polynôme: clé privée SEB: clé publique
Il doit être (pour le moins) difficile de retrouver la clé privée à partir de la clé publique => Masquage du polynôme original en «brouillant» les pistes

6 HFE: (dé)chiffrement Chiffrement:
Vecteur x de n bits en entrée (texte clair) du SEB => en sortie vecteur y de n bits (texte chiffré) Déchiffrement: «Remonter» y dans le corps F2n et résoudre P(X)-Y=0

7 HFE: challenge HFE sur F280 avec degré 96 HFE est aujourd’hui cassé
Faugère (2002): base de Gröbner. Algorithme F5/2 implanté dans Magma D’autres techniques ? Tentative par BDD (MVY)

8 BDD: histoire Branching Programs Bryant’86
Représentation réduite canonique «efficace en pratique» des FB Utilisation: vérification de circuits, arbre de défaillances, (complexité Booléenne?)…

9 BDD: principes Décomposition des FB: Arbre de décomposition
ex: f(x1,…,xn) = f'(0,x2,…,xn)+f "(1,x2,…xn) Arbre de décomposition Réduction d’arbre (par identification de sous-arbres isomorphes) => Graphe Booléen acyclique Confluence => Représentation canonique => Complexité Booléenne

10 BDD: exemple 1 Arbre de Vérité 1 1 BDD BDD irréductible

11 BDD: manipulation Algorithme de «composition» de BDD pour les opérateurs usuels: somme, produit, etc

12 BDD, HFE Résolution HFE par BDD: BDD de chaque Ei R0=1 Pour i=1..n
Ri=Ri-1.Ei Lire le résultat dans Rn

13 BDD, HFE: mesures GF2(24) Degre 2304
Vecteur entrant Vx : Vecteur sortant Vy : Equation 1 : 0s nodes Equation 2 : 0s nodes Equation 3 : 0s nodes Equation 4 : 0s nodes Equation 5 : 0s nodes Equation 6 : 0s nodes Equation 7 : 0s nodes Equation 8 : 0s nodes Equation 9 : 0s nodes Equation 10 : 1s nodes Equation 11 : 1s nodes Equation 12 : 1s nodes Equation 13 : 1s nodes Equation 14 : 1s nodes Equation 15 : 1s nodes Equation 16 : 1s nodes Equation 17 : 1s nodes Equation 18 : 1s nodes Equation 19 : 2s nodes Equation 20 : 2s nodes Equation 21 : 2s nodes Equation 22 : 2s nodes Equation 23 : 2s nodes Equation 24 : 2s nodes Eq. 1 : 2s nodes Res. 1 : 3s 2s nodes Eq. 2 : 3s nodes Res. 2 : 4s 3s nodes Eq. 3 : 4s nodes Res. 3 : 7s 6s nodes Eq. 4 : 7s nodes Res. 4 : 11s 9s nodes Eq. 5 : 11s nodes Res. 5 : 13s 11s nodes Eq. 6 : 13s nodes Res. 6 : 14s 12s nodes Eq. 7 : 14s nodes Res. 7 : 15s 13s nodes Eq. 8 : 15s nodes Res. 8 : 16s 14s nodes Eq. 9 : 16s nodes Res. 9 : 16s 14s nodes Eq. 10 : 16s nodes Res. 10 : 16s 14s nodes Eq. 11 : 16s nodes Res. 11 : 16s 14s nodes Eq. 12 : 16s nodes Res. 12 : 16s 14s nodes Eq. 13 : 16s nodes Res. 13 : 16s 14s nodes Eq. 14 : 16s nodes Res. 14 : 17s 14s nodes Eq. 15 : 17s nodes Res. 15 : 17s 14s nodes Eq. 16 : 17s nodes Res. 16 : 17s 14s nodes Eq. 17 : 17s nodes Res. 17 : 17s 14s nodes Eq. 18 : 17s nodes Res. 18 : 17s 14s nodes Eq. 19 : 17s nodes Res. 19 : 17s 14s nodes Eq. 20 : 17s nodes Res. 20 : 17s 14s nodes Eq. 21 : 17s nodes Res. 21 : 17s 14s nodes Eq. 22 : 17s nodes Res. 22 : 17s 14s nodes Eq. 23 : 17s nodes Res. 23 : 17s 14s nodes Eq. 24 : 17s nodes Res. 24 : 17s 14s nodes Pure time : 14 Vecteur entrant Vx : Voici la solution No : Biggest bdd : nodes Biggest equation : nodes Pure CPU time : seconds Elapsed CPU Time : seconds

14 BDD, HFE: mesures

15 BDD: complexité Quels sont ces BDDs générés ?
Ils ne sont pas maximaux mais presque À quoi les maximaux ressemblent-ils ? Connu: ils sont de taille O(2n/n) Combien sont-ils ?

16 BDD: maximaux On sait: r0(f)=1 and rn(f)=1 or 2 ri+1(f)  2ri(f)
 ri(f)  inf(2i,22n-i)

17 BDD: maximaux Hauteur d’inflexion: unique entier h(n):
2h(n)-1  22n-(h(n)-1) and 2h(n) ≥ 22n-h(n) Pair d’inflexion (2h(n)-1,22n-h(n))

18 BDD: maximaux n0, C(n)  2h(n)  1  card(Hn) ?
1 3 2 5 9 4 13 21 6 37 7 53 8 85 149 10 277 11 533 n0, C(n)  2h(n)  1  card(Hn) ? Quelles sont ces fonctions ?

19 BDD: maximaux Parties supérieure & inférieure fixées:
arbre binaire complet toutes les FB Qu’y a t-il en zone d’inflexion ?

20 BDD: inflexion De combien de façon peut-on connecter 2h(n)-1 nœuds à 22n-h(n) ? Plus généralement de combien de façon C(k,m) peut-on connecter k nœuds à m nœuds (k et m respectent la construction BDD) ?

21 BDD: connexions Théorème: C(k,m) vérifie ou if then else C(k,m)=0
C(1,1)=1, C(1,2)=2 if then else C(k,m)=0 k!C(k,m) = (m2-k+1)(k-1)!C(k-1,m) + m(2m-1)(k-1)!C(k-1,m-1) + m(m-1)(k-1)!C(k-1,m-2)

22 BDD: nombres 1 2 3 4 5 6 7 8 18 72 123 126 84 36 9 12 248 1322 3864 7672 11296 12834 300 4800 32550 137900 423860 120 7800 121212 5880 235200 1680 248640 136080 10 30240 11 665280 13 14 15 16

23 BDD: nombres Cas particulier:
Si n=a+2a l’inflexion est (22a-1, 22a) alors le nombre de BDD est 22a! Sinon Si n=a+b+2a où 0<=b<=2a alors le nombre de BDD est inférieur à 22a+b!

24 FB: Storage Access La fonction SA2a(x0,…,x2a-1,y0,…,ya-1)=xm
où m=y0y1…ya-1 X: état de la mémoire Y: adresse à lire Théorème: SA2a est une fonction dure

25 FB: Twisted Storage Access
SA2a(x0,…,x2a-1,y0,…,ya-1)= SA2a((X),y0,…,ya-1) où (X) est une permutation sur l’ensemble des mots x0…x2a-1 Les Twisted Storage Access sont dures et en nombre 22a!

26 C(p0,p1) x C(p1,p2) x … x C(pn-1,pn)
FB: problèmes ? Dénombrer les FB pour un profil donné C(p0,p1) x C(p1,p2) x … x C(pn-1,pn) Dénombrer les FB pour une complexité donné (dénombrer les profils)

27 HFE: retour ? Exploration des autres modèles de BDD, en particulier les kBDD basés sur d’autres décomposition Booléennes: f(x1,…,xn) = x1.f'(x2,…,xn)+f "(x2,…xn) plus adaptés aux algorithmes basés sur l’algèbre (Buchberger/Gröbner)


Télécharger ppt "Une tentative de cryptanalyse"

Présentations similaires


Annonces Google