France Télécom Recherche & Développement Traçage des traîtres fondé sur des couplages Duong...

Post on 03-Apr-2015

108 views 0 download

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