求问 Diffie-Hellman, ECDH 和 curve25519 之间的关系?

2016-11-07 17:15:37 +08:00
 p2227

我先说自己的理解

Diffie – Hellman :这个视频很通俗,就是一种算法:通过交换一些公开的数据就能让通讯双方相互算出密钥的算法 https://www.khanacademy.org/computing/computer-science/cryptography/modern-crypt/v/diffie-hellman-key-exchange-part-2

ECDH :我的理解是 DH 的增强版,通过一些方法使用 DH 的逆运算(通过公开数据推断密钥的运算)更加复杂,以至于在当前计算机的计算能力下几乎不可能实现逆运算。至于增强的原理,不清楚,有人可以通俗地解释一下吗?

curve25519 : DH 算法中有一些公开的参数,而 curve25519 是把这些参数固定下来的一套算法。不知道对不对,希望不对人有可以指正一下。

然后就是另外一个问题:还有哪些类似的算法,优劣如何?

8282 次点击
所在节点    信息安全
4 条回复
whx20202
2017-01-08 16:29:21 +08:00
https://blog.ruiruige1991.xyz/2017/01/08/%E6%8A%98%E8%85%BEX25519%E7%9A%84%E4%B8%A4%E4%B8%89%E4%BA%8B/
你可以看看这个
一起探讨一下
这个网站只能用 chrome 打开( opera 或者很新的火狐也可以)
p2227
2017-01-09 14:29:12 +08:00
@whx20202

Curve25519/Ed25519/X25519 是著名密码学家 Daniel J. Bernstein 在 2006 年独立设计的椭圆曲线加密 /签名 /密钥交换算法,和现有的任何椭圆曲线算法都完全独立。特点是:第一完全开放设计,算法各参数的选择直截了当,非常明确,没有任何可疑之处,相比之下目前广泛使用的椭圆曲线是 NIST 系列标准,方程的系数是使用来历不明的随机种子 c49d3608 86e70493 6a6678e1 139d26b7 819f7e90 生成的,非常可疑,疑似后门;第二,一个椭圆曲线加密算法就算在数学上是安全的,在实用上也并不一定安全,有很大的概率通过缓存、时间、恶意输入摧毁安全性,而 25519 系列椭圆曲线经过特别设计,尽可能的将出错的概率降到了最低,可以说是实践上最安全的加密算法。例如,任何一个 32 位随机数都是一个合法的 X25519 公钥,因此通过恶意数值攻击是不可能的,算法在设计的时候刻意避免的某些分支操作,这样在编程的时候可以不使用 if ,减少了不同 if 分支代码执行时间不同的时序攻击概率,相反, NIST 系列椭圆曲线算法在实际应用中出错的可能性非常大,而且对于某些理论攻击的免疫能力不高, Bernstein 对市面上所有的加密算法使用 12 个标准进行了考察, 25519 是几乎唯一满足这些标准的 http://t.cn/RMGmi1g ;第三, 25519 系列曲线是目前最快的椭圆曲线加密算法,性能远远超过 NIST 系列,而且具有比 P-256 更高的安全性;第四, Daniel J. Bernstein 是世界著名的密码学家,他在大学曾经开设过一门 UNIX 系统安全的课程给学生,结果一学期下来,发现了 UNIX 程序中的 91 个安全漏洞;他早年在美国依然禁止出口加密算法时,曾因为把自己设计的加密算法发布到网上遭到了美国政府的起诉,他本人抗争六年,最后美国政府撤销所有指控,目前另一个非常火的高性能安全流密码 ChaCha20 也是出自 Bernstein 之手;第五, 25519 系列曲线自 2006 年发表以来,除了学术界无人问津, 2013 年爱德华·斯诺登曝光棱镜计划后,该算法突然大火,大量软件,如 OpenSSH 都迅速增加了对 25519 系列的支持,如今 25519 已经是大势所趋,可疑的 NIST 曲线迟早要退出椭圆曲线的历史舞台,目前, RFC 增加了 SSL/TLS 对 X25519 密钥交换协议的支持,而新版 OpenSSL 1.1 也加入支持,是摆脱老大哥的第一步,下一步是将 Ed25519 做为可选的 TLS 证书签名算法,彻底摆脱 NIST 。

这一段话的来源是什么?是你自己总结的吗?
[算法各参数的选择直截了当,非常明确] 是不是对应我的 [curve25519 是把这些参数固定下来的一套算法] ?
[ 25519 系列椭圆曲线经过特别设计,尽可能的将出错的概率降到了最低] 经过什么设计?为什么会有出错?怎么把出错的概率降低?
[这样在编程的时候可以不使用 if] 不明白。。。

或者你有一些技术原理性的文章分享一下吗?
whx20202
2017-01-09 15:00:13 +08:00
@p2227 这段话是我之前感兴趣,问的一个非常懂安全的人,他很 nice 花了 20 分钟写了这段给我。
我本人不懂密码学 基本上这段话对我来说就够了

你的问题可能只可能自己找找密码学方面的书了,具体的技术细节和那个椭圆曲线肯定是分不开的,我也不懂~
testcaoy7
2017-02-28 10:54:24 +08:00
Curve25519 是一个设计的很好的曲线参数,速度快,无后门( NIST 的曲线有所谓的“ Magic Number ”,就是不加任何原因解释一定要用的常量,可能跟后门有关)

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/318759

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX