为什么AES加密时间比AES解密时间小?

时间:2018-06-05 20:46:34

标签: c encryption openssl aes

我正在计算在运行linux的Core2Duo系统中使用AES的C实现(也存在汇编实现)执行AES加密/解密(简单AES ECB模式)所花费的时间。

我尝试过rdtsc和clock_gettime。

pseudo code for time calculation
//using rdtsc
start=rdtsc_timer_start();
AES_en[de]crypt
end=rdtsc_timer_end();

Time_taken=end-start

//using clock_gettime
clock_gettime(CLOCK_PROCESS_CPUTIME_ID,&start);
AES_en[de]crypt for 100 blocks
clock_gettime(CLOCK_PROCESS_CPUTIME_ID,&end);

Time_taken=(end.tv_sec-start.tv_sec)*1000000000+ (end.tv_nsec-start.tv_nsec);

令我惊讶的是,我得到的加密时间比解密时间小得多。

使用Core2Duo系统(2.2GHz)中的rdtsc,使用clock_gettime, 61636ticks

AES加密时间 26231nsec

AES解密时间 43243nsec 在Core2Duo系统(2.2GHz)中使用rdtsc使用clock_gettime, 118196ticks

我的经历恰好与此帖encryption time greater than decryption time相反,但与此帖why encryption is faster than decryption相似。

编辑1: 我制作了一个bash脚本来运行上述AES加密/解密100000次 所以基本上我正在计算对100个数据块进行100次加密/解密的时间,然后计算那个时间的中位数。

0 个答案:

没有答案