哪個最好:RC5、RC6、CAST-128、LOKI97 或 MARS?
考慮到速度和安全性,哪個最好:RC5、RC6、CAST-128、LOKI97 還是 MARS?
記分牌是什麼樣子的?
(我問的是抽像數學概念,與任何程式碼實現無關。但是,聽到程式碼實現會很有趣。)
CAST-128具有 64 位塊大小。這樣的塊大小已經過時了。不要使用這樣的塊大小(因此不要使用 CAST-128),除非你必須這樣做。
LOKI97已損壞,請參閱 Lars R. Knudsen 和 Vincent Rijmen在 LOKI97 中的弱點。不要使用它。
帶有最初建議參數(64 位塊大小,128 位密鑰,12 輪)的 RC5 已損壞,請參閱 Alex Biryukov 和 Eyal Kushilevitz改進的 RC5 密碼分析。儘管該論文建議了 128 位塊版本的參數,但我會假裝 RC5 已被RC6淘汰。
這使得MARS和RC6成為競爭對手。這兩種算法都沒有接近破碎的 AFAIK。NIST 的高級加密標準 (AES) 開發報告對它們進行了討論和比較。RC6 被發現速度更快,在硬體方面尤其如此。RC6 在我看來更簡單,但它有一個缺點:它使用可變旋轉,這在一些缺少桶形移位器的低端 CPU (包括現代 CPU,例如 ARM Cortex M0 的一些變體)上很難實現快速和恆定時間)。
如果我迫切需要一個分組密碼(排除像ChaCha這樣更簡單的流密碼)並且由於某種原因面臨問題中的選擇(因此不能使用AES/Rijndael),我可能會使用MARS,除非速度是最重要的並且我肯定不會使用缺少桶形移位器的 CPU(在這種情況下,我會考慮RC6)
另外:如果我在問題中堅持使用 64 位分組密碼,我可能會使用CAST-128:它是完整的 AFAIK,甚至得到了ISO/IEC 18033-3:2010的認可,2020 年審查。