问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

关于diffie-hellman算法的数学解释(网络专业)

发布网友 发布时间:2022-04-21 21:03

我来回答

3个回答

热心网友 时间:2022-04-27 08:06

Whitefield与Martin Hellman在1976年提出了一个奇妙的密钥交换协议,称为Diffie-Hellman密钥交换协议/算法(Diffie-Hellman Key Exchange/Agreement Algorithm).这个机制的巧妙在于需要安全通信的双方可以用这个方法确定对称密钥.然后可以用这个密钥进行加密和解密.但是注意,这个密钥交换协议/算法只能用于密钥的交换,而不能进行消息的加密和解密.双方确定要用的密钥后,要使用其他对称密钥操作加密算法实际加密和解密消息.
(尽管Diffie-Hellman密钥交换协议/算法使用了数学原理,但是很容易理解.)
Diffie-Hellman
由Whitfield Diffie和Martin Hellman在1976年公布的一种密钥一致性算法。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 是各不相同的整数,并且以某种排列方式组成了从1到p-1的所有整数. 对于一个整数b和素数p的一个原根a,可以找到惟一的指数i,使得 b = ai mod p 其中0 ≤ i ≤ (p-1) 指数i称为b的以a为基数的模p的离散对数或者指数.该值被记为inda ,p(b). 基于此背景知识,可以定义Diffie-Hellman密钥交换算法.该算法描述如下: 1,有两个全局公开的参数,一个素数q和一个整数a,a是q的一个原根. 2,假设用户A和B希望交换一个密钥,用户A选择一个作为私有密钥的随机数XA3,用户A产生共享秘密密钥的计算方式是K = (YB)XA mod q.同样,用户B产生共享秘密密钥的计算是K = (YA)XB mod q.这两个计算产生相同的结果: K = (YB)XA mod q = (aXB mod q)XA mod q = (aXB)XA mod q (根据取模运算规则得到) = aXBXA mod q = (aXA)XB mod q = (aXA mod q)XB mod q = (YA)XB mod q 因此相当于双方已经交换了一个相同的秘密密钥. 4,因为XA和XB是保密的,一个敌对方可以利用的参数只有q,a,YA和YB.因而敌对方*取离散对数来确定密钥.例如,要获取用户B的秘密密钥,敌对方必须先计算 XB = inda ,q(YB) 然后再使用用户B采用的同样方法计算其秘密密钥K. Diffie-Hellman密钥交换算法的安全性依赖于这样一个事实:虽然计算以一个素数为模的指数相对容易,但计算离散对数却很困难.对于大的素数,计算出离散对数几乎是不可能的. 下面给出例子.密钥交换基于素数q = 97和97的一个原根a = 5.A和B分别选择私有密钥XA = 36和XB = 58.每人计算其公开密钥 YA = 536 = 50 mod 97 YB = 558 = 44 mod 97 在他们相互获取了公开密钥之后,各自通过计算得到双方共享的秘密密钥如下: K = (YB)XA mod 97 = 4436 = 75 mod 97 K = (YA)XB mod 97 = 5058 = 75 mod 97 从|50,44|出发,攻击者要计算出75很不容易. 下图给出了一个利用Diffie-Hellman计算的简单协议.
假设用户A希望与用户B建立一个连接,并用一个共享的秘密密钥加密在该连接上传输的报文.用户A产生一个一次性的私有密钥XA,并计算出公开密钥YA并将其发送给用户B.用户B产生一个私有密钥XB,计算出公开密钥YB并将它发送给用户A作为响应.必要的公开数值q和a都需要提前知道.另一种方法是用户A选择q和a的值,并将这些数值包含在第一个报文中. 下面再举一个使用Diffie-Hellman算法的例子.假设有一组用户(例如一个局域网上的所有用户),每个人都产生一个长期的私有密钥XA,并计算一个公开密钥YA.这些公开密钥数值,连同全局公开数值q和a都存储在某个*目录中.在任何时刻,用户B都可以访问用户A 的公开数值,计算一个秘密密钥,并使用这个密钥发送一个加密报文给A.如果*目录是可信任的,那么这种形式的通信就提供了保密性和一定程度的鉴别功能.因为只有A和B可以确定这个密钥,其它用户都无法解读报文(保密性).接收方A知道只有用户B才能使用此密钥生成这个报文(鉴别). Diffie-Hellman算法具有两个吸引力的特征: 仅当需要时才生成密钥,减小了将密钥存储很长一段时间而致使遭受攻击的机会. 除对全局参数的约定外,密钥交换不需要事先存在的基础结构. 然而,该技术也存在许多不足: 没有提供双方身份的任何信息. 它是计算密集性的,因此容易遭受阻塞性攻击,即对手请求大量的密钥.受攻击者花费了相对多的计算资源来求解无用的幂系数而不是在做真正的工作. 没办法防止重演攻击. 容易遭受中间人的攻击.第三方C在和A通信时扮演B;和B通信时扮演A.A和B都与C协商了一个密钥,然后C就可以监听和传递通信量.中间人的攻击按如下进行: B在给A的报文中发送他的公开密钥. C截获并解析该报文.C将B的公开密钥保存下来并给A发送报文,该报文具有B的用户ID但使用C的公开密钥YC,仍按照好像是来自B的样子被发送出去.A收到C的报文后,将YC和B的用户ID存储在一块.类似地,C使用YC向B发送好像来自A的报文. B基于私有密钥XB和YC计算秘密密钥K1.A基于私有密钥XA和YC计算秘密密钥K2.C使用私有密钥XC和YB计算K1,并使用XC和YA计算K2. 从现在开始,C就可以转发A发给B的报文或转发B发给A的报文,在途中根据需要修改它们的密文.使得A和B都不知道他们在和C共享通信. Oakley算法是对Diffie-Hellman密钥交换算法的优化,它保留了后者的优点,同时克服了其弱点. Oakley算法具有五个重要特征: 它采用称为cookie程序的机制来对抗阻塞攻击. 它使得双方能够协商一个全局参数集合. 它使用了现时来保证抵抗重演攻击. 它能够交换Diffie-Hellman公开密钥. 它对Diffie-Hellman交换进行鉴别以对抗中间人的攻击. Oakley可以使用三个不同的鉴别方法: 数字签名:通过签署一个相互可以获得的散列代码来对交换进行鉴别;每一方都使用自己的私钥对散列代码加密.散列代码是在一些重要参数上生成的,如用户ID和现时. 公开密钥加密:通过使用发送者的私钥对诸如ID和现时等参数进行加密来鉴别交换. 对称密钥加密:通过使用某种共享密钥对交换参数进行对称加密,实现交换的鉴别.

参考资料:http://ke.baidu.com/view/551692.html?wtp=tt

热心网友 时间:2022-04-27 09:24

Diffie-Hellman算法(D-H算法)
概念:D-H加密算法的核心思想就是大素数不可分解质因数的数学理论方法。其基本原理是:

取一个大素数P,较小数r(r是P的一个原根),数字A(A介于1到P之间)。则获得公钥K:

K=r^A/P

(公钥K为r的A次方结果对P取模)

由于,较小数r(r是P的一个原根),则r^1、r^2、r^3、r^4、......r^(P-1)分别模P都不相同,则当我们知道P、r、r^A,则很难用数学方法推到出A的方法。

热心网友 时间:2022-04-27 10:59

ertebrtb5etbetrvrecrevtrerc
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
ef英语哪个好 EF英孚英语培训怎么样? 英孚英语好不好 EF英孚教育到底好不好 大佬们,麦芒7和荣耀10那个值得入手?2500以下的机子还有啥好推荐的么... 介绍几款2500元以前的手机 像素一定要高 其他的不做要求 近期想入手一部安卓手机,价格2200到2500左右…买HTC desire Z还是 三星... 笔记本忘记开机密码怎么办急死了 笔记本电脑屏幕开机锁忘记密码 怎么办?急死了 华硕笔记本电脑开机密码忘记了怎样找回?系统是Windows 7旗舰版... 惊弓之鸟的意思? 如何用surfer8软件画等高线图 惊弓之鸟的意思是什么? bep20是什么链 惊弓之鸟什么意思? erc20标准 比特币是吗 文言文惊弓之鸟的翻译 惊弓之鸟的词语解释 惊弓之鸟的意思 惊弓之鸟中的“更赢”的拼音怎么写? 成语故事《惊弓之鸟》 部编版惊弓之鸟是几年级 惊弓之鸟的写法,读法,解释,造句? 醪糟汤圆的制作方法 醪糟汤圆的做法步骤 醪糟汤圆汤的做法 酒酿汤圆的做法与步骤 醪糟煮汤圆的做法步骤 醪糟汤圆的家常做法 醪糟汤圆的做法步骤图,醪糟汤圆怎么做好吃 惊弓之鸟是什么意思? 惊弓之鸟是什么意思? 共模电压和差模电压的计算方法 惊弓之鸟故事中的人物更羸的更读四声还是一声 mkv mv 分别是什么意思 惊弓之鸟的意思。 惊弓之鸟是什么 惊弓之鸟的 意思是什么? 成语惊弓之鸟鸟 蛀牙里面真的有虫子吗 虫牙里到底有没有虫子,牙齿真的是被虫子吃坏了吗?? 虫牙里面到底有没有虫子? 虫牙里面有虫子吗? 低位横盘缩量意味着什么 虫蛀牙..牙里有虫子吗/ 虫牙里面是什么虫? 股票长期横盘说明什么 虫牙里面有虫吗 个股在横盘时逐渐缩量是什么意思,请详细说明,如6... 牙齿里到底有没有“虫子”,所谓的‘‘虫牙’’是怎样产...