摘 要:MQTT協(xié)議作為一種低開銷、低帶寬占用的即時通信協(xié)議,在物聯(lián)網(wǎng)、小型設備和移動應用等領域得到廣泛應用。基于此,提出了一種基于蒙哥馬利冪模運算的高效輕量級Elgamal加密算法,并與MQTT協(xié)議相融合以補充MQTT協(xié)議的通信安全性。新的Elgamal算法能在輕量級嵌入式設備上部署,且硬件開銷非常低。文中在ES8H0183FLLT和ESP8266模塊上實施了軟硬件系統(tǒng)搭建,驗證了新協(xié)議的性能表現(xiàn)。實驗結(jié)果證明,新的MQTT協(xié)議能夠大幅降低硬件資源消耗,有效保障數(shù)據(jù)傳輸?shù)陌踩?,為?gòu)建安全可靠的物聯(lián)網(wǎng)通信系統(tǒng)提供了有力支持。
關鍵詞:Elgamal算法;MQTT協(xié)議;物聯(lián)網(wǎng);加密解密;輕量化;安全通信
中圖分類號:TP39;TN918.91 文獻標識碼:A 文章編號:2095-1302(2025)01-00-05
0 引 言
物聯(lián)網(wǎng)的快速發(fā)展使得設備間的通信和數(shù)據(jù)交換變得日益普遍和至關重要。MQTT(Message Queuing Telemetry Transport)協(xié)議作為一種輕量、靈活且可靠的通信方式,是物聯(lián)網(wǎng)設備之間的成熟通信方案[1]。然而,MQTT協(xié)議的信息收發(fā)不具有加解密的功能。針對低成本物聯(lián)網(wǎng)系統(tǒng),本文提出基于輕量化Elgamal(Enhanced Lightweight Group Mutual Authentication)加密算法的加密MQTT協(xié)議,以提高數(shù)據(jù)傳輸?shù)陌踩浴?/p>
為滿足通信安全的需求,本文將Elgamal算法[2]與MQTT通信協(xié)議結(jié)合,并優(yōu)化Elgamal算法的模運算,減小硬件開銷,使其能部署在輕量級物聯(lián)網(wǎng)嵌入式設備上。通過結(jié)合Elgamal算法保障MQTT的安全通信[3],旨在增強物聯(lián)網(wǎng)通信的安全性,以有效應對不斷演化的網(wǎng)絡威脅和挑戰(zhàn),為構(gòu)建更安全、可靠的物聯(lián)網(wǎng)通信系統(tǒng)奠定基礎。
1 MQTT協(xié)議安全性分析
1.1 MQTT協(xié)議介紹
隨著物聯(lián)網(wǎng)的迅猛發(fā)展,MQTT協(xié)議作為其主流通信協(xié)議,在近年來逐漸成為業(yè)界的首選。其優(yōu)勢在于具有輕量級特性,出色地滿足了物聯(lián)網(wǎng)環(huán)境對于通信協(xié)議的特殊需求[4]。這種協(xié)議設計的突出特點在于協(xié)議本身的精巧和輕巧,能夠高效地利用有限的帶寬資源,使得其在資源有限的物聯(lián)網(wǎng)設備中得以廣泛應用。同時,MQTT協(xié)議的實現(xiàn)相對簡單,開發(fā)人員可以迅速地將其集成到各種設備中,進一步加速了物聯(lián)網(wǎng)技術的普及[5]。
MQTT協(xié)議的一個顯著特色在于其發(fā)布/訂閱消息模式的采用[6]。MQTT協(xié)議通信具有高度的靈活性和松耦合性,消息的發(fā)送者(發(fā)布者)和接收者(訂閱者)之間并不直接連接,而是通過MQTT服務器(或稱為MQTT代理)進行中介和分發(fā),如圖1所示。這種架構(gòu)有效地降低了系統(tǒng)中各個組件之間的耦合度,從而使得系統(tǒng)更具可擴展性和靈活性。這種消息分發(fā)機制不僅支持一對一的消息傳遞,還可以同時將消息廣播給多個訂閱者,滿足了物聯(lián)網(wǎng)中信息共享和傳播的多樣化需求[7]。
首先,發(fā)布方(Publisher)與MQTT代理(Broker)建立連接;接著,訂閱方(Subscriber)也連接到MQTT代理,并訂閱特定的主題(Topic);之后,發(fā)布方向MQTT代理發(fā)布一條攜帶Topic主題的消息;MQTT代理接收并辨識出消息的主題后將該消息轉(zhuǎn)發(fā)給已訂閱該Topic的訂閱方;訂閱方從MQTT代理接收到此消息,完成整個通信過程。
MQTT通過發(fā)布/訂閱模式,成功實現(xiàn)了發(fā)布方與訂閱方之間解耦[8]。在這個模式中,發(fā)布方不需要直接了解訂閱方的存在,也無需訂閱方同時在線。訂閱方只需要在之前連接過MQTT代理并訂閱了對應主題即可,即便其處于離線狀態(tài),只要再次連接到MQTT代理,就能收到發(fā)布方發(fā)布的離線消息。這種機制極大地提升了通信的實時性和靈活性,使得物聯(lián)網(wǎng)環(huán)境下設備間的信息交換變得高效而無縫。
MQTT協(xié)議的數(shù)據(jù)包結(jié)構(gòu)是實現(xiàn)其通信過程的基礎[9],它定義了消息在網(wǎng)絡中的傳輸格式。MQTT協(xié)議的數(shù)據(jù)包結(jié)構(gòu)主要包括固定頭部和可變頭部,不同類型的控制數(shù)據(jù)包還可能包含有效載荷(Payload)。表1是MQTT協(xié)議數(shù)據(jù)包的主要結(jié)構(gòu)。
1.2 MQTT協(xié)議的安全性
MQTT協(xié)議在設計時考慮了一定的安全性要求,但在默認情況下它的安全性是有限的[10]。一些文獻從不同層面提出了安全問題解決方案[11],并提出了加密改進的算法[12]。這些方案主要是優(yōu)化算力而不是系統(tǒng),如工業(yè)機器人等系統(tǒng),普遍采用高性能的工業(yè)級芯片,但對于大部分低成本物聯(lián)網(wǎng)系統(tǒng)[13],如家電控制物聯(lián)網(wǎng)系統(tǒng),運行這些算法時資源就會顯得不足。
2 輕量級Elgamal加密算法
2.1 傳統(tǒng)Elgamal加密算法
在公鑰密碼體制中,Elgamal加密算法被視為一種基于迪菲-赫爾曼密鑰交換原理的非對稱加密技術。該算法由塔希爾·蓋莫爾于1985年首次提出,利用數(shù)論中離散對數(shù)問題的困難性來實現(xiàn)數(shù)據(jù)的保密性。Elgamal加密算法以其堅實的數(shù)學基礎而聞名,因此在現(xiàn)代密碼學領域得到廣泛的應用[14]。Elgamal算法的獨特之處在于其采用了公鑰和私鑰的組合,使得加密和解密操作在不同的密鑰下進行。這種非對稱加密方式賦予了Elgamal算法良好的安全性和靈活性,能夠滿足對信息傳輸保密性和數(shù)據(jù)完整性的高要求[15]。該算法的安全性依賴于尋找離散對數(shù)的困難性,這在當前計算機環(huán)境下被認為是一項難以攻克的數(shù)學問題,為信息的安全傳輸提供了可靠的保障。在實際應用中,Elgamal算法在數(shù)字簽名、數(shù)據(jù)加密等領域發(fā)揮著重要作用。
Elgamal加密體制的公私密鑰生成過程如下:
(1)隨機選擇一個滿足安全要求的大素數(shù)p,并生成有限域Zp的一個生成元g∈Zp*;
(2)選一個隨機數(shù)x(1lt;rlt;p-1),進行如下計算:
y=gx(mod p) " " " " " " " " " " " "(1)
由此可知,公鑰為(y, g, p),私鑰為x。
2.1.1 加密過程
與RSA密碼體制相同,加密時首先將明文比特流分組,使得每組對應的十進制數(shù)小于P,即分組長度小于log2P,然后對每個明文分組分別進行加密。具體過程分為如下幾步:
(1)" 得到接收方的公鑰(y, g, p);
(2) 對消息m進行分組,分組長度為L(Llt;log2P),m= m1m2...mt;
(3)" 對應第i塊消息(1 ≤ i ≤ t)隨機選擇整數(shù)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' )發(fā)送給接收方。
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加密算法
在現(xiàn)今的物聯(lián)網(wǎng)系統(tǒng)中,特別是對于成本相對較低的設備,如家電、智能家居設備等,往往采用中低端的MCU,主頻一般在50 MHz以下,多為8 MHz或16 MHz。由于資源有限,這些MCU的乘除功能也受到一定限制,更不用說復雜的冪模運算等加密算法。因此,為了在中低端資源受限的物聯(lián)網(wǎng)設備的MCU中實現(xiàn)復雜算法,本文提出新的基于蒙哥馬利冪模運算的Elgamal算法,并與MQTT協(xié)議相結(jié)合。
Elgamal算法的核心運算是冪模運算[16],為了適應資源受限制的MCU,本文使用了蒙哥馬利冪模運算方法。蒙哥馬利冪模運算[17]是一種高效的算法,通過將冪模運算轉(zhuǎn)化為一系列位操作和模運算,從而降低了乘法和除法運算的復雜度[18],同時減少了所需的中間存儲空間。這種方法在中低端MCU上的實現(xiàn)效果顯著,使得Elgamal算法能夠在資源有限的設備上得到高效的執(zhí)行。
本文所提出的蒙哥馬利快速冪運算基于以下核心公式實現(xiàn):
(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)構(gòu)成快速冪模算法,結(jié)果設為ans, 將ans初始化為1,然后進行如下操作:
(1)遍歷b的每個二進制位,顯然為1的時候才對結(jié)果有貢獻。
(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
對算法時間復雜度進行分析時,假設遍歷的數(shù)是b,不做算法優(yōu)化的Elgamal加密算法時間復雜度為O(b)。當b的數(shù)值很大時,時間復雜度也非常大,且運算為冪運算,非常耗費單片機的時間資源和空間資源,甚至無法在輕量級MCU上實現(xiàn)。本文所提出的改進型Elgamal加密算法,由于僅需根據(jù)b的二進制位數(shù)進行遍歷,遍歷次數(shù)為log2b次,因此時間復雜度降低至O(log2b),這極大地減少了計算量,使其更適合部署在輕量化的物聯(lián)網(wǎng)設備上。
計算分數(shù)求模,假設:
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),可通過上文的蒙哥馬利冪模算法進行計算,把分數(shù)求模轉(zhuǎn)化成一般的冪模運算。
以上為本文用到的核心算法,通過公式的巧妙變形,把大計算量的冪模運算轉(zhuǎn)化成可以在輕量級MCU上運行的移位運算和簡單的乘除運算。
對于MQTT協(xié)議的數(shù)據(jù)包結(jié)構(gòu),本文選擇的加密部分為載荷部分,其他部分不作加密或者用其他已經(jīng)部屬在服務端/代理端的加密系統(tǒng)。新的算法設計對整個傳輸系統(tǒng)改動最小,硬件不需做任何修改,軟件只需要在設備端和客戶端加載加密算法即可,以減少資源消耗。
3 測試系統(tǒng)分析
3.1 硬件系統(tǒng)
本系統(tǒng)選取東軟(Eastsoft)出品的ES8H0183FLLT、ES8H018x/ES8H0163系列的基于ARM Cortex-M0 CPU內(nèi)核的高性能低功耗32位通用微控制器,如圖2所示。由于其具有出色的性價比,在家電等低成本系統(tǒng)中應用非常廣泛。本系統(tǒng)選取振蕩器頻率為16 MHz,與運行算法相關的資源特性如下:
(1)具有ARM Cortex-M0 32位嵌入式處理器內(nèi)核;
(2)支持SWD串行調(diào)試接口,支持2個監(jiān)視點(watchpoint)和4個斷點(breakpoint);
(3)支持單周期32位乘法器;
(4)擁有128 KB/72 KB FLASH 存儲器;
(5)擁有16 KB/8 KB SRAM 存儲器。
本系統(tǒng)選取的WiFi模塊為ESP8266,ESP8266是一款常用的高性價比WiFi模塊,被廣泛應用于中低端物聯(lián)網(wǎng)系統(tǒng)。網(wǎng)絡特性主要如下:
(1)支持802.11 b/g/n 協(xié)議棧;
(2)內(nèi)置TCP/IP協(xié)議棧;
(3)WiFi@2.4 GHz,支持WPA/WPA2安全模式;
(4)支持STA/AP/STA+AP工作模式;
(5)支持Smart Config功能。
3.2 軟件系統(tǒng)
軟件架構(gòu)由應用層、可信通信層、底層驅(qū)動和信號采集部分構(gòu)成,總體結(jié)構(gòu)如圖3所示。
4 試驗結(jié)果分析
4.1 試驗過程
假設發(fā)送方為甲,接收方為乙,甲要發(fā)送給乙的數(shù)據(jù)包記為M(用十六進制表示),M = m1 m2 m3 m4 m5 m6 m7 m8 m9 m10 = 01 02 03 04 05 06 07 08 09 0a。加密時,分別對每個字節(jié)進行加密,完整的傳輸流程如圖4所示。
4.1.1 選擇大素數(shù)和生成元
本文設置乙方選擇素數(shù)p=13 171,生成元g=2。
4.1.2 乙方計算公鑰和私鑰
私鑰x為隨機數(shù),且滿足1lt;xlt;p-1,發(fā)送一次更改一次私鑰。假設一次傳輸x=53,由式(1)的公鑰計算公式可得:p=13 171, g=2, y=7 311,如圖5所示。乙方通過WiFi串口將公鑰先行傳輸給甲方,如圖6所示。
4.1.3 甲方加密
一個數(shù)據(jù)選擇一個隨機數(shù)r,隨機數(shù)列為11, 78, 34, 81, 21, 13, 9, 51, 16, 70,根據(jù)式(14)計算密文對,結(jié)果如圖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)后,甲方將由密文對組成的密文數(shù)據(jù)包,通過WiFi串口發(fā)送給乙方,如圖8所示。
4.1.4 乙方解密
通過如下公式計算明文M(用十六進制表示),結(jié)果如圖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。
完整的數(shù)據(jù)傳輸過程如圖10所示。
4.2 消耗資源分析
本文的加解密實驗使用了ROM資源和RAM資源。如圖11所示,ROM資源的核心加密算法模塊小于1 KB,核心解密算法模塊也小于1 KB。RAM資源的核心加密算法模塊小于100 KB,核心解密算法模塊小于100 KB。對實驗過程的耗時分析結(jié)果顯示,加密過程耗時37.5 μs,解密過程耗時275 μs。
根據(jù)以上數(shù)據(jù)可知,除了RAM會消耗一定的資源,ROM消耗的資源基本可以忽略,CPU耗時基本不會影響正常通信和正常任務。
5 結(jié) 語
本文深入研究了MQTT協(xié)議的安全性問題,特別關注了在物聯(lián)網(wǎng)設備通信中存在的潛在風險。引入了Elgamal算法,旨在為MQTT協(xié)議的通信提供安全的傳輸機制。實驗結(jié)果表明,在融合蒙哥馬利冪模運算的Elgamal算法的基礎上,在使用新的MQTT協(xié)議保障通信安全的同時,還會極大程度地降低硬件開銷,適用于輕量級物聯(lián)網(wǎng)系統(tǒng)。在面對不斷演化的網(wǎng)絡威脅和挑戰(zhàn)時,本文提出的基于Elgamal算法的新MQTT傳輸協(xié)議為解決數(shù)據(jù)傳輸?shù)陌踩詥栴}提供了強有力的支持。這一研究為構(gòu)建更安全、可靠的物聯(lián)網(wǎng)通信系統(tǒng)提供了堅實的基礎,并有望在未來的物聯(lián)網(wǎng)應用中發(fā)揮關鍵作用。
注:本文通訊作者為周寅峰。
參考文獻
[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協(xié)議安全加固研究[J].通信技術,2022,55(12):1626-1635.
[8]施昕昕,顧宇揚.基于MQTT協(xié)議的工業(yè)物聯(lián)網(wǎng)數(shù)據(jù)采集和控制系統(tǒng)[J].南京工程學院學報(自然科學版),2022,20(2):31-37.
[9]齊兵,秦宇,李敏虹,等.基于MQTT協(xié)議擴展的IoT設備完整性監(jiān)控[J].計算機系統(tǒng)應用,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數(shù)據(jù)加密傳輸算法[J]. 計算機系統(tǒng)應用,2022,31(12):169-177.
[12]卡潤. 橢圓曲線密碼與機器學習在基于MQTT協(xié)議的物聯(lián)網(wǎng)安全通信中的應用方法[D]. 北京:北京交通大學,2021.
[13]楊倩倩,范自強. 基于增強的RSA和Elgamal加密算法的新簽名方案[J]. 應用數(shù)學進展,2022,11(10):6984-6989.
[14]黎琳,張芳,張聞宇. 一種實現(xiàn)數(shù)據(jù)庫同態(tài)計算的Elgamal重加密算法[J]. 北京交通大學學報,2021,45(2):127-134.
[15]程碧倩,劉光柱,肖昊.改進的蒙哥馬利模乘算法及FPGA實現(xiàn)[J].電子科技,2022,35(7):58-63.
[16]程雨芊,李智超.基于余數(shù)系統(tǒng)蒙哥馬利模乘器的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.