为什么较小的块大小会导致 aes 加密的吞吐量较慢

问题描述 投票:0回答:1

我目前正在使用

openssl speed ALGORITHM
命令探索 AES 对于各种块大小和密钥大小配置的速度。然而,我对结果有点困惑(如下图所示,希望得到解释。我的两个问题是:

  1. 为什么较小的块大小(尤其是 16 字节的块大小)的性能如此慢?
  2. 块大小如何影响安全性,16 字节的块大小会提高还是降低安全性?

Output of openssl speed for AES

对于无法将图像直接包含在问题中表示歉意。 StackOverflow 说我的声誉还不够高。

openssl aes
1个回答
0
投票

首先,您可能知道,但对于其他读者来说:这里的“块大小”并不是算法的块大小。 它指的是被加密的消息的大小。AES 的块大小始终为 16 字节。

speed
工具的总体吞吐量是它能够完成的迭代次数乘以块大小。

对于每条消息,

speed
工具都会创建一个新的 AES 会话,这需要设置新的密钥计划。这是一个有点昂贵的操作。

这意味着对于非常小的消息,有许多非常短的迭代,因此大量的时间花费在设置会话上(即开销)。随着消息变长,每次迭代花费的时间更长,但开销中花费的时间更少,因此吞吐量的总字节数增加。

这实际上与系统的安全性没有太大关系。在所有条件相同的情况下,AES 在加密短消息和长消息时同样安全。 (AES 的使用方法不正确,可能会降低短消息或长消息的安全性,例如使用 CTR 会话时间太长,以致计数器重复。但如果使用正确,消息大小应该不会对安全性产生影响。)

© www.soinside.com 2019 - 2024. All rights reserved.