資源簡介
elgamal算法實現(xiàn)代碼,c++語言,比較完整的實現(xiàn)了該算法,密碼學課程學習
代碼片段和文件信息
#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< }
評論
共有 條評論