Multivariate Cryptography Part 2: UOV and Rainbow
Albrecht Petzoldt PQCrypto Summer School 2017 Eindhoven, Netherlands Tuesday, 20.06.2017
- A. Petzoldt
Multivariate Cryptography PQCrypto Summer School 1 / 34
Multivariate Cryptography Part 2: UOV and Rainbow Albrecht Petzoldt - - PowerPoint PPT Presentation
Multivariate Cryptography Part 2: UOV and Rainbow Albrecht Petzoldt PQCrypto Summer School 2017 Eindhoven, Netherlands Tuesday, 20.06.2017 A. Petzoldt Multivariate Cryptography PQCrypto Summer School 1 / 34 Oil-Vinegar Polynomials [Pa97]
Multivariate Cryptography PQCrypto Summer School 1 / 34
Multivariate Cryptography PQCrypto Summer School 2 / 34
Multivariate Cryptography PQCrypto Summer School 3 / 34
Multivariate Cryptography PQCrypto Summer School 4 / 34
Multivariate Cryptography PQCrypto Summer School 5 / 34
Multivariate Cryptography PQCrypto Summer School 6 / 34
Multivariate Cryptography PQCrypto Summer School 7 / 34
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.
Multivariate Cryptography PQCrypto Summer School 8 / 34
1 Use a hash function H : {0, 1}⋆ → Fo to compute w = H(d) 2 Compute a pre-image x ∈ Fn of w under the central map F ◮ 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 z ∈ Fn by z = T −1(x).
Multivariate Cryptography PQCrypto Summer School 9 / 34
1 Compute w = H(d). 2 Compute w′ = P(z).
Multivariate Cryptography PQCrypto Summer School 10 / 34
Multivariate Cryptography PQCrypto Summer School 11 / 34
Multivariate Cryptography PQCrypto Summer School 12 / 34
1 Choose an index j ∈ {1, . . . , o} such that Gj is invertible and compute
2 Compute the inverant subspaces of G−1
Multivariate Cryptography PQCrypto Summer School 13 / 34
Multivariate Cryptography PQCrypto Summer School 14 / 34
Multivariate Cryptography PQCrypto Summer School 15 / 34
Multivariate Cryptography PQCrypto Summer School 16 / 34
Multivariate Cryptography PQCrypto Summer School 17 / 34
Multivariate Cryptography PQCrypto Summer School 18 / 34
Multivariate Cryptography PQCrypto Summer School 19 / 34
Multivariate Cryptography PQCrypto Summer School 20 / 34
Multivariate Cryptography PQCrypto Summer School 21 / 34
Multivariate Cryptography PQCrypto Summer School 22 / 34
Multivariate Cryptography PQCrypto Summer School 23 / 34
Multivariate Cryptography PQCrypto Summer School 24 / 34
Multivariate Cryptography PQCrypto Summer School 25 / 34
Multivariate Cryptography PQCrypto Summer School 26 / 34
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
Multivariate Cryptography PQCrypto Summer School 27 / 34
3 + 5x3x4 + 4x3x5 + 2x3x6 + x 2 4 + 6x4x5 + 3x4x6 + 4x4 + 2x5 + 5x6 + 1.
Multivariate Cryptography PQCrypto Summer School 28 / 34
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 F 4 Compute the signature z ∈ Fn by z = T −1(y).
Multivariate Cryptography PQCrypto Summer School 29 / 34
1 Compute w = H(d). 2 Compute w′ = P(z).
Multivariate Cryptography PQCrypto Summer School 30 / 34
Multivariate Cryptography PQCrypto Summer School 31 / 34
Multivariate Cryptography PQCrypto Summer School 32 / 34
Multivariate Cryptography PQCrypto Summer School 33 / 34
Multivariate Cryptography PQCrypto Summer School 34 / 34