Algorithm-Design
如何為三個(而不是十二個)32 位字建構一個“玩具”版本的 Gimli 排列?
我有興趣看到三個(而不是十二個)32 位單詞的Gimli 排列的“玩具”版本。我看到 Gimli 的“核心”子排列在三個 32 位字上執行,但我不知道如何使用它來構造一個 96 位無鍵排列。是否可以修改 Gimli 算法來設計這樣的功能?如果是,如何?
根據規範,Gimli 狀態由四列三行 32 位字組成,總共 4 × 3 × 32 = 4 × 96 = 384 位。每個 Gimli 回合包括:
- 單獨應用於每個 96 位列的非線性 SP 盒,
- 在每第二輪,一個線性混合步驟,只交換列對的第一個單詞,和
- 每第四輪,一個常數加法步驟,將第一列的第一個字與一個 32 位輪常數進行異或。
因此,將 Gimli 排列減少到 96 位的最簡單方法可能是簡單地刪除除第一個 96 位列之外的所有列,並完全省略線性混合步驟,因為它是 Gimli 中唯一將列實際混合在一起的部分。這自然會給出一個 96 位排列,除了具有更小的狀態大小之外,在大多數方面應該類似於完整的 Gimli 排列。