APP下载

一种基于NTRU的轻量级截断式HMAC数字签名机制

2019-07-09吴文江尹震宇

小型微型计算机系统 2019年7期
关键词:数字签名非对称消息

蒋 宁,林 浒,吴文江,尹震宇

1( 中国科学院大学,北京100049 ) 2( 中国科学院 沈阳计算技术研究所,沈阳110168 ) 3( 沈阳高精数控智能技术股份有限公司,沈阳 110168) 4( 沈阳师范大学 教育技术学院,沈阳 110034)

1 引 言

工业控制网络系统由原来的封闭系统逐步开放使得工业控制网络存在脆弱性[1].工业控制网络的信息安全是一个重要的研究方向.工业控制网络中通信数据完整性是信息安全的一个方面.数据完整性的目标需要确保防止对通信数据的篡改或者破坏,包括确保信息的不可否认性和真实性.

通信数据完整性需求的因素包括:

1)通信数据的正确性.通信的收方确保收到的数据确实和发送时的一样,没有修改、插入、删除或重放.

2)通信数据的真实性.通信的收方确保发方声称的身份是真实有效的.

3)通信密钥的安全性.通信的双方传递密钥不被非授权的第三方获知.

其中1)是消息认证的内容,2)是通信实体认证的内容,3)是密钥管理的内容.

由于在工业控制网络中,设备的计算能力有限,网络传输能力有限,同时对处理数据的时限有要求.因此数据完整性有独特的需求:要求时间成本和资源成本都相对较低.因此采用的密码系统应具有以下特征:采用的密码系统应速度较快,耗时较少;采用的密码系统应消耗更少的资源;采用的密码系统可以用于数字签名.

针对资源受限场景的数字签名,近年来学者们提出了一些解决方案.国际上,Kanika等人提出了用于自主网络的基于椭圆曲线的数字签名方法(ECDSA)[2],Chaudhry等人提出了用于电子支付的基于椭圆曲线的数字签名方法(ECDSA)[3],Yavuz等人使用硬件加速的数据压缩方法来实现基于NTRU的数字签名[4],Mughal等人研究了物联网中设备之间的简化数字签名算法[5].国内学者近年来也有所研究,王浩等人提出了一种用于传感器网络的轻量级的无证书签名机制[6],刘亚丽等人实现了RFID系统的轻量级数字签名机制[7],卢昕等人提出了面向配电网分布式控制的单向HASH轻量级签名[8].

从近年来国内外的研究来看,针对资源受限场景的数字签名技术研究有一定的基础.但现有的针对资源受限场景的数字签名研究,大多集中在传感器网络、物联网等领域,同时硬件实现的机制较多,而软件实现的数字签名技术实现主要是基于椭圆曲线的数字签名方法(ECDSA).在工业互联网领域,特别是面向数字化车间工业控制网络领域,基于软件实现的且兼顾安全和效率的数字签名技术较少.

为了满足工业控制网络中通信数据完整性需求,本文对软件实现的数字签名技术进行深入研究,提出了一种基于NTRU的轻量级截断式HMAC数字签名机制,NTRU-SHA-T机制,该机制既实现实体认证又实现消息认证,兼顾工业控制网络安全和效率的实际需求.NTRU-SHA-T机制的实验测试表明,采用轻量级的非对称密码系统NTRU有利于保证工业控制网络通信数据的完整性安全,提升数字签名效率,采用截断式HMAC进一步提升数字签名效率.

2 工业控制网络中通信数据完整性采用的技术

从技术的角度来说,工业控制网络中通信数据完整性采用消息认证技术和实体认证技术.

2.1 消息认证技术

在网络通信环境中,可能有下面的攻击:消息伪装、消息内容修改、消息顺序修改、消息延时或重放.应对攻击的方法是消息认证技术.消息认证是验证所受到的消息确实来自真正的发送方,且是未被修改的消息,也可以验证消息的顺序和及时性.

消息认证技术采用消息认证码(Message Authentication Codes,MAC).消息在MAC函数的作用下生成的一个固定长度的短数据块,即MAC.发方将该数据块附加在消息之后.发方的消息和MAC一起被发送给收方.收方对收到的消息后进行相同的计算,得出新的MAC,并将接受到的MAC与计算出的MAC进行比较.如果收方接收到的MAC与计算得出的MAC相等,则收方可以相信消息未被修改;收方可以相信消息来自于真正的发方;消息顺序是正确的.

MAC函数常使用Hash函数,基于的Hash函数的MAC称为HMAC.Hash函数可将变长度的数据块作为输入,产生固定长度的Hash值.

生成HMAC的过程:

HMAC=H(M)

其中,HMAC表示消息认证码,H表示Hash函数,M表示消息明文.

HMAC技术有多种,其中安全Hash算法(Secure Hash Algorithm,SHA)是既安全又实用的技术.安全Hash算法采用迭代Hash函数.SHA版本有多个,从工业控制网络中通信数据的特点和安全需求出发,为了更好地节约网络带宽,消息认证码的长度可以选择相对较短的SHA-1版本,消息认证码的长度为160位.

2.2 实体认证技术

在数据通信的过程中,可能发生一类问题,如通信一方伪造消息或者否认曾发送消息.在通信双方不能完全信任的情况下,需要进行实体认证,实体认证方法是采用数字签名(Digital Signature).

数字签名具有以下特征:数字签名能验证签名者、签名日期和签名时间;数字签名能认证被签名的消息内容;数字签名能由第三方仲裁.对称密码系统在发方和收方使用相同的密钥.而非对称密码系统分别使用公钥和私钥,由于私钥带有独有的信息,同时可以由可信第三方仲裁,因此非对称密码系统适合数字签名.

根据数字签名的基本特征,工业控制网络中采用非对称密码系统作为数字签名的技术.

2.3 基于非对称密码系统的数字签名机制

结合消息认证技术和数字签名技术,基于非对称密码系统的数字签名机制包括发方生成数字签名和收方验证数字签名.

发方(a)生成数字签名的过程:

HMAC=H(M)

S=D[PRa,HMAC]

其中,HMAC表示消息认证码,H表示Hash函数,M表示消息明文;S表示数字签名,D表示非对称密码系统中的D运算(与E运算相对),PRa表示发方的私钥.

收方验证数字签名的过程:

HMAC1=H(M)

HMAC2=E[PUa,S]

比较HMAC1和HMAC2

其中,HMAC1和HMAC2表示消息认证码,H表示Hash函数,M表示消息明文;S表示数字签名,E表示非对称密码系统中的E运算(与D运算相对),PUa表示发方的公钥.

3 基于NTRU的数字签名机制

NTRU(Number Theory Research Unit)算法是标准IEEE1363中推荐的公钥密码技术[9].NTRU是非对称密码系统,由J.Hoffstein、J.Pipher等提出的一种密码体制,它是一种基于多项式环的加密系统,其加解密过程是基于环上多项式代数运算[10].NTRU算法既可以用于加密也可以用于数字签名.

3.1 NTRU算法

NTRU使用含有整数系数的、次数为N-1(N为素数)的一元多项式,形式如下:

a=a0+a1X+a2X2+…+aN-2XN-2+aN-1XN-1

其中,X为未定元,系数a0,…,aN-1是整数,一些系数允许是0.所有的多项式的集合定义为R.

在R上定义加法(+)和乘法(*)如下:

若:

a=a0+a1X+a2X2+…+aN-2XN-2+aN-1XN-1

b=b0+b1X+b2X2+…+bN-2XN-2+bN-1XN-1

则:

a+b=(a0+b0)+(a1+b1)X+(a2+b2)X2
+…+(aN-2+bN-2)XN-2+(aN-1+bN-1)XN-1
a*b=c0+c1X+c2X2+…+cN-2XN-2+cN-1XN-1

R在加法(+)和乘法(*)下构成一个截断多项式环,这个环同构于商环Z[X]/(XN-1)(Z为整数环).

NTRU算法包括密钥产生算法、加密算法(E运算)、解密算法(D运算)[11].

密钥产生算法过程(通信的双方均可产生私钥和公钥,下面是收方产生密钥的过程):

1)收方在截断多项式环上随机选择两个多项式f和g,f和g的系数远小于q.f有df个系数为+1,(df-1)个系数为-1,其他系数为0.g有dg个系数为+1,dg个系数为-1,其他系数为0.

2)收方计算f在环内的逆fq,在环内的逆fp.收方的私钥为多项式f和fp.

f*fq=1(mod q)
f*fp=1(mod p)

3)收方通计算多项式h,收方的公钥为多项式h.

h=pfq* g(mod q)

加密算法(E运算)过程:

1)发方将明文数据写成多项式m,其系数模q后,系数远小于q,是区间[-p/2,p/2]中的整数.

2)发方随机选择一个多项式r,系数远小于q.

3)发方使用收方的公钥h计算密文数据.

e=r*h+m(mod q)

解密算法(D运算)过程:

1)收方使用私钥计算多项式a,使得系数是区间[-q/2,q/2]中的整数.

a=f*e(mod q)

2)收方计算多项式b.

b=a(mod p)

3)收方使用私钥fq计算多项式c,多项式c即是解密后明文.

c=fq*b(mod p)

3.2 NTRU性能

NTRU是轻量级的非对称密码系统,其优越的特性,具体表现在以下两个方面:速度方面和安全方面.

在速度方面,NTRU密码体制采用简单的模乘法与模求逆运算,因此NTRU加解密速度快,密钥生成速度也快.从算法时间复杂度的角度分析,NTRU的性能和参数之间的关系密切[12],NTRU加密算法和解密算法的时间复杂度均为O(N2)[13],而其他的非对称密码系统的时间复杂度与NTRU相比较高,如RSA(Rivest-Shamir-Adleman),其时间复杂度为O(N3).

在安全性方面,NTRU密码体制是基于寻求一个最短矢量的困难问题(Shortest Vector Problem,SVP),SVP问题是个NP-难问题[14],它比RSA等其他非对称密码系统基于数学问题相比较复杂性更高.为了阻止最短向量攻击,低汉明重量的多项式非0系数个数的要求能够保证NTRU在计算上安全[15].基于NTRU算法的数字签名在安全性和效率方面都优越于其他签名算法[16].

3.3 NTRU参数集

NTRU提供不同安全级别,其相应的安全级别可以对照对称密码系统.NTRU根据不同的安全级别可以进行不同的参数集选择[17].

NTRU参数集如表1所示[18].

表1 NTRU参数集
Table 1 NTRU parameter sets

安全级别参数集Npq112-bit对称密码系统(“商业强度”)NTRU_EES401EP240132048128-bit对称密码系统(“工业强度”)NTRU_EES439EP143932048192-bit对称密码系统NTRU_EES593EP159332048256-bit对称密码系统(“军事强度”)NTRU_EES743EP174332048

4 NTRU-SHA-T机制

为了能够满足工业控制网络通信数据完整性需求,并且达到时间限制和资源限制的要求,节省网络带宽,本文在基于非对称密码系统的数字签名机制的基础上,对消息认证和数字签名方面做了三方面的改进.

第一方面的改进是在传输层进行消息认证和数字签名,提高安全性.传输层具有更加安全的特性,如果基于HMAC的在线攻击发生,那么传输层会话立刻停止[19].

第二方面的改进是消息认证时将原有的消息认证码进行截断,消息认证码长度截断至80bits,提高效率.消息认证码截断后为截断式HMAC(Truncated HMAC)[20],是原有消息认证码的一个子集,适用于工业控制网络这样通信中资源受限的场景.

第三方面的改进是对安全性和效率进行综合考虑,数字签名技术采用基于NTRU的工业强度参数集,即采用NTRU_EES439EP1参数集.

基于以上三个方面的改进,本文提出基于NTRU的轻量级截断式HMAC签名机制,本文将之称为NTRU-SHA-T机制.

NTRU-SHA-T机制的处理过程如图1所示.

图1 NTRU-SHA-T机制Fig.1 NTRU-SHA mechanism

本文提出的NTRU-SHA-T机制发方流程如图2所示.其中的截断操作具体实现为:SHA-1算法中Hash函数输出160个比特,输出最左边的80个比特被保留,作为截断式HMAC的结果,输出其余80个比特被丢弃.

图2 NTRU-SHA-T机制发方流程Fig.2 Sender flowchart of NTRU-SHA-T mechanism

本文提出的NTRU-SHA-T机制收方流程如图3所示.

5 实验测试

基于NTRU的轻量级截断式HMAC数字签名机制的实验测试使用中科院沈阳计算技术研究所的GJ301系列数控系统.在实验中,GJ301系列数控系统和工作站笔记本通过工业交换机进行通信.蓝天开放式数控系统GJ301的CPU型号为Intel® AtomTMN450 @1.66GHz.运行的操作系统为Linux,内核版本为2.4.29.工作站笔记本的CPU型号为Intel® CoreTM2 Duo P8400 @2.26GHz.运行的操作系统为Windows 7.

实验原型系统中,测试程序包括客户端程序和服务器端程序.客户端程序和服务器端程序均在传输层进行通信.数控系统运行客户端程序,工作站笔记本运行服务器端程序.客户端程序在发送数据之前对数据采用NTRU-SHA-T机制生成客户端数字签名,服务器端程序接收数据后验证数字签名,验证完毕之后再把数据采用NTRU-SHA-T机制生成服务器端数字签名,发送回客户端,客户端程序验证数字签名.对于客户端程序来说,既生成了客户端数字签名,又验证了服务器端数字签名,实验中的时间数据均在客户端程序上测试获得.实验原型系统如图4所示.

图3 NTRU-SHA-T机制收方流程Fig.3 Receiver flowchart of NTRU-SHA-T mechanism

图4 实验原型系统Fig.4 Experimental prototype system

实验中采用长度为80bits的截断式HMAC进行NTRU数字签名.实验采用NTRU的参数集为NTRU_EES401EP2和NTRU_EES439EP1,前者作为基准强度,后者作为对照强度.NTRU-SHA-T机制的数字签名时间、数字签名验证时间和签名长度测试结果如表2所示.

分析NTRU参数集数据.无论是NTRU_EES401EP2参数集还是NTRU_EES439EP1参数集,签名生成时间和签名验证时间均为毫秒级,能够满足工业控制网络中通信数据的时间需求.NTRU_EES439EP1参数集比NTRU_EES401EP2参数集安全性高,密钥强度相当于128-bit对称密码系统,更适合工业控制网络.

分析NTRU-SHA-T机制的签名生成和签名验证平均时间数据.与NTRU_EES401EP2参数集相比,NTRU_EES439EP1参数集的签名生成平均时间的增量为5.26%,增量较小;NTRU_EES439EP1参数集签名验证平均时间的增量为12.78%,有一定增量,但是1.50ms的时间总体较小.因此,使用NTRU_EES439EP1参数集能够保证数字签名生成和签名验证的效率.

表2 NTRU-SHA-T 机制的签名平均时间和签名长度
Table 2 Average time of digital signature and length of digital signature with NTRU-SHA-T

NTRU参数集签名生成平均时间(ms)签名验证平均时间(ms)签名长度(bytes)NTRU_EES401EP25.701.33853NTRU_EES439EP16.001.50988

分析NTRU-SHA-T机制的签名长度的数据,对于不同的NTRU参数集,其签名长度均小于1024字节.

为了测试截断式HMAC的效率,将NTRU-SHA-T机制与未截断HMAC(160bits)的数字签名机制(本实验中称为NTRU-SHA机制)进行比较.测试结果如表3所示.

表3 NTRU-SHA机制的签名平均时间和签名长度
Table 3 Average time of digital signature and length of digital signature with NTRU-SHA

NTRU参数集签名生成平均时间(ms)签名验证平均时间(ms)签名长度(bytes)NTRU_EES401EP26.101.60853NTRU_EES439EP16.201.80988

将上述测试结果分别使用图示进行对比描述,如图5和图6所示.

图5 基于NTRU的轻量级数字签名生成平均时间比较Fig.5 Compare of average time of generating lightweight digital signature based on NTRU

从HMAC长度的维度分析,使用截断式HMAC能够提升数字签名生成的效率.对于NTRU_EES401EP2参数集提升了6.56%,对于NTRU_EES439EP1参数集提升了3.23%.使用截断式HMAC提升数字签名验证效率较多.对于NTRU_EES401EP2参数集效率提升了16.88%,对于NTRU_EES439EP1参数集效率提升了16.67%.

从数字签名的长度分析,虽然消息认证码的长度由160bits被截断至80bits,但数字签名的长度不变.

综上,基于NTRU的轻量级截断式HMAC数字签名机制能够有效实现工业控制网络中通信数据的完整性.消息认证采用截断式HMAC、实体认证采用NTRU_EES439EP1参数集的基于NTRU的数字签名机制可以满足工业控制网络中通信数据的完整性需求.本文提出的NTRU-SHA-T机制既实现了实体认证,又实现了消息认证,同时具有较少的时间消耗.

图6 基于NTRU的轻量级数字签名验证平均时间比较Fig.6 Compare of average time of verifying lightweight digital signature based on NTRU

6 结束语

针对工业控制网络中通信数据完整性问题,提出了基于NTRU的轻量级数字签名机制,NTRU-SHA-T机制.在NTRU-SHA-T机制中,SHA对通信数据计算消息认证码,为了节约网络带宽资源,消息认证码采用截断式HMAC,轻量级的非对称密码系统NTRU对消息认证码进行数字签名,这种数字签名机制适合工业控制网络的计算资源受限、时限要求的情况,既实现了实体认证,又实现了消息认证,同时具有较少的时间消耗.对NTRU-SHA-T机制进行实验验证,实验数据表明NTRU-SHA-T机制有效且高效.从整体上来看,消息认证码采用截断式HMAC、NTRU采用安全性能较高的NTRU_EES439EP1参数集可以满足工业控制网络中通信数据的完整性需求.

猜你喜欢

数字签名非对称消息
浅析计算机安全防护中数字签名技术的应用
一张图看5G消息
非对称Orlicz差体
基于数字签名的QR码水印认证系统
点数不超过20的旗传递非对称2-设计
非对称负载下矩阵变换器改进型PI重复控制
消息
消息
消息
基于数字签名和HSM的数据库篡改检测机制