Signatures: Generalities

In this chapter, we define the syntax of a signature scheme and explore security definitions, asking ourselves: what makes a signature scheme secure?

Syntax

A signature scheme consists of four algorithms:

  • a algorithm which takes as input the security parameter and returns public parameters
  • a key generation algorithm which takes as input parameters and returns a secret key and a public key
  • a signature algorithm which takes as input parameters a secret key and a message and returns a signature
  • a verification algorithm which takes as input parameters a public key a message and a signature and returns if the signature is valid for the pair and otherwise.

The scheme is correct if for every security parameter and every message the following game capturing the nominal execution of algorithms returns true with probability one:

This syntax considers that the message space is meaning that the signing algorithm takes any string as input message. In practice, this is never the case: quite often, the signing algorithm starts with hashing the input message with a hash function that has a finite message space. More generally, the message space could depend on the public parameters returned by the setup algorithm (e.g., the public parameters could specify a group and admissible messages could be restricted to group elements.) This can be accommodated by adapting the syntax as follows: on input the algorithms returns either a signature or a distinguished error symbol indicating the message is invalid (i.e., cannot be signed). Correctness must be modified to require that only if Other variables ( and usually have a specific format depending on the security parameter. Similarly, we assume that and return an error symbol in case any input does not abide to the expected format.

EUF-CMA, the Standard Security Notion

The standard security notion for a signature scheme is existential unforgeability against chosen message attacks (EUF-CMA): no polynomial-time adversary, being given a target public key and having access to a signature oracle for the corresponding secret key should be able to compute a valid signature for a message it has not queried to the signature oracle, except with negligible probability. This is formally captured by the following security game:

Here, chosen message attack means that the adversary can query the signature oracle on messages of its choice, while existential unforgeability means that the adversary wins if it returns a forgery on any message that has not been queried to the signature oracle (there exists some message for which the adversary can forge a signature).

One can weaken this security definition in two directions. One one hand, one can restrict how the adversary can access the signature oracle. For example, in a no message attack, the adversary does not have access to the signature oracle. In a known message attack, the adversary cannot choose the message when querying the signature oracle (the message is randomly drawn according to some specific probability distribution). On the other hand, one can modify how the adversary can choose the message for which it forges its message. For example, selective unforgeability requires the adversary to commit to the message for which it will forge at the beginning of the game, before receiving the target public key and making any query to the signature oracle. For universal unforgeability, the message is imposed by the game rather than chosen by the adversary (typically, it is drawn at random by the game according to some specific distribution).

All these weaker notions are mostly of theoretical interest (for example, there exists generic conversion methods to construct signature schemes that are EUF-CMA-secure from schemes that are only meet selective unforgeability against chosen message attacks). In practice, a signature scheme must be EUF-CMA-secure to be deployed (more precisely, conjectured EUF-CMA-secure, preferably supported by a security proof).

Strong EUF-CMA and Non-malleability

Binding