V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
drymonfidelia
V2EX  ›  信息安全

AES-256-GCM 和使用两个不同密钥进行两次 AES-128-GCM 加密,哪个更安全?

  •  
  •   drymonfidelia · 83 天前 · 2656 次点击
    这是一个创建于 83 天前的主题,其中的信息可能已经有所发展或是发生改变。
    17 条回复    2024-10-06 08:25:20 +08:00
    lysShub
        1
    lysShub  
       83 天前   ❤️ 1
    放假闲的
    lhwj1988
        2
    lhwj1988  
       83 天前 via iPhone
    256 就像请一个专业保镖,简单可靠,而两次 128 则像是请两个保镖,但他们彼此可能还不合拍。最终,安全不一定翻倍,麻烦倒可能加倍
    hysjw
        3
    hysjw  
       83 天前
    AES-256-GCM
    815979670
        4
    815979670  
       83 天前   ❤️ 5
    我记得开发过程中有一个 ”铁律“:不要自己 ”发明“ 加密算法,包括但不限于 两次 md5 这种 将已知的加密算法连续使用多次,它们并不会提升安全性,如果需要更高的安全性,请直接使用加密等级更高的算法
    Kauruus
        5
    Kauruus  
       83 天前   ❤️ 16
    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)。
    geelaw
        6
    geelaw  
       83 天前 via iPhone   ❤️ 2
    @Kauruus #5 结论是对的,但论证有些问题。密钥错误的时候以压倒性的( overwhelming )概率报错,但不能排除解出乱七八糟结果而没有报错的情况,遍历所有密钥的时候遇到不报错的错误密钥的概率可能很高。解决方法就是多试几次。

    另外楼主的问题里面,“加密两次”的含义不明确,因为基于 AES 的加密通常不需要隐藏 IV ,外层加密的时候内层 IV 设置为明文还是关联数据,会导致不同的攻击方法。攻击多层加密的一般方法是所谓的 meet in the middle ,尤其对于加密随机数公开的对称加密(常见的基于 AES 的加密,加密随机数就是 IV ,是公开的)。
    drymonfidelia
        7
    drymonfidelia  
    OP
       83 天前 via iPhone
    @lysShub 不在国内,没有放假
    谁放假还研究这种问题
    drymonfidelia
        8
    drymonfidelia  
    OP
       83 天前 via iPhone
    @Kauruus
    @geelaw 如果是其它不带 data authenticity ,无法验证密钥是否正确的模式会影响结论吗?
    drymonfidelia
        9
    drymonfidelia  
    OP
       83 天前 via iPhone
    @geelaw 另外 AES 加密后的数据是没有特征的,GCM 撞到无法验证是否正确的数据是否也会使耗时翻倍?
    crackidz
        10
    crackidz  
       83 天前
    两次 AES-128-GCM 并不能显著增强安全效果啊,而且你成本上比 AES-256-GCM 也高很多
    y1y1
        11
    y1y1  
       83 天前 via iPhone
    多次重复加密不能提升安全性
    wheat0r
        12
    wheat0r  
       83 天前   ❤️ 1
    重走 3DES 路
    Binwalker
        13
    Binwalker  
       83 天前
    又是自己发明加密算法的大聪明
    leon912
        14
    leon912  
       83 天前
    AES-256-GCM 应该是更安全的。
    使用密钥长度短的算法来两次,虽然理论上密钥空间相同,但是不一定有更高的安全性。
    james122333
        15
    james122333  
       83 天前 via Android
    aes-128 就不要使用了
    叠加两种不同高强度的加密是可以增加安全性的
    这个是有应用情境的 例如硬盘加密一次 里面少数档案再用另外方法加密
    hyperbin
        16
    hyperbin  
       83 天前 via Android
    2^128*2<2^256 ,所以 256 更安全
    ntgeralt
        17
    ntgeralt  
       81 天前
    AES-128 在今天仍然被认为是安全的加密算法, 中国的神威. 太湖之光破解一个 uuid 在 70 年内无法完成
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   5472 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 21ms · UTC 08:41 · PVG 16:41 · LAX 00:41 · JFK 03:41
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.