好吧,所以我的问题不尽如人意。基本上我想知道,你认为使用AES和自定义(但是静态)密钥加密消息是否足够安全?
我希望它们可以使用相同的密钥进行解密,但同时我不希望任何不知道该密钥的人访问它们。
我读过AES是政府批准的唯一一种加密方法,不确定它的真实与否,但无论如何都没有说明。
答案 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根据需要为每个收件人生成一个新密钥。
您会发现很多这样的东西已经内置到加密库中;你的一般问题不是新问题。