帶有 S 盒的回饋移位寄存器的密碼分析
我剛剛開始學習密碼學,這是練習中的一個問題,我對此感到非常困惑:
這是一個 32 位回饋移位寄存器,用於加密某些消息。寄存器循環移位 4 位。在每次移位之前,S-box 獲取最後 4 位並將 4 位輸出回饋到緊鄰它們的 4 位(如上所示)。該密碼系統由 S-box 的內容加密。問題是:
如果 S-box 不可逆,它包含多少位資訊?如果 S-box 是可逆的,但條目是隨機選擇的,沒有替換怎麼辦?
所以我感到困惑的是:為什麼這個密碼系統“由 S-box 的內容加密”?如果我們知道 S-box(以及必要時移位寄存器的時間),如何解密密文?“ S-box 包含的資訊”是什麼意思?S-box 的可逆性如何影響它包含的資訊位?
我知道 FSR 的初始值稱為“種子”,因此寄存器可以生成一些偽隨機密鑰以用於某些密碼系統。但在這個問題中,種子本身似乎是要加密的明文,而密文是它的繼承者之一。另外,我知道 S-box 用於執行替換,但我從未聽說過有關“它包含的資訊”的內容。
希望我已經清楚地描述了這個問題。提前謝謝你們:)
為什麼這個密碼系統“由 S-box 的內容加密”?
這意味著假定 S-box 的內容是秘密的,並且是密鑰的一部分(除了初始狀態的任何部分不是給定的)。
如果我們知道 S-box,如何解密密文?
我的閱讀是顯示的是流密碼的密鑰流生成器,它通過 XOR 與繪圖之外的明文組合。我們不得不猜測,就像在 Fibonacci LFSR 中一樣,密鑰流是右側的輸出,因此密鑰流的前 32 位是按照一些關於位順序的不為人知的約定的初始狀態,可能與參考資料中的相同斐波那契 LFSR 的同一作者。
為了破譯,合法使用者需要知道初始狀態,並重複提取正確的 4 位,並用這些做三個獨立的事情:
- 將這些與 4 位密文異或以破譯 4 位明文
- 將這些(不是密文或明文)推到 LFSR 的左側,從右側移除它們
- 將這些輸入到 S-box 中,並獲得 4 個 S-box 輸出位,這些輸出位必須與 XOR 組合成上述移位在 LFSR 右側移動的 4 位,下一步將提取。
“S-box 包含的資訊”是什麼意思?
這意味著 S-box 表示的有效密鑰長度,等效於編碼 S-box 所需的熵¹(它完全描述了它實現的輸入到輸出功能)。如果總共有 $ s $ 等機率的可能可區分的 S-box,即 $ \log_2(s) $ .
S-box 的可逆性如何影響它包含的資訊位?
S盒的可逆性意味著沒有兩個不同的組合 $ i $ 輸入位產生相同的組合 $ b $ 輸出位。根據鴿巢原理,它意味著 $ i\le b $ (這裡就是這種情況:我們有 $ i=b=4 $ )。這種可逆性限制了 S-box 的數量,因此 $ s $ 變化。
¹ 如果我們知道密鑰是如何變成 S 盒的(這裡不是這種情況),我們可以計算機率 $ p_j $ 每個可區分的 S 盒,香農熵可以計算為 $$ \displaystyle-\sum_{j\text{ with }p_j>0}p_j,\log_2(p_j) $$