Multilinear Maps over the Integers From Design to Security Tancrde - - PowerPoint PPT Presentation

multilinear maps over the integers from design to security
SMART_READER_LITE
LIVE PREVIEW

Multilinear Maps over the Integers From Design to Security Tancrde - - PowerPoint PPT Presentation

Multilinear Maps over the Integers From Design to Security Tancrde Lepoint CryptoExperts The Mathematics of Modern Cryptography Workshop, July 10th 2015 Timeline: The Hype Cycle of Multilinear Maps 2 / 30 visibility Timeline time 2 / 30


slide-1
SLIDE 1

Multilinear Maps over the Integers From Design to Security

Tancrède Lepoint CryptoExperts

The Mathematics of Modern Cryptography Workshop, July 10th 2015

slide-2
SLIDE 2

Timeline: The Hype Cycle of Multilinear Maps

2 / 30

slide-3
SLIDE 3

Timeline

time visibility

2 / 30

slide-4
SLIDE 4

Timeline 1

“technology trigger” time visibility

2 / 30

slide-5
SLIDE 5

Timeline

first candidate construction [GGH13] second candidate construction [CLT13] time visibility

2 / 30

slide-6
SLIDE 6

Timeline

first candidate construction [GGH13] second candidate construction [CLT13]

2

“peak of inflated expectations” time visibility

2 / 30

slide-7
SLIDE 7

Timeline

first candidate construction [GGH13] second candidate construction [CLT13] iO time visibility

2 / 30

slide-8
SLIDE 8

Timeline

first candidate construction [GGH13] second candidate construction [CLT13]

3

“trough of disillusionment” time visibility

2 / 30

slide-9
SLIDE 9

Timeline

first candidate construction [GGH13] second candidate construction [CLT13] weak DL [GGH13] break of CLT [CHLRS15] tentatives fixes for CLT [BWZ14,GGHZ14] break of previous fixes and extensions [CGHLMMRST15] break of (G)DDH in GGH [HJ15] time visibility

2 / 30

slide-10
SLIDE 10

Today

time visibility

3 / 30

slide-11
SLIDE 11

Today 4

“slope of enlightenment” time visibility

3 / 30

slide-12
SLIDE 12

Today

Graph induced [GGH15] New multilinear maps over integers [CLT15] time visibility

3 / 30

slide-13
SLIDE 13

The CLT Scheme

Multilinear maps over the integers

[CoronL.Tibouchi’13’15]

4 / 30

slide-14
SLIDE 14

The CLT Scheme

Multilinear maps over the integers

[CoronL.Tibouchi’13’15]

Second candidate construction

4 / 30

slide-15
SLIDE 15

The CLT Scheme

Multilinear maps over the integers

[CoronL.Tibouchi’13’15]

Second candidate construction Composite-order maps (different from [GGH13,GGH15])

4 / 30

slide-16
SLIDE 16

The CLT Scheme

Multilinear maps over the integers

[CoronL.Tibouchi’13’15]

Second candidate construction Composite-order maps (different from [GGH13,GGH15]) Follow [GGH13] recipe

◮ Level by multiplicative mask ◮ Zero-testing by multiplication and “shortness”

4 / 30

slide-17
SLIDE 17

The CLT Scheme

Multilinear maps over the integers

[CoronL.Tibouchi’13’15]

Second candidate construction Composite-order maps (different from [GGH13,GGH15]) Follow [GGH13] recipe

◮ Level by multiplicative mask ◮ Zero-testing by multiplication and “shortness”

Similar to FHE schemes based on Approximate-GCD

4 / 30

slide-18
SLIDE 18

The CLT Scheme

Multilinear maps over the integers

[CoronL.Tibouchi’13’15]

Second candidate construction Composite-order maps (different from [GGH13,GGH15]) Follow [GGH13] recipe

◮ Level by multiplicative mask ◮ Zero-testing by multiplication and “shortness”

Similar to FHE schemes based on Approximate-GCD Useful for many applications...

4 / 30

slide-19
SLIDE 19

SWHE vs. MMAPs

Computation over encrypted data

We want to compute homomorphically over encrypted data . . . but we do not want the same information from the result than with HE

5 / 30

slide-20
SLIDE 20

SWHE vs. MMAPs

Computation over encrypted data

We want to compute homomorphically over encrypted data encode a into [a]

← →

encrypt a into [a] = Enc(a) . . . but we do not want the same information from the result than with HE

5 / 30

slide-21
SLIDE 21

SWHE vs. MMAPs

Computation over encrypted data

We want to compute homomorphically over encrypted data encode a into [a]

← →

encrypt a into [a] = Enc(a) in both cases, computing low-degree polys of [ai]’s is possible, up to a degree k . . . but we do not want the same information from the result than with HE

5 / 30

slide-22
SLIDE 22

SWHE vs. MMAPs

Computation over encrypted data

We want to compute homomorphically over encrypted data encode a into [a]

← →

encrypt a into [a] = Enc(a) in both cases, computing low-degree polys of [ai]’s is possible, up to a degree k . . . but we do not want the same information from the result than with HE MMAPS can test if it is zero, at level k (and hard to compute at degree > k)

5 / 30

slide-23
SLIDE 23

SWHE vs. MMAPs

Computation over encrypted data

We want to compute homomorphically over encrypted data encode a into [a]

← →

encrypt a into [a] = Enc(a) in both cases, computing low-degree polys of [ai]’s is possible, up to a degree k . . . but we do not want the same information from the result than with HE MMAPS can test if it is zero, at level k (and hard to compute at degree > k) SHWE no information on a from the result, except with secret key

5 / 30

slide-24
SLIDE 24

Starting from Homomorphic Encryption

SWHE over the integers

[DGHV10,CMNT11,CNT12,CCKLLMTY13,CLT14]

6 / 30

slide-25
SLIDE 25

Starting from Homomorphic Encryption

SWHE over the integers

[DGHV10,CMNT11,CNT12,CCKLLMTY13,CLT14]

Secret key prime p

6 / 30

slide-26
SLIDE 26

Starting from Homomorphic Encryption

SWHE over the integers

[DGHV10,CMNT11,CNT12,CCKLLMTY13,CLT14]

Secret key prime p Public key

x0 = q0 · p

for very large (hard to factor) q0

6 / 30

slide-27
SLIDE 27

Starting from Homomorphic Encryption

SWHE over the integers

[DGHV10,CMNT11,CNT12,CCKLLMTY13,CLT14]

Secret key prime p Public key

x0 = q0 · p

for very large (hard to factor) q0 Ciphertext of m

c = q · p + g · r + m

for q ← [0, q0) and r ← χ “small”

6 / 30

slide-28
SLIDE 28

Starting from Homomorphic Encryption

SWHE over the integers

[DGHV10,CMNT11,CNT12,CCKLLMTY13,CLT14]

Secret key prime p Public key

x0 = q0 · p

for very large (hard to factor) q0 Ciphertext of m

c = CRTq0,p( q′ , g · r + m )

for q′ ← [0, q0) and r ← χ “small”

6 / 30

slide-29
SLIDE 29

Starting from Homomorphic Encryption

SWHE over the integers

[DGHV10,CMNT11,CNT12,CCKLLMTY13,CLT14]

Secret key primes p1, . . . , pn Public key

x0 = q0 · p1 · · · pn

for very large (hard to factor) q0 Ciphertext of

m c = CRTq0,p1,...,pn( q′ , g1 · r1 + m1, . . . , gn · rn + mn )

for q′ ← [0, q0) and r1, . . . , rn ← χ “small”

6 / 30

slide-30
SLIDE 30

Starting from Homomorphic Encryption

SWHE over the integers

[DGHV10,CMNT11,CNT12,CCKLLMTY13,CLT14]

Secret key primes p1, . . . , pn Public key

x0 = q0 · p1 · · · pn

for very large (hard to factor) q0 Ciphertext of

m c = CRTq0,p1,...,pn( q′ , g1 · r1 + m1, . . . , gn · rn + mn )

for q′ ← [0, q0) and r1, . . . , rn ← χ “small” + × ×

6 / 30

slide-31
SLIDE 31

Adding Sharp Levels

Using multiplicative mask

[GGH13,CLT13]

7 / 30

slide-32
SLIDE 32

Adding Sharp Levels

Using multiplicative mask

[GGH13,CLT13]

Let z ← [0, x0) be a random (invertible) multiplicative mask

7 / 30

slide-33
SLIDE 33

Adding Sharp Levels

Using multiplicative mask

[GGH13,CLT13]

Let z ← [0, x0) be a random (invertible) multiplicative mask Encoding of

m ∈ Zg1 × · · · × Zgn at level j: [ m]j = c/zj mod x0 = CRTq,p1,...,pn(q′, r1 · g1 + m1, . . . , rn · gn + mn) zj mod x0

7 / 30

slide-34
SLIDE 34

Adding Sharp Levels

Using multiplicative mask

[GGH13,CLT13]

Let z ← [0, x0) be a random (invertible) multiplicative mask Encoding of

m ∈ Zg1 × · · · × Zgn at level j: [ m]j = c/zj mod x0 = CRTq,p1,...,pn(q′, r1 · g1 + m1, . . . , rn · gn + mn) zj mod x0

Operations over Zx0: Addition

[ m]j + [ m′]j ≃ [ m + m′]j

Multiplication

[ m]j1 × [ m′]j2 ≃ [ m · m′]j1+j2

7 / 30

slide-35
SLIDE 35

Main Ingredient: Testing for Zero

Using the “shortness” of the noise

[GGH13,CLT13]

8 / 30

slide-36
SLIDE 36

Main Ingredient: Testing for Zero

Using the “shortness” of the noise

[GGH13,CLT13]

How to test whether two degree-k encodings are equal?

[ m]k ≃ [ ℓ]k (i.e. m = ℓ) ⇐ ⇒ [ m − ℓ]k ≃ [ 0]k

8 / 30

slide-37
SLIDE 37

Main Ingredient: Testing for Zero

Using the “shortness” of the noise

[GGH13,CLT13]

How to test whether two degree-k encodings are equal?

[ m]k ≃ [ ℓ]k (i.e. m = ℓ) ⇐ ⇒ [ m − ℓ]k ≃ [ 0]k

What is an encoding of

m = 0? [ 0]k = CRTq,p1,...,pn(q′, r1 · g1, . . . , rn · gn) zk mod x0

8 / 30

slide-38
SLIDE 38

Main Ingredient: Testing for Zero

Using the “shortness” of the noise

[GGH13,CLT13]

How to test whether two degree-k encodings are equal?

[ m]k ≃ [ ℓ]k (i.e. m = ℓ) ⇐ ⇒ [ m − ℓ]k ≃ [ 0]k

What is an encoding of

m = 0? [ 0]k = CRTq,p1,...,pn(q′, r1 · g1, . . . , rn · gn) zk mod x0

Idea of [GGH13]: multiply by an element which will cancel zk and when the ri’s are small (rigi ≪ pi), yield something small compared to x0.

8 / 30

slide-39
SLIDE 39

Simplifications for Zero-Testing

9 / 30

slide-40
SLIDE 40

Simplifications for Zero-Testing

[ 0]k =

  • i

giri · (p∗

i −1/zk mod pi) · p∗ i + (

  • pj) · q′′ mod x0

where p∗

i = j=i pj

9 / 30

slide-41
SLIDE 41

Simplifications for Zero-Testing

[ 0]k =

  • i

giri · (p∗

i −1/zk mod pi) · p∗ i + (

  • pj) · q′′ mod x0

where p∗

i = j=i pj

The random value q′′ makes difficult to obtain something small... except if we are working modulo pj

9 / 30

slide-42
SLIDE 42

Simplifications for Zero-Testing

[ 0]k =

  • i

giri · (p∗

i −1/zk mod pi) · p∗ i + (

  • pj) · q′′ mod x0

where p∗

i = j=i pj

The random value q′′ makes difficult to obtain something small... except if we are working modulo pj In the following x0 = pj, and

[ m]j = c/zj mod x0 = CRTp1,...,pn(r1 · g1 + m1, . . . , rn · gn + mn) zj mod x0

9 / 30

slide-43
SLIDE 43

Zero-Testing Procedure

Multiply by the public element (where hi ≪ pi)

pzt =

  • i

hi · (g−1

i

zk mod pi) · p∗

i mod x0

10 / 30

slide-44
SLIDE 44

Zero-Testing Procedure

Multiply by the public element (where hi ≪ pi)

pzt =

  • i

hi · (g−1

i

zk mod pi) · p∗

i mod x0

[ m]k = c/zk mod x0 = CRTp1,...,pn(r1 · g1 + m1, . . . , rn · gn + mn) zk mod x0

therefore

[ m]k · pzt =

  • i

(ri + mig−1

i

) · hi · p∗

i mod x0

10 / 30

slide-45
SLIDE 45

Zero-Testing Procedure

Multiply by the public element (where hi ≪ pi)

pzt =

  • i

hi · (g−1

i

zk mod pi) · p∗

i mod x0

[ m]k = c/zk mod x0 = CRTp1,...,pn(r1 · g1 + m1, . . . , rn · gn + mn) zk mod x0

therefore

[ m]k · pzt =

  • i

(ri + mig−1

i

) · hi · p∗

i mod x0

We have (we prove equivalence whp when many pzt’s are given)

  • m =

⇒ |[ m]k · pzt mod x0| ≪ x0

10 / 30

slide-46
SLIDE 46

Hardness Assumptions

11 / 30

slide-47
SLIDE 47

Hardness Assumptions

GDDH: Given (k + 1) elements [

mi]1 and [ m′]k, determine

whether

m′ ≃ k+1

i=1

mi.

11 / 30

slide-48
SLIDE 48

Hardness Assumptions

GDDH: Given (k + 1) elements [

mi]1 and [ m′]k, determine

whether

m′ ≃ k+1

i=1

mi.

At the heart of the multipartite key echange protocol

11 / 30

slide-49
SLIDE 49

Hardness Assumptions

GDDH: Given (k + 1) elements [

mi]1 and [ m′]k, determine

whether

m′ ≃ k+1

i=1

mi.

At the heart of the multipartite key echange protocol Assumed to be hard (no reduction to Approx.-GCD)

11 / 30

slide-50
SLIDE 50

Hardness Assumptions

GDDH: Given (k + 1) elements [

mi]1 and [ m′]k, determine

whether

m′ ≃ k+1

i=1

mi.

At the heart of the multipartite key echange protocol Assumed to be hard (no reduction to Approx.-GCD) Asymptotic parameters obtained from numerous attacks

  • rthogonal lattice attack on encodings

GCD attack on zero-testing hidden subset sum attack on zero-testing attacks on the inverse zero-testing matrix brute-force on the noises, . . .

11 / 30

slide-51
SLIDE 51

But... Zeroizing Attack

Eurocrypt 2015 best paper

[CHLRS15]

12 / 30

slide-52
SLIDE 52

The Zeroizing Attack on CLT13

Exploiting the (bi)linearity of the zero-testing procedure

13 / 30

slide-53
SLIDE 53

The Zeroizing Attack on CLT13

Exploiting the (bi)linearity of the zero-testing procedure

[ 0]k · pzt =

i ri · (hi · p∗ i ) ∈ Z

13 / 30

slide-54
SLIDE 54

The Zeroizing Attack on CLT13

Exploiting the (bi)linearity of the zero-testing procedure

[ 0]k−2 · [ b]1 · [ c]1 · pzt =

i ri · ˆ

bi · ˆ ci · (hi · p∗

i ) ∈ Z

13 / 30

slide-55
SLIDE 55

The Zeroizing Attack on CLT13

Exploiting the (bi)linearity of the zero-testing procedure

[ 0]k−2 · [ b]1 · [ c]1 · pzt =

i ri · ˆ

bi · ˆ ci · (hi · p∗

i ) ∈ Z

ri ˆ bi · (hi · p∗

i )

ˆ ci

13 / 30

slide-56
SLIDE 56

The Zeroizing Attack on CLT13

Exploiting the (bi)linearity of the zero-testing procedure

[ 0]k−2 · [ b]1 · [ c]1 · pzt =

i ri · ˆ

bi · ˆ ci · (hi · p∗

i ) ∈ Z

ri ˆ bi · (hi · p∗

i )

ˆ ci

13 / 30

slide-57
SLIDE 57

The Zeroizing Attack on CLT13

Inversion over Q

Let’s do it with many [

0]k−2, [ c]1 and two targets [ b]1, [ b′]1

14 / 30

slide-58
SLIDE 58

The Zeroizing Attack on CLT13

Inversion over Q

Let’s do it with many [

0]k−2, [ c]1 and two targets [ b]1, [ b′]1 ri

ˆ bi · (hi · p∗

i )

ˆ ci ri

ˆ b′

i · (hi · p∗ i )

ˆ ci

14 / 30

slide-59
SLIDE 59

The Zeroizing Attack on CLT13

Inversion over Q

Let’s do it with many [

0]k−2, [ c]1 and two targets [ b]1, [ b′]1 ri

ˆ bi · (hi · p∗

i )

ˆ ci (ˆ ci)−1

1 ˆ b′

i · (hi · p∗ i )

(r −1

i

)

14 / 30

slide-60
SLIDE 60

The Zeroizing Attack on CLT13

Inversion over Q

Let’s do it with many [

0]k−2, [ c]1 and two targets [ b]1, [ b′]1 ri

ˆ bi · (hi · p∗

i )

ˆ ci × (ˆ ci)−1

1 ˆ b′

i · (hi · p∗ i )

(r −1

i

) = ri

ˆ bi/ˆ b′

i

(ri)−1

14 / 30

slide-61
SLIDE 61

The Zeroizing Attack on CLT13

Computing eigenvalues

Consider the target encodings

[ b]1 = CRTpi(ˆ bi)/z, [ b′]1 = CRTpi(ˆ b′

i)/z

ri

ˆ bi/ˆ b′

i

(ri)−1

15 / 30

slide-62
SLIDE 62

The Zeroizing Attack on CLT13

Computing eigenvalues

Consider the target encodings

[ b]1 = CRTpi(ˆ bi)/z, [ b′]1 = CRTpi(ˆ b′

i)/z

ri

ˆ bi/ˆ b′

i

(ri)−1

Compute the eigenvalues βi/β′

i = ˆ

bi/ˆ b′

i

15 / 30

slide-63
SLIDE 63

The Zeroizing Attack on CLT13

Computing eigenvalues

Consider the target encodings

[ b]1 = CRTpi(ˆ bi)/z, [ b′]1 = CRTpi(ˆ b′

i)/z

ri

ˆ bi/ˆ b′

i

(ri)−1

Compute the eigenvalues βi/β′

i = ˆ

bi/ˆ b′

i

We have that

pi | (β′

i · [

b]1 − βi · [ b′]1)

15 / 30

slide-64
SLIDE 64

The Zeroizing Attack on CLT13

Computing eigenvalues

Consider the target encodings

[ b]1 = CRTpi(ˆ bi)/z, [ b′]1 = CRTpi(ˆ b′

i)/z

ri

ˆ bi/ˆ b′

i

(ri)−1

Compute the eigenvalues βi/β′

i = ˆ

bi/ˆ b′

i

We have that

pi | (β′

i · [

b]1 − βi · [ b′]1)

Compute

pi = gcd(β′

i · [

b]1 − βi · [ b′]1, x0)

15 / 30

slide-65
SLIDE 65

Generalizing the Zeroizing Attack on CLT13

Zeroizing without low-level zeroes

[CGHLMMRST15]

16 / 30

slide-66
SLIDE 66

Generalizing the Zeroizing Attack on CLT13

Zeroizing without low-level zeroes

[CGHLMMRST15]

Breaks early tentative fixes [BWZ14,GGHZ14] using zero-testing as a black-box

16 / 30

slide-67
SLIDE 67

Generalizing the Zeroizing Attack on CLT13

Zeroizing without low-level zeroes

[CGHLMMRST15]

Breaks early tentative fixes [BWZ14,GGHZ14] using zero-testing as a black-box Don’t need [

0]k−2 · [ b]1 · [ c]1 but [ a]k−2 · [ b]1 · [ c]1 ≃ [ 0]k

16 / 30

slide-68
SLIDE 68

Generalizing the Zeroizing Attack on CLT13

Zeroizing without low-level zeroes

[CGHLMMRST15]

Breaks early tentative fixes [BWZ14,GGHZ14] using zero-testing as a black-box Don’t need [

0]k−2 · [ b]1 · [ c]1 but [ a]k−2 · [ b]1 · [ c]1 ≃ [ 0]k

Can be diagonal per block. Instead of computing eigenvalues use characteristic polynomial.

ri

ˆ bi · (hi · p∗

i )

ˆ ci

16 / 30

slide-69
SLIDE 69

Thwarting Cheon et al. Attack?

Can we remove this linearity?

[CLT15]

17 / 30

slide-70
SLIDE 70

Thwarting Cheon et al. Attack?

Can we remove this linearity?

[CLT15]

The encodings look like DGHV ciphertexts

17 / 30

slide-71
SLIDE 71

Thwarting Cheon et al. Attack?

Can we remove this linearity?

[CLT15]

The encodings look like DGHV ciphertexts Even without the randomness q, their form should not be an issue

17 / 30

slide-72
SLIDE 72

Thwarting Cheon et al. Attack?

Can we remove this linearity?

[CLT15]

The encodings look like DGHV ciphertexts Even without the randomness q, their form should not be an issue In [CoronL.Tibouchi15], we revisit the zero-testing procedure itself

17 / 30

slide-73
SLIDE 73

Thwarting Cheon et al. Attack?

Can we remove this linearity?

[CLT15]

The encodings look like DGHV ciphertexts Even without the randomness q, their form should not be an issue In [CoronL.Tibouchi15], we revisit the zero-testing procedure itself In a nutshell:

◮ the zero-testing is done modulo a new prime modulus N; ◮ x0 is no longer public.

17 / 30

slide-74
SLIDE 74

Inherent randomness in current encodings

18 / 30

slide-75
SLIDE 75

Inherent randomness in current encodings

Current form of encodings

[ m]k = CRTpi(mi + giri)/zk mod x0

18 / 30

slide-76
SLIDE 76

Inherent randomness in current encodings

Current form of encodings

[ m]k = CRTpi(mi + giri)/zk mod x0 [ m]k =

  • i

(mig−1

i

+ ri mod pi) · ui + a · x0

  • ver Z

with ui = (gip∗

i −1z−k mod pi)p∗ i .

18 / 30

slide-77
SLIDE 77

Inherent randomness in current encodings

Current form of encodings

[ m]k = CRTpi(mi + giri)/zk mod x0 [ m]k =

  • i

(mig−1

i

+ ri mod pi) · ui + a · x0

  • ver Z

with ui = (gip∗

i −1z−k mod pi)p∗ i .

The element a is highly non-linear in the ri’s The element a is different from the random q′ we had before when adapting DGHV (

m = 0 ↔ a is small)

18 / 30

slide-78
SLIDE 78

New Zero-Test Parameter

Pick a random, large prime N ≫ x0. We want to generate a new zero-test value αzt such that

|[ m]k · αzt mod N| ≪ N ⇐ ⇒ m = 0

19 / 30

slide-79
SLIDE 79

New Zero-Test Parameter

Pick a random, large prime N ≫ x0. We want to generate a new zero-test value αzt such that

|[ m]k · αzt mod N| ≪ N ⇐ ⇒ m = 0

In particular, we have

[ m]k · αzt mod N =

  • i

(mig−1

i

+ ri mod pi) · (ui · αzt) + a · x0 · αzt mod N

19 / 30

slide-80
SLIDE 80

New Zero-Test Parameter

Pick a random, large prime N ≫ x0. We want to generate a new zero-test value αzt such that

|[ m]k · αzt mod N| ≪ N ⇐ ⇒ m = 0

In particular, we have

[ m]k · αzt mod N =

  • i

(mig−1

i

+ ri mod pi) · (ui · αzt) + a · x0 · αzt mod N

so we want |αzt · ui mod N| ≪ N and |αzt · x0 mod N| ≪ N

19 / 30

slide-81
SLIDE 81

How To Generate αzt?

Given N, the generation of αzt ∈ ZN such that for all i, |uiαzt mod N| and

|x0αzt mod N| are small is not obvious.

20 / 30

slide-82
SLIDE 82

How To Generate αzt?

Given N, the generation of αzt ∈ ZN such that for all i, |uiαzt mod N| and

|x0αzt mod N| are small is not obvious.

The problem amounts to finding a relatively short vector in a lattice

       1 u1 · · · un x0 N

...

N N       

20 / 30

slide-83
SLIDE 83

How To Generate αzt?

Given N, the generation of αzt ∈ ZN such that for all i, |uiαzt mod N| and

|x0αzt mod N| are small is not obvious.

The problem amounts to finding a relatively short vector in a lattice

       1 u1 · · · un x0 N

...

N N       

Use LLL? (we can tolerate an exponential approx. factor over SVP), but typically

n ≥ 105

20 / 30

slide-84
SLIDE 84

How To Generate αzt?

Using the structure of the ui’s

21 / 30

slide-85
SLIDE 85

How To Generate αzt?

Using the structure of the ui’s

Remember that N ≫ x0 and ui = (gip∗

i −1zk mod pi)p∗ i

21 / 30

slide-86
SLIDE 86

How To Generate αzt?

Using the structure of the ui’s

Remember that N ≫ x0 and ui = (gip∗

i −1zk mod pi)p∗ i

First note that p−1

j

ui mod N is small for all i = j

21 / 30

slide-87
SLIDE 87

How To Generate αzt?

Using the structure of the ui’s

Remember that N ≫ x0 and ui = (gip∗

i −1zk mod pi)p∗ i

First note that p−1

j

ui mod N is small for all i = j

Only p−1

j

uj mod N is not a priori small

21 / 30

slide-88
SLIDE 88

How To Generate αzt?

Using the structure of the ui’s

Remember that N ≫ x0 and ui = (gip∗

i −1zk mod pi)p∗ i

First note that p−1

j

ui mod N is small for all i = j

Only p−1

j

uj mod N is not a priori small

Let us find αj such that αj · p−1

j

uj mod N is small

As before it amounts to finding a short vector in

⌈N/B⌉ p−1

j

uj N

  • 21 / 30
slide-89
SLIDE 89

How To Generate αzt?

Using the structure of the ui’s

⌈N/B⌉ p−1

j

uj N

  • 22 / 30
slide-90
SLIDE 90

How To Generate αzt?

Using the structure of the ui’s

⌈N/B⌉ p−1

j

uj N

  • We chose B such that LLL finds a short vector

(αj · ⌈N/B⌉, βj)

where |αj| ≤ √pj and |βj = αj · p−1

j

uj mod N| ≤ N/√pj.

22 / 30

slide-91
SLIDE 91

How To Generate αzt?

Using the structure of the ui’s

⌈N/B⌉ p−1

j

uj N

  • We chose B such that LLL finds a short vector

(αj · ⌈N/B⌉, βj)

where |αj| ≤ √pj and |βj = αj · p−1

j

uj mod N| ≤ N/√pj.

New zero-testing element:

αzt =

  • j

hj · αj · p−1

j

mod N

22 / 30

slide-92
SLIDE 92

How To Generate αzt?

Using the structure of the ui’s

New zero-testing element (sizes to keep in mind

N ≈ x0 · pj, αj ≈ √pj): αzt =

  • j

hj · αj · p−1

j

mod N

When applied on an encoding [

m]k: [ m]k · αzt mod N =

  • i

(mig−1

i

+ ri mod pi) · (ui · αzt) + a · x0 · αzt mod N

23 / 30

slide-93
SLIDE 93

How To Generate αzt?

Using the structure of the ui’s

New zero-testing element (sizes to keep in mind

N ≈ x0 · pj, αj ≈ √pj): αzt =

  • j

hj · αj · p−1

j

mod N

When applied on an encoding [

m]k: [ m]k · αzt mod N =

  • i

(mig−1

i

+ ri mod pi) · (hiβi +

  • j=i

hjαj · ui/pj) + a · x0 · αzt mod N

23 / 30

slide-94
SLIDE 94

An Important Caveat

Cannot work directly modulo x0

24 / 30

slide-95
SLIDE 95

An Important Caveat

Cannot work directly modulo x0

x0 cannot be made public, contrary to [CLT13]

24 / 30

slide-96
SLIDE 96

An Important Caveat

Cannot work directly modulo x0

x0 cannot be made public, contrary to [CLT13]

However, define v0 = x0 · αzt mod N, and

([ 0]k · αzt mod N) mod v0 = (

  • i

ri · (hiβi +

  • j=i

hjαj · ui/pj) + a · v0 ∈ Z) mod v0 =

  • i

ri · (hiβi +

  • j=i

hjαj · ui/pj) mod v0

24 / 30

slide-97
SLIDE 97

An Important Caveat

Cannot work directly modulo x0

x0 cannot be made public, contrary to [CLT13]

However, define v0 = x0 · αzt mod N, and

([ 0]k · αzt mod N) mod v0 = (

  • i

ri · (hiβi +

  • j=i

hjαj · ui/pj) + a · v0 ∈ Z) mod v0 =

  • i

ri · (hiβi +

  • j=i

hjαj · ui/pj) mod v0

We can apply Cheon et al. attack modulo v0

24 / 30

slide-98
SLIDE 98

An Important Caveat

A Ladder of encodings

25 / 30

slide-99
SLIDE 99

An Important Caveat

A Ladder of encodings

Making x0 secret is somewhat inconvenient: when we add or multiply encodings, we cannot reduce them modulo x0 anymore to keep them of the same size

25 / 30

slide-100
SLIDE 100

An Important Caveat

A Ladder of encodings

Making x0 secret is somewhat inconvenient: when we add or multiply encodings, we cannot reduce them modulo x0 anymore to keep them of the same size Solution (taken from [DGHV10]): publish a ladder of encodings of 0 of increasing size

◮ encodings

X (j)

i

= (CRTpi(rigi)/zj mod x0) + qi · x0

with qi ← [0, 2i) for i = 1, . . . , log(x0)

◮ do the operation over Z, and remove X (j) i

for decreasing i’s

25 / 30

slide-101
SLIDE 101

Concrete Attempt

26 / 30

slide-102
SLIDE 102

Concrete Attempt

Consider u = [

0]k−2 · [ b]1 · [ c]1

26 / 30

slide-103
SLIDE 103

Concrete Attempt

Consider u = [

0]k−2 · [ b]1 · [ c]1

Apply the ladder to reduce its size to the size of x0:

u′ = u +

  • siX (k)

i

26 / 30

slide-104
SLIDE 104

Concrete Attempt

Consider u = [

0]k−2 · [ b]1 · [ c]1

Apply the ladder to reduce its size to the size of x0:

u′ = u +

  • siX (k)

i

Write u′ over Z:

u′ =

  • i

(ri · ˆ bi · ˆ ci + si · rX,i,k) · ui − a · x0

26 / 30

slide-105
SLIDE 105

Concrete Attempt

Consider u = [

0]k−2 · [ b]1 · [ c]1

Apply the ladder to reduce its size to the size of x0:

u′ = u +

  • siX (k)

i

Write u′ over Z:

u′ =

  • i

(ri · ˆ bi · ˆ ci + si · rX,i,k) · ui − a · x0

All si’s and a come up in the way of Cheon et al. attack

26 / 30

slide-106
SLIDE 106

Proof-of-concept Implementation

https://github.com/tlepoint/new-multilinear-maps

Instantiation λ κ

n η ∆ ρ γ = n · η pp size

Small 52 6 540 1679 23 52 0.9 · 106 27 MB Medium 62 6 2085 1989 45 62 4.14 · 106 175 MB Large 72 6 8250 2306 90 72 19.0 · 106 1.2 GB Extra 80 6 25305 2619 159 85 66.3 · 106 6.1 GB

Setup Publish KeyGen

5.9 s 0.10 s 0.17 s 36 s 0.33 s 1.06 s 583 s 2.05 s 6.17 s 4528 s 7.8 s 23.9 s

27 / 30

slide-107
SLIDE 107

Conclusion

28 / 30

slide-108
SLIDE 108

Conclusion

The CLT scheme has many interesting features: composite order maps, assumed hardness of GDDH but also of DLIN & SubM

28 / 30

slide-109
SLIDE 109

Conclusion

The CLT scheme has many interesting features: composite order maps, assumed hardness of GDDH but also of DLIN & SubM Concrete targets to attack in practice if desired Same efficiency as original CLT13

28 / 30

slide-110
SLIDE 110

Conclusion

The CLT scheme has many interesting features: composite order maps, assumed hardness of GDDH but also of DLIN & SubM Concrete targets to attack in practice if desired Same efficiency as original CLT13 Open problems for CLT15:

◮ Analyze the reparation ◮ Improve the efficiency ◮ Adapt the technique to [GGH13]?

28 / 30

slide-111
SLIDE 111

Thank You

Questions & Discussion

29 / 30

slide-112
SLIDE 112

Discussion

  • 1. Design

◮ public encoding space / inversion

  • 2. Attacks
  • 3. Assumptions

◮ what sort of assumptions can be made? ◮ base multilinear maps on well-known problems

  • 4. Applications

◮ something that look different from obfuscation ◮ what can you do with a small number of levels? ◮ relation between 2-multilinear maps / pairings in applications 30 / 30