Efficient KDM-CCA Secure Public-Key Encryption for Polynomial Functions
Shuai Han, Shengli Liu, and Lin Lyu
- 1. Shanghai Jiao Tong University
- 2. State Key Laboratory of Cryptology
- 3. Westone Cryptologic Research Center
Efficient KDM-CCA Secure Public-Key Encryption for Polynomial - - PowerPoint PPT Presentation
Efficient KDM-CCA Secure Public-Key Encryption for Polynomial Functions Shuai Han, Shengli Liu, and Lin Lyu 1. Shanghai Jiao Tong University 2. State Key Laboratory of Cryptology 3. Westone Cryptologic Research Center Asiacrypt 2016, Hanoi,
(pk, sk) ←$ Gen(prm)
(pk, sk) ←$ Gen(prm)
pke.ct ←$ Enc(pk, m)
(pk, sk) ←$ Gen(prm)
pke.ct ←$ Enc(pk, m)
m ← Dec(sk, pke.ct)
(pk1, sk1) ←$ Gen(prm) (pki, ski) ←$ Gen(prm) (pkn, skn) ←$ Gen(prm) pk1, · · · , pkn
(pk1, sk1) ←$ Gen(prm) (pki, ski) ←$ Gen(prm) (pkn, skn) ←$ Gen(prm) pk1, · · · , pkn f
(pk1, sk1) ←$ Gen(prm) (pki, ski) ←$ Gen(prm) (pkn, skn) ←$ Gen(prm) pk1, · · · , pkn
pke.ct∗ ←$ Enc(pki, f(sk1, · · · , skn)) pke.ct∗ ←$ Enc(pki, 0)
f
(pk1, sk1) ←$ Gen(prm) (pki, ski) ←$ Gen(prm) (pkn, skn) ←$ Gen(prm) pk1, · · · , pkn
pke.ct∗ ←$ Enc(pki, f(sk1, · · · , skn)) pke.ct∗ ←$ Enc(pki, 0)
pke.ct∗ f
(pk1, sk1) ←$ Gen(prm) (pki, ski) ←$ Gen(prm) (pkn, skn) ←$ Gen(prm) pk1, · · · , pkn
pke.ct∗ ←$ Enc(pki, f(sk1, · · · , skn)) pke.ct∗ ←$ Enc(pki, 0)
pke.ct∗
pke.ct
f
(pk1, sk1) ←$ Gen(prm) (pki, ski) ←$ Gen(prm) (pkn, skn) ←$ Gen(prm) pk1, · · · , pkn
pke.ct∗ ←$ Enc(pki, f(sk1, · · · , skn)) pke.ct∗ ←$ Enc(pki, 0)
pke.ct∗
pke.ct
f m ← Dec(ski, pke.ct)
(pk1, sk1) ←$ Gen(prm) (pki, ski) ←$ Gen(prm) (pkn, skn) ←$ Gen(prm) pk1, · · · , pkn
pke.ct∗ ←$ Enc(pki, f(sk1, · · · , skn)) pke.ct∗ ←$ Enc(pki, 0)
pke.ct∗
pke.ct
f m ← Dec(ski, pke.ct) m
n
poly: the set of polynomial functions of bounded degree d.
1 · · · skcn n
n
poly: the set of polynomial functions of bounded degree d.
1 · · · skcn n
PKE Scheme KDM-CPA Function Set KDM-CCA?
Assumption [BHHO’08], [BG’10] Faff
O(ℓ) |G| DDH/QR/DCR [ACPS’09] Faff
O(1) |G| LWE [BGK’11] Fd
poly
O(ℓd+1) |G| DDH/LWE [MTY’11] Fd
poly
O(d) |G| DCR – ℓ: security parameter. – d: bounded degree of polynomial functions.
PKE Scheme KDM-CCA Function Set KDM-CCA?
Assumption [BHHO’08] + [CCS’09] Faff
O(ℓ) |G| DDH [Hofheinz’13] Fcirc
O(1) |G| DDH & DCR [LLJ’15] Faff ?
DDH & DCR – ℓ: security parameter. – d: bounded degree of polynomial functions.
PKE Scheme KDM-CCA Function Set KDM-CCA?
Assumption Our first scheme Faff
O(1) |G| DDH & DCR Our second scheme Fd
poly
O(d9) |G| DDH & DCR
PKE Scheme KDM-CCA Function Set KDM-CCA?
Assumption Our first scheme Faff
O(1) |G| DDH & DCR Our second scheme Fd
poly
O(d9) |G| DDH & DCR
poly]-CCA
The LLJ Scheme
AE
DDH INT-Faff-RKA
KDM[Faff]-CCA
?
No trapdoor
DDH tuple or Random tuple forgery Decision bit: 0/1 Decision procedure Adversary against
INT-Faff-RKA AE
1, gr 2, gr(k1+k3t) 1
2
1, gr 2, gr(k1+k3t) 1
2
f : (k1, k2, k3, k4) −→ (
4
ai,1 · ki + b1,
4
ai,2 · ki + b2,
4
ai,3 · ki + b3,
4
ai,4 · ki + b4)
Alice Bob
Alice Bob
Alice Bob
aiae.ct ←$ AIAE.Enc(k, m, aux)
aiae.ct, aux
Alice Bob
aiae.ct ←$ AIAE.Enc(k, m, aux) m ← AIAE.Dec(k, aiae.ct, aux)
aiae.ct, aux
Alice Bob
aiae.ct ←$ AIAE.Enc(k, m, aux) m ← AIAE.Dec(k, aiae.ct, aux)
aiae.ct, aux
f, m, aux
f, m, aux
aiae.ct ←$ AIAE.Enc(f(k), m, aux)
aiae.ct
f, m, aux
aiae.ct ←$ AIAE.Enc(f(k), m, aux)
aiae.ct
f, m, aux
aiae.ct ←$ AIAE.Enc(f(k), m, aux) f ∗, aiae.ct∗, aux∗
aiae.ct
f, m, aux
aiae.ct ←$ AIAE.Enc(f(k), m, aux) f ∗, aiae.ct∗, aux∗
1
AIAE.Dec(f ∗(k), aiae.ct∗, aux∗) , ?
2
Special rule
DDH tuple or Random tuple forgery Decision procedure Sample trapdoor itself Adversary against
weak INT-Fraff-RKA
AIAE
Decision bit: 0/1
f : (k1, k2, k3, k4) −→ (a · k1 + b1, a · k2 + b2, a · k3 + b3, a · k4 + b4)
The LLJ Scheme
AE
DDH INT-Faff-RKA
KDM[Faff]-CCA
pk KEM.Enc AIAE.Enc kem.ct aux = kem.ct aiae.ct
k
aiae.ct kem.ct aux = kem.ct k sk
m
AIAE.Dec KEM.Dec
m
E.Enc E.ct E.ct E.Dec
pk KEM.Enc AIAE.Enc kem.ct aux = kem.ct
k
aiae.ct
m
E.Enc E.ct
pk Enc Enc ct .ct aiae.ct
k
ct kem.ct aux = kem.ct k sk
m
AIAE.Dec KEM.Dec
m
Enc .ct E.ct E.Dec
pk KEM.Enc AIAE.Enc kem.ct aux = kem.ct
k
aiae.ct E.Enc E.ct f(sk)
sk mod N
sk
N sk mod φ(N)
sk
KEM.Enc AIAE.Enc kem.ct aux = kem.ct
k
aiae.ct E.Enc f(sk) sk E.ct
sk mod φ(N)
KEM.Enc AIAE.Enc kem.ct aux = kem.ct
k
aiae.ct f(sk) sk
I E.Enc
E.ct
sk mod N
sk
sk mod N
AIAE.Enc aux = kem.ct aiae.ct f(sk) sk
I E.Enc K KEM.Enc
sk mod φ(N)
E.ct
k
kem.ct hides k∗
k = fraff(k∗) for some base key k∗
sk mod N
sk
aiae.ct kem.ct aux = kem.ct k sk AIAE.Dec KEM.Dec
m
E.ct E.Dec
sk mod N
sk
N sk mod φ(N)
sk
k
aiae.ct kem.ct aux = kem.ct sk AIAE.Dec E.ct E.Dec
sk mod φ(N)
K KEM.Dec
m
sk mod N
sk
aiae.ct kem.ct aux = kem.ct sk AIAE.Dec E.ct
sk mod φ(N)
K KEM.Dec k J E.Dec m
sk mod φ(N)
sk mod N
sk
sk mod N
AIAE.Enc aux = kem.ct aiae.ct f(sk) sk
I E.Enc
sk mod φ(N)
E.ct
k
hides k∗
K K KEM.Enc
k = fraff( k
∗) for some base key k ∗
kem.ct
sk mod N
sk
sk mod N
sk
sk mod N
AIAE.Enc aux = kem.ct f(sk) sk
I E.Enc
hides k∗
k = fraff( k
∗) for some base key k ∗
kem.ct
K K KEM.Enc k
aiae.ct
sk mod N
AIAE.Enc aux = kem.ct f(sk) sk
I E.Enc
hides k∗
k = fraff( k
∗) for some base key k ∗
kem.ct
K K KEM.Enc k
aiae.ct
pk KEM.Enc AIAE.Enc kem.ct aux = kem.ct aiae.ct
k
aiae.ct kem.ct aux = kem.ct k sk
m
AIAE.Dec KEM.Dec
m
E.Enc E.ct E.ct E.Dec
poly.
poly. sk mod N
sk
pk KEM.Enc AIAE.Enc kem.ct aux = kem.ct aiae.ct
k
aiae.ct kem.ct aux = kem.ct k sk
m
AIAE.Dec KEM.Dec
m
E.Enc E.ct E.ct E.Dec
poly.
poly. sk mod N
sk
E.Enc E.ct f(sk) pk
1
g−y1
2
2
g−y2
3
3
g−y3
4
4
g−y4
5
E.Enc E.ct f(sk) pk
1
g−y1
2
2
g−y2
3
3
g−y3
4
4
g−y4
5
uj,1 uj,2 · · · uj,8 = g
rj,1 1
g
rj,1 2
g
rj,2 2
g
rj,2 3
g
rj,3 3
g
rj,3 4
g
rj,4 4
g
rj,4 5
. vj = h
rj,1 1
h
rj,2 2
h
rj,3 3
h
rj,4 4
.
E.Enc E.ct f(sk) pk
1
g−y1
2
2
g−y2
3
3
g−y3
4
4
g−y4
5
uj,1 uj,2 · · · uj,8 = g
rj,1 1
g
rj,1 2
g
rj,2 2
g
rj,2 3
g
rj,3 3
g
rj,3 4
g
rj,4 4
g
rj,4 5
. vj = h
rj,1 1
h
rj,2 2
h
rj,3 3
h
rj,4 4
.
u0,1 u0,2
· · ·
u0,8 u1,1 · v0 u1,2
· · ·
u1,8 u2,1 u2,2 · v1 · · · u2,8
. . . . . . ... . . .
u8,1 u8,2
· · ·
u8,8 · v7 .
t = gf(sk) mod φ(N)
1
sk E.Enc E.ct f(sk)
uj,1 uj,2 · · · uj,8 = g
rj,1 1
g
rj,1 2
g
rj,2 2
g
rj,2 3
g
rj,3 3
g
rj,3 4
g
rj,4 4
g
rj,4 5
. vj = h
rj,1 1
h
rj,2 2
h
rj,3 3
h
rj,4 4
.
vj = u−x1
j,1 u−y1 j,2 u−x2 j,3 u−y2 j,4 u−x3 j,5 u−y3 j,6 u−x4 j,7 u−y4 j,8
u0,1 u0,2
· · ·
u0,8
⇒ ˆ
v0 = v0 u1,1 · v0 u1,2
· · ·
u1,8
⇒ ˆ
v1 = v1 u2,1 u2,2 · v1 · · · u2,8
⇒ ˆ
v2 = v2
. . . . . . ... . . .
u8,1 u8,2
· · ·
u8,8 · v7 ⇒ ˆ v8 = v8
sk E.Enc E.ct f(sk)
uj,1 uj,2 · · · uj,8 = g
rj,1 1
g
rj,1 2
g
rj,2 2
g
rj,2 3
g
rj,3 3
g
rj,3 4
g
rj,4 4
g
rj,4 5
. vj = h
rj,1 1
h
rj,2 2
h
rj,3 3
h
rj,4 4
.
vj = u−x1
j,1 u−y1 j,2 u−x2 j,3 u−y2 j,4 u−x3 j,5 u−y3 j,6 u−x4 j,7 u−y4 j,8
u0,1 u0,2
· · ·
u0,8
⇒ ˆ
v0 = v0 u1,1 · v0 u1,2
· · ·
u1,8
⇒ ˆ
v1 = v1 u2,1 u2,2 · v1 · · · u2,8
⇒ ˆ
v2 = v2
. . . . . . ... . . .
u8,1 u8,2
· · ·
u8,8 · v7 ⇒ ˆ v8 = v8
v8 · T f(sk). t = gf(sk) mod φ(N)
1
sk mod φ(N)
I E.Enc
E.ct f(sk) sk
uj,1 uj,2 · · · uj,8 = g
rj,1 1
g
rj,1 2
g
rj,2 2
g
rj,2 3
g
rj,3 3
g
rj,3 4
g
rj,4 4
g
rj,4 5
. vj = h
rj,1 1
h
rj,2 2
h
rj,3 3
h
rj,4 4
.
vj = u−x1
j,1 u−y1 j,2 u−x2 j,3 u−y2 j,4 u−x3 j,5 u−y3 j,6 u−x4 j,7 u−y4 j,8
u0,1 u0,2
· · ·
u0,8
⇒ ˆ
v0 = v0 u1,1 · v0 · Ta
· · ·
u1,8
⇒ ˆ
v1 = v1 · T−ax1 u2,1 u2,2 · v1 · · · u2,8
⇒ ˆ
v2 = v2 · T−ax1y1
. . . . . . ... . . .
u8,1 u8,2
· · ·
u8,8 · v7 ⇒ ˆ v8 = v8 · T−ax1y1···x4y4 = v8 ·T−f(sk)
sk mod φ(N)
I E.Enc
E.ct f(sk) sk
uj,1 uj,2 · · · uj,8 = g
rj,1 1
g
rj,1 2
g
rj,2 2
g
rj,2 3
g
rj,3 3
g
rj,3 4
g
rj,4 4
g
rj,4 5
. vj = h
rj,1 1
h
rj,2 2
h
rj,3 3
h
rj,4 4
.
vj = u−x1
j,1 u−y1 j,2 u−x2 j,3 u−y2 j,4 u−x3 j,5 u−y3 j,6 u−x4 j,7 u−y4 j,8
u0,1 u0,2
· · ·
u0,8
⇒ ˆ
v0 = v0 u1,1 · v0 · Ta
· · ·
u1,8
⇒ ˆ
v1 = v1 · T−ax1 u2,1 u2,2 · v1 · · · u2,8
⇒ ˆ
v2 = v2 · T−ax1y1
. . . . . . ... . . .
u8,1 u8,2
· · ·
u8,8 · v7 ⇒ ˆ v8 = v8 · T−ax1y1···x4y4 = v8 ·T−f(sk)
v8 · T f(sk) ⇒ e = v8. t = gf(sk) mod φ(N)
1
sk mod φ(N)
I E.Enc
E.ct f(sk) sk
uj,1 uj,2 · · · uj,8 = g
rj,1 1
g
rj,1 2
g
rj,2 2
g
rj,2 3
g
rj,3 3
g
rj,3 4
g
rj,4 4
g
rj,4 5
. vj = h
rj,1 1
h
rj,2 2
h
rj,3 3
h
rj,4 4
.
u0,1 u0,2
· · ·
u0,8 u1,1 · v0 · Ta
· · ·
u1,8 u2,1 u2,2 · v1 · · · u2,8
. . . . . . ... . . .
u8,1 u8,2
· · ·
u8,8 · v7
t = gf(sk) mod φ(N)
1
sk mod φ(N)
I E.Enc
E.ct f(sk) sk
uj,1 uj,2 · · · uj,8 = g
rj,1 1
g
rj,1 2
g
rj,2 2
g
rj,2 3
g
rj,3 3
g
rj,3 4
g
rj,4 4
g
rj,4 5
. vj = h
rj,1 1
h
rj,2 2
h
rj,3 3
h
rj,4 4
.
u0,1 u0,2
· · ·
u0,8 u1,1 · v0 · Ta
· · ·
u1,8 u2,1 u2,2 · v1 · · · u2,8
. . . . . . ... . . .
u8,1 u8,2
· · ·
u8,8 · v7
t = gf(sk) mod φ(N)
1
1 yc2 1 · · · xc7 4 yc8 4 .
1 yc2 1 · · · xc7 4 yc8 4 .
c
1 yc2 1 · · · xc7 4 yc8 4 .
c
1 yc2 1 ···xc7 4 yc8 4 .
1 yc2 1 · · · xc7 4 yc8 4 .
c
1 yc2 1 ···xc7 4 yc8 4 .
c
c
−
c
a(c1,···,c8)·xc1
1 yc2 1 ···xc7 4 yc8 4 · T f(sk) =
c
1 yc2 1 · · · xc7 4 yc8 4 .
c
1 yc2 1 ···xc7 4 yc8 4 .
c
c
−
c
a(c1,···,c8)·xc1
1 yc2 1 ···xc7 4 yc8 4 · T f(sk) =
c
poly]-CCA secure PKE with almost compact ciphertexts.