Traçage en Chaudronnerie Et Tuyauterie_Raccordement de Deux Sections
France Télécom Recherche & Développement Traçage des traîtres fondé sur des couplages Duong...
-
Upload
ignace-guillard -
Category
Documents
-
view
108 -
download
0
Transcript of France Télécom Recherche & Développement Traçage des traîtres fondé sur des couplages Duong...
France TélécomRecherche & Développement
Traçage des traîtres fondé sur des couplagesDuong Hieu PHAN
ENST – 12/04/07
Plan
Diffusion de données chiffrées avec traçage des traîtres
Courbes elliptiques et couplages en cryptographie
Une attaque sur le schéma de traçage des traîtres TSZ
(Eurocrypt05-avec Chabanne et Pointcheval)
Schéma de traçage des traîtres basé sur l’identité
(PKC07- avec Abdalla, Dent, Malone-Lee, Neven et Smart)
Diffusion de données chiffréesavec traçage des traîtres
Chiffrement vs. Diffusion de données chiffrées
( , )c ar ah ch reKC E M Charlie( , )ch ca
er
dr haKK
Alice
Centre
Chiffrement à clé publique
Diffusion de données chiffrées
Alice
( , )ob ob b beKC E M Bob( , )bob
ebobdKK
( , )bo obbd
bM E CK
( , )cha c arr hdM E CK
( , )centreeC KE M
Bob( )bobdK
Charlie( )chardK
( , )bobdKM E C
( , )chardM KE C
Sécurité d'un schéma de diffusion de données chiffrées
Un bon chiffrement est nécessaire mais insuffisant !
Problème : si Bob donne sa clé à Eve, Eve pourra utiliser gratuitement les services du centre
Le but du centre : décourager les usagers légitimes de révéler des informations secrètes
Décodeur pirate vs. Traçage des traîtres
Un (ou plusieurs usagers) extrai(en)t des clés, puis les utilise(nt) pour fabriquer un décodeur pirate
Le but du centre : à partir d’un décodeur pirate, retrouver au moins un des usagers malhonnêtes (un des traîtres)
un schéma de traçage des traîtres = (un schéma de diffusion de données chiffrées + une procédure de traçage des traîtres)
Traçage des traîtres basé sur l’identité
Chiffrement basé sur l’identité[Shamir84, Boneh-Franklin01]
bobdK
Alice ( , )bob BC obE M Bob( , )bo obb
dbM E CK
Le chiffrement à clé publique, où la clé publique est l'identité du destinataire (qui peut être une suite arbitraire de bits)
PKG
Inconvénient : les clés secrètes doivent être fournies par une autorité (PKG).
clé ?
( )bobdK
Diffusion de données chiffrées basée sur l’identité
Groupe 1 : maths Groupe 2 : info
Groupe 3 : éco
Bob Alice
Charlie
PKG
. @ .bob maths univ frdK . @ .alice info univ fr
dK
. @ .charlie éco univ frdK
clé ? clé ?
clé ?
( , )@ .maths mathC s univ frE M
?
?
mathsC
mathsC
M
mathsC
Centre 1 Centre 2
Centre 3
Modèle classique
Diffusion de données chiffrées basée sur l’identité
Question : est-ce un vrai inconvénient que les clés secrètes doivent être fournies par une autorité (PKG) ?
Non, même dans le cas classique : c’est le centre qui génère des clés d’usagers
Modèle de sécurité
Ch
alle
ng
eu
r
Setup Pira
teparams
(ID*, D)
, dID2 ||id2 , …, dIDm ||idmdID1||id1KeyGen
ID1||id1
ID1||id1
T : coalition de traîtres
, ID2 ||id2, …, IDc ||idc
ID2 ||id2
IDc ||idc
…
(ID*, D)c
m (ID*, D)*( (ID , )) mD E m
S
A
[ ]( ) Pr (tra id cAAdv k S S T
Couplages sur les courbes elliptiques en cryptographie
Hypothèses cryptographiques
RSA: La factorisation de est difficile.
ElGamal : dans un groupe cyclique
(ou sur un sous-groupe cyclique de )
DLP: le logarithme discret dans un groupe cyclique est difficile: Etant donné g, ga. Retourner a.
CDH: le problème Diffie-Hellman calculatoire est difficile: Etant donné g, ga , gb. Retourner gab.
*pG g Z
*nZ
n p q
Méthodes sous-exponentielles pour la factorisation et le log discret dans Zn
*
Log discret : calcul d'indice (Index-calculus) Factorisation : crible quadratique (Quadratic Sieve), crible
algébrique (Number Field Sieve)
Ces méthodes utilisent la notion de nombre B-lisse et un test pour vérifier si un nombre est B-lisse (i.e. ses facteurs sont tous inférieurs à B).
Complexité Ln(1/3,2) , où :1-( (1))(log ) (log log )( , ) , (0, 1), 0
Remarque : 0 : (log ) (polynomial)
1: (exponentielle)
c o n nn
c
c
L c e c
n
n
Taille de la clé
2048112
102480
Taille de la clé
RSA ou Diffie-Hellman (bits)
Taille de la clé
symétrique (bits)
Source : NIST Recommended Key Sizes
3072128
7680192
15360256
Groupe des points sur une courbe elliptique
En 1985, Neal Koblitz et Victor Miller ont indépendamment proposé l'utilisation du groupe des points sur une courbe elliptique
Groupe des points sur une courbe elliptique : il n'y a pas encore de notion convenable d'élément B-lisse avec un test efficace d'élément B-lisse pour ce groupe
Courbes elliptiques
Courbe elliptique sur un corps :y2 + a1 xy + a3y = x3 + a2x2+a4x+a6
Si char( ) ≠ 2,3 :
y2 = x3 + ax + b
Propriété importante : on peut définir une opération sur les points des courbes non singulières ( 4a3 + 27b2 ≠ 0 ) telle qu’ils forment un groupe.
K
K
Groupe des points sur une courbe elliptique Identité du groupe : point à l'infini
Il s'agit du point [0,1,0] en coordonnées projectives :Y2 Z= X3 + aXZ2 +bZ3
: la loi du groupe
a une interprétation géométrique En tout cas :
s = (yP - yQ) / (xP - xQ) si P ≠ Q s = (3xP
2 + a) ∕ 2yP si P = QxR = s2 - xP - xQ yR = -yP + s(xP - xR)
L’associativité est bien vérifiée
K RO
Log discret sur le groupe des points sur une courbe elliptique : O( )n
Taille de la clé ( x bits)
Com
plex
ité
( 2y o
péra
tion
s)
Comparaison
52115360256
3847680192
2563072128
2242048112
160102480
Taille de la clé des
courbes elliptiques (bits)
Taille de la clé
RSA ou Diffie-Hellman
(bits)
Taille de la clé
symétrique (bits)
Source: NIST Recommended Key Sizes
Couplage de Weil
Courbe E sur un corps fini
(le sous-groupe de points de n-torsion dans )
Balasubramanian et Koblitz :
où k est le plus petit entier tel que n | qk - 1
Couplage de Weil :
qF
[ ] ( ) | qE n P E nP O F( )qE F
[ ] [ ]( )kqE n E n F
: [ ] [ ] kn qe E n E n F
Skip
Couplage de Weil : un peu plus détail (1)
Diviseurs sur E :
0
[ ], avec un nombre fini de termes non-nuls
deg( ) , Div ( ) Div( ) : deg 0
P PP E
PP E
D n P n
D n C D C D
Diviseur principale (diviseur associé à une fonction rationnelle f sur E) :
0
div( ) ( )[ ]
Prin( ) Div ( ) / : div( )
PP Ef ord f P
E D E f D f
Théorème :
(pour les courbes hyperelliptiques, il n’existe pas cette isomorphisme et il faut donc travailler directement sur
)
0 0Pic ( )=Div ( )/Prin( )
classe de ( ) ( )
E E E E
P P O
0Div ( )/Prin( )HE HE
Couplage de Weil : un peu plus détail (2)
0 [ ] Div ( ) est principaleP PP E P ED n P E n P O
Etant donné P, Q E[n], il existe des fonctions fP , fQ:
div(fP) = n[P] – n[O], div(fQ) = n[Q] – n[O]
Couplage de Weil:
( [ ] [ ], [ ] [ ])P QA P O A Q O
( , ) ( ) / ( )n P Q Q Pe P Q f A f A
Couplage de Weil : propriétés
1. Bilinéarité: P, Q E[n] , en(aP ,bQ ) = en(P, Q)ab
2. en est alterné: P,Q E[n], en(P, Q) = en(Q, P)-1.
3. Non dégénérescence: Si O ≠ P E [n], il existe Q E [n] tel que en(P, Q)
≠ 1.
G1 = <P>, G2 = <Q>, GT= <en(P,Q)>
kqF
e : G1 × G2 → GT
Couplages en cryptographie
e : G1 × G2 → GT (G1, G2, GT sont considérés comme des groupes multiplicatifs)
est: 1. Bilinéaire : e(g1
a, g2b) = e(g1, g2)ab pour tout a,b Zn , g1G1
, g2 G2
2. Non-dégénéré : e(g1, g2) ≠ 1
3. Calculable : grâce à l'algorithme de Miller, les couplages de Weil (et puis de Tate) sont efficacement calculables (mais encore coûteux par rapport aux exponentielles).
Réduction MOV
Réduction de l’ECDLP au DLP sur :
ECDLP(g1,g1a)
= DLP(e(g1,g2), e(g1a,g2))
Conséquence: il faut travailler sur des groupes tels que est suffisamment grand.
kqF
e : G1 × G2 → GT
kqF
Pourquoi les couplages présente des avantages ? Intuition
Avantage : il nous permet de résoudre un problème analogue au problème de Diffie-Hellman
gT = e(g1, g2). Etant donné g1
a, g2b, on peut calculer
gTa = e(g1
a, g2), gTb = e(g1, g2
b) et gTab = e(g1
a, g2b) sans avoir
besoin de connaître a,b
Exemple [Joux 01] : protocol d’échange de clé de trois parties
e : G1 × G2 → GT
Utilisation des couplages en cryptographie
1993 : première utilisation : réduction MOV du ECDLP au DLP sur un corps fini
2001: premier schéma pratique de chiffrement basé sur l’identité [Boneh-Franklin et Sakai-Ohgishi-Kasahara]
Depuis, plusieurs articles sur :ChiffrementSignature: Signature du group sans oracle aléatoireDiffusion de données chiffrées…
Attaque sur le schéma TSZ
Schéma TSZ [To, Safavi-Naini, Zhang03](le cas de 1-traitor tracing)
Couplage ê: G1 × G1 → GT. g1, g2 sont deux générateurs de G1 (d’ordre q premier). gT = ê(g1, g2) est une générateur de GT
f(x) = x + a0 sur Fq
Clé secrète du centre: g1, a0.
Clé publique: (gT, g2, g’2 = g2a0)
Clé de u : Ku = g11/f(u)
gT = ê(Ku, g2 (u+a0)) = ê(Ku, g’2) ê(Kuu, g2)
Chiffrement: C = (M.gTr, g’2
r , g2r), pour r R Zq
Déchiffrement: gTr = ê(Ku, g’2
r) ê(Kuu, g2
r).
Décodeur pirate anonyme
Utilisateur u : randomiser (Ku, Kuu)
X0 = Ku g2 z
0 , pour z0 R Zq
X1 = Kuu (g’2)
-z0
Un décodeur pirate (X0,X1)
gr = ê(X0, g’2r) ê(X1, g2
r)
Pourquoi ce décodeur pirate n’est pas traçable?(X0, X1) peut être défini d’une façon indépendante de u :
X0 est aléatoirement choisi dans G1
X1 = g1 (X0 a
0 )-1
Traçage des traîtres basé sur l’identité
Chiffrement basé sur l’identité de Waters
• Centre : G1, G2, GT d’ordre q Clé secrète: Zq
Clé publique: g G1, g1=g , g2 G2,
Un vecteur publique U = ( u0, u1, … un) G2n+1
Pour ID {0,1}n :
("j ID" si ID[j] = 1)
Exemple: H(ID = 01101) = u0u2u3u5
e : G1 × G2 → GT
0( ) jj ID
H ID u u
Chiffrement
Génération de la clé pour ID :
2 1( , ( ) ), ( )Rr rIDd g g H ID r ord G
Etant donné ( , ( ) )t tg H ID
L’utilisateur ID peut calculer 1 2( , )te g g
Chiffré: 1 2( ( , ) , , ( ) )t t te g g M g H ID
Chiffrement à 2 niveaux
Génération de la clé pour ID|| id :1 1
|| 2 12 2
2, ( )( , ( ) )r r
ID i
r
d
rd g gg H idH ID
1 0( ) jj ID
H ID u u
2 0( ) jj id
H id v v
ID
id
L’identité d’un utilisateur est ID || id
Deux vecteurs U = ( u0, u1, … un) G2n+1 et V = ( v0, v1, … vn) G2
n+1
Chiffré : 1 1 22 (( ( , ) , , ( ) , ))tt t te g g M g H H idID
Diffusion basé sur l’identité
Méthode naïve: combiner tous les chiffrés
ID
id1 id2idN
2 1 21 2 1 2 2( ) , ( ) ,..., (( ( , ) , , ( ) ), )t t tN
t t t H ide g g M g H id H idH ID
0,..,( )tj j nv 2 ( ) , pour tout tH id id Etant donné : On peut calculer:
- Chiffrement basé sur ID (identité du groupe)
- Tous les ID||id avec id= id1,…,idN
peuvent faire le déchiffrement
1 2 1 0,..,( ( )( , ) , , ( ) , )t t t tj j ne g g M g H ID v
Chiffré unique:
Problème principal : que peut faire le traceur?
0,..,( )tj j nv
1 2 1 0,..,( ( , ) , , ( ) , ( ) )t t t tj j ne g g M g H ID v Chiffré:
2 0( )t t tj
j id
H id v v
Coalition d’utilisateurs (1)
Considérer une coalition T = {id1, …, idc}
Lemme 1 : si idi[k] = 0, pour tout i = 1,…,c,
T ne peut pas distinguer entre :
et
où (vk)t est remplacé par un aléa R,
sous l’hypothèse que le problème Diffie-Hellman décisionnel dans le groupe G2 est difficile
1 2 1 0,.., 1 1,..,( ( , ) , , ( ) , ( ) , , ( ) )t t t t tj j k j j k ne g g M g H ID v R v
1 2 1 0,.., 1 1,..,( ( , ) , , ( ) , ( ) , , ( ) )tk
t t t t tj j k j j k ne g g M g H ID v vv
Coalition d’utilisateurs (2)
Considérer une coalition T = {id1, …, idc}
Lemme 2 : si idi[k] = 1, pour tout i = 1,…,c
le déchiffrement de T sur
est différent de M,
sous l’hypothèse que le problème Diffie-Hellman bilinéaire est difficile
1 2 1 0,.., 1 1,..,( ( , ) , , ( ) , ( ) , , ( ) )t t t t tj j k j j k ne g g M g H ID v R v
Procédure de traçage
0,..,( )tj j nv
Pour chaque j = 0,…,n : remplacer vtj par un aléa
Si le décodeur déchiffre correctement, mettre w[j] =0Si le décodeur déchiffre incorrectement ou refuse de déchiffrer, mettre w[j] =1
w = 0 1 1 0 0 1 1 0….
c1 = 0 * 1 * * 1 * 0
c2 = * 1 * * 0 * * *
c3 = * * * 0 * * 1 0
Collusion
Codes résistants aux collusions [Boneh-Shaw95]
Si c1,c2,c3 sont des mots d’un code résistant
aux collusions
Alors, à partir de w, on peut tracer un des c1,c2,c3.
Exemple:
Traçage des traîtres basé sur l'identité : Chiffrement
Etant donné un code résistant aux collusions C(c, N, ) de longueur Génération de la clé pour l’utilisateur k du groupe ID (ID|| k)
k est associé d'un mot ck (choisi aléatoirement) du code CLa clé de l’ID|| k est :
1 2 1 2|| 2 1 2( ( ) ( ) , , )
r r r r
ID k kd g H ID H c g g Chiffré diffusé pour le groupe ID:
1 2 1 0,..,( ( , ) , , ( ) , ( ) )t t t tj je g g M g H ID v
Théorème : si une coalition de c utilisateurs arrive à produire un décodeur pirate intraçable, on peut donc casser la procédure de traçage pour le code C.
Discussion : efficacité du schéma
La taille du code :
Le code est long, les paramètres sont donc grands.
Les couplages utilisés sont des couplages asymétriques.
Le schéma ne supporte pas la traçabilité publique.
2 2 1( log log )O c N c
Conclusion
Couplages sur des courbes elliptiques en cryptographie
Premier schéma de traçage des traîtres basé sur l'identité :
des couplages des codes résistants aux collusions
Pistes d’amélioration :d’autres types de codestraçabilité publique