gpt4 book ai didi

c - 从 Openssl 对 AES 和 RC2 进行基准测试——为什么 AES 更快?

转载 作者:太空宇宙 更新时间:2023-11-04 07:12:29 25 4
gpt4 key购买 nike

我用纯 C 编写了一个简单的代码来对 Openssl 的 AES-CBC-256 和 RC2-CBC-128 进行基准测试。我的测试循环如下所示:

for(i=0; i<tests; i++)
{
timer_start();
for(j=0; j<its; j++)
{
RC2_cbc_encrypt(input, enc_out, length, &key, iv_enc, RC2_ENCRYPT);
}
stop = timer_stop();
printf("%f\n",(stop / its) * 1000);
}

for(i=0; i<tests; i++)
{
timer_start();
for(j=0; j<its; j++)
{
AES_cbc_encrypt(input, enc_out, length, &enc_key, iv_enc, AES_ENCRYPT);
}
stop = timer_stop();
printf("%f\n",(stop / its) * 1000);
}

但是出了点问题,在我测试代码的每台机器上我都得到了奇怪的结果,也就是说,每次 AES 都比 RC2 快。可能是什么问题呢?我使用 getrusage 来测量时间(在我的计时器中)。

AES:
0.010898
0.010471
0.010531

RC2:
0.023261
0.023392
0.023224

最佳答案

没有错。 AES 更快,因为:

  • 从计算的角度来看,RC2 相当复杂。

  • AES 已在软件中进行了大量优化,因为它的使用频率很高。

  • 一些 CPU 具有 AES 硬件加速(例如 AES-NI 用于 x86)。

关于c - 从 Openssl 对 AES 和 RC2 进行基准测试——为什么 AES 更快?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27281451/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com