Aes

加密算法比較,AES 與 Camellia

  • November 7, 2017

應該使用哪些參數來比較 AES 與 Camellia?他們的執行時間?加密數據輸出的大小?

AESCamellia都是具有 128 位塊大小和三種不同密鑰大小的塊密碼:128、192 和 256 位。

在這兩種情況下,當使用更大的密鑰大小(如 192 或 256)時,密碼將執行額外的輪次。AES 將分別對 128 位密鑰、192 和 256 輪執行 10、12 和 14 輪,而 Camellia 對 128 位密鑰執行 18 輪,對 192 和 256 位密鑰執行 24 輪。

到目前為止一切順利,所有這些資訊都可以在維基百科上找到。

所以,你想比較兩者,但你想使用什麼樣的指標?您最看重

關鍵績效指標是什麼?是原始速度嗎?是針對差分功率分析的安全性嗎?是計算的並行化嗎?它是實現中的程式碼行數嗎?它是最大的程式碼佔用空間嗎?是抵抗代數攻擊嗎?

我會假設您真正想要做的是比較兩種密碼的“實現”,而不是底層算法(當然有論文對兩種密碼都這樣做)。

為了比較實現,您有兩種選擇:

  • 您要麼採用參考實現,而無需太多優化,然後進行比較
  • 或者您將那裡的“最佳”實現進行比較。

正如 Maarten 在評論中所說,AES 是當今最常用的分組密碼,目前最好的實現都依賴於幾乎所有處理器中都有硬體加速器這一事實。但是,似乎也可以使用與 AES 相同的一些技巧來加速 Camellia

$$ 1 $$. 我建議你看看這篇論文,因為作者正在比較不同的分組密碼,包括 AES 和 Camellia,並試圖優化它們的原始速度。根據其結果,即使使用 AES-NI 技巧,Camellia 仍然比 AES 慢 4 倍。 現在最後一段只考慮了實現的“原始速度”,但是根據它試圖解決的威脅模型場景,一個實現也可以針對某些類型的攻擊進行強化。例如,

$$ 2 $$比標準 DES 更快(並且是恆定時間),但可能有其他強化方法不一定會提高性能,例如針對故障攻擊的“ RSA 感染對策” ,這會增加成本,或者“屏蔽” 用於 RSA 實現 旨在 抵抗DPA 攻擊. 為了在實現的“功能”之間進行此類比較,您可能需要查看程式碼並檢查正在執行的操作。(或者有一個實現運動的“功能”列表。)

最後,您還可以比較兩種密碼的使用情況,或者專利,或者關於兩者的論文數量等。

請注意,如果您關心的是速度,您也可以在那裡尋找現有的基準,例如Crypto++完成的基準,或者在上述論文中找到的基準。


參考

$$ 1 $$基維林納,尤西。“分組密碼:x86-64 架構上的快速實現。 ”碩士論文,奧盧大學,2013 年。

$$ 2 $$比哈姆,伊萊。“在軟體中快速實現新的 DES。 ”在 FSE,第一卷。1267,第 260-272 頁。1997 年。

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