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