1. 程式人生 > >CTF入門——密碼學基礎

CTF入門——密碼學基礎

新的 規律 height 關鍵詞 提交 ict layout cap 流程

  • 開篇

協會納新的人數越來越多,也直播了一些基礎課程,不知道大家有沒有全部看懂.初入信息安全不知道如何學是很常見的,我們競賽的類型主要是CTF(cross the fire (o?v?)ノ2333開玩笑。。。。好吧是奪旗戰 這是針對0基礎的同學寫的入門篇目,請大佬們輕噴~~

  • CTF介紹

CTF(Capture The Flag)中文一般譯作奪旗賽,在網絡安全領域中指的是網絡安全技術人員之間進行技術競技的一種比賽形式。CTF起源於1996年DEFCON全球黑客大會,以代替之前黑客們通過互相發起真實攻擊進行技術比拼的方式。發展至今,已經成為全球範圍網絡安全圈流行的競賽形式,2013年全球舉辦了超過五十場國際性CTF賽事。而DEFCON作為CTF賽制的發源地,DEFCON CTF也成為了目前全球最高技術水平和影響力的CTF競賽,類似於CTF賽場中的“世界杯” 。(好想去DEFCONヾ(≧へ≦)〃.

.. ...咳)

CTF是一種流行的信息安全競賽形式,其英文名可直譯為“奪得Flag”,也可意譯為“奪旗賽”。其大致流程是,參賽團隊之間通過進行攻防對抗、程序分析等形式,率先從主辦方給出的比賽環境中得到一串具有一定格式的字符串或其他內容(格式一般為 flag{XXXXXX} ),並將其提交給主辦方,從而奪得分數。為了方便稱呼,我們把這樣的內容稱之為“Flag”。

總而言是這種賽事就是通過技術手段(pwn 逆向分析 decode等)從 程序或者數據中 找到關鍵的字符串(flag)並正確提交。。。(●ˇ?ˇ●)

  • 水了半天了,下面進入正題。

  • (初入CTF建議先從密碼學入手,下面開始講解):

  • 古典密碼學

  • 凱撒密碼(移位密碼):通過明文在字母表中的偏位位數加密

例如偏移量為3位的時候:A對應D,B對應E,C對應F等。。。

這個很好懂,在這裏就不詳細說了。

偏移量為13位的時候凱撒密碼又叫 回轉密碼(ROT13):明文加密得到密文,密文再加密就會得到明文(因為偏移量為13位一共 26個字母,加密兩次就會回到明文了),在CTF中題目關鍵字眼 會有回轉、回旋、十三踢等字眼。

  • 摩爾斯電碼(又譯為摩斯密碼,Morse code)用 “ . ” 和 “ - ”的排列表達26個字母和數字0-9
  • playfair密碼 用5x5的表格,格子放26個字母(I 和J算一個格子 )正好放滿25個格子。有密鑰的話先往各自中不重復的順序填入再按照26個字母順序填入密鑰中沒有的其他字母 例如密鑰為:crazy dog

技術分享圖片

對明文加密規則如下: 1 若p1 p2在同一行,對應密文c1 c2分別是緊靠p1 p2 右端的字母。其中第一列被看做是最後一列的右方。如,按照前表,ct對應dc 2 若p1 p2在同一列,對應密文c1 c2分別是緊靠p1 p2 下方的字母。其中第一行被看做是最後一行的下方。 3 若p1 p2不在同一行,不在同一列,則c1 c2是由p1 p2確定的矩形的其他兩角的字母(至於橫向替換還是縱向替換要事先約好,或自行嘗試)。如,按照前表,wh對應ku或uk。 依照上表,明文where there is life,there is hope. 可先整理為:WH ER ET HE RE IS LI FE TH ER EI SH OP EX 然後密文為:KU YO XD OL OY PL FK DL FU YO LG LN NG LY 將密文變成大寫,然後幾個字母一組排列。 如5個一組就是KUYOX DOLOY PLFKD LFUYO LGLNN GLY 解密過程逆過來就OK了~
  • 柵欄密碼就是把要加密的明文分成N個一組,然後把每組的第1個字連起來,形成一段無規律的話。 不過柵欄密碼本身有一個潛規則,就是組成柵欄的字母一般不會太多。(一般不超過30個,也就是一、兩句話)
  • 一般比較常見的是2欄的柵欄密碼。
    比如明文:THERE IS A CIPHER
    去掉空格後變為:THEREISACIPHER
    兩個一組,得到:TH ER EI SA CI PH ER
    先取出第一個字母:TEESCPE
    再取出第二個字母:HRIAIHR
    連在一起就是:TEESCPEHRIAIHR

    • 維吉尼亞密碼是使用一系列凱撒密碼組成密碼字母表的加密算法,屬於多表密碼的一種簡單形式
    • 為了生成密碼,需要使用表格法。這一表格(如圖1所示)包括了26行字母表,每一行都由前一行向左偏移一位得到。具體使用哪一行字母表進行編譯是基於密鑰進行的,在過程中會不斷地變換。

      技術分享圖片 例如,假設明文為: ATTACKATDAWN 選擇某一關鍵詞並重復而得到密鑰,如關鍵詞為LEMON時,密鑰為: LEMONLEMONLE 對於明文的第一個字母A,對應密鑰的第一個字母L,於是使用表格中L行字母表進行加密,得到密文第一個字母L。類似地,明文第二個字母為T,在表格中使用對應的E行進行加密,得到密文第二個字母X。以此類推,可以得到: 明文:ATTACKATDAWN密鑰:LEMONLEMONLE密文:LXFOPVEFRNHR 解密的過程則與加密相反。例如:根據密鑰第一個字母L所對應的L行字母表,發現密文第一個字母L位於A列,因而明文第一個字母為A。密鑰第二個字母E對應E行字母表,而密文第二個字母X位於此行T列,因而明文第二個字母為T。以此類推便可得到明文。
    • 目前古典密碼先介紹這麽多吧

CTF入門——密碼學基礎