不安全物聯網的輕量級加密:綜述

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的加密過程被分為四個主要步驟,其中每個步驟包含不同的操作。

  1. 密鑰擴展

    • 通過密鑰擴展過程,AES從原始的密鑰生成一系列的輪密鑰,供后續的加密輪次使用。該過程包括三個子步驟:旋轉(Rotate)、S-盒替換(S-Box)和Rcon(一個常數)。
  2. 初始輪次

    • Add Round Key:在此步驟中,AES的每個字節與輪密鑰通過逐位XOR操作結合,完成初步加密。
  3. 后續輪次

    • Sub Bytes:這一階段進行非線性字節替換,每個字節用預定的查找表替換,增加加密的復雜性。
    • Shift Rows:該步驟對數據進行循環移位,狀態的后三行根據指定的步數移動。
    • Mix Columns:對狀態矩陣的每一列進行混合操作,目的是通過線性變換增加加密的強度。
  4. 最后輪次

    • 在最后一輪中,除了“列混合”步驟外,其他步驟都將繼續執行。最終完成加密。

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盒的優化,以實現這一目標。

?

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/64315.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/64315.shtml
英文地址,請注明出處:http://en.pswp.cn/web/64315.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

【小程序】全局數據共享

目錄 全局數據共享 1. 什么是全局數據共享 2. 小程序中的全局數據共享方案 全局數據共享 - MobX 1. 安裝 MobX 相關的包 2. 創建 MobX 的 Store 實例 3. 將 Store 中的成員綁定到頁面中 4. 在頁面上使用 Store 中的成員 ?5. 將 Store 中的成員綁定到組件中 6. 在組件中…

自動化測試- 自動化測試模型

目錄 自動化測試模型簡介 1、線性模型 舉例 測試頁面html文件 測試腳本 2. 關鍵字驅動測試(Keyword-Driven Testing) 需測試內容 關鍵字驅動測試框架 創建測試用例文件 運行測試 3. 數據驅動測試(Data-Driven Testing) …

【GlobalMapper精品教程】091:根據指定字段融合圖斑(字段值相同融合到一起)

文章目錄 一、加載數據二、符號化三、融合圖斑1. 根據圖斑位置進行融合2. 根據指定字段四、注意事項一、加載數據 訂閱專欄后,從私信中查收配套實驗數據包,找到data091.rar,解壓并加載,如下圖所示: 屬性表如下: 二、符號化 為了便于比對不同的融合結果,查看屬性表根據…

JavaScript 實現動態產品展示網頁

JavaScript 實現動態產品展示網頁 1. HTML 頁面結構2. CSS 樣式設計3. JavaScript 實現功能功能總結 本文設計了一個基于 JavaScript 的動態產品展示網頁案例,核心功能包括: 動態產品分類過濾:通過點擊分類按鈕,僅顯示屬于該分類…

網絡爬蟲科普:原理、類型、策略與常用工具

網絡爬蟲科普:原理、類型、策略與常用工具 網絡爬蟲在當今互聯網時代扮演著極為重要的角色,它能幫助我們從海量的網絡信息中提取出有價值的數據。以下將從網絡爬蟲的基本概念、工作流程、類型、搜索策略以及常用工具等方面進行詳細科普介紹。 一、網絡…

strace工具使用

下載地址: https://github.com/strace/strace/releases/tag/v6.12 解壓后執行以下命令 ./configure --hostarm-linux --prefix/home/wei/Code/strace/strace-6.12/out CC/home/wei/Code/firmware/prebuilts/host/gcc/gcc-arm-10.2-2020.11-x86_64-arm-none-linux…

圖像處理-Ch2-空間域的圖像增強

Ch2 空間域的圖像增強 文章目錄 Ch2 空間域的圖像增強Background灰度變換函數(Gray-level Transformation)對數變換(Logarithmic)冪律變換(Power-Law)分段線性變換函數(Piecewise-Linear)對比度拉伸(Contrast-Stretching)灰度級分層(Gray-level Slicing) 直方圖處理(Histogram …

Linux | Ubuntu零基礎安裝學習cURL文件傳輸工具

目錄 介紹 檢查安裝包 下載安裝 手冊 介紹 ?cURL是一個利用URL語法在命令行下工作的文件傳輸工具,首次發行于1997年??12。cURL支持多種協議,包括FTP、FTPS、HTTP、HTTPS、TFTP、SFTP、Gopher、SCP、Telnet、DICT、FILE、LDAP、LDAPS、IMAP、POP3…

cesium通過經緯度獲取3dtiles 得feature信息

找到這里3dtiles的兩種訪問方式: 1.1 3DTileContent#getFeature 這里涉及3DTile 數據結構,暫不了解3DTile 數據結構,因此暫不使用。 1.2 scene.pick 本次使用 scene表示虛擬場景中所有 3D 圖形對象和狀態的容器;scene中…

內置ALC的前置放大器D2538A/D3308

一、概述 D2538A/D3308是芯谷科技推出的帶有ALC(自動電平控制)的前置音頻放大器芯片,最初產品為單聲道/立體聲收錄機及盒式錄音機而開發,作為錄音/回放的磁頭放大器使用;由于產品的高增益、低噪聲及ALC外部可調的特性&…

基于SSM的“快遞管理系統”的設計與實現(源碼+數據庫+文檔+PPT)

基于SSM的“快遞管理系統”的設計與實現(源碼數據庫文檔PPT) 開發語言:Java 數據庫:MySQL 技術:SSM 工具:IDEA/Ecilpse、Navicat、Maven 系統展示 登陸頁面 注冊頁面 快遞員頁面 派單員訂單管理頁面 派單員訂單添…

Mac 查詢IP配置,網絡代理

常用命令 1.查詢IP ifconfig | grep "inet" 2.ping查詢 ping 172.18.54.19(自己IP) 3.取消代理,通過在終端執行以下命令,可以取消 Git 的代理設置 git config --global --unset http.proxy git config --global …

Spring創建異步線程,使用@Async注解時不指定value可以嗎?

在Spring中使用Async注解時,不指定value是可以的。如果沒有指定value(即線程池的名稱),Spring會默認使用名稱為taskExecutor的線程池。如果沒有定義taskExecutor線程池,則Spring會自動創建一個默認的線程池。 默認行為…

Python小括號( )、中括號[ ]和大括號{}代表什么

python語言最常見的括號有三種,分別是:小括號( )、中括號[ ]和大括號也叫做花括號{ },分別用來代表不同的python基本內置數據類型。 小括號():struct結構體,但不能改值 python中的小括號( )&am…

QML 之狀態

文章目錄 狀態示例 1:矩形的可見/隱藏切換功能介紹: 示例 2:按鈕的激活/非激活狀態功能介紹: 示例 3:面板的展開/折疊功能介紹: 示例 4:燈泡的開/關功能介紹: 總結 狀態 狀態是界面中…

C語言簡單測試總結

前言 在學C語言之前回顧一下C中的一些知識.選用的是中國大學MOOC中C程序設計(面向對象進階)中的C語言水平評估測試題. 題目 ?The keyword "unsigned" can modify the keyword [ B ] A.signed B.long C.long double D.float題解:unsigned是無符號的意識,通常在…

frp(s) 內網穿透 Liunx環境雙端Docker部署

FRP(Fast Reverse Proxy)是一款高性能的反向代理應用,主要用于內網穿透、負載均衡和反向代理等多種場景。它能夠將內網中的服務暴露給公網,實現遠程訪問。此外,FRP還可以用于接收類似GitHub或第三方提供的Webhook請求。在微服務架構中,FRP可以作為服務調用的反向代理,提…

代碼隨想錄算法訓練營第三十五天|01背包問題 二維和一維(卡碼網第46題)、416分割等和子集

day35 動態規劃part03 1. 01背包問題 二維 卡碼網第46題 01 背包:有n件物品和一個最多能背重量為w 的背包。第i件物品的重量是weight[i],得到的價值是value[i] 。每件物品只能用一次,求解將哪些物品裝入背包里物品價值總和最大。 動規五部…

【Unity3D】ECS入門學習(九)SystemBase

SystemBase:支持主線程或多線程執行篩選實體任務。 主要介紹是內部成員:Entities的各種篩選方法,其內部成員還有EntityManager ForEach方法篩選,傳遞一個有參委托函數進去,參數ref xxx組件類(可填多個&…

[Android]init中添加新的command

在Android的init進程中,command是用于定義啟動時要執行的具體命令行指令的關鍵部分。init進程是Android系統啟動的第一個進程,它負責初始化系統的各個組件,并啟動必要的服務。command可以在init.rc文件及其包含的其他.rc文件中找到&#xff0…