为什么密码必须要用到大素数

2016-03-22 01:12:50 +08:00
 fyyz
这是看到最近的某帖子的疑问。
经常看到素数与密码有关,但是不是很懂为什么素数与密码有这么深的关系,而且我也只知道现代的密码是通过分解大素数实现的,至于为什么要用大素数,也不是很懂。
6071 次点击
所在节点    JavaScript
23 条回复
ffffwh
2016-03-22 01:16:55 +08:00
RSA 的实现,阮一峰有篇拾人牙慧的,还不错
UnisandK
2016-03-22 01:20:36 +08:00
RSA 算法基于一个十分简单的数论事实:将两个大素数相乘十分容易·但是想分解它们的乘积却极端困难,因此可以将乘积公开作为加密密钥
honeycomb
2016-03-22 01:51:49 +08:00
vanxining
2016-03-22 01:58:35 +08:00
将所有不太大的素数都乘一遍不就行了?
chrishine
2016-03-22 02:23:26 +08:00
一个问题的逆问题是难问题。
大数可能的解空间会非常大,素数是因为素数本身的性质。
fashioncj
2016-03-22 02:36:27 +08:00
@vanxining n 方
7timesonenight
2016-03-22 03:59:20 +08:00
简而言之:
问:“你说你的加密算法安全, 凭什么?”, 答:“基于数学的 xxx 不可解问题”
YUX
2016-03-22 04:31:50 +08:00
因为对于大数的因数分解在目前是困难的
这一现状可能会在数论有相关重大突破后改善
SoloCompany
2016-03-22 05:27:52 +08:00
@vanxining 本来想类比一下的,还是直接丢一个 wiki 吧 https://zh.wikipedia.org/wiki/%E7%A7%80%E7%88%BE%E6%BC%94%E7%AE%97%E6%B3%95
bombless
2016-03-22 06:06:11 +08:00
其实很多密码系统用的不是数论而是代数。
不过非对称性加密似乎确实都是数论。
dndx
2016-03-22 07:00:56 +08:00
也不一定,椭圆曲线加密就跟素数没啥关系。
popil1987
2016-03-22 08:55:15 +08:00
答案在 @honeycomb 给出的链接的第二部分
http://www.ruanyifeng.com/blog/2013/07/rsa_algorithm_part_two.html
搜索“那么,有无可能在已知 n 和 e 的情况下,推导出 d ”
crystom
2016-03-22 09:47:44 +08:00
据说有数学协会给能破解 RSA 的人设了个 100 万美元的奖
然而假如真能破解,可以赚的钱比 100 万不知道高到哪里去了
shyling
2016-03-22 10:02:22 +08:00
因为“ 2 个素数相乘容易,分解回 2 个素数不容易”
amustart
2016-03-22 10:31:37 +08:00
因为基于大素数分解是数学上的一个复杂问题,既然数学家都不能很好解决,那么正好就用在加密上呗
jyhmijack
2016-03-22 10:38:24 +08:00
单向陷门函数
zacard
2016-03-22 10:54:11 +08:00
又学到了。。。
msg7086
2016-03-22 13:48:38 +08:00
@SoloCompany 本来以为是什么科普知识还想读一下的,打开看了一眼还是决定关掉搬砖去了。
Felldeadbird
2016-03-22 15:58:22 +08:00
瞬间觉得自己遇到硬伤了。自己写的只不过过过家代码。
Viztor
2016-03-22 16:03:22 +08:00
“将两个大素数相乘十分容易·但是想分解它们的乘积却极端困难”

本质上是让解出密码的成本大于获取到的信息的价值。比如一个 RSA 可能数百年解开。到时候秘密也不是秘密了。

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

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

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

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

© 2021 V2EX