Block-Cipher

讀取給定排列密碼的正確方法?

  • June 1, 2014

在我正在閱讀的一些文獻中——他們解釋了排列密碼——他們有兩個例子,它們加密了一小塊文本。但它們似乎相互矛盾:

第一個例子:

排列: $ {1\text{ }2\text{ }3 \choose 3\text{ }1\text{ }2} $ , 明文: VEN, 密文 =NVE

第二個例子:

排列: $ {1\text{ }2\text{ }3 \choose 2\text{ }3\text{ }1} $ , 明文: TEN, 密文 =NTE

我錯過了什麼嗎?第二個例子對我來說很有意義,但不是第一個。為什麼第一個範例的密文不是ENV

您問題中的排列以Cauchy 的兩行表示法給出,其中上面的行給出了排列函式的輸入索引,下面的行給出了得到的排列索引。

例如,定義

$$ \sigma = {1\ 2\ 3 \choose 3\ 1\ 2} $$意思是一樣的$$ \sigma(1) = 3,\quad \sigma(2) = 1,\quad \sigma(3) = 2. $$ 因此,如果我們應用這個排列 $ \sigma $ 到一個元組 $ x = (x_1, x_2, x_3) $ ,我們得到置換元組$$ x_\sigma = \sigma \cdot x = (x_{\sigma(1)}, x_{\sigma(2)}, x_{\sigma(3)}) = (x_3, x_1, x_2). $$ 特別是,如果 $ x = (x_1, x_2, x_3) = (\text{V}, \text{E}, \text{N}) $ , 然後 $ x_\sigma = (x_3, x_1, x_2) = (\text{N}, \text{V}, \text{E}) $ .

如果您只是替換索引,這很容易視覺化 $ 1 $ , $ 2 $ 和 $ 3 $ 在元素排列的定義中 $ x_1 = \text{V} $ , $ x_2 = \text{E} $ 和 $ x_3 = \text{N} $ 被置換,給予

$$ {x_1\ x_2\ x_3 \choose x_3\ x_1\ x_2} = {\text{V E N} \choose \text{N V E} }. $$


您問題中的第二個範例似乎不正確:鑑於排列

$$ \sigma’ = {1\ 2\ 3 \choose 2\ 3\ 1} $$和輸入 $ x’ = (x’1, x’2, x’3) = (\text{T}, \text{E}, \text{N}) $ ,輸出應該是$$ x’{\sigma’} = \sigma’ \cdot x’ = (x’{\sigma’(1)}, x’{\sigma’(2)}, x’_{\sigma’(3)}) = (x’_2, x’_3, x’_1) = (\text{E}, \text{N}, \text{T}), $$不是 $ (x’_3, x’_1, x’_2) = (\text{N}, \text{T}, \text{E}) $ . 但是,如果我們替換排列,那將是正確的 $ \sigma’ $ 與其逆$$ \sigma’^{-1} = {2\ 3\ 1 \choose 1\ 2\ 3} = {1\ 2\ 3 \choose 3\ 1\ 2} $$(碰巧,它等於第一個排列 $ \sigma $ ) 通過交換行和(可選)重新排序的兩行定義中的列獲得 $ \sigma’ $ .

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