Maojui

古典密碼學 II | Classical Cipehr II

2017-03-08

Square Substitute Cipher

Columnar Transposition Cipher :

( ex :plain = ‘defend the east wall of the castle’ , key = ‘GERMAN’ )

  1. 將明文順著 Key : G-E-R-M-A-N 排放之後
  2. 將 Key(和對應的列) 依照字母順序重新排序後
  3. 逐列輸出密文 ( cipher = ‘nalcxehwttdttfseeleedsoaxfeahl’ )
    1
    2
    3
    4
    5
    6
    G E R M A N          A E G M N R
    d e f e n d n e d e d f
    t h e e a s a h t e s e
    t w a l l o => l w t l o a
    f t h e c a c t f e a h
    s t l e x x x t s e x l

****** 以下加密不會有 ’J’ 出現 ******


Bifid Cipher :

先做出一個含有[A-Z],’J’除外的正方格 Bifid( Square, Period ) [內容自訂]
( ex: Square = ‘bhskrilxaoqpvwcfmuenzdtyg’ )

1
2
3
4
5
6
     1  2  3  4  5
1 | b h s k r
2 | i l x a o
3 | q p v w c
4 | f m u e n
5 | z d t y g
  1. 對照表格行列後 ( ex: plaintext = ‘This is a secret messages’ ) [ 行列分開 ]
    • plain : THIS IS A SECRET MESSAGES
    • row : 5121 21 2 143145 44112541
    • column : 3213 13 4 345543 24334543
  2. Fractionating : 依照 Period 的值 將數字分堆 ( Period = 5 )
    • 51212 12143 14544 11254 1
    • 32131 34345 54324 33454 3
  3. 把分好的堆,依序將行和列串起來
    • 5121232131 1214334345 1454454324 1125433454 13
  4. 再把他們依照方格換回英文字母
    • zixiq hkvun kynua bouwy s
  5. 輸出密文:zixiqhkvunkynuabouwys

****** 以下加密不會有 ’J’ 出現,且為偶數字串 ******


ADFGX,ADFGVX Cipher : [ 其密文只會有 ADFG(V)X ]

  • 先做出一個含有[A-Z],J除外的正方格 ADFGX ( 25 )[表格內容自訂] ( ADFGVX 只是方陣變成 6*6 包還 [A-Z0-9] 除了 J ,其餘的過程皆相同 )

( ex: Square = ‘bhskrilxaoqpvwcfmuenzdtyg’ )

     A D F G X
 A | b h s k r
 D | i l x a o
 F | q p v w c
 G | f m u e n
 X | z d t y g

對照表格字母後 ( ex: cipher = ‘This is a secret message’ ) [ 先行在列 ]

1
2
T  H  I  S    I  S    A    S  E  C  R  E  T     M  E  S  S  A  G  E
XF AD DA AF DA AF DG AF GG FX AX GG XF GD GG AF AF DG XX GG
  • Fractionating :
    • 進行一次 Columnar Transposition Cipher
    • 需要一支KEY ( ex: Key = ’SIGMA’ ) [不一定要剛剛好填滿,留空沒關係 ]
    • 將對應後的字碼依序放入表格中
      1
      2
      3
      4
      5
      6
      7
      8
      9
      10
      S I G M A
      ----------
      X F A D D
      A A F D A
      A F D G A
      F G G F X
      A X G G X
      F G D G G
      A F A F D
      G X X G G
      經過轉換 ( 依照字母序 )
      1
      2
      3
      4
      5
      6
      7
      8
      9
      10
      A G I M S
      ----------
      D A F D X
      A F A D A
      A D F G A
      X G G F F
      X G X G A
      G D G G F
      D A F F A
      G X X G G
  • 以行的順序(Column) 輸出密文:
  • DAAXXGDGAFDGGDAXFAFGXGFXDDGFGGFGXAAFAFAG

Polybius Square Cipher :

key = ‘monarchy’ size=‘5’ char=‘ABCDE’

           A  B  C  D  E  ←  char 可以自己自訂
          ---------------
      A |  m  o  n  a  r
      B |  c  h  y  b  d
      C |  e  f  g  i  k
      D |  l  p  q  s  t
      E |  u  v  w  x  z

給定一個 Key ( 如果有重複字母,要自行消除… ) [也不能有’J’] 製作出一個 Square ,或者直接做出一個 Square

plaintext: d e f e n d t h e e a s t w a l l o f t h e c a s t l e
ciphertext: BE CA CB CA AC BE DE BB CA CA AD DD DE EC AD DA DA AB CB DE BB CA BA AD DD DE DA CA

將明文的字母,直接對應到左邊和上面的字 → 密文

Playfair Cipher
key = ‘monarchy’

1
2
3
4
5
m  o  n  a  r
c h y b d
e f g i k
l p q s t
u v w x z
  1. 將明文的標點符號、空格刪除,只剩下方格有的字元 [ a-z沒有 j ]
  2. 每兩個字元如果重複,把重複的第二個字換成 ’x’ ‘hammer’ -> ‘hamxer’.
  3. 如果明文是奇數,要在尾端加上’x’把它湊成偶數
  4. 把它拆成兩兩成對 ‘hamxer’ -> ‘ha mx er’
  5. 開始轉換 :
    • 如果不同行也不同列,換為交叉點 ( 自己的列[row] 與對方的行[column] ) 的值. ‘ha’ -> ‘bo’, ‘es’ -> ‘il’
    • 如果在同列(row),各向右位移一格. ‘ma’ -> ‘or’, ‘lp’ -> ‘pq’, ‘xx’→ ‘zz’ ( xx只發生在明文為基數且以x結尾,這將會補一個x進來.. )
    • 如果在同行(column),各向下位移一格. ‘rk’ -> ‘dt’, ‘pv’ -> ‘vo’
  • 特色:
    • 不會出現兩個重複的字
    • 字串函有偶數個字
    • 如果有發生很長的重複,他們將由偶數個字元分隔,重複的序列也通常是偶數個字元

Four-Square Cipher :

左上右下放 plaintext squares
右上左下放 ciphertext square

1
2
3
4
5
6
7
8
9
10
11
12
13
  明文 1       Key 1
a b c d e Z G P T F
f g h i k O I H M U
l m n o p W D R C N
q r s t u Y K E Q A
v w x y z X V S B L

Key 2 明文 2
M F N B D a b c d e
C R H S A f g h i k
X Y O G V l m n o p
I T U E W q r s t u
L Q Z K P v w x y z

Plaintext : Attack at Dawn
和 Playfair 一樣 先把明文倆倆拆開 (基數字串的話就補x)
分別在左上方陣中找到第一個字,右下方陣中找到第二個字
得到兩字母行列交集處的字元 (先從第一個字的列[row]先)

1
2
Plain  : AT TA CK AT DA WN
Cipher : TI YB FH TI ZB SY


參考資料:
Practical Cryptography

Break :
https://quipqiup.com/