Lattice-Based Cryptography: Constructing Trapdoors and More Applications Chris Peikert
Georgia Institute of Technology crypt@b-it 2013
1 / 18
Lattice-Based Cryptography: Constructing Trapdoors and More - - PowerPoint PPT Presentation
Lattice-Based Cryptography: Constructing Trapdoors and More Applications Chris Peikert Georgia Institute of Technology crypt@b-it 2013 1 / 18 Lattice-Based One-Way Functions Public key Z n m A for q =
1 / 18
2 / 18
2 / 18
2 / 18
O (0, q) (q, 0) 2 / 18
O (0, q) (q, 0) x 2 / 18
2 / 18
3 / 18
3 / 18
3 / 18
O 3 / 18
4 / 18
4 / 18
4 / 18
4 / 18
4 / 18
4 / 18
4 / 18
4 / 18
5 / 18
⋆ Generation: one matrix mult. No HNF or inversion (cf. [A’99,AP’09]) ⋆ Inversion of fA, gA: practical, parallel, & mostly offline ⋆ No more efficiency-vs-quality tradeoff 5 / 18
⋆ Generation: one matrix mult. No HNF or inversion (cf. [A’99,AP’09]) ⋆ Inversion of fA, gA: practical, parallel, & mostly offline ⋆ No more efficiency-vs-quality tradeoff
⋆ Asymptotically optimal with small constant factors 5 / 18
⋆ Generation: one matrix mult. No HNF or inversion (cf. [A’99,AP’09]) ⋆ Inversion of fA, gA: practical, parallel, & mostly offline ⋆ No more efficiency-vs-quality tradeoff
⋆ Asymptotically optimal with small constant factors
5 / 18
⋆ Generation: one matrix mult. No HNF or inversion (cf. [A’99,AP’09]) ⋆ Inversion of fA, gA: practical, parallel, & mostly offline ⋆ No more efficiency-vs-quality tradeoff
⋆ Asymptotically optimal with small constant factors
5 / 18
6 / 18
6 / 18
6 / 18
7 / 18
7 / 18
⋆ Get lsb(s) from 2k−1s + ek−1. Then get next bit of s, etc.
4, q 4).
7 / 18
⋆ Get lsb(s) from 2k−1s + ek−1. Then get next bit of s, etc.
4, q 4).
⋆ OR round entries and look up in table. 7 / 18
⋆ Get lsb(s) from 2k−1s + ek−1. Then get next bit of s, etc.
4, q 4).
⋆ OR round entries and look up in table.
7 / 18
⋆ Get lsb(s) from 2k−1s + ek−1. Then get next bit of s, etc.
4, q 4).
⋆ OR round entries and look up in table.
⋆ For i ← 0, . . . , k − 1: choose xi ← (2Z + u), let u ← (u − xi)/2 ∈ Z. 7 / 18
⋆ Get lsb(s) from 2k−1s + ek−1. Then get next bit of s, etc.
4, q 4).
⋆ OR round entries and look up in table.
⋆ For i ← 0, . . . , k − 1: choose xi ← (2Z + u), let u ← (u − xi)/2 ∈ Z. ⋆ OR presample many x ← Zk and store in q ‘buckets’ fg(x) for later. 7 / 18
8 / 18
8 / 18
8 / 18
8 / 18
8 / 18
9 / 18
9 / 18
⋆ A is uniform if [ ¯
9 / 18
⋆ A is uniform if [ ¯
9 / 18
⋆ A is uniform if [ ¯
⋆ [I | ¯
9 / 18
10 / 18
10 / 18
10 / 18
10 / 18
10 / 18
10 / 18
10 / 18
11 / 18
11 / 18
11 / 18
11 / 18
11 / 18
12 / 18
12 / 18
12 / 18
13 / 18
13 / 18
13 / 18
13 / 18
13 / 18
13 / 18
14 / 18
14 / 18
14 / 18
I
14 / 18
I
14 / 18
15 / 18
15 / 18
15 / 18
⋆ Hid − Hid∗ is invertible for all id = id∗, so can extract skid using R. ⋆ Aid∗ = [ ¯
15 / 18
16 / 18
16 / 18
16 / 18
16 / 18
17 / 18
17 / 18
17 / 18
17 / 18
17 / 18
18 / 18