Modular-Arithmetic
混合運算的代數攻擊(mod 2 和 mod 256)
如果密碼具有混合操作,例如 $ \oplus $ (添加模式 $ 2 $ ) 和加法模 $ 2^8 $ . 我們將如何以數學方式表達它們?提前致謝!
當然有,但由於進位,會有數據相關的“非線性”項。如果我這樣做 2 位,你就會明白。它變得笨拙,但您可以輕鬆編寫程式碼來實現更長的位長。下面的列表是一個以整數表示的 XOR 表:
$$ \begin{array}{c|ccc} \oplus & 0 & 1 & 2 & 3 \ \hline 0 & 0 & 1 & 2 & 3 \ 1 & 1 & \color{red}0 & 3 & \color{red}2 \ 2 & 2 & 3 & 0 & 1 \ 3 & 3 & \color{red}2 & 1 & \color{red}0 \ \end{array} $$ 而下表是添加模式 4:
$$ \begin{array}{c|ccc}
- & 0 & 1 & 2 & 3 \ \hline 0 & 0 & 1 & 2 & 3 \ 1 & 1 & \color{green}2 & 3 & \color{green}0 \ 2 & 2 & 3 & 0 & 1 \ 3 & 3 & \color{green}0 & 1 & \color{green}2 \ \end{array} $$ 請注意,恰好有 4 個位置(通常 $ n $ 會有位 $ 2^{n-1}+2^{n-2}+\cdots $ 這樣的位置),其中兩個操作不同,所以相對更差 $ n $ 增加)兩者不同的地方。我們可以用整數屬性來表達這些位置嗎?
答案是:讓 $ x,y \in \mathbb{Z}_4, $ 被認為是一個附加組。然後異或運算 $ x,y $ 可以定義為
$$ x \oplus y = \begin{cases} x + y + 2 ~(\text{mod } 4) & \text{if } x \equiv 1 ~(\text{mod } 2) \text{ and } y \equiv 1 ~(\text{mod } 2) \ x + y ~(\text{mod } 4) & \text{otherwise}. \end{cases} $$ 完整的答案與最高權力有關 $ 2 $ 將兩個數字除以 $ \mathbb{Z}_{2^n}, $ 即子環和理想結構。