古典密碼 --- 實驗吧

首先,題目中只給了一組數字,提示中告訴我們方法就在表面,所以我就開始研究這組數據,你可以發現這些數據都不超過127,因此,我猜想這應該是ASC碼,轉換完後得到結果如下:

得到轉換後的結果:OCU{CFTELXOUYDECTNGAHOHRNFIENM}IOTA

高高興興的以爲就是這個,提交後卻告訴我是錯誤的,我知道這沒有那麼簡單,看到{前面正好是三個字母OCU,以爲會是凱撒密碼

,可惜OCU是無法通過移位來得到CTF的,又看到字母中有CTF,感覺像是柵欄加密,可嘗試後得到的結果都很離譜,最後經過了大神的提示後才知道了解決辦法:

其實這題考察的是古典密碼最基礎的加密:列置換

首先什麼是列置換:將明文按固定長m進行分組,在密鑰控制下按某一順序交換列,最後按列優先的順序依次讀出,即產生了密文;

分析上面的結果知總共有35個字母,可以分成7 * 5的,

OCU{CFT

ELXOUYD

ECTNGAH

OHRNFIE

NM}IOTA

很幸運,第一行就有CTF,所以先將第一行進行列置換,其他行只要按照第一行的順序就行,

你會發現第一行中有兩個C,所以進行分類討論:

第一種情況:第二列的C提前

又因爲OU還不能確定,再分類討論:

1----2764513

2----2764531

第二種情況:第五列的C提前

因爲OCU位置都不確定,所以分六種情況

1--------5764123

2--------5764132

3--------5764213

4--------576231

5--------576312

6--------576321

挨個結果試一試,得到最終結果順序:2764513

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章