Encryption 密码设置基准值不现实

Encryption 密码设置基准值不现实,encryption,aes,benchmarking,Encryption,Aes,Benchmarking,我目前正在评估我的笔记本电脑和工作站上的AES加密和解密速度 执行时 cryptsetup benchmark -c aes --key-size 128 在没有AESNI扩展的情况下,我获得了接近200MB/s的正常结果。 当我加载扩展时 modprobe aesni-intel 执行同样的基准测试,我得到了完全不切实际的结果 例如,解密时为68021MB/s 有什么建议导致这些不切实际的结果的问题是什么 顺便说一句:笔记本电脑上的操作系统是Ubuntu,工作站是Gentoo 卸载的预定义

我目前正在评估我的笔记本电脑和工作站上的AES加密和解密速度

执行时

cryptsetup benchmark -c aes --key-size 128
在没有AESNI扩展的情况下,我获得了接近200MB/s的正常结果。 当我加载扩展时

modprobe aesni-intel
执行同样的基准测试,我得到了完全不切实际的结果

例如,解密时为68021MB/s

有什么建议导致这些不切实际的结果的问题是什么

顺便说一句:笔记本电脑上的操作系统是Ubuntu,工作站是Gentoo

卸载的预定义ubuntu包 从源代码安装 与

make脚本只执行一次测试,结果很好 但是当我通过

make install

我再次得到这些奇怪的结果

不切实际的基准测试结果通常是由错误的(如完全无效的)基准测试方法造成的

从它们的特性来看,基准测试核心是(在可怕的伪代码中)

totalTime=0
totalSize=0
同时(总时间<1000){
(sampleTime,sampleSize)=processSingleSample
totalTime+=采样时间
totalSize+=样本大小
}
速度=总大小/总时间
假设
processSingleSample
的执行时间接近于零——每次迭代都会稳步增加
totalSize
,但在某些迭代中,总时间根本不会增加。最后,
totalTime
是1000,而
totalSize
是任意大的,因此得到的“速度”是任意大的


当每个单独的迭代花费大量时间时,这种基准测试方法仍然有用,但在这种特殊情况下(特别是在启用
aesni
后,它会进一步减少每个单独迭代的时间),它不是正确的方法。

thsi似乎是合理的,但是,在同一个系统和另一个操作系统中,结果如何会存在这样的差异呢?当我安装gentoo时,我的笔记本电脑得到了更现实的结果。他们应该看看OpenSSL。它只是尝试运行10秒左右,然后查看运行了多长时间以及处理了多少次迭代。当然,如果您生成4096位RSA密钥,这是一个问题,但在大多数情况下应该可以。实际上,您可以使用
openssl-speed
测试AES(-NI)性能。
make install
totalTime = 0
totalSize = 0
while ( totalTime < 1000 ) {
    (sampleTime, sampleSize) = processSingleSample
    totalTime += sampleTime
    totalSize += sampleSize
}
speed = totalSize / totalTime