Generic Construction of UC-Secure Oblivious Transfer O. Blazy , - - PowerPoint PPT Presentation

generic construction of uc secure oblivious transfer
SMART_READER_LITE
LIVE PREVIEW

Generic Construction of UC-Secure Oblivious Transfer O. Blazy , - - PowerPoint PPT Presentation

Generic Construction of UC-Secure Oblivious Transfer O. Blazy , C.Chevalier O. Blazy (Xlim) Generic OT 1 / 20 Global Framework 1 Cryptographic Tools 2 1-out-of- t Oblivious Transfer 3 Instantiation 4 Conclusion 5 O. Blazy (Xlim)


slide-1
SLIDE 1

Generic Construction of UC-Secure Oblivious Transfer

  • O. Blazy, C.Chevalier
  • O. Blazy

(Xlim) Generic OT 1 / 20

slide-2
SLIDE 2

1

Global Framework

2

Cryptographic Tools

3

1-out-of-t Oblivious Transfer

4

Instantiation

5

Conclusion

  • O. Blazy

(Xlim) Generic OT 2 / 20

slide-3
SLIDE 3

1

Global Framework

2

Cryptographic Tools

3

1-out-of-t Oblivious Transfer

4

Instantiation

5

Conclusion

  • O. Blazy

(Xlim) Generic OT 2 / 20

slide-4
SLIDE 4

1

Global Framework

2

Cryptographic Tools

3

1-out-of-t Oblivious Transfer

4

Instantiation

5

Conclusion

  • O. Blazy

(Xlim) Generic OT 2 / 20

slide-5
SLIDE 5

1

Global Framework

2

Cryptographic Tools

3

1-out-of-t Oblivious Transfer

4

Instantiation

5

Conclusion

  • O. Blazy

(Xlim) Generic OT 2 / 20

slide-6
SLIDE 6

1

Global Framework

2

Cryptographic Tools

3

1-out-of-t Oblivious Transfer

4

Instantiation

5

Conclusion

  • O. Blazy

(Xlim) Generic OT 2 / 20

slide-7
SLIDE 7

1

Global Framework Motivation

2

Cryptographic Tools

3

1-out-of-t Oblivious Transfer

4

Instantiation

5

Conclusion

  • O. Blazy

(Xlim) Generic OT 3 / 20

slide-8
SLIDE 8

Conditional Actions

Oblivious Transfer Database User C(line) ← − − − − − − − − − − − − − − − DB[line] − − − − − − − − − − − − − − − → The User learns the value of line but nothing else. The Database learns nothing.

  • O. Blazy

(Xlim) Generic OT 4 / 20

slide-9
SLIDE 9

Semantic security

Only the requested line should be learned by the User

  • O. Blazy

(Xlim) Generic OT 5 / 20

slide-10
SLIDE 10

Semantic security

Only the requested line should be learned by the User

Oblivious

The authority should not learn which line was requested

  • O. Blazy

(Xlim) Generic OT 5 / 20

slide-11
SLIDE 11

1

Global Framework

2

Cryptographic Tools Encryption Scheme Chameleon Hash Scheme Smooth Projective Hash Function

3

1-out-of-t Oblivious Transfer

4

Instantiation

5

Conclusion

  • O. Blazy

(Xlim) Generic OT 6 / 20

slide-12
SLIDE 12

Definition (Encryption Scheme)

E = (Setup, KeyGen, Encrypt, Decrypt): Setup(K): param; KeyGen(param): public encryption key pk, private decryption key dk; Encrypt(pk, m; r): ciphertext c on m ∈ M and pk; Decrypt(dk, c): decrypts c under dk. Indistinguishability under Chosen Ciphertext Attack

  • O. Blazy

(Xlim) Generic OT 7 / 20

slide-13
SLIDE 13

Definition (Chameleon Hash Scheme)

CH = (Setup, KeyGen, CH, Coll): Setup(K): param; KeyGen(param): outputs the chameleon hash key ck and the trapdoor tk; CH(ck, m; r): Picks r, and outputs the hash a; Coll(ck, m, r, m′, tk): Takes tk, (m, r) and m′, and outputs r ′ such that CH(ck, m; r) = CH(ck, m′; r ′).

Extra Procedures (Verification)

VKeyGen(ck): Outputs vk and vtk. ⊥ or public if publicly verifiable. Valid(ck, vk, m, a, d, vtk): Allows to check that d opens a to m. Collision Resistance ∗

  • O. Blazy

(Xlim) Generic OT 8 / 20

slide-14
SLIDE 14

Definition (Chameleon Hash Scheme)

CH = (Setup, KeyGen, CH, Coll): Setup(K): param; KeyGen(param): outputs the chameleon hash key ck and the trapdoor tk; CH(ck, m; r): Picks r, and outputs the hash a and verification value d; Coll(ck, m, r, m′, tk): Takes tk, (m, r) and m′, and outputs r ′ such that CH(ck, m; r) = CH(ck, m′; r ′).

Extra Procedures (Verification)

VKeyGen(ck): Outputs vk and vtk. ⊥ or public if publicly verifiable. Valid(ck, vk, m, a, d, vtk): Allows to check that d opens a to m. Collision Resistance ∗

  • O. Blazy

(Xlim) Generic OT 8 / 20

slide-15
SLIDE 15

Definition (Smooth Projective Hash Functions) [CS02]

Let {H} be a family of functions: X, domain of these functions L, subset (a language) of this domain such that, for any point x in L, H(x) can be computed by using either a secret hashing key hk: H(x) = HashL(hk; x);

  • r a public projected key hp: H′(x) = ProjHashL(hp; x, w)

Public mapping hk → hp = ProjKGL(hk, x)

  • O. Blazy

(Xlim) Generic OT 9 / 20

slide-16
SLIDE 16

Properties

For any x ∈ X, H(x) = HashL(hk; x) For any x ∈ L, H(x) = ProjHashL(hp; x, w) w witness that x ∈ L

Smoothness

For any x ∈ L, H(x) and hp are independent

Pseudo-Randomness

For any x ∈ L, H(x) is pseudo-random, without a witness w

  • O. Blazy

(Xlim) Generic OT 10 / 20

slide-17
SLIDE 17

Properties

For any x ∈ X, H(x) = HashL(hk; x) For any x ∈ L, H(x) = ProjHashL(hp; x, w) w witness that x ∈ L

Smoothness

For any x ∈ L, H(x) and hp are independent

Pseudo-Randomness

For any x ∈ L, H(x) is pseudo-random, without a witness w

  • O. Blazy

(Xlim) Generic OT 10 / 20

slide-18
SLIDE 18

Properties

For any x ∈ X, H(x) = HashL(hk; x) For any x ∈ L, H(x) = ProjHashL(hp; x, w) w witness that x ∈ L

Smoothness

For any x ∈ L, H(x) and hp are independent

Pseudo-Randomness

For any x ∈ L, H(x) is pseudo-random, without a witness w

  • O. Blazy

(Xlim) Generic OT 10 / 20

slide-19
SLIDE 19

1

Global Framework

2

Cryptographic Tools

3

1-out-of-t Oblivious Transfer Definition Our Generic Construction Security

4

Instantiation

5

Conclusion

  • O. Blazy

(Xlim) Generic OT 11 / 20

slide-20
SLIDE 20

Oblivious Transfer [Rab81]

A user U wants to access a line ℓ in a database D composed of t of them: U learns nothing more than the value of the line ℓ D does not learn which line was accessed by U Correctness: if U request a single line, he learns it

Security Notions

Oblivious: D does not know learn which line was accessed ; Semantic Security: U does not learn any information about the other lines.

  • O. Blazy

(Xlim) Generic OT 12 / 20

slide-21
SLIDE 21

Oblivious Transfer [Rab81]

A user U wants to access a line ℓ in a database D composed of t of them: U learns nothing more than the value of the line ℓ D does not learn which line was accessed by U Correctness: if U request a single line, he learns it

Security Notions

Oblivious: D does not know learn which line was accessed ; Semantic Security: U does not learn any information about the other lines.

  • O. Blazy

(Xlim) Generic OT 12 / 20

slide-22
SLIDE 22

Oblivious Transfer [Rab81]

A user U wants to access a line ℓ in a database D composed of t of them: U learns nothing more than the value of the line ℓ D does not learn which line was accessed by U Correctness: if U request a single line, he learns it

Security Notions

Oblivious: D does not know learn which line was accessed ; Semantic Security: U does not learn any information about the other lines.

  • O. Blazy

(Xlim) Generic OT 12 / 20

slide-23
SLIDE 23

Generic bit UC Commitment

User picks a bit b, random r, d1−b, s, and computes (a, db) = CH(ck, b; r) He then computes C = Encrypt(d0, d1; s).

SPHF Compatibility

If the encryption is SPHF friendly, then one can build an SPHF on the language of valid encryption of a chameleon information. Lb = {c|∃d1−b, s, Valid(ck, vk, b, a, db, vtk) ∧ c = Encrypt(d0, d1; s)}

  • O. Blazy

(Xlim) Generic OT 13 / 20

slide-24
SLIDE 24

Generic bit UC Commitment

User picks a bit b, random r, d1−b, s, and computes (a, db) = CH(ck, b; r) He then computes C = Encrypt(d0, d1; s).

SPHF Compatibility

If the encryption is SPHF friendly, then one can build an SPHF on the language of valid encryption of a chameleon information. Lb = {c|∃d1−b, s, Valid(ck, vk, b, a, db, vtk) ∧ c = Encrypt(d0, d1; s)}

  • O. Blazy

(Xlim) Generic OT 13 / 20

slide-25
SLIDE 25

Generic bit UC Commitment

User picks a bit b, random r, d1−b, s, and computes (a, db) = CH(ck, b; r) He then computes C = Encrypt(d0, d1; s).

SPHF Compatibility

If the encryption is SPHF friendly, then one can build an SPHF on the language of valid encryption of a chameleon information. Lb = {c|∃d1−b, s, Valid(ck, vk, b, a, db, vtk) ∧ c = Encrypt(d0, d1; s)}

  • O. Blazy

(Xlim) Generic OT 13 / 20

slide-26
SLIDE 26

Generic bit UC Commitment

User picks a bit b, random r, d1−b, s, and computes (a, db) = CH(ck, b; r) He then computes C = Encrypt(d0, d1; s).

SPHF Compatibility

If the encryption is SPHF friendly, then one can build an SPHF on the language of valid encryption of a chameleon information. Lb = {c|∃d1−b, s, Valid(ck, vk, b, a, db, vtk) ∧ c = Encrypt(d0, d1; s)}

  • O. Blazy

(Xlim) Generic OT 13 / 20

slide-27
SLIDE 27

Generic 1-out-of-t Oblivious Transfer

User U picks ℓ: For each bit, picks random ri, d1−ℓi,i, and computes (ai, dℓi,i) = CH(ck, ℓi; ri) He then computes C = Encrypt( d; s) and sends C, a. For each line Lj, server S computes hkj, hpj, and Hj = HashLj(hkj, C), Mj = Hj ⊕ Lj and sends Mj, hpj. For the line ℓ, user computes H′

ℓ = ProjHashLℓ(hpℓ, C,

sℓ), and then Lℓ = Mℓ ⊕ H′

  • O. Blazy

(Xlim) Generic OT 14 / 20

slide-28
SLIDE 28

Generic 1-out-of-t Oblivious Transfer

User U picks ℓ: For each bit, picks random ri, d1−ℓi,i, and computes (ai, dℓi,i) = CH(ck, ℓi; ri) He then computes C = Encrypt( d; s) and sends C, a. For each line Lj, server S computes hkj, hpj, and Hj = HashLj(hkj, C), Mj = Hj ⊕ Lj and sends Mj, hpj. For the line ℓ, user computes H′

ℓ = ProjHashLℓ(hpℓ, C,

sℓ), and then Lℓ = Mℓ ⊕ H′

  • O. Blazy

(Xlim) Generic OT 14 / 20

slide-29
SLIDE 29

Generic 1-out-of-t Oblivious Transfer

User U picks ℓ: For each bit, picks random ri, d1−ℓi,i, and computes (ai, dℓi,i) = CH(ck, ℓi; ri) He then computes C = Encrypt( d; s) and sends C, a. For each line Lj, server S computes hkj, hpj, and Hj = HashLj(hkj, C), Mj = Hj ⊕ Lj and sends Mj, hpj. For the line ℓ, user computes H′

ℓ = ProjHashLℓ(hpℓ, C,

sℓ), and then Lℓ = Mℓ ⊕ H′

  • O. Blazy

(Xlim) Generic OT 14 / 20

slide-30
SLIDE 30

Security Properties

Oblivious: IND-CCA security of the encryption scheme; Semantic Security: Smoothness of the SPHF / Collision Resistance of the Chameleon Hash UC simulation: Collision algorithm (Equivocation) of the Chameleon hash Need an artificial extra-round to handle adaptive corruption Adds an extra encryption key for a CPA encryption scheme

  • O. Blazy

(Xlim) Generic OT 15 / 20

slide-31
SLIDE 31

Security Properties

Oblivious: IND-CCA security of the encryption scheme; Semantic Security: Smoothness of the SPHF / Collision Resistance of the Chameleon Hash UC simulation: Collision algorithm (Equivocation) of the Chameleon hash Need an artificial extra-round to handle adaptive corruption Adds an extra encryption key for a CPA encryption scheme

  • O. Blazy

(Xlim) Generic OT 15 / 20

slide-32
SLIDE 32

1

Global Framework

2

Cryptographic Tools

3

1-out-of-t Oblivious Transfer

4

Instantiation

5

Conclusion

  • O. Blazy

(Xlim) Generic OT 16 / 20

slide-33
SLIDE 33

Chameleon Hash: Discrete Logarithm [Ped91]

KeyGen(K): Outputs ck = (g, h) tk = α = logg(h); VKeyGen(ck): Generates vk = f and vtk = logg(f ) CH(ck, vk, m; r): s

$

← Zp, and outputs a = hsg m, d = f s. Coll(m, s, m′, tk): Outputs s′ = s + (m − m′)/α. Valid(ck, vk, m, a, d, vtk): Checks a

?

= hm · d1/vtk.

Chameleon Hash: SIS [CHKP10,MP12]

KeyGen(K): A0

$

← ZK×ℓ

q

, ( A1, R1) ← GenTrapD(1K, 1m, q). Defines ck = ( A0, A1) and tk = R1. VKeyGen(ck): Outputs vk = ⊥, vtk = ⊥ CH(ck, vk, M; r): r ← DZm,s·ω(√

log K),

C = A0 M + A1

  • r. Returns

C, r. Coll(tk, ( M0, r0), M1): Outputs

  • r1 ← SampleD(

R1, A1, ( A0 M0 + A1 r0) − A0 M1), s). Verif(ck, vtk, M, C, r): r small, and C

?

= A0 M + A1 r.

  • O. Blazy

(Xlim) Generic OT 17 / 20

slide-34
SLIDE 34

Chameleon Hash: Discrete Logarithm [Ped91]

KeyGen(K): Outputs ck = (g, h) tk = α = logg(h); VKeyGen(ck): Generates vk = f and vtk = logg(f ) CH(ck, vk, m; r): s

$

← Zp, and outputs a = hsg m, d = f s. Coll(m, s, m′, tk): Outputs s′ = s + (m − m′)/α. Valid(ck, vk, m, a, d, vtk): Checks a

?

= hm · d1/vtk.

Chameleon Hash: SIS [CHKP10,MP12]

KeyGen(K): A0

$

← ZK×ℓ

q

, ( A1, R1) ← GenTrapD(1K, 1m, q). Defines ck = ( A0, A1) and tk = R1. VKeyGen(ck): Outputs vk = ⊥, vtk = ⊥ CH(ck, vk, M; r): r ← DZm,s·ω(√

log K),

C = A0 M + A1

  • r. Returns

C, r. Coll(tk, ( M0, r0), M1): Outputs

  • r1 ← SampleD(

R1, A1, ( A0 M0 + A1 r0) − A0 M1), s). Verif(ck, vtk, M, C, r): r small, and C

?

= A0 M + A1 r.

  • O. Blazy

(Xlim) Generic OT 17 / 20

slide-35
SLIDE 35

CCA-2: Cramer Shoup [CS02]

KeyGen(K): Given g, x1, x2, y1, y2, z

$

← Zp, set sk = (x1, x2, y1, y2, z) and pk = (g1, g2, c1 = g x1

1 g x2 2 , c2 = g y1 1 g y2 2 , h1 = g z 1 , H).

Encrypt(pk, d; r): C = (u = g r

1, v = g r 2, e = hr 1 · d, w = (c1cθ 2)r), where

θ = H(ℓ, u, v, e). Decrypt(dk, C): If w

?

= ux1+θy1v x2+θy2, then compute M = e/uz.

SPHF on valid encryption of valid chameleon witness

ProjKG(C, b): Computes the projection keys hp = hλf κ, hκ

1g µ 1 g ν 2 (c1cβ 2 )θ.

Hash(C, hk) H = (C/g mi)λ · bhk. ProjHash(C, b, hp): The prover will compute H′ = hpshpr.

  • O. Blazy

(Xlim) Generic OT 18 / 20

slide-36
SLIDE 36

CCA-2: Cramer Shoup [CS02]

KeyGen(K): Given g, x1, x2, y1, y2, z

$

← Zp, set sk = (x1, x2, y1, y2, z) and pk = (g1, g2, c1 = g x1

1 g x2 2 , c2 = g y1 1 g y2 2 , h1 = g z 1 , H).

Encrypt(pk, d; r): C = (u = g r

1, v = g r 2, e = hr 1 · d, w = (c1cθ 2)r), where

θ = H(ℓ, u, v, e). Decrypt(dk, C): If w

?

= ux1+θy1v x2+θy2, then compute M = e/uz.

SPHF on valid encryption of valid chameleon witness

ProjKG(C, b): Computes the projection keys hp = hλf κ, hκ

1g µ 1 g ν 2 (c1cβ 2 )θ.

Hash(C, hk) H = (C/g mi)λ · bhk. ProjHash(C, b, hp): The prover will compute H′ = hpshpr.

  • O. Blazy

(Xlim) Generic OT 18 / 20

slide-37
SLIDE 37

CCA-2 ?

We need an SPHF compatible encryption. Only [KV09] is known, and only for approximate SPHF, and is only CCA-1 However CCA-1 + S-OTS ⇒ CCA-2, and Chameleon Hashes gives S-OTS Approximate SPHF, requires repetition for perfect line recovery.

  • O. Blazy

(Xlim) Generic OT 19 / 20

slide-38
SLIDE 38

CCA-2 ?

We need an SPHF compatible encryption. Only [KV09] is known, and only for approximate SPHF, and is only CCA-1 However CCA-1 + S-OTS ⇒ CCA-2, and Chameleon Hashes gives S-OTS Approximate SPHF, requires repetition for perfect line recovery.

  • O. Blazy

(Xlim) Generic OT 19 / 20

slide-39
SLIDE 39

CCA-2 ?

We need an SPHF compatible encryption. Only [KV09] is known, and only for approximate SPHF, and is only CCA-1 However CCA-1 + S-OTS ⇒ CCA-2, and Chameleon Hashes gives S-OTS Approximate SPHF, requires repetition for perfect line recovery.

  • O. Blazy

(Xlim) Generic OT 19 / 20

slide-40
SLIDE 40

CCA-2 ?

We need an SPHF compatible encryption. Only [KV09] is known, and only for approximate SPHF, and is only CCA-1 However CCA-1 + S-OTS ⇒ CCA-2, and Chameleon Hashes gives S-OTS Approximate SPHF, requires repetition for perfect line recovery.

  • O. Blazy

(Xlim) Generic OT 19 / 20

slide-41
SLIDE 41

Generic Framework for 1-out-k Oblivious Transfer Constructions under classical assumptions (DCR, DDH, LWE) in the standard model Proven in the UC framework with adaptive corruptions As efficient as [ABB+13] but without pairings Constant size CRS (contrarily to [PVW08])

  • O. Blazy

(Xlim) Generic OT 20 / 20

slide-42
SLIDE 42

Generic Framework for 1-out-k Oblivious Transfer Constructions under classical assumptions (DCR, DDH, LWE) in the standard model Proven in the UC framework with adaptive corruptions As efficient as [ABB+13] but without pairings Constant size CRS (contrarily to [PVW08])

  • O. Blazy

(Xlim) Generic OT 20 / 20

slide-43
SLIDE 43

Generic Framework for 1-out-k Oblivious Transfer Constructions under classical assumptions (DCR, DDH, LWE) in the standard model Proven in the UC framework with adaptive corruptions As efficient as [ABB+13] but without pairings Constant size CRS (contrarily to [PVW08])

  • O. Blazy

(Xlim) Generic OT 20 / 20

slide-44
SLIDE 44

Generic Framework for 1-out-k Oblivious Transfer Constructions under classical assumptions (DCR, DDH, LWE) in the standard model Proven in the UC framework with adaptive corruptions As efficient as [ABB+13] but without pairings Constant size CRS (contrarily to [PVW08])

  • O. Blazy

(Xlim) Generic OT 20 / 20

slide-45
SLIDE 45

Generic Framework for 1-out-k Oblivious Transfer Constructions under classical assumptions (DCR, DDH, LWE) in the standard model Proven in the UC framework with adaptive corruptions As efficient as [ABB+13] but without pairings Constant size CRS (contrarily to [PVW08])

  • O. Blazy

(Xlim) Generic OT 20 / 20