资源简介
使用C语言编写的 Paillier算法原理与实现,直接解压使用VS2012或者是VS2013打开就可以运行,代码有注释。

代码片段和文件信息
#include
#include“BigNumber.h“
#include “Timer.h“
using namespace std;
BigNum Gcd(BigNum aBigNum b);//求取最大公约数
BigNum Lcm(BigNum aBigNum b);//求取最小公倍数
BigNum Lfunction(BigNum a);//求取L函数
BigNum nI=1o=0;
int main()
{
BigNum pqI(1)e(257)ttempdabcO(0)middlegpri_keyg1u;//b为密文,c为解密后结果
string A;
Timer mytime; //定义时间类类型数据
srand((unsigned)time(NULL));
//int middle;
cout<<“*********************************************************************“< cout<<“* Paillier系统 *“< cout<<“* *“< cout<<“*********************************************************************“<
cout<<“程序运行中···“< mytime.start(); //计时开始
middle.Random(0);//产生明文
cout<<“明文:“;
middle.print();
cout< p.GeneratePrime(); //产生素数
q.GeneratePrime();
while(p==q) //判断两个素数不等
q.GeneratePrime();
temp=p-I;
t=q-I;
t=t*temp;
cout<<“素数p为:“; //输出素数
p.print();
cout< cout<<“素数q为:“;
q.print();
cout< cout<<“公钥n为“;
n=p*q;
//n=p+q;
n.print();
cout< pri_key=Lcm(p-Iq-I);
//d.ex_euclid(et); //计算私钥d
cout<<“私钥pri_key为:“;
pri_key.print();
cout< //do{
g.GeneratePrime();
// g1.power_mod(pri_keyn*n);
//}while(Gcd(g1n)!=I);
cout<<“公钥g为“;
g.print();
mytime.stop(); // 计时停止
mytime.running();//计算产生公钥私钥用的总时间
cout<<“产生公钥私钥时间\t“< //cout< //getline(cinA);
mytime.reset(); //时间清零
mytime.start(); //计时开始
//a=BigNum(A);
//cout< BigNum middle1r;
r.GeneratePrime();
middle1=g.power_mod(middlen*n)*r.power_mod(nn*n);
b=middle1.power_mod(In*n);
//b=middle.power_mod(en); //产生密文b
cout<<“生成密文如下:“;
b.print();
cout< u.ex_euclid(Lfunction(g.power_mod(pri_keyn*n))n);
c=Lfunction(b.power_mod(pri_keyn*n))*u;
c=c.power_mod(In);
//c=b.power_mod(dn); //解密
cout<<“解密后的结果为:“< c.print();
mytime.stop(); // 计时停止
mytime.running();//计算产生素数用的总时间
cout< //program > a.txt;
system(“pause“);
return 0;
}
BigNum Gcd(BigNum aBigNum b)
{
BigNum i;
do
{
i=a%b;
a=b;
b=i;
}while(b!=o);
return a;
}
BigNum Lcm(BigNum aBigNum b)
{
BigNum i;
i=Gcd(ab);
i=a*b/i;
return i;
}
BigNum Lfunction(BigNum a)
{
BigNum i;
i=(a-I)/n;
return i;
}
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
目录 0 2015-05-23 20:43 c语言实现Paillier算法原理与实现\
目录 0 2015-05-23 20:43 c语言实现Paillier算法原理与实现\Paillier\
文件 39014 2013-10-09 16:26 c语言实现Paillier算法原理与实现\Paillier\BigNumber.h
目录 0 2015-05-23 20:43 c语言实现Paillier算法原理与实现\Paillier\Debug\
文件 602166 2013-10-09 16:32 c语言实现Paillier算法原理与实现\Paillier\Debug\Pailliar.exe
文件 810348 2013-10-09 16:32 c语言实现Paillier算法原理与实现\Paillier\Debug\Pailliar.ilk
文件 251855 2013-10-09 16:32 c语言实现Paillier算法原理与实现\Paillier\Debug\Pailliar.obj
文件 5612404 2013-10-09 16:30 c语言实现Paillier算法原理与实现\Paillier\Debug\Pailliar.pch
文件 1156096 2013-10-09 16:32 c语言实现Paillier算法原理与实现\Paillier\Debug\Pailliar.pdb
文件 189440 2013-10-09 16:32 c语言实现Paillier算法原理与实现\Paillier\Debug\vc60.idb
文件 135168 2013-10-09 16:32 c语言实现Paillier算法原理与实现\Paillier\Debug\vc60.pdb
文件 3192 2013-10-09 16:32 c语言实现Paillier算法原理与实现\Paillier\Pailliar.cpp
文件 4432 2013-10-09 16:32 c语言实现Paillier算法原理与实现\Paillier\Pailliar.dsp
文件 522 2013-10-09 16:25 c语言实现Paillier算法原理与实现\Paillier\Pailliar.dsw
文件 41984 2013-10-09 16:32 c语言实现Paillier算法原理与实现\Paillier\Pailliar.ncb
文件 48640 2013-10-09 16:32 c语言实现Paillier算法原理与实现\Paillier\Pailliar.opt
文件 892 2013-10-09 16:32 c语言实现Paillier算法原理与实现\Paillier\Pailliar.plg
文件 1547 2013-10-09 16:27 c语言实现Paillier算法原理与实现\Paillier\Timer.h
文件 16 2013-10-07 20:47 c语言实现Paillier算法原理与实现\Paillier\a.TXT
文件 1272 2013-10-09 17:08 c语言实现Paillier算法原理与实现\README.txt
相关资源
- 基于MFC的TCP调试助手源码95706
- 国际象棋的qt源代码
- 操作系统c语言模拟文件管理系统844
- C语言开发实战宝典
- C++中头文件与源文件的作用详解
- 基于mfc的多线程文件传输
- C++多线程网络编程Socket
- VC++ 多线程文件读写操作
- C语言代码高亮html输出工具
- 猜数字游戏 c语言代码
- C语言课程设计
- 数字电位器C语言程序
- CCS FFT c语言算法
- 使用C语言编写的病房管理系统
- 通信过程中的RS编译码程序(c语言)
- 利用C++哈希表的方法实现电话号码查
- 计算机二级C语言上机填空,改错,编
- 用回溯法解决八皇后问题C语言实现
- 移木块游戏,可以自编自玩,vc6.0编写
- 简易教务管理系统c语言开发文档
- 操作系统课设 读写者问题 c语言实现
- 小波变换算法 c语言版
- C流程图生成器,用C语言代码 生成C语
- 3des加密算法C语言实现
- 简单的C语言点对点聊天程序
- 单片机c语言源程序(51定时器 八个按
- C++纯文字DOS超小RPG游戏
- 个人日常财务管理系统(C语言)
- MFC数字钟(基于VC6.0)
- c语言电子商务系统
评论
共有 条评论