加密密鑰
保持加密應用程序的安全依賴于對稱密鑰和私鑰,這些密鑰和私鑰始終保密。用于保密的方法也受到保護。
非對稱密鑰和對稱密鑰是現代密碼學中使用的兩種基本算法類型。非對稱密鑰算法使用私鑰和公鑰的組合,而對稱算法僅使用私鑰,通常稱為密鑰。表 1 提供了每種算法方法的主要特征的快照。
安全服務和功能實現 | 算法方法 | |
對稱密鑰 | 非對稱密鑰 | |
保密性 | 是的 | 是的 |
識別和 認證 |
是的 | 是的 |
正直 | 是的 | 是的 |
不可否認性 | 是,結合公鑰/私鑰算法 | 是的 |
加密 | 是,快速 | 是,慢 |
解密 | 是,快速 | 是,慢 |
整體安全性 | 高 | 高 |
密鑰管理 | 需要在發送方和接收方交換密鑰并保護密鑰 | 需要保護發件人和收件人端的每個私鑰 |
算法復雜性 | 易于理解 | 可能難以理解 |
密鑰大小 | 128 位、192 位或 256 位或更長,但不需要像非對稱密鑰一樣長(取決于密鑰的保密性) | 256 位、1024 位、2048 位、3072 位或更長。取決于棘手性(需要解決的時間和資源量)。 |
系統漏洞 |
密鑰管理、 生成和使用不當 |
實施不當 |
攻擊方法 | 蠻力,線性/差分密碼分析 | 蠻力、線性/差分密碼分析和甲骨文 |
讓我們來看看如何使用這兩種類型的算法來實現每個加密目標。
使用對稱密鑰算法的機密性
保密的主要目標是使信息遠離所有不知情的人。在對稱密鑰加密系統中,這非常簡單,是通過加密發送方和接收方之間交換的數據來實現的。發送方和接收方都可以訪問用于加密和解密交換消息的同一密鑰,如圖 1 所示。
圖1.對稱密鑰算法有助于使用私鑰或密鑰實現機密性。
只要密鑰是安全的,并且只有發送方和接收方可以訪問加密/解密密鑰,即使傳輸過程中被截獲,其他人也無法接收傳輸的消息。因此,消息保持“機密”。
使用非對稱密鑰算法的機密性
在非對稱密鑰系統中,接收者可以自由分發她/他的公鑰。發送方獲取公鑰并驗證其真實性。完成此操作需要幾個步驟,如圖 2 所示。為了簡單起見,讓我們假設發件人可以訪問收件人的已驗證公鑰。然后,發件人使用該公鑰加密郵件并將其發送給收件人。
圖2.非對稱密鑰算法有助于通過使用公鑰和私鑰來實現機密性。
收件人的公鑰在數學上與收件人的私鑰相關。發件人和其他任何人都無法訪問收件人的私鑰。收件人收到消息后,私鑰將用于解密消息。收件人的私鑰是唯一可用于解密使用相關公鑰加密的消息的私鑰。由于私鑰僅駐留在收件人手中,因此其他人或組織無法解密已發送的郵件。因此,消息保持“機密”。
使用對稱密鑰算法進行識別和身份驗證
識別和身份驗證的目標是首先識別對象或用戶,然后對它們進行身份驗證,以便我們知道我們正在與我們真正想要與之通信的人進行通信。
如何使用對稱密鑰方案實現這一點?圖 3 顯示了對稱密鑰識別和身份驗證過程的簡單示例。查看步驟 1 到 6 以更好地理解。步驟 4 使用稱為“摘要”的概念。摘要或哈希是在大型數據集上計算的固定長度值。
圖3.此圖顯示了對稱密鑰標識和身份驗證過程的簡單示例。
為什么我們需要“隨機數”?
冒名頂替者可以擁有收件人傳輸的最后一個摘要,然后使用該摘要發出“驗證我”。這些類型的攻擊稱為“重放攻擊”,即重新發送以前使用的摘要。使用“nonce”或一次性隨機數進行身份驗證可防止此類攻擊。在這種情況下,身份驗證將失敗,因為對于每個身份驗證,發送方都需要一個帶有全新隨機數的新摘要。這些數字通常使用批準的隨機數生成器生成。
現在,讓我們研究一個使用 SHA3-256 算法進行標識和身份驗證的真實示例。
使用 SHA-3 算法進行識別和身份驗證
圖 4 顯示了對稱密鑰標識和身份驗證過程的更完整示例。這使用 SHA-3 對稱密鑰算法,該算法是安全哈希算法 (SHA) 系列中的最新算法。Maxim Integred是首家在量產中采用SHA3-256安全認證器件的公司。查看圖中的步驟 1 到 6,以更好地了解該過程。圖 4 中的“隨機數”基本上是防止重放攻擊所需的“隨機數”,如前面一節中的簡單示例中所述。
圖4.此圖顯示了使用 SHA-3 的對稱密鑰算法的詳細示例。
使用非對稱密鑰算法進行識別和身份驗證
如前所述,識別和身份驗證的目標是首先識別對象或用戶,然后對它們進行身份驗證,以便我們知道我們正在與我們真正想要與之通信的人進行通信。
如何使用非對稱密鑰方案實現這一點?圖 5 顯示了對稱密鑰識別和身份驗證過程的簡單示例。查看圖中的步驟 1 到 6 以了解該過程。
圖5.此圖顯示了使用非對稱密鑰算法進行標識和身份驗證的簡單示例。
為什么我們需要一個隨機數?
冒名頂替者可以獲得收件人傳輸的最后一個簽名,然后使用該簽名發出“驗證我”。這些類型的攻擊稱為“重放攻擊”,即重新發送以前使用的特征碼。使用隨機數或一次性隨機數進行身份驗證可防止此類攻擊。在這種情況下,身份驗證將失敗,因為發件人需要一個新的簽名,每個身份驗證都有一個全新的隨機數。這些數字通常使用批準的隨機數生成器生成。
現在,讓我們研究一個使用橢圓曲線數字簽名算法 (ECDSA) 算法進行識別和身份驗證的真實示例。
使用 ECDSA 算法進行識別和身份驗證
圖 6 顯示了使用 ECDSA 非對稱密鑰算法的非對稱密鑰識別和身份驗證過程的更完整示例。圖中的步驟 1 到 6 可以幫助您更好地了解該過程。
圖6.使用 ECDSA 非對稱密鑰算法進行標識和身份驗證的詳細示例。
盡管此方法完成設備身份驗證,但它不涵蓋完整的系統身份驗證過程。這包括驗證收件人是否是系統的一部分,以及所需的設備數字證書驗證。
比較加密算法
圖 7 顯示了對稱和非對稱密鑰算法的密鑰使用情況的并排比較。在進入下一個主題之前,我們需要了解以下兩個概念之間的區別:
安全哈希
HMAC(散列消息身份驗證代碼)
圖7.這是對稱密鑰和非對稱密鑰加密算法的比較。
圖 8 說明了 HMAC 和安全哈希之間的差異。本質上,安全哈希使用哈希算法(如 SHA-3)來生成消息的固定長度哈希,而不考慮消息長度。HMAC 與此類似,但使用密鑰作為哈希引擎的附加輸入。它還生成固定長度的哈希,而不考慮輸入消息長度。
圖8.HMAC 和安全哈希之間存在相似之處但主要區別。
使用對稱密鑰算法保持完整性
保持消息完整性的目標是確保收到的任何消息或連接的任何新設備都不會攜帶不需要的代碼或信息。讓我們看一個如何使用對稱密鑰算法(如 SHA-3)實現此目的的示例。稍后,我們將回顧這些算法如何工作的細節。
在圖 9 中,發送方使用特定鍵計算消息的摘要。由于這是一個對稱密鑰方案,因此此密鑰在發送方和接收方之間共享。使用密鑰生成的摘要或哈希稱為 HMAC(基于哈希的消息身份驗證代碼)。
圖9.SHA-3 對稱密鑰算法可保持完整性。
這是通過將消息和密鑰提供給 SHA-3 引擎生成的。然后將生成的 HMAC 和消息發送給收件人。然后,接收者使用她擁有的密鑰生成自己的 HMAC。然后比較兩個 HMAC,如果它們匹配,則消息未被篡改。在這種情況下,有人可以截獲 HMAC 和消息,然后更改消息并生成新的 HMAC 并將其發送給收件人。但是,這將不起作用,因為攔截器將沒有收件人的密鑰,并且HMAC將不匹配。
使用非對稱密鑰算法保持完整性
保持消息完整性的目標是確保收到的任何消息或連接的任何新設備都不會攜帶不需要的代碼或信息。讓我們看一個如何使用非對稱密鑰算法(如 ECDSA(橢圓曲線數字簽名算法)實現此目的的示例。
這背后的基本思想是,發件人使用數字簽名對消息進行簽名,收件人驗證簽名,以確保收到的消息的完整性。
在圖 10 中,發送方通過將消息饋送到 SHA-2 哈希引擎來計算消息的摘要。由于這是一個非對稱密鑰方案,因此發送方和接收方之間不共享此密鑰。發送方有一個永遠不會共享的私鑰,而接收方有一個可以與許多人共享的公鑰,反之亦然,與對稱密鑰算法不同,生成的摘要/哈希不使用密鑰。
圖 10.ECDSA 非對稱密鑰算法有助于保持消息完整性。
然后將生成的摘要與發送方的私鑰一起饋送到 ECDSA 引擎,以生成消息的數字簽名。此簽名與郵件一起發送給收件人。這樣就完成了已發送郵件的簽名過程。
現在收件人已收到發件人的郵件和數字簽名,她可以開始驗證過程。此過程包括兩個不同的步驟:
步驟1:收件人從收到的消息中計算消息摘要。
第 2 步:這個新計算的摘要、從發件人收到的數字簽名以及發件人的公鑰隨后被輸入 ECDSA 引擎進行驗證。
在驗證過程中,ECDSA 引擎會產生“是”或“否”結果。如果結果為“是”,則保留了消息完整性。如果結果為“否”,則消息完整性已受到損害。
使用非對稱密鑰算法實現不可否認性
由發件人的數字簽名簽名的郵件可用于證明郵件是由發件人發送的,并且郵件未被更改。但是,數字簽名無法證明發件人的身份。身份證明是使用數字證書實現的。圖 11 到 14 顯示了實現完整公鑰系統所需的完整步驟,在該系統中,交換的消息不能被任何一方否認。
圖 11.發件人和收件人交換受信任的第三方簽名的數字證書。
圖 12.發件人和收件人驗證受信任的第三方簽名數字證書的真實性。
圖 13.發件人和收件人從數字證書中提取彼此的公鑰。
圖 14.發件人和收件人交換無法否認的消息。
主要思想是發送者和接收者都需要相互證明他們的身份,并且他們各自的公鑰需要由受信任的第三方證明真實。
為什么使用數字證書如此重要?沒有它,假裝是發件人的人(即冒名頂替者)可以發送一條用收件人的公鑰加密的消息以及用冒名頂替者的私鑰簽名的數字簽名。然后,冒名頂替者將向收件人發送他/她虛構的公鑰。然后,收件人將使用該公鑰來驗證數字簽名,并且所有內容都將得到驗證。但是來自冒名頂替者的消息可能包含收件人永遠不會懷疑的惡意信息。這是通過使用數字證書可以避免的問題,該證書驗證收到的公鑰確實屬于發件人而不是冒名頂替者。
審核編輯:郭婷
-
密鑰
+關注
關注
1文章
141瀏覽量
19851 -
引擎
+關注
關注
1文章
361瀏覽量
22630 -
SHA
+關注
關注
0文章
16瀏覽量
8458
發布評論請先 登錄
相關推薦
評論