Une tentative de cryptanalyse

Slides:



Advertisements
Présentations similaires
Chap.V RSA. I. Rappels Mathématiques La congruence Définition 1 a et b sont congrus modulo n s’ils ont même reste par la division par n. On note a≡b[n]
Advertisements

PRODUCTION ECRITE PREAVANCEE Prodi Pendidikan Bahasa Prancis Semester 6 / FBS - UNNES Dosen Sri Rejeki Urip.
Introduction à la notion de fonction 1. Organisation et gestion de données, fonctions 1.1. Notion de fonction ● Déterminer l'image d'un nombre par une.
SRT 2 NTP. Nécessité ● Les ordinateurs utilisent des horloges à quartz – Peu de précision – Tendance à dériver – Parfois plusieurs secondes par jour.
Nouveaux programmes de Seconde Géométrie dans le plan et dans l'espace.
1 Les circuits combinatoires Chapitre Les Circuits combinatoires Un circuit combinatoire est un circuit numérique dont les sorties dépendent uniquement.
Chapitre 5. Modèles probabilistes continus Variable aléatoire continue et loi de probabilité continue Loi uniforme Loi exponentielle Loi normale Loi normale.
Etat de l’art et recherche bibliographique L3EEA 3ème année – 2016.
Progression2 Organisation et gestion de données CM Séquences Socle commun Compétences du palier 2 ProgrammesObjectifs d’apprentissage OG1.
UE2 - M22 Licence acoustique
La spécialité math en TS
CRYPTOGRAPHIE GENERALE CRYPTOGRAPHIE
Utiliser le calcul littéral pour résoudre ou démontrer
Exercice On considère un Système de contrôle de température composé de: Capteur, ordinateur Le capteur transmit à chaque heure de la journée la température.
Coloration de graphe, backtracking, branch and bound
Information, Calcul, Communication
Les Tableaux Mme DJEBOURI. D.
Algorithmique AU El harchaoui noureddine
Le diagramme de Bohr-Rutherford
Lois fondamentales de l'algèbre de Boole
Algorithmique demander jeu du pendu.
Section 1.1 : Unités du système international (SI)
L’Instruction de Test Alternatif
Algorithme d’Euclide pour le PGCD.
Plan du cours Introduction : création de circuits
Fonctions.
Principes de programmation (suite)
Algorithme de Dichotomie
VI. Tri par tas (Heap sort)
Routage S 2 - Questionnaire N°1 - Réponses
Objectif de la séance Aujourd'hui nous allons travailler en opération.
Science du traitement rationnel de l'information
Représentation binaire
Information, Communication, Calcul
Algorithmique & Langage C IUT GEII S1 Notes de cours (deuxième partie)
TD2 Logique combinatoire F. Touchard Architecture des ordinateurs TD.
PROGRAMMATION SCIENTIFIQUE EN C
Exercice 2 : Soit le polynôme P(x) = 2x4 – 180x² + 640x - 462
Exercice 1°) Soit la fonction f polynôme degré 2
PROGRAMMATION ET ENSEIGNEMENT
CHAPITRE 4: Simplification des fonctions
Chapitre 3 : Caractéristiques de tendance centrale
SDRP & MA Problème du rendez vous : un algorithme probabiliste et une analyse probabiliste 09/11/2018.
Décomposer et encadrer les fractions
Ruoqi He & Chia-Man Hung
Efficacité des algorithmes
B.Shishedjiev - Informatique
7 Contraintes d’intégrité en SQL
Programme financé par l’Union européenne
Faire une stratégie de recherche- Projet d’intégration
Université de la méditerranée
SYSTEME DU PREMIER ORDRE
CHAPITRE 8 Equations - Inéquations
Filière Génie Civil – 2018 Langage C Tableaux – Exercices de révision
Le code de Huffman: est une méthode de compression statistique de données qui permet de réduire la longueur du codage d'un alphabet. Le code de Huffman.
Présentation générale
Réponse à un échelon dans le cas où z = 1
IFT313 Introduction aux langages formels
Outil de description d’une fonction logique:
H. Wertz -- Exécution Symbolique
Opérateurs et fonctions arithmétiques Opérateurs de relation Opérateurs logiques Cours 02.
Le langage C# : Partie 1.
Codes cycliques Hypothèse sur V = vocabulaire source
Introduction à L’Informatique
Arbre binaire.
Pour en moduler l’ouverture et la complexité
Python Nicolas THIBAULT
Type Tableau Partie 1 : Vecteurs
Automatismes 1ere Technologique
spécialité mathématiques Première
Transcription de la présentation:

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

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

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)

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

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

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

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)

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?)…

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

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

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

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

BDD, HFE: mesures GF2(24) Degre 2304 Vecteur entrant Vx : 110101100010111011001110 Vecteur sortant Vy : 111111011001111111100111 Equation 1 : 0s 12283 nodes Equation 2 : 0s 9179 nodes Equation 3 : 0s 10235 nodes Equation 4 : 0s 8185 nodes Equation 5 : 0s 12283 nodes Equation 6 : 0s 7161 nodes Equation 7 : 0s 10229 nodes Equation 8 : 0s 6901 nodes Equation 9 : 0s 9205 nodes Equation 10 : 1s 10235 nodes Equation 11 : 1s 12279 nodes Equation 12 : 1s 12285 nodes Equation 13 : 1s 12281 nodes Equation 14 : 1s 7675 nodes Equation 15 : 1s 10235 nodes Equation 16 : 1s 12285 nodes Equation 17 : 1s 10235 nodes Equation 18 : 1s 10233 nodes Equation 19 : 2s 7285 nodes Equation 20 : 2s 11773 nodes Equation 21 : 2s 9209 nodes Equation 22 : 2s 12283 nodes Equation 23 : 2s 9213 nodes Equation 24 : 2s 10231 nodes Eq. 1 : 2s 12283 nodes Res. 1 : 3s 2s 12283 nodes Eq. 2 : 3s 9179 nodes Res. 2 : 4s 3s 210735 nodes Eq. 3 : 4s 10235 nodes Res. 3 : 7s 6s 589695 nodes Eq. 4 : 7s 8185 nodes Res. 4 : 11s 9s 490549 nodes Eq. 5 : 11s 12283 nodes Res. 5 : 13s 11s 318192 nodes Eq. 6 : 13s 7161 nodes Res. 6 : 14s 12s 199306 nodes Eq. 7 : 14s 10229 nodes Res. 7 : 15s 13s 123517 nodes Eq. 8 : 15s 6901 nodes Res. 8 : 16s 14s 78076 nodes Eq. 9 : 16s 9205 nodes Res. 9 : 16s 14s 46515 nodes Eq. 10 : 16s 10235 nodes Res. 10 : 16s 14s 26830 nodes Eq. 11 : 16s 12279 nodes Res. 11 : 16s 14s 16579 nodes Eq. 12 : 16s 12285 nodes Res. 12 : 16s 14s 11242 nodes Eq. 13 : 16s 12281 nodes Res. 13 : 16s 14s 8080 nodes Eq. 14 : 16s 7675 nodes Res. 14 : 17s 14s 5524 nodes Eq. 15 : 17s 10235 nodes Res. 15 : 17s 14s 3591 nodes Eq. 16 : 17s 12285 nodes Res. 16 : 17s 14s 2307 nodes Eq. 17 : 17s 10235 nodes Res. 17 : 17s 14s 1359 nodes Eq. 18 : 17s 10233 nodes Res. 18 : 17s 14s 883 nodes Eq. 19 : 17s 7285 nodes Res. 19 : 17s 14s 546 nodes Eq. 20 : 17s 11773 nodes Res. 20 : 17s 14s 332 nodes Eq. 21 : 17s 9209 nodes Res. 21 : 17s 14s 234 nodes Eq. 22 : 17s 12283 nodes Res. 22 : 17s 14s 121 nodes Eq. 23 : 17s 9213 nodes Res. 23 : 17s 14s 67 nodes Eq. 24 : 17s 10231 nodes Res. 24 : 17s 14s 25 nodes Pure time : 14 Vecteur entrant Vx : 110101100010111011001110 Voici la solution No 1: 110101100010111011001110 Biggest bdd : 589695 nodes Biggest equation : 12285 nodes Pure CPU time : 14 seconds Elapsed CPU Time : 17 seconds

BDD, HFE: mesures

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 ?

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

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))

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 ?

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

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) ?

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)

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 1017315 120 7800 121212 1003632 5634360 23963760 5880 235200 3791032 37162384 261418626 1680 248640 8280272 141626144 1605962556 136080 10886400 336616560 6156764640 10 30240 8517600 516327840 15590248560 11 3659040 512265600 26837228880 665280 318003840 31638388320 13 112432320 25184839680 14 17297280 12955662720 15 3891888000 16 518918400

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!

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

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!

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)

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)