Description: 首先选择一个随机数k, k与 p- 1互质,计算
a = g^k ( mod p )
再用扩展 Euclidean 算法对下面方程求解b:
M = xa+ kb ( mod p- 1 )
签名就是( a, b )。随机数k须丢弃。
验证时要验证下式:
y^a* a^b ( mod p ) = g^M ( mod p )
同时一定要检验是否满足1<= a < p。否则签名容易伪造。
ElGamal用于加密。被加密信息为M,首先选择一个随机数k,k与 p- 1互质,计算
a = g^k ( mod p )
b = y^k M ( mod p )
( a, b )为密文,是明文的两倍长。解密时计算
M = b/a^x ( mod p )
ElGamal签名的安全性依赖于乘法群(IFp)* 上的离散对数计算
- [RSAKey] - RSA public key generation procedures, C
- [PGP651i-win-src] - PGP-Pretty Good Privacy, is a based on t
- [ElGamal] - Java realize ElGamal algorithm, Elgamal
- [Elgamal] - The project implementation Elgalma syste
- [DSA] - The DSA digital signature program of lea
- [07] - des cipher
- [RSA] - RSA digital signature algorithm using th
- [elgamal-Verify-Signature] - Based on large numbers of elgamal librar
- [Elgamal] - Elgamal encryption algorithm
File list (Check if you may need any files):
STShortElGamal.zip
file_id.diz
ssg.nfo
STCore.zip
STEncrypt.zip
STHash.zip
STPKC.zip