Multivariate Quadratic Public-Key Cryptography Part 3: Small Field Schemes
Bo-Yin Yang
Academia Sinica
Taipei, Taiwan Friday, 28.06.2018
B.-Y. Yang (Academia Sinica) UOV and Rainbow PQC Mini School 1 / 27
Multivariate Quadratic Public-Key Cryptography Part 3: Small Field - - PowerPoint PPT Presentation
Multivariate Quadratic Public-Key Cryptography Part 3: Small Field Schemes Bo-Yin Yang Academia Sinica Taipei, Taiwan Friday, 28.06.2018 B.-Y. Yang (Academia Sinica) UOV and Rainbow PQC Mini School 1 / 27 Oil-Vinegar Polynomials [Patarin
Academia Sinica
B.-Y. Yang (Academia Sinica) UOV and Rainbow PQC Mini School 1 / 27
v
v
v
n
n
B.-Y. Yang (Academia Sinica) UOV and Rainbow PQC Mini School 2 / 27
B.-Y. Yang (Academia Sinica) UOV and Rainbow PQC Mini School 3 / 27
B.-Y. Yang (Academia Sinica) UOV and Rainbow PQC Mini School 4 / 27
B.-Y. Yang (Academia Sinica) UOV and Rainbow PQC Mini School 5 / 27
B.-Y. Yang (Academia Sinica) UOV and Rainbow PQC Mini School 6 / 27
1 + 3x1x2 + 6x1x3 + x1x4 + 4x 2 2 + 5x2x4 + 3x1 + 2x2 + 5x3 + x4 + 6,
1 + 6x1x2 + 5x1x4 + 3x 2 2 + 5x2x3 + x2x4 + 2x1 + 5x2 + 4x3 + 2x4 + 1.
B.-Y. Yang (Academia Sinica) UOV and Rainbow PQC Mini School 6 / 27
1 Given: message d, take its hash y = H(d) under H : {0, 1}⋆ → Fo. 2 Compute a pre-image x ∈ Fn of y under the central map Q ◮ Choose random values for the Vinegar variables x1, . . . , xv and
◮ Solve the resulting linear system for the Oil variables xv+1, . . . , xn ◮ If the system has no solution, choose other values for the Vinegar
3 Compute the signature w ∈ Fn by w = S−1(x). B.-Y. Yang (Academia Sinica) UOV and Rainbow PQC Mini School 7 / 27
1 Given: message d, take its hash y = H(d) under H : {0, 1}⋆ → Fo. 2 Compute a pre-image x ∈ Fn of y under the central map Q 3 Compute the signature w ∈ Fn by w = S−1(x).
1 Compute z = H(d). 2 Compute z′ = P(w).
B.-Y. Yang (Academia Sinica) UOV and Rainbow PQC Mini School 7 / 27
B.-Y. Yang (Academia Sinica) UOV and Rainbow PQC Mini School 8 / 27
j
B.-Y. Yang (Academia Sinica) UOV and Rainbow PQC Mini School 8 / 27
j
B.-Y. Yang (Academia Sinica) UOV and Rainbow PQC Mini School 8 / 27
i αiHi, H−1 i
B.-Y. Yang (Academia Sinica) UOV and Rainbow PQC Mini School 9 / 27
22ℓ log2(q) for ℓ-bit security.
B.-Y. Yang (Academia Sinica) UOV and Rainbow PQC Mini School 10 / 27
22ℓ log2(q) for ℓ-bit security.
B.-Y. Yang (Academia Sinica) UOV and Rainbow PQC Mini School 10 / 27
UOV and Rainbow PQC Mini School 11 / 27
1
2
v
B.-Y. Yang (Academia Sinica) UOV and Rainbow PQC Mini School 11 / 27
Pn = 1n +
· · · λ1 · · · λ2 . . . ... . . . . . . · · · λv · · · . . . ... . . . . . . · · ·
; Pn−1 = 1n +
· · · λ′
1
· · · λ′
2
. . . ... . . . . . . . . . · · · λ′
v
· · · . . . ... . . . . . . . . . · · ·
; · · · 1 Perform basis change wi := w′
i − λiw′ n for i = 1 · · · v, wi = w′ i for
2 Let all coefficients of (w′
n)2 be zero and solve for the λi. We may use
B.-Y. Yang (Academia Sinica) UOV and Rainbow PQC Mini School 11 / 27
Pn = 1n +
· · · λ1 · · · λ2 . . . ... . . . . . . · · · λv · · · . . . ... . . . . . . · · ·
; Pn−1 = 1n +
· · · λ′
1
· · · λ′
2
. . . ... . . . . . . . . . · · · λ′
v
· · · . . . ... . . . . . . . . . · · ·
; · · · 1 Perform basis change wi := w′
i − λiw′ n for i = 1 · · · v, wi = w′ i for
2 Let all coefficients of (w′
n)2 be zero and solve for the λi. We may use
3 Set w′
i := w′′ i − λiw′′ n−1 for i = 1 · · · v, and set every (w′′ n−1)2 and
n w′′ n−1 term to zero (i.e., more equations in the system). We find
B.-Y. Yang (Academia Sinica) UOV and Rainbow PQC Mini School 11 / 27
security public key private key hash size signature level (bit) scheme size (kB) size (kB) (bit) (bit) 80 UOV(F16,40,80) 144.2 135.2 160 480 UOV(F256,27,54) 89.8 86.2 216 648 100 UOV(F16,50,100) 280.2 260.1 200 600 UOV(F256, 34,68) 177.8 168.3 272 816 128 UOV(F16,64,128) 585.1 538.1 256 768 UOV(F256,45,90) 409.4 381.8 360 1,080 192 UOV(F16,96,192) 1,964.3 1,786.7 384 1,152 UOV(F256,69,138) 1,464.6 1,344.0 552 1,656 256 UOV(F16,128,256) 4,644.1 4,200.3 512 1,536 UOV(F256,93,186) 3,572.9 3,252.2 744 2,232
B.-Y. Yang (Academia Sinica) UOV and Rainbow PQC Mini School 12 / 27
B.-Y. Yang (Academia Sinica) UOV and Rainbow PQC Mini School 13 / 27
ij xixj +
ij xixj +
i
ij , β(k) ij , γ(k) i
B.-Y. Yang (Academia Sinica) UOV and Rainbow PQC Mini School 13 / 27
B.-Y. Yang (Academia Sinica) UOV and Rainbow PQC Mini School 14 / 27
B.-Y. Yang (Academia Sinica) UOV and Rainbow PQC Mini School 14 / 27
1 Use a hash function H : {0, 1} → Fm to compute z = H(d) ∈ Fm 2 Compute y = T −1(z) ∈ Fm. 3 Compute a pre-image x ∈ Fn of y under the central map Q 4 Compute the signature w ∈ Fn by w = S−1(x). B.-Y. Yang (Academia Sinica) UOV and Rainbow PQC Mini School 14 / 27
1 Use a hash function H : {0, 1} → Fm to compute z = H(d) ∈ Fm 2 Compute y = T −1(z) ∈ Fm. 3 Compute a pre-image x ∈ Fn of y under the central map Q 4 Compute the signature w ∈ Fn by w = S−1(x).
1 Compute z = H(d). 2 Compute z′ = P(w).
B.-Y. Yang (Academia Sinica) UOV and Rainbow PQC Mini School 14 / 27
B.-Y. Yang (Academia Sinica) UOV and Rainbow PQC Mini School 15 / 27
B.-Y. Yang (Academia Sinica) UOV and Rainbow PQC Mini School 16 / 27
B.-Y. Yang (Academia Sinica) UOV and Rainbow PQC Mini School 17 / 27
B.-Y. Yang (Academia Sinica) UOV and Rainbow PQC Mini School 18 / 27
1 + 3x1x2 + 5x1x3 + 6x1x4 + 2x 2 2 + 6x2x3 + 4x2x4 + 2x2 + 6x3 + 2x4 + 5,
1 + x1x2 + x1x3 + 3x1x4 + 4x1 + x 2 2 + x2x3 + 4x2x4 + 6x2 + x4,
1 + 3x1x2 + 3x1x3 + 3x1x4 + x1x5 + 3x1x6 + 6x1 + 4x 2 2 + x2x3 + 4x2x4
1 + 5x1x2 + x1x3 + 5x1x4 + 5x1x6 + 6x1 + 5x 2 2 + 3x2x3 + 5x2x5 + 4x2x6
3 + 5x3x4 + 4x3x5 + 2x3x6 + 4x3 + x 2 4 + 6x4x5 + 3x4x6
B.-Y. Yang (Academia Sinica) UOV and Rainbow PQC Mini School 19 / 27
3 + 5x3x4 + 4x3x5 + 2x3x6 + x 2 4 + 6x4x5 + 3x4x6 + 4x4 + 2x5 + 5x6 + 1.
B.-Y. Yang (Academia Sinica) UOV and Rainbow PQC Mini School 20 / 27
1 Use a hash function H : {0, 1} → Fm to compute w = H(d) ∈ Fm 2 Compute x = S−1(w) ∈ Fm. 3 Compute a pre-image y ∈ Fn of x under the central map Q 4 Compute the signature z ∈ Fn by z = T −1(y). B.-Y. Yang (Academia Sinica) UOV and Rainbow PQC Mini School 21 / 27
1 Compute w = H(d). 2 Compute w′ = P(z).
B.-Y. Yang (Academia Sinica) UOV and Rainbow PQC Mini School 22 / 27
B.-Y. Yang (Academia Sinica) UOV and Rainbow PQC Mini School 23 / 27
i αiHi to 0.
i αiHiv = 0, hope to find a non-trivial solution.
n ⌉ vectors.)
B.-Y. Yang (Academia Sinica) UOV and Rainbow PQC Mini School 24 / 27
1 Let wi := w′
i − λiw′ n for i ≤ v, wi = w′ i for i > v. Evaluate z in w′.
2 Find m equations by letting all (w′
n)2 terms vanish; there are v of λi’s.
3 Set all cross-terms involving w′
n in
1 zv+1 − σ(1) 2 zv+2 − · · · − σ(1)
4 Solve m + n − 1 quadratic equations in o + v = n unknowns. 5 Repeat, e.g. next set w′
i := w′′ i − λiw′′ n−1 for i < v, and let every
n−1)2 and w′′ n w′′ n−1 term be 0. Also set
1 zv+1 − σ(2) 2 zv+2 − · · · − σ(2)
B.-Y. Yang (Academia Sinica) UOV and Rainbow PQC Mini School 25 / 27
security parameters public key private key hash size signature level (bit) F, v1, o1, o2 size (kB) size (kB) (bit) (bit) 80 F16,20,20,20 33.4 22.3 160 228 F256,19,12,13 25.3 19.3 200 352 100 F16,25,25,25 65.9 43.2 200 288 F256, 27,16,16 57.2 44.3 256 472 128 F16,32,32,32 136.6 87.6 256 368 F31,28,28,28 123.2 74.5 280 420 F256,36,21,22 136.0 102.5 344 632 192 F16,48,48,48 475.9 301.8 384 564 F31,44,40,40 360.1 245.2 420 630 256 F16,64,64,64 1,194.4 763.9 512 776
B.-Y. Yang (Academia Sinica) UOV and Rainbow PQC Mini School 26 / 27
B.-Y. Yang (Academia Sinica) UOV and Rainbow PQC Mini School 27 / 27
Academia Sinica
B.-Y. Yang (Academia Sinica) MPKCs on x86 64 PQC Mini School 2 / 24
B.-Y. Yang (Academia Sinica) MPKCs on x86 64 PQC Mini School 2 / 24
B.-Y. Yang (Academia Sinica) MPKCs on x86 64 PQC Mini School 2 / 24
B.-Y. Yang (Academia Sinica) MPKCs on x86 64 PQC Mini School 3 / 24
B.-Y. Yang (Academia Sinica) MPKCs on x86 64 PQC Mini School 3 / 24
B.-Y. Yang (Academia Sinica) MPKCs on x86 64 PQC Mini School 3 / 24
B.-Y. Yang (Academia Sinica) MPKCs on x86 64 PQC Mini School 3 / 24
B.-Y. Yang (Academia Sinica) MPKCs on x86 64 PQC Mini School 4 / 24
◮ In 80’s, CPUs computed one 32-bit integer product every 15–20 cycles ◮ In 2000, x86 CPUs computed one 64-bit product every 3–10 cycles ◮ Core i7’s today produces one 128-bit product every 1 cycle ◮ Marvelous for ECC (and RSA)
◮ 6502 or 8051: a dozen cycles via three table look-ups ◮ Modern x86: roughly same that many cycles
◮ Memory access speed increased at a snail’s pace
◮ Forcing longer message digests ◮ RSA untouched B.-Y. Yang (Academia Sinica) MPKCs on x86 64 PQC Mini School 5 / 24
B.-Y. Yang (Academia Sinica) MPKCs on x86 64 PQC Mini School 6 / 24
B.-Y. Yang (Academia Sinica) MPKCs on x86 64 PQC Mini School 7 / 24
◮ Source: (x0, . . . , x15) ◮ Destination: (y0, . . . , y15) ◮ Result: (yx0 mod 32, . . . , yx15 mod 32), treating y16, . . . , y31 as 0
B.-Y. Yang (Academia Sinica) MPKCs on x86 64 PQC Mini School 8 / 24
◮ xmm ← a-th row of TT ◮ av ← PSHUFB xmm,v
◮ Need to unpack, do PSHUFBs, then pack
◮ AMD’s SSE5: PPERM (superset of PSHUFB) ◮ IBM POWER AltiVec/VMX: PERMU ◮ ARM’s TBL B.-Y. Yang (Academia Sinica) MPKCs on x86 64 PQC Mini School 9 / 24
◮ avi = a(16⌊vi/16⌋) + a(vi mod 16), 0 ≤ i < 16
i ← a(16⌊vi/16⌋)
◮ v′
i ← ⌊vi/16⌋ (SHIFT)
◮ xmm ← a-th row of TH ◮ v′ ← PSHUFB xmm,v′
◮ vi ← vi mod 16 (AND) ◮ xmm ← a-th row of TL ◮ v ← PSHUFB xmm,v
B.-Y. Yang (Academia Sinica) MPKCs on x86 64 PQC Mini School 10 / 24
B.-Y. Yang (Academia Sinica) MPKCs on x86 64 PQC Mini School 11 / 24
B.-Y. Yang (Academia Sinica) MPKCs on x86 64 PQC Mini School 11 / 24
B.-Y. Yang (Academia Sinica) MPKCs on x86 64 PQC Mini School 11 / 24
B.-Y. Yang (Academia Sinica) MPKCs on x86 64 PQC Mini School 11 / 24
1 Have fixed tables 0×, 1×, 0x2×, 0x3×, . . . 2 VPSHUFB to get: 0 × [x0, x1, . . .], 1 × [x0, x1, . . .], 0x2 × [x0, x1, . . .], 3 Transpose, now we can multiply by x0, x1, . . . B.-Y. Yang (Academia Sinica) MPKCs on x86 64 PQC Mini School 11 / 24
◮ Pre-scripted Gr¨
◮ Iterative Methods vs. Gaussian Eliminations ◮ Cantor-Zassenhaus vs. Berlekamp B.-Y. Yang (Academia Sinica) MPKCs on x86 64 PQC Mini School 12 / 24
B.-Y. Yang (Academia Sinica) MPKCs on x86 64 PQC Mini School 13 / 24
i wi
i<j Rijkwj
1 c ← [wT, (wiwj)i≤j]T 2 z ← Pc, where P is the m × n(n + 3)/2 public-key matrix
B.-Y. Yang (Academia Sinica) MPKCs on x86 64 PQC Mini School 14 / 24
B.-Y. Yang (Academia Sinica) MPKCs on x86 64 PQC Mini School 15 / 24
B.-Y. Yang (Academia Sinica) MPKCs on x86 64 PQC Mini School 15 / 24
◮ The field equation X q − X = 0 becomes much less useful
◮ and you only need to parallelize 4 or 8 at a time.
B.-Y. Yang (Academia Sinica) MPKCs on x86 64 PQC Mini School 15 / 24
◮ Source: (x0, . . . , x31) Unsigned ◮ Destination: (y0, . . . , y31) Signed ◮ Result: (x0y0 + x1y1, x2y2 + x3y3, . . . , x30y30 + x31y31)
◮ Let Q be a 16 × 2 submatrix of P ◮ dT be the corresponding 2 × 1 submatrix of c ◮ r1 ← (Q11, Q12, Q21, Q22, . . . , Q15,1, Q15,2) ◮ r2 ← (d1, d2, d1, d2, . . . , d1, d2) ◮ VPMADDUSBW r1, r2 computes Qd ◮ Continue in 16-bits until reduction modq needed.
B.-Y. Yang (Academia Sinica) MPKCs on x86 64 PQC Mini School 16 / 24
B.-Y. Yang (Academia Sinica) MPKCs on x86 64 PQC Mini School 17 / 24
B.-Y. Yang (Academia Sinica) MPKCs on x86 64 PQC Mini School 17 / 24
B.-Y. Yang (Academia Sinica) MPKCs on x86 64 PQC Mini School 17 / 24
B.-Y. Yang (Academia Sinica) MPKCs on x86 64 PQC Mini School 18 / 24
◮ Wiedemann iterative solver for Ax = b ⋆ Compute zAib for some z ⋆ Compute minimal polynomial using Berlekamp-Massey ◮ Requires O(2n3) field multiplications ◮ Straightforward Gauss elimination requires O(n3/3)
B.-Y. Yang (Academia Sinica) MPKCs on x86 64 PQC Mini School 19 / 24
1 Replace u(X) by gcd(u(X), X qk − X) so that u splits in L. 1
2
3
4
2 Do gcd
2 of the time; repeat as
B.-Y. Yang (Academia Sinica) MPKCs on x86 64 PQC Mini School 20 / 24
1 Replace u(X) by gcd(u(X), X qk − X) so that u splits in L. 1
2
3
4
2 Toss everything away and repeat unless there is a single solution. B.-Y. Yang (Academia Sinica) MPKCs on x86 64 PQC Mini School 20 / 24
B.-Y. Yang (Academia Sinica) MPKCs on x86 64 PQC Mini School 21 / 24
B.-Y. Yang (Academia Sinica) MPKCs on x86 64 PQC Mini School 21 / 24
B.-Y. Yang (Academia Sinica) MPKCs on x86 64 PQC Mini School 21 / 24
a on Core i7-4770K (Haswell) 3.5GHz. b eBACS on Xeon E3-1275 v3 (haswell) at 3.5GHz.
B.-Y. Yang (Academia Sinica) MPKCs on x86 64 PQC Mini School 22 / 24
B.-Y. Yang (Academia Sinica) MPKCs on x86 64 PQC Mini School 23 / 24
B.-Y. Yang (Academia Sinica) MPKCs on x86 64 PQC Mini School 24 / 24