古典密碼學(2023年之前)
特點:資料的安全基於演算法的保密。
方法:代換、置換(凱撒密碼)
標誌產物:enigma 密碼機
最早的密碼技術:斯巴達棒
里程碑:轉子密碼機
近代密碼學(1949~1975)
特點:資料的安全基於密匙而不是演算法的保密。
1949夏農編寫了《保密系統的通訊理論》奠定了近代密碼學的基礎。
現代密碼學(2023年以後)
特點:解決了密匙分發和管理的問題,密碼學真正在商業中廣泛應用。
2023年,羅納爾多、阿迪、里昂納多,在麻省理工推動了公鑰加密技術的革新發展。
典型應用.
資訊保安要素
特徵相應技術
機密性竊聽、非法竊取資訊、敏感***露
對稱加密、非對稱加密、混合加密、數字信封
完整性篡改、重放攻擊、破壞
訊息認證碼、雜湊函式、數字簽名、資料加密
可鑑別性
冒名口令、共享秘密、數字簽名、數字證書
不可否認性
事後否認自己行為
數字簽名、證據儲存
授權與訪問控制
非法訪問資料、越權訪問
屬性證書、訪問控制
流密碼特性
加密速度快
密匙和明文一樣長
序列密碼易被篡改
明文與密匙按位進行異或
數字證書組成加解密的並行運算
在加密時支援並行運算的有:ecb、ctr
在解密時支援並行運算的有:ecb、cbc、cfb、ctr。
分組加密
就是支援對稱加密的有
des、aes、sm4、blowfish、sm1、sm7、zuc(祖沖之)
非對稱加密:
rsa、sm2、sm9
摘要演算法;
md5、sm3、hash演算法、sha
https流程
1.瀏覽器傳送clienthello
其中包含了瀏覽器支援的tsl協議的版本,支援的加密演算法,壓縮演算法等。同時瀏覽器端生成乙個隨機數,一起傳送給伺服器。
2.伺服器返回serverhello
(1)確認tsl協議版本,確定乙個雙方都支援的加密演算法
(2)傳送伺服器的證書,傳送乙個伺服器端生成的隨機數。(如果訪問的**出於安全性的考慮,要求訪問者也提供證書的話會在這一步發出請求。)
3.瀏覽器拿到證書後驗證該證書是否是可信任的,如果證書可信任,那麼其中的公鑰也是可信的。
(1)瀏覽器生成第三個隨機數 pre key,將pre key使用伺服器的公鑰加密,傳送回伺服器
(2)編碼改變通知,告知伺服器接下來將使用選擇的加密演算法進行加密通訊
(3)將此前傳送過的所有資訊的摘要加密後傳送給伺服器,供伺服器進行加密通道驗證。最後發出客戶端握手階段結束訊號。
4.伺服器接收到對方發來的pre key後,此時通訊雙方都擁有了三個隨機數(前兩個是明文傳送的,第三個pre key 是非對稱加密傳送的),由這三個隨機數雙方可以計算得到兩個相同的對稱金鑰,伺服器使用這一金鑰驗證加密通道後,向客戶端傳送伺服器發出:
(1)編碼改變通知:告知接下來的通訊將使用加密通訊
(2)伺服器握手階段結束訊號。
至此握手階段結束,雙方接下來使用普通的http協議進行通訊,由三個隨機數生成的對稱金鑰加密內容。
1.整個過程中靠證書體系為通訊雙方提供身份信任。
2.通訊雙方共生成了三個隨機數能最大限度地避免偽隨機,保證了生成的對稱金鑰難以被暴力破解。
3.第三個隨機數的傳輸使用非對稱加密,保證了雙方對稱金鑰的私密性。
4.整個通訊中,只有pre key的傳送使用了非對稱加密,之後的加密通訊都採用對稱加密,最大限度地保證了通訊效率。
https是採用對稱加密和非對稱加密相結合的方式來進行安全認證的。對稱加密用來加密所要傳送的資訊,非對稱加密用來傳輸對稱加密的秘鑰演算法等資訊
數字證書
首先,伺服器把他的公鑰和個人資訊用hash演算法生成乙個訊息摘要,這個hash演算法有個好的特點就是只要輸入的資料有一點點變化,那麼生成的訊息摘要就會發生巨變。 這樣就可以防止別人修改原始的內容。然後再將這個訊息摘要通過認證中心(ca)的私鑰進行加密,形成數字簽名。
數字證書。
不過這樣做的前提是得信任ca,這些ca本身也有證書來證明自己的身份,並且ca的信用是像樹一樣分級的,高層的ca給底層的ca做信用背書,而作業系統/瀏覽器中會內建一些頂層的ca的證書,相當於你自動信任了他們。 這些頂層的ca證書一定得安全地放入作業系統/瀏覽器當中,否則世界大亂。你可以開啟瀏覽器, 從設定中可以找到「受信任的根證書」
如上圖所示
(1)第 ③ 步時,客戶端說:(咱們後續回話採用對稱加密吧,這是對稱加密的演算法和對稱金鑰)這段話用公鑰進行加密,然後傳給伺服器
(2)伺服器收到資訊後,用私鑰解密,提取出對稱加密演算法和對稱金鑰後,伺服器說:(好的)對稱金鑰加密
(3)後續兩者之間資訊的傳輸就可以使用對稱加密的方式了
遇到的問題:
(1)客戶端如何獲得公鑰
(2)如何確認伺服器是真實的而不是黑客
第四步:獲取公鑰與確認伺服器身份
(2)回話開始時,伺服器把公鑰發給客戶端(缺點:黑客冒充伺服器,傳送給客戶端假的公鑰)
2、那有沒有一種方式既可以安全的獲取公鑰,又能防止黑客冒充呢? 那就需要用到終極**了:ssl 證書
如上圖所示,在第 ② 步時伺服器傳送了乙個ssl證書給客戶端,ssl 證書中包含的具體內容有:
(1)證書的發布機構ca
(2)證書的有效期
(3)公鑰
(4)證書所有者
(5)簽名
3、客戶端在接受到服務端發來的ssl證書時,會對證書的真偽進行校驗,以瀏覽器為例說明如下:
(1)首先瀏覽器讀取證書中的證書所有者、有效期等資訊進行一一校驗
(2)瀏覽器開始查詢作業系統中已內建的受信任的證書發布機構ca,與伺服器發來的證書中的頒發者ca比對,用於校驗證書是否為合法機構頒發
(3)如果找不到,瀏覽器就會報錯,說明伺服器發來的證書是不可信任的。
(4)如果找到,那麼瀏覽器就會從作業系統中取出 頒發者ca 的公鑰,然後對伺服器發來的證書裡面的簽名進行解密
(5)瀏覽器使用相同的hash演算法計算出伺服器發來的證書的hash值,將這個計算的hash值與證書中簽名做對比
(6)對比結果一致,則證明伺服器發來的證書合法,沒有被冒充
(7)此時瀏覽器就可以讀取證書中的公鑰,用於後續加密了。
密碼學 密碼學基礎
密碼學是研究編制密碼和破譯密碼的技術科學。密碼學的安全目標至少包含三個方面 保密性 完整性 可用性。完整性 資源只有授權方以授權的方式進行修改,所有資源沒有授權則不能修改。可用性 資源只有在適當的時候被授權方訪問,並按需求使用。密碼系統由5部分組成 1 明文空間m 全體明文的集合 2 密文空間c 全...
CTF密碼學密碼特徵總結
凱撒密碼 rot族 摩斯密碼 url轉碼 柵欄密碼 進製轉換 培根加密 各種 加密 特徵 base64,32密文都有等於號 base16就是16進製制轉ascii問題不大吧 base32編碼是由大寫字母 a z 和數字234567組成與base64類似 解密 裡面也有詳細的說明,有興趣的自己看看 轉...
關於密碼學的總結
古典密碼與現代密碼 對稱加密與非對稱加密 單向雜湊函式 編碼與加密 數字簽名與數字證書 區分古典加密和現代加密的乙個很重要的因素是,古典加密一般都是比較簡單的,而現代加密基本不存在手工解密的可能 古典加密又分為以下兩種 1 置換密碼 把明文中的字母重新排列,字母本身不變,只改變其位置。2 代換密碼 ...