CBC加密算法C语言,c – AES / CBC加密和解密之间的速度差异?

从理论上讲,我想知道在下列条件下AES / CBC解密与AES / CBC加密相比要慢多少:

> 32字节(256位)的加密密钥;

> 16字节(128位)的块大小.

我问的原因是我想知道我所拥有的实现的解密速度是否异常缓慢.我已经对不同大小的随机内存块做了一些测试.结果如下:

64B:

64KB:

10MB – 520MB:

所有数据都存储在我系统的内部存储器中.应用程序生成要自行加密的数据.在测试PC上禁用虚拟内存,这样就不会有任何I / O调用.

在分析表时,加密和解密之间的区别是否意味着我的实现异常缓慢?我做错了什么吗?

更新:

>此测试在另一台PC上执行;

>该测试使用随机数据执行;

> Crypto用于AES / CBC加密和解密.

解密实现如下:

CryptoPP::AES::Decryption aesDecryption(aesKey, ENCRYPTION_KEY_SIZE_AES);

CryptoPP::CBC_Mode_ExternalCipher::Decryption cbcDecryption(aesDecryption, aesIv);

CryptoPP::ArraySink * decSink = new CryptoPP::ArraySink(data, dataSizeMax);

CryptoPP::StreamTransformationFilter stfDecryptor(cbcDecryption, decSink);

stfDecryptor.Put(reinterpret_cast(ciphertext), cipherSize);

stfDecryptor.MessageEnd();

*dataOutputSize = decSink->TotalPutLength();

更新2:

>添加了64字节块的结果