资源简介
使用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
相关资源
- word2vec词向量训练及中文文本相似度计
- C++学生成绩管理系统( 毕业设计)
- C#神思二代身份证读卡程序 demo
- 用C++写的FTP客户端
- C++学生成绩管理系统97917
- c++编写的十字路口交通灯程序
- C++编写的模拟流体运动
- 禁忌搜索算法30城市TSP问题C++源代码
- 火烧连营C++版本
- C语言考研真题汇编(3)
- C语言c++游戏源代码大全
- 数据结构与程序设计C++语言描述(中
- C++版计算器带括号dos版本
- C++ Primer 第五版 中文版+英文版+习题集
- plo编译器 c语言 含测试 以及实验报告
- MFC多人聊天室
- 编译原理 LR分析器 c++代码
- 单像空间后方交会用C语言实现的
- C++ primer 第三版习题答案
- C语言数据结构课程设计之统计C程序单
- 职工信息管理系统C 链表
- C语言实现凯撒和维吉尼亚加解密
- C H264格式 转MP4格式
- 超市进销存管理系统——以及使用说
- MFC深入浅出带目录完整版
- C++实现AES、DES加密算法含MFC界面
- 基于C语言绘制学校校徽
- C++课程设计 扑克牌游戏内含2程序
- VC图像处理-用Canny算子提取边缘
- 数据结构——利用 Stack类 为其
评论
共有 条评论