Global Public Key Components Signing
p prime number where 2L–1 < p < 2L r = (gk mod p) mod q
for 512 ≤ L ≤ 1024 and L a multiple of 64
i.e., bit length of between 512 and 1024 bits in
increments of 64 bits [
s = k -1(H( M ) + xr) mod q]
q prime divisor of (p – 1), where 2159 < q < 2160 Signature = (r, s)
i.e., bit length of 160 bits
g = h(p–1)/q mod p
where h is any integer with 1 < h < (p – 1) Verifying
such that h(p–1)/q mod p > 1
w = (s– ')– 1 mod q
u1 = [ H( M ¢)w] mod q
User's Private Key
u2 = (r')w mod q
x random or pseudorandom integer with 0 < x < q
v = [( g u1 u2
y ) mod p] mod q
User's Public Key TEST: v = r'
y = gx mod p
M = message to be signed
H(M) = hash of M using SHA-1
M', r', s' = received versions of M, r, s
User's Per-Message Secret Number
k = random or pseudorandom integer with 0 < k < q
Figure 13.2 The Digital Signature Algorithm (DSS)