88字节的AES加密输出

本文关键字:加密 输出 AES 字节 | 更新日期: 2023-09-27 18:12:56

是否有可能从AES加密算法中获得88byte输出?如果是,那么如何(理论上)输入字节大小是多少?

88字节的AES加密输出

AES永远不会输出这个大小。但是密码通常用填充方案进行修改,以添加额外的特征。有些方案可以产生与输入长度完全相同的输出。CTR模式就是一个例子。它不包含在。net中,但可以作为库使用。

。. NET没有一种不增加输入大小的内建操作模式。

简答:在实践中很少使用的某种操作模式下,它是可以发生的。但通常人们不会遇到这种情况,并且密文是块大小的倍数(16字节= 128位)。

长答:分组密码本身将固定大小的明文块映射到相同大小的密文块。以这种方式使用分组密码存在各种问题,因此密码学家已经开发出安全使用分组密码的操作模式。实践中最常见的模式是CBC模式,但将来我们可能会更频繁地看到GCM模式。

在定义模式时,它们通常需要一个填充方案,该方案在应用它们之前使输入成为块大小的倍数(AES为16字节)。最常见的填充是pkcs# 7(见RFC2315)。第10.3节描述了如何填充。

2010年10月,NIST批准了一种不同的操作模式,可以防止消息扩展,从而允许输出而不是块大小的倍数。这种操作方式被称为密文窃取。

我是一名正在恢复的密码学家,现在是一名网络安全人员,从未见过在实践中使用这种方法。所以如果你得到一个88字节的密文,那么你可能发现有人在使用它,或者你可能没有得到完整的密文。我打赌是后者。

最后,如果您使用密文窃取操作模式,则输入大小将恰好为88字节。