20 May 2021, 08:09

on signature schemes

Field guide to signature schemes

triple of three algorithms G S V


G() -> (pk, sk)

  • creates public key and secret key


S(sk, x) -> t

  • takes secret key and value to be signed
  • returns a tag, a random string that allows verification againist x


V(pk,x,t) -> accept|reject

  • takes public key, value, and signed value
  • accepts or rejects based on x and t


V(pk, x, S(sk, x))

the result of the signer with arguments secret key and value will verify with verification function with arguments public key, value, and result of signer.


V(pk, x, t)

this will be next to impossible, computationally difficult

Typical flow

  • server calls generator G() -> (pk, sk)
  • client logs in
  • server validates log credientials
  • server returns tag S(sk, x) -> t
  • on next private request from client server validates V(pk, x, S(sk, x))
  • if valid returns private response

← on service design
on testing →