Digital signature

A digital signature (DS) scheme allows a signer holding a secret signing key to produce an unforgeable signature on a message, which anyone can verify using the corresponding public verification key. Digital signatures are the public-key analogue of MACs.

Syntax

A Digital Signature scheme is a tuple of efficient algorithms with respect to signing keyspace , verification (or public) keyspace , message space , and signature space :

  • is a randomized algorithm which samples a signing key and verification (or public) key ,
  • is a (possibly) randomized algorithm which takes a signing key and message , outputting signature ,
  • is a deterministic algorithm which takes a verification key a message and a signature , outputting a bit indicating whether the signature is valid or not.

Properties

Correctness

A Digital Signature scheme is -correct if for all ,

over the randomness of and possibly

Existential Unforgeability

The following is the existential unforgeability under chosen message attacks (EUF-CMA) game. This security notion requires that an adversary cannot produce a valid message-signature pair for a message it has not submitted to the signing oracle, even given signatures on adversarially chosen messages.

\begin{algorithm}
\algname{Game}
\caption{$\Game^{\eufcma}_{\DS,\calA}(\secpar)$}
\begin{algorithmic}
\State $(\sk, \vk) \gets \KeyGen(1^\secpar)$
\State $\calQ \gets \{\}$
\State $(\hat{m},\hat{\sigma}) \gets \calA^{\calO}(1^\secpar, \vk)$
\If{$\hat{m}\in \calQ$}
\Comment{$\hat{m}$ cannot repeat}
\Return $0$
\EndIf
\Return $[\Vrfy(\vk,\hat{m},\hat{\sigma})]$
\end{algorithmic}
\end{algorithm}
\begin{algorithm}
\algname{Oracle}
\caption{$\calO(m)$}
\begin{algorithmic}
\State $\sigma \gets \Sign(\sk,m)$
\State $\calQ \gets \calQ \cup \{m\}$
\Return $\sigma$
\end{algorithmic}
\end{algorithm}

A DS scheme is EUF-CMA unforgeable if for all efficient ,

is negligible.

Strong Unforgeability

The following is the strong unforgeability under chosen message attacks (SUF-CMA) game. This security notion strengthens the above EUF-CMA notion and requires to prevent an adversary from “mauling” the signature to produce a new signature for the same message. For example, by rerandomizing the signature into another valid signature.

\begin{algorithm}
\algname{Game}
\caption{$\Game^{\sufcma}_{\DS,\calA}(\secpar)$}
\begin{algorithmic}
\State $(\sk, \vk) \gets \KeyGen(1^\secpar)$
\State $\calQ \gets \{\}$
\State $(\hat{m},\hat{\sigma}) \gets \calA^{\calO}(1^\secpar, \vk)$
\If{$(\hat{m},\hat{\sigma})\in \calQ$}
\Comment{$(\hat{m},\hat{\sigma})$ cannot repeat}
\Return $0$
\EndIf
\Return $[\Vrfy(\vk,\hat{m},\hat{\sigma})]$
\end{algorithmic}
\end{algorithm}
\begin{algorithm}
\algname{Oracle}
\caption{$\calO(m)$}
\begin{algorithmic}
\State $\sigma \gets \Sign(\sk,m)$
\State $\calQ \gets \calQ \cup \{(m, \sigma)\}$
\Return $\sigma$
\end{algorithmic}
\end{algorithm}

A DS scheme is SUF-CMA unforgeable if for all efficient ,

is negligible.

Variations

Schnorr signatures

Schnorr signatures are built from the Schnorr identification protocol — a three-message sigma protocol for proving knowledge of a discrete logarithm — compiled to a signature via the Fiat-Shamir transform. For a generator of a group of prime order , to sign with secret key (where ): sample , compute , , ; the signature is . Verification checks .

Schnorr signatures (Sch91, via FS86) are EUF-CMA secure under the discrete logarithm assumption in the random oracle model — PS96, PS00. They are the basis for EdDSA (e.g. Ed25519) — BDLSY11. They support efficient multi-signatures and threshold signatures.

BLS signatures

BLS signatures (Boneh-Lynn-Shacham) BLS01 use a bilinear pairing to achieve unique, deterministic, and aggregatable signatures. To sign : output (where is a hash-to-curve function). Verification checks .

Key properties:

  • Deterministic: no per-signature randomness needed
  • Short: one group element ( bytes on BLS12-381)
  • Aggregatable: signatures on distinct messages can be aggregated into one signature verifiable with pairings, checking — BGLS03
  • co-CDH ⇒ DS

BLS signatures are used in Ethereum 2.0 for validator attestations and threshold BLS is widely used in threshold signature protocols.

Hash-based signatures

Hash-based signatures need no number-theoretic or lattice assumption: one-time signatures follow from OWF — Lam79 — and many-time signatures from OWF — Rom90.

One-time signatures

A one-time signature scheme is EUF-CMA secure against adversaries that make at most one signing query.

Lattice-based signatures

Lattice-based signatures achieve post-quantum security under LWE/SIS assumptions.

Other results

Participates in

Builds on Digital signature

Produces Digital signature

Barriers