對稱加密和非對稱加密(一)初步理解
先查大範圍 專業術語 再查小範圍 便於理解 巨集觀概念
然後針對小範圍的點,去精準查詢 理解細節
一、面臨的問題: 金鑰分發
在加密演算法之外,面臨一個問題,那就是:祕鑰的分發。就是說,解密方如何獲得加密方的祕鑰呢? 從而出現了:對稱加密和非對稱加密。
二、對稱加密和非對稱加密
1. 對稱加密
對稱加密指的就是加密和解密使用同一個祕鑰,所以叫做對稱加密。對稱加密只有一個祕鑰,作為私鑰。
常見的對稱加密演算法:DES,AES,3DES等等。
2. 非對稱加密
非對稱加密指的是:加密和解密使用不同的祕鑰,一把作為公開的公鑰,另一把作為私鑰。公鑰加密的資訊,只有私鑰才能解密。私鑰加密的資訊,只有公鑰才能解密。
常見的非對稱加密演算法:RSA,ECC
3. 區別
對稱加密演算法相比非對稱加密演算法來說,加解密的效率要高得多。但是缺陷在於對於祕鑰的管理上,以及在非安全通道中通訊時,金鑰交換的安全性不能保障。所以在實際的網路環境中,會將兩者混合使用.
例如針對C/S模型,
1. 服務端計算出一對祕鑰pub/pri。將私鑰保密,將公鑰公開。
2. 客戶端請求服務端時,拿到服務端的公鑰pub。
3. 客戶端通過AES計算出一個對稱加密的祕鑰X。 然後使用pub將X進行加密。
4. 客戶端將加密後的密文傳送給服務端。服務端通過pri解密獲得X。
5. 然後兩邊的通訊內容就通過對稱金鑰X以對稱加密演算法來加解密。
對稱加密和非對稱加密的區別
1對稱加密:加密解密用同一個金鑰,被黑客攔截不安全
2非對稱加密:公鑰加密,私鑰解密;公鑰可以公開給別人進行加密,私鑰永遠在自己手裡,非常安全,黑客攔截也沒用,因為私鑰未公開。著名的RSA加密演算法用的就是非對稱加密。
第一步:ipB先給A傳送B公鑰,ipA用B公鑰加密A公鑰傳送給ipB,ipB拿到後,用B私鑰去取裡面內容,ipB拿到A公鑰。
第二步:雙方通訊用對方公鑰直接加密後傳送。接收方用自己的私鑰去解密。
舉例子理解:
最簡單易懂的非對稱加密
北京的張三發了一個快遞到廣州的李四,途中經過了上海,上海快遞中心出現了一個黑客老王,他偷偷開啟了張三給李四的快遞,然後偷偷把裡邊的衣服剪爛,再按照原樣包裝好發往廣州,可以看到對於這樣簡單包裝的傳輸在中途是可以偷偷修改裡邊的東西。
HTTP的資料包是明文傳輸,也即是如果中途某個黑客嗅探到這個HTTP包,他可以偷偷修改裡邊包的內容,至於張三跟李四是互相不知道這個動作的,因此我們必須要有一個方案來防止這種不安全的篡改行為,有個方法就是加密!
非對稱加密
張三將衣服放到一個保險箱裡邊鎖起來,他打了個電話告訴李四保險箱開櫃密碼是1234,而黑客老王不知道密碼,所以他看不到保險箱裡邊的東西,李四收到快遞後用預先溝通好的密碼就可以開啟保險箱了。
這裡保護的手段就是張三對物品進行加密,同時給了告訴李四解密的方法!
那如果現在要求張三的密碼只能通過快遞傳給李四呢?如果張三直接傳密碼給李四,老王如果嗅探到這個快遞,那老王也知道密碼了,這就無法保護快遞的安全性了。因此還需要有個方案,讓張三能夠告訴李四密碼的同時,老王又無法檢視到張三跟李四通訊的資料。
非對稱加密在這個時候就發揮作用了,來看看怎麼回事:
張三擁有兩把鑰匙,一把叫做公鑰,一把叫做私鑰。公鑰是公開讓全社會都知道,沒關係,張三告訴所有人,你們要傳遞資料給我的時候請先用這個金鑰(公鑰)去加密一下你們的資料,加密後的資料只能通過張三私自藏著的私鑰才能解密。
回到剛剛例子,
張三先發給保險櫃(張三公鑰)給李四,
接著李四把自己的保險櫃(李四公鑰)放到張三的保險櫃(即使用張三的公鑰加密李四的公鑰)裡邊發還給張三,
接著張三拿到李四的資料包後,用自己的私鑰解開了外層保險櫃(張三的公鑰),拿到了裡邊李四保險櫃(李四的公鑰)。
此時李四跟張三都有了各自的公鑰(並且都有他們自己的私鑰),接著只要保證每次互相傳遞資料的時候,把資料放在對方的保險櫃裡邊即可(即每次都用對方的公鑰加密資料),這樣無論如何,老王都無法解開保險櫃(因為只有各自的私鑰才能解開各自的保險櫃)。
轉載地址:https://blog.csdn.net/zam183/article/details/85270472
專業理論基礎:https://blog.csdn.net/zam183/category_7356997.html
相關文章
- 資料加密(對稱加密和非對稱加密)加密
- 對稱加密與非對稱加密加密
- https中的對稱加密和非對稱加密HTTP加密
- 對稱加密、非對稱加密、RSA(總結)加密
- 編碼與加密(對稱加密與非對稱加密)加密
- 加密原理詳解:對稱式加密VS非對稱式加密加密
- Android 安全加密:非對稱加密Android加密
- Android安全加密:非對稱加密Android加密
- 理解區塊鏈的非對稱加密區塊鏈加密
- Java安全之對稱加密、非對稱加密、數字簽名Java加密
- 非對稱加密體系加密
- RSA 非對稱加密&解密加密解密
- 非對稱加密與OpenSSL加密
- ssh與非對稱加密加密
- 非對稱加密與 jwt加密JWT
- Linux系統中對稱加密和非對稱加密區別是什麼?Linux加密
- Linux SSH是什麼?對稱加密和非對稱加密有何區別?Linux加密
- 非對稱加密和數字證書加密
- 非對稱加密和證書總結加密
- 非對稱加密中,加解密和簽名加密解密
- 非對稱加密--RSA原理淺析加密
- 聊聊對稱/非對稱加密在HTTPS中的應用加密HTTP
- 對稱、非對稱的加密技術是如何對網站資料進行雙重加密?加密網站
- golang 中,非對稱加密的實現Golang加密
- 非對稱加密技術:共享祕鑰加密
- 非對稱加密演算法的思考加密演算法
- Android 安全加密:對稱加密Android加密
- Android安全加密:對稱加密Android加密
- 對稱加密體系加密
- 應用加密1;非對稱加密演算法揭祕加密演算法
- 前後端資料加密傳輸 RSA非對稱加密後端加密
- golang 密碼學-2. 非對稱加密Golang密碼學加密
- RSA非對稱加密演算法淺析加密演算法
- 非對稱加密-區塊鏈核心技術之一加密區塊鏈
- 第四篇:非對稱加密及RSA加密演算法加密演算法
- DES對稱資料加密加密
- 非對稱加密演算法-RSA演算法加密演算法
- 使用phpopenssl擴充套件實現非對稱加密PHP套件加密