Square Substitute Cipher
Columnar Transposition Cipher :
( ex :plain = ‘defend the east wall of the castle’ , key = ‘GERMAN’ )
- 將明文順著 Key : G-E-R-M-A-N 排放之後
- 將 Key(和對應的列) 依照字母順序重新排序後
- 逐列輸出密文 ( cipher = ‘nalcxehwttdttfseeleedsoaxfeahl’ )
1
2
3
4
5
6G 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 |
|
- 對照表格行列後 ( 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
- Fractionating : 依照 Period 的值 將數字分堆 ( Period = 5 )
- 51212 12143 14544 11254 1
- 32131 34345 54324 33454 3
- 把分好的堆,依序將行和列串起來
- 5121232131 1214334345 1454454324 1125433454 13
- 再把他們依照方格換回英文字母
- zixiq hkvun kynua bouwy s
- 輸出密文: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 |
|
- Fractionating :
- 進行一次 Columnar Transposition Cipher
- 需要一支KEY ( ex: Key = ’SIGMA’ ) [不一定要剛剛好填滿,留空沒關係 ]
- 將對應後的字碼依序放入表格中經過轉換 ( 依照字母序 )
1
2
3
4
5
6
7
8
9
10S 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 G1
2
3
4
5
6
7
8
9
10A 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 |
|
- 將明文的標點符號、空格刪除,只剩下方格有的字元 [ a-z沒有 j ]
- 每兩個字元如果重複,把重複的第二個字換成 ’x’ ‘hammer’ -> ‘hamxer’.
- 如果明文是奇數,要在尾端加上’x’把它湊成偶數
- 把它拆成兩兩成對 ‘hamxer’ -> ‘ha mx er’
- 開始轉換 :
- 如果不同行也不同列,換為交叉點 ( 自己的列[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 |
|
Plaintext : Attack at Dawn
和 Playfair 一樣 先把明文倆倆拆開 (基數字串的話就補x)
分別在左上方陣中找到第一個字,右下方陣中找到第二個字
得到兩字母行列交集處的字元 (先從第一個字的列[row]先)
1 |
|
Break :
https://quipqiup.com/