Key-Schedule

關鍵時間表的要求是什麼?

  • November 12, 2018

我設計的第一個分組密碼中,我使用 CSPRNG 來生成輪密鑰。目的是至少有機會在第一次嘗試時創建一個(希望如此!)安全密碼(但請不要在生產中使用它)。

我得到的一個批評是關鍵時間表太昂貴了。這讓我想知道:關鍵時間表的實際要求是什麼?顯然 CSPRNG 是矯枉過正的。我想知道實際的要求是什麼。關鍵時間表的要求是什麼?

我知道:

  • 理想情況下,密鑰的每一位都應該影響每個輪密鑰。
  • 與往常一樣,速度和簡單性是可取的。

理想的屬性

有一些與關鍵計劃設計相關的論文和資源。

從 2012 年的這篇論文中, 我們可以強調以下幾點:

  • 密鑰位應統一使用
  • 所有子項都應該“同樣好”
  • 從任何已知的密鑰位中找到任何剩餘的密鑰位是“困難的”。
  • 難以反轉
  • 如果可能,每個關鍵位都應該以不同的方式影響幾乎每一輪
  • 沒有等效鍵
  • 無碰撞(標準雜湊函式屬性)
  • 無死角
  • 每個密鑰位對子密鑰的影響同樣強大。
  • 實施成本低
  • 所有子密鑰位和主密鑰位之間的最小互資訊

然後,該論文基本上總結了以下內容:

首先,密鑰調度在“輪”級別或整個密鑰調度中應該沒有比特洩漏。前者意味著他們只考慮不同輪次子密鑰之間或某些輪次子密鑰和主密鑰之間的洩漏。當遞歸密鑰調度是可逆的或當子密鑰是由主密鑰直接轉換時,上述洩漏是無法避免的。後者意味著無論獲得什麼關鍵知識,都不能輕易推導出子密鑰位

然後,他們繼續定義與密鑰時間表的密碼分析相關的更深入的術語和技術。

這篇論文似乎建立在前一篇論文的基礎上,但我無法訪問它。$$ 1 $$

本文的結論大致相同:

  • 最大化子密鑰中的雪崩並避免線性密鑰調度。

    • 儘管作者指出:“作為一個懸而未決的問題,我們注意到 DES 密鑰調度是線性的,並且想知道為什麼它似乎能夠抵抗相關密鑰攻擊”
  • 如果可能,每個關鍵位都應該影響幾乎每一輪,但方式不完全相同

  • 密鑰計劃應設計為抵抗差分攻擊。

關鍵時間表分類

最後一篇論文有一些不同的材料,也很有趣。他們將算法的關鍵調度分為兩種類型,以及這些類型的子類。類型由輪密鑰位的知識是否揭示任何其他輪密鑰位或主密鑰的知識來定義。

  • 如果某些輪密鑰資訊已知,則類型 1 密鑰調度允許恢復其他輪密鑰/主密鑰資訊
  • 如果某些輪密鑰資訊已知,則類型 2 密鑰調度不允許恢復其他輪密鑰/主密鑰資訊

他們進一步定義了子類型 A、B 和 C。

  • 第 1 類 A 型密碼 (1A) 是在每一輪中使用主密鑰的所有位的密碼,因此輪子密鑰的知識產生主密鑰和所有其他輪子密鑰的所有位。密碼 NDS$$ 3 $$就是這樣一個例子。
  • 1B 密碼是一個輪子密鑰的知識給出了一些,但不是所有的主密鑰或其他輪子密鑰的位。DES 就是一個例子。
  • 1C 密碼是通過一些簡單的算術運算或函式反轉後,對輪子密鑰的了解產生其他輪子密鑰或主密鑰的位。更安全的 K-64$$ 6 $$是一個例子。
  • 2A 密碼是不是主密鑰的所有位都用於創建每個輪子密鑰的密碼。在這些密碼中,某些主密鑰保證產生至少兩個相同的輪密鑰。諸如 CAST-128 之類的密碼$$ 7 $$是一個例子。換句話說,輪子密鑰的熵沒有被最大化。
  • 2B 密碼是一種所有主密鑰位都用於確定所有輪子密鑰的密碼,從而使子密鑰的熵最大化。一個例子是河豚$$ 8 $$.
  • 最安全的時間表分類是 2C。但是,這可能會導致無法管理的密碼主密鑰大得難以管理,其安全性無法與密鑰長度天真地建議的內容相匹配。此外,對密碼材料的出口限制通常會限制密鑰的大小。出於這些原因,我們所能期望的最好的結果就是盡可能地模仿 2C 的時間表,使用下一個最強的分類 2B。

嵌入式設備的效率

雖然建議將單向功能作為關鍵計劃的一部分,但如果以某種方式使用它們,則存在不利之處。如果在導出輪密鑰時僅使用不可逆函式,則解密將要求算法在開始時生成其所有密鑰材料。在通用電腦上,這並不是一個真正的問題,但是,在具有有限門數/表面積的嵌入式設備上,過多的儲存可能會成為問題。儲存需求將隨著每輪的輪密鑰大小而增加。這將導致更高的單位成本。

我知道的最佳解決方案是將密鑰計劃分為兩部分,一個可逆部分和一個不可逆部分。可逆部分用於以對動態處理友好的方式生成圓密鑰材料,而不可逆部分則在使用圓密鑰之前應用。這保持了兩全其美,因為嵌入式設備可以使用即時密鑰計劃進行解密,並且密碼可以具有不可逆密鑰計劃提供的保護。這可能是一個小的變化,它將提高密碼對智能卡等的適用性。

$$ 1 $$添加了免費版本。

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