Traçage des traîtres fondé sur des couplages

Slides:



Advertisements
Présentations similaires
Structures de données avancées : MLH (Multidimensional linear hashing)
Advertisements

Chap. 4 Recherche en Table
État de l’art de la sécurité informatique
Systèmes d ’Information :
Algorithmes et structures de données avancés
Sécurité des communications & PKI
La politique de Sécurité
Enseigner l’arithmétique en série L
I CRYPTOLOGIE traditionnelle Sommaire 1.Les fondements p. 9 2.Confusion & Diffusion p Cryptages composés p. 39.
II. 2 Les protocoles simples Sommaire 1.Authentification 2.Signature électronique 3.Certification.
Courbes elliptiques.
Cryptographie basée sur les codes
Identity-based identification and signature schemes using correcting codes. KLEIN Pauline - COUTUROU Jeanne.
Programmes du cycle terminal
Améliorer les performances du chiffrage à flot SYND
Applications de la mécanique quantique: La Cryptographie Quantique
Cryptographie Mener des Activités en classe
Lois de la statique Equilibre des solides.
CryptoGraphy
Fondements de la Cryptographie
Preuves interactives: IP, AM, MA et isomorphisme de graphe
Structure de causalité bivariée
Methode de Tri efficace
INF4420: Sécurité Informatique
Densité des N-uplets pythagoriciens
? EPFL Playstations 3 Cryptologie Internet Sécurité Algorithme RSA
Les Algorithmes Cryptographiques Symétriques
Le Partage de Clés Cryptographiques : Théorie et Pratique
Cryptographie Réalisé par TOUJENI Noura BEN SOUISSI Rania KARAOUD Imen
Etude dune bibliothèque: Permutations sur les listes.
Intégrité II Les systèmes à clé publique
Présentation dans le cadre du congrès mathématique
Mise en oeuvre des MMCs L'utilisation des MMCs en reconnaissance des formes s'effectue en trois étapes : définition de la topologie de la chaîne de Markov,
Introduction au calcul quantique
La recherche scientifique
Sous-espaces vectoriels engendrés
Analyse des Algorithmes
Cryptographie - 2.
Un peu de maths (et d’info)
Géométrie épipolaire (deux vues)
Pr BELKHIR Abdelkader Master RSD Sécurité des systèmes informatiques
Le chiffrement asymétrique
Le chiffrement symétrique
DU1 Sécurité : DU Commerce Electronique Michel de Rougemont Université Paris II Les systèmes à clé publique: RSA.
La sécurité dans les réseaux mobiles Ad hoc
Le protocole d’authentification
Les Algorithmes Cryptographiques Asymétriques
Programmation linéaire en nombres entiers
Attaque du protocoles RSA Yoann Moulin ESISAR IR - P2004
Pr BELKHIR Abdelkader USTHB
Introduction classique Moderne Future … chiffrement par substitution
Septembre Semaines du 2 au 13 septembre DATECOURSEXERCICESEXERCICES à fairePOUR le Jeudi 4 Prise de contact Rappels sur les suites 2 exemples donnés pour.
Structures de données avancées : Fichiers multidimensionnels Pr ZEGOUR DJAMEL EDDINE Ecole Supérieure d’Informatique (ESI) zegour.esi.dz
Cryptographie.
Chapitre 3: Translation et Vecteurs
Mathématiques Discrètes Chapitre 2 (section 3)
Probabilités et Statistiques
Recherche de motifs par projections aléatoires
Codes cycliques Hypothèse sur V = vocabulaire source Code linéaire - caractérisation Codage et décodage d’un code linéaire Code cyclique – caractérisation.
Primalité et génération de nombres premiers
Algorithmique et Complexité
Réalisation d’un logiciel de Chiffrement RSA.
Structures de données avancées : MLH (Multidimensional linear hashing) D. E ZEGOUR Institut National d ’Informatique.
La sécurité informatique
Nous allons traiter de la signature électronique.
Introduction à la cryptographie cours 2: Chiffrement par flot
Chap. 3 Récursion et induction. Les définitions par récurrence consistent à construire des objets finis, à partir d'autres, selon certaines règles. Les.
Novembre 2003 Simulation numérique en vibro-acoustique par couplage de deux codes parallèles Unité de Recherche Calcul à Haute Performance François-Xavier.
Complexité algorithmique
Transcription de la présentation:

Traçage des traîtres fondé sur des couplages Duong 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ées avec traçage des traîtres

Chiffrement vs. Diffusion de données chiffrées Alice Alice Chiffrement à clé publique Centre Diffusion de données chiffrées

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] Le chiffrement à clé publique, où la clé publique est l'identité du destinataire (qui peut être une suite arbitraire de bits) Alice clé ? Inconvénient : les clés secrètes doivent être fournies par une autorité (PKG). PKG

Diffusion de données chiffrées basée sur l’identité Centre 1 Centre 2 Centre 3 Modèle classique Groupe 1 : maths clé ? PKG Groupe 2 : info Bob Alice M ? Groupe 3 : éco Charlie

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é c m A Challengeur Pirate (ID*, D) (ID*, D) params T : coalition de traîtres Challengeur ID1||id1 Pirate A params , ID2 ||id2, …, IDc ||idc ID2 ||id2 IDc ||idc … Setup KeyGen dID1||id1 , dID2 ||id2 , …, dIDm ||idm (ID*, D) (ID*, D) c (ID*, D) m S

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.

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ù :

RSA ou Diffie-Hellman (bits) Taille de la clé Taille de la clé symétrique (bits) Taille de la clé RSA ou Diffie-Hellman (bits) 80 1024 112 2048 128 3072 192 7680 256 15360 Source : NIST Recommended Key Sizes

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.

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 = (3xP2 + a) ∕ 2yP si P = Q xR = s2 - xP - xQ yR = -yP + s(xP - xR) L’associativité est bien vérifiée O

Log discret sur le groupe des points sur une courbe elliptique : Complexité ( 2y opérations) Taille de la clé ( x bits)

Comparaison 521 15360 256 384 7680 192 3072 128 224 2048 112 160 1024 80 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 : Skip

Couplage de Weil : un peu plus détail (1) Diviseurs sur E : Diviseur principale (diviseur associé à une fonction rationnelle f sur E) : Théorème : (pour les courbes hyperelliptiques, il n’existe pas cette isomorphisme et il faut donc travailler directement sur )

Couplage de Weil : un peu plus détail (2) 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:

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)>  e : G1 × G2 → GT

Couplages en cryptographie e : G1 × G2 → GT (G1, G2, GT sont considérés comme des groupes multiplicatifs) est: Bilinéaire : e(g1a, g2b) = e(g1, g2)ab pour tout a,b Zn , g1G1 , g2  G2 Non-dégénéré : e(g1, g2) ≠ 1 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 ECDLP(g1,g1a) = DLP(e(g1,g2), e(g1a,g2)) e : G1 × G2 → GT 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.

Pourquoi les couplages présente des avantages ? Intuition e : G1 × G2 → GT Avantage : il nous permet de résoudre un problème analogue au problème de Diffie-Hellman gT = e(g1, g2). Etant donné g1a, g2b, on peut calculer gTa = e(g1a, g2), gTb = e(g1, g2b) et gTab = e(g1a, g2b) sans avoir besoin de connaître a,b Exemple [Joux 01] : protocol d’échange de clé de trois parties

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 : Chiffrement Signature: Signature du group sans oracle aléatoire Diffusion 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’2r , g2r), pour r R Zq Déchiffrement: gTr = ê(Ku, g’2r) ê(Kuu, g2r).

Décodeur pirate anonyme Utilisateur u : randomiser (Ku, Kuu) X0 = Ku g2 z0 , pour z0 R Zq X1 = Kuu (g’2)-z0 Un décodeur pirate (X0,X1) gr = ê(X0, g’2r) ê(X1, g2r) 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 a0 )-1

Traçage des traîtres basé sur l’identité

Chiffrement basé sur l’identité de Waters Centre : e : G1 × G2 → GT 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

Chiffrement Génération de la clé pour ID : Etant donné L’utilisateur ID peut calculer Chiffré:

Chiffrement à 2 niveaux L’identité d’un utilisateur est ID || id Deux vecteurs U = ( u0, u1, … un)  G2n+1 et V = ( v0, v1, … vn)  G2n+1 Génération de la clé pour ID|| id : Chiffré :

Diffusion basé sur l’identité - Chiffrement basé sur ID (identité du groupe) - Tous les ID||id avec id= id1,…,idN peuvent faire le déchiffrement idN id1 id2 Méthode naïve: combiner tous les chiffrés Etant donné : On peut calculer: Chiffré unique:

Problème principal : que peut faire le traceur? Chiffré: Idée: jouer sur une partie du chiffré Considérer un membre id : Si id[j] = 0, remplacer vtj par un aléa n'affecte pas id En effet: H2(id)t ne dépend pas de vtj Si id[j] = 1, remplacer vtj par un aléa rend H2(id)t aléatoire et donc id recevra un clair randomisé

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

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

Procédure de traçage Pour chaque j = 0,…,n : remplacer vtj par un aléa Si le décodeur déchiffre correctement, mettre w[j] =0 Si le décodeur déchiffre incorrectement ou refuse de déchiffrer, mettre w[j] =1 Exemple: 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. w = 0 1 1 0 0 1 1 0…. c1 = 0 * 1 * * 1 * 0 c2 = * 1 * * 0 * * * c3 = * * * 0 * * 1 0 Collusion

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 C La clé de l’ID|| k est : Chiffré diffusé pour le groupe ID: 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.

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 codes traçabilité publique