Académique Documents
Professionnel Documents
Culture Documents
Davide Alessio
Plan de l’exposé
Introduction
Définitions
Anonymat révocable
Présentation du problème
Contribution 1 : transformation générique
Contribution 2 : schéma à double trappe
Conclusion
Plan de l’exposé
Introduction
Définitions
Anonymat révocable
Présentation du problème
Contribution 1 : transformation générique
Contribution 2 : schéma à double trappe
Conclusion
Plan de l’exposé
Introduction
Définitions
Anonymat révocable
Présentation du problème
Contribution 1 : transformation générique
Contribution 2 : schéma à double trappe
Conclusion
Plan de l’exposé
Introduction
Définitions
Anonymat révocable
Présentation du problème
Contribution 1 : transformation générique
Contribution 2 : schéma à double trappe
Conclusion
Plan de l’exposé
Introduction
Définitions
Anonymat révocable
Présentation du problème
Contribution 1 : transformation générique
Contribution 2 : schéma à double trappe
Conclusion
Définition
R
Setup : Paramètres publics : I ← Setup(κ)
Génération des clés : Exécuté une fois par utilisateur.
R
(pk, sk) ← KeyGen(I)
Chiffrement : c ← Encrypt(m, pk)
Déchiffrement : m ← Decrypt(c, sk)
Propriétés
Complétude : le message peut être déchiffré
Sécurité : seul qui possède la bonne clé peut déchiffrer
Définition d’adversaire
Définition d’adversaire
la clé secrète
le message en clair
but :
la sécurité sémantique
la non-malléabilité
oracle de chiffrement (adaptatif)
moyens :
oracle de déchiffrement (adaptatif)
Définition d’adversaire
la clé secrète
le message en clair
but :
la sécurité sémantique
la non-malléabilité
oracle de chiffrement (adaptatif)
moyens :
oracle de déchiffrement (adaptatif)
Définition d’adversaire
la clé secrète
le message en clair
but :
la sécurité sémantique
la non-malléabilité
oracle de chiffrement (adaptatif)
moyens :
oracle de déchiffrement (adaptatif)
Définition d’adversaire
la clé secrète
le message en clair
but :
la sécurité sémantique
la non-malléabilité
oracle de chiffrement (adaptatif)
moyens :
oracle de déchiffrement (adaptatif)
Définition d’adversaire
la clé secrète
le message en clair
but :
la sécurité sémantique
la non-malléabilité
oracle de chiffrement (adaptatif)
moyens :
oracle de déchiffrement (adaptatif)
Définition d’adversaire
la clé secrète
le message en clair
but :
la sécurité sémantique
la non-malléabilité
oracle de chiffrement (adaptatif)
moyens :
oracle de déchiffrement (adaptatif)
Définition d’adversaire
la clé secrète
Scénario leusuel
message en clair
but :
la sécurité sémantique
la non-malléabilité
Sécurité sémantique et oracle de chiffrement
oracle de chiffrement (adaptatif)
(IND-CPA)
moyens :
oracle de déchiffrement (adaptatif)
Définition
Un chiffrement à clé publique est indistinguable (ou
sémantiquement sûr) si
R R
I ← Setup(κ), (pk, sk) ← KeyGen(I),
Pr R :
(m0 , m1 , s) ← A1 (pk), b ← {0, 1}, c ← Encrypt(mb, pk)
1
A2 (s, c) = b −
2
est négligeable
Anonymat et key-privacy
Anonymat et key-privacy
Définition
Un chiffrement à clé publique est anonyme (ou key-private) si
R R
I ← Setup(κ), {(pk0 , sk0 ), (pk1 , sk1 )} ← KeyGen(I),
Pr R :
(m, s) ← A1 (pk0 , pk1 ), b ← {0, 1}, c ← Encrypt(m, pkb )
1
A2 (s, c) = b −
2
est négligeable
Plan de l’exposé
Introduction
Définitions
Anonymat révocable
Présentation du problème
Contribution 1 : transformation générique
Contribution 2 : schéma à double trappe
Conclusion
Anonymat révocable
• Contexte :
• commerce électronique,
• fournisseurs de contenu numérique,
• communication hiérarchique
• ...
• But
• garder l’anonymat du destinataire
• permettre à l’envoyeur de connaître l’identité de son
interlocuteur
Solution
Un compromis entre les besoins du vendeur et les souhaits de
l’acheteur
Anonymat révocable
• Contexte :
• commerce électronique,
• fournisseurs de contenu numérique,
• communication hiérarchique
• ...
• But
• garder l’anonymat du destinataire
• permettre à l’envoyeur de connaître l’identité de son
interlocuteur
Solution
Un compromis entre les besoins du vendeur et les souhaits de
l’acheteur
Contexte :
• Environnement homogène
• Envoyeur honnête
Contexte :
• Environnement homogène
• Envoyeur honnête
Notre formalisation
Définition
Un schéma de chiffrement à clé publique avec l’anonymat
révocable est la donnée de 5 algorithmes :
(Setup, KeyGen, Encrypt, Decrypt, Trace)
Notre formalisation
Définition
Un schéma de chiffrement à clé publique avec l’anonymat
révocable est la donnée de 5 algorithmes :
(Setup, KeyGen, Encrypt, Decrypt, Trace)
Solution simple
Concaténer au message chiffré c1 l’identité chiffrée du
destinataire c2 .
c = (Encrypt(m, upk), Encrypt(upk, tpk))
| {z } | {z }
c1 c2
Solution simple
Concaténer au message chiffré c1 l’identité chiffrée du
destinataire c2 .
c = (Encrypt(m, upk), Encrypt(upk, tpk))
| {z } | {z }
c1 c2
Solution simple
Concaténer au message chiffré c1 l’identité chiffrée du
destinataire c2 .
c = (Encrypt(m, upk), Encrypt(upk, tpk))
| {z } | {z }
c1 c2
Notrenon
Solution solution
optimale: :«Malléable
lier » c1 et c2
c2 peut être corrompu → perte de traçabilité
+ Autorité de Traçage, S Id
Transformation : Description
ENTRÉE SMsg = ( Setup, KeyGen, MsgEnc, MsgDec)
R
Setup I ← RevSetup(κ) = Setup(κ)
E et KDF sont choisis pendant cette phase
R
Génération de clés (upk, usk) ← RevKeyGen(I) = KeyGen(I).
La clé publique upk est enregistrée
Chiffrement c ← RevEnctpk (upk, m) =
= (IDEnctpk (upk), MsgEncupk (Ek (m))
où k = KDF(IDEnctpk (upk))
Déchiffrement 1. k 0 = KDF(c1 )
2. m ← Ek−1
0 (MsgDecusk (c2 ))
Transformation : Description
ENTRÉE SMsg = ( Setup, KeyGen, MsgEnc, MsgDec)
R
Setup I ← RevSetup(κ) = Setup(κ)
E et KDF sont choisis pendant cette phase
R
Génération de clés (upk, usk) ← RevKeyGen(I) = KeyGen(I).
La clé publique upk est enregistrée
Chiffrement c ← RevEnctpk (upk, m) =
= (IDEnctpk (upk), MsgEncupk (Ek (m))
où k = KDF(IDEnctpk (upk))
Déchiffrement 1. k 0 = KDF(c1 )
2. m ← Ek−1
0 (MsgDecusk (c2 ))
Transformation : Description
ENTRÉE SMsg = ( Setup, KeyGen, MsgEnc, MsgDec)
R
Setup I ← RevSetup(κ) = Setup(κ)
E et KDF sont choisis pendant cette phase
R
Génération de clés (upk, usk) ← RevKeyGen(I) = KeyGen(I).
La clé publique upk est enregistrée
Chiffrement c ← RevEnctpk (upk, m) =
= (IDEnctpk (upk), MsgEncupk (Ek (m))
où k = KDF(IDEnctpk (upk))
Déchiffrement 1. k 0 = KDF(c1 )
2. m ← Ek−1
0 (MsgDecusk (c2 ))
Transformation : Description
ENTRÉE SMsg = ( Setup, KeyGen, MsgEnc, MsgDec)
R
Setup I ← RevSetup(κ) = Setup(κ)
E et KDF sont choisis pendant cette phase
R
Génération de clés (upk, usk) ← RevKeyGen(I) = KeyGen(I).
La clé publique upk est enregistrée
Chiffrement c ← RevEnctpk (upk, m) =
= (IDEnctpk (upk), MsgEncupk (Ek (m))
où k = KDF(IDEnctpk (upk))
Déchiffrement 1. k 0 = KDF(c1 )
2. m ← Ek−1
0 (MsgDecusk (c2 ))
Transformation : Description
ENTRÉE SMsg = ( Setup, KeyGen, MsgEnc, MsgDec)
R
Setup I ← RevSetup(κ) = Setup(κ)
E et KDF sont choisis pendant cette phase
R
Génération de clés (upk, usk) ← RevKeyGen(I) = KeyGen(I).
La clé publique upk est enregistrée
Chiffrement c ← RevEnctpk (upk, m) =
= (IDEnctpk (upk), MsgEncupk (Ek (m))
où k = KDF(IDEnctpk (upk))
Déchiffrement 1. k 0 = KDF(c1 )
2. m ← Ek−1
0 (MsgDecusk (c2 ))
Anonymat révocable
Contributions :
• formalisation de la
primitive de l’anonymat
révocable
• définition d’une
transformation générique
• (application aux contextes
PKI et IBE)
• solution dans le contexte
du chiffrement diffusion
Anonymat révocable
Contributions :
• formalisation de la
primitive de l’anonymat
révocable
• définition d’une
transformation générique
• (application aux contextes
PKI et IBE)
• solution dans le contexte
du chiffrement diffusion
Remarque :
Amélioration possible du temps de déchiffrement
Un seul déchiffrement nécessaire
Technique due à [Bart et al. 2006]
Traçage . . .
Pour tracer, l’Autorité de Traçage :
1. . . .
2. . . .
Et interroge une base de données pour le lien
clé-propriétaire.
Remarque :
Techniques pour base de données sans fuites
(exemple : conserver une copie hashée)
Sécurité et Anonymat
Sécurité et Anonymat
Contributions
Plan de l’exposé
Introduction
Définitions
Anonymat révocable
Présentation du problème
Contribution 1 : transformation générique
Contribution 2 : schéma à double trappe
Conclusion
Sécurité prouvée
Symbole de Legendre
Comme le calculer ?
!
a p−1
≡a 2 mod p, ∀a ∈ (Z/pZ)∗ .
p
Définition
Soient p, q premiers et N = pq leur produit. Alors, ∀B ppt,
prenant en entrée un composite et un pseudo-carré z, qui donne en
sortie « z ∈ QR(N) » ou « z 6∈ QR(N) » :
" ! #
N ← KeyGen(κ),
Pr B = « z ∈ QR(N) » z ∈ QR(N) −
z ∈R J(N)
" ! #
N ← KeyGen(κ),
Pr B = « z ∈ QR(N) » z 6∈ QR(N)
z ∈R J(N)
est négligeable.
Sécurité sémantique
Réduction
Soit B l’algorithme qui suit :
Input: Un couple (N, z) où N = pq avec p, q premiers
impairs et z ∈ J(N)
Output: Un bit guess ∈ {, }
1: Pose la clé publique égale à pk = (N, y ) = (N, z)
2: Envoie la clé publique à l’adversaire A
3: Tire un bit aléatoire b ∈ {0, 1}, un élément
x ∈R (Z/NZ)∗ et calcule le chiffré challenge :
c = y bx 2 (mod N)
Avantage de B
(
si b = b 0
Stratégie de réponse : guess ←
6 b0
si b =
Probabilité que B donne la réponse correcte :
si z 6∈ QR(N) :
Pr [« z 6∈ QR(N) »] = Pr [b = b 0 |b 0 ← A(. . . ) ] = 1
2 + δA
si z ∈ QR(N) :
c = y b x 2 = z b x 2 = t 2b x 2 = (t b x )2 (mod N)
Pr [« z 6∈ QR(N) »] = Pr [b = b 0 |b 0 ← A(. . . ) ] = 1
2
1 1
AdvQRA (B) = − − δA .
2 2
AdvQRA non négligeable si A efficace ⇒ δA négligeable.
Avantage de B
(
si b = b 0
Stratégie de réponse : guess ←
6 b0
si b =
Probabilité que B donne la réponse correcte :
si z 6∈ QR(N) :
Pr [« z 6∈ QR(N) »] = Pr [b = b 0 |b 0 ← A(. . . ) ] = 1
2 + δA
si z ∈ QR(N) :
c = y b x 2 = z b x 2 = t 2b x 2 = (t b x )2 (mod N)
Pr [« z 6∈ QR(N) »] = Pr [b = b 0 |b 0 ← A(. . . ) ] = 1
2
1 1
AdvQRA (B) = − − δA .
2 2
AdvQRA non négligeable si A efficace ⇒ δA négligeable.
Avantage de B
(
si b = b 0
Stratégie de réponse : guess ←
6 b0
si b =
Probabilité que B donne la réponse correcte :
si z 6∈ QR(N) :
Pr [« z 6∈ QR(N) »] = Pr [b = b 0 |b 0 ← A(. . . ) ] = 1
2 + δA
si z ∈ QR(N) :
c = y b x 2 = z b x 2 = t 2b x 2 = (t b x )2 (mod N)
Pr [« z 6∈ QR(N) »] = Pr [b = b 0 |b 0 ← A(. . . ) ] = 1
2
1 1
AdvQRA (B) = − − δA .
2 2
AdvQRA non négligeable si A efficace ⇒ δA négligeable.
Avantage de B
(
si b = b 0
Stratégie de réponse : guess ←
6 b0
si b =
Probabilité que B donne la réponse correcte :
si z 6∈ QR(N) :
Pr [« z 6∈ QR(N) »] = Pr [b = b 0 |b 0 ← A(. . . ) ] = 1
2 + δA
si z ∈ QR(N) :
c = y b x 2 = z b x 2 = t 2b x 2 = (t b x )2 (mod N)
Pr [« z 6∈ QR(N) »] = Pr [b = b 0 |b 0 ← A(. . . ) ] = 1
2
1 1
AdvQRA (B) = − − δA .
2 2
AdvQRA non négligeable si A efficace ⇒ δA négligeable.
Avantage de B
(
si b = b 0
Stratégie de réponse : guess ←
6 b0
si b =
Probabilité que B donne la réponse correcte :
si z 6∈ QR(N) :
Pr [« z 6∈ QR(N) »] = Pr [b = b 0 |b 0 ← A(. . . ) ] = 1
2 + δA
si z ∈ QR(N) :
c = y b x 2 = z b x 2 = t 2b x 2 = (t b x )2 (mod N)
Pr [« z 6∈ QR(N) »] = Pr [b = b 0 |b 0 ← A(. . . ) ] = 1
2
1 1
AdvQRA (B) = − − δA .
2 2
AdvQRA non négligeable si A efficace ⇒ δA négligeable.
Généralisations et améliorations
Contribution
Performances
Sécurité sémantique
Trace de la preuve
Lemme &
Sous la QRA les distributions du chiffré du message mi = 2i est
indiscernable du chiffrement du message m0 = 0.
(Dans notre cas : mi ∈ {1, 2})
Lemme %
Si le chiffrement du message m0 = 0 est indistinguable
respectivement du chiffrement des messages m = 1, . . . , j alors il
est indistinguable du chiffrement du message m = j + 1.
Trace de la preuve
Lemme &
Sous la QRA les distributions du chiffré du message mi = 2i est
indiscernable du chiffrement du message m0 = 0.
(Dans notre cas : mi ∈ {1, 2})
Lemme %
Si le chiffrement du message m0 = 0 est indistinguable
respectivement du chiffrement des messages m = 1, . . . , j alors il
est indistinguable du chiffrement du message m = j + 1.
Dans ce cas :
c = y 2b x 4 = (y b x 2 )2 (mod N)
Dans ce cas :
c = y 2b x 4 = (y b x 2 )2 (mod N)
Dans ce cas :
c = y 2b x 4 = (y b x 2 )2 (mod N)
c = y mb x 4 (mod N)
Avantage de B
(
si b = b 0
Stratégie de réponse : guess ←
6 b0
si b =
Probabilité que B donne la réponse correcte :
si z 6∈ QR(N) :
Pr [« z 6∈ QR(N) »] = Pr [b = b 0 |b 0 ← A(. . . ) ] = 1
2 + δ1
si z ∈ QR(N) :
c = y b x 4 = z b x 4 = t 2b x 4 (mod N)
Pr [« z 6∈ QR(N) »] = Pr [b = b 0 |b 0 ← A(. . . ) ] = 1
2 + δ2
1 1
AdvQRA (B) = + δ1 − − δ2 = |δ1 − δ2 | .
2 2
Avantage de B
(
si b = b 0
Stratégie de réponse : guess ←
6 b0
si b =
Probabilité que B donne la réponse correcte :
si z 6∈ QR(N) :
Pr [« z 6∈ QR(N) »] = Pr [b = b 0 |b 0 ← A(. . . ) ] = 1
2 + δ1
si z ∈ QR(N) :
c = y b x 4 = z b x 4 = t 2b x 4 (mod N)
Pr [« z 6∈ QR(N) »] = Pr [b = b 0 |b 0 ← A(. . . ) ] = 1
2 + δ2
1 1
AdvQRA (B) = + δ1 − − δ2 = |δ1 − δ2 | .
2 2
Avantage de B
(
si b = b 0
Stratégie de réponse : guess ←
6 b0
si b =
Probabilité que B donne la réponse correcte :
si z 6∈ QR(N) :
Pr [« z 6∈ QR(N) »] = Pr [b = b 0 |b 0 ← A(. . . ) ] = 1
2 + δ1
si z ∈ QR(N) :
c = y b x 4 = z b x 4 = t 2b x 4 (mod N)
Pr [« z 6∈ QR(N) »] = Pr [b = b 0 |b 0 ← A(. . . ) ] = 1
2 + δ2
1 1
AdvQRA (B) = + δ1 − − δ2 = |δ1 − δ2 | .
2 2
Avantage de B
(
si b = b 0
Stratégie de réponse : guess ←
b 6= b 0
Si A1 est efficace : AdvQRA estnonsinégligeable . Absurde.
Probabilité que Ba donne
Adversaire la réponse
avantage correcte
négligeable : le: schéma est sûr
si z 6∈ QR(N) :
Pr [« z 6∈ QR(N) »] = Pr [b = b 0 |b 0 ← A(. . . ) ] = 1
2 + δ1
si z ∈ QR(N) :
c = y b x 4 = z b x 4 = t 2b x 4 (mod N)
Pr [« z 6∈ QR(N) »] = Pr [b = b 0 |b 0 ← A(. . . ) ] = 1
2 + δ2
1 1
AdvQRA (B) = + δ1 − − δ2 = |δ1 − δ2 | .
2 2
Plan de l’exposé
Introduction
Définitions
Anonymat révocable
Présentation du problème
Contribution 1 : transformation générique
Contribution 2 : schéma à double trappe
Conclusion
Conclusion
Anonymat révocable :
• formalisation de la primitive
• définition d’une transformation générique
• (application aux contextes PKI et IBE)
• solution dans le contexte du chiffrement diffusion
Conclusion
Chiffrement de Goldwasser-Micali :
• généralisation du schéma aux résidus 2k -ièmes
• amélioration de l’expansion du chiffré
• hypothèse algorithmique standard
• déchiffrement rapide
Perspectives
Merci !
Davide Alessio
Plan de l’exposé
Slides optionnels
Déchiffrement rapide
Déchiffrement rapide
Soit m ∈ M un message en clair. Considérons son expansion
binaire : m = k−1 i
i=0 mi 2 où mi ∈ {0, 1}. Soit maintenant
P
k
c = y m x 2 mod N son chiffré, avec x un entier non nul, alors
Pk−1 j Pi−1 j Pk−1 j
m 2k m2 m2 m2
y j=0 j y j=0 j y j=i j
c y x
= = = · =
p 2i p 2i p 2i p 2i p 2i
Pi−1 j Pk−i−1 2i Pi−1 j
mj 2 mj+i 2j m2
y j=0 j
y j=0 y j=0
= · = ·1=
p i p 2i p 2i
Pi−1 j 2
m2
y j=0 j
= =
p 2i
Pi−1 mj 2j
y j=0
= (mod p).
p 2i