推荐关注
Meteor
JSLint - a JavaScript code quality tool
jsFiddle
D3.js
WebStorm
推荐书目
JavaScript 权威指南第 5 版
Closure: The Definitive Guide
fyyz

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

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

    本质上是让解出密码的成本大于获取到的信息的价值。比如一个 RSA 可能数百年解开。到时候秘密也不是秘密了。
    minimaluminium
        21
    minimaluminium  
       Mar 22, 2016
    @dndx 曲线是定义在 Z_p 域上的,明显用了大素数
    kkzxak47
        22
    kkzxak47  
       Mar 22, 2016
    没别的就是特别难算,如果你找到别的类似的正向计算容易 /逆向困难的问题也可以拿来做加密的基础。
    dndx
        23
    dndx  
       Mar 24, 2016
    @iF2007 孤陋寡闻了,感谢指出
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   5560 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 110ms · UTC 08:15 · PVG 16:15 · LAX 01:15 · JFK 04:15
    ♥ Do have faith in what you're doing.