我在純C到基準AES-CBC-256和從Openssl的RC2-CBC-128寫了一個簡單的代碼。我的測試循環是這樣的:每一個機器測試我的代碼,我得到了奇怪的結果,也就是說,每一個AES比RC2更快的時間對Openssl的AES和RC2進行基準測試 - 爲什麼AES更快?
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);
}
但蹊蹺的是發生,。可能是什麼問題呢?我使用getrusage
來衡量時間(在我的計時器中)。
AES:
0.010898
0.010471
0.010531
RC2:
0.023261
0.023392
0.023224
此外,檢查[這個答案](http://stackoverflow.com/a/3670607/589259),就在最後一段之前的段落。 – 2014-12-03 21:05:21