91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Openssl及加密解密(一)數據加密解密及CA原理

發布時間:2020-06-11 19:13:22 來源:網絡 閱讀:1464 作者:linuxjavachen 欄目:安全技術

明文:plaintxt或者cleartext,也就是沒有加密的,直接可以看懂的內容。密文就是通過特殊方式處理過的內容,無法直接看懂。

常見的加密方式:

  • 對稱加密

  • 公鑰加密

  • 單向加密

加密原理:將原文按固定大小切割成數據塊,逐個數據塊進行加密,因為逐字符加密的速度太慢了。在加密是通常把第一個塊加密,然后再把第二個塊加密,輸出的第二個塊還不是加密以后的第二個塊,而是將第一個塊加密后的結果和第二個塊加密后的結果做異或操作作為第二個塊的輸出,所以你每拿到一個塊之后要想還原就必須拿到前一個塊,來做異或操作。


秘鑰交換(IKE):DH算法。也就是在秘鑰交換過程中沒有發送任何密碼,A經過計算生成一些數據給了B,B自己再生成一些數據傳給A,A和B拿著對方給的數據經過計算得出口令,而且這個口令是一樣的。


對稱加密:

加密算法+口令,把要轉換的數據也就是明文數據,通過加密算法內部轉換明文變成密文。這個算法可能是公開的,但口令只有你自己知道。為了更加安全,那么加密本身不能過于依賴算法,因為算法固定而且一旦算法遭到破解,那么基于這個算法的所有密文都可以破解,所以算法固然重要,但是最重要的是口令,口令可以變,就算算法破解了,口令不知道也是沒有用的。對稱加密是加密和解密都使用相同的口令。比如DES(56bits)、AES(128bits)、AES(192bits)、AES(256bits)、3DES。

對稱加密有個問題,算法對方可以拿到,但是口令呢?所以這是它最大的問題。如果通信涉及到多個方面而且口令不能使用相同的,那么你需要記錄的密碼就非常多。所以對稱加密無法解決秘鑰交換的問題,還有我給你密碼如何保證收到密碼的就是你也就是認證問題,另外就是別人截獲密文然后做了修改收到的人解密后信息不對但是他并不知道這就數據完整性問題。

公鑰加密(非對稱加密):

相對于對稱加密而言,公鑰加密是非對稱加密,它會生成公鑰和私鑰,公鑰可以給任何人是公開的,A使用B的公鑰進行加密,B使用自己的私鑰進行解密。它解決了對稱加密中需要記錄眾多口令的問題。但是公鑰加密的密碼長度很長,早期的512位到現在的2048位,這種加密方式造成加密速度很慢所以公鑰加密一般不用來加密數據,而是用來加密口令,數據還是用對稱加密。A生成口令加密數據,然后用B的公鑰加密口令,然后把加密后的口令和數據傳遞給A,A用私鑰解密口令,得到口令后再用口令解密數據。常用的公鑰加密算法:RSA、DSA、DES、AES

這個過程也實現了秘鑰交換過程,同時它還可以實現用戶身份的認證即發信息的人是它聲稱的人,它是這么實現的,A用自己的私鑰加密,如果要想解密就只能使用A的公鑰,雖然公鑰任何人都能獲得,但是你用A的公鑰一旦解密了信息,就證明這個信息是用A的私鑰加密的,只有A才有A自己的私鑰,所以就證明了發信息的這個人就是A。這時候你會想到,用自己的私鑰加密數據那不等于沒加密一樣么,因為公鑰誰都可以得到。再說公鑰加密算法速度慢,用私鑰加密也一樣。所以通常都在引入另外一種方式,也就是單向加密。

單向加密:

單向加密可以保證數據完整性,經過加密的數據如何保證不被篡改,它本身不是一種加密技術而是一種不可逆的抽取數據指紋的技術,常見的有MD5、SHA1、SHA512、CRC32等。那么如果篡改了如何發現?A對數據抽取一段使用單向加密來獲取特征碼,也叫指紋信息。但是如何保證指紋信息不被篡改和重新生成呢?這就是上面說的和公鑰加密結合。A抽取數據一段進行單向加密,生成特征碼,然后用自己的私鑰加密特征碼,發送給B,這時候C截獲了數據,然后使用A的公鑰解密了特征碼,然后再篡改了數據,這時候C再想加密特征碼而他沒有A的私鑰所以C只能用自己的私鑰加密特征碼,當B收到數據以后,B使用單向加密獲取數據的特征碼,然后用A的公鑰來解密發過來的加密特征碼,顯然無法成功,假設C沒有篡改特征碼而是修改的數據,那么B使用單向加密獲取數據特征碼,然后用A的公鑰解密加密的特征碼,兩者一對比肯定不一樣。雖然上述過程沒有考慮數據本身的加密,但由于可非對稱加密結合,實現了秘鑰交換、身份驗證、數據完整性,但無法保證數據私密性。那如何同時實現數據加密、數據完整性和身份認證呢


那如何同時實現數據加密、數據完整性和身份認證呢

三種方法融合在一起

  1. A生成原始數據,使用單向加密計算數據特征碼(保證數據完整性),然后用A自己的私鑰加密特征碼(保證身份驗證)

  2. A再找一個密碼,用對稱加密算法把數據、特征碼整體加密(實現了對數據的加密,因為對稱加密算法速度快)

  3. A再使用B的公鑰,第二不中的對稱加密算法中的密碼進行加密。

  4. 上述三步完成后,發送給B。

第三方如果截獲了數據,它沒有B的私鑰所以無法獲得解密數據的密碼,從而無法解密數據。下面是B獲得數據后的步驟:

  1. B使用自己的私鑰解密獲取密碼(因為只有自己的私鑰才可以解密,證明是發給自己的,實現了秘鑰交換)

  2. B使用獲得的對稱加密密碼進行解密數據(原始數據和數據特征碼),(實現了數據加密和解密)

  3. B使用A的公鑰解密特征碼,然后使用單向加密算法計算數據特征碼(實現了身份驗證,因為只有A的公鑰才能解密A的私鑰加密的數據)

  4. 對比解密后的特征碼和計算后的特征碼,如果一致說明數據沒有篡改(實現了數據完整性)


上面的過程看似完美,但實際上還有很大漏洞,A發送給B之前肯定向B索取B的公鑰,而且A拿到之后必須要相信這個公鑰就是B的,但如果C截取了信息,C把自己的公鑰給了A,并聲稱自己是B,那么A是無法驗證的,同樣C也依然可以冒充A。所以整個過程最薄弱的環節就是交換公鑰的環節。為了解決這個問題這就是需要第三方機構,也就是我們要說的CA。那么申請方向CA提交信息進行審核其中最重要的是公鑰,審核通過后CA會把產生一個證書,之后把證書發給申請方。為了避免證書發送過程中偽造,則CA會計算申請者提交信息的特征碼,然后用自己的私鑰(CA自己的證書是自己給自己頒發的)進行加密后一起發送給申請方。申請方用CA的公鑰解密,如果成功就證明是CA發的。CA對特征碼進行加密就是電子簽名。

這時候A要給B通訊,A向B要證書(證書中包含B的公鑰,當然也可以同時包含公鑰和私鑰),然后A去CA獲取CA的公鑰,然后用公鑰解密證書的數字簽名得到特征碼,如果成功就證明證書是CA頒發的且沒有被篡改。但這里又出現上面的問題,A向CA索要公鑰,萬一有人冒充CA怎么辦?這就是在操作系統中內置全球知名CA的公鑰。你只要是通過正規渠道獲取的正版系統,那么所包含的公鑰都是真實可靠的。


PKI(Public Key Infrastucture):公鑰基礎設施,公鑰發放吊銷等機制。


上面都是概念,而實現這些概念的軟件常用的就是openssl、gpg.



向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

宜州市| 遵义市| 玛沁县| 永新县| 洛隆县| 古丈县| 新乡县| 平山县| 积石山| 临高县| 汝州市| 玉门市| 凉城县| 中方县| 班玛县| 柞水县| 吕梁市| 鞍山市| 宣汉县| 钟山县| 通江县| 驻马店市| 阳西县| 平塘县| 同仁县| 星座| 习水县| 武穴市| 乌拉特后旗| 岳普湖县| 长顺县| 如皋市| 新竹县| 中方县| 绩溪县| 甘肃省| 海安县| 威信县| 安平县| 信宜市| 错那县|