Digital Signatures / Signing

Hash value which is generated using SIGNING FUNCTION
Used for Non-repudiation:
  Non repudiation means party involved in a transaction or communication cannot deny their authorship of a message
  Sender creates Hash(eg: SHA-256) of document and then encrypts using pvt key
  Recipient uses the sender's public key to decrypt the signature and get hash
  Recipient calculates Hash(SHA-256) of document and compares

hash = sha256(message)
d = Private key
e = public key
n = public exponent

We can think, Digital Signature = Encrypt(Hash(message))

Exact Formula:
Digital Signature(S) = (h pow(d))mod n  //Sender sends S
h = (S pow(e))mod n   //Reciever calculate hash

Algorithms for Generating DS

1. DSA(DIGITAL SIGNATURE ALGO)

Based on the algebraic properties of the modular exponentiations, together with the discrete logarithm problem

2. RSA

trie

2. ECDSA(ECLIPTIC CURVE DSA)

Variant of DSA which uses ECC. Suppose Alice wants to sends signed message to Bob.


Step-1: Both agree on Curve parameters.(CURVE,G,n)
  CURVE: equation to be used. ECC(y2 = x3 + ax +b) Alice and bob chooses curve(y2 = x3 + 7)
  G(Base point): (x0,y0) on chosen curve (y2 = x3 + 7)
  n(Prime No): Multiplier of G. n X G = O. O is identity element.

Step-2-n: Alice Signs message and sends Signature (r,s) //Since ECDSA sends pair as public key