百科问答小站 logo
百科问答小站 font logo



Diffie-Hellman密码交换是如何运作的? 第1页

  

user avatar   guo-wu-xin 网友的相关建议: 
      

使用对称加密算法时,密钥交换是个大难题,所以Diffie和Hellman提出了著名的Diffie-Hellman密钥交换算法。

Diffie-Hellman密钥交换算法原理:


上图很经典

它的数学基础就是离散对数这个数学难题。用它进行密钥交换的过程简述如下:

选取两个大数p和g并公开,其中p是一个素数,g是p的一个模p本原单位根(primitive root module p),所谓本原单位根就是指在模p乘法运算下,g的1次方,2次方……(p-1)次方这p-1个数互不相同,并且取遍1到p-1;

对于Alice(其中的一个通信者),随机产生一个整数a,a对外保密,计算Ka = g^a mod p,将Ka发送给Bob;

对于Bob(另一个通信者),随机产生一个整数b,b对外保密,计算Kb = g^b mod p,将Kb发送给Alice;

在Alice方面,收到Bob送来的Kb后,计算出密钥为:key = Kb^a mod p = g^(b*a) mod p mod p;

对于Bob,收到Alice送来的Ka后,计算出密钥为:key = Ka ^ b mod p = g^(a*b) mod p mod p。

攻击者知道p和g,并且截获了Ka和Kb,但是当它们都是非常大的数的时候,依靠这四个数来计算a和b非常困难,这就是离散对数数学难题。

       (1)Alice与Bob确定两个大素数n和g,这两个数不用保密  (2)Alice选择另一个大随机数x,并计算A如下:A=gxmod n  (3)Alice将A发给Bob  (4)Bob  选择另一个大随机数y,并计算B如下:B=gymod n  (5)Bob将B发给Alice  (6)计算秘密密钥K1如下:K1=Bxmod n  (7)计算秘密密钥K2如下:K2=Aymod n   K1=K2,因此Alice和Bob可以用其进行加解密     



  

相关话题

  如何证明任意一个有偶数个顶点的图,一定存在两个点拥有偶数个共同邻居? 
  无限不循环小数 派 中可以出现连续的100个0吗? 
  如何直观地理解群论? 
  木马和病毒有何区别? 
  数学这门学科真的重要吗? 
  如何证明任何有限域中的任何元素均可写成两数的平方和? 
  怎么逐步学习 PDE? 
  解决初等几何题目使用辅助线的逻辑原理是什么? 
  养成哪些上网习惯可以避免泄露重要的个人隐私? 
  北京国际数学研究中心教授谢俊逸和袁新意解决几何 Bogomolov 猜想难题,如何理解这一工作? 

前一个讨论
有没有那种感觉,自从俄乌冲突以后,对欧美来源的信息和新闻都无法直视,无法相信了?
下一个讨论
上海母女隐瞒行程获取绿码来杭州,不规范戴口罩,坐地铁逛商场长达 7 小时,现在确诊,你怎么看?





© 2025-05-29 - tinynew.org. All Rights Reserved.
© 2025-05-29 - tinynew.org. 保留所有权利