算法简介:https://blog.youkuaiyun.com/dbs1215/article/details/48953589
参考文章:https://blog.youkuaiyun.com/qmickecs/article/details/39676655
算法主要用到的gmp函数
mpz_urandomb(number,grt,1024) //随机生成一个0-2^1024的一个数
mpz_nextprime(prime_number,number) //使用GMP自带的素数生成函数
mpz_mul(mpz_t op,mpz_t op1,mpz_op2) //大数乘法 op=op1*op2
mpz_sub_ui(mpz_t op,mpz_op2,1) //大数减法 op=op2-1;
mpz_invert(op1,op2,op3) //求逆元函数,即数论倒数 op1*op2 mod op3=1;
mpz_powm(op1,op2,op3,op4) //求幂模函数 即op1=op2^op3 mod op4;
算法分为这几步骤:1) 先用素数生成函数,生成两个大素数p和q
2) 计算n=p*q, f=(p-1)*(q-1)
3) 取e的值,一般取65537