Algorithm-Design

如何為三個(而不是十二個)32 位字建構一個“玩具”版本的 Gimli 排列?

  • July 18, 2019

我有興趣看到三個(而不是十二個)32 位單詞的Gimli 排列的“玩具”版本。我看到 Gimli 的“核心”子排列在三個 32 位字上執行,但我不知道如何使用它來構造一個 96 位無鍵排列。是否可以修改 Gimli 算法來設計這樣的功能?如果是,如何?

根據規範,Gimli 狀態由四列三行 32 位字組成,總共 4 × 3 × 32 = 4 × 96 = 384 位。每個 Gimli 回合包括:

  1. 單獨應用於每個 96 位列的非線性 SP 盒,
  2. 在每第二輪,一個線性混合步驟,只交換列對的第一個單詞,和
  3. 每第四輪,一個常數加法步驟,將第一列的第一個字與一個 32 位輪常數進行異或。

因此,將 Gimli 排列減少到 96 位的最簡單方法可能是簡單地刪除除第一個 96 位列之外的所有列,並完全省略線性混合步驟,因為它是 Gimli 中唯一將列實際混合在一起的部分。這自然會給出一個 96 位排列,除了具有更小的狀態大小之外,在大多數方面應該類似於完整的 Gimli 排列。

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