Samantha

Parameters known by Samantha:

Computes the generator \( g \):

Computes the fingerprint \( \mathcal{H}(m) \):

Computes the public verification key \( v \):

Chooses the ephemeral key and its inverse:

Computes the signature of the fingerprint:

Step y/x

Enter the message (or integer) that Samantha wants to sign:

Hit enter to generate the parameters and use the left and right arrow keys to navigate.

A trusted third party chooses two prime numbers \( q \) and \( p \) and a generator \( g_{1} \) of the group \( \mathbb{Z}_{p} \).

The generator \( g_{1} \) is used to compute another generator \( g \) of order \( q \) from the group \( \mathbb{Z}_{p}^{*} \).

Samantha and Victor receives the two prime numbers \( p \) and \( q \) and the generator \( g \).

Samantha computes the fingerprint\( \mathcal{H}(m) \) of the message \( m \) by using the SHA-1 hash function \( \mathcal{H} \).

Samantha chooses a secret signing key \( s \) and computes the public verification key \( v \) which she sends to Victor.

In the signature Samantha needs a random ephemeral key \( e \) that is unique for this signature and its inverse \( e^{-1} \).

The extended Euclidean algorithm is used to compute the inverse \( e^{-1} \).

Samantha computes the signature of the fingerprint \( \mathcal{H}(m) \) which consists of the two values \( \sigma_{1} \) and \( \sigma_{2} \).

Finally she sends the message \( m \) and the signature \( (\sigma_{1}, \sigma_{2}) \) to Victor.

In the verification Victor needs the inverse of \( \sigma_{2} \) and the fingerprint of the message.

The extended Euclidean algorithm is again used to compute the inverse \( \sigma_{2}^{-1} \).

Victor uses the SHA-1 hash function \( \mathcal{H} \) as Samantha to compute the fingerprint \( \mathcal{H}(m) \) of the message \( m \).

If nobody has tampered with the content of the message Victor gets the same fingerprint as Samantha.

Victor computes \( V_{1} \) and \( V_{2} \) which he needs in the last step of the verification.

Victor verifies the signature of the fingerprint \( \mathcal{H}(m) \).

If the two computed values are equals, the message was signed by Samantha and nobody has tampered with the content of the message.

Victor

Parameters known by Victor:

Receives the public parameters

Receives the public verification key \( v \)

Receives the message and signature

Computes the inverse and the fingerprint:

Verifies the signature of the fingerprint: