网络信息安全作业二:编程实现DH算法的密钥交换流程
1.说明
运行环境:vs2010
开发语言:c++
2.DH算法原理的简单说明
A和B双方进行通信
选取素数p和整数a,a为p的原根,a,p公开。
(1)A:选取XA<p,计算YA=a^XA mod p;
(2)B:选取XB<p,计算YB=a^XB mod p;
(3)A,B交换YA、YB,XA,XB保密
(4)A:k=YB^a mod p;
B:k=YA^a mod p;
3.源代码
(由于主要的目的是验证DH算法,及说明DH算法的密钥交换流程,为简化编程,故将p=19,a=3)
#include<iostream>
#include<cstdlib>
#include<time.h>
#include<math.h>
using namespace std;
class DH
{
private:
int p; //素数p
int a; //p的原根a
int X; //私钥
long int k; //共享密钥
public:
int Y1; //自己公钥
double Y2; //对方公钥
DH() { p=19; a=3; X=0; k=0; Y1&#