• 大小: 1.88MB
    文件类型: .rar
    金币: 1
    下载: 0 次
    发布日期: 2023-09-15
  • 语言: 其他
  • 标签: shamir  

资源简介

shamir门限方案就是一个机遇拉格朗日插值多项式的门限方案.此程序由VC的dialog实现

资源截图

代码片段和文件信息

#include “StdAfx.h“
#include “shamir.h“
void Shamir::LoadPrimeFactor()
{
ifstream infile(“prime.txt“);
int i;
for(i=0;i<6542;i++)
infile>>primefactor[i];

infile.close();
}
Uint4 Shamir::ELFHash(const char *key)
{
Uint4 hg;
while(*key)
{
h =(h<<4) + *key++;
g = h & 0xF0000000L;
if(g) h^=g>>24;
h &=~g;
}
return h % MaxZp;
}
bool Shamir::IsPrime(Uint4 isp)
{
int i;
for(i=0;i<6542;i++)
{
if(isp==primefactor[i])
return 1;

if(isp % primefactor[i] == 0 )
return 0;
}
return 1;
}

Uint4 Shamir::CreatePrime(Uint4 KeyHash )//输入数字密钥生成素数p
{
while( (IsPrime(KeyHash)==0) )
{
KeyHash++;
}
p=KeyHash;
return KeyHash;
}
Uint4 Shamir::mexp(Uint4 bUint4 n)
{
int i=0j;
char binary[32];
while(n)
{
binary[i++]=n%2; 
n=n/2;
}
Uint8 a=1btmp;
for(j=0;j {
if(binary[j]==1)
{
a=a*(Uint8)b;
a=a%p;
}
btmp=(Uint8)b*(Uint8)b;
b=btmp%p;
}
return a;
}
Uint4 Shamir::inv(Uint4 a)////计算在Zp中的乘法的逆元
{
return mexp(ap-2);
}

Uint4 Shamir::madd(Uint4 aUint4 b)
{
Uint8 addt = (Uint8)a+(Uint8)b;
Uint4 mod  = addt % p;
return mod;
}

Uint4 Shamir::msub(Uint4 aUint4 b)
{
int8 subt=(int8)a-(int8)b;
while(subt<0)
{
subt+=(int8)p;
}
return (Uint4)subt%p;
}
Uint4 Shamir::mmul(Uint4 aUint4 b)
{
Uint8 mult= (Uint8)a*(Uint8)b;
Uint4 mod = mult % p;

return mod;
}
Uint4 Shamir::mdiv(Uint4 aUint4 b)
{
Uint8 divt = (Uint8)a*(Uint8)inv(b);
Uint4 mod  = divt % p;
return mod;
}
void Shamir::CreatSubKey(Uint4 sUint4 nconst char *key
Uint4& KeyHashUint4 xi[]Uint4 yi[])
{
KeyHash = ELFHash(key);
CreatePrime( KeyHash );
Uint4 ijx;//si[5001];
Uint4 *si=new Uint4 [s+1];
for(i=1;i si[i]=(Uint4)rand()%p;//s[0]=KeyHash

//si[0]=KeyHash;
Uint4 addtmpmultmp;
for(i=1;i<=n;i++)//随机生成n个元素xi,计算出子密钥yi
{
x=(Uint4)rand()%p;
addtmp=KeyHash;
for(j=1;j {
multmp=mexp(xj);//multmp=x^j mod p
multmp=mmul(si[j]multmp);//multmp=si[j]*x^j mod p
addtmp=madd(addtmpmultmp);
}
xi[i]=x;
yi[i]=addtmp;
}
delete [] si;
}
Uint4 Shamir::RecoveryKey(Uint4 sUint4 xi[]Uint4 yi[])
{
Uint4 rjaddtmp=0multmp;
for(r=1;r<=s;r++)
{
multmp=1;
for(j=1; j<=s; j++)
{
if(j==r)continue;
multmp=mmul(multmpmdiv(xi[j]msub(xi[j]xi[r])));
}
addtmp=madd(addtmpmmul(yi[r]multmp));
}
return addtmp;
}

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

     文件      25138  2010-05-22 22:40  Shamir门限方案\Debug\shamir.obj

     文件     118900  2010-05-23 10:16  Shamir门限方案\Debug\Shamir门限方案.exe

     文件     245608  2010-05-23 10:16  Shamir门限方案\Debug\Shamir门限方案.ilk

     文件      27335  2010-05-23 09:23  Shamir门限方案\Debug\Shamir门限方案.obj

     文件    5494560  2010-05-22 22:27  Shamir门限方案\Debug\Shamir门限方案.pch

     文件     451584  2010-05-23 10:16  Shamir门限方案\Debug\Shamir门限方案.pdb

     文件       3220  2010-05-23 09:24  Shamir门限方案\Debug\Shamir门限方案.res

     文件      52463  2010-05-23 10:16  Shamir门限方案\Debug\Shamir门限方案Dlg.obj

     文件     105966  2010-05-22 22:27  Shamir门限方案\Debug\StdAfx.obj

     文件     263168  2010-05-23 10:16  Shamir门限方案\Debug\vc60.idb

     文件     454656  2010-05-23 10:16  Shamir门限方案\Debug\vc60.pdb

     文件      44368  2010-05-20 14:56  Shamir门限方案\prime.txt

     文件       3699  2010-05-22 17:27  Shamir门限方案\ReadMe.txt

     文件       1078  2010-05-22 17:27  Shamir门限方案\res\Shamir门限方案.ico

     文件        406  2010-05-22 17:27  Shamir门限方案\res\Shamir门限方案.rc2

     文件       1198  2010-05-23 00:18  Shamir门限方案\resource.h

     文件       2528  2010-05-22 22:40  Shamir门限方案\shamir.cpp

     文件       1413  2010-05-22 17:15  Shamir门限方案\shamir.h

     文件      36844  2010-05-23 09:24  Shamir门限方案\Shamir门限方案.aps

     文件       1857  2010-05-23 09:24  Shamir门限方案\Shamir门限方案.clw

     文件       2087  2010-05-22 17:27  Shamir门限方案\Shamir门限方案.cpp

     文件       4438  2010-05-23 00:51  Shamir门限方案\Shamir门限方案.dsp

     文件        536  2010-05-22 17:27  Shamir门限方案\Shamir门限方案.dsw

     文件       1348  2010-05-22 17:27  Shamir门限方案\Shamir门限方案.h

     文件      58368  2010-05-23 10:27  Shamir门限方案\Shamir门限方案.ncb

     文件      49664  2010-05-23 10:27  Shamir门限方案\Shamir门限方案.opt

     文件       1235  2010-05-23 10:16  Shamir门限方案\Shamir门限方案.plg

     文件       6741  2010-05-23 09:24  Shamir门限方案\Shamir门限方案.rc

     文件       7486  2010-05-23 10:16  Shamir门限方案\Shamir门限方案Dlg.cpp

     文件       1691  2010-05-23 09:22  Shamir门限方案\Shamir门限方案Dlg.h

............此处省略8个文件信息

评论

共有 条评论