ctf 密碼學基礎

2021-08-20 06:43:01 字數 2718 閱讀 8189

這裡借助公尺斯特安全團隊的一款工具來進行實際編碼解碼。

其實就是按照特定的順序將字母替換。比如後移2位,那麼a就變成c,d就變成f。

下面更直觀的看一下:

這種加密與凱撒十分類似,就是凱撒密碼中移動13位的結果

這是利用a和b(a和b也行)來表示二進位制中的0和1,並以此來表示26個字母,培根密碼5位一組。

這個加密方式主要特徵是只有兩種不同的字母,都可轉換為ab形式

def就可以表示為aaabbaabaaaabab

百科上的例子:

一般比較常見的是2欄的柵欄密碼。

比如明文

:there is a cipher

去掉空格後變為:thereisacipher

兩個一組,得到:th er ei sa ci ph er

先取出第乙個字母:teescpe

再取出第二個字母:hriaihr

連在一起就是:teescpehriaihr

還原為所需密碼。

而解密的時候,我們先把密文從中間分開,變為兩行:

t e e s c p e

h r i a i h r

再按上下上下的順序組合起來:

thereisacipher

分出空格,就可以得到原文了:

there is a cipher

但也存在不是兩欄的情況,就需要對密文的總字數分解因數,嘗試分欄的種類。

比如密文 tahceirpehiesr  14個字母,可以考慮2欄或7欄,解密如下:

根據不同情況,找到有意義的一組。

還是先看百科上的例子

轉碼過程例子:

3*8=4*6

記憶體1個位元組佔8位

轉前: s 1 3

先轉成ascii:對應 115 49 51

2進製: 01110011 00110001 00110011

6個一組(4組) 011100110011000100110011

然後才有後面的 011100 110011 000100 110011

然後計算機是8位8位的存數 6不夠,自動就補兩個高位0了

所有有了 高位補0

科學計算器輸入 00011100 00110011 00000100 00110011

得到 28 51 4 51

查對下照表 c z e z

核心思想在於將8位的二進位制轉換為6位的二進位制。

而6位二進位制共64種組合,可以表示10個數字,26個字母的大小寫,外加符號+和/。一共64個。

對應編碼

有一點要特別指出,當明文個數不是三的倍數時,就會出現 明文數*8%6不為零的情況,

這是如果餘數為2,就在末尾補兩個等號,如果餘數為4,就補乙個等號。對於餘下的2個或4個二進位制

採用高位補零的方法。

比如密文:cmfuba== 的明文為ranl

因此我們可以得出base64編碼後的特徵:只含有數字,字母,和符號+ / =。

這是瀏覽器方便傳輸資訊和加強安全性的編碼。url編碼是字元ascii碼的十六進製制加上%的格式。

部分對應表:

但在url中不是對所有的字元都要進行url編碼,一般的字母和數字是不會被編碼的。會以原本形式傳遞。

這是對ascii碼表的擴充套件,可以表示更多的字元,採用2個位元組16位的儲存形式。解碼後可以看到16進製制的表示形式。

其特徵為以\u開頭

這是為了利用記憶體採用的一種編碼格式,這裡只是看看其特徵 開頭ascii表之外的字元,

對於能用ascii表示的字元仍用ascii表示還是乙個長度,就節省了記憶體。

hash函式是一系列單向函式,就是這種運算是不可逆的,只可以通過hash運算得到乙個hash值,而不能通過hash值得到原始資料。並且經過hash運算後得到的hash值為固定長度。

**後台一般只儲存使用者密碼的hash值,但也存在一定風險,因為如果黑客拿到了密碼的hash後,可以的通過對比已經存在的明文與雜湊的對應資料,進行對比,獲得明文密碼。因此,有了加鹽hash,就是隨機的在使用者密碼後加上一段字元後再進行hash運算,由於黑客不知道加的鹽是什麼,依然無法得到密碼。

md5是hash演算法中一種特殊的演算法而已,也是hash演算法,最後的結果為128個字元,但一般取其中的64或者32位。

密碼學 密碼學基礎

密碼學是研究編制密碼和破譯密碼的技術科學。密碼學的安全目標至少包含三個方面 保密性 完整性 可用性。完整性 資源只有授權方以授權的方式進行修改,所有資源沒有授權則不能修改。可用性 資源只有在適當的時候被授權方訪問,並按需求使用。密碼系統由5部分組成 1 明文空間m 全體明文的集合 2 密文空間c 全...

CTF密碼學密碼特徵總結

凱撒密碼 rot族 摩斯密碼 url轉碼 柵欄密碼 進製轉換 培根加密 各種 加密 特徵 base64,32密文都有等於號 base16就是16進製制轉ascii問題不大吧 base32編碼是由大寫字母 a z 和數字234567組成與base64類似 解密 裡面也有詳細的說明,有興趣的自己看看 轉...

密碼學基礎

在正式講解https協議之前,我們首先要知道一些密碼學的知識。明文 明文指的是未被加密過的原始資料。密文 明文被某種加密演算法加密之後,會變成密文,從而確保原始資料的安全。密文也可以被解密,得到原始的明文。金鑰 金鑰是一種引數,它是在明文轉換為密文或將密文轉換為明文的演算法中輸入的引數。金鑰分為對稱...