密碼學與用于實現(xiàn)它的算法一樣強大。在現(xiàn)代密碼學中,我們擁有基本的 XOR 函數(shù),以及當今許多應用程序中使用的更復雜的算法。在這篇博文中,我將概述一些關鍵算法,包括安全哈希算法和 AES 算法。
讓我們通過定義 XOR(異或)開始我們的討論,這是一種在許多(如果不是全部)密碼算法中用于各種能力的重要邏輯運算。圖 1顯示了此功能的工作原理。在深入研究算法之前,您需要了解此功能。

圖 1. 該圖顯示了 XOR 函數(shù)的工作原理。
由于 XOR 的特性,一個輸入可以用作數(shù)據(jù)進入另一個輸入的鍵。例如,如果 A 是加密密鑰的單個位,如果 A 為 1,則與來自 B 的數(shù)據(jù)位的 XOR 會翻轉該位。這可以通過再次將加密結果與密鑰進行按位異或來反轉。
現(xiàn)在,讓我們更詳細地了解安全哈希算法或 SHA。安全散列函數(shù)獲取可變大小的數(shù)據(jù)并將其壓縮為固定大小的位串輸出——這個概念稱為散列。SHA 函數(shù)是一系列哈希算法,通過 NIST(美國國家標準與技術研究院)的監(jiān)督隨著時間的推移而開發(fā)。SHA-3 函數(shù)是最新的。
在接下來的部分中,我們將探討 SHA 函數(shù)的工作原理,重點是 SHA-2 和 SHA-3。(SHA-1 正在逐步淘汰,不推薦用于任何新設計。)
SHA-2 函數(shù)根據(jù)輸出位長有四種主要類型:
SHA-224 – 哈希是 224 位長。
SHA-256 – 哈希是 256 位長。
SHA-384 – 散列長度為 384 位。
SHA-512 – 哈希是 512 位長。
SHA-3 函數(shù)沒有預定義的輸出長度。輸入和輸出長度也沒有最大值。但是為了與 SHA-2 進行比較,讓我們根據(jù)輸出位長度定義四種主要類型。這些是:
SHA3-224 – 哈希是 224 位長。
SHA3-256 – 哈希是 256 位長。
SHA3-384 – 散列長度為 384 位。
SHA3-512 – 哈希是 512 位長。
讓我們以 SHA3-256 為例。SHA-3 使用 Keccak 海綿函數(shù)。就像海綿一樣,第一步會吸收或吸收輸入的信息。在下一階段,輸出哈希被擠出。圖 2是 SHA3-256 函數(shù)的框圖。

圖 2. 該圖顯示了用于安全散列生成的 SHA3-256 函數(shù)的框圖。
圖 2 中的迭代函數(shù)接收 1600 位數(shù)據(jù),然后使用特定算法對其進行 24 輪置換,然后將其作為 1600 位塊傳遞到下一個階段。這一直持續(xù)到吸收階段完成。
吸收階段完成后,最后一個 1600 位塊被傳遞到擠壓階段。在這種情況下,由于 SHA3-256 輸出哈希長度小于 1088 位,因此壓縮階段不需要任何迭代函數(shù)。我們從最后階段獲取前 256 位,這就是輸出哈希。
例如,如果所需的散列長度為 2500 位,我們將需要三個以上迭代函數(shù)實例來獲得所需長度的散列。
還有一些基于加密標準的算法,例如高級加密標準算法。AES 算法根據(jù)輸入密鑰的值以可逆的方式對輸入數(shù)據(jù)進行加擾和替換,從而產生所謂的密文。由于 AES 算法是一種固定寬度的加密算法,因此首先填充輸入消息以確保它完全適合“n”個 128 位塊。
每個 128 位塊與加密密鑰一起輸入加密算法。根據(jù)加密密鑰中的位數(shù),AES 算法會執(zhí)行一定輪數(shù)的模糊輸入塊位。這種模糊化是通過混洗數(shù)據(jù)位、獲取部分數(shù)據(jù)并用查找表(如解碼輪)中的值替換它們以及執(zhí)行 XOR 操作以根據(jù)一組中的位值將位從 0 翻轉到 1 來實現(xiàn)的從輸入加密密鑰生成的“輪密鑰”。輪密鑰用于其中一個模糊輪,它是通過復制位并在其他位之間插入副本來“擴展”加密密鑰的一部分來創(chuàng)建的。
AES 解密函數(shù)使用相同的加密密鑰簡單地執(zhí)行加密函數(shù)中的操作的相反操作,以便對原始輸入塊數(shù)據(jù)進行解密。
這些只是為提供設計安全性而出現(xiàn)的一些加密算法。通過閱讀改編本博文的教程“密碼學:深入了解算法”,了解有關其他人的更多信息(包括 RSA 公鑰密碼系統(tǒng)、橢圓曲線數(shù)字簽名算法和橢圓曲線 Diffie-Hellman 密鑰交換協(xié)議)。
審核編輯:郭婷
-
AES
+關注
關注
0文章
107瀏覽量
33839 -
RSA
+關注
關注
0文章
60瀏覽量
19558
發(fā)布評論請先 登錄
如何設計嵌入式系統(tǒng)掉電保護方案?
嵌入式小波編碼算法的原理是什么?
使用安全IC保護IoT嵌入式設計
嵌入式平臺安全啟動的相關資料下載
嵌入式開發(fā)的crc算法知識精選
嵌入式系統(tǒng)中數(shù)字濾波的算法及軟件流程
嵌入式GIS中最優(yōu)路徑規(guī)劃算法研究與實現(xiàn)
基于KCF的目標跟蹤算法研究及嵌入式系統(tǒng)實現(xiàn)
不知道嵌入式Linux系統(tǒng)下的root密碼,修改新密碼并進入系統(tǒng)
linux嵌入式系統(tǒng)算法,嵌入式Linux操作系統(tǒng)調度算法研究
加密算法如何保護嵌入式設計

密碼算法如何保護嵌入式設計
評論