【问题标题】:What if I keep public key and publish the private one?如果我保留公钥并发布私钥怎么办?
【发布时间】:2021-11-02 06:27:43
【问题描述】:

据我所知,我必须保证私钥的安全并发布公钥,以便任何人都可以使用公钥加密任何数据,而我可以使用我自己的私钥(没有人拥有)解密它.

问题是,如果我发布私钥并保留公钥会怎样?该算法似乎再次起作用:任何人都使用私钥(已发布)锁定数据,但没有人拥有公钥(由我保管)。

什么使公钥成为公钥?私钥上存储了哪些安全且重要的数据,我不应该向任何人展示?

【问题讨论】:

  • 我投票结束这个问题,因为它属于Cryptography
  • @n.1.8e9-where's-my-sharem。我在 SO 上看到了很多关于 SSL 和密钥对的问题。我不明白为什么我的不一样。你能解释一下吗?
  • 私钥的作用类似于公钥,但也可以解密加密的文本。所以发布私钥不是一个好主意。只有公钥应该被其他人知道。如果不是这种情况,您必须撤销密钥并创建一个新的密钥对,并且只发布公共密钥。
  • 还有私钥,任何人都可以冒充你。
  • @DanielRuf 谢谢。对于第一条评论,AFAIK,私钥可用于加密数据(签名,更具体地说),因此任何拥有公钥的人都可以确保我拥有私钥,并且我是我(授权目的)。你说:A private key works like a public key but can also decrypt the encrypted text.公钥也可以解密加密数据。对于第二条评论,两个密钥具有相同的指纹,那么为什么使用公钥没有人可以冒充我?

标签: ssl key-pair


【解决方案1】:

根据系统使用情况,公钥可能是“众所周知的”。例如,对于 RSA,公钥只是你的模数加上公共指数 65537,而私钥是模数加上私人指数(这是真正的秘密)。因此,默认情况下,知道私钥的人也几乎知道公钥。大多数基于椭圆曲线的系统也是如此。

理论上,人们可以创建一个 RSA 风格的系统,其中公共指数也难以确定(比如随机生成的足够位不可猜测的值),在这种情况下它会更加对称,但那是不是系统通常设置的方式。在任何情况下,知道密钥背后的秘密参数(RSA 中的模数因素)的人都可以轻松地从私钥中确定公钥或从公钥中确定私钥。


在像 Diffie-Hellman 这样的系统中,公钥实际上是通过众所周知的算法从私钥派生的(除了私钥本身之外没有其他秘密参数),因此在这种情况下,密钥不是对称的全部,知道私钥的任何人都可以轻松确定公钥。

【讨论】:

【解决方案2】:

对于完整的加密 + 解密(或签名 + 验证)过程,您始终需要两个密钥。一个用于加密/签名,另一个用于解密/验证。您使用哪个键进行哪个操作(原则上)无关紧要,只要您使用相应的另一个键进行逆操作即可。

因此,假设您使用像 openssl 这样的工具来生成密钥对 AB

在发布其中一个密钥时,我们必须考虑两个方面

  • 数学:从纯数学的角度来看(暂时不考虑安全性),公开哪些密钥和保密哪些密钥是无关紧要的。所有进程都可以正常工作。

    decrypt(encrypt(data, A), B) == data == decrypt(encrypt(data, B), A) verify(sign(data, A), B) == OK == verify(sign(data, B), A)

  • 安全性:当我们考虑到安全性时,只有通过数字签名来证明您的身份是可能的,如果您使用密钥,其他人不可能知道。对于某些加密系统,可以从密钥B 导出密钥A,即存在这样的函数

    A = f(B)

    但反之则不然,即没有没有这样的功能

    B = f(A)

    因此,你知道B的那一刻,你也知道A,但是如果你知道A,你就不可能推导出B

因此B称为私钥,必须保密,A是公钥,可以公开。如果你反过来做,从数学的角度来看,这些过程仍然可以工作(尽管大多数系统会拒绝你的密钥),但它们不再安全......

【讨论】:

  • 非常感谢,通过您的解释,我对一切都非常了解。我还有2个问题:1.有没有私钥C,如果是A = f(B)A = f(C)?我的意思是如果有任何可用的(我不在乎我们是否能找到它,我想知道它背后的数学逻辑)创建相同的公钥? 2. 私钥B 总是给我A 公钥吗?或者使用不同的算法(RSA、DSA、...)我可以为一个私钥生成不同的公钥?
  • 参见stackoverflow.com/questions/23930430/…stackoverflow.com/questions/9375044/… 简短回答:从数学上讲,一个公钥有多个私钥,反之亦然。实际用法:不,这是1:1的关系(因为可行性和通用标准)
猜你喜欢
  • 2015-11-14
  • 2019-02-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-03-27
  • 1970-01-01
  • 2013-07-09
  • 2022-01-15
相关资源
最近更新 更多