2012-05-20 76 views
0

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

+5

为什么你想要在那里分发私钥?整个想法是保留私钥,好吧*私人* – Voo

+1

确实。您应该使用朋友的_public_键加密传出消息,因此只有他们可以用其私钥解密。 –

+0

他谈论* a *私钥。不是他或他的朋友。这意味着他意味着一个对称密钥。 –

回答

0

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

有关背景的更多信息,请参阅this

至于如何在你的代码中做到这一点,我会建议googling沿着“java公钥库”的东西。

+1

自从他谈论私钥以来,他已经在使用不对称方案。他甚至将RSA作为标签。 – Voo

+0

@Voo,仅仅因为使用了标签和名称,这并不意味着他理解了这些想法?如果他做了这个问题就没有必要了? –

+0

如果这是邮政罚款的目的。当他已经使用RSA时,开始使用“需要使用不对称方案”的帖子,可能会让海报和其他读者感到困惑; – Voo

3

首先你永远不会分配私钥,而公钥可以公开(duh!)可用。您使用聊天第二方的人员的公共密钥加密您的消息,然后他们使用他们的私钥对其进行解密。您可以使用纯文本,电子邮件或公布您的公共密钥,以便其他人可以使用它加密他们的邮件。

为了让您的生活更轻松地投入使用 - 由于使用非对称加密建立安全通道后,它会更快地交换对称会话密钥并使用更快的对称加密。

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

+0

公钥需要被信任,但可信任的机构只是实现该目标的一种方式(信任网,带外通信等)。 –

0

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

希望它有帮助!