Aes

為什麼 Camellia 論文宣稱它比 Rijndael 快,而實際上卻慢得多?

  • March 2, 2022

我正在寫一篇關於山茶花密碼的作業。在NTT 論文中,他們聲稱速度至少與 Rijndael 相當,但是,我四處尋找,發現它實際上要慢得多。我認為這可能是由使用特定 CPU 子集的 AES 引起的,但即使沒有它們,它也比使用它們的 Camellia 更快(什麼是(英特爾)世界中最快的分組密碼?)。

該論文稱,它在硬體和軟體速度上可與 AES 決賽選手相媲美。

如果我們查看低端硬體性能,比如 Z80 智能卡上的周期和資源字節:

Cipher         Keysched  Encrypt  RAM-KS RAM-ENC ROM-Total
----------------------------------------------------------
AES            10318     25494    32     34      980
Camellia       5146      28382    44     62      1698
Twofish        28512     31877    56     34      2808
RC6            138851    34736    90     124     1060
MARS           21742     45588    512    60      5468
Serpent        147972    71924    96     68      3937

AES 是最快的,但僅比 Camellia 快 11% 左右,所有其他決賽選手都較慢。資源使用也很好,我想說他們聲稱的可比性是準確的,如果不是低估的話。

如果我們看一下具有硬體加速功能的現代 CPU,您會看到 AES 快了大約 4 倍。在沒有硬體加速的情況下,Camellia 的速度是 AES 的 2/3,比 Twofish 略快,比 Serpent 還要快。我會說這種說法在這裡仍然成立,只是沒有那麼強烈地反對 AES。

對於 2001 年 Camellia 論文中的 FPGA 硬體,使用 1857 個切片的 AES 時鐘頻率為 1540Mb/s,而使用 9692 個切片的 Camellia 時鐘頻率為 6750Mb/s。比較速率/切片,它們在 20% 以內。在具有更高門數的其他 FPGA 和 AES 上,AES 將具有強大的優勢,Xilinx Virtex2 上的 Amphion CS5240X2 核心僅使用 2200 個切片以 10Gb/s 時鐘頻率……而 Virtex4 上的 AES 時鐘頻率為 17.9Gb/s,使用 18400 個切片,非常非常快。AES 很可能在 Virtex5 上更有效,它僅使用 350 個切片就可以以 4Gb/s 的速度執行,這是 Virtex4 速率/切片的 12 倍。使用 132 個切片的 Virtex5 上的 Camellia 以 85.4Mb/s 的速度執行,速度要慢得多。在 Spartan-3 上,AES 使用 390 個切片可以達到 2640Mb/s,而 Camellia 使用 321 個切片和一半的時鐘速度可以達到 33Mb/s。或者大約是每個時鐘速率的 1/40。

對於 ASIC,在 180nm 工藝上展開(1 個週期),Camellia 使用 355K 門以 25MHz 執行,而 Amphion CS5240TK AES 晶片使用 203K 門以 200MHz 執行,差異很大,AES 以 8 倍的速度獲勝。

最接近的循環 ASIC 頻率/面積匹配是使用 11.87K 門以 1051Mb/s 執行的 172Mhz 21 週期 Camellia 實現,與使用 14.8K 門以 581Mb/s 執行的 Amphion CS5220TK 200MHz 44 週期處理器相比,我稱之為 Camellia 的勝利因為每個門的速度增加了一倍以上。

在提議的 Cryptoraptor 可配置加密處理器中,Camellia 和 Twofish 以 AES 一半的速度執行。

考慮到 Camellia 是一個更複雜的密碼,具有更多輪次,我認為他們對決賽選手“可比”的概括性聲明是準確的,另一方面,AES 獲勝者 Rijndael 確實具有優勢,因為它的簡單性和資源使用率低,基於僅根據輪數,您會期望它在軟體查表中比 Camellia 快 60%,事實就是如此。您通常可以期望 AES 在高端硬體中至少快兩倍,在低端硬體中的速度大致相同。

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