[CTF]柵欄密碼學習- IT閱讀

文章推薦指數: 80 %
投票人數:10人

[CTF]柵欄密碼學習 ... 即把將要傳遞的資訊中的字母交替排成上下兩行,再將下面一行字母排在上面一行的後邊,從而形成一段密碼。

柵欄密碼是一種置換密碼。

[CTF]柵欄密碼學習 首頁 最新 HTML CSS JavaScript jQuery Python3 Python2 Java C C++ Go SQL 首頁 最新 Search [CTF]柵欄密碼學習 2018-12-16254 [CTF]柵欄密碼學習   即把將要傳遞的資訊中的字母交替排成上下兩行,再將下面一行字母排在上面一行的後邊,從而形成一段密碼。

柵欄密碼是一種置換密碼。

  例如密文:TEOGSDYUTAENNHLNETAMSHVAED  解密過程:先將密文分為兩行  TEOGSDYUTAENN  HLNETAMSHVAED  再按上下上下的順序組合成一句話  THELONGESTDAYMUSTHAVEANEND.加深的       密文為:  PFEESESNRETMMFHAIRWEOOIGMEENNRMAENETSHASDCNSIIAAIEERBRNKFBLELODI  去掉空格:PFEESESNRETMMFHAIRWEOOIGMEENNRMAENETSHASDCNSIIAAIEERBRNKFBLELODI  共64個字元,以8個字元為一欄,排列成8*8的方陣(凱撒方陣):  PFEESESN  RETMMFHA  IRWEOOIG  MEENNRMA  ENETSHAS  DCNSIIAA  IEERBRNK  FBLELODI  從上向下豎著讀:PRIMEDIFFERENCEBETWEENELEMENTSRESMONSIBLEFORHIROSHIMAANDNAGASAKI  插入空格:PRIMEDIFFERENCEBETWEENELEMENTSRESMONSIBLEFORHIROSHIMAANDNAGASAKI經典加密技術例項經典加密主要採用了兩種加密技術:替代技術和置換技術。

(1)替代技術替代技術是將明文中的每個元素(字母、位元、位元組合或字母組合)對映為另一個元素的技術。

明文的元素被其他元素所代替而形成密文。

在經典加密技術中使用的元素一般為字母或數字。

下面給出經典加密中幾種有代表性的替代技術。

1)凱撒密碼凱撒密碼是最早使用的替代密碼。

定義1凱撒密碼將字母表視為一個迴圈的表,把明文中的字母用表中該字母后面第3個字母進行替代。

凱撤密碼的明文字母和密文字母的對應關係如下:明文字母:abcdefghIjklmnopqrstuvwxyz密文字母:DEFGHIJKLMNOPQRSTUVWXYZABC若讓每個字母對應一個數值(a=0,b=1,……,z=25),則該演算法可以表示為:。

定義2將1演算法一般化,即密文字母與明文字母的偏移可以是任意值,形成了所謂的移位密碼,其演算法可以表示為:k就是加密演算法的金鑰,可以在1到25之間取值。

解密演算法可以表示為:。

由於k的取值範圍的限制,凱撒密碼的金鑰空間很小,難以抵禦強行攻擊密碼分析。

攻擊者最多嘗試25次,就一定能夠破譯密碼。

2)單字母替代密碼為了加大凱撒密碼的金鑰空間,可以採用單字母替代密碼。

單字母替代密碼是將密文字母的順序打亂後與圖文字母對應。

明文字母:abcdefghIjklmnopqrstuvwxyz密文字母:OGRFCYSALXUBZQTWDVEHJMKPNI此時的金鑰空間大小為26!,約為4×1026。

即使每微秒試一個金鑰,也需要花費約1010年才能窮舉所有的金鑰。

因此,強行攻擊法不太適合。

3)Vigenere密碼Vigenere密碼利用一個凱撤方陣來修正密文中字母的頻率。

在明文中不同地方出現的同一字母在密文中一般用不同的字母替代。

凱撒方陣的形式為:ABCDEFG…YZ          BCDEFGH…ZA          CDEFGHI…AB          DEFGHIJ…BC                         …          ZABCDEF…XY加密時,使用一個通訊雙方所共享的金鑰字母串(如:HAPPYTIME),將金鑰字母串重複書寫在明文字母的上方。

對要加密的明文字母找到上方的金鑰字母,然後比一下以確定凱撒方陣的某一行〔以該金鑰字母開頭的行〕。

最後利用該行的字母表,使用凱撒密碼的加密方法進行替代:例如:金鑰:HAPPYTIEHAPPYTIM明文:pleasesendthedata明文中的第一個e用凱撒方陣中的P行(PQRSTU…O)進行加密,因此被T替代;第二個e用方陣中的T行(TUVWX…S)進行加密,因此被X替代。

即使只選擇凱撒方陣中的任意m行,Vigenere密碼的金鑰字的長度將是26m,窮舉金鑰空間將需要很長時間,例如m=5,金鑰空間超過11000000,已經足以阻止手工窮舉金鑰搜尋。

在Vigenere密碼中,一個字母能夠對映成m個可能字母中的一個,這樣的密碼體制稱為多表密碼體制,一般情況下對多表密碼體制的密碼分析比單表困難。

(2)置換技術置換是在不丟失資訊的前提下對明文中的元素進行重新排列。

1)矩形轉置密碼將明文寫成矩形結構,然後通過控制其輸出方向和輸出順序來獲得密文。

例如,明文pleasesendthedata在不同輸出順序下的密文如下圖所示。

矩形方陣上方的數字和字母串為代表輸出順序的金鑰,字母串按字母順序輸出(AEFRT)。

輸出順序12345p1easesendthe   data 輸入方向 輸出順序35142p1easesendthe   data 輸入方向 輸出順序AFTERp1easesendthe   data 輸入方向 密文:pedldestaaehtsnea 密文:estasneapedeahtld 密文:pedaehtldsneaesta 圖矩形轉置密碼加密示意圖 2)圖形轉置密碼一個三角形轉置密碼的例子如下圖所示ehavharryoksdoeshowmanybo 輸入方向 輸出方向 明文:howmanybooksdoseharryhave密文:OSYVEBERAYORHNDAASHMKWOOH 圖三角形轉置密碼加密示意圖 http://www.sdpc.edu.cn/jpkc/wlaq/szal/aqslfx/sl7.htm  相關文章 [CTF]柵欄密碼學習 [CTF]柵欄密碼 ctf密碼學習題總結 柵欄密碼--Python解密指令碼 JAVA柵欄密碼解密程式 資訊保安密碼技術--柵欄密碼 CTF中Crypto(密碼學)線上解密網站 柵欄密碼 python反方向破解柵欄密碼*上不上車*20年python大牛開車 逆向破解柵欄密碼,python就是這麼迷人! 格密碼學習筆記(一) 【編碼】量子密碼學習筆記(一) 【編碼】量子密碼學習筆記(二) 橢圓曲線公鑰密碼學習 CTF入門——密碼學基礎 分類導航 HTML/CSS HTML教程 HTML5教程 CSS教程 CSS3教程 JavaScript JavaScript教程 jQuery教程 Node.js教程 服務端 Python教程 Python3教程 Linux教程 Docker教程 Ruby教程 Java教程 JSP教程 C教程 C++教程 Perl教程 Go教程 PHP教程 正則表達式 資料庫 SQL教程 MySQL教程 PostgreSQL教程 SQLite教程 MongoDB教程 Redis教程 Memcached教程 行動端 IOS教程 Swift教程 Advertisement 三度辭典 Copyright©2016-2021IT閱讀  Itread01.comAllRightsReserved. 0.001291036605835



請為這篇文章評分?