密碼學
主要內容:
雜湊演算法,數字摘要,加密演算法,數字簽名,數字證書,PKI體系,MERKLE樹,布隆過濾器,同態加密
一、雜湊:
優秀的雜湊滿足:
正向快速:給定銘文和雜湊演算法,有限時間有限資源快速計算出雜湊值
逆向困難:給定若干雜湊值,有限時間內幾乎不可能逆向推到出明文
輸入敏感:原始資料改變少量,雜湊改變大量
衝突避免:不同明文雜湊相同概率極低.(強抗碰撞,弱抗碰撞)
二、數字摘要:
通過對數字內容進行雜湊計算,獲取唯一的雜湊值來代替完整的數字內容.解決了驗證內容是否被篡改的問題.
三、雜湊防護:
通常情況下資料庫不會儲存明文密碼,儲存的是加密後的密碼,MD5或者雜湊之後的密碼,但是有人會收集常用密碼的密文製作彩虹表,來破解密文,為了防止這種情況通常情況使用加鹽的方式,來避免.就是對明文進行加密之前在明文內加入一段值, 稱作 “鹽”.
四、訊息驗證碼:
主要用於身份的認證,一般是提前共享雜湊演算法H 和對稱加密的祕鑰K ,之後A向B 傳送隨機訊息, B進行計算,得到訊息的驗證碼,把訊息的驗證碼返回給A.驗證通過. 需要保證安全的通道.
五、數字簽名:基於非對稱加密,為了證明訊息的完成性(未被篡改),和訊息的來源.盲簽名,多重簽名,群簽名,環簽名.
盲簽名:防止簽名者看到訊息
多重簽名:手機到多數簽名,多人投票, 多人公正.
群簽名:群組中隨機一人簽名代表群組, 隨機選主,簽名
環簽名:簽名者,拉群組中幾個人,使用他們的公鑰和自己的私鑰進行簽名.
六、數字證書:解決公鑰的分發過程中被篡改,偽造的問題.
證書包括:基本資料(版本,序列號) 所簽名物件資訊(簽名演算法型別,簽發者資訊,有效期,被簽發人,簽發的公開祕鑰),CA數字簽名.
一般證書是由 權威的CA機構頒發. 如DigiCert, GlobalSign,VeriSign等
CA數字證書是通過頒發機構的公鑰進行加密的數字簽名.
驗證數字證書的有效性,除了通過版本,有效期等最重要的是通過驗證CA數字簽名來實現,
驗證CA數字簽名就需要頒發者的公鑰進行驗證,頒發者的公鑰又可以通過數字證書來頒發.
因此形成的數字證書的信任鏈.最高階的信任機構是權威的認證機構.
一般目前作業系統和瀏覽器中都存有權威機構的公鑰,這個作為最上級的公鑰.
七、KPI體系對數字證書的生命週期進行管理
KPI是建立在公私鑰基礎上,實現安全可靠傳遞訊息和身份確認的通用框架.
主要包括:
CA:負責頒發證書,作廢證書,結構來自RA請求.
RA:對使用者身份驗證,檢驗資料合法性,登記,稽核過了發給CA.
證書資料庫:存放證書,多采用X.500標準格式
流程:使用者申請,給RA提交身份資訊,RA進行驗證,登記,通過後發給CA,CA對使用者公鑰進行簽名(也就是頒發證書).或者作廢證書.
兩種方式:一種是 CA生成公鑰私鑰對,公鑰簽名發給使用者, 一種是使用者自己生成公鑰私鑰,把公鑰給CA簽名.
操作:使用openssl 生成私鑰 和對應的證書請求檔案.
證書的撤銷:維護一個撤銷證書列表,證書如果在撤銷列表中則已經撤銷.
涉及到驗證一個證書是否存在於一個資料集中的問題.
通過MERKEL(默克爾)樹來解決. 或者布隆過濾器.
參考: http://blog.csdn.net/zhuihunsuomeng/article/details/54629627 默克爾樹
http://blog.bifubao.com/2014/03/16/proof-of-reserves/ 100%準備金證明
零證明問題:
八、常見加密演算法:
1、對稱加密演算法:常見有DES ,AES ,IDEA 等,加密祕鑰和解密祕鑰相同,加密速度快,適合大資料量加密,通常情況是分組加密,可以並行處理。
2、非對稱加密演算法:有RSA 演算法、橢圓曲線,SM2加密演算法。
RSA是目前最有影響力的公鑰加密演算法,它能夠抵抗到目前為止已知的所有密碼攻擊,已被ISO推薦為公鑰資料加密標準。RSA演算法基於一個十分簡單的數論事實:將兩個大素數相乘十分容易,但那時想要對其乘積進行因式分解卻極其困難,因此可以將乘積公開作為加密金鑰。
參考資料: http://blog.csdn.net/clj198606061111/article/details/9090407
3、DH祕鑰交換協議,
實際上就是採用了RSA的原理.把對稱加密的祕鑰進行交換.
總結:
分散式協議不同節點間達成一致,需要保證訊息傳遞過程中, 訊息完整性,訊息來源的可靠性,訊息的私密性.
因此 需要驗證訊息的來源,訊息的完整,對訊息加密.瞭解各種加密演算法,方便進行選擇.另外還要考慮加密的效率,加密後密文的大小.
相關文章
- 應用密碼學——古典密碼密碼學
- 《密碼學系列》|| 密碼學中的流密碼是怎麼回事?密碼學
- 密碼學基礎概念 — 密碼學複習(一)密碼學
- 應用密碼學 - 公鑰密碼密碼學
- 應用密碼學——分組密碼密碼學
- mysql學習之-密碼管理(預設密碼,修改密碼,解決忘記密碼)MySql密碼
- 分組密碼(一) — 密碼學複習(四)密碼學
- 密碼學入門密碼學
- killBase系列 -- 密碼學密碼學
- 密碼學筆記密碼學筆記
- 古典密碼學 (一)密碼學
- 密碼學簡述密碼學
- 古典密碼的演化 (一)— 密碼學複習(二)密碼學
- 古典密碼的演化 (二)— 密碼學複習(三)密碼學
- 密碼危機:深度學習正在加速密碼破解!密碼深度學習
- 密碼學與密碼安全:理論與實踐密碼學
- [譯] 密碼學速成課密碼學
- 密碼學期末複習密碼學
- [密碼學複習]Cryptography密碼學
- BTC-密碼學原理密碼學
- 密碼學(原創心得)密碼學
- 密碼學常用解碼網站密碼學網站
- 【密碼學系列】|| 分組密碼的工作模式詳解密碼學模式
- 密碼學課程設計 - 混合密碼的實現密碼學
- CTF---密碼學入門第六題 古典密碼密碼學
- 【密碼學原理】流密碼和RC4演算法密碼學演算法
- Android密碼學相關Android密碼學
- 密碼學的主要任務密碼學
- RSA加密原理&密碼學&HASH加密密碼學
- 密碼學之對稱加密密碼學加密
- iOS逆向(1)-密碼學(RSA)iOS密碼學
- 密碼學系列之:feistel cipher密碼學
- 古代密碼學與資訊保安密碼學
- 計算機密碼學01計算機密碼學
- 密碼學 與 Node.js密碼學Node.js
- 密碼學心得2(原創)密碼學
- 密碼學入門知識密碼學
- 分組密碼(四)AES演算法① — 密碼學複習(七)演算法密碼學