对特定文件的 OpenSSL 性能测试

对特定文件的 OpenSSL 性能测试

我是密码学领域的新手。我正在尝试使用 OpenSSL 检查各种算法的性能。

在互联网上我找到了这个命令:

openssl 速度 aes-128-cbc des md5

这给了我这个结果:

type             16 bytes     64 bytes    256 bytes   1024 bytes   8192 bytes  16384 bytes
md5             141163.54k   328300.37k   585034.84k   725997.91k   781058.05k   784356.69k
des cbc          87455.53k    88825.00k    90427.39k    90697.05k    89822.55k    89953.62k
des ede3         34051.47k    34361.83k    34424.58k    34591.40k    34493.78k    34635.78k
aes-128 cbc     274253.87k   296425.66k   298769.49k   304985.43k   301938.01k   302945.62k

所以问题是: 如果我想用特定的算法、特定的文件来测量时间...我该怎么做?

例如,我有一个picture.jpg使用 AES-128 加密的文件。我想知道 PC 计算这个加密过程需要多少次。

答案1

对于特定尺寸,这可以通过-bytes size简单地使用参数来实现:

$ openssl speed -bytes $(ls -l picture.jpg | cut -d " " -f5) aes-128-cbc des md5
Doing md5 for 3s on 1023 size blocks: 1736134 md5's in 2.99s
Doing des cbc for 3s on 1023 size blocks: 224215 des cbc's in 3.00s
Doing des ede3 for 3s on 1023 size blocks: 84333 des ede3's in 3.00s
Doing aes-128 cbc for 3s on 1023 size blocks: 438308 aes-128 cbc's in 3.00s
...

但是,如果您想了解每个操作所需的时间,则需要进行计算:aes-128 cbc 在 3.00 秒内执行了 438308 次,因此每个操作花费 0.0068445 毫秒或 6844.5 纳秒。

对于特定文件如果不编写使用 openssl 的包装器,则无法直接实现这一点。但可以看看speed.c 源代码如果你确实需要的话,可以稍微调整一下。或者只需重写一个小程序即可。

相关内容