crypto-snippets/digital-signatures
Digital Signature Syntax
#signatures
#system
$\gdef\system{\mathsf{Sig}}$ $\gdef\systemprefix{}$ $\gdef\keygen{\mathsf{\systemprefix{}KGen}}$ $\gdef\sign{\mathsf{\systemprefix{}Sign}}$ $\gdef\verify{\mathsf{\systemprefix{}Verify}}$ $\gdef\msgspace{\mathcal{M}}$
A Digital Signature scheme $\system$ for message space $\msgspace{}$ is a tuple $(\keygen, \sign, \verify)$ with:
- $\keygen(1^n) \to (pk, sk):$ Probabilistic key generation algorithm which on input $1^n$ returns key pair $(pk, sk)$. $pk$ is the public key and $sk$ is the secret key.
- $\sign(sk, m) \to \sigma$: Sign algorithm, takes as input a secret key $sk$ and a message $m \in \msgspace$, returns a signature $\sigma$.
- $\verify(pk, m, \sigma) \to \{0, 1\}$: Deterministic verification algorithm, takes as input public key $pk$, message $m$, and signature $\sigma$, returns $1$ if $m, \sigma$ is a valid message signature pair for $pk$.
Last modified June 16, 2025, 3:35 p.m.