DH密钥交换算法

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

DH算法
例1: 按照参数的选区原则, p 取一个素数, a 是 p 的一个原根,取 (a, p) = (3, 7) (1)Alice 选择一个范围在[1, p-1]的随机数,为Xa= 5 (2)Alice 计算Ya = a^Xa mod p = 3^5 mod 7 = 5 (3)Bob选择一个范围在[1, p-1]的随机数,为Xb = 6 (4)Bob计算Yb = a^Xb mod p = 3^6 mod 7 = 1
定理: 设 p > 1,gcd(a,p) = 1,则a^0, a^1, a^2, ... a^ord(a)-1 模p两两不同余。 证明:反证法
定 理 证 明
如若存在K,L(0<=L<K<ord(a)) 使得 a^K ≡ a^L mod p 则a^K = a^L + xp (x为整数) 又gcd (a , p)=1,即存在a^L的逆a^-L,
思考: 为什么DH算法 p需要是素数? a要是p的原根?
ECDH
ECC 算法和 DH结合使用,用于密钥磋商,这个密钥交换算法称为 ECDH 。交换双 方可以在不共享任何秘密的情况下协商出一个密钥。ECC是建立在基于椭圆曲线的 离散对数问题上的密码体制,给定椭圆曲线上的一个点P,一个整数k,求解Q=kP 很容易;给定一个点P、Q,知道Q=kP,求整数k确是一个难题。ECDH即建立在 此数学难题之上。
,则a称作为模p的原根。
定理: 设 p > 1,gcd(a,p) = 1,则a^0, a^1, a^2, ... a^ord(a)-1 模p两两不同余。
gcd(a, p) = 1,a与p互质,互质的数必须是自然数,所以a从1开始取。 例:取p=7,a=1,2,3… a=1 1^1mod 7=1 a=2 2^1mod 7=2 2^2mod 7=4 2^3mod 7=1 a=3 3^1mod 7=3 3^2mod 7=2 3^3mod 7=6 3^4mod 7=4 3^5mod 7=5 3^6mod 7=1 阶:1
E C D H 算 法
总结
总结: 1,确定共享参数 2,选取私钥,计算公钥并公开 3,双方根据对方公钥计算获得共享密钥
存在问题:
迪菲-赫尔曼密钥交换本身并没有提供通讯双方的身份验证服务,因此它很容易受到中间人攻击。 一个中间人在信道的中央进行两次迪菲-赫尔曼密钥交换,一次和Alice另一次和Bob,就能够成 功的向Alice假装自己是Bob,反之亦然。 而攻击者可以解密(读取和存储)任何一个人的信息并重新加密信息,然后传递给另一个人。因 此通常都需要一个能够验证通讯双方身份的机制来防止这类攻击。 这种验证通讯双方身份的机制就是数字证书机制…
算 法 举 例
看起来是协商成功了,那问题在哪? 7^x mod 15: 7^1 mod 15 = 7 7^x mod 15的结果一共才4种,并且周期循环。 7^2 mod 15 = 4 这也就意味着中间人获取到了 Yb = 4 ,攻击者不一定需要 7^3 mod 15 = 13 知道Alice原始的随机值(私钥)是什么,只要在[1 , 14] 7^4 mod 15 = 1 中随便选择一个满足7^Xa mod 15 = 13的值进行计算K = Y 7^5 mod 15 = 7 b^Xa mod p = 4^3 mod 15 = 4^7 mod 15 = 4 都能正确计 7^6 mod 15 = 4 算共享密钥。换句话说,攻击者不需要暴力遍历 [1 , 14] 7^7 mod 15 = 13 中的所有数就能计算共享密钥。 7^7 mod 15 = 1 ......
算 法 举 例
(5)Alice和Bob交换Ya和Yb
(6)Alice计算共享密钥K = Yb^Xa mod p = 1^5 mod 7 = 1 (7)Bob计算共享密钥K = Ya^Xb mod p = 5^6 m 7 = 1
DH算法
例2: 随意取一个二元组 (a, p) = (7, 15) (1)Alice 选择一个范围在[1, p-1]的随机数,为Xa= 3 (2)Alice 计算Ya = a^Xa mod p =7^3 mod 15 = 13 (3)Bob选择一个范围在[1, p-1]的随机数,为Xb = 2 (4)Bob计算Yb = a^Xb mod p = 7^2 mod 15 = 4 (5)Alice和Bob交换Ya和Yb (6)Alice计算共享密钥K = Yb^Xa mod p = 4^3 mod 15 = 4 (7)Bob计算共享密钥K = Ya^Xb mod p = 13^2 mod 15 = 4
https:///weixin_38686780/article/details/78153821 /info-detail-2384164.html
等式两边乘上a^(-L) a^(K-L) =(a^L+xp)a^-L 即a^(K-L) =1+(a^-L)xp 即存在K-L,使得a^(K-L) ≡ 1 mod p等式成立, 而K-L < ord(a),与阶的定义矛盾。故假设不成立。
通信安全发展
DH数学原理 DH密钥协商举例 ECDH简介 总结
通信安全
窃取、篡改
明 文 传 输
帮我查一下银行卡余额 余额250元 Alice Bob
明文直接暴露与网络中
通信安全
what?
对 称 加 密
************ ************ Alice Bob
信息加密后,变成密文,避免信息泄露
原 根 与 阶
,则a称作为模p的原根。
性质: 1)所有的素数都有原根。 2)不是所有的整数都有原根。
DH算法
定义: 1)阶 当 p > 1, gcd(a, p) = 1,则使得 a^e mod p = 1成立的最小正整数e称作整数a对模的阶,记做ord(a)。
2)原根 若a的阶
,则a称作为模p的原根。
E C D H 算 法
ECDH
密钥磋商过程: 假设密钥交换双方为 Alice 、 Bob ,其有共享曲线参数(椭圆曲线 E 、阶 N 、基点 G)。
Ep(a,b)确定椭圆曲线方程,p为质数; 阶数N为质数,确定有限域; G确定初始点;
1) Alice生成随机整数a(a<N),计算A=a*G。 2) Bob生成随机整数b(b<N),计算B=b*G。 3) Alice将A传递给Bob。A的传递可以公开,即攻击者可以获取A。 由于椭圆曲线的离散对数问题是难题,所以攻击者不可以通过A、G计算出a。 4) Bob将B传递给Alice。同理,B的传递可以公开。 5) Bob收到Alice传递的A,计算Q =b*A 6) Alice收到Bob传递的B,计算Q`=a*B 证明: 因为在椭圆曲线的有限域Fp内运算满足交换律、结合律 所以Q=b*A=b*(a*G)=(b*a)*G=(a*b)*G=a*(b*G)=a*B=Q' (交换律和结合律)
常 见 的 解 决 方 案
用非对称加密加密 对称密钥,对称密 钥加密传输信息
DH密钥协商
ቤተ መጻሕፍቲ ባይዱH算法
迪菲-赫尔曼密钥交换(Diffie–Hellmankey exchange,简称“D–H”) 是一种安全协议。它可以让双方在完全没有对方任何预先信息的条件下通过 不安全信道建立起一个密钥。这个密钥可以在后续的通讯中作为对称密钥来 加密通讯内容。 一些数学概念 定义: 1)阶 当 p > 1, gcd(a, p) = 1,则使得 a^e mod p = 1成立的最小正整数e称 作整数a对模p的阶,记做ord(a)。 2)原根 若a的阶
推论: 如果a是素数p的一个原根,那么数值: a modp,a^2 modp,…,a^(p-1) modp 是各不相同的整数,且以某种排列方式组成了从1到p-1的所有整数。
DH算法
定义: 1)阶 当 p > 1, gcd(a, p) = 1,则使得 a^e mod p = 1成立的最小正整数e称作整数a对模p的阶,记做ord(a)。 2)原根 若a的阶
定 理 、 原 根 举 例
阶:3

阶:6 与
相等,说明a=3是7的一个原根
DH算法
Diffie-Hellman算法: 假如用户Alice和用户Bob希望交换一个密钥。 1)取素数p和整数a,a是p的一个原根,公开a和p。 2)Alice选择随机数 <p,并计算 。 3)Bob选择随机数 <p,并计算 。 4)每一方都将X保密而将Y公开让另一方得到。 5)Alice计算密钥的方式是: 6)Bob计算密钥的方式是: K即为共享密钥。 证明:
对 称 加 密
我们这次通讯,密钥采用aaa 没问题 ********************
Alice
********************
Bob
不采用固定密钥,Alice与Bob每次通信采用协商的密钥 进行加密,可以避免长时间存放密钥造成密钥泄露,但是 协商的密钥仍然是暴露的。
通信安全
直接非对称加密
D H 算 法 证 明
同理:
思考: 为什么DH算法 p需要是素数? a要是p的原根?
DH算法
Diffie-Hellman 算法的有效性依赖于计算离散对数的难度, 其含义是:当已知大素数p和它的一个原根a后,对给定的Y, 要计算x,被认为是很困难的,而给定x计算Y却相对容易。
算 法 本 质
由于 和 是保密的,而第三方只有p、a、 、 可以利用, 只有通过取离散对数来确定密钥,但对于大的素数p,计算 离散对数是十分困难的。这个难建立在目前为止没有找到一 个快速计算对数的算法,数学上没有证明这个算法是否存在, 只有暴力破解的方式。
通信安全
原来密钥是XXX, ******的意思是余 额250元,嘿嘿
对 称 加 密
************ ************ Alice Bob
由于对称密钥长时间不改变,密钥存在泄露风险,如果密 钥泄露一样可以造成信息暴露。
通信安全
协商的密钥是YYY, ******的意思是余 额250元,嘿嘿
算 法 缺 陷
参考资料:
1, https:///fw0124/article/details/8462373 2, https:///mrpre/article/details/52608867 3, https:///billbonaparte1/article/details/51471131 4, https:///mingzznet/article/details/47168677 5, https:///fuyukai/article/details/50894609
相关文档
最新文档