1
ffffwh 2016-03-22 01:16:55 +08:00 via iPad
RSA 的实现,阮一峰有篇拾人牙慧的,还不错
|
2
UnisandK 2016-03-22 01:20:36 +08:00
RSA 算法基于一个十分简单的数论事实:将两个大素数相乘十分容易·但是想分解它们的乘积却极端困难,因此可以将乘积公开作为加密密钥
|
3
honeycomb 2016-03-22 01:51:49 +08:00 2
|
4
vanxining 2016-03-22 01:58:35 +08:00
将所有不太大的素数都乘一遍不就行了?
|
5
chrishine 2016-03-22 02:23:26 +08:00 via Android 1
一个问题的逆问题是难问题。
大数可能的解空间会非常大,素数是因为素数本身的性质。 |
7
7timesonenight 2016-03-22 03:59:20 +08:00
简而言之:
问:“你说你的加密算法安全, 凭什么?”, 答:“基于数学的 xxx 不可解问题” |
8
YUX 2016-03-22 04:31:50 +08:00 via Android
因为对于大数的因数分解在目前是困难的
这一现状可能会在数论有相关重大突破后改善 |
9
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
|
10
bombless 2016-03-22 06:06:11 +08:00 via Android 1
其实很多密码系统用的不是数论而是代数。
不过非对称性加密似乎确实都是数论。 |
11
dndx 2016-03-22 07:00:56 +08:00
也不一定,椭圆曲线加密就跟素数没啥关系。
|
12
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 ” |
13
crystom 2016-03-22 09:47:44 +08:00
据说有数学协会给能破解 RSA 的人设了个 100 万美元的奖
然而假如真能破解,可以赚的钱比 100 万不知道高到哪里去了 |
14
shyling 2016-03-22 10:02:22 +08:00
因为“ 2 个素数相乘容易,分解回 2 个素数不容易”
|
15
amustart 2016-03-22 10:31:37 +08:00
因为基于大素数分解是数学上的一个复杂问题,既然数学家都不能很好解决,那么正好就用在加密上呗
|
16
jyhmijack 2016-03-22 10:38:24 +08:00
单向陷门函数
|
17
zacard 2016-03-22 10:54:11 +08:00
又学到了。。。
|
18
msg7086 2016-03-22 13:48:38 +08:00
@SoloCompany 本来以为是什么科普知识还想读一下的,打开看了一眼还是决定关掉搬砖去了。
|
19
Felldeadbird 2016-03-22 15:58:22 +08:00
瞬间觉得自己遇到硬伤了。自己写的只不过过过家代码。
|
20
Viztor 2016-03-22 16:03:22 +08:00
“将两个大素数相乘十分容易·但是想分解它们的乘积却极端困难”
本质上是让解出密码的成本大于获取到的信息的价值。比如一个 RSA 可能数百年解开。到时候秘密也不是秘密了。 |
22
kkzxak47 2016-03-22 22:57:25 +08:00
没别的就是特别难算,如果你找到别的类似的正向计算容易 /逆向困难的问题也可以拿来做加密的基础。
|