















摘 要:MQTT協議作為一種低開銷、低帶寬占用的即時通信協議,在物聯網、小型設備和移動應用等領域得到廣泛應用。基于此,提出了一種基于蒙哥馬利冪模運算的高效輕量級Elgamal加密算法,并與MQTT協議相融合以補充MQTT協議的通信安全性。新的Elgamal算法能在輕量級嵌入式設備上部署,且硬件開銷非常低。文中在ES8H0183FLLT和ESP8266模塊上實施了軟硬件系統搭建,驗證了新協議的性能表現。實驗結果證明,新的MQTT協議能夠大幅降低硬件資源消耗,有效保障數據傳輸的安全性,為構建安全可靠的物聯網通信系統提供了有力支持。
關鍵詞:Elgamal算法;MQTT協議;物聯網;加密解密;輕量化;安全通信
中圖分類號:TP39;TN918.91 文獻標識碼:A 文章編號:2095-1302(2025)01-00-05
0 引 言
物聯網的快速發展使得設備間的通信和數據交換變得日益普遍和至關重要。MQTT(Message Queuing Telemetry Transport)協議作為一種輕量、靈活且可靠的通信方式,是物聯網設備之間的成熟通信方案[1]。然而,MQTT協議的信息收發不具有加解密的功能。針對低成本物聯網系統,本文提出基于輕量化Elgamal(Enhanced Lightweight Group Mutual Authentication)加密算法的加密MQTT協議,以提高數據傳輸的安全性。
為滿足通信安全的需求,本文將Elgamal算法[2]與MQTT通信協議結合,并優化Elgamal算法的模運算,減小硬件開銷,使其能部署在輕量級物聯網嵌入式設備上。通過結合Elgamal算法保障MQTT的安全通信[3],旨在增強物聯網通信的安全性,以有效應對不斷演化的網絡威脅和挑戰,為構建更安全、可靠的物聯網通信系統奠定基礎。
1 MQTT協議安全性分析
1.1 MQTT協議介紹
隨著物聯網的迅猛發展,MQTT協議作為其主流通信協議,在近年來逐漸成為業界的首選。其優勢在于具有輕量級特性,出色地滿足了物聯網環境對于通信協議的特殊需求[4]。這種協議設計的突出特點在于協議本身的精巧和輕巧,能夠高效地利用有限的帶寬資源,使得其在資源有限的物聯網設備中得以廣泛應用。同時,MQTT協議的實現相對簡單,開發人員可以迅速地將其集成到各種設備中,進一步加速了物聯網技術的普及[5]。
MQTT協議的一個顯著特色在于其發布/訂閱消息模式的采用[6]。MQTT協議通信具有高度的靈活性和松耦合性,消息的發送者(發布者)和接收者(訂閱者)之間并不直接連接,而是通過MQTT服務器(或稱為MQTT代理)進行中介和分發,如圖1所示。這種架構有效地降低了系統中各個組件之間的耦合度,從而使得系統更具可擴展性和靈活性。這種消息分發機制不僅支持一對一的消息傳遞,還可以同時將消息廣播給多個訂閱者,滿足了物聯網中信息共享和傳播的多樣化需求[7]。
首先,發布方(Publisher)與MQTT代理(Broker)建立連接;接著,訂閱方(Subscriber)也連接到MQTT代理,并訂閱特定的主題(Topic);之后,發布方向MQTT代理發布一條攜帶Topic主題的消息;MQTT代理接收并辨識出消息的主題后將該消息轉發給已訂閱該Topic的訂閱方;訂閱方從MQTT代理接收到此消息,完成整個通信過程。
MQTT通過發布/訂閱模式,成功實現了發布方與訂閱方之間解耦[8]。在這個模式中,發布方不需要直接了解訂閱方的存在,也無需訂閱方同時在線。訂閱方只需要在之前連接過MQTT代理并訂閱了對應主題即可,即便其處于離線狀態,只要再次連接到MQTT代理,就能收到發布方發布的離線消息。這種機制極大地提升了通信的實時性和靈活性,使得物聯網環境下設備間的信息交換變得高效而無縫。
MQTT協議的數據包結構是實現其通信過程的基礎[9],它定義了消息在網絡中的傳輸格式。MQTT協議的數據包結構主要包括固定頭部和可變頭部,不同類型的控制數據包還可能包含有效載荷(Payload)。表1是MQTT協議數據包的主要結構。
1.2 MQTT協議的安全性
MQTT協議在設計時考慮了一定的安全性要求,但在默認情況下它的安全性是有限的[10]。一些文獻從不同層面提出了安全問題解決方案[11],并提出了加密改進的算法[12]。這些方案主要是優化算力而不是系統,如工業機器人等系統,普遍采用高性能的工業級芯片,但對于大部分低成本物聯網系統[13],如家電控制物聯網系統,運行這些算法時資源就會顯得不足。
2 輕量級Elgamal加密算法
2.1 傳統Elgamal加密算法
在公鑰密碼體制中,Elgamal加密算法被視為一種基于迪菲-赫爾曼密鑰交換原理的非對稱加密技術。該算法由塔希爾·蓋莫爾于1985年首次提出,利用數論中離散對數問題的困難性來實現數據的保密性。Elgamal加密算法以其堅實的數學基礎而聞名,因此在現代密碼學領域得到廣泛的應用[14]。Elgamal算法的獨特之處在于其采用了公鑰和私鑰的組合,使得加密和解密操作在不同的密鑰下進行。這種非對稱加密方式賦予了Elgamal算法良好的安全性和靈活性,能夠滿足對信息傳輸保密性和數據完整性的高要求[15]。該算法的安全性依賴于尋找離散對數的困難性,這在當前計算機環境下被認為是一項難以攻克的數學問題,為信息的安全傳輸提供了可靠的保障。在實際應用中,Elgamal算法在數字簽名、數據加密等領域發揮著重要作用。
Elgamal加密體制的公私密鑰生成過程如下:
(1)隨機選擇一個滿足安全要求的大素數p,并生成有限域Zp的一個生成元g∈Zp*;
(2)選一個隨機數x(1lt;rlt;p-1),進行如下計算:
y=gx(mod p) " " " " " " " " " " " "(1)
由此可知,公鑰為(y, g, p),私鑰為x。
2.1.1 加密過程
與RSA密碼體制相同,加密時首先將明文比特流分組,使得每組對應的十進制數小于P,即分組長度小于log2P,然后對每個明文分組分別進行加密。具體過程分為如下幾步:
(1)" 得到接收方的公鑰(y, g, p);
(2) 對消息m進行分組,分組長度為L(Llt;log2P),m= m1m2...mt;
(3)" 對應第i塊消息(1 ≤ i ≤ t)隨機選擇整數ri,1 lt; ri lt; p - 1;
(4)" 進行如下計算:
ci≡gri(mod p) " " " " " " " " " " (2)
ci' ≡ mi yri(mod p), 1 ≤ i ≤ t " " " " (3)
最后將密文C=(c1, c1' )(c2, c2' )...(ct, ct' )發送給接收方。
2.1.2 解密過程
具體的解密過程如下:
(1)接收方收到密文C=(c1, c1' )(c2, c2' )...(ct, ct' );
(2)使用私鑰r和解密算法計算明文m,公式如下:
mi=(ci'/cix )(mod p), 1 ≤ i ≤ t (4)
(3)得到明文m=m1m2...mt。
2.2 改進Elgamal加密算法
在現今的物聯網系統中,特別是對于成本相對較低的設備,如家電、智能家居設備等,往往采用中低端的MCU,主頻一般在50 MHz以下,多為8 MHz或16 MHz。由于資源有限,這些MCU的乘除功能也受到一定限制,更不用說復雜的冪模運算等加密算法。因此,為了在中低端資源受限的物聯網設備的MCU中實現復雜算法,本文提出新的基于蒙哥馬利冪模運算的Elgamal算法,并與MQTT協議相結合。
Elgamal算法的核心運算是冪模運算[16],為了適應資源受限制的MCU,本文使用了蒙哥馬利冪模運算方法。蒙哥馬利冪模運算[17]是一種高效的算法,通過將冪模運算轉化為一系列位操作和模運算,從而降低了乘法和除法運算的復雜度[18],同時減少了所需的中間存儲空間。這種方法在中低端MCU上的實現效果顯著,使得Elgamal算法能夠在資源有限的設備上得到高效的執行。
本文所提出的蒙哥馬利快速冪運算基于以下核心公式實現:
(a*b)%c=((a%c)*(b%c))%c " " " " " "(5)
式中:%表示取模運算。
對于任意b,都有:
b=b0*20+b1*21+ ... + bn*2n" " " " "(6)
式中:b0~bn取值為0或1。由式(6)可得:
ab=a(b0*20+b1*21+ ... +bn*2n) " " " " " " " "(7)
由式(5)和式(7)構成快速冪模算法,結果設為ans, 將ans初始化為1,然后進行如下操作:
(1)遍歷b的每個二進制位,顯然為1的時候才對結果有貢獻。
(2)對于b的每個二進制位,如果為1則與ans相乘,同時不斷對a進行乘方運算。
(3)每一步都取余c。
算法偽代碼如下所示:
Input: a,b,c
Output: ans
Process:
1:" "function PowMod
2:" "ans = 1;
3:" "a %= c;
4:" "while (b)
5:" " "if(b amp; 1) then
6:" " " "ans = (ans * a) %c;
7:" " "end if
8:" " "a= (a * a) % c;
9:" " "b gt;gt;= 1;
10:" end while
11:" return ans;
12:" end function
對算法時間復雜度進行分析時,假設遍歷的數是b,不做算法優化的Elgamal加密算法時間復雜度為O(b)。當b的數值很大時,時間復雜度也非常大,且運算為冪運算,非常耗費單片機的時間資源和空間資源,甚至無法在輕量級MCU上實現。本文所提出的改進型Elgamal加密算法,由于僅需根據b的二進制位數進行遍歷,遍歷次數為log2b次,因此時間復雜度降低至O(log2b),這極大地減少了計算量,使其更適合部署在輕量化的物聯網設備上。
計算分數求模,假設:
x=(" )%p " " " " " " " " " (8)
等價于求解如下公式:
x=(b*a-1)%p " " " " " " " " (9)
由費馬小定理可得:
ap-1%p=1%p " " " " " " " " "(10)
a*ap-2%p=1%p " " " " " " " "(11)
ap-2%p=a-1%p " " " " " " " "(12)
綜上可得:
x=(b/a)%p=(b*a-1)%p (13)
=(b*ap-2)%p" " " " " (13)
對于式(13),可通過上文的蒙哥馬利冪模算法進行計算,把分數求模轉化成一般的冪模運算。
以上為本文用到的核心算法,通過公式的巧妙變形,把大計算量的冪模運算轉化成可以在輕量級MCU上運行的移位運算和簡單的乘除運算。
對于MQTT協議的數據包結構,本文選擇的加密部分為載荷部分,其他部分不作加密或者用其他已經部屬在服務端/代理端的加密系統。新的算法設計對整個傳輸系統改動最小,硬件不需做任何修改,軟件只需要在設備端和客戶端加載加密算法即可,以減少資源消耗。
3 測試系統分析
3.1 硬件系統
本系統選取東軟(Eastsoft)出品的ES8H0183FLLT、ES8H018x/ES8H0163系列的基于ARM Cortex-M0 CPU內核的高性能低功耗32位通用微控制器,如圖2所示。由于其具有出色的性價比,在家電等低成本系統中應用非常廣泛。本系統選取振蕩器頻率為16 MHz,與運行算法相關的資源特性如下:
(1)具有ARM Cortex-M0 32位嵌入式處理器內核;
(2)支持SWD串行調試接口,支持2個監視點(watchpoint)和4個斷點(breakpoint);
(3)支持單周期32位乘法器;
(4)擁有128 KB/72 KB FLASH 存儲器;
(5)擁有16 KB/8 KB SRAM 存儲器。
本系統選取的WiFi模塊為ESP8266,ESP8266是一款常用的高性價比WiFi模塊,被廣泛應用于中低端物聯網系統。網絡特性主要如下:
(1)支持802.11 b/g/n 協議棧;
(2)內置TCP/IP協議棧;
(3)WiFi@2.4 GHz,支持WPA/WPA2安全模式;
(4)支持STA/AP/STA+AP工作模式;
(5)支持Smart Config功能。
3.2 軟件系統
軟件架構由應用層、可信通信層、底層驅動和信號采集部分構成,總體結構如圖3所示。
4 試驗結果分析
4.1 試驗過程
假設發送方為甲,接收方為乙,甲要發送給乙的數據包記為M(用十六進制表示),M = m1 m2 m3 m4 m5 m6 m7 m8 m9 m10 = 01 02 03 04 05 06 07 08 09 0a。加密時,分別對每個字節進行加密,完整的傳輸流程如圖4所示。
4.1.1 選擇大素數和生成元
本文設置乙方選擇素數p=13 171,生成元g=2。
4.1.2 乙方計算公鑰和私鑰
私鑰x為隨機數,且滿足1lt;xlt;p-1,發送一次更改一次私鑰。假設一次傳輸x=53,由式(1)的公鑰計算公式可得:p=13 171, g=2, y=7 311,如圖5所示。乙方通過WiFi串口將公鑰先行傳輸給甲方,如圖6所示。
4.1.3 甲方加密
一個數據選擇一個隨機數r,隨機數列為11, 78, 34, 81, 21, 13, 9, 51, 16, 70,根據式(14)計算密文對,結果如圖7所示。
(c=grmod p, c'=m*yr mod p) (14)
得到10組密文對(2048,9031),(5023,330),(11914,8474),(671,9248),(2963,210),(8192,8876),(512, 4073),(11706,5954),(12852,9348),(11287,1776)后,甲方將由密文對組成的密文數據包,通過WiFi串口發送給乙方,如圖8所示。
4.1.4 乙方解密
通過如下公式計算明文M(用十六進制表示),結果如圖9所示。
M=(c'/cx)mod p " " " " " " "(16)
得到明文M,M = m1 m2 m3 m4 m5 m6 m7 m8 m9 m10 = 01 02 03 04 05 06 07 08 09 0a。
完整的數據傳輸過程如圖10所示。
4.2 消耗資源分析
本文的加解密實驗使用了ROM資源和RAM資源。如圖11所示,ROM資源的核心加密算法模塊小于1 KB,核心解密算法模塊也小于1 KB。RAM資源的核心加密算法模塊小于100 KB,核心解密算法模塊小于100 KB。對實驗過程的耗時分析結果顯示,加密過程耗時37.5 μs,解密過程耗時275 μs。
根據以上數據可知,除了RAM會消耗一定的資源,ROM消耗的資源基本可以忽略,CPU耗時基本不會影響正常通信和正常任務。
5 結 語
本文深入研究了MQTT協議的安全性問題,特別關注了在物聯網設備通信中存在的潛在風險。引入了Elgamal算法,旨在為MQTT協議的通信提供安全的傳輸機制。實驗結果表明,在融合蒙哥馬利冪模運算的Elgamal算法的基礎上,在使用新的MQTT協議保障通信安全的同時,還會極大程度地降低硬件開銷,適用于輕量級物聯網系統。在面對不斷演化的網絡威脅和挑戰時,本文提出的基于Elgamal算法的新MQTT傳輸協議為解決數據傳輸的安全性問題提供了強有力的支持。這一研究為構建更安全、可靠的物聯網通信系統提供了堅實的基礎,并有望在未來的物聯網應用中發揮關鍵作用。
注:本文通訊作者為周寅峰。
參考文獻
[1] JOSé R, JAVIER C, MANUEL J G C, et al. Security analysis of the MQTT-SN protocol for the Internet of Things [J]. Applied sciences, 2022, 12(21): 10991.
[2] DANIEL P, PANDOLFO L P, BRETT S. Comparing balanced sequences obtained from Elgamal function to random balanced sequences [J]. Cryptography and communications, 2023, 15(3): 675-707.
[3] NAVEED M, SADIQ U. IoT enabled vehicle recognition system using inkjet-printed windshield tag and 5G cloud network [J]. Internet of Things, 2023, 23.
[4] FARAG A, TURKI A. Secure data distribution architecture in IoT using MQTT [J]. Applied sciences, 2023, 13(4).
[5] HAYETTE Z, MEHDI B, RAMDANE C. Securing MQTT protocol for IoT environment using IDS based on ensemble learning [J]. International journal of information security, 2023, 22(4): 1075-1086.
[6] MUHAMMAD H, KHIZAR H, ENRICO C, et al. Preventing MQTT vulnerabilities using IoT-Enabled intrusion detection system [J]. Sensors, 2022, 22(2).
[7]張詩怡,朱豪杰,黃明浩,等. MQTT協議安全加固研究[J].通信技術,2022,55(12):1626-1635.
[8]施昕昕,顧宇揚.基于MQTT協議的工業物聯網數據采集和控制系統[J].南京工程學院學報(自然科學版),2022,20(2):31-37.
[9]齊兵,秦宇,李敏虹,等.基于MQTT協議擴展的IoT設備完整性監控[J].計算機系統應用,2022,31(11):68-78.
[10] ARUNIMA V, SRIJA U. Effect of payload security in MQTT protocol over transport and application layer [J]. IOP conference series: materials science and engineering, 2021, 1166(1).
[11]晁喜斌,郭鋒,武傳坤. MQTT-SE數據加密傳輸算法[J]. 計算機系統應用,2022,31(12):169-177.
[12]卡潤. 橢圓曲線密碼與機器學習在基于MQTT協議的物聯網安全通信中的應用方法[D]. 北京:北京交通大學,2021.
[13]楊倩倩,范自強. 基于增強的RSA和Elgamal加密算法的新簽名方案[J]. 應用數學進展,2022,11(10):6984-6989.
[14]黎琳,張芳,張聞宇. 一種實現數據庫同態計算的Elgamal重加密算法[J]. 北京交通大學學報,2021,45(2):127-134.
[15]程碧倩,劉光柱,肖昊.改進的蒙哥馬利模乘算法及FPGA實現[J].電子科技,2022,35(7):58-63.
[16]程雨芊,李智超.基于余數系統蒙哥馬利模乘器的RSA密碼算法[J].計算機仿真,2021,38(1):221-225.
[17] BHARANY S . Secure sensitive data sharing using RSA and Elgamal cryptographic algorithms with Hash functions [J]. Information, 2022, 13(10).
[18] AGUNG S P, SYAHRIL E, SUHERMAN S. Improving one-time pad algorithm on shamir’s three-pass protocol scheme by using RSA and Elgamal algorithms [J]. Journal of physics: conference series, 2019, 1235.