AES-GCM

AES-GCM通过在CTR模式基础上添加tag提供额外的安全性,防止选择明文攻击。然而,重复使用nonce可能导致H的泄露,从而允许执行Forbidden Attack来伪造tag。在UTCTF 2020 Galois挑战中,尽管预期攻击是针对AES-GCM的Forbidden Attack,但实际上可以利用CTR模式的弱点求解。该博客讨论了攻击的原理和复现过程,并提到了其他可能的解题方法。
摘要由CSDN通过智能技术生成

AES-GCM

badmonkey的博客
AES-GCM是基于AES-CTR模式改编的,不同于CTR的是GCM在对明文进行加密的时候还会产生tag(类似签名的东西),可以有效的抵御选择明文攻击,因为GCM首先会看tag是否合法,然后才决定是否调用decrypt oracle 进行解密。加密的流程在这篇paper讲的很清楚,我把其中的一部分拿了出来(只有两个明文块的情况)

加密流程

具体的符号定义如下:

符号定义

其中: H = E n c k ( 0 128 ) H=Enc_k(0^{128}) H=Enck(0128)

经过多次的 G m u l H ( X ) Gmul_H(X) GmulH(X),最后将结果和处理后的密文C和填充的信息A异或得到T即tag。需要注意的是nonce是不能重复使用的,否则会造成H的泄露,进而伪造tag,接着应该就可以利用oracle的点了(口胡,原文只是说了TLS相关的东西)。

Forbidden Attack

利用重复使用的nonce所生成的T和C,求解H,伪造新的tag。

每次的X都是根据上一次的X计算得到的,具体的关系如下

递归式

最终的X可以表示为:
X m + n = A 1 H m + n + A 2 m + n − 1 + ⋯ + A m H n + 1 + C 1 H n + C 2 H n − 1 + ⋯ + C n H X_{m+n}=A_1H^{m+n}+A_2^{m+n-1}+ \cdots +A_mH^{n+1}+C_1H^n+C_2H^{n-1}+\cdots +C_nH Xm+n=A1Hm+n+A2m+n1++AmHn+1+C1H</

  • 1
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值