ElGamal 数字签名
实验目的
- 通过实验了解数字签名的过程(签名过程和认证过程),掌握 ElGamal签名方案。
实验原理
ElGamal 数字签名的实现过程
1密钥产生:Alice 要对一个消息签名。
- 她选择一个大素数 p 和一个本原根g。选择一个秘密整数1≤x≤p−21\leq x \leq p-21≤x≤p−2,并且计算y≡gxmod py\equiv g^x \mod py≡gxmodp, (p,g,y)(p,g,y)(p,g,y)公开。x 秘密保存。
- 使得am≡1mod pa^m\equiv1 \mod pam≡1modp成立的最小正幂m满足m=φ(p)m=\varphi(p)m=φ(p),则称a是p的本原根。
- 注:ElGamal 签名方案的安全性在于 x 的保密性。由于离散对数问题难解,很难由(p,g,y)确定 x.
2数字签名:Alice 签署消息 m
- 选择一个安全的随机数 k, 使得 gcd(k,p−1)=1gcd(k,p-1)=1gcd(k,p−1)=1;
- 计算