V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
a87150
V2EX  ›  问与答

私钥可以导出公钥,但公钥无法反推私钥?

  •  
  •   a87150 · 2017-09-14 21:13:23 +08:00 · 15855 次点击
    这是一个创建于 2387 天前的主题,其中的信息可能已经有所发展或是发生改变。

    如果提到 GPG 那么不得不提的就是公钥加密算法,首先我们先来快速地了解一下最知名的公钥加密算法 —— RSA:在 RSA 中有「公钥」和「私玥」两种密钥,其中私钥可以导出公钥,但公钥无法反推私钥。如果用公钥加密数据的话,那么只有私钥可以解密;如果使用私钥签名数据的话,那么可以验签名。 https://jysperm.me/2017/09/gpg-and-e2ee/

    这是真的吗? 但是我看阮一峰的说法 http://www.ruanyifeng.com/blog/2013/07/rsa_algorithm_part_two.html

    公钥也能推出私钥

    11 条回复    2017-09-14 23:10:21 +08:00
    weyou
        1
    weyou  
       2017-09-14 21:21:17 +08:00 via Android
    据我粗浅的认知,公钥和私钥是对等的。有种私钥文件格式是包含了公钥,自然可以将公钥导出来。
    Citrus
        2
    Citrus  
       2017-09-14 21:31:16 +08:00 via iPhone
    如果你说大数分解是可行的,那么就可以随便互相导。
    hxndg
        4
    hxndg  
       2017-09-14 22:00:25 +08:00
    并不是这个样子的,私钥公钥是一个非对称密码学的概念,你选择哪个公开哪个就是公钥。一般情况下是不能互相推倒的,但是因为公钥是公开的,所以你有了私钥相当于你两个都有。RSA 我一直觉得比较特殊因为它是可以推倒出来的,但是这和公钥私钥概念并不矛盾。
    xrui
        5
    xrui  
       2017-09-14 22:04:36 +08:00 via iPhone
    尝试一下证明黎曼猜想,证出来 RSA 基本就废了
    fzleee
        6
    fzleee  
       2017-09-14 22:12:58 +08:00
    私钥无法导出公钥,之所以“可以”,是因为私钥文件里面顺便保存了公钥信息
    honeycomb
        7
    honeycomb  
       2017-09-14 22:21:50 +08:00
    字面上说,私钥和公钥是两个东西,私钥加密的内容只有公钥才能解开,反之也是。

    但是在实际操作时,私钥的容器往往同时包含私钥与公钥(公钥是让所有人都会知道,那么拥有私钥的人没有道理不留存一份公钥),而公钥的容器仅包含公钥
    @weyou 已经提到这一点

    这就是为什么私钥可以导出公钥,但反过来不行的原因。
    geelaw
        8
    geelaw  
       2017-09-14 22:27:23 +08:00
    对于一般的定义,公钥私钥之间没有必然的推导关系。

    不过有些定义为了省事儿,直接把私钥定义为用来生成密钥对的算法的随机种子,这样的话私钥是蕴含公钥的。

    对于教科书版本的 RSA,公钥和私钥之间是可以互相推出的。只不过目前没有人知道如何 **快速地** 从公钥导出私钥。

    @xrui 我搜索了一下,似乎单纯证明出 RH 和 RSA 之间并没有直接的关系。
    ryd994
        9
    ryd994  
       2017-09-14 22:27:33 +08:00 via Android
    RSA 密钥最少保存 3 个数,n,d,e
    ne 组成公钥,nd 组成私钥
    其中 e 一般固定 65537,因此知道私钥 nd 就能推出公钥

    如果 e 不是 65537 就不一定能推出了
    tinybaby365
        10
    tinybaby365  
       2017-09-14 23:03:11 +08:00 via iPhone
    RSA 公钥内容是私钥的一部分,不是推导,而是直接导出。
    xrui
        11
    xrui  
       2017-09-14 23:10:21 +08:00 via iPhone
    @geelaw
    RH 可以找到素数分布的规律
    RSA 是大数分解质数
    可能大概就这样吧🌚
    (我说不清楚,这事是我们离散老师上课说的)
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   5848 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 32ms · UTC 01:57 · PVG 09:57 · LAX 18:57 · JFK 21:57
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.