Intel IPP密碼庫 IPPCP 2018——第三部分 演算法效率測試(含國密演算法)
Part III. 實測效率
本章對Intel IPPCP 2018支援的分組密碼演算法AES、TDES、SM4和雜湊演算法SHA1、SHA224、SHA256、SHA384、SHA512、SHA512-224、SHA512-256、SM3、MD5的效率進行測試。
SM2效率待後續更新。
1. 測試平臺
表3.1 測試平臺資訊
測試平臺1 |
|
CPU |
Intel i7 [email protected],支援AES NI指令 |
OS |
Win7 SP1 64b |
記憶體 |
8G |
備註 |
測試機,安裝Intel IPPCP 2018 |
測試平臺2 |
|
CPU |
Intel i3 [email protected],不支援AES NI指令 |
OS |
WinXP SP3 32b |
記憶體 |
4G |
備註 |
工作機,未安裝IPPCP,利用複製的IPPCP靜態庫編譯 |
測試平臺 |
|
CPU |
Intel i5 [email protected],不支援AES NI指令 |
OS |
Win7 SP1 64b |
記憶體 |
8G |
備註 |
筆記本,安裝Intel IPPCP 2018 |
2. 測試方法
分組密碼演算法的測試:在兩個平臺下均測試分組密碼演算法的CBC加密的效率。因為測試ECB一次性送入大量資料(如1MB)做加密時的效率和反覆送16位元組的加密效率有天壤之別,懷疑內部用多執行緒並行的方式做了優化。
雜湊演算法的測試:直接一次性送入大量資料,如1MB進行測試。
為了精確統計,時間採用RDTSC指令讀取CPU的時鐘週期。
3. 測試結果
表3.2 分組密碼演算法的金鑰擴充套件效能
(單位cps = cycle/setup,數值越小表示金鑰擴充套件速度越快)
金鑰擴充套件效能 |
平臺1的效率 |
平臺2的效率 |
平臺3的效率 |
AES |
205.4 |
1178.3 |
724.4 |
SM4 |
752.9 |
4346.9 |
2511.5 |
TDES |
5391.1 |
8091.8 |
4814.9 |
表3.3 分組密碼演算法的CBC加密效能
(單位mbps = 1000000bit/s,數值越大表示金鑰擴充套件速度越快)
CBC加密效能 |
平臺1的效率 |
平臺2的效率 |
平臺3的效率 |
AES |
7110.9 |
1468.1 |
1287.5 |
SM4 |
508.0 |
98.9 |
119.3 |
TDES |
201.9 |
171.8 |
156.7 |
表3.4 雜湊演算法的效能
(單位mbps = 1000000bit/s,數值越大表示金鑰擴充套件速度越快)
雜湊演算法效能 |
平臺1的效率 |
平臺2的效率 |
平臺3的效率 |
SHA1 |
5239.3 |
4141.9 |
3994.7 |
SHA224 |
2359.9 |
1949.6 |
1708.3 |
SHA256 |
2359.9 |
1945.6 |
1727.2 |
SHA384 |
2381.3 |
1896.8 |
1767.9 |
SHA512 |
2381.4 |
1898.6 |
1728.6 |
SHA512-224 |
2364.5 |
1853.8 |
1756.3 |
SHA512-256 |
2362.6 |
1852.883 |
1768.7 |
SM3 |
1687.2 |
1342.9 |
1240.9 |
md5 |
6043.4 |
4998.9 |
4221.9 |
平均 |
— |
— |
|
SHA224的本質是SHA256,所以二者速度一樣。
SHA384的本質是SHA512,所以二者速度一樣。
SHA512-224、SHA512-256的核心是SHA512,所以三者的速度一樣。
表3.5 SM2演算法的效能
(單位mbps = 次/秒,數值越大表示金鑰擴充套件速度越快)
|
平臺1的效率 |
平臺2的效率 |
平臺3的效率 |
我們的實現 |
SM2簽名 |
3314.1 |
2681.1 |
2819.9 |
185.3 |
SM2驗籤 |
2701.8 |
2170.0 |
2311.6 |
149.1 |
注1:我們的實現是指我們標準C實現的SM2在平臺2下測試的效率。
注2:Intel IPPCP無SM2加解密介面,只有簽名驗籤介面。
4. 效率對比
效率和效能差異對比如下。
- 平臺效能:平臺1主頻比平臺2高5.9%。
- 分組演算法效率:
- AES有近5倍的差異,可能是AES-NI指令所致;
- SM4有5倍的差異則很奇怪,暫時無法解釋;
- TDES的效能提升,與雜湊演算法的效能提升接近。
- 雜湊演算法效率:平臺1比平臺2提升20%—28%,平均為24.6%;平臺2比平臺3提升5%-15%,平均為9.4%。
- SM2效率:平臺1比平臺2提升24%左右;平臺2比平臺3反而降低6%左右。SM2比我們自己標準C實現的效能有了顯著的提升。
5. 結論
從目前的分析的Intel IPP Cryptography效率測試結果看:
- SM4效率不如查大表效率高,在一些平臺上的效率還不如查小表運算。
- SM3效率比目前的實現高17%。
- SM2效率待後續更新。
- AES在支援AES-NI的CPU上執行效率很高,但目前有使用AES-NI指令的開原始碼,短小精煉。
國密演算法在Intel IPP Cryptography上沒有顯著的綜合性能提升,而且使用複雜,程式碼不開源,因此暫不推薦使用。