我正在分析一个认证协议。在该协议中,AES-GCM用于对部分消息进行加密.
关于身份验证协议,我提出了以下意见:
因此,在身份验证协议的不同运行期间唯一发生变化的是IV (但是这些IV是对手知道的)。
我的直觉告诉我,总是加密同样的明文并不是一个好主意。我觉得这可能泄露加密密钥的信息?
所以,我的问题是:
发布于 2020-10-06 12:09:36
AES-GCM的主要义务是永远不要重用(Key,IV)对.
如果您有足够的协议运行记录,加密密钥会被泄露吗?您需要多少个协议运行(使用AES-128-GCM)?
标准的IV大小是96位.如果按顺序使用(如NIST说计数器/LFSR ),则无法在一生中完成此IV空间。但是,一旦出现重复使用,系统失败等情况下,就会暴露机密性,并且总是发送的相同字符串也会受到破坏。
此外,在新的随机IV中使用相同的密钥会导致重放攻击。攻击者可以重新传输和旧的数据。它是有效的,因为使用相同的密钥。缓解措施是在加密的消息上加点时间。在TLS 1.3中,每个记录新的密钥设置更好。
对于单个(密钥,IV)对,总的加密是大多数2^{32} - 2块,或2^{36} - 32字节,或2^{39} - 256位。这里没问题。
一旦密钥重用显示了密钥流,攻击者就需要对AES-CTR执行已知的明文攻击。AES-CTR对KPA攻击是安全的,它有Ind。
正在加密的明文总是相同的。可以假定,该明文为对手所知。
加密中使用的IV提供了概率加密,这样相同的消息就会有不同的密文。这在现代密码学中是至关重要的。而且,AES-CTR也是安全的,即使是Ind也能抵御这种KPA攻击.
https://crypto.stackexchange.com/questions/84391
复制相似问题