前言:一、以下代码在Linux + Ubuntu系统下编译通过,在此之前需要在您的Linux系统下安装大整数GMP安装包,
然后打开Terminal,输入命令如下:
1.进入您的文件所在地 cd ElGamal
2.编译 g++ -o main ElGamal.cpp -lgmp 这时候可以发现在该文件夹里也生成了一个main.o的文件
3.输出结果 ./main
二、要想理解以下函数,建议花几分钟读一下gmp大数库https://wenku.baidu.com/view/189693dd3186bceb19e8bb5b.html
主要函数:mpz_nextprime(mpz p,mpz q);将q的下一个素数赋值给p
mpz_powm(b,g,v,p);//b=g^2 mod p这是主要函数幂指数mpz_invert();求逆
#include <string>
#include <cstdlib>
#include <cstdlib>