Digital Signatures
Dennis Hofheinz (slides based on slides by Björn Kaidel and Gunnar Hartung)
Digital Signatures 2020-03-17 1
Digital Signatures Dennis Hofheinz (slides based on slides by Bjrn - - PowerPoint PPT Presentation
Digital Signatures Dennis Hofheinz (slides based on slides by Bjrn Kaidel and Gunnar Hartung) Digital Signatures 2020-03-17 1 Outline RSA-based signature schemes RSA-FDH: Full Domain Hash Random Oracle Model RSA-FDH: Security Digital
Dennis Hofheinz (slides based on slides by Björn Kaidel and Gunnar Hartung)
Digital Signatures 2020-03-17 1
Digital Signatures 2020-03-17 2
N|
Digital Signatures 2020-03-17 3
Digital Signatures 2020-03-17 4
Digital Signatures 2020-03-17 4
– choose P, Q, N, e as above – d := e−1 mod ϕ(N) – pk = (N, e) – sk = (N, d)
Digital Signatures 2020-03-17 5
– choose P, Q, N, e as above – d := e−1 mod ϕ(N) – pk = (N, e) – sk = (N, d)
Digital Signatures 2020-03-17 5
– choose P, Q, N, e as above – d := e−1 mod ϕ(N) – pk = (N, e) – sk = (N, d)
Digital Signatures 2020-03-17 5
– Choose σ∗ ← ZN – Compute m∗ := (σ∗)e mod N – Output (m∗, σ∗) as forgery
Digital Signatures 2020-03-17 6
– Choose σ∗ ← ZN – Compute m∗ := (σ∗)e mod N – Output (m∗, σ∗) as forgery
– If σ1, σ2 are valid signatures for m1, m2, – then σ3 := σ1σ2 mod N is valid for m3 := m1m2 mod N: σe
3 ≡ (σ1σ2)e ≡ σe 1σe 2 ≡ m1m2 ≡ m3
(mod N)
Digital Signatures 2020-03-17 6
– Choose σ∗ ← ZN – Compute m∗ := (σ∗)e mod N – Output (m∗, σ∗) as forgery
– If σ1, σ2 are valid signatures for m1, m2, – then σ3 := σ1σ2 mod N is valid for m3 := m1m2 mod N: σe
3 ≡ (σ1σ2)e ≡ σe 1σe 2 ≡ m1m2 ≡ m3
(mod N)
Digital Signatures 2020-03-17 6
– EUF-naCMA secure under stronger assumption
– similar to GHR, but under standard RSA assumption
Digital Signatures 2020-03-17 7
– https://www.emc.com/emc-plus/rsa-labs/standards-initiatives/ pkcs-rsa-cryptography-standard.htm – https://tools.ietf.org/html/rfc3447
Digital Signatures 2020-03-17 8
Digital Signatures 2020-03-17 9
– let H be a collision-resistant hash function – encode m as m′ := 0x00 0x01 0xFF ... 0xFF 0x00 spec. H H(m)
Digital Signatures 2020-03-17 9
– let H be a collision-resistant hash function – encode m as m′ := 0x00 0x01 0xFF ... 0xFF 0x00 spec. H H(m) type of encoding: signature
Digital Signatures 2020-03-17 9
– let H be a collision-resistant hash function – encode m as m′ := 0x00 0x01 0xFF ... 0xFF 0x00 spec. H H(m) type of encoding: signature padding
Digital Signatures 2020-03-17 9
– let H be a collision-resistant hash function – encode m as m′ := 0x00 0x01 0xFF ... 0xFF 0x00 spec. H H(m) type of encoding: signature padding boundary
Digital Signatures 2020-03-17 9
– let H be a collision-resistant hash function – encode m as m′ := 0x00 0x01 0xFF ... 0xFF 0x00 spec. H H(m) type of encoding: signature padding boundary which H?
Digital Signatures 2020-03-17 9
– let H be a collision-resistant hash function – encode m as m′ := 0x00 0x01 0xFF ... 0xFF 0x00 spec. H H(m) type of encoding: signature padding boundary which H? hash value
Digital Signatures 2020-03-17 9
– let H be a collision-resistant hash function – encode m as m′ := 0x00 0x01 0xFF ... 0xFF 0x00 spec. H H(m) type of encoding: signature padding boundary which H? hash value – σ := (m′)d (mod N)
Digital Signatures 2020-03-17 9
– let H be a collision-resistant hash function – encode m as m′ := 0x00 0x01 0xFF ... 0xFF 0x00 spec. H H(m) type of encoding: signature padding boundary which H? hash value – σ := (m′)d (mod N)
– compute m′ := σe (mod N) – check if m′ valid encoding of m
Digital Signatures 2020-03-17 9
Digital Signatures 2020-03-17 10
Digital Signatures 2020-03-17 11
– Message space/domain of Textbook RSA: ZN – Hence naming: H hashes to full domain ZN
Digital Signatures 2020-03-17 12
– Message space/domain of Textbook RSA: ZN – Hence naming: H hashes to full domain ZN
Digital Signatures 2020-03-17 12
– Message space/domain of Textbook RSA: ZN – Hence naming: H hashes to full domain ZN
Digital Signatures 2020-03-17 12
– Message space/domain of Textbook RSA: ZN – Hence naming: H hashes to full domain ZN
Digital Signatures 2020-03-17 12
– Message space/domain of Textbook RSA: ZN – Hence naming: H hashes to full domain ZN
Digital Signatures 2020-03-17 12
– Message space/domain of Textbook RSA: ZN – Hence naming: H hashes to full domain ZN
Digital Signatures 2020-03-17 12
Digital Signatures 2020-03-17 13
Digital Signatures 2020-03-17 13
Digital Signatures 2020-03-17 13
Digital Signatures 2020-03-17 14
Digital Signatures 2020-03-17 14
Digital Signatures 2020-03-17 15
Digital Signatures 2020-03-17 15
Digital Signatures 2020-03-17 15
– Example: RSA-based signatures
Digital Signatures 2020-03-17 15
– Example: RSA-based signatures
Digital Signatures 2020-03-17 15
Digital Signatures 2020-03-17 16
Digital Signatures 2020-03-17 16
– Intuition: “Scheme secure modulo hash function”
Digital Signatures 2020-03-17 16
Digital Signatures 2020-03-17 17
Digital Signatures 2020-03-17 18
Digital Signatures 2020-03-17 19
– guess index i∗ of message for which A forges a signature (i.e., guess when m∗ is being queried) – choose hash values hi (for i = i∗) such that signature is known – set hi∗ = y (for the given RSA challenge y)
Digital Signatures 2020-03-17 19
– E0: A (wins and) never queries H(m∗) from RO – E1: A (wins and) explicitly queries H(m∗) from RO
Digital Signatures 2020-03-17 20
– E0: A (wins and) never queries H(m∗) from RO – E1: A (wins and) explicitly queries H(m∗) from RO
Digital Signatures 2020-03-17 20
Digital Signatures 2020-03-17 21
Digital Signatures 2020-03-17 21
CRSA B A RSA problem EUF-CMA
Digital Signatures 2020-03-17 22
CRSA B A RSA problem EUF-CMA choose N, e, y N , e , y
Digital Signatures 2020-03-17 22
CRSA B A RSA problem EUF-CMA choose N, e, y N , e , y p k
Digital Signatures 2020-03-17 22
CRSA B A RSA problem EUF-CMA choose N, e, y N , e , y p k H ( m ) = ? 1
Digital Signatures 2020-03-17 22
CRSA B A RSA problem EUF-CMA choose N, e, y N , e , y p k H ( m ) = ? 1 choose H(m) suitably H ( m )
Digital Signatures 2020-03-17 22
CRSA B A RSA problem EUF-CMA choose N, e, y N , e , y p k H ( m ) = ? 1 choose H(m) suitably H ( m ) Sign(sk, m) = ? 2
Digital Signatures 2020-03-17 22
CRSA B A RSA problem EUF-CMA choose N, e, y N , e , y p k H ( m ) = ? 1 choose H(m) suitably H ( m ) Sign(sk, m) = ? 2 compute σ suitably σ
Digital Signatures 2020-03-17 22
CRSA B A RSA problem EUF-CMA choose N, e, y N , e , y p k H ( m ) = ? 1 choose H(m) suitably H ( m ) Sign(sk, m) = ? 2 compute σ suitably σ m∗ , σ∗ 3
Digital Signatures 2020-03-17 22
CRSA B A RSA problem EUF-CMA choose N, e, y N , e , y p k H ( m ) = ? 1 choose H(m) suitably H ( m ) Sign(sk, m) = ? 2 compute σ suitably σ m∗ , σ∗ 3 x
Digital Signatures 2020-03-17 22
Digital Signatures 2020-03-17 23
– Setting H(m) = xe mod N for known (previously chosen) x. . . – . . . allows to later output a signature σ := x for m
Digital Signatures 2020-03-17 23
– Setting H(m) = xe mod N for known (previously chosen) x. . . – . . . allows to later output a signature σ := x for m – Setting H(m) = y for the RSA challenge y. . . – . . . means that a signature σ for m solves the RSA challenge (since xe = H(m) = y mod N)
Digital Signatures 2020-03-17 23
– Setting H(m) = xe mod N for known (previously chosen) x. . . – . . . allows to later output a signature σ := x for m – Setting H(m) = y for the RSA challenge y. . . – . . . means that a signature σ for m solves the RSA challenge (since xe = H(m) = y mod N)
i mod N for known xi and all (later)
Digital Signatures 2020-03-17 23
– Setting H(m) = xe mod N for known (previously chosen) x. . . – . . . allows to later output a signature σ := x for m – Setting H(m) = y for the RSA challenge y. . . – . . . means that a signature σ for m solves the RSA challenge (since xe = H(m) = y mod N)
i mod N for known xi and all (later)
Digital Signatures 2020-03-17 23
– Setting H(m) = xe mod N for known (previously chosen) x. . . – . . . allows to later output a signature σ := x for m – Setting H(m) = y for the RSA challenge y. . . – . . . means that a signature σ for m solves the RSA challenge (since xe = H(m) = y mod N)
i mod N for known xi and all (later)
i mod N for all other queries mi (with i = i∗)
Digital Signatures 2020-03-17 23
CRSA B A RSA problem EUF-CMA choose N, e, y N , e , y p k H ( m
i
) = ? 1
i = i∗ : H(mi) := xe
i mod N
i = i∗ : H(mi) := y
H ( m
i
) Sign(sk, mi) = ? 2 set σ = xi σ m∗ , σ∗ 3 x = σ∗
Digital Signatures 2020-03-17 24
Digital Signatures 2020-03-17 25
Digital Signatures 2020-03-17 25
Digital Signatures 2020-03-17 26
Digital Signatures 2020-03-17 26
Digital Signatures 2020-03-17 27
Digital Signatures 2020-03-17 28