Diffie-Hellman加密算法

2022-11-04 10:18:11   第一文档网     [ 字体: ] [ 阅读: ] [ 文档下载 ]
说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。下载word有问题请添加QQ:admin处理,感谢您的支持与谅解。点击这里给我发消息

#第一文档网# 导语】以下是®第一文档网的小编为您整理的《Diffie-Hellman加密算法》,欢迎阅读!
算法,加密,Hellman,Diffie

洛阳夏冰软件技术有限公司博客文档(http://www.cksis.com/

Diffie-Hellman加密算法



由于Diffie-Hellman加密算法本身限于密钥交换的用途,被许多商用产品用作密钥交换技术,因此该加密算法通常称之为Diffie-Hellman密钥交换。这种密钥交换技术的目的在于使得两个用户安全地交换一个秘密密钥以便用于以后的报文文件加密 一、Diffie-Hellman加密算法原理

Diffie-Hellman加密算法的有效性依赖于计算离散对数的难度。简言之,可以如下定义离散对数:首先定义一个素数p的原根,为其各次幂产生从1 p-1的所有整数根,也就是说,如果a是素数p的一个原根,那么数值 a mod p,a2 mod p,,ap-1 mod p 是各不相同的整数,并且以某种排列方式组成了从1p-1的所有整数。对于一个整数b和素数p的一个原根a,可以找到惟一的指数i,使得 b = ai mod p 其中0 i (p-1)指数i称为b的以a为基数的模p的离散对数或者指数,该值被记为indap(b)

二、Diffie-Hellman加密算法描述

基于Diffie-Hellman加密算法的定义及性质,可以定义Diffie-Hellman密钥交换加密算法。该加密算法描述如下:

1、有两个全局公开的参数,一个素数q和一个整数aaq的一个原根。

2假设用户AB希望交换一个密钥,用户A选择一个作为私有密钥的随机数XA(XA并计算公开密钥YA=a^XA mod qAXA的值保密存放而使YA能被B公开获得。类似地,用户B选择一个私有的随机数XB,并计算公开密钥YB=a^XB mod qBXB的值保密存放而使YB能被A公开获得。

1 / 3




洛阳夏冰软件技术有限公司博客文档(http://www.cksis.com/

3、用户A产生共享秘密密钥的计算方式是K = (YB)^XA mod q.同样,用户B产生共享秘密密钥的计算是K = (YA)^XB mod q.这两个计算产生相同的结果: K = (YB)^XA mod q = (a^XB mod q)^XA mod q = (a^XB)^XA mod q (根据取模运算规则得到) = a^(XBXA) mod q = (a^XA)^XB mod q = (a^XA mod q)^XB mod q = (YA)^XB mod q 因此相当于双方已经交换了一个相同的秘密密钥。

4、因为XAXB是保密的,一个敌对方可以利用的参数只有q,a,YAYB.因而敌对方被迫取离散对数来确定密钥.例如,要获取用户B的秘密密钥,敌对方必须先计算 XB = inda,q(YB) 然后再使用用户B采用的同样方法计算其秘密密钥K. Diffie-Hellman密钥交换算法的安全性依赖于这样一个事实:

虽然计算以一个素数为模的指数相对容易,但计算离散对数却很困难.对于大的素数,计算出离散对数几乎是不可能的. 下面给出例子.密钥交换基于素数q = 9797的一个原根a = 5.AB分别选择私有密钥XA = 36XB = 58。每人计算其公开密钥 YA = 5^36 = 50 mod 97 YB = 5^58 = 44 mod 97 在他们相互获取了公开密钥之后,各自通过计算得到双方共享的秘密密钥如下:

K = (YB)^XA mod 97 = 44^36 = 75 mod 97 K = (YA)^XB mod 97 = 50^58 = 75 mod 97 |50,44|出发,攻击者要计算出75很不容易,下图给出了一个利用

2 / 3




本文来源:https://www.dywdw.cn/72809761f4ec4afe04a1b0717fd5360cba1a8d23.html

相关推荐
推荐阅读