where k is the pseudo-random key, x is the signer's private key, H is the digest of the document being signed, p is a prime number larger than 2511, q is a prime divisor of p-1 where 2159 <q<2160 (i.e,. (p-1)/q is equal to an integer), and g is an integer equal to h.sup.(p-1)/q mod p, where h is any integer between 1 and p-1 (i.e., 1<h<p-1) such that h.sup.(p-1)/q mod p>1. p and q are sometimes ca