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
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