我目前正在使用
openssl speed ALGORITHM
命令探索 AES 对于各种块大小和密钥大小配置的速度。然而,我对结果有点困惑(如下图所示,希望得到解释。我的两个问题是:
对于无法将图像直接包含在问题中表示歉意。 StackOverflow 说我的声誉还不够高。
首先,您可能知道,但对于其他读者来说:这里的“块大小”并不是算法的块大小。 它指的是被加密的消息的大小。AES 的块大小始终为 16 字节。
speed
工具的总体吞吐量是它能够完成的迭代次数乘以块大小。
对于每条消息,
speed
工具都会创建一个新的 AES 会话,这需要设置新的密钥计划。这是一个有点昂贵的操作。
这意味着对于非常小的消息,有许多非常短的迭代,因此大量的时间花费在设置会话上(即开销)。随着消息变长,每次迭代花费的时间更长,但开销中花费的时间更少,因此吞吐量的总字节数增加。
这实际上与系统的安全性没有太大关系。在所有条件相同的情况下,AES 在加密短消息和长消息时同样安全。 (AES 的使用方法不正确,可能会降低短消息或长消息的安全性,例如使用 CTR 会话时间太长,以致计数器重复。但如果使用正确,消息大小应该不会对安全性产生影响。)