- Digital Signatures sign the hash of a message rather than the full raw message.
- A signature is verified using the sender’s public key.
- Reusing a random nonce ($k$) in ECDSA leaks the private key completely!
### Signing and Verification Process
1. **Sign**:
* Compute message hash: $h = H(M)$
* Produce signature: $\sigma = \text{Sign}(K_{\text{private}}, h)$
2. **Verify**:
* Compute message hash: $h = H(M)$
* Verify: $\text{Verify}(K_{\text{public}}, h, \sigma) \in \{\text{true}, \text{false}\}$
#### Catastrophic Nonce Reuse
In ECDSA, reusing the random integer $k$ across two different signatures allows an observer to compute the private key instantly!