MPSign: A Signature from Small-Secret Middle-Product Learning with Errors
Shi Bai Dipayan Das Ryo Hiromasa Miruna Rosca Amin Sakzad Damien Stehlé Ron Steinfeld Zhenfei Zhang
Miruna Rosca MPSign PKC 2020 1 / 22
MPSign: A Signature from Small-Secret Middle-Product Learning with - - PowerPoint PPT Presentation
MPSign: A Signature from Small-Secret Middle-Product Learning with Errors Shi Bai Dipayan Das Ryo Hiromasa Miruna Rosca Amin Sakzad Damien Stehl Ron Steinfeld Zhenfei Zhang Miruna Rosca MPSign PKC 2020 1 / 22 What is this talk about?
Miruna Rosca MPSign PKC 2020 1 / 22
Miruna Rosca MPSign PKC 2020 2 / 22
Miruna Rosca MPSign PKC 2020 3 / 22
Miruna Rosca MPSign PKC 2020 4 / 22
Miruna Rosca MPSign PKC 2020 5 / 22
(m, σ = Signsk(m))
Miruna Rosca MPSign PKC 2020 5 / 22
(m, σ = Signsk(m)) Verpk(m, σ) ∈ {0, 1}
Miruna Rosca MPSign PKC 2020 5 / 22
(m, σ = Signsk(m)) Verpk(m, σ) ∈ {0, 1}
Miruna Rosca MPSign PKC 2020 5 / 22
(m, σ = Signsk(m)) Verpk(m, σ) ∈ {0, 1}
Miruna Rosca MPSign PKC 2020 5 / 22
Miruna Rosca MPSign PKC 2020 6 / 22
Miruna Rosca MPSign PKC 2020 6 / 22
Miruna Rosca MPSign PKC 2020 7 / 22
Miruna Rosca MPSign PKC 2020 7 / 22
Miruna Rosca MPSign PKC 2020 8 / 22
Miruna Rosca MPSign PKC 2020 8 / 22
q,χ1,χ2
Miruna Rosca MPSign PKC 2020 9 / 22
q,χ1,χ2
q,χ1(s) for s ∈ Zq[x]/f
Miruna Rosca MPSign PKC 2020 9 / 22
q,χ1,χ2
q,χ1(s) for s ∈ Zq[x]/f
Miruna Rosca MPSign PKC 2020 9 / 22
q,χ1,χ2
q,χ1(s) for s ∈ Zq[x]/f
Miruna Rosca MPSign PKC 2020 9 / 22
q,χ1,χ2
q,χ1,χ2
q,χ1(s) for s ∈ Zq[x]/f
Miruna Rosca MPSign PKC 2020 9 / 22
q,χ1,χ2
q,χ1,χ2
q,χ1(s) for s ∈ Zq[x]/f
q,χ1(s) for s ∈ Z<n+d−1 q
q [x]) and e ←
Miruna Rosca MPSign PKC 2020 9 / 22
q,χ1,χ2
q,χ1,χ2
q,χ1(s) for s ∈ Zq[x]/f
q,χ1(s) for s ∈ Z<n+d−1 q
q [x]) and e ←
q [x] × R<d q [x])
Miruna Rosca MPSign PKC 2020 9 / 22
Miruna Rosca MPSign PKC 2020 10 / 22
* D: distribution which produces small elements w.h.p * U: uniform distribution
q,D,U
q,D,U
error secret
Miruna Rosca MPSign PKC 2020 11 / 22
* D: distribution which produces small elements w.h.p * U: uniform distribution
q,D,U
q,D,D
q,D,U
error secret
Miruna Rosca MPSign PKC 2020 11 / 22
* D: distribution which produces small elements w.h.p * U: uniform distribution
q,D,U
q,D,D
q,D,U
q,D,D
error secret
Miruna Rosca MPSign PKC 2020 11 / 22
* D: distribution which produces small elements w.h.p * U: uniform distribution
q,D,U
q,D,D
q,D,U
q,D,D
error secret
Miruna Rosca MPSign PKC 2020 11 / 22
* f ∈ Z[x] of degree n, d ≤ n * DR,σ: Gaussian on R with standard deviation σ * DZ,σ: Gaussian on Z with standard deviation σ
q,χ1,χ2
q,χ1,χ2
q
q )
q,χ1,χ2
q,χ1,χ2
Miruna Rosca MPSign PKC 2020 12 / 22
Miruna Rosca MPSign PKC 2020 13 / 22
Miruna Rosca MPSign PKC 2020 13 / 22
Miruna Rosca MPSign PKC 2020 13 / 22
Miruna Rosca MPSign PKC 2020 13 / 22
Miruna Rosca MPSign PKC 2020 14 / 22
Miruna Rosca MPSign PKC 2020 14 / 22
Miruna Rosca MPSign PKC 2020 14 / 22
Miruna Rosca MPSign PKC 2020 14 / 22
Miruna Rosca MPSign PKC 2020 14 / 22
Miruna Rosca MPSign PKC 2020 14 / 22
Miruna Rosca MPSign PKC 2020 15 / 22
Miruna Rosca MPSign PKC 2020 16 / 22
Miruna Rosca MPSign PKC 2020 16 / 22
W
Miruna Rosca MPSign PKC 2020 16 / 22
W c ← ֓ ChallengeSet
Miruna Rosca MPSign PKC 2020 16 / 22
W c ← ֓ ChallengeSet Z
Miruna Rosca MPSign PKC 2020 16 / 22
W c ← ֓ ChallengeSet Z
V(W, c, Z) ∈ {0, 1} Miruna Rosca MPSign PKC 2020 16 / 22
W c ← ֓ ChallengeSet Z
V(W, c, Z) ∈ {0, 1}
Miruna Rosca MPSign PKC 2020 16 / 22
(s, e) (a, b = a ⊙ s + e)
Miruna Rosca MPSign PKC 2020 17 / 22
y1, y2 small
W = a ⊙ y1 + y2 (s, e) (a, b = a ⊙ s + e)
Miruna Rosca MPSign PKC 2020 17 / 22
y1, y2 small
W = a ⊙ y1 + y2 c ← ֓ ChallengeSet (s, e) (a, b = a ⊙ s + e)
Miruna Rosca MPSign PKC 2020 17 / 22
y1, y2 small z1 = c ⊙ s + y1 z2 = c ⊙ e + y2 reject z1, z2?
W = a ⊙ y1 + y2 c ← ֓ ChallengeSet Z = (z1, z2) (s, e) (a, b = a ⊙ s + e)
Miruna Rosca MPSign PKC 2020 17 / 22
y1, y2 small z1 = c ⊙ s + y1 z2 = c ⊙ e + y2 reject z1, z2? check if: W = a ⊙ z1 + z2 − c ⊙ b z1, z2 small
W = a ⊙ y1 + y2 c ← ֓ ChallengeSet Z = (z1, z2) (s, e) (a, b = a ⊙ s + e)
Miruna Rosca MPSign PKC 2020 17 / 22
(s, e) m (a, b = a ⊙ s + e)
Miruna Rosca MPSign PKC 2020 18 / 22
y1, y2 small W = a ⊙ y1 + y2
(s, e) m (a, b = a ⊙ s + e)
Miruna Rosca MPSign PKC 2020 18 / 22
y1, y2 small W = a ⊙ y1 + y2 c = H(W||m)
(s, e) m (a, b = a ⊙ s + e)
Miruna Rosca MPSign PKC 2020 18 / 22
y1, y2 small W = a ⊙ y1 + y2 c = H(W||m) z1 = c ⊙ s + y1 z2 = c ⊙ e + y2 reject z1, z2?
(s, e) m (a, b = a ⊙ s + e)
Miruna Rosca MPSign PKC 2020 18 / 22
y1, y2 small W = a ⊙ y1 + y2 c = H(W||m) z1 = c ⊙ s + y1 z2 = c ⊙ e + y2 reject z1, z2?
(s, e) m (a, b = a ⊙ s + e)
Miruna Rosca MPSign PKC 2020 18 / 22
y1, y2 small W = a ⊙ y1 + y2 c = H(W||m) z1 = c ⊙ s + y1 z2 = c ⊙ e + y2 reject z1, z2?
(m, (z1, z2, c)) (s, e) m (a, b = a ⊙ s + e)
Miruna Rosca MPSign PKC 2020 18 / 22
y1, y2 small W = a ⊙ y1 + y2 c = H(W||m) z1 = c ⊙ s + y1 z2 = c ⊙ e + y2 reject z1, z2? W = a ⊙ z1 + z2 − c ⊙ b
(m, (z1, z2, c)) (s, e) m (a, b = a ⊙ s + e)
Miruna Rosca MPSign PKC 2020 18 / 22
y1, y2 small W = a ⊙ y1 + y2 c = H(W||m) z1 = c ⊙ s + y1 z2 = c ⊙ e + y2 reject z1, z2? check if: c = H(W, m) z1, z2 small W = a ⊙ z1 + z2 − c ⊙ b
(m, (z1, z2, c)) (s, e) m (a, b = a ⊙ s + e)
Miruna Rosca MPSign PKC 2020 18 / 22
Miruna Rosca MPSign PKC 2020 19 / 22
Miruna Rosca MPSign PKC 2020 19 / 22
Miruna Rosca MPSign PKC 2020 20 / 22
Miruna Rosca MPSign PKC 2020 21 / 22
⇒ you cannot decrease too much the size of the secret key in [Lyu16] to improve it
Miruna Rosca MPSign PKC 2020 21 / 22
Miruna Rosca MPSign PKC 2020 22 / 22