【发布时间】:2010-12-06 03:40:06
【问题描述】:
我需要一个系统来交换非常机密的数据(源代码是商业机密)。我将使用 Crypto++,所以实际上我可以使用所有加密算法,尽管我更喜欢使用行业标准。
目前我正在考虑这些方法:
- 让服务器生成 2048/4096 位 RSA 密钥,将公钥发送给客户端,让客户端加密数据,然后将其发送给服务器。
- 使用像 Diffie-Hellman(正确的是 Diffie-Hellman-Merkle)这样的密钥交换方法来交换 AES-256 密钥。
- 启动 TLS 连接并直接告诉服务器 AES 密钥。
您认为我应该使用哪种方法?只要合理,我不关心性能;安全才是最重要的。如果都没有,请建议另一种方法。
P.S.:我可能会在对称算法上使用链接,例如 AES-Twofish-Serpent。
编辑:任何推荐的软件都必须在不限制专有使用的许可中。 LGPL 尽可能严格。这排除了 GPL。
【问题讨论】:
-
我只会使用 GPG。它可以立即使用,并且是某种电子邮件的行业标准(适用于那些关心安全电子邮件的人)。但你可能有一些特殊要求,我不知道。
-
AES-128 实际上比其他 AES 变体更安全。 neworder.box.sk/newsread.php?newsid=22916
-
GPG 在这种情况下真的没用。 @AES-128 更安全,AES 几乎不会被破坏。您链接的页面甚至说这些攻击是完全不切实际的。它还说只有第 9 轮 Rinjdael 有可能被打破。 AES 标准规定最小值为 10 轮,AFAIK 256 位版本有 14 轮。
-
要添加更多到 GPG,它在 GPLv3 下,我根本无法使用。
标签: encryption rsa aes