Digital Signature Algorithm
Digital Signature Algorithm
Presented By
Asha Liza John
MPhil CS3, IIITMK
Variant of ElGamal
Security depends on difficulty in computing
discrete logarithms.
sender :
Generates a random signature
key k, k < q
Note : k is destroyed after use
and never reused
Then computes signature pair :
message M
computes :
w = (s)-1 mod q
u1 = [H(M)w] mod q
u2 = (rw) mod q
verified
Example
Key Generation
Let q=3, x=2,k=1, H(M) = 11
q is a prime factor of p-1. So p=nq+1 = 2(3)+1 = 7
= h(p-1)/q mod p
= gx mod p
= 26/3 mod 7
= 42 mod 7
= 22 mod 7 = 4
= 16 mod 7 = 2
Example
Signature Generation
r
= [k-1(H(M)+xr)] mod q
= [4*(11+(2*1))] mod 3
= 4 mod 3 = 1
= [4*13] mod 3
= 52 mod 3 = 1
1* k-1 1 mod 3
k-1 = 4 ;
Example
Signature Verification
Receives values M= M, s=s, r=r.
= (s)-1 mod q
u2 = (r*w) mod q
= (1)-1 mod 3
= (1*1) mod 3
= 4 mod 3 = 1
= 1 mod 3 = 1
u1 = [ H(M)*w] mod q
= [11*1] mod 3
= 11mod 3 = 2
= 4 mod 3 = 1
How v = r ??
How v = r ??
y(rw) mod q mod p = g(xrw) mod q mod p
Proof
How v = r ??
For any integer t, if g = h(p1)/q mod p then gt mod p = gt mod q mod p
Proof
By Fermat's theorem (Chapter 8), because h is relatively prime to
p, we have Hp1 mod p = 1. Hence, for any nonnegative integer n
How v = r ??
For any integer t, if g = h(p1)/q mod p then gt mod p = gt mod q mod p
Proof (Contd)
How v = r ??
For nonnegative integers a and b:
g(a mod q + b mod q) mod p = g(a+b) mod q mod p
Proof
How v = r ??
((H(M) + xr)w) mod q = k
Proof(Contd)
How v = r ??
((H(M) + xr)w) mod q = k
Proof