Algorithmes et Implémentations Optimisées de Calculs Cryptographiques sur les Courbes Elliptiques Binaires



Documents pareils
Cours Informatique 1. Monsieur SADOUNI Salheddine

Cours d Analyse. Fonctions de plusieurs variables

Cours 02 : Problème général de la programmation linéaire

Informatique Générale

Conception de circuits numériques et architecture des ordinateurs

La mémoire. Un ordinateur. L'octet. Le bit

Recherche dans un tableau

Représentation d un entier en base b

Vers l'ordinateur quantique

Panorama de la cryptographie des courbes elliptiques

Les opérations binaires

Programmation C. Apprendre à développer des programmes simples dans le langage C

Licence Sciences et Technologies Examen janvier 2010

2. RAPPEL DES TECHNIQUES DE CALCUL DANS R

EPREUVE OPTIONNELLE d INFORMATIQUE CORRIGE

INITIATION AU LANGAGE C SUR PIC DE MICROSHIP

LE PRODUIT SCALAIRE ( En première S )

Éléments d'architecture des ordinateurs

Architecture des ordinateurs TD1 - Portes logiques et premiers circuits

Quelques contrôle de Première S

Éléments d informatique Cours 3 La programmation structurée en langage C L instruction de contrôle if

Cryptographie. Master de cryptographie Architectures PKI. 23 mars Université Rennes 1

Calcul matriciel. Définition 1 Une matrice de format (m,n) est un tableau rectangulaire de mn éléments, rangés en m lignes et n colonnes.

Codage d information. Codage d information : -Définition-

Cryptographie RSA. Introduction Opérations Attaques. Cryptographie RSA NGUYEN Tuong Lan - LIU Yi 1

Fonctions de plusieurs variables

IFT1215 Introduction aux systèmes informatiques

I00 Éléments d architecture

Master IMA - UMPC Paris 6 RDMM - Année Fiche de TP

chapitre 4 Nombres de Catalan

GPA770 Microélectronique appliquée Exercices série A

C f tracée ci- contre est la représentation graphique d une

Pour l épreuve d algèbre, les calculatrices sont interdites.

Probabilités sur un univers fini

Système binaire. Algèbre booléenne

Rappels d architecture

DE L ALGORITHME AU PROGRAMME INTRO AU LANGAGE C 51

Exercices - Polynômes : corrigé. Opérations sur les polynômes

Propagation sur réseau statique et dynamique

Corrigé du baccalauréat S Asie 21 juin 2010

Informatique. Les réponses doivent être données en cochant les cases sur la dernière feuille du sujet, intitulée feuille de réponse

Exercices - Fonctions de plusieurs variables : corrigé. Pour commencer

Rappels et compléments, première partie : Nombres complexes et applications à la géométrie

OM 1 Outils mathématiques : fonction de plusieurs variables

INFORMATIONS DIVERSES

DOCM Solutions officielles = n 2 10.

IFT2880 Organisation des ordinateurs et systèmes

Algorithmique et Programmation, IMA

Théorème du point fixe - Théorème de l inversion locale

NOMBRES COMPLEXES. Exercice 1 :

Corrigé des TD 1 à 5

Calculateur quantique: factorisation des entiers

1 Introduction au codage

Cours d analyse numérique SMI-S4

Cryptographie. Cours 3/8 - Chiffrement asymétrique

Du Premier au Second Degré

De même, le périmètre P d un cercle de rayon 1 vaut P = 2π (par définition de π). Mais, on peut démontrer (difficilement!) que

Architecture des ordinateurs Introduction à l informatique

Cours d Algorithmique-Programmation 2 e partie (IAP2): programmation 24 octobre 2007impérative 1 / 44 et. structures de données simples

Structures algébriques

I - PUISSANCE D UN POINT PAR RAPPORT A UN CERCLE CERCLES ORTHOGONAUX POLES ET POLAIRES

3 Approximation de solutions d équations

1. Structure d un programme C. 2. Commentaire: /*..texte */ On utilise aussi le commentaire du C++ qui est valable pour C: 3.

Comment reproduire les résultats de l article : POP-Java : Parallélisme et distribution orienté objet

Chapitre 2. Matrices

Cours 1 : Introduction Ordinateurs - Langages de haut niveau - Application

Chapitre 4: Dérivée d'une fonction et règles de calcul

Baccalauréat ES Pondichéry 7 avril 2014 Corrigé

Calcul différentiel sur R n Première partie

Simulation : application au système bonus-malus en responsabilité civile automobile

4. NOMBRES COMPLEXES ET TRIGONOMÉTRIE

1S Modèles de rédaction Enoncés

6 - Le système de gestion de fichiers F. Boyer, UJF-Laboratoire Lig, Fabienne.Boyer@imag.fr

Chapitre 7. Récurrences

ALGORITHMIQUE ET PROGRAMMATION En C

UEO11 COURS/TD 1. nombres entiers et réels codés en mémoire centrale. Caractères alphabétiques et caractères spéciaux.

Présentation du cours de mathématiques de D.A.E.U. B, remise à niveau

Chapitre 10 Arithmétique réelle

Problèmes arithmétiques issus de la cryptographie reposant sur les réseaux

Cours d Informatique

Partie 1. Professeur : Haouati Abdelali. CPGE Lycée Omar Ibn Lkhattab - Meknès haouaticpge@gmail.com

Cryptologie. Algorithmes à clé publique. Jean-Marc Robert. Génie logiciel et des TI

Complément d information concernant la fiche de concordance

Résolution de systèmes linéaires par des méthodes directes

Le langage C++ est un langage de programmation puissant, polyvalent, on serait presque tenté de dire universel, massivement utilisé dans l'industrie

La programmation linéaire : une introduction. Qu est-ce qu un programme linéaire? Terminologie. Écriture mathématique

Exécution des instructions machine

Compilation (INF 564)

Correction du baccalauréat STMG Polynésie 17 juin 2014

Présentation du langage et premières fonctions

Note de cours. Introduction à Excel 2007

Introduction à l informatique en BCPST

Tout savoir sur le matériel informatique

IN Cours 1. 1 Informatique, calculateurs. 2 Un premier programme en C

Concept de machine virtuelle

Structure de base d un ordinateur

Nouvelles propositions pour la résolution exacte du problème de sac à dos bi-objectif unidimensionnel en variables binaires

Optimisation, traitement d image et éclipse de Soleil

Simulation de variables aléatoires

Transcription:

Jean-Marc ROBERT 1 / 30 Algorithmes et Implémentations Optimisées de Calculs Cryptographiques sur les Courbes Elliptiques Binaires Jean-Marc ROBERT Team DALI/LIRMM, Université de Perpignan, France Journées C2, Dinard, le 11 Octobre 2012

Table des matières Jean-Marc ROBERT 2 / 30 1 Problématique Exemple d'application : Échange de clé de Die-Hellmann Le Produit Scalaire de Points Optimisation AB, AC et AB + CD 2 Implémentations Vue Générale des Implémentations Implémentations du Produit Scalaire : Atteindre l'etat de l'art Optimisations du Produit Scalaire 3 Conclusion

Algorithmes et Implémentations Optimisées Jean-Marc ROBERT 3 / 30 1 Problématique Exemple d'application : Échange de clé de Die-Hellmann Le Produit Scalaire de Points Optimisation AB, AC et AB + CD 2 Implémentations Vue Générale des Implémentations Implémentations du Produit Scalaire : Atteindre l'etat de l'art Optimisations du Produit Scalaire 3 Conclusion

Échange de Clé de Die-Hellmann Jean-Marc ROBERT 4 / 30 Alice et Bob s'accordent sur un groupe (G, +, O) et un point P, générateur du groupe. Alice Bob

Échange de Clé de Die-Hellmann Jean-Marc ROBERT 4 / 30 Alice et Bob s'accordent sur un groupe (G, +, O) et un point P, générateur du groupe. Alice Bob a random() b random()

Échange de Clé de Die-Hellmann Jean-Marc ROBERT 4 / 30 Alice et Bob s'accordent sur un groupe (G, +, O) et un point P, générateur du groupe. Alice Bob a random() Calcule A = a P b random() Calcule B = b P

Échange de Clé de Die-Hellmann Jean-Marc ROBERT 4 / 30 Alice et Bob s'accordent sur un groupe (G, +, O) et un point P, générateur du groupe. Alice a random() envoie A Bob b random() Calcule A = a P envoie B Calcule B = b P

Échange de Clé de Die-Hellmann Jean-Marc ROBERT 4 / 30 Alice et Bob s'accordent sur un groupe (G, +, O) et un point P, générateur du groupe. Alice a random() envoie A Bob b random() Calcule A = a P envoie B Calcule B = b P Calcule K = a B Calcule K = b A Clé secrète Partagée K = a b P

Échange de Clé de Die-Hellmann Jean-Marc ROBERT 4 / 30 Alice et Bob s'accordent sur un groupe (G, +, O) et un point P, générateur du groupe. Alice a random() Calcule A = a P Calcule K = a B envoie A envoie B Bob b random() Calcule B = b P Calcule K = b A Clé secrète partagée K = a b P Le produit scalaire a P est la principale opération.

Jean-Marc ROBERT 5 / 30 Courbe Elliptique sur F 2 m Exemples sur R :

Jean-Marc ROBERT 5 / 30 Courbe Elliptique sur F 2 m Exemples sur R :

Courbe Elliptique sur F 2 m Notre courbe est sur F 2 m (et non R) : E : Y 2 + XY = X 3 + ax 2 + b, a, b F 2 m. Les coordonnées des points appartiennent à F 2 m = F 2 [x]/(f (x) F 2 [x]) Soit A = m 1 i=0 a i x i et B = m 1 i=0 b i x i, a i, b i {0, 1} alors : A + B = m 1 i=0 (a i + b i ) x i, et : A B = A B mod f. Jean-Marc ROBERT 5 / 30

Algorithmes et Implémentations Optimisées Jean-Marc ROBERT 6 / 30 1 Problématique Exemple d'application : Échange de clé de Die-Hellmann Le Produit Scalaire de Points Optimisation AB, AC et AB + CD 2 Implémentations Vue Générale des Implémentations Implémentations du Produit Scalaire : Atteindre l'etat de l'art Optimisations du Produit Scalaire 3 Conclusion

Opérations sur Courbes elliptiques Jean-Marc ROBERT 7 / 30 Les formules pour le doublement et l'addition sont : { x3 = λ 2 + λ + x 1 + x 2 + a y 3 = (x 1 + x 3 )λ + x 3 + y 1 avec λ = y 1+y 2 x 1 +x 2 if P 1 P 2 λ = y 1 x 1 + x 1 if P 1 = P 2

Opérations sur Courbes elliptiques Jean-Marc ROBERT 7 / 30 Les formules pour le doublement et l'addition sont : { x3 = λ 2 + λ + x 1 + x 2 + a y 3 = (x 1 + x 3 )λ + x 3 + y 1 avec λ = y 1+y 2 x 1 +x 2 if P 1 P 2 λ = y 1 x 1 + x 1 if P 1 = P 2 Un doublement nécessite 1 inversion, 2 multiplications, 1 élévation au carré, et 8 additions de polynômes ; Une addition nécessite 1 inversion, 2 multiplications, 1 élévation au carré, et 9 additions de polynômes ;

Jean-Marc ROBERT 8 / 30 Points de Courbes Elliptiques : Coordonnées Projectives Lopez-Dahab ont montré l'intérêt des coordonnées "projectives". Un point en coordonnées anes est transformé comme suit : P = (x, y) devient (X : Y : Z) avec { x = X Z y = Y Z 2

Jean-Marc ROBERT 8 / 30 Points de Courbes Elliptiques : Coordonnées Projectives Lopez-Dahab ont montré l'intérêt des coordonnées "projectives". Un point en coordonnées anes est transformé comme suit : P = (x, y) devient (X : Y : Z) avec { x = X Z y = Y Z 2 Maintenant, on eectue le doublement de la façon suivante : { X1 = X 4 + b Z 4 2.(X : Y : Z) = (X 1 : Y 1 : Z 1 ) avec Y 1 = bz 4 Z 1 + X 1 (az 1 + Y 2 + bz 4 ) Z 1 = X 2 Z 2

Jean-Marc ROBERT 8 / 30 Points de Courbes Elliptiques : Coordonnées Projectives Lopez-Dahab ont montré l'intérêt des coordonnées "projectives". Un point en coordonnées anes est transformé comme suit : P = (x, y) devient (X : Y : Z) avec { x = X Z y = Y Z 2 Maintenant, on eectue le doublement de la façon suivante : { X1 = X 4 + b Z 4 2.(X : Y : Z) = (X 1 : Y 1 : Z 1 ) avec Y 1 = bz 4 Z 1 + X 1 (az 1 + Y 2 + bz 4 ) Z 1 = X 2 Z 2 Les coordonnées PL (Kim-Kim) diminue encore la complexité. Operation Ane Lopez-Dahab Kim-Kim Doublement 2M + 1S + 3R + 1I 4M + 4S + 8R 4M + 5S + 7R Addition 2M + 1S + 3R + 1I 9M + 5S + 14R 8M + 5S + 9R

Jean-Marc ROBERT 9 / 30 L'Algorithme de Produit Scalaire : Double-and-add Soit k = (k n 1,..., k 1, k 0 ) 2 N, P E(F 2 m) k P = ( n 1 i=0 2i k i ) P = (k 0 + 2(k 1 + 2(k 2 + 2(... + 2k n 1 )...)))) P = (k 0 P + 2(k 1 P + 2(k 2 P + 2(... + 2(k n 2 P + 2k n 1 P)...))))

Jean-Marc ROBERT 9 / 30 L'Algorithme de Produit Scalaire : Double-and-add Soit k = (k n 1,..., k 1, k 0 ) 2 N, P E(F 2 m) k P = ( n 1 i=0 2i k i ) P = (k 0 + 2(k 1 + 2(k 2 + 2(... + 2k n 1 )...)))) P = (k 0 P + 2(k 1 P + 2(k 2 P + 2(... + 2(k n 2 P + 2k n 1 P)...)))) On traduit cela dans l'algorithme suivant : 1: Q O. 2: for i de n 1 à 0 do 3: Q 2 Q. 4: if k i = 1 then 5: Q Q + P. 6: end if 7: end for 8: return (Q).

Jean-Marc ROBERT 10 / 30 Amélioration de Double-and-add : NAF et W-NAF. NAF remplace les séquences de 1 consecutifs : soit k N tel que k = 2 i 1, alors (k) 2 = 111...1 } {{ } i fois et on peut écrire : (k) NAF = 100...00 1. } {{ } i+1 chires Cette représentation diminue le nombre moyen de chires non nuls de n/2 à n/3.

Jean-Marc ROBERT 10 / 30 Amélioration de Double-and-add : NAF et W-NAF. NAF remplace les séquences de 1 consecutifs : soit k N tel que k = 2 i 1, alors (k) 2 = 111...1 } {{ } i fois et on peut écrire : (k) NAF = 100...00 1. } {{ } i+1 chires Cette représentation diminue le nombre moyen de chires non nuls de n/2 à n/3. W-NAF réduit davantage encore le nombre moyen de chires non nuls à n/(w + 1) en utilisant des chires plus grand : { 2 w 1 + 1,..., 5, 3, 1, 0, 1, 3, 5,..., 2 w 1 1}. Bilan sur la complexité du produit scalaire sur E(F 2 m) : nb. de doublements nb. d'additions Double-and-add n n/2 NAF Double-and-add n n/3 W-NAF Double-and-add n n/(w + 1) + 2 w 2

Algorithmes et Implémentations Optimisées Jean-Marc ROBERT 11 / 30 1 Problématique Exemple d'application : Échange de clé de Die-Hellmann Le Produit Scalaire de Points Optimisation AB, AC et AB + CD 2 Implémentations Vue Générale des Implémentations Implémentations du Produit Scalaire : Atteindre l'etat de l'art Optimisations du Produit Scalaire 3 Conclusion

Opération sur le corps : Multiplication de polynômes Jean-Marc ROBERT 12 / 30 Algorithme de Karatsuba : Avec cet algorithme, pour A(x) et B(x) de degré m 1, on calcule C(x) = A(x) B(x) de la manière suivante : A(x) = A h (x)x m/2 + A l (x) B(x) = B h (x)x m/2 + B l (x) On calcule D0 = A l.b l D1 = (A l + A h ).(B l + B h ) D2 = A h.b h Et enn : C(x) = x m D 2 (x) + x m/2 (D 0 + D 1 + D 2 ) + D 0 Cet algorithme peut être implémenté avec l'algorithme L-R Comb W pour les produits élémentaires.

Multiplication de polynômes Left-to-Right Comb W, 64 bits Jean-Marc ROBERT 13 / 30 Soit a(x) = m 1 i=0 a i x i et b(x) = m 1 i=0 b i x i, a i, b i {0, 1}

Jean-Marc ROBERT 13 / 30 Multiplication de polynômes Left-to-Right Comb W, 64 bits 63 t 1 Soit a(x) = x 64j a i+64j x i m 1, avec t = 64 i=0 j=0

Jean-Marc ROBERT 13 / 30 Multiplication de polynômes Left-to-Right Comb W, 64 bits 63 t 1 Soit a(x) = x 64j a i+64j x i m 1, avec t = 64 i=0 j=0 15 t 1 = x 4k+64j u kj (x), avec u kj (x) de degré au plus 3. k=0 j=0

Jean-Marc ROBERT 13 / 30 Multiplication de polynômes Left-to-Right Comb W, 64 bits 63 t 1 Soit a(x) = x 64j a i+64j x i m 1, avec t = 64 i=0 j=0 15 t 1 = x 4k+64j u kj (x), avec u kj (x) de degré au plus 3. k=0 j=0 15 t 1 Alors c(x) = a(x) b(x) = x 4k+64j u kj (x) b(x) k=0 j=0

Multiplication de polynômes Left-to-Right Comb W, 64 bits 63 t 1 Soit a(x) = x 64j a i+64j x i m 1, avec t = 64 i=0 j=0 15 t 1 = x 4k+64j u kj (x), avec u kj (x) de degré au plus 3. k=0 j=0 15 t 1 Alors c(x) = a(x) b(x) = x 4k+64j u kj (x) b(x) k=0 j=0 1: Calcule B u(x) = u(x) b(x) pour tous polynômes u(x) de degré au plus 3. 2: C 0 3: for k de 15 à 0 // 64 bits = 16 4. do 4: for j de 0 à t 1 // tableaux de t mots de 64 bits. do 5: Soit u = (u 3, u 2, u 1, u 0 ), où u i est le bit (4k + i) de A[j]. Ajoute B u et C{j}. 6: end for 7: if k 0 then 8: C C x 4. 9: end if 10: end for 11: return (C). Jean-Marc ROBERT 13 / 30

Jean-Marc ROBERT 14 / 30 Produits élémentaires : PCLMULQDQ 128 bits ( m128i) Pour multiplier deux polynômes de degré au plus 63 (avec les processeurs Intel i3, i5, ou i7) : Multiplication "Carry-less" : L-R Comb W (64 bits) devient m128i x = _mm_load_si128( ( m128i const *) &A); m128i y = _mm_load_si128( ( m128i const *) &B); m128i z = _mm_clmulepi64_si128 (x, y, 0); C[0] = _mm_extract_epi64(z,0); C[1] = _mm_extract_epi64(z,1);

Jean-Marc ROBERT 15 / 30 Optimisation AB, AC Pour additionner deux points en coordonnées mixtes (Lopez-Dahab), nous avons : F = X 3 + X 2.Z 3, G = X 3 + Y 2.Z 3. F et G sont deux paramètres dans le calcul de Y 3. Le principe : la combinaison du calcul de X 2 Z 3 et de Y 2 Z 3 dans l'algorithme L-R Comb W, permet de ne calculer qu'une seule table des polynômes u i Z 3, où u i sont de degré au plus 3.

Optimisation AB + CD L-R Comb W 64 bits Jean-Marc ROBERT 16 / 30 Require: Polynômes binaires a(x), b(x), c(x), d(x) de degré au plus 63. Ensure: e(x) = a(x) b(x) + c(x) d(x). 1: Calcul de B u(x) = u(x) b(x) pour tous polynômes u(x) de degré au plus 3. 2: Calcul de D u(x) = u(x) d(x) pour tous polynômes u(x) de degré au plus 3. 3: E 0 4: for k de 15 à 1 do 5: Soit u = (u 3, u 2, u 1, u 0 ), où u i est le bit (4k + i) de A. 6: Soit v = (v 3, v 2, v 1, v 0 ), où v i est le bit (4k + i) de C. 7: E E B u D v. 8: E E E x 4. 9: end for 10: Soit u = (u 3, u 2, u 1, u 0 ), où u i est le bit i of A. 11: Soit v = (v 3, v 2, v 1, v 0 ), où v i est le bit i de C. 12: E E B u D v. 13: return (E).

Optimisation AB + CD L-R Comb W 64 bits Jean-Marc ROBERT 16 / 30 Require: Polynômes binaires a(x), b(x), c(x), d(x) de degré au plus 63. Ensure: e(x) = a(x) b(x) + c(x) d(x). 1: Calcul de B u(x) = u(x) b(x) pour tous polynômes u(x) de degré au plus 3. 2: Calcul de D u(x) = u(x) d(x) pour tous polynômes u(x) de degré au plus 3. 3: E 0 4: for k de 15 à 1 do 5: Soit u = (u 3, u 2, u 1, u 0 ), où u i est le bit (4k + i) de A. 6: Soit v = (v 3, v 2, v 1, v 0 ), où v i est le bit (4k + i) de C. 7: E E B u D v. 8: E E E x 4. 9: end for 10: Soit u = (u 3, u 2, u 1, u 0 ), où u i est le bit i of A. 11: Soit v = (v 3, v 2, v 1, v 0 ), où v i est le bit i de C. 12: E E B u D v. 13: return (E). Avec l'algorithme de Karatsuba : une seule reconstruction nale au lieu de deux.

Optimisations AB, AC et AB + CD : bilan de complexité Jean-Marc ROBERT 17 / 30

Optimisations AB, AC et AB + CD : bilan de complexité Jean-Marc ROBERT 17 / 30

Optimisations AB, AC et AB + CD : bilan de complexité Jean-Marc ROBERT 17 / 30

Algorithmes et Implémentations Optimisées Jean-Marc ROBERT 18 / 30 1 Problématique Exemple d'application : Échange de clé de Die-Hellmann Le Produit Scalaire de Points Optimisation AB, AC et AB + CD 2 Implémentations Vue Générale des Implémentations Implémentations du Produit Scalaire : Atteindre l'etat de l'art Optimisations du Produit Scalaire 3 Conclusion

Jean-Marc ROBERT 19 / 30 Principaux Paramètres Le NIST recommande les valeurs de m et des diérents paramètres. L'équation de la courbe est E : y 2 + xy = x 3 + x 2 + b ;

Jean-Marc ROBERT 19 / 30 Principaux Paramètres Le NIST recommande les valeurs de m et des diérents paramètres. L'équation de la courbe est E : y 2 + xy = x 3 + x 2 + b ; On considère les deux corps binaires F 2 233 déni avec : f (x) = x 233 + x 74 + 1 et F 2 409 déni avec : f (x) = x 409 + x 87 + 1

Jean-Marc ROBERT 19 / 30 Principaux Paramètres Le NIST recommande les valeurs de m et des diérents paramètres. L'équation de la courbe est E : y 2 + xy = x 3 + x 2 + b ; On considère les deux corps binaires F 2 233 déni avec : f (x) = x 233 + x 74 + 1 et F 2 409 déni avec : f (x) = x 409 + x 87 + 1 Les polynômes binaires se représentent sous la forme de tableaux hexadécimaux.

Jean-Marc ROBERT 19 / 30 Principaux Paramètres Le NIST recommande les valeurs de m et des diérents paramètres. L'équation de la courbe est E : y 2 + xy = x 3 + x 2 + b ; On considère les deux corps binaires F 2 233 déni avec : f (x) = x 233 + x 74 + 1 et F 2 409 déni avec : f (x) = x 409 + x 87 + 1 Les polynômes binaires se représentent sous la forme de tableaux hexadécimaux. Le point générateur est P = (G x, G y ). Exemple, pour m = 233 : { Gx = 0fa c9dfcbac 8313bb21 39f1bb75 5fef65bc 391f8b36 f8f8eb73 71fd558b Gy = 100 6a08a419 03350678 e58528be bf8a0bef f867a7ca 36716f7e 01f81052

Plate-formes d'expérimentations : Jean-Marc ROBERT 20 / 30 Codes écrits en langage C (gcc 4.6.1 x86_64 compiler); Système d'exploitation Linux, distribution UBUNTU (11.10). Plate-formes Dell Insp. 15R Dell Optiplex 990 Processeur Intel 64 bits Core 2 Duo Core i5 Core i7 nombre de c urs 2 4 8 Mémoire cache de niveau L3 2Mo 3Mo 8 Mo Mémoire cache de niveau L1 32 ko 32 ko 32 ko Multiplication Carry-less NON OUI OUI (PCLMULQDQ) Registres Multimedia OUI OUI OUI (variables de type m128i)

Algorithmes et Implémentations Optimisées Jean-Marc ROBERT 21 / 30 1 Problématique Exemple d'application : Échange de clé de Die-Hellmann Le Produit Scalaire de Points Optimisation AB, AC et AB + CD 2 Implémentations Vue Générale des Implémentations Implémentations du Produit Scalaire : Atteindre l'etat de l'art Optimisations du Produit Scalaire 3 Conclusion

Implémentations, Expérimentations : Atteindre l'etat de l'art Jean-Marc ROBERT 22 / 30 Une implémentation optimisée du produit scalaire se présente comme suit : La meilleure multiplication de polynômes : Karatsuba avec multiplication "carry-less" PCLMULQDQ ; Utilisation des registres multimédias pour encoder les polynômes (type m128i) ; Représentation d'entiers W-NAF avec w = 4 ; Inversion de polynôme optimisée (calculs de carrés multiples tabulés) ; Doublement et addition de points de courbe elliptique Kim-Kim ;

Expérimentations : Atteindre l'etat de l'art (i5) Jean-Marc ROBERT 23 / 30 m = 233

Expérimentations : Atteindre l'etat de l'art (i5) Jean-Marc ROBERT 23 / 30 KaratRec L-R Comb W : -5,96%

Expérimentations : Atteindre l'etat de l'art (i5) Jean-Marc ROBERT 23 / 30 KaratRec PCLMULQDQ : -45,5%

Expérimentations : Atteindre l'etat de l'art (i5) Jean-Marc ROBERT 23 / 30 m128i : -41,8%

Expérimentations : Atteindre l'etat de l'art (i5) Jean-Marc ROBERT 23 / 30 W-NAF w = 4 : -32,7%

Expérimentations : Atteindre l'etat de l'art (i5) Jean-Marc ROBERT 23 / 30 Opérations Kim-Kim : +3,13%

1 selon J. Taverne et al., CHES 2011. Jean-Marc ROBERT 23 / 30 Expérimentations : Atteindre l'etat de l'art (i5) Comparaison : Nombre de Cycles Moyens (2000 exécutions) Etat de l'art (i5) 1 nos résultats (i5) nos résultats (i7) W-NAF Double-and-add m = 233 216700 201312 (7.10%) 233850 W-NAF Double-and-add m = 409 871600 787385 (9.66%) 912795

Algorithmes et Implémentations Optimisées Jean-Marc ROBERT 24 / 30 1 Problématique Exemple d'application : Échange de clé de Die-Hellmann Le Produit Scalaire de Points Optimisation AB, AC et AB + CD 2 Implémentations Vue Générale des Implémentations Implémentations du Produit Scalaire : Atteindre l'etat de l'art Optimisations du Produit Scalaire 3 Conclusion

Jean-Marc ROBERT 25 / 30 Very Lazy Reduction (m = 233, m128i) : le juste nécessaire A 255 A1 A0 0 0 a 232 a 128 a 127 a 0 255 B1 B B0 0 0 b 232 b 128 b 127 b 0 511 C3 C2 C = A B C1 C0 0 0 c 464 c 383 c 256 c 255 c 128 c 127 c 0

Jean-Marc ROBERT 25 / 30 Very Lazy Reduction (m = 233, m128i) : le juste nécessaire A 255 A1 A0 0 0 a 232 a 128 a 127 a 0 255 B1 B B0 0 0 b 232 b 128 b 127 b 0 511 C3 C2 C = A B C1 C0 0 0 c 464 c 383 c 256 c 255 c 128 c 127 c 0 511 Cr = C mod f Cr1 Cr0 0 0 0 0 0 0 cr 232 cr 128 cr 127 cr 0 Reduction of C3, C 2 and C 1.

Jean-Marc ROBERT 25 / 30 Very Lazy Reduction (m = 233, m128i) : le juste nécessaire A 255 A1 A0 a 255 a 128 a 127 a 0 255 B1 B B0 b 255 b 128 b 127 b 0 511 C3 C2 C = A B C1 C0 0; c 510 c 384 c 383 c 256 c 255 c 128 c 127 c 0 511 Cr = C mod f Cr1 Cr0 0 0 0 0 cr 255 cr 128 cr 127 cr 0 Reduction of C3 and C 2 only.

Jean-Marc ROBERT 26 / 30 Very Lazy Reduction (m = 233, m128i) : Performances des Implémentations. Very Lazy reduction sur W-NAF (i5) : -11,9%

2 selon J. Taverne et al., CHES 2011. Jean-Marc ROBERT 26 / 30 Very Lazy Reduction (m = 233, m128i) : Performances des Implémentations. Comparaison : Nombre de Cycles Moyens (2000 exécutions) Etat de l'art (i5) 2 nos résultats (i5) nos résultats (i7) W-NAF Double-and-add 216700 177419 210195 m = 233, w = 4 (18.13%) (3.002%)

Jean-Marc ROBERT 27 / 30 Optimisation AB, AC et AB + CD, Principaux Résultats : m = 233 : Regmul with Comb reste le meilleur. m = 409 : Regmul with Comb and AB+CD with Comb est 4,1% meilleure que Regmul with Comb. m = 503 : Regmul with Karat-Comb and AB+CD with Karat-Comb est 5,9% meilleure que Regmul with Karat-Comb.

Optimisation AB, AC et AB + CD, Principaux Résultats : AB, AC : L'optimisation n'apporte rien. AB + CD : Meilleure conguration avec opérations LD (768711 cycles soit 2,4% de mieux que none KK). Toutes versions avec Very Lazy Reduction. Jean-Marc ROBERT 27 / 30

Optimisation AB, AC et AB + CD, Principaux Résultats : AB+CD and Very Lazy Reduction KK : -0,3% /Very Lazy Red. KK) Toutes versions avec Very Lazy Reduction. Jean-Marc ROBERT 27 / 30

Algorithmes et Implémentations Optimisées Jean-Marc ROBERT 28 / 30 1 Problématique Exemple d'application : Échange de clé de Die-Hellmann Le Produit Scalaire de Points Optimisation AB, AC et AB + CD 2 Implémentations Vue Générale des Implémentations Implémentations du Produit Scalaire : Atteindre l'etat de l'art Optimisations du Produit Scalaire 3 Conclusion

Jean-Marc ROBERT 29 / 30 Conclusion et Perspectives : Nous avons atteint l'état de l'art en matière de performance sur les produits scalaires ; Nous avons testé deux optimisations : AB, AC ; AB + CD ;

Jean-Marc ROBERT 29 / 30 Conclusion et Perspectives : Nous avons atteint l'état de l'art en matière de performance sur les produits scalaires ; Nous avons testé deux optimisations : AB, AC ; AB + CD ; Des gains sont observés dans certaines conditions : AB + CD, m = 409, m = 503.

Jean-Marc ROBERT 29 / 30 Conclusion et Perspectives : Nous avons atteint l'état de l'art en matière de performance sur les produits scalaires ; Nous avons testé deux optimisations : AB, AC ; AB + CD ; Des gains sont observés dans certaines conditions : AB + CD, m = 409, m = 503. Les performances ne dépendent pas seulement des algorithmes, mais aussi : Des types de variables choisis (64 ou 128 bits) ; Du compilateur ; Du processeur (tailles des mémoires cache, pipelining...). Nous avons exploré une partie de la combinatoire des possibilités.

Jean-Marc ROBERT 30 / 30 Je vous remercie de votre attention, et suis à l'écoute de vos questions?