AES加密与自定义(非变化)密钥是否足够安全?

时间:2011-09-05 17:56:06

标签: security encryption aes

好吧,所以我的问题不尽如人意。基本上我想知道,你认为使用AES和自定义(但是静态)密钥加密消息是否足够安全?

我希望它们可以使用相同的密钥进行解密,但同时我不希望任何不知道该密钥的人访问它们。

我读过AES是政府批准的唯一一种加密方法,不确定它的真实与否,但无论如何都没有说明。

3 个答案:

答案 0 :(得分:3)

AES是一种安全分组密码算法(这是加密场景的当前意见),如果使用正确

这意味着,您应该使用安全mode of operation - 而不是ECB模式,并为每条消息使用随机初始化向量(这可以与消息一起发送)。

当然,作为一个对称密码,这意味着你需要有一个秘密(而且是真实的,我猜)的方式来预先协商密钥。

如果您想将密钥嵌入到您无法控制的计算机中的软件中,这不是一个好主意 - 在这种情况下使用带有公钥算法的混合方案,如迈克尔所述。 / p>

答案 1 :(得分:2)

政府批准的标准均由NIST在标准FIPS 140-2中指定。不知道你将加密什么以了解你需要多安全,但要考虑的一件事是实现混合密码系统。您可以使用类似Cryptographic Message Syntax (CMS) [RFC 5625]或甚至可能使用OpenPGP [RFC 4880]格式的内容。

本质上,这些系统会生成随机加密密钥,以便与AES一起使用来加密数据。然后,您将获得来自收件人的公共证书,您将使用RSA等算法来加密随机密钥。然后将两个加密的片段组合成单个消息。然后,收件人使用其私钥和公共证书解密AES密钥,然后可以解密数据。

答案 2 :(得分:2)

AES很好。在CBC模式或CTR模式下使用它。 ECB模式不安全。

静态密钥不安全;一旦攻击者发现它过去,所有未来的数据传输都不再安全。您需要定期更改密钥,理想情况下是每条消息的新密钥。

Michael建议使用RSA /公钥来传输更改密钥,或者使用Diffie Hellman根据需要为每个收件人生成一个新密钥。

您会发现很多这样的东西已经内置到加密库中;你的一般问题不是新问题。