假设我已经生成了一个私钥和一个公钥。我创建一个消息并使用公钥加密它。我将此加密消息和私钥传递给多个收件人。
我为什么要这么做?
我想传递一条只能解密的信息。我不希望任何人能够加密一个虚拟信息,并将这个信息传递给所有的收件人,假设这是来自我的。
我认为我在正确的轨道上使用RSA -但不知何故,我需要它的所有反向。
另外,如果我把私钥给人们,并且我保证了公钥的安全,我是否正确地认为,仅仅使用私钥本身就可以生成一个新的公钥?
让我们以我的问题为例。
我使用公钥创建加密消息:
ajjfjdksdjkdfjfjdjfd最终用户使用私钥解密它,以便:
green:1234:table目前为止一切都很好。上面的消息和身份验证非常基本地检查了:中的三个字符串。
但是,由于这些加密消息可能来自不受信任的来源,我希望任何不受信任的源都不可能创建这些消息,因为它们知道简单的格式。我不想要我提供的钥匙足以让他们倒转公用钥匙。
我觉得很难解释,我希望这个问题能得到解答。
发布于 2015-09-09 20:05:30
克里斯想给爱丽丝和鲍勃发个口信。
克里斯不想让戴夫给爱丽丝和鲍勃发个口信,声称是克里斯送的。
因此,爱丽丝和鲍勃必须有办法区分克里斯的真实信息和戴夫的模仿。就像克里斯的签名一样。该方法存在,并被(适当地)调用一个签名。
从概念上讲,你希望Chris能够做一些非Chris (特别是Dave)不能做的事情(发送一个被Alice和Bob接受的信息) --所以肯定有一些Chris知道的秘密价值,而不是Dave,因为在密码学中,知识就是力量。此外,在这个过程中,这个秘密值不能泄漏,特别是,您不希望Alice和Bob学习它(否则,Alice可以尝试Davify Bob,即向Bob发送一条消息,就像她是Chris一样)。
因此,发送方的秘密值,可在接收方验证的操作,而不泄露秘密本身。这正是数字签名的概念。
不管加密的概念是什么,这都适用。这是一个完全正交的讨论。
发布于 2015-09-09 20:23:26
您不必透露任何密钥,这是公钥加密系统的要点。
在gnupg列表的这条信息中,他们解释了一种创建多个收件人消息的方法。
在此基础上,您可以创建如下内容:
-开始密码-- C1 --结束密文--开始散列-- H1 --结束散列--开始键-- D1 D2 D3 --结束密钥--
把这个信息传给每个人。他们将D1解密为Dn以生成S1。将结果与消息上的哈希进行比较,他们将知道何时得到对称密钥。
有了对称密钥,他们可以独立地解密消息,而不知道对方的密钥。
若要创建可验证的消息,请将签名添加到整个消息中,除非他们获得您的私钥,否则没有人能够创建冒充您的消息。
https://security.stackexchange.com/questions/99920
复制相似问题