IST-5-非对称加密之DH
目录
- 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}
- Alice生成私钥a<P,计算她的公钥 A = Ga (mod p)
Bob生成私钥b,计算他的公钥 B = Gb (mod p)。 - Alice和Bob互相交换公钥,然后计算:
Alice: KAs = Ba = Gba mod§
Bob: KBs = Ab = Gab mod§
- 共享密钥为Ks = KAs = kBs
- Alice生成私钥a<P,计算她的公钥 A = Ga (mod p)
- 共享密钥k随后被用于使用对称密钥加密系统的加密/解密。
举例 - 公共参数:生成器G = 2,素数模p = 31
- Alice生成私钥a = 13,计算她的公钥A = 213 (mod 31) = 8
Bob生成私钥b = 17,并计算他的公钥B = 217 (mod 31) = 4。 - 他们互相交换公钥,然后计算:
Alice: KAs = 413 (mod 31) = 16
Bob: KBs = 817 (mod 31) = 16
- 此处共享密钥为Ks = KAs = KBs = 16
DH加密- ElGamal方法
Alice想加密发送给Bob信息,原文是M
- Bob定义了G,p,私钥kpr = b,计算 B = Gb (mod p);
所以公钥KBpub = <G, p,B>,Bob把KBpub发送给Alice。 - Alice选择私钥a,计算公钥 A = Ga (mod p);
然后得出共享密钥:Ks = Ba = Gba (mod p) - Alice加密消息M,即C = M·Ks (mod p)
将密文C,Alice的公钥A发送给B - Bob导出加密密钥Ks = Ab (mod p)
- 解密过程
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密钥交换
- 域参数:素数p,α,β,P = (xP, yP)
P点在曲线E上:y2≡x3 + αx + β (mod p) - Bob分别选择他们的私钥a, b
- Alice的公钥:A = aP (mod p)
Bob的公钥:B = bP (mod p) - 交换公钥后,计算共享密钥
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)攻击
- Alice和Bob交换公钥
- Eve拦截了Alice和Bob之间的所有交流,她将自己的公钥发送给Alice和Bob。
- Alice不能确定她接收到的公钥不是来自Bob,Bob同理也无法确定。
- Alice和Bob认为他们在给彼此加密信息,但实际上是在加密给Eve的信息,Eve充当中间人,能够读取Alice和Bob之间的所有加密信息
6 结论
- DH作用于素数领域,ECDH作用于椭圆曲线上的点。
- 安全性取决于DLP或ECDLP问题的硬度。
- DH和ECDH用于双方通过交换公钥计算共享密钥。
- ElGamal算法可以用于加密,如RSA。它以DH为基础。
- ECDH比DH或RSA使用的数字要小得多。
IST-5-非对称加密之DH相关推荐
- Android笔记-对称与非对称加密及DH密钥交换
对称加密算法 AES:Advanced Encryption Standard,高级加密标准. 算法逻辑是这样的: 加密:C = E(K, P) 其中P为明文,K为密钥,C为密文: 解密:P = ...
- java-信息安全(九)-基于DH,非对称加密,对称加密等理解HTTPS
概述 java-信息安全(七)-基于非对称加密,对称加密等理解HTTPS 如果想要理解好https,请尽量了解好以上信息等. 参看文章: http://www.ruanyifeng.com/blog/ ...
- java的rsa作用_java 中RSA的方式实现非对称加密的实例
java 中rsa的方式实现非对称加密的实例 rsa通俗理解: 你只要去想:既然是加密,那肯定是不希望别人知道我的消息,所以只有我才能解密,所以可得出公钥负责加密,私钥负责解密:同理,既然是签名,那肯 ...
- 非对称加密和证书总结
转载请注明文章来源:https://tlanyan.me/asymmetric... 前几日做支付对接时,被对方文档中的加密方式搞晕乎了一会.意识到证书加密方面的理解不够深入,事后查阅参考资料补习一波 ...
- [转载] 对称加密与非对称加密
标签 PostgreSQL , 对称加密 , 非对称加密 , Symmetric , ASymmetric , public , private , pgcrypto , 区块链 背景 转载: htt ...
- RSA加密和DH加密
加密算法可分为以下3类: 对称加密:双方使用同一种加密规则对信息加密.解密(加解密速度快.效率高,适合大量数据,常见的有DES.AES.RC5.Blowfish.IDEA). 非对称加密:乙方生成公钥 ...
- Java加密与解密笔记(三) 非对称加密
非对称的特点是加密和解密时使用的是不同的钥匙.密钥分为公钥和私钥,用公钥加密的数据只能用私钥进行解密,反之亦然. 另外,密钥还可以用于数字签名.数字签名跟上文说的消息摘要是一个道理,通过一定方法对数据 ...
- JSON 接口如何实现 RSA 非对称加密与签名
代码地址如下: http://www.demodashi.com/demo/14000.html 一.概述 1. 数字签名的作用:保证数据完整性,机密性和发送方角色的不可抵赖性,加密与签字结合时,两套 ...
- Android安全加密:非对称加密
Android安全加密专题文章索引 Android安全加密:对称加密 Android安全加密:非对称加密 Android安全加密:消息摘要Message Digest Android安全加密:数字签名 ...
- 非对称加密原理及RSA加密步骤
本篇延续 对称加密.非对称加密深度解析 继续对分对称加密进行深入介绍. 非对称加密的概念 非对称加密有两个密钥, 公钥(Public Key)和私钥(Private Key).公钥和私钥是一对. 使用 ...
最新文章
- 将图片读取为像素格式
- C#中怎样将Listlt;自己定义gt;转为Json格式 及相关函数-DataContractJsonSerializer
- APM - 零侵入监控Http服务
- centos7安装Filebeat采集日志文件存到Elasticsearch
- 2 宽度优先爬虫和带偏好的爬虫(4)
- Python 基础入门--简介和环境配置
- war 发布后页面不更新_吐槽 | 都发布一万年了,这游戏还不“更新”?
- GBDT与XGBOOST
- 初入C++(一) c++中的一些基础和与c的一些区别
- 一步一步写算法(之排序二叉树删除-3)
- 关于iOS 6 中的一些“xxxxxx” is deprecated 问题的解决办法
- c语言课程设计题目 吃豆子,C语言吃豆子游戏
- Oracle中慎用Like等通配符
- spring-boot-maven-plugin:3.0.0:repackage 报错【解决】
- FunAdmin开发框架系统V2.3正式颁布了
- 移动OA办公系统如何助力企业办公效率提升?
- 涂鸦模组二次开发RTL8720CF
- CTFshow DJBCTF MISC(大吉杯) WP
- p620光耦接单片机_基于51单片机的可控硅调压调光程序-带过零检测
- 「实在RPA·制造业数字员工」助力制造业加「数」发展
热门文章
- 蓝桥杯—三羊献瑞,祥瑞生辉+三羊献瑞
- 调查: 不同软件的受欢迎程度
- 服务器虚拟化分类,虚拟化技术分四大类 你都学会了吗?
- 日赚14000元!她用ChatGPT创作文章来赚钱
- 机器学习 —— K-近邻算法(KNN)
- C语言扫雷函数成绩,扫雷(C语言)
- ip68能达到什么程度防水_手机真的能防水吗?手机防水等级IP68都是什么意思...
- 教程 | 10分钟入门禅绕画 3
- 快手开启粉丝里程碑活动,为创作者记录每一个成就时刻
- DataTable.AcceptChanges 方法