我需要对我的项目使用加密来存储和保护敏感信息,包括银行帐户,排序代码以及与第三方数据相关的银行。我目前正在考虑在CFB模式下使用3DES,但是我不确定这是否是最好的选择,还有其他替代选择。

我知道标题对问题的含义并不清楚。 ,但我想不出更好的方法。

#1 楼

选择AES。

AES是DES的后继产品,它是美国联邦组织的标准对称加密算法。 AES使用128、192或256位的密钥,尽管如今128位密钥提供了足够的强度。它使用128位块,并且在软件和硬件实现上均十分有效。它是通过几年来由数百名密码学家参加的公开比赛选择的。

DES是70年代以前的“数据加密标准”。它的密钥大小太短,无法获得适当的安全性。 56个有效位可以被强行使用,并且已经在十多年前完成了。 DES使用64位块,当使用同一密钥加密数GB的数据时,这会带来一些潜在的问题。

3DES是通过将具有不同密钥的DES的三个实例链接在一起来重用DES实现的一种方法。人们认为3DES仍然是安全的,因为它需要2112次操作,这在可预见的技术中是无法实现的。 3DES非常慢,特别是在软件实现中,因为DES是为提高硬件性能而设计的。

资源:http://www.differencebetween.net/technology/difference-between-aes-and-3des
http://www.icommcorp.com/downloads/Comparison%20AES%20vs%203DES.pdf(离线,仍在Web存档中)

评论


AES和其他NIST标准在软件方面不是很好

–安德烈·波塔洛夫(Andrei Botalov)
13年1月2日在20:17



@AndreyBotalov:对于AES而言,这是一个颇有偏见的观点。在进行AES选择过程时(我在那里!),经过大量分析,得出15名候选人中的13名看上去“坚如磐石”的结果,进行了许多性能测量,Rijndael是其中的一员。 “快速”密码。实际上,它是在许多体系结构中速度最快的一种,并且在选择时非常有用。 RC6在PC上速度更快,但PC是最后一个出现真正的加密性能问题的平台。 AES在智能卡和小型ARM / Mips上击败了RC6。

–托马斯·波宁(Thomas Pornin)
13年1月3日,21:12



另外,我们现在在现代处理器中具有AES扩展,可以大大提高密码的速度。

–多项式
13年10月10日在9:16

#2 楼

3DES和AES都不可被当前技术(以及可预见的技术)打破。但是,如果使用单个密钥加密超过32 GB的数据,则3DES可能会遇到一些安全问题,而AES的限制会更高(这是由于块大小; 3DES使用64位块,这会导致在处理264/2个块(即32 GB)之后可能会导致麻烦; AES使用128位块,限制为2128/2个块(即268个字节),也称为“大量数据”。) >
由于AES的速度也明显快于3DES,因此几乎没有理由将3DES用于新设计。

评论


谢谢,我今天学了一个新的技术术语。 “数据很多”

–user11869
2012年12月30日0:12在

为“很多数据” +1。根据WolframAlpha,2 ^ 68字节的数据大约是“全人类知识”的信息内容的20倍。

–里德
2012-12-30在0:42



@AndreyBotalov:它是2 ^ 64个块,每个块是16个字节(2 ^ 4),因此是2 ^ 68个字节。

–托马斯·波宁(Thomas Pornin)
2013年1月2日21:28

有人可以解释在2 ^(64/2)之后使用64位块大小会遇到什么样的“麻烦”吗?

–法哈德·优素福(Fahad Yousuf)
2014年5月4日在7:44

@FahadYousuf由于生日问题,一旦加密sqrt(2 ^ n)块,您就有50%的机会发生碰撞

–科尔·约翰逊(Cole Johnson)
2015年10月15日19:33