Abstract
本文綜述了針對物聯網(IoT)的輕量級加密解決方案。這項綜述全面覆蓋了從輕量級加密方案到不同類型分組密碼的比較等多個方面。同時,還對硬件與軟件解決方案之間的比較進行了討論,并分析了當前最受信賴且研究最深入的分組密碼——高級加密標準(AES)——在架構、列混合/Mix-Column和S盒/S-box修改策略,以及物聯網安全相關攻擊等方面的最新研究方法。研究表明,輕量級AES在資源受限的物聯網設備中已經被證明是一種有效的安全解決方案。
Introduction
隨著人類對生活便利性的追求,歷史表明,需求是推動創新的動力,而現代科學技術的發展也隨之加速。如今,隨著物聯網(IoT)設備數量的爆發性增長,世界變得日益互聯。根據Statista 2018的統計數據,到2020年,聯網設備的數量將增長到近310億臺。隨著這些設備數量的增加,最重要的問題變成了安全性。長久以來,這個龐大網絡的安全性問題一直被制造商和消費者所忽視。
我們的技術依賴型生活方式正引導我們走向一個“萬物不安全互聯”的世界,因此,現在是我們退一步,認真分析這一問題的關鍵時刻。安全性已成為該領域研究人員的主要關注點。
物聯網(IoT)由多個相互連接的設備組成,這些設備之間不斷共享信息和數據。為了保護這些信息,我們需要了解物聯網設備的基本安全特性:
- 保密性(Confidentiality):需要確保信息僅對授權用戶可用。
- 可用性(Availability):多個設備相互連接時,需要確保設備能在需要時獲取所需數據。
- 完整性(Integrity):需要確保數據的準確性。
- 認證(Authentication):這是一個重要但從物聯網角度看難以實現的特性。在物聯網中,連接的實體有不同的用途、目的和層次結構。
- 異構性(Heterogeneity):由于網絡中的不同實體具有不同的功能、復雜性,甚至不同的制造商,因此也需要確保網絡的異構性。
- 密鑰加密(Key Encryption):這是最重要的一步。為了確保安全連接,設備和其他實體需要具備輕量級的密鑰管理系統。
隨著時間的推移,數據和密鑰傳輸的安全性需求催生了加密學的概念。加密學是一種通過將數據轉化為無法識別和無關聯的形式,從而保護數據免遭未授權訪問的過程。根據物聯網(IoT)的需求,專用的加密算法需要在面積、內存占用、功耗和能量消耗方面保持輕量級。
本文對物聯網安全解決方案的不同階段的近期研究工作進行了綜述,全面涵蓋了從輕量級加密方案到不同類型分組密碼的比較等安全措施流程。此外,我們還對硬件與軟件解決方案之間的比較以及高級加密標準(AES)在物聯網安全領域中的最新研究方法進行了探討,包括其架構、列混合/Mix-Column與S盒/S-box修改策略以及攻擊分析。
文章結構
- 第二節:討論了輕量級加密,包括加密學的兩大主要分支——非對稱加密和對稱加密。同時,還整理并分析了可能適用于物聯網應用的不同類型流密碼和分組密碼。
- 第三節:探討了高級加密標準(AES),這一最受信賴且研究最深入的分組密碼。我們結合了針對AES在物聯網中應用的架構優化、列混合(Mix-Column)和S盒(S-box)修改策略及其面對攻擊的研究成果。
Lightweight cryptography
有多種加密解決方案可用于保護我們的重要數據,但不幸的是,并非所有方案都適用于像物聯網(IoT)設備這樣的資源受限環境。輕量級加密解決方案正在被深入研究,旨在提供高效的面積和功率解決方案。商業和工業物聯網設備都容易受到特定于物聯網的攻擊。如果我們繼續使用現有的物聯網設備設計流程,未來可能會面臨安全災難。當前的加密原語可以分為兩類:
- 非對稱密鑰加密
- 對稱密鑰加密
A. 非對稱密鑰加密
非對稱密鑰加密也稱為公鑰加密,因為在這種技術中,需要一對公鑰和私鑰(如圖1所示)。最近,輕量級加密的研究重點逐漸轉向非對稱密鑰加密,但其成果尚未像對稱密鑰加密那樣穩定和有成效。輕量級非對稱算法在操作上較為復雜,且效率不高。此外,由于操作數的大小以及攻擊模型的不斷發展,這些算法也變得更加脆弱[2]。
以下是一些非常重要的非對稱算法:
- Rivest-Shamir-Adleman (RSA)
- 逆向過程對攻擊者來說非常困難,同時從公鑰推導出私鑰也極其困難。因此,該方法具有高度的安全性,但密鑰生成過程復雜且速度較慢。
(1)RSA 公鑰私鑰計算
(2)RSA 加密解密過程
- Diffie-Hellman
- 私鑰非常短,因此加密過程較快。但由于私鑰長度較短,該方法更容易受到攻擊,特別是中間人攻擊。
- 數字簽名算法(DSA)
- 此方法比其他非對稱算法更快,且在許多場景中更有優勢。然而,數字簽名的生命周期較短,且共享過程較為復雜[3]。
- 橢圓曲線加密(ECC)
- 盡管ECC算法更為復雜且難以實現,但它的功耗較低。在多種非對稱算法中,ECC最適合在資源受限的設備中實現[2]。
ECC 的研究現狀
近年來,ECC在物聯網(IoT)領域的研究成為一個重要課題,但大多集中于軟件層面。例如:
- 軟件實現:
[4] 實現并評估了一種基于開源ECC的方案,運行于物聯網操作系統Contiki OS上,其實現以BSD許可證發布。
[5] 應用了ECC方法,并在一個名為Wiselib的開源和通用編程庫中提出了零知識協議的實現。 - 硬件實現:
[6] 采用了一種硬件方法,證明ECC計算能夠有效地抵御側信道攻擊。他們的方法適用于具有最低安全級別和硬件開銷的輕量化實現。 - 對比研究:
[7] 對RSA、Diffie-Hellman以及橢圓曲線加密(包括橢圓曲線Diffie-Hellman, ECDH)進行了比較研究,發現ECDH在功耗和面積方面優于其他算法。
B. 對稱密鑰密碼學
對稱密鑰密碼學也被稱為秘密密鑰或共享密鑰密碼學(如圖2所示)。在此過程中,發送者和接收者通過秘密通信共享一個共同的密鑰,用于加密和解密。對稱密碼學由于其快速的操作(主要是XOR和置換操作)而更適合物聯網(IoT)應用。其處理速度較快,且不會消耗太多資源[3]。表I顯示了非對稱密鑰密碼學與對稱密鑰密碼學的直接比較。
對稱算法中的一個重要區別是流密碼和分組密碼。流密碼使用與數據大小相同的密鑰。在這個過程中,密文是通過對明文的“逐位”操作得到的。常見的輕量級流密碼包括Trivium、Chacha、WG-8、Espresso,這些算法具有較高的吞吐量。Grain 128是最受歡迎且適用于受限設備的輕量級密碼之一,盡管它的吞吐量較低。Espresso被認為是1500 GE以下最快的輕量級密碼[8]。
分組密碼具有固定長度的位數,并且其變換過程的不同階段由對稱密鑰決定。分組密碼非常多用途,這對物聯網(IoT)來說非常有幫助。另一個優點是該過程的加密和解密方法幾乎是相同的。因此,它可以用更少的資源實現。雖然分組密碼的延遲較低,但它們是物聯網安全中研究最多、改進最多的解決方案[8]。常見的分組密碼包括高級加密標準(AES)、數據加密標準(DES)、3DES、Blowfish、Twofish。研究人員采取了不同的方法,使這些分組密碼變得輕量并適合物聯網使用。其他一些正在研究的輕量級分組密碼包括Curupira、PRESENT、KATAN、TEA、Humming Bird、RECTANGLE、SIMON。表II顯示了一些常見分組密碼之間的基本比較[8][9][10][11]。
不同的密碼學標準化工作既考慮了軟件安全性,也考慮了硬件安全性。在[12]中,對幾種輕量級分組密碼的硬件和軟件實現進行了比較。軟件和硬件的安全解決方案有不同的衡量標準。軟件度量包括周期數、內存、每字節周期數,而硬件度量包括吞吐量、面積、吞吐量-面積比率。要直接比較這兩者是很困難的。在[12]中,作者通過使用定制的輕量級可重配置處理器成功地進行了比較,比較了AES、SIMON、SPECK、PRESENT、LED、TWINE的面積、吞吐量/面積比等硬件和軟件實現的指標。SPECK、TWINE和PRESENT在硬件和軟件中表現良好。表III提供了硬件和軟件安全解決方案的基本比較[13]。
需要特別指出的是,在所有分組密碼算法中,AES(高級加密標準)是研究得最深入的算法。關于AES的許多研究已經完成,并且仍在繼續,旨在使其更加輕量并適合物聯網使用。
AES
AES概述與標準化:
- AES的標準化:AES作為加密標準,由美國NIST于2001年標準化。此后,它成為最廣泛使用的對稱加密算法之一,尤其適用于數據保護和加密應用。它具有強大的安全性和高效性,因此被大量研究與應用。
AES的安全性與適用性:
- 不同設備的需求:不同的設備可能對安全性有不同的需求,并且設備的功耗和處理能力(吞吐量)各異,因此AES支持不同的密鑰長度,以適應不同的安全需求。
- AES的優點:AES算法經過充分的安全性驗證,已被廣泛應用于數據加密和其他安全措施中。與其他對稱加密算法相比,AES的復雜度較低,能提供較高的安全級別[14]。
AES的結構與過程:
AES的加密過程被分為四個主要步驟,其中每個步驟包含不同的操作。
-
密鑰擴展:
- 通過密鑰擴展過程,AES從原始的密鑰生成一系列的輪密鑰,供后續的加密輪次使用。該過程包括三個子步驟:旋轉(Rotate)、S-盒替換(S-Box)和Rcon(一個常數)。
-
初始輪次:
- Add Round Key:在此步驟中,AES的每個字節與輪密鑰通過逐位XOR操作結合,完成初步加密。
-
后續輪次:
- Sub Bytes:這一階段進行非線性字節替換,每個字節用預定的查找表替換,增加加密的復雜性。
- Shift Rows:該步驟對數據進行循環移位,狀態的后三行根據指定的步數移動。
- Mix Columns:對狀態矩陣的每一列進行混合操作,目的是通過線性變換增加加密的強度。
-
最后輪次:
- 在最后一輪中,除了“列混合”步驟外,其他步驟都將繼續執行。最終完成加密。
B. 近期關于AES在物聯網中的研究工作:聚焦混合列(Mix Column)和S盒(S-box)
AES算法的硬件實現面臨兩個主要挑戰:混合列(Mix Column)輪次和S盒(S-box)。減少硬件實現AES的面積和延遲是研究人員的主要目標。研究人員一直在努力提出適用于物聯網的輕量級AES。至今,關于混合列和S盒的研究仍在繼續。
[25]提出了一種新的FPGA實現AES的方法,使用了高性能的混合列(Mix-Column)和逆混合列(inv-Mix Column)方法,利用了二進制計算的特性。他們的結果顯示,與原始AES設計相比,面積減少了12%,速度提高了20%。另一篇論文[26]也在混合列方面做了優化,旨在使其更快且低復雜性。其結果顯示,相較于其他相關工作,復雜性較低,所需的門數減少。另有研究[27]在混合列方面也做了工作,并在門的尺寸和時鐘周期數方面取得了更好的結果。
[28]提出了一種新的方法,設計了一個低面積的GF(2^8)有限域反演器,具有最短的關鍵路徑,用于S盒。[29]使用了從交換鏈環中獲得的S盒。[30]提出了一種新的設計,結合了AES的S盒和逆S盒,他們的設計在研究中表現優于其他最佳設計。S盒和混合列輪次是AES成為輕量級、適合物聯網的分組密碼的兩個主要問題。目前,關于AES的安全性沒有爭議。脆弱的物聯網網絡可以通過輕量級AES得到保護。研究人員一直在提出新的架構,致力于混合列和S盒的優化,以實現這一目標。
?