加密演算法通常分為兩大類:對稱加密演算法 與 非對稱加密演算法。(分為四類的話還包括 雜湊 與 無線)
金鑰是一種引數,它是在明文轉換為密文或將密文轉換為明文的演算法中輸入的引數。金鑰分為對稱金鑰與非對稱金鑰。
金鑰是一種引數,它是在明文轉換為密文或將密文轉換為明文的演算法中輸入的引數。金鑰分為對稱金鑰與非對稱金鑰。
異或:即 明文與密文 對照時 ,對位置相同則返回0,不同則返回1
即1010 與 0101 則返回 1111。
一次性密碼本
• 一次性密碼本:本身就是金鑰
• 密碼本與明文長度一樣
運動金鑰密碼
• 密文例子:299l3c7
表示第二本書第99頁第三行第七列
• 金鑰:雙方共同擁有的書
需要提前協商好使用什麼書
隱藏密碼
例如 雙方約定取訊息中每第三個單詞作為 秘密資訊 即這段話的每 第三個單詞取出 從而拼接出正確的明文
對稱加密也叫私鑰加密,指加解密使用相同秘鑰的加密演算法。
對稱加密演算法:傳送者(加密)與接收者(解密)需要有相同的金鑰
• 分為替換和置換:可抵禦頻率分析
• 替換為用新字元代替原字元: 使用相同位數後的字元進行替換
• 置換為對原字串進行重新排列:例如 abcde —>21534—>baecd
對稱加密演算法的兩種分類:分組密碼與流密碼
• 分組密碼:使用混淆和擴散技術,替換達到混淆目的,置換達到擴散目的,使密文極度隨機。
• 分組方式使用固定大小,32位,64位,128位等
• 每次對每個分組塊進行加解密。
• 流密碼:需要乙個金鑰流生成器,差生隨機金鑰位與明文進行異或,傳送者與接收者必須有相同的金鑰流生成器。
初始化向量:初始化向量是乙個隨機值,與分組長度一致,保證同樣的明文和金鑰被加密成不同的密文,從而隱藏明文模式。
會話金鑰:單次會話後金鑰會廢除掉,即僅本次會話中有效。—>增強了安全性
非對稱密碼指的是非對稱密碼體制中使用的密碼。非對稱密碼**現了一對不同的金鑰對 ,雖然金鑰量增大了 ,但由於私鑰由個人進行保管 ,而公鑰可以向任何人公開 ,這樣就很好的解決了金鑰的分發和管理的問題 ,並且它還能夠實現數字簽名。
典型的公鑰演算法:rsa,ecc,diffie-hellman,el gamal,dsa.
rsa簡介:rsa加密演算法是一種非對稱加密演算法。在公開金鑰加密和電子商業中rsa被廣泛使用。rsa是2023年由羅納德·李維斯特(ron rivest)、阿迪·薩莫爾(adi shamir)和倫納德·阿德曼(leonard adleman)一起提出的。當時他們三人都在麻省理工學院工作。rsa就是他們三人姓氏開頭字母拼在一起組成的
• 公鑰的概念:公鑰是可以在網路上傳輸的,也就是說接收傳送雙方都可以知道彼此的公鑰,當然,如果你用網路嗅探等技術,也可以在網路上嗅探的公鑰的內容,但你僅有公鑰是無法解密檔案的。
• 私鑰的概念:私鑰是使用者各自私有的,不會在網路中傳輸(也就是說不需要接收傳送雙方彼此交換此金鑰),這就保證了此密碼的安全性,黑客無法在網路中嗅探到該金鑰,而是被嚴格的儲存在使用者自己的主機中。
• 公鑰和私鑰的關係:公鑰加密的資料只有私鑰可以解鎖,私鑰加密的資料只有公鑰能解鎖,而兩者都無法自己解鎖自己!這一點是保證資料無法被竊取的關鍵!而公鑰和私鑰的唯一區別也接就是公鑰會互相交換在網路上傳輸,而私鑰自己保留不在網路上傳輸。
目標:利用對稱演算法與非對稱演算法的各自有點。
• 對稱演算法加密較大的資訊時速度快,強度高。
• 非對稱演算法加密上面的對稱金鑰時金鑰的分發與管理相對方便與簡單。
例子:alice要傳送大量的資訊給bob
alice使用key(1) + 對稱加密演算法,對真正的銘文(p)進行加密,獲得了密文(c)
alice傳送密文(c)給bob。
alice如何安全的傳送key(1)給bob? -> alice使用bob的公鑰對key(1)進行加密 -> key(c(1)), 傳送給bob。
bob使用自己的私鑰,對key(c(1))進行解密,獲取key(1).
bob使用key(1)對密文(c)進行解密,獲取內容。
單向限門函式:
1.屬於單向函式,如果有輔助訊息,則逆向計算容易
2.解密是典型的單向限門函式。
3.rsa演算法中,「兩個大素數相乘」和「已知的素數」是單向函式
任何公鑰演算法本質上都是單向(限門)函式
雜湊函式也是一種單向函式
密碼學中,不通資訊有相同雜湊的現象成為「衝突」
雜湊值也稱為訊息摘要或訊息指紋。
雜湊函式應能抵禦「生日攻擊」
雜湊演算法(hash)
訊息完整性差,例如兩段完全相同的a.txt和b.txt的md5是完全一樣的,但若在a.txt但某一段後面加上空格(空格是很不容易經肉眼發覺的),則兩個txt檔案的md5則就不同了。
沒有不可發現的非授權篡改
現代密碼學利用「訊息鑑別碼(mac)」保護訊息的完整性
mac的另兩種稱謂:
mic:訊息完整性碼 mdc:篡改檢測碼
mac實現方式:
hash-mac(hmac)
cbc-mac (cmac)
數字簽名(又稱公鑰數字簽名)是一種類似寫在紙上的普通的物理簽名,但是使用了公鑰加密領域的技術實現,用於鑑別數字資訊的方法。
過程:先對txt進行hash,在對hash值使用自己的私鑰進行簽名
數字簽名是非對稱金鑰加密技術與數字摘要技術的應用
BUUCTF密碼學(crypto)第1 12題
題目 e00cf25ad42683b3df678c61f42c6bda 根據題目提示這是md5密文,所以直接解密就得到了flag flag 題目 66 6c 61 67 7b 61 6e 64 20 31 3d 31 7d 題目 下面的字串解密後便能獲得flag zmxhz3tusevfrkxbr1...
密碼學 密碼學基礎
密碼學是研究編制密碼和破譯密碼的技術科學。密碼學的安全目標至少包含三個方面 保密性 完整性 可用性。完整性 資源只有授權方以授權的方式進行修改,所有資源沒有授權則不能修改。可用性 資源只有在適當的時候被授權方訪問,並按需求使用。密碼系統由5部分組成 1 明文空間m 全體明文的集合 2 密文空間c 全...
關於密碼學的總結
古典密碼與現代密碼 對稱加密與非對稱加密 單向雜湊函式 編碼與加密 數字簽名與數字證書 區分古典加密和現代加密的乙個很重要的因素是,古典加密一般都是比較簡單的,而現代加密基本不存在手工解密的可能 古典加密又分為以下兩種 1 置換密碼 把明文中的字母重新排列,字母本身不變,只改變其位置。2 代換密碼 ...