Block-Cipher

是否可以在大於 4/8 位的 S-Box 中使用位字作為條目並在 SPN 塊密碼中實現類似的安全性/速度?

  • April 5, 2022

Blowfish將一個 32 位字拆分為 4 組 8 位(1 個字節)並將它們用作其 S-Boxes 中的條目。

Kuznyechick將兩個 64 位字拆分為許多半字節(4 位塊),將它們用作其 S-Boxes 中的條目,並將每個修改的半字節與序列中的下一個半字節進行異或。

Kalyna與 Kuznyechik 一樣,但它使用整個字節而不是半字節。

我的問題是:

整個字(32 位或 64 位)是否可以用作 S-Box 集中的條目以及 1 字節或半字節,並且仍然保留一些安全性?

關於這樣創建的密碼的速度,作為條目輸入 S-Box 的整個單詞是否會以 1 個字節或單個半字節的相同速度處理?

S-box 一詞是指一般的查找表還是具體的雙射代換函式,在這個術語中存在歧義。兩種用途我都見過。

如果我們指的是一般查找表,那麼有一些使用 32 位字作為條目的密碼範例。一個很好的例子是MARS,它使用 512 長的 32 位值表。MARS 是 AES 決賽選手之一,因此受到了密碼分析的關注,但據我所知,沒有發現任何重大的安全漏洞。如果我沒記錯的話,MARS 的效率不如 AES。

如果我們指的是雙射替換函式,正如@fgrieu 評論的那樣,記憶體限制意味著大型查找表是不可行的。然而,在最近的中國密碼研究協會分組密碼競賽中,SPRING的參賽作品之一在硬體中實現了一個雙射 32 位函式作為分組密碼的一個組件,該組件被描述為一個 S-box,儘管它沒有被實現為查找表。我不知道對 SPRING 做了多少分析,但我不知道有任何子窮舉攻擊。在性能方面,SPRING 作者聲稱他們的設計特別適合硬體實現並提供有競爭力的時序數據。

反對大 S-box 的一個論點是,它們比典型的 4 位和 8 位 S-box 更難分析。密碼學家要求 S-box 具有很強的非線性特性以抵抗線性和差分密碼分析,並且這些特性可以針對給定的 4 位或 8 位 S-box 進行詳盡的測試(實際上Saarinen基本上已經用盡了所有可能的 4 位 S -boxes 以找到具有最佳屬性的那些)。這種詳盡的測試對於大型 S-box 來說是非常昂貴的,並且要找到一個好的大型 S-box 的計算可能會令人望而卻步。

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