资源简介
elgamal算法实现代码,c++语言,比较完整的实现了该算法,密码学课程学习
代码片段和文件信息
#include
#include
using namespace std;
int fnFindD(int aint n)
{
//扩展欧几里得算法求逆元求a对n的模逆
int p=aq=n t;
int x = 0 y = 1 z = (int)q/p;
while(1 != p && 1 != q)
{
t = p;
p = q % p;
q = t;
t = y;
y = x - y*z;
x = t;
z = (int) q/p;
}
y = y%n;
if (y<0)
{
y += n;
}
//cout<<“模逆为:“< return y;
}
int fnFindText(int xint cint nbool display)
{
//进行加密、解密运算
//使用课本P138页平方乘方法,算法5.5
//计算Z=x^c mod n
int z=1;
int L=0;
int num=c;
int ci[1000]={0};
for(int i=0;num!=0;i++){
ci[i]=num%2;
num=num/2;
L++;
}
if(display){
cout<<“c的二进制长度:“< cout<<“ci:“;
for(int i=L;i>=0;i--)
cout< }
评论
共有 条评论