0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

密碼學:現(xiàn)代方法的基礎(chǔ)知識

星星科技指導員 ? 來源:ADI ? 作者:ADI ? 2022-12-19 15:56 ? 次閱讀

加密密鑰

保持加密應用程序的安全依賴于對稱密鑰和私鑰,這些密鑰和私鑰始終保密。用于保密的方法也受到保護。

非對稱密鑰和對稱密鑰是現(xiàn)代密碼學中使用的兩種基本算法類型。非對稱密鑰算法使用私鑰和公鑰的組合,而對稱算法僅使用私鑰,通常稱為密鑰。表 1 提供了每種算法方法的主要特征的快照。

安全服務和功能實現(xiàn) 算法方法
對稱密鑰 非對稱密鑰
保密性 是的 是的
識別和
認證
是的 是的
正直 是的 是的
不可否認性 是,結(jié)合公鑰/私鑰算法 是的
加密 是,快速 是,慢
解密 是,快速 是,慢
整體安全性
密鑰管理 需要在發(fā)送方和接收方交換密鑰并保護密鑰 需要保護發(fā)件人和收件人端的每個私鑰
算法復雜性 易于理解 可能難以理解
密鑰大小 128 位、192 位或 256 位或更長,但不需要像非對稱密鑰一樣長(取決于密鑰的保密性) 256 位、1024 位、2048 位、3072 位或更長。取決于棘手性(需要解決的時間和資源量)。
系統(tǒng)漏洞 密鑰管理、
生成和使用不當
實施不當
攻擊方法 蠻力,線性/差分密碼分析 蠻力、線性/差分密碼分析和甲骨文

讓我們來看看如何使用這兩種類型的算法來實現(xiàn)每個加密目標。

使用對稱密鑰算法的機密性

保密的主要目標是使信息遠離所有不知情的人。在對稱密鑰加密系統(tǒng)中,這非常簡單,是通過加密發(fā)送方和接收方之間交換的數(shù)據(jù)來實現(xiàn)的。發(fā)送方和接收方都可以訪問用于加密和解密交換消息的同一密鑰,如圖 1 所示。

pYYBAGOgGT-Aewq3AABQIbrgTEI770.png?imgver=1

圖1.對稱密鑰算法有助于使用私鑰或密鑰實現(xiàn)機密性。

只要密鑰是安全的,并且只有發(fā)送方和接收方可以訪問加密/解密密鑰,即使傳輸過程中被截獲,其他人也無法接收傳輸?shù)南?。因此,消息保持“機密”。

使用非對稱密鑰算法的機密性

在非對稱密鑰系統(tǒng)中,接收者可以自由分發(fā)她/他的公鑰。發(fā)送方獲取公鑰并驗證其真實性。完成此操作需要幾個步驟,如圖 2 所示。為了簡單起見,讓我們假設(shè)發(fā)件人可以訪問收件人的已驗證公鑰。然后,發(fā)件人使用該公鑰加密郵件并將其發(fā)送給收件人。

poYBAGOgGUKAZd_-AABgSf6vemI737.png?imgver=1

圖2.非對稱密鑰算法有助于通過使用公鑰和私鑰來實現(xiàn)機密性。

收件人的公鑰在數(shù)學上與收件人的私鑰相關(guān)。發(fā)件人和其他任何人都無法訪問收件人的私鑰。收件人收到消息后,私鑰將用于解密消息。收件人的私鑰是唯一可用于解密使用相關(guān)公鑰加密的消息的私鑰。由于私鑰僅駐留在收件人手中,因此其他人或組織無法解密已發(fā)送的郵件。因此,消息保持“機密”。

使用對稱密鑰算法進行識別和身份驗證

識別和身份驗證的目標是首先識別對象或用戶,然后對它們進行身份驗證,以便我們知道我們正在與我們真正想要與之通信的人進行通信。

如何使用對稱密鑰方案實現(xiàn)這一點?圖 3 顯示了對稱密鑰識別和身份驗證過程的簡單示例。查看步驟 1 到 6 以更好地理解。步驟 4 使用稱為“摘要”的概念。摘要或哈希是在大型數(shù)據(jù)集上計算的固定長度值。

poYBAGOgGUSAM5ITAABEdK0LIQU214.png?imgver=1

圖3.此圖顯示了對稱密鑰標識和身份驗證過程的簡單示例。

為什么我們需要“隨機數(shù)”?

冒名頂替者可以擁有收件人傳輸?shù)淖詈笠粋€摘要,然后使用該摘要發(fā)出“驗證我”。這些類型的攻擊稱為“重放攻擊”,即重新發(fā)送以前使用的摘要。使用“nonce”或一次性隨機數(shù)進行身份驗證可防止此類攻擊。在這種情況下,身份驗證將失敗,因為對于每個身份驗證,發(fā)送方都需要一個帶有全新隨機數(shù)的新摘要。這些數(shù)字通常使用批準的隨機數(shù)生成器生成。

現(xiàn)在,讓我們研究一個使用 SHA3-256 算法進行標識和身份驗證的真實示例。

使用 SHA-3 算法進行識別和身份驗證

圖 4 顯示了對稱密鑰標識和身份驗證過程的更完整示例。這使用 SHA-3 對稱密鑰算法,該算法是安全哈希算法 (SHA) 系列中的最新算法。Maxim Integred是首家在量產(chǎn)中采用SHA3-256安全認證器件的公司。查看圖中的步驟 1 到 6,以更好地了解該過程。圖 4 中的“隨機數(shù)”基本上是防止重放攻擊所需的“隨機數(shù)”,如前面一節(jié)中的簡單示例中所述。

pYYBAGOgGUaAIJkUAAC9jGeyqaE211.png?imgver=1

圖4.此圖顯示了使用 SHA-3 的對稱密鑰算法的詳細示例。

使用非對稱密鑰算法進行識別和身份驗證

如前所述,識別和身份驗證的目標是首先識別對象或用戶,然后對它們進行身份驗證,以便我們知道我們正在與我們真正想要與之通信的人進行通信。

如何使用非對稱密鑰方案實現(xiàn)這一點?圖 5 顯示了對稱密鑰識別和身份驗證過程的簡單示例。查看圖中的步驟 1 到 6 以了解該過程。

poYBAGOgGU6AZhGbAABNx_Zno20560.png?imgver=1

圖5.此圖顯示了使用非對稱密鑰算法進行標識和身份驗證的簡單示例。

為什么我們需要一個隨機數(shù)?

冒名頂替者可以獲得收件人傳輸?shù)淖詈笠粋€簽名,然后使用該簽名發(fā)出“驗證我”。這些類型的攻擊稱為“重放攻擊”,即重新發(fā)送以前使用的特征碼。使用隨機數(shù)或一次性隨機數(shù)進行身份驗證可防止此類攻擊。在這種情況下,身份驗證將失敗,因為發(fā)件人需要一個新的簽名,每個身份驗證都有一個全新的隨機數(shù)。這些數(shù)字通常使用批準的隨機數(shù)生成器生成。

現(xiàn)在,讓我們研究一個使用橢圓曲線數(shù)字簽名算法 (ECDSA) 算法進行識別和身份驗證的真實示例。

使用 ECDSA 算法進行識別和身份驗證

圖 6 顯示了使用 ECDSA 非對稱密鑰算法的非對稱密鑰識別和身份驗證過程的更完整示例。圖中的步驟 1 到 6 可以幫助您更好地了解該過程。

pYYBAGOgGVGAVBd0AAC3DPg9sYk217.png?imgver=1

圖6.使用 ECDSA 非對稱密鑰算法進行標識和身份驗證的詳細示例。

盡管此方法完成設(shè)備身份驗證,但它不涵蓋完整的系統(tǒng)身份驗證過程。這包括驗證收件人是否是系統(tǒng)的一部分,以及所需的設(shè)備數(shù)字證書驗證。

比較加密算法

圖 7 顯示了對稱和非對稱密鑰算法的密鑰使用情況的并排比較。在進入下一個主題之前,我們需要了解以下兩個概念之間的區(qū)別:

安全哈希

HMAC(散列消息身份驗證代碼)

poYBAGOgGVOAC922AAA-S6fVIlU940.png?imgver=1

圖7.這是對稱密鑰和非對稱密鑰加密算法的比較。

圖 8 說明了 HMAC 和安全哈希之間的差異。本質(zhì)上,安全哈希使用哈希算法(如 SHA-3)來生成消息的固定長度哈希,而不考慮消息長度。HMAC 與此類似,但使用密鑰作為哈希引擎的附加輸入。它還生成固定長度的哈希,而不考慮輸入消息長度。

pYYBAGOgGVWAXofSAABXJfQaY2M869.png?imgver=1

圖8.HMAC 和安全哈希之間存在相似之處但主要區(qū)別。

使用對稱密鑰算法保持完整性

保持消息完整性的目標是確保收到的任何消息或連接的任何新設(shè)備都不會攜帶不需要的代碼或信息。讓我們看一個如何使用對稱密鑰算法(如 SHA-3)實現(xiàn)此目的的示例。稍后,我們將回顧這些算法如何工作的細節(jié)。

在圖 9 中,發(fā)送方使用特定鍵計算消息的摘要。由于這是一個對稱密鑰方案,因此此密鑰在發(fā)送方和接收方之間共享。使用密鑰生成的摘要或哈希稱為 HMAC(基于哈希的消息身份驗證代碼)。

poYBAGOgGVeAPDoSAABlAb-qOu4666.png?imgver=1

圖9.SHA-3 對稱密鑰算法可保持完整性。

這是通過將消息和密鑰提供給 SHA-3 引擎生成的。然后將生成的 HMAC 和消息發(fā)送給收件人。然后,接收者使用她擁有的密鑰生成自己的 HMAC。然后比較兩個 HMAC,如果它們匹配,則消息未被篡改。在這種情況下,有人可以截獲 HMAC 和消息,然后更改消息并生成新的 HMAC 并將其發(fā)送給收件人。但是,這將不起作用,因為攔截器將沒有收件人的密鑰,并且HMAC將不匹配。

使用非對稱密鑰算法保持完整性

保持消息完整性的目標是確保收到的任何消息或連接的任何新設(shè)備都不會攜帶不需要的代碼或信息。讓我們看一個如何使用非對稱密鑰算法(如 ECDSA(橢圓曲線數(shù)字簽名算法)實現(xiàn)此目的的示例。

這背后的基本思想是,發(fā)件人使用數(shù)字簽名對消息進行簽名,收件人驗證簽名,以確保收到的消息的完整性。

在圖 10 中,發(fā)送方通過將消息饋送到 SHA-2 哈希引擎來計算消息的摘要。由于這是一個非對稱密鑰方案,因此發(fā)送方和接收方之間不共享此密鑰。發(fā)送方有一個永遠不會共享的私鑰,而接收方有一個可以與許多人共享的公鑰,反之亦然,與對稱密鑰算法不同,生成的摘要/哈希不使用密鑰。

poYBAGOgGVmANO8BAACszIGidX4696.png?imgver=1

圖 10.ECDSA 非對稱密鑰算法有助于保持消息完整性。

然后將生成的摘要與發(fā)送方的私鑰一起饋送到 ECDSA 引擎,以生成消息的數(shù)字簽名。此簽名與郵件一起發(fā)送給收件人。這樣就完成了已發(fā)送郵件的簽名過程。

現(xiàn)在收件人已收到發(fā)件人的郵件和數(shù)字簽名,她可以開始驗證過程。此過程包括兩個不同的步驟:

步驟1:收件人從收到的消息中計算消息摘要。

第 2 步:這個新計算的摘要、從發(fā)件人收到的數(shù)字簽名以及發(fā)件人的公鑰隨后被輸入 ECDSA 引擎進行驗證。

在驗證過程中,ECDSA 引擎會產(chǎn)生“是”或“否”結(jié)果。如果結(jié)果為“是”,則保留了消息完整性。如果結(jié)果為“否”,則消息完整性已受到損害。

使用非對稱密鑰算法實現(xiàn)不可否認性

由發(fā)件人的數(shù)字簽名簽名的郵件可用于證明郵件是由發(fā)件人發(fā)送的,并且郵件未被更改。但是,數(shù)字簽名無法證明發(fā)件人的身份。身份證明是使用數(shù)字證書實現(xiàn)的。圖 11 到 14 顯示了實現(xiàn)完整公鑰系統(tǒng)所需的完整步驟,在該系統(tǒng)中,交換的消息不能被任何一方否認。

pYYBAGOgGVuAAtvSAABpa0Sg9yc601.png?imgver=1

圖 11.發(fā)件人和收件人交換受信任的第三方簽名的數(shù)字證書。

pYYBAGOgGV2ADimJAAC7FhCdh_U124.png?imgver=1

圖 12.發(fā)件人和收件人驗證受信任的第三方簽名數(shù)字證書的真實性。

pYYBAGOgGV6AFDkPAACI7UlnqmU567.png?imgver=1

圖 13.發(fā)件人和收件人從數(shù)字證書中提取彼此的公鑰。

poYBAGOgGWGADh-HAACsbENT0u0978.png?imgver=1

圖 14.發(fā)件人和收件人交換無法否認的消息。

主要思想是發(fā)送者和接收者都需要相互證明他們的身份,并且他們各自的公鑰需要由受信任的第三方證明真實。

為什么使用數(shù)字證書如此重要?沒有它,假裝是發(fā)件人的人(即冒名頂替者)可以發(fā)送一條用收件人的公鑰加密的消息以及用冒名頂替者的私鑰簽名的數(shù)字簽名。然后,冒名頂替者將向收件人發(fā)送他/她虛構(gòu)的公鑰。然后,收件人將使用該公鑰來驗證數(shù)字簽名,并且所有內(nèi)容都將得到驗證。但是來自冒名頂替者的消息可能包含收件人永遠不會懷疑的惡意信息。這是通過使用數(shù)字證書可以避免的問題,該證書驗證收到的公鑰確實屬于發(fā)件人而不是冒名頂替者。

審核編輯:郭婷

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學習之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 密鑰
    +關(guān)注

    關(guān)注

    1

    文章

    134

    瀏覽量

    19658
  • 引擎
    +關(guān)注

    關(guān)注

    1

    文章

    353

    瀏覽量

    22452
  • SHA
    SHA
    +關(guān)注

    關(guān)注

    0

    文章

    16

    瀏覽量

    8420
收藏 人收藏

    評論

    相關(guān)推薦

    現(xiàn)代密碼學

    現(xiàn)代密碼學課件,大家可學習學習,了解了解
    發(fā)表于 05-10 15:56

    什么是密碼學中的DES

    得不提一個東西——密碼學(是不是聽起來頭皮發(fā)麻心跳加速),穩(wěn)住穩(wěn)住,老司機上線帶你。今天給大家say&see什么是密碼學中的DES。簡介?DES:****English Name...
    發(fā)表于 07-22 07:16

    密碼學中的加密技術(shù)

    密碼學中的加密技術(shù):密碼學的基本概念密碼編碼密碼體制的設(shè)計,而
    發(fā)表于 06-16 23:50 ?0次下載

    區(qū)塊鏈的底層技術(shù)是密碼學

    密碼學是區(qū)塊鏈的底層技術(shù),沒有密碼學就沒有區(qū)塊鏈,沒有密碼學支撐的區(qū)塊鏈不可能安全。
    發(fā)表于 11-22 11:22 ?2040次閱讀

    密碼學在區(qū)塊鏈中有著怎樣的作用

    張驍表示,區(qū)塊鏈之所以能夠解決人與人之間的信任問題,是因為它的不可篡改性,而這種特性本質(zhì)上又是基于密碼學算法來實現(xiàn)的。因此密碼學在區(qū)塊鏈中的地位很關(guān)鍵,如果說區(qū)塊鏈是信任的基石,那么密碼學則是區(qū)塊鏈的基石。
    發(fā)表于 12-27 15:51 ?4630次閱讀

    應用密碼學的資料概述

    本文檔的主要內(nèi)容詳細介紹的是應用密碼學的資料概述包括了:1.密碼的由來,2.密碼技術(shù)發(fā)展簡介,3.密碼學基本概念
    發(fā)表于 04-04 08:00 ?2次下載
    應用<b class='flag-5'>密碼學</b>的資料概述

    區(qū)塊鏈密碼學的基礎(chǔ)內(nèi)容介紹

    密碼學是數(shù)學和計算機科學的分支,同時其原理大量涉及信息論。密碼學不只關(guān)注信息保密問題,還同時涉及信息完整性驗證(消息驗證碼)、信息發(fā)布的不可抵賴性(數(shù)字簽名)、以及在分布式計算中產(chǎn)生的來源于內(nèi)部和外部的攻擊的所有信息安全問題。
    發(fā)表于 05-08 10:33 ?1150次閱讀

    區(qū)塊鏈技術(shù)的基石密碼學探討

    越來越顯得重要。它已不僅僅局限于使用在軍事、政治和外交方面,而更多的是與人們的生活息息相關(guān):如人們在進行網(wǎng)上購物,與商務交流,使用信用卡等等,都需要密碼學知識來保護人們的個人信息和隱私,當然對于我們關(guān)注的區(qū)塊鏈技術(shù),密碼學作為
    發(fā)表于 07-12 10:35 ?1032次閱讀

    密碼學OpenSSL的入門基礎(chǔ)知識整理合集

    本文是使用 OpenSSL 的密碼學基礎(chǔ)知識的兩篇文章中的第一篇,OpenSSL 是在 Linux 和其他系統(tǒng)上流行的生產(chǎn)級庫和工具包。(要安裝 OpenSSL 的最新版本,請參閱 這里
    的頭像 發(fā)表于 02-07 15:29 ?3528次閱讀
    <b class='flag-5'>密碼學</b>OpenSSL的入門<b class='flag-5'>基礎(chǔ)知識</b>整理合集

    密碼學貨幣錢包的發(fā)展方向分析

    錢包是密碼學貨幣世界里重要的基礎(chǔ)設(shè)施。所有跟密碼學貨幣相關(guān)的操作,包括買賣密碼學貨幣、持有密碼學貨幣、轉(zhuǎn)賬,乃至質(zhì)押獲利(staking),多多少少都跟錢包相關(guān)。
    發(fā)表于 02-22 18:20 ?854次閱讀

    區(qū)塊鏈在密碼學中的應用及技術(shù)綜述

    區(qū)塊鏈在密碼學中的應用及技術(shù)綜述
    發(fā)表于 06-25 15:06 ?12次下載

    基礎(chǔ)密碼學的概念介紹

    密碼學和信息安全在如今的互聯(lián)網(wǎng)行業(yè)當中非常重要,相關(guān)的理論知識和算法也在計算機系統(tǒng)的方方面面都被用到。雖然我們不一定會從事安全相關(guān)的工作,但對密碼學以及信息安全的基本知識和概念有所了解
    的頭像 發(fā)表于 08-10 14:32 ?1362次閱讀

    是什么讓密碼學更容易?安全認證器和協(xié)處理器

    密碼學提供了針對安全威脅的強大保護,但并非每個嵌入式設(shè)計人員都是密碼學專家。為了給產(chǎn)品開發(fā)工程師提供一條快速了解該主題基礎(chǔ)知識的途徑,我們創(chuàng)建了一本密碼學手冊,其中包含一系列采用工程而
    的頭像 發(fā)表于 06-27 17:24 ?638次閱讀
    是什么讓<b class='flag-5'>密碼學</b>更容易?安全認證器和協(xié)處理器

    密碼學基本原理(上)

    電子發(fā)燒友網(wǎng)站提供《密碼學基本原理(上).pdf》資料免費下載
    發(fā)表于 08-02 09:13 ?1次下載
    <b class='flag-5'>密碼學</b>基本原理(上)

    密碼學原理的應用

    電子發(fā)燒友網(wǎng)站提供《密碼學原理的應用.pdf》資料免費下載
    發(fā)表于 08-02 10:28 ?0次下載
    <b class='flag-5'>密碼學</b>原理的應用