Code-Based Cryptography
Tung Chou with some slides by Tanja Lange and Christiane Peters
Academia Sinica
Code-Based Cryptography Tung Chou with some slides by Tanja Lange - - PowerPoint PPT Presentation
Code-Based Cryptography Tung Chou with some slides by Tanja Lange and Christiane Peters Academia Sinica PQCRYPTO Mini-School 2020 20 July, 2020 Basics of coding theory Error correction Goal: protect against errors in a noisy channel.
Academia Sinica
1
1
q.
2
q.
q
q
2
q.
q
q
q
q
⊺ and assuming q = 2 from now on)
2
q.
q
q
q
q
⊺ and assuming q = 2 from now on)
2
3
3
2 is the number of
0=c∈C{wt(c)} = min b=c∈C{d(b, c)}
4
5
5
6
6
6
6
2,
7
2 is s = Hx.
2 given
2
8
2 is s = Hx.
2 given
2
8
2 is s = Hx.
2 given
2
8
9
2
9
2
9
1 Dimension k ≥ n − mt (usually equality holds). 2 Nice parity-check matrix
1
2
n
3 Minimum distance d ≥ t + 1. d ≥ 2t + 1 if g is square-free.
1 g d2 2 · · · g dℓ ℓ , then di = 1 for all i.
4 Γ(L, g) = Γ(L, g 2) if g is square-free 5 There exist efficient t-error decoding algorithms when g is
10
t−1
i=1 cifi(x) ≡ 0 mod g(x) =
i=1 cifi(x) = 0, in other words,
2m
11
i=1 ci/(x − ai)
ci=1
12
i=1 ci/(x − ai)
ci=1
12
i=1 ci/(x − ai)
ci=1
12
i=1 ci/(x − ai)
ci=1
12
i=1 ci/(x − ai)
ci=1
12
i=1 ci/(x − ai)
ci=1
12
13
13
13
13
13
⌊(w−1)/2⌋
⌊(w−1)/2⌋
2
13
⌊(w−1)/2⌋
⌊(w−1)/2⌋
2
13
⌊(w−1)/2⌋
⌊(w−1)/2⌋
2
13
i,ei=0(x − ai). Similar to f (x) before for c.
14
2
2
2
15
2
2
2
15
2.
2 with wt(e) = t.
2.
16
2
2
2
17
2
2
2
17
18
2
19
2
19
2
19
2
19
20
21
21
21
21
22
22
22
22
23
23
23
23
24
24
25
1 with t − w errors; typically much easier.
25
26
26
26
2
t
27
2 Then H′ = UHP for some permutation matrix P and U the matrix
3 This updates s to Us. 4 If wt(Us) = t then UHPe′ = US where e′ = (00 . . . 0)||Us.
5 Else return to 1 to rerandomize.
28
2 Then H′ = UHP for some permutation matrix P and U the matrix
3 This updates s to Us. 4 If wt(Us) = t then UHPe′ = US where e′ = (00 . . . 0)||Us.
5 Else return to 1 to rerandomize.
t
t
28
2 For small p, pick p of the k columns on the left, compute their sum
3 If wt(s + Xp) = t − p then put e′ = p||(s + Xp).
4 Else return to 2 or return to 1 to rerandomize.
29
2 For small p, pick p of the k columns on the left, compute their sum
3 If wt(s + Xp) = t − p then put e′ = p||(s + Xp).
4 Else return to 2 or return to 1 to rerandomize.
t
p
t−p
p
29
1 Pick p with wt(p) = p. 2 Compute XZp. 3 If sZ + XZp = 0 goto 1. 4 Else compute Xp. 1 If wt(s + Xp) = t − p then put e′ = p||(s + Xp).
2 Else return to 1 or rerandomize K.
30
2
2
31
32
33
Public-key Encryption and Type Key-establishment Algorithms BIKE Code-based Classic McEliece Code-based CRYSTALS-KYBER Lattice-based FrodoKEM Lattice-based HQC Code-based LAC Lattice-based LEDAcrypt Code-based NewHope Lattice-based NTRU Lattice-based NTRU Prime Lattice-based NTS-KEM Code-based ROLLO Code-based Round5 Lattice-based RQC Code-based SABER Lattice-based SIKE Isogeny-based THREE BEARS Lattice-based
34
35
mceliece348864 mceliece460896 mceliece6688128 mceliece6960119 mceliece8192128 (n, m, t) (3488, 12, 64) (4608, 13, 96) (6688, 13, 128) (6960, 13, 119) (8192, 13, 128) Public-key size 261120 bytes 524160 bytes 1044992 bytes 1047319 bytes 1357824 bytes Secret-key size 6452 bytes 13568 bytes 13892 bytes 13908 bytes 14080 bytes Ciphertext size 128 bytes 188 bytes 240 bytes 226 bytes 240 bytes Key-gen time 52415436 cycles 181063400 cycles 467870488 cycles 417271280 cycles 424239104 cycles Encapsulation time 43648 cycles 77380 cycles 140632 cycles 143908 cycles 187976 cycles Decapsulation time 130944 cycles 267828 cycles 315920 cycles 295628 cycles 318484 cycles
36
37
37
38
38