![]() | 1 lysShub 2024-10-04 00:34:55 +08:00 ![]() 放假闲的 |
2 edak 2024-10-04 00:40:01 +08:00 via iPhone 256 就像请一个专业保镖,简单可靠,而两次 128 则像是请两个保镖,但他们彼此可能还不合拍。最终,安全不一定翻倍,麻烦倒可能加倍 |
3 hysjw 2024-10-04 00:49:54 +08:00 AES-256-GCM |
![]() | 4 815979670 2024-10-04 00:54:18 +08:00 ![]() 我记得开发过程中有一个 ”铁律“:不要自己 ”发明“ 加密算法,包括但不限于 两次 md5 这种 将已知的加密算法连续使用多次,它们并不会提升安全性,如果需要更高的安全性,请直接使用加密等级更高的算法 |
![]() | 5 Kauruus 2024-10-04 01:02:52 +08:00 ![]() AES-256-GCM. GCM 是 AEAD ,在密钥不对的情况下,它会告诉你密钥不对,而不是强行用错的密钥解出一堆错误的数据。 即暴力试 2^128 次就能解开第一个密钥,再试 2^128 次解开第二个密钥。而 AES-256-GCM 需要 2^256 次。 所以两次 AES-128-GCM 并不能提供 256 bits (2^128 * 2^128) 的安全,只能提供 129 bits (2^128 + 2^128)。 |
![]() | 6 geelaw 2024-10-04 01:22:12 +08:00 via iPhone ![]() @Kauruus #5 结论是对的,但论证有些问题。密钥错误的时候以压倒性的( overwhelming )概率报错,但不能排除解出乱七八糟结果而没有报错的情况,遍历所有密钥的时候遇到不报错的错误密钥的概率可能很高。解决方法就是多试几次。 另外楼主的问题里面,“加密两次”的含义不明确,因为基于 AES 的加密通常不需要隐藏 IV ,外层加密的时候内层 IV 设置为明文还是关联数据,会导致不同的攻击方法。攻击多层加密的一般方法是所谓的 meet in the middle ,尤其对于加密随机数公开的对称加密(常见的基于 AES 的加密,加密随机数就是 IV ,是公开的)。 |
7 drymonfidelia OP @lysShub 不在国内,没有放假 谁放假还研究这种问题 |
8 drymonfidelia OP |
9 drymonfidelia OP @geelaw 另外 AES 加密后的数据是没有特征的,GCM 撞到无法验证是否正确的数据是否也会使耗时翻倍? |
10 crackidz 2024-10-04 07:06:50 +08:00 两次 AES-128-GCM 并不能显著增强安全效果啊,而且你成本上比 AES-256-GCM 也高很多 |
![]() | 11 y1y1 2024-10-04 07:46:37 +08:00 via iPhone 多次重复加密不能提升安全性 |
![]() | 12 wheat0r 2024-10-04 08:00:23 +08:00 ![]() 重走 3DES 路 |
13 Binwalker 2024-10-04 09:57:53 +08:00 又是自己发明加密算法的大聪明 |
![]() | 14 leon912 2024-10-04 10:22:10 +08:00 AES-256-GCM 应该是更安全的。 使用密钥长度短的算法来两次,虽然理论上密钥空间相同,但是不一定有更高的安全性。 |
15 james122333 2024-10-04 11:23:48 +08:00 via Android aes-128 就不要使用了 叠加两种不同高强度的加密是可以增加安全性的 这个是有应用情境的 例如硬盘加密一次 里面少数档案再用另外方法加密 |
16 hyperbin 2024-10-04 13:25:13 +08:00 via Android 2^128*2<2^256 ,所以 256 更安全 |
![]() | 17 ntgeralt 2024-10-06 08:25:20 +08:00 AES-128 在今天仍然被认为是安全的加密算法, 中国的神威. 太湖之光破解一个 uuid 在 70 年内无法完成 |