密码技术工具箱概述
目錄
寫在前面
基本概念
密碼學家的工具箱:
隱寫術與數字水印
密碼與信息安全常識
歷史上的密碼
凱撒密碼
簡單替換密碼
英格瑪(Enigma)
對稱密碼
XOR
一次性密碼本
DES
AES
密碼分組的模式
ECB
CBC
CFB
OFB
CTR
模式比較表
公鑰密碼
解決密鑰配送問題
無法解決的問題
RSA
混合密碼系統
單向散列函數
特點
實際應用
例子
消息認證碼
數字簽名與公鑰密鑰
數字簽名的方法
寫在前面
原來如此,鑰匙、鎖工作原理大揭密,漲知識啦! (sortdoor.com)
加鎖:加密
開鎖:解密
鎖的運行步驟:算法(算法固定)
關鍵部件的可變范圍:密鑰空間(密鑰可變)
宇宙浩大,時間萬物,統一于道,道即算法。
萬物繁雜,不盡相同,呈現多態,在于密鑰不同。宇宙之大,密鑰空間無窮盡。
基本概念
明文/密文
加密/解密
破譯/密碼分析
算法
密鑰
密碼學家的工具箱:
對稱密碼:加密和解密使用同一密鑰的方式
非對稱密碼(公鑰密碼):加密和解密使用不同密鑰的方式
混合密碼系統:對稱密碼與非對稱密碼結合起來的密碼方式。
單向散列函數:
消息認證碼:
數字簽名:
偽隨機數生成器:
隱寫術與數字水印
密碼隱藏的是內容,隱寫術隱藏的是消息本身
(數字水印)
數字水印根據加載的載體可分為:
①圖像水印。在圖像數據上加載的水印。
②視頻水印。在視頻數據上加載的水印。
③音頻水印。在音頻數據上加載的水印。
④軟件水印。在軟件上加載的水印。
⑤文檔水印。在文檔上加載的水印。
隱寫術-數字水印的原理、實現及應用 - 簡書 (jianshu.com)
密碼與信息安全常識
不要使用保密的密碼算法
使用低強度的密碼比不進行任何加密更危險
任何密碼總有一天都會被破解
密碼只是信息安全的一部分
歷史上的密碼
凱撒密碼
密鑰空間:26
算法:平移
破譯:暴力破解(窮舉搜索)
簡單替換密碼
密鑰空間:26!=403291461126605635584000000
算法:替換
破譯:頻率分析
頻率分析:先統計密文的字母頻率---》選擇一篇文章統計其字母頻率---》兩者對比---》替換
英格瑪(Enigma)
算法:復式替換算法
密鑰空間:
1》5個備選轉子,5個里面選出3個:
???5*4*3=60
2》每個轉子有26種初始位置,3個轉子共有:
???26*26*26=17576
3》接線板共有10條接線,(每條接線連接兩個字母,一共10對):
???26!/(6!*10!*2~10)=150 7382 7493 7250
Total:1》*2》*3》=1 5896 2555 2178 2636 0000
弱點:
1》將通信密碼連續輸入兩次
2》通信密碼是人為選定
3》必須派發國防軍密碼本
英格瑪機是什么構造原理?(就是2戰德國的那個) - 芝士回答 (jingyanlib.com)
【科普】二戰間諜戰——英格瑪密碼機上(加密) (qq.com)
【中字】二戰間諜戰——英格瑪密碼機下(解密)_網易視頻 (163.com)
對稱密碼
XOR
A XOR B XOR B=A ?對同一對象兩次XOR之后就會回到最初的狀態。
如果所使用的蒙版是完全隨機的比特序列,則使用XOR就可以將原來的圖像掩蓋起來。但如果蒙版中的比特序列的排列是可以被推測出來的,那么實質上圖像就沒有被真正掩蓋。對于密碼技術來說,“是否可以預測”是非常重要的一點。能夠產生不可預測的比特序列,對于密碼技術的貢獻是巨大的。這種不可預測的比特序列就稱為隨機數。
一次性密碼本
一次性密碼本在理論上無法破譯。
一次性密碼本為什么沒有被使用:
》密鑰的配送
》密鑰的保存
》密鑰的重用
》密鑰的同步
》密鑰的生成
一次性密碼本孕育出了流密碼
流密碼 Stream Cipher - 知乎 (zhihu.com)
DES
現代密碼學之DES詳解_Jifu_M的博客-CSDN博客
差分分析
線性分析
三重DES
AES
選拔出來的
SPN結構
AES加密算法的詳細介紹與實現_TimeShatter的博客-CSDN博客_aes加密
密碼分組的模式
分組密碼算法只能加密固定長度的分組,但是我們需要加密的明文長度可能會超過分組密碼的分組長度,這時就需要對分組密碼算法進行迭代,以便將一段很長的明文加密。而迭代的方法就稱為分組密碼的模式。
ECB
對EBC模式的攻擊:攻擊者截獲密文后無需破譯密碼就能夠操縱明文。
特別適合數據較少的情況,對于很長的信息或者具有特定結構的信息,其大量重復的信息或固定的字符開頭將給密碼分析者提供大量的已知明密文對。若明文不是完整的分組,ECB需要進行填充。
CBC
由于加密算法的每次輸入和本明文組沒有固定的關系,因此就算有重復的明文組,加密后也看不出來了。為了配合算法的需要,有一個初始向量(IV)。與ECB一樣有填充機制以保證完整的分組。
CFB
重放攻擊
OFB
CFB順序執行。OFB可并行執行。
CTR
計數器使用與明文分組規模相同的長度,計數器首先被初始化位某一數值,然后隨著消息塊的增加計數器加1。加密時,計數器加密后與明文分組異或得到密文分組,沒有鏈接。解密時必須知道初始計數器的值。
若明文的最后一個分組長度小于分組整長,無需填充,類似CFB做移位和丟棄操作即可。
CRT模式的優點:?
1、硬件效率高,同三種鏈接模式相比,CTR能夠并行加密和解密。?
2、軟件效率高,可以充分利用其并行特性進行并行計算?
3、由于加密解密過程不依賴明文和密文,因此可以做預處理以提高效率?
4、可以隨機訪問某一明文或者密文分組進行部分加密和解密
模式比較表
(七)分組密碼的五大工作模式 - 知乎 (zhihu.com)
分組密碼的工作模式 - block2016 - 博客園 (cnblogs.com)
公鑰密碼
解決密鑰配送問題
用公鑰加密,用私鑰解密。公鑰和私鑰一一對應,統稱密鑰對。密鑰對中的兩個密鑰有非常密切的關系----數學上的關系----因此公鑰和私鑰是不能分別單獨生成的。
無法解決的問題
公鑰密碼解決了密鑰配送問題,但這并不意味著它能解決所有問題,因為我們需要判斷所得到的公鑰是否正確合法,這個問題被稱為公鑰認證問題。
公鑰密碼還有一個問題就是,它的處理速度只有對稱密碼的幾百分之一。
RSA
密鑰對生成過程示例:
RSA算法原理(一) - 阮一峰的網絡日志 (ruanyifeng.com)
RSA算法原理(二) - 阮一峰的網絡日志 (ruanyifeng.com)
混合密碼系統
用堆成密碼提供速度,用公鑰密碼保護回話密鑰
單向散列函數
獲取消息的“指紋”
單向散列函數有一個輸入和一個輸出,其中輸入稱為消息,輸出稱為散列值。單向散列函數可以根據消息的內容計算出散列值,而散列值就可以又來檢查消息的完整性。
特點
一?根據任意長度計算出固定長度的散列值
二?能夠快速計算出散列值
三?消息不同,散列值也不同。密鑰技術中所使用的單向散列函數,都需要具備抗碰撞性。
四?具備單向性
實際應用
檢測軟件是否被篡改
基于口令的加密
消息認證碼
數字簽名
偽隨機數生成器
一次性口令
例子
單向散列函數的性質_實踐求真知-CSDN博客_散列函數的性質
消息認證碼
消息的認證指的是“消息來自正確的發送者”
消息認證碼是一種確認完整性并進行認證的技術。簡稱MAC。
消息認證碼是一種與密鑰相關聯的單向散列函數。
使用了共享密鑰,存在密鑰配送問題。
數字簽名與公鑰密鑰
的密鑰使用方式對比:兩者是相反的。
數字簽名的方法
直接對消息簽名的方法
對消息的散列值簽名的方法
總結
- 上一篇: PHP开源旅游网站程序,PHP开源旅游网
- 下一篇: JS API Sample_Query