對稱 非對稱加密,數字簽名,數字證書

2021-10-20 14:33:13 字數 2039 閱讀 8883

現代密碼學中,加密演算法包括兩部分

先介紹下對稱加密與非對稱加密的概念。

對稱加密相對於非對稱加密,速度更加快捷,因此對於大量內容進行加密傳輸時,一般使用對稱加密進行加密通訊。但是對稱加密的金鑰如何安全的讓對方知道是乙個問題。因此使用對稱加密進行通訊之前,往往需要使用非對稱加密交換金鑰,然後再使用對稱加密進行通訊。

明文傳過去也可以使用一定的演算法使得即使黑客截獲了這段明文也不知道金鑰是啥,這就是著名的dh金鑰協商演算法。

我們來看dh演算法交換金鑰的步驟,裡面涉及一些冪與取餘運算,對數學要求比較高,我這裡簡化一下,假設有乙個函式f,輸入a,b得到f(a,b),但是不能通過f(a,b)和b推出a,a和b可以交換。假設a和b要在網上明文協商乙個金鑰。

a和b都生成乙個自己的隨機數,就自己知道,分別叫ra和rb。

a將ra和c輸入函式f得到f1,並將c和f1傳送給b

b利用rb和c輸入函式得到f2,並將f2傳送給a,自己利用rb和f1輸入f得到金鑰s

a利用f2和ra輸入函式得到金鑰s

這樣由於黑客不知道ra或rb,即使知道了f1/f2/c 依然無法得出金鑰s。這裡的函式f還有這樣的特性,就是f(ra,f(rb,c)) = f(rb,f(ra,c)),反正偉大的數學家就是能想到這樣的函式,咱不用管。但是dh演算法並不能解決中間人攻擊的問題:如果黑客截獲了b訊息,偽裝b的身份與a進行金鑰協商,那a是不清楚自己的協商物件居然是黑客的,因此還不能算安全。非對稱加密本身也無法從根本上解決這個問題,而需要借助第三方ca機構才能解決。

這裡涉及到三個問題:

非對稱加密如何傳輸金鑰?

數字簽名什麼,怎麼工作的?

安全證書是什麼,如何工作的?

考慮這樣的場景,a想要與b進行加密通訊,但是a和b並沒有機會線下告訴對方使用什麼金鑰加密資訊,於是準備使用非對稱加密的方法先將金鑰傳過去。由於非對稱金鑰公鑰大家都可以知道,因此a知道b的公鑰,b也知道a的公鑰,但是他兩的私鑰都只有自己知道。於是a使用b的公鑰加密金鑰,然後傳送給b。由於公鑰加密的資訊只有對應的私鑰能解,於是b使用自己的私鑰解密後就可以得到金鑰,接下來就可以使用金鑰與a進行加密通訊了。

但故事到這裡並沒有結束,假如有個黑客h,他攔截了a傳送給b的資訊,因為他也有b的公鑰,那麼他也可以用b的公鑰加密乙個假金鑰傳送給b,b同樣能用自己的私鑰解密,從此b和h使用假金鑰進行加密通訊,a反而成了外人。。。因此這裡就有乙個問題,b需要確認這個訊息是a發來的而不是h或者其它人發來的才行!於是引來了數字簽名這個概念。

數字簽名這個與我們日常生活中的簽名作用是一樣的,就是我們的簽名別人是很難偽造的,計算機裡也一樣。什麼是數字簽名?a在傳送內容之前,首先使用hash演算法對資料生成一段摘要,然後再使用a自己的私鑰對這個摘要進行加密,生成的密文就是這段內容的數字簽名(思考:為什麼不直接對內容簽名?)。然後a使用b的公鑰加密內容(這裡我們加密的是金鑰),並將加密後的內容以及簽名一起發過去。b收到訊息後,使用自己的私鑰解密內容(金鑰),得到內容明文,然後使用同樣的hash演算法對內容生成摘要1。接著,再使用a的公鑰解密簽名,得到摘要2,再對比摘要1和摘要2,如果一致,就說明確實是a發來的,並且內容沒有篡改,從而這個數字簽名的確起到辨認身份的作用了。

故事到這裡依然沒有結束:雖然a和b的公鑰是公開的,但是a怎麼知道自己手上拿到的公鑰就是b的呢?在b向a傳送公鑰的時候,黑客就可以攔截,將自己的公鑰發給a呀,那這樣的話,b又成了外人。。。所以a需要確認公鑰是b本人發的,而不是黑客h或其它人發的。數字簽名可以解決這點,但是數字簽名的前提是a知道b的公鑰,才行啊,否則加密內容使用的是h的公鑰,那h不就可以解開了嗎。這樣套娃下去是沒有止境的,因此需要引入第三方權威機構來幫助進行身份認證。

假設我們有乙個權威機構,叫ca,大家都認為他是可信的(如果他也有壞心思,那麼就不安全了)。我們所有的計算機瀏覽器裡面,都會將他的公鑰內建到瀏覽器。然後b首先向ca註冊自己的公鑰,ca會利用上面的數字簽名這套機制生成公鑰密文以及數字簽名作為b的數字證書。由於b在向ca註冊公鑰時,需要經過比較嚴格的認證,因此認為這個過程也是可信的。然後a想要得到b的公鑰,就向ca詢問,ca就將b的數字證書發給a,a就能利用ca的公鑰來驗證數字簽名,確保的確是ca傳送過來的,並且內容沒有做過篡改,然後就得到了b的金鑰了。

對稱加密 非對稱加密 數字簽名 數字證書

下面假設有a和b兩個人,其中b要給a傳送資訊。對稱加密 des aes 對稱加密是指加密和解密使用同乙個秘鑰。如果a和b兩個人想要通訊,就需要先約定好乙個秘鑰,只有他們兩個知道這個秘鑰,這樣自然能夠保證資料安全。對稱加密優點是加密解密效率高,缺點是秘鑰管理困難,a與任何乙個人通訊都需要各自約定秘鑰,...

非對稱加密 數字簽名,數字證書

非對稱加密對我們現在來說,其實是比較常見的,https,git 管理,最新的 ain交易時,都使用到了非對稱加密做核心的資料傳輸來完成.而數字簽名,數字證書也是非對稱加密的衍生品,非對稱加密的主要實現是通過一對私鑰 privatekey 和公鑰 publickey 完成的,這個過程就是原始資訊用私鑰...

理解對稱加密 非對稱加密 數字簽名 數字證書

參考文件 對稱加密 資料保密性 演算法 des 3des rc5 aes 特點 加密和解密使用相同的金鑰 加密原文 非對稱加密 資料保密性 演算法 dh rsa 特點 需要兩個秘鑰公鑰和私鑰 加密速度慢,只可用其加密小資料 如對稱金鑰 訊息摘要 加密後密文會變長 數字簽名 資料完整性和驗證傳送方身份...