Sponge

TinyJambu-LWC 的基本原理是什麼?

  • April 1, 2020

我對雙工構造的理解通常是在模式開始時用key初始化,但我注意到TinyJambu(除了key intilization)在每個處理呼叫(keyed permutation)中都使用key,如圖所示。

在此處輸入圖像描述

我的問題: 雙工結構中的鍵控排列比非鍵控排列有什麼特別的優勢嗎?

確實有一個優勢,但只有在您了解初始化階段的工作原理時才有意義。

TinyJambu 一般是為固定密鑰的硬體實現而設計的,密鑰也被燒錄到硬體中。想想一個報告數據的物聯網設備,但有可能被盜,並且您不希望提取密鑰,因為攻擊者擁有所有密文的副本。更糟糕的是,攻擊者可能想要偽造消息。

TinyJambu 使用單鍵排列 $ P $ 基於 NLFSR,這會根據它的使用方式和密鑰的大小進行多次迭代。 $ P_n $ 指迭代的置換 $ n $ 回合。注意圖表 P1 和 P2 不是 $ P_1 $ 和 $ P_2 $ ,而是一個置換步驟,其中 $ n $ 是基於密鑰大小的。

在初始化階段,密鑰不會像典型的基於海綿的密碼那樣通過 XOR 添加到狀態,而是使用置換 $ P_{1024} $ ,這有效地將密鑰混合到狀態中,但允許密鑰僅作為排列的一部分儲存。

在狀態被鍵入後,nonce 一次添加 32 位。首先將域分隔位添加到狀態,然後將其置換為 $ P_{384} $ ,然後一個隨機數詞被異或。此處再次鍵入了排列,因此在初始狀態中混合了額外的鍵。

在 P1 和 P2 中,P1 等於 $ P_{384} $ , P2 是 $ P_{1024} $ 或更大,基於密鑰大小,以 128 輪為增量。nonce 基本上是使用 P1 添加的,就像 AD 一樣。此外,由於 AD 出現在 nonce 之後,它以相同的方式更改狀態,因此不同 AD 的 nonce 重用不會損害安全性。

那麼回到問題上來,在雙工結構中鍵控排列的優勢是什麼?主要是為了保持較小的狀態,但也是為了使密碼輕量級,因為所有密鑰添加和排列都是單個操作的一部分。設計師還說:

當密鑰已經儲存在設備中時,密碼的狀態可能非常小,因為我們可以使用密鑰排列來防止攻擊者離線計算狀態並使用計算的狀態發起狀態衝突攻擊

在只有 128 位的狀態大小的情況下,可以(不太可能)提前計算密鑰初始狀態並破解整個密碼,但是使密鑰置換變得更加不可行。

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