首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在不泄露密钥的情况下向多个收件人传递加密消息

如何在不泄露密钥的情况下向多个收件人传递加密消息
EN

Security用户
提问于 2015-09-09 19:45:54
回答 2查看 7.4K关注 0票数 7

假设我已经生成了一个私钥和一个公钥。我创建一个消息并使用公钥加密它。我将此加密消息和私钥传递给多个收件人。

我为什么要这么做?

我想传递一条只能解密的信息。我不希望任何人能够加密一个虚拟信息,并将这个信息传递给所有的收件人,假设这是来自我的。

我认为我在正确的轨道上使用RSA -但不知何故,我需要它的所有反向。

另外,如果我把私钥给人们,并且我保证了公钥的安全,我是否正确地认为,仅仅使用私钥本身就可以生成一个新的公钥?

让我们以我的问题为例。

我使用公钥创建加密消息:

代码语言:javascript
复制
ajjfjdksdjkdfjfjdjfd

最终用户使用私钥解密它,以便:

代码语言:javascript
复制
green:1234:table

目前为止一切都很好。上面的消息和身份验证非常基本地检查了:中的三个字符串。

但是,由于这些加密消息可能来自不受信任的来源,我希望任何不受信任的源都不可能创建这些消息,因为它们知道简单的格式。我不想要我提供的钥匙足以让他们倒转公用钥匙。

我觉得很难解释,我希望这个问题能得到解答。

EN

回答 2

Security用户

发布于 2015-09-09 20:05:30

克里斯想给爱丽丝和鲍勃发个口信。

克里斯不想让戴夫给爱丽丝和鲍勃发个口信,声称是克里斯送的。

因此,爱丽丝和鲍勃必须有办法区分克里斯的真实信息和戴夫的模仿。就像克里斯的签名一样。该方法存在,并被(适当地)调用一个签名

从概念上讲,你希望Chris能够做一些非Chris (特别是Dave)不能做的事情(发送一个被Alice和Bob接受的信息) --所以肯定有一些Chris知道的秘密价值,而不是Dave,因为在密码学中,知识就是力量。此外,在这个过程中,这个秘密值不能泄漏,特别是,您不希望Alice和Bob学习它(否则,Alice可以尝试Davify Bob,即向Bob发送一条消息,就像她是Chris一样)。

因此,发送方的秘密值,可在接收方验证的操作,而不泄露秘密本身。这正是数字签名的概念。

不管加密的概念是什么,这都适用。这是一个完全正交的讨论。

票数 2
EN

Security用户

发布于 2015-09-09 20:23:26

您不必透露任何密钥,这是公钥加密系统的要点。

在gnupg列表的这条信息中,他们解释了一种创建多个收件人消息的方法。

在此基础上,您可以创建如下内容:

  1. 生成随机对称密钥S1
  2. 使用S1加密整个消息,创建密码文本C1
  3. 用接收方的每个公钥加密S1,生成D1、D2、.、Dn
  4. 生成S1的安全散列,创建H1
  5. 生成如下消息:

-开始密码-- C1 --结束密文--开始散列-- H1 --结束散列--开始键-- D1 D2 D3 --结束密钥--

把这个信息传给每个人。他们将D1解密为Dn以生成S1。将结果与消息上的哈希进行比较,他们将知道何时得到对称密钥。

有了对称密钥,他们可以独立地解密消息,而不知道对方的密钥。

若要创建可验证的消息,请将签名添加到整个消息中,除非他们获得您的私钥,否则没有人能够创建冒充您的消息。

票数 2
EN
页面原文内容由Security提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://security.stackexchange.com/questions/99920

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档