McBits - Colloque sur la Cryptographie et les Codes Correcteurs d
Transcription
McBits - Colloque sur la Cryptographie et les Codes Correcteurs d
McBits: fast constant-time code-based cryptography Brice Odilon BOIDJE Université Cheik Anta Diop Laboratoire d’algèbre de Cryptographie de Géométrie Algébrique et Applications 8 décembre 2015 Brice Odilon BOIDJE (Université Cheik Anta McBits: Diopfast Laboratoire constant-time d’algèbre code-based de Cryptographie cryptography de8 Géométrie décembre 2015 Algébrique1 et / 44 App Objectif Expliquer le fonctionnement du cryptosysteme à clé publique : le McBits. Brice Odilon BOIDJE (Université Cheik Anta McBits: Diopfast Laboratoire constant-time d’algèbre code-based de Cryptographie cryptography de8 Géométrie décembre 2015 Algébrique2 et / 44 App Plan 1 Introduction 2 système de McEliece 3 système McBit Brice Odilon BOIDJE (Université Cheik Anta McBits: Diopfast Laboratoire constant-time d’algèbre code-based de Cryptographie cryptography de8 Géométrie décembre 2015 Algébrique3 et / 44 App Introduction Définition formelle d’un cryptosysteme à clé publique En 1976, Diffie et Hellman posèrent les bases des systèmes cryptographiques à clés publiques, pour lesquels la sécurité est atteinte sans le besoin d’une distribution périodique d’une clé secrète. Mais sur l’existence des fonctions dite à sens unique avec trappe. Brice Odilon BOIDJE (Université Cheik Anta McBits: Diopfast Laboratoire constant-time d’algèbre code-based de Cryptographie cryptography de8 Géométrie décembre 2015 Algébrique4 et / 44 App Introduction Fonctions à sens unique Brice Odilon BOIDJE (Université Cheik Anta McBits: Diopfast Laboratoire constant-time d’algèbre code-based de Cryptographie cryptography de8 Géométrie décembre 2015 Algébrique5 et / 44 App Introduction Fonctions à sens unique avec trappe Brice Odilon BOIDJE (Université Cheik Anta McBits: Diopfast Laboratoire constant-time d’algèbre code-based de Cryptographie cryptography de8 Géométrie décembre 2015 Algébrique6 et / 44 App Introduction Fonctions à sens unique : Factorisation d’entiers Brice Odilon BOIDJE (Université Cheik Anta McBits: Diopfast Laboratoire constant-time d’algèbre code-based de Cryptographie cryptography de8 Géométrie décembre 2015 Algébrique7 et / 44 App Introduction Fonctions à sens unique : Factorisation d’entiers Brice Odilon BOIDJE (Université Cheik Anta McBits: Diopfast Laboratoire constant-time d’algèbre code-based de Cryptographie cryptography de8 Géométrie décembre 2015 Algébrique8 et / 44 App Introduction Fonctions à sens unique : Factorisation d’entiers La sécurité du cryptoststeme RSA repose sur la factorisation d’entiers Brice Odilon BOIDJE (Université Cheik Anta McBits: Diopfast Laboratoire constant-time d’algèbre code-based de Cryptographie cryptography de8 Géométrie décembre 2015 Algébrique9 et / 44 App Introduction Fonctions à sens unique : Le logarithme discret Étant donné un groupe G et un générateur g , Brice Odilon BOIDJE (Université Cheik Anta McBits: Diopfast Laboratoire constant-time d’algèbre code-based de Cryptographie cryptography de 8 décembre Géométrie2015 Algébrique 10 et / 44 App Introduction Fonctions à sens unique : Le logarithme discret Étant donné un groupe G et un générateur g , Brice Odilon BOIDJE (Université Cheik Anta McBits: Diopfast Laboratoire constant-time d’algèbre code-based de Cryptographie cryptography de 8 décembre Géométrie2015 Algébrique 11 et / 44 App Introduction Fonctions à sens unique : Le logarithme discret Étant donné un groupe G et un générateur g , La sécurité du cryptosysteme à cle publique El Gamal dépend du problème du Logarithme discret. Brice Odilon BOIDJE (Université Cheik Anta McBits: Diopfast Laboratoire constant-time d’algèbre code-based de Cryptographie cryptography de 8 décembre Géométrie2015 Algébrique 12 et / 44 App Introduction Plusieurs cryptosystemes à clé publique sont basés sur la factorisation d’entiers et sur le logarithme discret. Or, en 1994 Petor Shor qu’il est possible de construire un algorithme utilisant l’ordinateur quantique pour résoudre a temps polynomial ces deux problèmes. La cryptographie basée sur la théorie des codes est une alternative intéressante. Brice Odilon BOIDJE (Université Cheik Anta McBits: Diopfast Laboratoire constant-time d’algèbre code-based de Cryptographie cryptography de 8 décembre Géométrie2015 Algébrique 13 et / 44 App système de McEliece Fonction a sens unique avec trappe Il existe des codes linéaire pour lesquels un algorithme de décodage efficace est connu, cette information supplémentaire constitue notre trappe. Brice Odilon BOIDJE (Université Cheik Anta McBits: Diopfast Laboratoire constant-time d’algèbre code-based de Cryptographie cryptography de 8 décembre Géométrie2015 Algébrique 14 et / 44 App système de McEliece Fonction a sens unique avec trappe Robert MCELIECE a introduit le premier cryptosysteme basé sur les codes correcteurs d’erreurs en 1978 Brice Odilon BOIDJE (Université Cheik Anta McBits: Diopfast Laboratoire constant-time d’algèbre code-based de Cryptographie cryptography de 8 décembre Géométrie2015 Algébrique 15 et / 44 App système de McEliece Sécurité La sécurité du système de McEliece repose sur Le décodage de codes aléatoires L’indistinguabilité des codes de Goppa Brice Odilon BOIDJE (Université Cheik Anta McBits: Diopfast Laboratoire constant-time d’algèbre code-based de Cryptographie cryptography de 8 décembre Géométrie2015 Algébrique 16 et / 44 App système de McEliece Avantage Les algorithmes de chiffrement ENCRYPT et de déchiffrement DECRYPT s’exécutent rapidement. C’est un cryptosysteme post-quantique. Brice Odilon BOIDJE (Université Cheik Anta McBits: Diopfast Laboratoire constant-time d’algèbre code-based de Cryptographie cryptography de 8 décembre Géométrie2015 Algébrique 17 et / 44 App système de McEliece Inconveniant Ce système utilise de grandes clés. Brice Odilon BOIDJE (Université Cheik Anta McBits: Diopfast Laboratoire constant-time d’algèbre code-based de Cryptographie cryptography de 8 décembre Géométrie2015 Algébrique 18 et / 44 App système de McEliece Inconveniant Considérons une famille F de codes linéaires Pour lesquels un algorithme efficace de décodage existe. dont les éléments soient indistinguables des codes aléatoires. Brice Odilon BOIDJE (Université Cheik Anta McBits: Diopfast Laboratoire constant-time d’algèbre code-based de Cryptographie cryptography de 8 décembre Géométrie2015 Algébrique 19 et / 44 App système de McEliece Algorithme de génération de clé 1 2 Soit G ∈ Fn×k , une matrice génératrice de C ∈ F q Soit AC un algorithme de décodage efficace qui corrige au plus t erreurs. Clé secrète = (G , t) Clé publique = AC Brice Odilon BOIDJE (Université Cheik Anta McBits: Diopfast Laboratoire constant-time d’algèbre code-based de Cryptographie cryptography de 8 décembre Géométrie2015 Algébrique 20 et / 44 App système de McEliece Algorithme de chiffrement Soit m ∈ Fkq On chiffre le message m par ENCRYPT(m) = mG + e = y où e est un vecteur aléatoire d’erreurs de poids au plus t Brice Odilon BOIDJE (Université Cheik Anta McBits: Diopfast Laboratoire constant-time d’algèbre code-based de Cryptographie cryptography de 8 décembre Géométrie2015 Algébrique 21 et / 44 App système de McEliece Algorithme de dechiffrement En utilisant la cle secrete le receveur obtient m par DECRYPT(y ) = AC (y ) = m Brice Odilon BOIDJE (Université Cheik Anta McBits: Diopfast Laboratoire constant-time d’algèbre code-based de Cryptographie cryptography de 8 décembre Géométrie2015 Algébrique 22 et / 44 App système de McBit Motivation Brice Odilon BOIDJE (Université Cheik Anta McBits: Diopfast Laboratoire constant-time d’algèbre code-based de Cryptographie cryptography de 8 décembre Géométrie2015 Algébrique 23 et / 44 App système de McBit Paramètres du système Les paramètres du système sont : Cinq entiers positifs m, q, n, t et k tels que n ≤ q = 2m ; t ≥ 2; k = n − mt ; une clé de s bits qui servira de paramètre pour un chiffrement à flot (Stream cipher) S. une clé de a bits qui servira de paramètre pour un MAC A. Une chaine de (s + a) bits qui est la resultante d’une fonction de Hachage H. Brice Odilon BOIDJE (Université Cheik Anta McBits: Diopfast Laboratoire constant-time d’algèbre code-based de Cryptographie cryptography de 8 décembre Géométrie2015 Algébrique 24 et / 44 App système de McBit Algorithme de génération de clé :La clé secrète La clé secrète est constituée de deux parties qui sont : Une suite aléatoire L de n éléments distincts du corps finis Fq L = (α0 , ..., αn−1 ) Un polynôme irréductible g ∈ Fq [X ] de degré t tel que g (α0 )g (α1 )...g (αn−1 ) 6= 0 Brice Odilon BOIDJE (Université Cheik Anta McBits: Diopfast Laboratoire constant-time d’algèbre code-based de Cryptographie cryptography de 8 décembre Géométrie2015 Algébrique 25 et / 44 App système de McBit Algorithme de génération de clé :La clé publique A partir de L et g , nous calculons la matrice 1/g (α0 ) 1/g (α1 ) α1 /g (α1 ) α 2 /g (α2 ) H= : : α1t−1 /g (α1 ) α2t−1 /g (α2 ) = (αji /g (αj )), H ∈ Mt×n [Fq ] définie par : · · · 1/g (αn−1 ) ··· αn /g (αn ) ··· : t−1 · · · αn /g (αn ) ∀i ∈ [0 : t − 1] j ∈ [0 : n − 1] Brice Odilon BOIDJE (Université Cheik Anta McBits: Diopfast Laboratoire constant-time d’algèbre code-based de Cryptographie cryptography de 8 décembre Géométrie2015 Algébrique 26 et / 44 App système de McBit Algorithme de génération de clé :La clé publique Hij , une entrée de H. Puisque Hij ∈ F2m alors il existe (a0 , ..., am−1 ) ∈ F2 tel que : m−1 X Hij = ak αk k=0 Où {1, α, α2 , ..., αm−1 est la base standard de F2m = F2 [X ]/(F ) en tant que F2 -espace vectoriel. Nous remplaçons chaque entrée de H par une colonne de m bits. am−1 am−2 Hij −→ ... a1 a0 Brice Odilon BOIDJE (Université Cheik Anta McBits: Diopfast Laboratoire constant-time d’algèbre code-based de Cryptographie cryptography de 8 décembre Géométrie2015 Algébrique 27 et / 44 App système de McBit Algorithme de génération de clé :La clé publique Nous obtient ainsi une une matrice Hbin ∈ Mm.t×n [F2 ]. C’est la matrice de parité du code de Goppa Γ (α1 , ..., αn , g ). L’exemple suivant illustre cette transformation : Soit 0 1 1 0 0 0 2 4 2×2 ∈ F6×2 H= ∈ F23 ↔ Hbin = 2 3 1 0 0 1 0 1 1 Brice Odilon BOIDJE (Université Cheik Anta McBits: Diopfast Laboratoire constant-time d’algèbre code-based de Cryptographie cryptography de 8 décembre Géométrie2015 Algébrique 28 et / 44 App système de McBit Algorithme de chiffrement Le chiffrement est décrit par le schéma suivant : Brice Odilon BOIDJE (Université Cheik Anta McBits: Diopfast Laboratoire constant-time d’algèbre code-based de Cryptographie cryptography de 8 décembre Géométrie2015 Algébrique 29 et / 44 App système de McBit Algorithme de chiffrement Étape 1 : Nous générons un vecteur aléatoire de poids t, e ∈ Fn2 a partir des paramètres n et t du système. VectAleaPoids(t, n) = e ∈ Fn2 Brice Odilon BOIDJE (Université Cheik Anta McBits: Diopfast Laboratoire constant-time d’algèbre code-based de Cryptographie cryptography de 8 décembre Géométrie2015 Algébrique 30 et / 44 App système de McBit Algorithme de chiffrement Étape 2 : Nous effectuons le produit de la matrice pk , la clé publique du receveur par e, le vecteur obtenu lors de la première étape. Nous obtenons w ∈ Ftm 2 w = pk .e Brice Odilon BOIDJE (Université Cheik Anta McBits: Diopfast Laboratoire constant-time d’algèbre code-based de Cryptographie cryptography de 8 décembre Géométrie2015 Algébrique 31 et / 44 App système de McBit Algorithme de chiffrement Étape 3 : Nous calculons le condensé de e : H(e) (ou H est une fonction de Hachage). Nous obtenons une chaine de (s + a) bits dont la sous-chaine de s bits est notée kenc et celle de a bits est notée kaut . H(e) = ( kenc |{z} s bits , kaut ) |{z} a bits Brice Odilon BOIDJE (Université Cheik Anta McBits: Diopfast Laboratoire constant-time d’algèbre code-based de Cryptographie cryptography de 8 décembre Géométrie2015 Algébrique 32 et / 44 App système de McBit Algorithme de chiffrement Étape 4 : Nous chiffrons le message M avec un chiffrement par flot S paramétrée par la clé kenc pour obtenir c. S(M, kenc ) = c Brice Odilon BOIDJE (Université Cheik Anta McBits: Diopfast Laboratoire constant-time d’algèbre code-based de Cryptographie cryptography de 8 décembre Géométrie2015 Algébrique 33 et / 44 App système de McBit Algorithme de chiffrement Étape 5 : Nous calculons une emprunte a sur c en utilisant un MAC A et la clé kaut A(c, kaut ) = a Brice Odilon BOIDJE (Université Cheik Anta McBits: Diopfast Laboratoire constant-time d’algèbre code-based de Cryptographie cryptography de 8 décembre Géométrie2015 Algébrique 34 et / 44 App système de McBit Algorithme de chiffrement Étape 6 : Nous expédions le triplet (w , a, c) au destinataire. Brice Odilon BOIDJE (Université Cheik Anta McBits: Diopfast Laboratoire constant-time d’algèbre code-based de Cryptographie cryptography de 8 décembre Géométrie2015 Algébrique 35 et / 44 App système de McBit Algorithme de déchiffrement mt ∗ Le texte chiffré est sous la forme (a, w , c) ou a ∈ F128 2 , w ∈ F2 et c ∈ F2 . L’algorithme de déchiffrement se déroule en quatre étapes qui sont illustrée par le schéma suivant : Brice Odilon BOIDJE (Université Cheik Anta McBits: Diopfast Laboratoire constant-time d’algèbre code-based de Cryptographie cryptography de 8 décembre Géométrie2015 Algébrique 36 et / 44 App système de McBit Algorithme de déchiffrement Étape 1 : Nous décodons w pour obtenir une vecteur de poids t : e ∈ Fn2 . Brice Odilon BOIDJE (Université Cheik Anta McBits: Diopfast Laboratoire constant-time d’algèbre code-based de Cryptographie cryptography de 8 décembre Géométrie2015 Algébrique 37 et / 44 App système de McBit Algorithme de déchiffrement Étape 2 : Nous hachons e pour obtenir (kenc , kaut ). Brice Odilon BOIDJE (Université Cheik Anta McBits: Diopfast Laboratoire constant-time d’algèbre code-based de Cryptographie cryptography de 8 décembre Géométrie2015 Algébrique 38 et / 44 App système de McBit Algorithme de déchiffrement Étape 3 : Nous vérifions que a est une emprunte valide sur c en utilisant A avec la clé kaut . Brice Odilon BOIDJE (Université Cheik Anta McBits: Diopfast Laboratoire constant-time d’algèbre code-based de Cryptographie cryptography de 8 décembre Géométrie2015 Algébrique 39 et / 44 App système de McBit Algorithme de déchiffrement Étape 4 : Nous utilisons S pour déchiffrer c et obtenir le message original M. Brice Odilon BOIDJE (Université Cheik Anta McBits: Diopfast Laboratoire constant-time d’algèbre code-based de Cryptographie cryptography de 8 décembre Géométrie2015 Algébrique 40 et / 44 App système de McBit Problème du décodage par syndrome Trouver un vecteur e de poids t étant donné w = Kpub .e est un problème de décodage par syndrome pour Γ(L, g ) de matrice de parité Kpub . Brice Odilon BOIDJE (Université Cheik Anta McBits: Diopfast Laboratoire constant-time d’algèbre code-based de Cryptographie cryptography de 8 décembre Géométrie2015 Algébrique 41 et / 44 App système de McBit Problème du décodage par syndrome 1 Nous commençons par déterminer un vecteur v tel que w = Kpub .v . Nous choisissons : v = (w0 , w1 , ..., wmt−1 , 0, 0, ..., 0 ) | {z } (n−mt) zeros 2 3 4 5 a cause du fait que Kpub ait une forme systématique. Ce choix nous a été recommandé par Nicolas Sendrier. Nous calculons le syndrome de Goppa S = (s0 , ..., s2t−1 ) . Nous utilisons l’algorithme de Berlekamp Massey pour obtenir un polynôme localisateur d’erreur f de degré t. Nous calculons les t racines de ce polynôme a l’aide de l’algorithme FFT-Additive. Pour chaque racine rj = αi , nous plaçons le bit erroné à la position i dans e Brice Odilon BOIDJE (Université Cheik Anta McBits: Diopfast Laboratoire constant-time d’algèbre code-based de Cryptographie cryptography de 8 décembre Géométrie2015 Algébrique 42 et / 44 App Merci pour votre attention. Brice Odilon BOIDJE (Université Cheik Anta McBits: Diopfast Laboratoire constant-time d’algèbre code-based de Cryptographie cryptography de 8 décembre Géométrie2015 Algébrique 43 et / 44 App Bibliographie Daniel J Bernstein, Tung Chou, and Peter Schwabe, Mcbits : fast constant-time code-based cryptography, Cryptographic Hardware and Embedded Systems-CHES 2013, Springer, 2013, pp. 250–272. Daniel J Bernstein, The poly1305-aes message-authentication code, Fast Software Encryption, Springer, 2005, pp. 32–49. Bhaskar Biswas and Nicolas Sendrier, Mceliece cryptosystem implementation : Theory and practice, Post-Quantum Cryptography, Springer, 2008, pp. 47–62. Pierre-Louis CAYREL, Cours de cryptographie basée sur les codes correcteurs d’erreurs. Shuhong Gao and Todd Mateer, Additive fast fourier transforms over finite fields, IEEE Transactions on Information Theory 56 (2010), no. 12, 6265–6272. Brice Odilon BOIDJE (Université Cheik Anta McBits: Diopfast Laboratoire constant-time d’algèbre code-based de Cryptographie cryptography de 8 décembre Géométrie2015 Algébrique 44 et / 44 App