公钥和私钥关系

时间:2016-12-31 06:48:44

标签: cryptography public-key-encryption private-key

我向您发送使用pvt1(私人)密钥加密的数据。

那你怎么打开这个文件?

没有我的pvt1你怎么能打开它?

如果您可以使用pvt2密钥打开,那么pvt1pvt2密钥之间是否存在关联?

否则你怎么打开我的文件?

如果您需要我的pvt1打开文档,那么我们之前是否会交换密钥?

1 个答案:

答案 0 :(得分:4)

从理论上讲,您不使用私钥加密。您可以使用公钥或公钥和私钥的组合进行加密。

以下是最常见方案的工作原理:

使用公钥加密:
1.收件人生成公钥/私钥对。这两个键是相关的 2.收件人向您发送他们的公钥,并确认它属于他们 3.您使用收件人的公钥加密某些内容 4.这只能用收件人的私钥解密,只有收件人才有 5.收件人使用私钥解密邮件。

此系统的优点是发件人和收件人之间无需专门设置。收件人可以向所有人提供他们的公钥,并允许任何人向他们发送只有他们可以阅读的加密邮件。

公钥和私钥以某种特殊方式相关。这是一个复杂的数学,但这是一个过于简单(但仍然棘手)的解释,通常是如何做的:

你有一些行为就像乘法一样,除非它是不可逆转的。私钥是随机生成的。有一些众所周知的常数G.公钥是由G.“乘以”的私钥。我将调用接收者的密钥Rs和他们的公钥Rp。所以Rp = Rs * G。 (这里*表示一个类似于乘法但不可逆的操作。)

要加密邮件,请选择一个新的随机公钥/私钥对,仅用于此邮件。我将调用公钥Ep和私钥Es。所以Ep = Es * G

要发送消息,请使用Es * Rp对其进行加密,然后将其与Ep一起发送。要解密它,收件人会使用Rs * Ep解密它。

为什么这样做?因为Es * Rp = Rs * Ep。为什么呢?
Es * Rp = Rs * Ep
Es * Rs * G = Rs * Es * G
这是正确的,因为这种类似乘法的操作是可交换的。

为什么攻击者无法解密它?攻击者有:
Ep(因为我们发了)
Rp(因为它是公开的)

攻击者需要Es * RpRs * Ep。也就是说,他需要Es * Rs * G而他只有Es * GRs * G。哎呀,他因为无法分开而陷入困境。