资源简介

用c++实现的基于Diffie-Hellman协议的密钥交换,包含求一个素数的本原根函数,但由于数据类型问题,不能求太大的素数的本原根。压缩包中包含源代码和可执行文件,代码注释清晰。

资源截图

代码片段和文件信息

#include 
using namespace std;
#include 
#include 

//获取素数P的本原根,返回2->p-1中最小的那个本原根 
//迫于数据大小的压力(求指数总是溢出),素数37以上的素数无法精确计算出其本原根 
int getGeneatorOfPrim(int p){
int g_array[p-1] = {0};
int mod = 0;
for(int i=2; i<=p-1; i++){ //此次循环测试2 -- p-1中哪个数是本原根 
int geneator = i;
unsigned long int a = (unsigned long int)i;
mod = (int)(a % p);

for(int j=0; j g_array[j] = mod;
//cout < a = a*i;
mod = (int)(a % p); 
}
//cout<<“****************************“<
int g_repeat[p-1] = {0};//用于判断g_array中是否有重复元素 
bool repeat = false; //没有使用双重循环,减少时间复杂度 
for(int k=0; k if(g_repeat[g_array[k]-1] == 1){
repeat = true;
}

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----
     目录           0  2019-05-10 13:29  Diffie-Hellmam\
     文件        2720  2019-05-10 12:46  Diffie-Hellmam\Diff.cpp
     文件     1923837  2019-05-10 12:47  Diffie-Hellmam\Diff.exe

评论

共有 条评论

相关资源