吴忠躺衫网络科技有限公司

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

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

3天內不再提示

密碼學:如何使用非對稱密鑰算法來交換共享私鑰

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

介紹

在我們的密碼學系列教程的最后兩期中,我們介紹了密碼學的基本概念和兩種基本類型。本節討論最常見的加密算法的具體實現細節,從基本的 XOR 函數開始,然后進入當今使用的更復雜的對稱和非對稱算法。本文最后回顧了如何使用非對稱密鑰算法來交換共享私鑰。這使得可以使用更快的對稱密鑰算法來交換批量加密的數據,而無需開發復雜的密鑰交換系統。

異或函數:至關重要的邏輯運算

XOR(異或)是一種重要的邏輯操作,在許多(如果不是全部)加密算法中以各種方式使用。圖 1 顯示了此函數的工作原理。在深入研究算法之前,您需要了解此函數。

pYYBAGOgEyeAGM8UAACQ9Wk-tMA462.png

圖1.此圖顯示了 XOR 函數的工作原理。

獨占或(XOR) – 可逆(即無損)加密的基本要素

由于 XOR 的屬性,其中一個輸入可以用作進入另一個輸入的數據的鍵。例如,如果 A 是加密密鑰的單個位,則具有來自 B 的數據位的 XOR 在 A 為 1 時翻轉該位。這可以通過再次使用密鑰對加密結果進行按位 XOR 來逆轉。

讓我們看一個例子:

我們的目標是使用“秘密”這個詞,使用XOR使用密鑰對其進行加密,然后使用相同的密鑰和XOR函數對其進行解密。這些是步驟:

選擇一個密鑰。我們將選擇字母“k”作為我們的鍵。

使用 ASCII(美國信息交換標準代碼)字符編碼標準將字母“k”轉換為二進制。其結果是 :01101011

將單詞“機密”轉換為二進制。其結果是 :01010011 01100101 01100011 01110010 01100101 01110100

XOR “秘密”中的每個字母,其中“k”是關鍵字母。這為我們提供了加密值。

S e c r e t
01010011 01100101 01100011 01110010 01100101 01110100

XOR “密鑰”:01101011 01101011 01101011 01101011 01101011 01101011
加密值:00111000 00001110 00001000 00011001 00001110 00011111

現在要解密加密值,我們使用密鑰字母“k”對其進行 XOR 運算。這一步讓我們恢復了原來的“秘密”字。

加密值:00111000 00001110 00001000 00011001 00001110 00011111
XOR “密鑰”:01101011 01101011 01101011 01101011 01101011 01101011

解密值: 01010011 01100101 01100011 01110010 01100101 01110100
S e c r e t

SHA(安全哈希算法)

SHA 函數背后的基本思想是獲取可變大小的數據并將其壓縮為固定大小的位字符串輸出。這個概念稱為哈希。SHA 函數是一系列哈希算法,通過 NIST(美國國家標準與技術研究院)的監督隨著時間的推移而開發。SHA-3功能是最新的。

圖 2 顯示了安全哈希生成的基本概念。

poYBAGOgErmAcxi9AAAmuPT7RVM239.png?imgver=1

圖2.此圖顯示了安全哈希生成的基本概念。

SHA 函數具有以下特征:

可變輸入長度。

固定輸出長度。

單向功能。在圖 2 中,除了嘗試每個可能的輸入文本之外,不可能使用生成的哈希值來重新生成輸入文本。對于足夠大的輸入,這在計算上變得不可能。

如果將相同的輸入消息饋送到 SHA 函數,它將始終生成相同的結果哈希。

使用兩個不同的輸入值無法生成相同的哈希值。這稱為“防撞性”。

輸入值的微小變化,即使是單個位,也會完全改變生成的哈希值。這就是所謂的“雪崩效應”。

如果哈希函數滿足上述所有條件,則將其視為強哈希函數。

目前使用的一些 SHA 函數包括:

SHA-1

SHA-2

SHA-3

現在讓我們探討一下 SHA 函數的工作原理,重點是 SHA-2 和 SHA-3。SHA-1正在逐步淘汰,不建議用于任何新設計。

SHA-2的來龍去脈

SHA-2 函數根據輸出位長度有四種主要類型:

SHA-224 – 哈希長度為 224 位。

SHA-256 – 哈希長度為 256 位。

SHA-384 – 哈希長度為 384 位。

SHA-512 – 哈希長度為 512 位。

讓我們以 SHA-256 為例。圖 3 顯示了 SHA-256 發動機的框圖。

poYBAGOgE8-AA3MXAABeJsoUGTY843.png

圖3.此圖顯示了用于安全哈希生成的 SHA-256 函數的框圖。

安全哈希生成:SHA-256 功能

首先填充輸入消息,以確保它完全適合“n”個 512 位塊。然后,第一個 512 位塊與初始 256 位哈希值一起輸入壓縮函數。壓縮函數基本上將消息洗牌 64 次,然后將其壓縮到 256 位并將其發送到下一個壓縮塊或作為最終哈希發送出去。因此,變量輸入消息會被多次打亂,以防止它被用來獲取原始消息。完成此操作后,將生成輸出哈希。

SHA-3 的工作原理

SHA-3 函數沒有預定義的輸出長度。輸入和輸出長度也沒有最大值。但為了與 SHA-2 進行比較,讓我們根據輸出位長度定義四種主要類型。這些是:

SHA3-224 – 哈希長度為 224 位。

SHA3-256 – 哈希長度為 256 位。

SHA3-384 – 哈希長度為 384 位。

SHA3-512 – 哈希長度為 512 位。

讓我們以 SHA3-256 為例。SHA-3使用Keccak海綿功能。就像海綿一樣,第一步吸收或吸收輸入信息。在下一階段,輸出哈希被擠出。圖 4 是 SHA3-256 函數的框圖。

pYYBAGOgE8iAEHvTAACNyXEBuAU305.png

圖4.此圖顯示了用于安全哈希生成的 SHA3-256 函數的框圖。

安全哈希生成:SHA3-256 函數

圖 4 中的迭代函數接收 1600 位數據,然后使用特定算法對其進行 24 輪排列,然后將其作為 1600 位塊傳遞到下一階段。這種情況一直持續到吸收階段完成。

吸收階段完成后,最后一個 1600 位塊將傳遞到壓縮階段。在這種情況下,由于 SHA3-256 輸出哈希長度小于 1088 位,因此壓縮階段不需要任何迭代函數。我們從最后階段獲取前 256 位,這就是輸出哈希。

例如,如果所需的哈希長度為 2500 位,我們將需要迭代函數的三個實例才能獲得所需的長度哈希。

AES(高級加密標準)

與 DES(數據加密標準)和 3DES(三重數據加密標準)等舊加密算法一樣,AES 算法的目的是以可逆方式根據輸入鍵的值對輸入數據進行加擾和替換。結果稱為密文。AES算法旨在取代前幾十年開發的DES和3DES算法,這些算法容易受到攻擊。AES 算法的說明如圖 5 所示。

pYYBAGOgE8KAcVlwAACJmUkzr2Y167.png

圖5.此圖概述了 AES 算法。

AES 算法

AES 算法是一種固定寬度的加密算法。因此,首先填充輸入消息,以確保它完全適合“n”個 128 位塊。

每個 128 位塊與加密密鑰一起輸入加密算法。根據加密密鑰中的位數,AES 算法執行一定數量的回合來掩蓋輸入塊位。這種模糊是通過打亂數據位、獲取部分數據并用查找表(如解碼器輪)中的值替換它們來實現的,然后執行 XOR 操作以根據從輸入加密密鑰生成的一組“圓形密鑰”中的位值將位從 0 翻轉為 1。輪次密鑰用于其中一個模糊輪次,并通過復制位并將副本插入其他位來“擴展”加密密鑰的一部分來創建。

AES解密功能只是使用相同的加密密鑰執行與加密功能中的操作相反的操作,以便對原始輸入塊數據進行解密。

3DES(三重數據加密標準)

三重 DES(或 3DES)算法背后的基本思想是根據輸入鍵的值以可逆的方式對輸入數據進行加擾和替換。結果稱為密文。3DES 算法是 1970 年代開發的原始 DES(數據加密標準)算法的重演。當 DES 在 1990 年代遭到入侵時,對更安全算法的需求是顯而易見的。3DES成為單個DES問題的近期解決方案。為了理解 3DES,圖 6 首先顯示了原始 DES 的描述。

pYYBAGOgE7CASVPGAACf9R-WXcA279.png

圖6.此圖概述了 DES 算法。

DES(數據加密標準)算法

DES 算法是一種固定寬度的加密算法。因此,首先填充輸入消息,以確保它完全適合“n”個 64 位塊。

每個 64 位塊與 56 位加密密鑰一起輸入加密算法(該算法的大多數版本采用 64 位密鑰,但忽略 8 位)。加密功能使用輸入密鑰生成 16 個“子密鑰”,每個子密鑰用于 16 輪遮蓋輸入塊位。這種模糊是通過打亂數據位、獲取部分數據并用查找表(如解碼器輪)中的值替換它們來實現的,然后執行 XOR 操作以根據子鍵中的位值將位從 0 翻轉到 1。

DES 解密函數只是使用相同的加密密鑰執行與加密函數中的操作相反的操作,以解密原始輸入塊數據。

3DES 如何工作?

從 DES 導出三重 DES 算法

在 DES 被證明容易受到比“暴力攻擊”(循環遍歷每個可能的密鑰值直到顯示原始消息塊)短的攻擊后,開發了一種有效增加加密密鑰大小的簡單方法。圖 7 描述了 3DES 解決方案。

poYBAGOgE6mASIasAABQ6Y2uT6w913.png

圖7.此圖顯示了如何使用三個 DES 操作來創建 3DES 算法。

3DES 算法實際上是 3 個 DES 操作。第一個和最后一個操作是加密操作,而中間操作是解密操作。請務必注意,“加密”和“解密”只是分配給彼此相反的加擾操作的名稱。

對于在 3DES 中執行的每個 DES 操作,該操作都使用專用密鑰。通常,第一個和第三個操作的鍵是相同的。對第一個和第三個操作使用相同的密鑰,對中間操作使用不同的密鑰,有效地使總密鑰長度加倍,這使得暴力攻擊更加困難,并消除了單個 DES 的漏洞。

RSA 公鑰密碼系統

RSA以其創建者Ron Rivest,Adi Shamir和Leonard Adleman的名字命名,是最早的非對稱公鑰加密/解密系統之一。它使用素數的模塊化算法的屬性來生成可用于加密的公鑰和可用于解密的私鑰。加密和解密操作也基于模塊化算法。RSA 的概述如圖 8 所示。

pYYBAGOgE6KAJZSCAABPrKcsuRU408.png

圖8.此圖顯示了 RSA 加密的概述。

密鑰生成和加密/解密操作稱為單向或“陷門”函數。它們是在一個方向上計算相對簡單的數學運算,但在另一個方向上很難計算。例如,計算乘以 2 很容易,但計算 x 的平方根更難。

在 RSA 的情況下,兩個大的素數相乘以創建公鑰和私鑰的一部分。乘法很容易;回去發現秘密素數是很困難的。

使用公鑰加密消息也比嘗試反向獲取沒有私鑰的消息要容易得多。但是,私鑰也可以輕松解鎖消息,因此絕不能共享。

私鑰可以被視為打開一個活板門,揭示了繞過試圖破解加密消息的復雜迷宮的捷徑。

RSA 安全性依賴于大型質數和復雜的操作。對于大多數計算系統來說,即使是通過其帶有大鑰匙的陷門功能的簡單路徑也很麻煩。因此,RSA 通常用作發送共享加密密鑰的工具,這些密鑰可用于更快的對稱算法,如 DES、3DES 和 AES,用于單個事務。

ECDSA 算法

橢圓曲線數字簽名算法 (ECDSA) 允許通信中的參與者通過基于稱為私鑰的隱藏信息為輸入消息生成數字簽名來證明真實性。此密鑰用于生成公鑰,其他人使用該公鑰來驗證參與者的真實性。

數字簽名是使用輸入消息、私鑰和隨機數生成的。然后,可以使用公鑰來驗證簽名者(或參與者)是否擁有相應的私鑰,因此是否真實。圖 9 說明了此概念。

pYYBAGOgE5uAfPF7AAA766T8Kp0318.png

圖9.ECDSA(橢圓曲線數字簽名算法)有助于驗證數字簽名。

數字簽名算法最初是用模算術引入的,它依賴于大素數和需要大量使用計算能力的計算。橢圓曲線密碼學的引入利用橢圓函數的數學特性在不犧牲安全性的情況下簡化數學。

密鑰生成和簽名操作稱為單向或“陷門”函數。它們是橢圓曲線計算,在一個方向上計算相對簡單,但在另一個方向上計算起來卻很困難。私鑰可以被視為打開一個活板門,揭示了繞過試圖破壞密鑰生成或簽名操作的復雜迷宮的捷徑。

ECDSA 允許一方簽署來自任何一方的消息。但是,為了證明 ECDSA 的真實性,簽名者不得預先知道要簽名的消息。由于缺乏對消息的控制,通信中的另一個參與者可以用新信息“挑戰”簽名者,以證明擁有私鑰。

ECDH密鑰交換協議

橢圓曲線Diffie-Hellman(ECDH)密鑰交換允許雙方建立一個共享密鑰,以便僅與一條稱為私鑰的隱藏信息進行通信。如果沒有相關方之一的私鑰,竊聽者就無法輕松確定共享密鑰。但是,該算法允許將一方的私鑰和另一方的公鑰組合在一起,以生成對雙方都相同的結果密鑰。圖 10 說明了此概念。

pYYBAGOgE5WAM2kHAABfw_OypCk885.png

圖 10.ECDH密鑰交換允許雙方建立共享密鑰以進行通信。

ECDH密鑰交換

Diffie-Hellman密鑰交換首先是用模算術引入的,它依賴于大素數和需要大量使用計算能力的計算。橢圓曲線密碼學的引入利用橢圓函數的數學特性在不犧牲安全性的情況下簡化數學。

密鑰生成和組合密鑰操作稱為 1 路或“陷門”函數。它們是橢圓曲線計算,在一個方向上計算相對簡單,但在另一個方向上計算起來卻很困難。私鑰可以被視為打開一個活板門,揭示了繞過試圖破壞密鑰生成或組合操作的復雜迷宮的捷徑。

ECDH算法允許雙方一起建立密鑰,但它不能保證任何一方都是可信的。為此,需要額外的身份驗證層。例如,如果為公鑰提供了證書,例如使用來自受信任密鑰持有者的私鑰計算的 ECDSA(橢圓曲線數字簽名算法)簽名,則通過使用受信任持有者的公鑰對證書進行身份驗證來驗證公鑰的認證

通過使用公鑰和來自受信任機構的證書,ECDH的參與者可以確定他們的對應方是真實的參與者。關注我們的密碼學教程系列中的其他部分,以繼續加深您對這種重要安全技術的理解。

審核編輯:郭婷

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

    關注

    1

    文章

    141

    瀏覽量

    19851
  • 函數
    +關注

    關注

    3

    文章

    4346

    瀏覽量

    62969
  • XOR
    XOR
    +關注

    關注

    0

    文章

    12

    瀏覽量

    162028
收藏 人收藏

    評論

    相關推薦

    STM32密碼學訣竅,這套資料幫助你掌握!(方法論+加密庫資料合集)

    部分資料介紹密碼學基本原理第一部分:如何傳輸機密數據。我們會看到,對稱加解密和非對稱加解密技術在保證數據安全通信的過程中,發揮的不同作用,以及二者結合后如何解決了一個傳輸機密數據過程中的關鍵問題
    發表于 08-17 14:39

    對稱性加密算法

    對稱性加密算法對稱式加密就是加密和解密使用同一個密鑰。信息接收雙方都需事先知道密匙和加解密算法且其密匙是相同的,之后便是對數據進行加解密了
    發表于 07-19 06:32

    對稱加密算法是什么

    對稱加密算法也叫私鑰加密算法,其特征是收信方和發信方使用相同的密鑰,即加密密鑰和解密
    發表于 07-22 07:09

    物聯網安全機制密碼學基礎

    Chp9 物聯網安全機制密碼學基礎(1)加密模型密碼是通信雙方按照約定的法則進行信息變換的一種手段。依照這些信息變換法則,變明文為密文,稱為加密變換;變密文為明文,稱為解密變換。信息稱為明文,明文
    發表于 07-22 06:31

    淺談對稱加密算法非對稱密鑰加密算法

    什么是對稱密鑰密碼體制?對稱密鑰密碼體制的缺點是什么?非對稱
    發表于 12-23 06:05

    STM32密碼學基本原理

    1 對稱加解密技術 2 非對稱加解密技術 3 二者的結合:共享密鑰的產生 4 常用算法
    發表于 09-08 06:46

    密碼學中的加密技術

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

    什么是非對稱加密?非對稱加密概念

    對稱加密算法在加密和解密時使用的是同一個秘鑰;而非對稱加密算法需要兩個密鑰進行加密和解密,這兩
    發表于 12-10 10:38 ?2.2w次閱讀
    什么是<b class='flag-5'>非對稱</b>加密?<b class='flag-5'>非對稱</b>加密概念

    java實現非對稱加密算法的過程

    對稱式加密:解密方式是加密方式的逆運算,即加密和解密使用的是同一個密鑰(初等加密算法)。非對稱式加密:加密和解密需要兩個密鑰進行,這兩個
    發表于 12-10 10:54 ?5466次閱讀
    java實現<b class='flag-5'>非對稱</b>加密<b class='flag-5'>算法</b>的過程

    非對稱密鑰的應用有哪些

    公私密鑰對是區塊鏈技術加密手段的重要基石,同時也是加密貨幣安全性的保證。但公私密鑰的配對是不對稱的,私鑰相當于寫著箱子號碼的鑰匙,而地址就是無數個放在區塊鏈中任何人都可以查看的帶有編碼
    發表于 04-15 11:16 ?4470次閱讀

    如何理解區塊鏈密碼學中的非對稱加密

    當前密碼學中的加密解密方式主要能分成兩類,分別是對稱加密和非對稱加密。這兩個加密體系的構成都是一樣的,都包括:加解密算法、加密密鑰、解密
    發表于 11-29 11:36 ?2353次閱讀

    橢圓曲線密碼學詳細解析

    橢圓曲線密碼學(ECC),是一種基于橢圓曲線數學誕生的非對稱秘鑰加密的算法,加密過后只有特定的人才能對其進行解密。例如,ECC可用于確保用戶在發送電子郵件時,除了收件人之外,沒有人可以閱讀這封郵件。
    發表于 01-06 09:59 ?7456次閱讀
    橢圓曲線<b class='flag-5'>密碼學</b>詳細解析

    密碼學常用算法的工作原理和特點

    現如今,常用的加密算法不外乎私鑰加密方法和公鑰加密方法。私鑰加密方法可以用來保護關鍵/敏感數據。密鑰密文只需一把鑰匙(由通信雙方共享)破解,
    的頭像 發表于 06-28 09:48 ?4740次閱讀
    <b class='flag-5'>密碼學</b>常用<b class='flag-5'>算法</b>的工作原理和特點

    現代密碼學如何確保交易安全的關鍵

    現代密碼學依賴于兩種基本算法——非對稱密鑰對稱密鑰非對稱
    的頭像 發表于 06-28 10:22 ?852次閱讀
    現代<b class='flag-5'>密碼學</b>如何確保交易安全的關鍵

    對稱加密技術在實際應用中如何保障數據安全?

    ,如使用安全的密鑰協商和密鑰分發方式,定期更換密鑰等。 密碼學原理的安全性: 對稱加密算法的安全
    的頭像 發表于 12-16 13:59 ?243次閱讀
    百家乐官网等投注网改单| 玩博论坛| 百家乐赌博代理荐| 百家乐平的概率| K7百家乐的玩法技巧和规则| 微信百家乐群资源| 百家乐技巧开户网址| 188金宝博开户| 桃江县| 百家乐官网的连庄连闲| 百家乐官网有真假宝单吗| 百家乐官网真人娱乐城| 多台百家乐官网的玩法技巧和规则 | 武强县| 至尊百家乐官网娱乐平台| 百家乐官网缩水工具| 澳门百家乐现场视频| 百家乐qq游戏| 大发888官方 黄埔网| 皇博娱乐| 网上玩百家乐官网的玩法技巧和规则| 百家乐和抽水官网| 太阳城绿萱园| 中华娱乐城| 百家乐官网赌场公司| 百家乐二十一点游戏| bet365信誉好吗| 百家乐官网网上赌博| 小孟百家乐官网的玩法技巧和规则| 大佬百家乐的玩法技巧和规则| 托克托县| 做生意的十大风水禁忌| 乐天百家乐的玩法技巧和规则| 鸿利国际| 百家乐官网赢多少该止赢| 百家乐筹码价格| 百家乐官网赌博出千| 不夜城百家乐官网的玩法技巧和规则 | 百家乐官网路子| 威尼斯人娱乐网反水| 喜来登娱乐城|