DSS中选用SHA( Secure Hash Algorithm )。p, q, g可由一组用户共享,但在实际应用中,使用公共模数可能会带来一定的威胁。签名及验证协议如下:1. P产生随机数k,k < q;2. P计算 r = ( g^k mod p ) mod qs = ( k^(-1) (H(m) + xr)) mod q签名结果是( m, r, s )。3. 验证时计算 w = s^(-1)mod qu1 = ( H( m ) * w ) mod qu2 = ( r * w ) mod qv = (( g^u1 * y^u2 ) mod p ) mod q若v = r,则认为签名有效。