Diffie-Hellman密钥交换思想
思想 交换 密钥
2023-09-14 09:10:42 时间
DH采用的是一个大素数分解难作为基础。其中交换是很简单,例子如下:
#include <cmath>
using namespace std;
void Test_DH(void)
{
//
int p = 13; //素数
int g = 2; //公共底数 2 =< g =< p-2
int Xa = 1; //A私钥
int Xb = 22; //B私钥
UINT64 Ya = (UINT64)pow((double)g,(double)Xa)%p; //发送给B。
UINT64 Yb = (UINT64)pow((double)g,(double)Xb)%p; //发送给A。
//A计算密钥
TRACE("A calculates key:0x%X/n",(UINT64)pow((double)Yb,(double)Xa)%p);
//B计算密钥
TRACE("B calculates key:0x%X/n",(UINT64)pow((double)Ya,(double)Xb)%p);
}
首先,要找一个最大的素数,然后再找一个合适的指数。其次,就是相互交换其按指数取模后值进行交换。
最后,根据指数的指数算法来计算公共的密码。
相关文章
- java的继承(编程思想)
- wiki还是复利的思想,不断的更新迭代,需要学习并实践
- 第1章 1.7计算机网络概述--理解OSI参考模型分层思想
- JAVA编程思想读书笔记(一)--面向对象
- 【BSP视频教程】STM32H7视频教程第11期:STM32H7的GPIO实战,深化非阻塞编程思想,移植驱动到全新器件上,开启Event Recorder狂暴模式
- 计算机软件设计中的抽象分层思想:操作系统,网络协议等
- 改进基于优先队列的最短路径搜索『洪水流思想的体现』
- 软件测试 -- 进阶 1 软件测试思想
- RBF神经网络——直接看公式,本质上就是非线性变换后的线性变化(RBF神经网络的思想是将低维空间非线性不可分问题转换成高维空间线性可分问题)
- Attention机制讲解——其实本质思想很简单,给你一句话I am a king. 让你生成下面一句话,你第一眼想到的power,至高无上,高贵这些词,这些就是高注意力(权重)单词,而attension就是学习到这些权重而已
- 操作系统的概述 并发和共享的关系 任务管理器 系统资源 向上层提供服务 GUI 封装思想 联机命令 脱机命令 操作系统的特征 并行 并发 共享 虚拟 异步 总结 新手上车 言简意赅 通俗易懂