目录

  • 1 Diffie Hellman算法
    • 密钥交换DH
    • DH加密- ElGamal方法
  • 2 DH算法的安全性
  • 3 椭圆曲线DH (ECDH)
    • 椭圆曲线的操作
    • ECDH密钥交换
  • 4 安全级别比较
  • 5 中间人(MiTM)攻击
  • 6 结论

1 Diffie Hellman算法

密钥交换DH

  • Alice和Bob希望通过在不安全的通道上交换信息来获得共享的密钥k
  • 他们同意使用公共参数:生成器G和素数mod p,即对素数字段Fp ={1,2,…, p−1}
    1. Alice生成私钥a<P,计算她的公钥 A = Ga (mod p)
      Bob生成私钥b,计算他的公钥 B = Gb (mod p)。
    2. Alice和Bob互相交换公钥,然后计算:
      Alice: KAs = Ba = Gba mod§
      Bob: KBs = Ab = Gab mod§
    • 共享密钥为Ks = KAs = kBs
  • 共享密钥k随后被用于使用对称密钥加密系统的加密/解密。
    举例
  • 公共参数:生成器G = 2,素数模p = 31
  1. Alice生成私钥a = 13,计算她的公钥A = 213 (mod 31) = 8
    Bob生成私钥b = 17,并计算他的公钥B = 217 (mod 31) = 4。
  2. 他们互相交换公钥,然后计算:
    Alice: KAs = 413 (mod 31) = 16
    Bob: KBs = 817 (mod 31) = 16
  • 此处共享密钥为Ks = KAs = KBs = 16

DH加密- ElGamal方法

Alice想加密发送给Bob信息,原文是M

  1. Bob定义了G,p,私钥kpr = b,计算 B = Gb (mod p);
    所以公钥KBpub = <G, p,B>,Bob把KBpub发送给Alice。
  2. Alice选择私钥a,计算公钥 A = Ga (mod p);
    然后得出共享密钥:Ks = Ba = Gba (mod p)
  3. Alice加密消息M,即C = M·Ks (mod p)
    将密文C,Alice的公钥A发送给B
  4. Bob导出加密密钥Ks = Ab (mod p)
  5. 解密过程

2 DH算法的安全性

  • Eve得到:G, p, A = Ga (mod p), B = Gb (mod p),可以通过求解

    • Diffie-Hellman问题(DHP): Eve能找到Gab (mod p)吗?
    • 离散对数问题(DLP):给定G, p,和Gx(modp),Eve能找到a或b吗?
  • 安全性:如果p很大,DHP和DLP被认为很难解决,例如1024,1536,2048位。数值大的p在计算上很费劲。

3 椭圆曲线DH (ECDH)

椭圆曲线的操作


例子

ECDH密钥交换

  1. 域参数:素数p,α,β,P = (xP, yP)
    P点在曲线E上:y2≡x3 + αx + β (mod p)
  2. Bob分别选择他们的私钥a, b
  3. Alice的公钥:A = aP (mod p)
    Bob的公钥:B = bP (mod p)
  4. 交换公钥后,计算共享密钥
    a(B) = abP (mod p)
    Bob: KB = b(A) = baP (mod p) = KA
  • 安全性基于椭圆曲线离散对数问题(ECDLP),即当p较大时,无法从aP, bP中获得a, b, abP

4 安全级别比较


如果已知的最佳攻击需要2n步,则该算法的“安全强度”为n位。(Christoff Paar)

5 中间人(MiTM)攻击

  1. Alice和Bob交换公钥
  2. Eve拦截了Alice和Bob之间的所有交流,她将自己的公钥发送给Alice和Bob。
  3. Alice不能确定她接收到的公钥不是来自Bob,Bob同理也无法确定。
  4. Alice和Bob认为他们在给彼此加密信息,但实际上是在加密给Eve的信息,Eve充当中间人,能够读取Alice和Bob之间的所有加密信息

6 结论

  • DH作用于素数领域,ECDH作用于椭圆曲线上的点。
  • 安全性取决于DLP或ECDLP问题的硬度。
  • DH和ECDH用于双方通过交换公钥计算共享密钥。
  • ElGamal算法可以用于加密,如RSA。它以DH为基础。
  • ECDH比DH或RSA使用的数字要小得多

IST-5-非对称加密之DH相关推荐

  1. Android笔记-对称与非对称加密及DH密钥交换

    对称加密算法 AES:Advanced Encryption Standard,高级加密标准. 算法逻辑是这样的: 加密:C = E(K, P)    其中P为明文,K为密钥,C为密文: 解密:P = ...

  2. java-信息安全(九)-基于DH,非对称加密,对称加密等理解HTTPS

    概述 java-信息安全(七)-基于非对称加密,对称加密等理解HTTPS 如果想要理解好https,请尽量了解好以上信息等. 参看文章: http://www.ruanyifeng.com/blog/ ...

  3. java的rsa作用_java 中RSA的方式实现非对称加密的实例

    java 中rsa的方式实现非对称加密的实例 rsa通俗理解: 你只要去想:既然是加密,那肯定是不希望别人知道我的消息,所以只有我才能解密,所以可得出公钥负责加密,私钥负责解密:同理,既然是签名,那肯 ...

  4. 非对称加密和证书总结

    转载请注明文章来源:https://tlanyan.me/asymmetric... 前几日做支付对接时,被对方文档中的加密方式搞晕乎了一会.意识到证书加密方面的理解不够深入,事后查阅参考资料补习一波 ...

  5. [转载] 对称加密与非对称加密

    标签 PostgreSQL , 对称加密 , 非对称加密 , Symmetric , ASymmetric , public , private , pgcrypto , 区块链 背景 转载: htt ...

  6. RSA加密和DH加密

    加密算法可分为以下3类: 对称加密:双方使用同一种加密规则对信息加密.解密(加解密速度快.效率高,适合大量数据,常见的有DES.AES.RC5.Blowfish.IDEA). 非对称加密:乙方生成公钥 ...

  7. Java加密与解密笔记(三) 非对称加密

    非对称的特点是加密和解密时使用的是不同的钥匙.密钥分为公钥和私钥,用公钥加密的数据只能用私钥进行解密,反之亦然. 另外,密钥还可以用于数字签名.数字签名跟上文说的消息摘要是一个道理,通过一定方法对数据 ...

  8. JSON 接口如何实现 RSA 非对称加密与签名

    代码地址如下: http://www.demodashi.com/demo/14000.html 一.概述 1. 数字签名的作用:保证数据完整性,机密性和发送方角色的不可抵赖性,加密与签字结合时,两套 ...

  9. Android安全加密:非对称加密

    Android安全加密专题文章索引 Android安全加密:对称加密 Android安全加密:非对称加密 Android安全加密:消息摘要Message Digest Android安全加密:数字签名 ...

  10. 非对称加密原理及RSA加密步骤

    本篇延续 对称加密.非对称加密深度解析 继续对分对称加密进行深入介绍. 非对称加密的概念 非对称加密有两个密钥, 公钥(Public Key)和私钥(Private Key).公钥和私钥是一对. 使用 ...

最新文章

  1. 将图片读取为像素格式
  2. C#中怎样将Listlt;自己定义gt;转为Json格式 及相关函数-DataContractJsonSerializer
  3. APM - 零侵入监控Http服务
  4. centos7安装Filebeat采集日志文件存到Elasticsearch
  5. 2 宽度优先爬虫和带偏好的爬虫(4)
  6. Python 基础入门--简介和环境配置
  7. war 发布后页面不更新_吐槽 | 都发布一万年了,这游戏还不“更新”?
  8. GBDT与XGBOOST
  9. 初入C++(一) c++中的一些基础和与c的一些区别
  10. 一步一步写算法(之排序二叉树删除-3)
  11. 关于iOS 6 中的一些“xxxxxx” is deprecated 问题的解决办法
  12. c语言课程设计题目 吃豆子,C语言吃豆子游戏
  13. Oracle中慎用Like等通配符
  14. spring-boot-maven-plugin:3.0.0:repackage 报错【解决】
  15. FunAdmin开发框架系统V2.3正式颁布了
  16. 移动OA办公系统如何助力企业办公效率提升?
  17. 涂鸦模组二次开发RTL8720CF
  18. CTFshow DJBCTF MISC(大吉杯) WP
  19. p620光耦接单片机_基于51单片机的可控硅调压调光程序-带过零检测
  20. 「实在RPA·制造业数字员工」助力制造业加「数」发展

热门文章

  1. 蓝桥杯—三羊献瑞,祥瑞生辉+三羊献瑞
  2. 调查: 不同软件的受欢迎程度
  3. 服务器虚拟化分类,虚拟化技术分四大类 你都学会了吗?
  4. 日赚14000元!她用ChatGPT创作文章来赚钱
  5. 机器学习 —— K-近邻算法(KNN)
  6. C语言扫雷函数成绩,扫雷(C语言)
  7. ip68能达到什么程度防水_手机真的能防水吗?手机防水等级IP68都是什么意思...
  8. 教程 | 10分钟入门禅绕画 3
  9. 快手开启粉丝里程碑活动,为创作者记录每一个成就时刻
  10. DataTable.AcceptChanges 方法