Digital Signature Process: Signature Generation Signature Verification
Digital Signature Process: Signature Generation Signature Verification
Message/Data Message/Data
Hash Hash
Function Function
Signature Signature
Generation Verification Valid/Invalid
Signature
S1
Signing Verifying
Before signing a message to any entity, Alice(the signee) must generate keys
and announce the public keys to the public
Choose a prime p, between 512 and 1024 bits in length. The number of bits
in p must be a multiple of 64
Choose a 160-bit prime q in such a way that q divides (p-1)
Choose a primitive root e0 in Zp
Create e1 such that : e1 = e0(p-1)/q mod p
Chose d as private key and calculate e2 = e1d
Alice’s public key Pk is (e1, e2, p, q); Private key is d
Digital Signature Standard
Signing
Pk
f1
S1 = (e1r mod p) mod q S1
r
f2
[d, Pk] S2
S2 = (h(M)+d*S1) r-1 mod q
M hash h(M)
Digital Signature Standard
Verifying
check whether
S1 is equal to V
S1 == yes
S1 Accept
V
f3
S2
Pk (V = e1h(M)S2-1 * e2S1S2-1 mod p) mod q
M hash h(M)