• 大小: 2.28MB
    文件类型: .zip
    金币: 2
    下载: 0 次
    发布日期: 2024-01-23
  • 语言: C/C++
  • 标签: c  语言  

资源简介

使用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

评论

共有 条评论