Digital Signature Algorithm (DSA) : Pratik Ray
Digital Signature Algorithm (DSA) : Pratik Ray
Pratik Ray
Kathmandu University
Pratik Ray (Kathmandu University) Digital Signature Algorithm (DSA) January 31, 2025 1/7
Introduction
Pratik Ray (Kathmandu University) Digital Signature Algorithm (DSA) January 31, 2025 2/7
Key Generation
Parameters:
A large prime p.
A prime divisor q of p − 1.
A generator g of order q.
Private Key: x, where 0 < x < q.
Public Key: y = g x mod p.
Pratik Ray (Kathmandu University) Digital Signature Algorithm (DSA) January 31, 2025 3/7
Signing Process
Pratik Ray (Kathmandu University) Digital Signature Algorithm (DSA) January 31, 2025 4/7
Verification Process
Compute w = s −1 mod q.
Compute u1 = (H(m)w ) mod q and u2 = (rw ) mod q.
Compute v = ((g u1 y u2 ) mod p) mod q.
The signature is valid if v = r .
Pratik Ray (Kathmandu University) Digital Signature Algorithm (DSA) January 31, 2025 5/7
Example of DSA
Given: p = 23, q = 11, g = 2, x = 6
Public key: y = g x mod p = 26 mod 23 = 64 mod 23 = 18
Signing:
Choose k = 3
Compute r = (g k mod p) mod q = (23 mod 23) mod 11 = 8
mod 11 = 8
Compute s = (k −1 (H(m) + xr )) mod q, assume H(m) = 9
Compute s = (3−1 (9 + 6 × 8)) mod 11 = (3−1 × 57) mod 11
Since 3−1 ≡ 4 mod 11, s = (4 × 57) mod 11 = 228 mod 11 = 8
Signature: (r , s) = (8, 8)
Verification:
Compute w = s −1 mod q = 8−1 mod 11 = 7
Compute u1 = (H(m)w ) mod q = (9 × 7) mod 11 = 63 mod 11 = 8
Compute u2 = (rw ) mod q = (8 × 7) mod 11 = 56 mod 11 = 1
Compute v = ((g u1 y u2 ) mod p) mod q
v = ((28 × 181 ) mod 23) mod 11
Simplifying, v = 8, which matches r , so the signature is valid.
Pratik Ray (Kathmandu University) Digital Signature Algorithm (DSA) January 31, 2025 6/7
Conclusion
Pratik Ray (Kathmandu University) Digital Signature Algorithm (DSA) January 31, 2025 7/7