密碼學

liudashuang2017發表於2018-04-04

主要內容:
雜湊演算法,數字摘要,加密演算法,數字簽名,數字證書,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的原理.把對稱加密的祕鑰進行交換.
總結:
分散式協議不同節點間達成一致,需要保證訊息傳遞過程中, 訊息完整性,訊息來源的可靠性,訊息的私密性.
因此 需要驗證訊息的來源,訊息的完整,對訊息加密.瞭解各種加密演算法,方便進行選擇.另外還要考慮加密的效率,加密後密文的大小.

相關文章