1. 程式人生 > >實驗吧-密碼學-古典密碼

實驗吧-密碼學-古典密碼

開啟題目,題目資訊給的是一串數字,瞬間就能聯想到把這串數字使用ASCII碼進行轉換:

ASCII轉換後的密文是:OCU{CFTELXOUYDECTNGAHOHRNFIENM}IOTA

咦~好像跟要提交的格式不太一樣啊,要求格式是:CTF{},這個卻是OCU{}。。。

再想想古典密碼的加密方式,古典密碼最基礎的加密方式就是:列置換加密,就是將密文按固定長度x分組,即每行x個字元,在金鑰控制下按照某一順序交換列,最後按列優先的順序依次讀出,即產生了密文。

好,我們會過頭來看轉換後的密文字串,總共35位,現在我們來進行分組,分組方式,最先想到的是35=7*5

現在對每列進行編號:

1 2 3 4  5 6 7

OCU { CFT

ELXOUYD

ECTNGAH

OHRNFIE

NM } IOTA

按照題目要求,key值的固定格式為CTF{}。因此我們可以斷定第2列或第5列是開頭,接下來是第7列,然後第6列,考慮到“ { ”是第4列,再考慮到“ } ”是最後一列,嘗試得到一個新序列:2 7 6 4 5 1 3。根據這個序列我們來調整得到:

CTF{COU
LDYOUEX
CHANGET
HEINFOR
MATION}

即:CTF{COULDYOUEXCHANGETHEINFORMATION}

嗯。。。是它了