了解數字證書 數字簽名與常見的加密演算法

2021-08-20 09:49:02 字數 2049 閱讀 1914

一、對稱加密

對稱加密指加密和解密使用相同金鑰的加密演算法,也稱為單金鑰加密。他的特點是演算法公開、計算量少、加密速度快,對於同樣大小的傳輸物件,對稱加密效率通常為非對稱加密的千倍左右,因此通常被廣泛應用於很多加密協議的核心工作(如https在真正資料通訊時就使用的對稱加密演算法)。對稱加密演算法的缺點是加解密使用同一把金鑰,一旦一方金鑰洩露,傳輸的資料就存在安全風險。此外,與多方的通訊需要使用不同的金鑰,通訊雙方需要管理大量的金鑰。

常見的對稱加密演算法有:des、3des、aes、rc4、idea等

。二、非對稱加密

非對稱加密使用一對公鑰和私鑰來加密通訊資料,也稱為雙金鑰加密。公鑰和私鑰是成對出現的,通訊資料使用公鑰加密後,只能通過對應私鑰來解密,同樣使用私鑰加密後也只能通過公鑰來解密檢視。公鑰是對外公開的,外界通訊方可以很容易獲取到,而私鑰是不公開的,只存在於己方。伺服器使用私鑰加密資料往外傳輸時,可以被持有公鑰的客戶端解密檢視,但客戶端使用公鑰加密資料傳輸給服務端時,資料是嚴格安全的,只有伺服器使用私鑰才能解密檢視。因此非對稱金鑰資料通訊是單向安全的,客戶端使用服務端的公鑰加密資料傳向服務端是嚴格加密安全的。

非對稱加密的主要用途:① 單向傳輸加密資料,防止中間人攻擊。使用公鑰加密資料並傳輸給接受者,可以確保只有接受者才能獲得明文資訊,一般用於交換對稱金鑰;② 身份驗證和資料校驗。傳送方使用私鑰加密明文資料的hash值,並將明文、加密後的資料和公鑰一起傳送給接收方,接收方只需要通過公鑰解密密文,然後與相同hash演算法獲取明文的hash值進行比較,一致則說明明文資料沒有被篡改,一般用於數字簽名。

常見的非對稱加密演算法有:rsa、dsa、diffie-hellman、ecc等。

三、摘要演算法

摘要演算法也稱為雜湊演算法、雜湊演算法,可以將任意長度的資料轉換成乙個定長的、不可逆的數字。只要原文本不同,計算的結果必然不同(幾乎不用考慮重複的情況)。摘要演算法用於對比資訊源是否一致,因為只要資料來源發生變化,得到的摘要資訊必然不同,通常用於簽名校驗。

常見的摘要演算法有:md5、sha-1、mac、crc等;

四、數字簽名

數字簽名是非對稱加密演算法和摘要演算法的一種應用,能夠保證資訊在傳輸過程中不被篡改,也能保證資料不能被偽造。使用時,傳送方使用摘要演算法獲得發布內容的摘要,然後使用私鑰對摘要進行加密(加密後的資料就是數字簽名),然後將發布內容、數字簽名和公鑰一起傳送給接收方即可。接收方接收到內容後,首選取出公鑰解密數字簽名,獲得正文的摘要資料,然後使用相同的摘要演算法計算摘要資料,將計算的摘要與解密的摘要進行比較,若一致,則說明發布內容沒有被篡改。 

實際上,單一的數字簽名應用,可能會存在安全風險。假設傳送方為a,接收方為b,出現的乙個不安全分子為m,原本a將發布內容、數字簽名和a的公鑰傳送給b,結果半道被m截獲了,m修改了發布內容,用自己的私鑰生成了數字簽名,然後將修改的發布內容、m的數字簽名、m的公鑰傳送給了b,b接收時驗證一樣可通過,但實際上接收的已經是被篡改的資料(見圖1)。實際使用中,數字簽名常常同數字證書一同出現。

圖1 單一數字簽名被中間人攻擊示意圖

五、數字證書

數字證書是由權威的ca機構頒發的無法被偽造的證書,用於校驗傳送方實體身份的認證。解決如上問題,只需要傳送方a找一家權威的ca機構申請頒發數字證書,證書內包含a的相關資料資訊以及a的公鑰,然後將正文a、數字證書以及a生成的數字簽名傳送給b,此時中間人m是無法篡改正文內容而**給b的,因為m不可能擁有這家ca的私鑰,無法隨機製作數字證書。當然,如果m也申請了同一家ca的數字證書並替換傳送修改後的正文、m的數字證書和m的數字簽名,此時b接收到資料時,會校驗數字證書m中的資訊與當前通訊方是否一致,發現數字證書中的個人資訊為m並非a,說明證書存在替換風險,可以選擇中斷通訊。

為什麼ca製作的證書是無法被偽造的?其實ca製作的數字證書內還包含ca對證書的數字簽名,接收方可以使用ca公開的公鑰解密數字簽名,並使用相同的摘要演算法驗證當前數字證書是否合法。製作證書需要使用對應ca機構的私鑰,因此ca頒發的證書是無法被非法偽造的(ca的私鑰洩露不在考慮討論與考慮範圍內)。

數字證書簽名的基礎就是非對稱加密演算法和數字簽名,其無法偽造的特性使得其應用面較廣,https中就使用了數字證書來保證握手階段服務端傳輸的公鑰的可靠性。

數字簽名與數字證書

數字簽名 將 報文按雙方約定的hash 演算法計算得到乙個固定位數的 報文摘要。在 數學上保證 只要改動報文中任何一位,重新計算出的 報文摘要值就會與原先的值不相符。這樣就保證了報文的不可更改性。將該報文摘要值用傳送者的私人 金鑰加密,然後連同原報文一起傳送給接收者,而產生的報文即稱 數字簽名 數字...

數字簽名與數字證書

數字簽名 將 報文按雙方約定的hash 演算法計算得到乙個固定位數的 報文摘要。在 數學上保證 只要改動報文中任何一位,重新計算出的 報文摘要值就會與原先的值不相符。這樣就保證了報文的不可更改性。將該報文摘要值用傳送者的私人 金鑰加密 然後連同原報文一起傳送給接收者,而產生的報文即稱 數字簽名 數字...

數字簽名與數字證書

數字簽名 將 報文按雙方約定的hash 演算法計算得到乙個固定位數的 報文摘要。在 數學上保證 只要改動報文中任何一位,重新計算出的 報文摘要值就會與原先的值不相符。這樣就保證了報文的不可更改性。將該報文摘要值用傳送者的私人 金鑰加密,然後連同原報文一起傳送給接收者,而產生的報文即稱 數字簽名 數字...