摘 要: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.