ElGamal公钥密码算法 使用miracl库
要求:大素数p必须是150位安全素数(形式为p=2q+1形式的强素数,这里面q也是素数),大素数p和本原根随机生成
1.函数说明
2.本原根的寻找
如果g^2 mod p!=1 且 g ^ q mod p!=1,那么g就是本原元
解释:https://blog.csdn.net/qq_37685156/article/details/88190088
3.m的计算
应该先计算y1的逆,记为w,再求w的x次方 mod p 的结果,记为j
求y2 mod p的结果,记为k
再计算 j * k mod p的结果,为最后结果
注明:程序运行有时候会很久,一般20s内,觉得久把irand((unsigned)time(NULL));语句全部删除即可。
代码文件链接: