资源简介
用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
- 上一篇:C语言贪吃蛇---cmd窗口操作
- 下一篇:MSCOMM串口控件
评论
共有 条评论