【问题标题】:private key distribution techniques?私钥分发技术?
【发布时间】:2012-05-20 14:10:46
【问题描述】:

我用 java rmi 客户端服务器制作了一个聊天应用程序。为了我使用 RSA 算法的消息的安全性,但我很难将私钥分发到对手的聊天中。也许我的朋友那里可以帮助如何将私钥分发给对手,以便他可以解密发送的聊天消息。

【问题讨论】:

  • 为什么要在那里分发私钥?整个想法是保留私钥,private
  • 确实如此。您应该使用朋友的 公钥 密钥加密传出消息,因此只有他们可以使用他们的私钥解密。
  • 他谈到了 a 私钥。不是他或他的朋友。这意味着他的意思是对称密钥。

标签: java encryption rsa private-key


【解决方案1】:

首先,您永远不会分发私钥,而公钥可以公开(呃!)可用。您使用聊天第二方的人的公钥加密您的消息,他们使用他们的私钥解密它。您可以使用纯文本、电子邮件或在您的网站上发布您的公钥,以便其他人可以用它加密他们给您的消息。

为了让您的生活更轻松,投资于使用例如 - 这要快得多,因为在使用非对称加密建立安全通道后,它会交换对称会话密钥并使用更快的对称加密。

实际上,公钥的分发也可能是一个问题。如果你的对手也可以修改传输(而不是只听你的传输通道),他/她可以发送你的伪造公钥。这就是为什么公钥(例如在网站上)需要由受信任的权威链(其公钥在网络浏览器中硬编码)签名。

【讨论】:

  • 公钥需要受信任,但受信任的机构只是实现这一目标的一种方式(信任网络、带外通信等)。
【解决方案2】:

RSA 是一种公钥加密技术,您的客户有一个公钥,而您有一个私钥,您可以使用私钥解密消息,即消息使用客户端公钥加密并使用您的私钥解密。 你可以看看这个http://www.di-mgt.com.au/rsa_alg.html 它非常详细地解释了它是如何工作的。 这个PPT解释了如何在java中实现 www.cs.cityu.edu.hk/~cs4288/Java/RSA.doc 真的很有帮助。

希望对你有帮助!

【讨论】:

    【解决方案3】:

    您需要使用非对称方案来传输信息。使用非对称加密,即使有人在监听,他们也不知道他们的密钥是什么。您可以使用它来加密消息,但通常您使用它来加密对称密钥,然后从那里使用它。

    查看this 了解有关背景的更多信息。

    至于如何在您的代码中执行此操作,我建议按照“java 公钥库”的行进行谷歌搜索。

    【讨论】:

    • 他已经在使用非对称方案,因为他在谈论私钥。他甚至有 RSA 作为标签..
    • @Voo,仅仅因为使用了标签和名称,并不意味着他理解这些想法?如果他做了这个问题就没有必要了?
    • 如果那是帖子的目的就好了。当他已经在使用 RSA 时,以you need to use an asymmetric scheme 开头,可能不仅对发帖者而且对其他读者来说有点困惑;)
    • @Voo RSA 标签是 Thomasz 添加的,但 RSA 已经在问题中了