Classical-Cipher

scytale的數學定義

  • April 5, 2022

大多數密碼學家都知道scytale。就是將一條皮條繞在一根桿上,然後在上面寫下文字的密碼。對於加密,您將其從棒上滾下來,而對於解密,您將其滾回棒上。它可以像這樣視覺化(來自Wikipedia):

  |   |   |   |   |   |  |
  | I | a | m | h | u |  |
__| r | t | v | e | r |__|
|  | y | b | a | d | l |
|  | y | h | e | l | p |
|  |   |   |   |   |   |

現在我想知道如何制定數學上正確的公式。我嘗試了一些東西,但我找不到函式(例如 Caesar: $ c_i = m_i + k \mod 26 $ ),正確地表示了密碼。有人能幫我嗎?

現代術語是交錯,即逐行讀取,逐列讀取。

讓明文成為 $ [x(0),\ldots,x(mn-1)] $ 在哪裡 $ m $ 是行數和 $ n $ 是列數,如果需要,使用填充以獲得作為形式的矩形數的明文長度 $ mn $ .

指數 $ k $ 為了 $ x(k) $ 可以分解為 $ k=im+j $ 和 $ 0\leq i \leq n-1 $ 和 $ 0\leq j \leq n-1. $ 注意 $ i=k\pmod n $ 和 $ j=k\pmod m. $

那麼密文就是 $ [y(0),\ldots,y(mn-1)] $ 在哪裡 $ y(k)=y(im+j)=x(jn+i). $

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