A. 對稱加密、非對稱加密、RSA(總結)
指的就是加、解密使用的同是一串密鑰,所以被稱做對稱加密。對稱加密只有一個密鑰作為私鑰。 常見的對稱加密演算法:DES,AES等。
指的是加、解密使用不同的密鑰,一把作為公開的公鑰,另一把作為私鑰。公鑰加密的信息,只有私鑰才能解密。反之,私鑰加密的信息,只有公鑰才能解密。 舉個例子,你向某公司伺服器請求公鑰,伺服器將公鑰發給你,你使用公鑰對消息加密,那麼只有私鑰的持有人才能對你的消息解密。與對稱加密不同的是,公司伺服器不需要將私鑰通過網路發送出去,因此安全性大大提高。最常用的非對稱加密演算法:
對稱加密相比非對稱加密演算法來說,加解密的效率要高得多、加密速度快。但是缺陷在於對於密鑰的管理和分發上比較困難,不是非常安全,密鑰管理負擔很重。
安全性更高,公鑰是公開的,密鑰是自己保存的,不需要將私鑰給別人。缺點:加密和解密花費時間長、速度慢,只適合對少量數據進行加密。
安全肯定是非對稱加密安全,但是效率比較慢,對稱加密效率高,但是不安全。嚴謹一點的做法是混合起來使用,將對稱加密的密鑰使用非對稱加密的公鑰進行加密,然後發送出去,接收方使用私鑰進行解密得到對稱加密的密鑰,然後雙方可以使用對稱加密來進行溝通。實際工作中直接使用非對稱加、解密其實也可以,因為我們平時一般請求的報文不會很大,加解密起來速度在可接受范圍內,或者可以對敏感欄位,比如密碼、手機號、身份證號等進行分段加密,效率還可以。
B. 對稱加密演算法和非對稱加密演算法
常見的對稱加密演算法包括瑞士的國際數據加密演算法(International Data Encryption
Algorithm,IDEA)和美國的數據加密標准(Date Encryption Standard,DES)。
DES是一種迭代的分組密碼,明文和密文都是64位,使用一個56位的密鑰以及附加的8位奇偶校驗位。攻擊DES的主要技術是窮舉法,由於DES的密鑰長度較短,為了提高安全性,就出現了使用112位密鑰對數據進行三次加密的演算法(3DES),即用兩個56位的密鑰K1和K2,發送方用K1加密,K2解密,再使用K1加密;接收方則使用K1解密,K2加密,再使用K1解密,其效果相當於將密鑰長度加倍。
IDEA是在DES的基礎上發展起來的,類似於3DES。IDEA的明文和密文都是64位,密鑰長度為128位。
非對稱加密演算法也稱為公鑰加密演算法,是指加密密鑰和解密密鑰完全不同,其中一個為公鑰,另一個為私鑰,並且不可能從任何一個推導出另一個。它的優點在於可以適應開放性的使用環境,可以實現數字簽名與驗證。
最常見的非對稱加密演算法是RSA,該演算法的名字以發明者的名字命名:Ron Rivest,AdiShamir 和Leonard Adleman。RSA演算法的密鑰長度為512位。RSA演算法的保密性取決於數學上將一個大數分解為兩個素數的問題的難度,根據已有的數學方法,其計算量極大,破解很難。但是加密/解密時要進行大指數模運算,因此加密/解密速度很慢,主要用在數字簽名中。
用公鑰進行加密,用私鑰進行解密
C. 2019-06-10 對稱加密 和非對稱加密
一、對稱加密
AES加密
AES加密是一種高級加密標准,是一種區塊加密標准。它是一個對稱密碼,就是說加密和解密用相同的密鑰。WPA/WPA2經常用的加密方式就是AES加密演算法。
二、非對稱加密
RSA加密演算法是一種非對稱加密演算法,非對稱加密演算法需要兩個密鑰:公共密鑰和私有密鑰。公鑰和私鑰是配對的,用公鑰加密的數據只有配對的私鑰才能解密。
RSA對加密數據的長度有限制,一般為密鑰的長度值-11,要加密較長的數據,可以採用數據截取的方法,分段加密。
使用場景:
文件或數據在本地使用公鑰或私鑰加密,加密後的數據傳送到伺服器,伺服器使用同一套密鑰中的私鑰或者公鑰進行解密。
一、Https是什麼?
1.HTTPS概念
HTTPS並不是一個單獨的協議,而是對工作在一加密連接(SSL/TLS)上的常規HTTP協議。通過在TCP和HTTP之間加入TLS來加密。
2.SSL/TLS協議
SSL協議,是一種安全傳輸的協議,TLS是SSL v3.0的升級版。
4.HTTPS傳輸速度
1)通信慢
2)SSL必須進行加密處理,比HTTP消耗更多資源
二、TLS/SSL握手
1.密碼學原理
1)對稱加密
加密數據用的秘鑰和解密數據用的密鑰是一樣的。
2)不對稱加密
私有密鑰:一方保管
共有密鑰:雙方公有
RSA演算法。
2.數字證書
1)就是互聯網通訊中標志通訊各方身份信息的一串數字,也是一個文件。
2)為什麼有數字證書?
3)數字證書的頒發過程?
3.SSL與TLS握手的過程?
使用非對稱加密,隨機數不能被隨便破解
Https雙向認證的流程:
a. 客戶端向服務端發送SSL版本等信息
b. 服務端給客戶端返回SSL版本,同時也返回伺服器端的證書
c. 客戶端使用服務的返回的信息驗證伺服器的合法性,
a) 包括:證書是否過期,發型伺服器證書的CA是否可靠,返回的公鑰能正確解開返回證書中的數字簽名,伺服器證書上帝域名是否和伺服器的實際域名想匹配
b) 驗證通過後,將進行通信,否則終止通信
d. 客戶端將自己的證書和公鑰發送給服務端
e. 驗證客戶端的證書,通過驗證後,會獲得客戶端的公鑰
f. 客戶端向服務端發送自己可以支持的對稱加密方案給服務端,讓服務端進行選擇
g. 服務端在客戶端提供的加密方案中選擇加密程度高的加密方式
h. 將加密方案通過使用之前獲取到的公鑰進行加密,返回給客戶端
i. 客戶端收到服務端返回的加密方案後,使用自己的私鑰進行解密,獲取具體的加密方式,最後,產生加密方式的隨機碼,用作過程中的密鑰,使用之前從客戶端證書中獲取到的公鑰進行加密後,發送嘿服務端
j. 服務端收到客戶端發來的消息後,使用私鑰對加密信息進行加密,獲得對稱加密的密鑰
k. 對稱加密,確保通信安全
總結:https實際上就是在TCP層與http層之間加入了SSL/TLS來為上層的安全保駕護航,主要用到了對稱加密,非對稱加密,證書等技術進行客戶端與伺服器的數據加密傳輸,最終達到保證整個通信的安全性。
D. 對稱加密和非對稱加密的區別如何理解二者之間的密碼演算法
對稱加密和非對稱加密,最重要的的區別就是加密演算法的不同:對稱加密演算法在加密和解密時使用的是同一個秘鑰,而非對稱加密演算法需要兩個密鑰來進行加密和解密,這兩個秘鑰是公開密鑰(簡稱公鑰)和私有密鑰(簡稱私鑰)。
綜上所述,對稱加密和非對稱加密,區別關鍵是加密密鑰的不同。
E. 對稱加密與非對稱加密的技術有什麼區別
對稱加密與非對稱加密
對稱加密,或專用密鑰(也稱做常規加密)由通信雙方共享一個秘密密鑰。
發送方在進行數學運算時使用密鑰將明文加密成密文。接受方使用相同的密
鑰將密文還原成明文。RSA
RC4演算法,數據加密標准(DES),國際數據加密
演算法(IDEA)以及Skipjack加密技術都屬於對稱加密方式。
非對稱加密,當發送信息時,
發送方使用接收方的公鑰對數據加密,而接收方則使用自己的私鑰解密,
這樣,信息就可以安全無誤地到達目的地了,即使被第三方截獲,由於沒有相應的私鑰,
也無法進行解密。通過數字的手段保證加密過程是一個不可逆過程,即只有用私有密鑰才能解密。
公用密鑰加密技術允許對信息進行數字簽名。數字簽名使用發送發送一方的
專用密鑰對所發送信息的某一部分進行加密。接受方收到該信息後,使用發
送方的公用密鑰解密數字簽名,驗證發送方身份。在對稱加密(或叫單密鑰
加密)中,只有一個密鑰用來加密和解密信息。盡管單密鑰加密是一個簡單
的過程,但是雙方都必須完全的相信對方,並都持有這個密鑰的備份。但要
達到這種信任的級別並不是想像中的那麼簡單。當雙方試圖建立信任關系時
可能一個安全破壞已經發生了。首先密鑰的傳輸就是一個重要問題,如果它
被截取,那麼這個密鑰以及相關的重要信息就沒有什麼安全可言了。非對稱
加密在加密的過程中使用一對密鑰,而不像對稱加密只使用一個單獨的密鑰
。一對密鑰中一個用於加密,另一個用來解密。重要的概念是在這對密鑰中一個密鑰用來公用
,另一個作為私有的密鑰;用來向外公布的叫做公鑰,另一半需要安全保護
的是私鑰。非對稱加密的一個缺點就是加密的速度非常慢,因為需要強烈的
數學運算程序。如果一個用戶需要使用非對稱加密,那麼即使比較少量的信
息可以也要花上幾個小時的時間。
非對稱加密的另一個名稱叫公鑰加密
。盡管私鑰和公鑰都有與數學相關的,但從公鑰中確定私鑰的值是非常困難
的並且也是非常耗時的。在互聯網上通信,非對稱加密的密鑰管理是容易的
因為公鑰可以任易的傳播,私鑰必須在用戶手中小心保護。
F. 科普知識—對稱加密和非對稱加密
區塊鏈技術中廣泛應用到非對稱加密技術,非對稱加密技術保證了信息在傳輸過程中的安全性,非對稱加密技術是在對稱加密技術上發展來的。本文主要闡述對稱加密技術和非對稱加密技術的概念和特點,並舉例說明。
對稱加密就是用相同的密鑰對原文進行加密和解密,通信雙方共用一個密鑰。
基於對稱加密演算法傳輸信息「ABC」的步驟。
(1)發送方通過密鑰對原文"ABC"進行加密,得到密文"abc",並發送給接收方。密鑰為將字母轉換為對應的小寫字母,大寫A轉換為小寫a,「BC」同理轉換為「bc」。
(2)發送方將密鑰發送給接收方。
(3)接收方通過密鑰對密文進行解密,反推出原文「ABC」。
對稱加密演算法的缺點:無法確保密鑰被安全傳遞。
密鑰就是傳說中的「密碼本」。密文在傳輸過程中是可能被第三方截獲的,關鍵就落在「密碼本」上,如果密碼本也被第三方截獲,則傳輸的密碼信息將被第三方破獲,所以經常看到電影、電視劇的情節中通過各種手段保護密碼本的安全送達。
非對稱加密技術很好的解決了對稱加密技術密鑰無法安全傳遞的問題。
非對稱加密有兩個密鑰,即公鑰(Public Key)和私鑰(Private Key),對數據進行加密和解密使用不同的密鑰。使用公鑰進行加密,使用私鑰進行解密。
非對稱加密演算法中私鑰就是一個隨機數,基於不同的演算法生成不同的隨機數,如:SHA256演算法生成的是256位的隨機數,通常是調用操作系統的隨機數生成器來生成私鑰,私鑰通過一定的加密演算法推導出公鑰,私鑰到公鑰的推導過程是單向的,也就是說公鑰無法反推導出私鑰。
基於非對稱加密演算法傳輸信息「hello world」的步驟。
(1)發送方使用接收方的公鑰對待發送信息「hello world」加密,此處需注意:信息發送給誰,使用誰的公鑰進行加密,公鑰是可以公開的,類似於銀行卡賬戶。
(2)發送方將加密後的密文通過網路發送給接收方。
(3)接收方接收到密文後,使用自己的私鑰對密文進行解密,從而獲得傳輸信息「hello world」。
採用非對稱加密演算法即使第三方在網路上截獲到密文,但其無法獲得接收方的私鑰,也就無法對密文進行解密,作為接收方務必保證自己私鑰的安全,所以非對稱加密技術解決了密鑰傳輸過程的安全性問題。
本文主要闡述對稱加密技術和非對稱加密技術的概念和特點,並舉例說明。對稱加密是通信雙方共用密鑰,無法保證密鑰的安全傳遞;非對稱加密使用接收方的公鑰對數據加密,接收方使用自己的私鑰解密,即使信息被第三方截獲,由於沒有接收方的私鑰,也無法破解密文。