* 澄清:我的问题涉及在现实世界中已经同意密钥(读取密码短语)的双方之间建立“安全”通信通道。只有使用RSA才能允许MITM攻击(如果我没有误解),所以我在考虑在将AES发送给各方之前用AES(双方同意的密钥)对公钥进行加密*在运输过程中保护公共RSA密钥
I'目前正试图建立两个应用程序,与彼此进行会谈。为了保护交换的消息,我正在考虑使用RSA,其中每个应用程序都有自己的一组密钥。
在两个应用程序之间开始通信之前,他们需要交换密钥。这应该不是问题,但我想在使用AES加密公钥之前通过互联网发送它们。
我知道public(公钥)这个词是什么意思,但我在想这样会发现正确的应用程序/计算机获得了密钥而没有其他人。
所以我想交换密钥并保护它们免受MITM攻击。
如果有人可以提供更好的建议(我正在使用LibCrypto库btw),我全部都是耳朵。
谢谢。
问候 /托马斯Gustavsson的
如果你已经有了一个预先建立的对称密钥,你为什么要进行非对称加密?您需要使用某种方式创建AES会话密钥,最好是不易受MITM攻击影响的密钥,并且不会使主密钥暴露于危险之中。但我认为这是错误的论坛,请尝试crypto.stackexchange.com – 2011-12-29 14:30:33
哦,并且密码不是关键。它可以被转换成*键,例如使用像PBKDF2这样的基于密码的密钥派生函数,但它不一样。例如,使用密码作为密钥可能会导致相关的密钥攻击。 – 2012-01-01 23:18:01
OK,查看它,可能密码仍然不能用作相关的密钥攻击,但是你肯定会将密码限制为密钥大小,这意味着你也限制了密钥空间(密钥的数量例如在蛮力攻击中搜索)。 – 2012-01-03 20:11:03