Cbc

使用 OpenSSL EVP 的每字節 CTR 與 CBC 週期

  • February 20, 2017

我在 C 中使用 OpenSSL 的 EVP 呼叫進行了一些基準測試,用於 CBC 和 CTR 加密/解密。

(1) : 我得到了 3.2 Cycles/Byte 的 CBC 加密。(2) : 我得到 0.7 Cycles/Byte 用於 CBC 解密、CTR 加密、CTR 解密。

CBC 解密和 CTR 的 CPB 怎麼可能少 4 倍?(我知道(2)理論上可以並行化……但 OpenSSL 在我的基準測試中執行在單個執行緒上)。那怎麼可能呢?

OpenSSL 利用可流水線化的 AES-NI 指令。注意CTR加解密和CBC解密都可以並行計算,而CBC加密是嚴格順序的(你需要block的結果 $ i $ 為了加密塊 $ i+1 $ )。因此,CBC 加密無法利用管道,並且您獲得 4 倍以上的執行時間。這完全符合預期。

引用自:https://crypto.stackexchange.com/questions/44030