69,373
社区成员
发帖
与我相关
我的任务
分享
int main() {
mip = mirsys(500, 0);//每个大数500位,类型根据需要转换
mip->IOBASE = 10;
//Encryption(mirvar(20)); //输入明文和随机数r
Pailliertesrt();
mirexit();
system("pause");
return 0;
}
big Encryption(big M){
big temp = mirvar(0);
big temp1 = mirvar(0);
big rr = mirvar(5);
ccode = mirvar(0);
//n = mirvar(0);
p = mirvar(59747);
q = mirvar(40387);
lamdba = mirvar(1206450978);
n = mirvar(2413002089);
n_square = mirvar(5822579081518363921);
g =mirvar( 2);
//ccode=g^m*r^n mod n_square
powmod(rr, n, n_square, temp); //计算ccode=rr^n mod n_square
powmod(g, M, n_square, temp1);
multiply(temp, temp1, temp);
powmod(temp, mirvar(1), n_square, ccode);
//这个函数行不通
printf("Paillier ccode:\n");
cotnum(ccode, stdout);
mirkill(temp);
mirkill(temp1);
mirkill(rr);
mirkill(p);
mirkill(q);
mirkill(g);
mirkill(n_square);
return ccode;
}