从任何一点,我理解通过阅读各种材料、公共-私人钥匙对的基础的不对称加密和还有一些关于选择2素数(这大概是你的私人钥匙)和乘他们(这大概是你的公钥),我看来,它能够产生一个公钥如果你知道的私人钥匙。这是正确的,我弄错的东西吗?

[编辑]

是什么让我更加令人困惑的是,它是不可能的序列化RSA的关键XML 私人钥匙(使用。净类RSACryptoServiceProvider).不知道是否这种限制是有意或不!

有帮助吗?

解决方案

这取决于密码系统上。

在的 RSA 下,我们已经(援引维基百科):

  

在公共密钥由模数n和公共(或加密)指数e的。该   私钥由模数n和私人(或解密)指数d的其   必须保密。

现在,如果我们有n和d(私钥),我们只是缺少E对于公共密钥。但是电动往往是相当小的(小于三位数),或甚至固定(一个共同的值是65537)。在这些情况下获得的公共密钥是微不足道的。

有关的椭圆曲线Diffie-Hellman的下,该私人密钥为d,并且所述公钥dG的(其中G也公开),所以它是微不足道以及

其他提示

在大多数非对称密码系统执行情况,唯一的事实是保证了的是你找不到私人钥匙从公共密钥。另一方面,找到公钥从私人钥匙是微不足道,在大多数情况下。

例如,在RSA,您可以创建公用钥匙从私人钥匙有:

openssl rsa -in private.pem -pubout -out public.pem

什么是令人误解的术语:"专用钥"是指2个不同的概念无论你是说理论上,或无论你说话的实际实施:

  • 理论 私人钥匙是的夫妇 (d、n) 其股份完美对称的(数学)的关系 (e n).如果你比较这些,一种无法计算。
  • 实际 私人钥匙(如在openssl执行情况为例),指的是文件含有 (d、n) 但也有几个重要的中间值用于解码的速度的目的。除此之外,从理论上讲"未知"的一部分的公共钥匙 e 往往是固定的共同价值观的公约》(这是 0x10001 通过默认在openssl,尽管它可以改变的,它是强烈建议坚持只 非常具体的价值观).所以推断,公共钥匙 (e n) 从私人钥匙是微不足道的多的原因之一。

这取决于算法,和你所说的“私钥”的意思。

RSA私钥通常存储在他们的“中国剩余定理”的形式。例如,在PKCS#1和定义的RSAPrivateKey结构重新使用的很多其他加密标准采取这种形式。这种形式包括两个秘密数字通常表示pq,从该欧拉被计算。用欧拉和私人指数,公共指数被快速计算。

在任何情况下,大多数的RSA密钥对使用65537作为公共指数,和模量总是执行作为私钥的一部分。

在任何公开密钥密码系统的公共密钥在数学上是相关的私有密钥。这是非常简单的。

在公共密钥是从在生成时的私有密钥导出,并用在将来的任何点的私有密钥就可以重新获得容易的公共密钥。

有不去的其他方式是可行的。由于公钥是不容易推导出私钥。这就是为什么我们可以安全地与其他人共享的公共密钥。如果你有足够的时间/ CPU周期,你可以蛮力,但它可能更容易等待键上的数学攻击。

有关的OpenSSH的特定情况和 SSH-密钥生成是可以

  

SSH-密钥生成-y

     

这个选项会读取私人OpenSSH格式文件和打印公钥到stdout。


一般而言,这取决于算法,你什么标签的私钥。然而,任何明智的实现将包括秘密文件的完整信息(公钥和私钥)。

有是在私人密钥是什么误解。私钥仅仅是(d,n)的对和,只是给出的,这是不可行的从其生成公钥,除非你可以假设公共指数为65537,这是几乎所有的RSA密钥的情况。

如果出于任何原因,公用指数是一个较大的数字,你不能创建从一个私人的公共密钥。

这是说,存储为“私钥”,以PEM文件的价值不只是私有密钥,而且还包含了主要因素(除其他事项外),因此,很容易从它生成的公钥。

是能够访问可生成的公开密钥的私有密钥

公钥是模数N(和公共指数e,通常是65537), 私有密钥由两个素数P,Q给出(和私人指数d,有时也CRT零件D_P,d_q用于加速) 基本上你有N = PQ和e d = 1个模((P-1)(Q-1)),也可以计算和D_P使用d_q CRT 鉴于私有密钥,公共密钥模数的计算是“无聊”乘法和公共指数是在说明书或使用扩展欧几里德算法,如果标准E不够好计算。 定的公钥,私钥的计算要求要么寻找d(RSA问题)或P,Q(保理,见数域筛最好的算法中做到这一点的)。这些问题被证明是合理的条件下等同的[实时RSA一般地是相当于理,D. AGGARWAL和U.毛雷尔,2008]

它在理论上是可能但对于大的密钥计算上不可行。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top