郭军
【摘 要】
针对物联网系统的数据传输开放性、加密及认证开销成本高的问题,提出一种基于椭圆曲线加密算法与SHA-3算法结合的认证方案,并运用BAN逻辑的形式化分析方法,对该方案的安全性进行分析验证。结果显示,该方案能够实现服务器与设备之间,以及各设备之间的双向身份认证,能够提供通信双方的会话密钥协商,并能保持会话密钥的新鲜性。
【关键词】椭圆曲线加密算法;SHA-3算法;密钥协商;BAN逻辑
[Abstract]
Aiming at the problems of openness of data transmission, high cost of encryption and authentication in the Internet of things system, this paper proposes an authentication scheme based on elliptic curve cryptography and SHA-3 algorithm, and uses the formal analysis method of BAN logic to analyze and verify the security of the scheme. The results show that the scheme can achieve two-way identity authentication between servers and devices, and between devices. It can provide session key agreement between the two communication entities, and can maintain the freshness of the session key.
[Key words]elliptic curve cryptography; SHA-3 algorithm; key agreement; BAN logic
0 引言
信息化技术的快速发展,带动了物联网技术的智能化飞跃,物联网信息安全的重要性越来越得到重视[1]。目前物联网产业仍处在发展阶段,物联网信息安全防护还存在许多问题,物联网内部通信的身份认证鉴别及通信信道加密技术仍不完善。因此,基于当前的物联网环境,提出了一种基于椭圆曲线加密算法与SHA-3算法结合的新型认证方案,该方案能够实现通信双方身份认证、共享会话密钥协商及通信数据来源不可否认,并能保证通信会话密钥的新鲜性。
1 椭圆曲线加密算法
椭圆曲线加密算法(Elliptic Curve Cryptography, ECC)[2]是一种公钥加密算法,最初是由Miller和Koblitz两位学者提出的,椭圆曲线密码体制的安全性建立在椭圆曲线离散对数问题(ECDLP)求解难度上,在素数域F(p)中或者二进制域中对数据进行加密运算[3]。
椭圆加密算法的最主要优势在于比其他RSA加密算法、DSA加密算法计算速度更快,对资源要求更少,椭圆加密算法能够用更小的密钥长度提供同等或更高的安全性能,在减少运算复杂度的情况下能够提供更高级别的安全等级。
椭圆加密算法是公认的在指定密钥长度条件下,最强大的非对称加密算法[4],更适合在带宽资源紧张的应用场景中使用。目前,椭圆加密算法在比特币、区块链及身份证等领域有着广泛的应用。
2 SHA-3加密算法
SHA-3(Keccak)是美国标准技术研究院确认的第三代哈希函数标准[5],是将来若干年内最重要的哈希函数,是SHA-0及SHA-1密码散列函数的替代品,具有更高的安全性,执行速度更高。
SHA-3是密码散列函数的一种,其本质是一种数据压缩映射。对于相同的函数输入值,通过散列函数计算后得到的输出结果,即消息摘要值是完全相同的,对于不同的函数输入值,通过散列函数计算后得到的消息摘要是完全不同的,即便不同输入值只有微小差异,例如只是改变了输入值其中的一位,那么散列运算后的输出消息摘要也会发生雪崩效应,产生极大差别。密码散列函数在数字签名、文件完整性校验以及口令加密等信息安全领域发挥着极其重要的作用。
3 新型认证方案设计
3.1 符号及含义
S:服务器;DN:N号设备;SN:设备编号;PW:设备认证密码;KSD:服务器与受控设备之间的共享会话密钥;KS:椭圆加密算法生成的服务器公钥;KS-1:椭圆加密算法生成的服务器私钥;KD:椭圆加密算法生成的设备公钥;KD-1:椭圆加密算法生成的设备私钥;KDD:设备之间的共享会话密钥;H(x):SHA-3加密運算;Hi(x):进行i次SHA-3加密运算;i:小于50的随机整数。
3.2 认证流程
(1)注册过程
注册过程由服务器S与设备DN共同参与完成,协商并保存在通信过程中使用到的认证数据,注册工作必须在安全可靠的环境下进行,步骤如下:
◆DN提交设备编号SN、IP地址、认证密码PW;
◆S为DN分配指定的共享密钥KSD:
KSD=H(SN⊕PW)
共享密钥KSD是由编号和认证密码经过异或运算后,再通过SHA-3算法加密后计算生成;
◆S将会话密钥KSD下发给DN;
◆DN通过椭圆加密算法计算自己的公钥KD、私钥KD-1;
◆DN将自己的私钥KD-1提交给S;
◆S建立记录,存储DN的私钥KD-1以及S与DN的会话密钥KSD;
◆S将自己的公钥KS下发给DN;
◆DN保存与S的会话密钥KSD以及S的公钥KS。
注册过程如图1所示:
(2)服务器对设备的认证过程
第i轮通信认证过程如下:
◆设备DN请求与服务器S通信,发送数据i,i是一个小于50的随机整数,与设备编号SN、设备密码PW级联,通过DN的公钥KD加密后,得到KD(SN,PW,i),并将加密后数据发送至S。
◆DN通过设备编号SN、设备认证密码PW及随机数i生成本轮通信的会话密钥KiSD= Hi(SN⊕PW);
◆S收到DN通信请求后,通过IP地址比对获取设备编号SN、IP地址、认证密码PW及设备私钥KD-1,并通过设备私钥KD-1解密KD(SN,PW,i),获取SN、PW和随机数i,核对SN、PW完成对DN身份认证。
◆S计算生成本轮与DN通信的会话密钥KiSD= Hi (SN⊕PW)。
对设备之间认证过程如图2所示:
(3)设备对服务器的认证过程
◆S通过私钥KS-1加密KiSD并下发至DN,即下发给DN信息为KS-1(KiSD);
◆DN收到KS-1(KiSD)后,通过保存的S公钥KS解密KS(KS-1(KiSD))=KiSD,获取到KiSD;
◆DN计算Hi(SN⊕PW),判断结果是否与KiSD相对,若相等,则完成对S身份认证,不相等则中断通信;
◆S与DN通过新协商的会话密钥KiSD进行通信信道加密。
设备对服务器的认证过如图3所示:
(4)设备之间的会话密钥协商过程(如图4)
◆D1完成与S的双向认证;
◆D2完成与S的双向认证;
◆D1通过S请求与D2通信;
◆S使用D1的设备编号SN1、设备认证密码PW1,D2的设备编号SN2、设备认证密码PW2以及随机数i,计算D1与D2的共享会话密钥: KDD=Hi(SN1⊕PW1⊕SN2⊕PW2);
◆通过与D1、D2各自协商的会话密钥加密KDD,并分发给D1、D2;
◆D1、D2分别通过各自会话密钥解密获取KDD。
◆D1、D2通过会话密钥KDD进行通信信道加密。
4 安全性验证
本文使用BAN逻辑[6]对所提方案进行形式化分析验证,BAN逻辑是最为广泛使用的安全协议形式化分析验证方法。这种分析方法在对安全协议,尤其是认证方案的分析中起着重要的作用[7]。
4.1 BAN逻辑语法
P,Q:通信主体;X:通信数据;K:密钥;P|≡X:P相信X的内容是真实有效的;P 4.2 BAN逻辑验证 方案初始化假设: ◆,即S相信KSD是S与D之间的共享密钥; ◆,即D相信KSD是S与D之间的共享密钥; ◆,即KD是D的公钥; ◆,即KS是S的公钥; ◆,即S相信KD是D的真实有效公钥; ◆,即D相信KS是S的真实有效公钥; ◆,即D相信i是新鲜的; ◆,即D对i的新鲜性有控制权; ◆,即S对S与D之间的第i轮通信共享密钥KiSD有控制权。 (1)对客户端的认证 根据BAN逻辑的消息含义规则中关于公开密钥的推断,即: S相信KD是D的公钥,KD-1是D的私钥,那么当S收到D公钥加密的消息,则能够判定消息是D发送的,实现S对D的身份认证。 (2)对服务器的认证 根据BAN逻辑的消息含义规则中关于公开密钥的推断,即: D相信KS是S的公钥,那么当D收到S公钥加密的消息,则能够判定消息是S发送的,实现D对S的身份认证。 (3)服务器与设备会话密钥新鲜性 根据BAN逻辑的管辖权规则,即: S相信D对i的新鲜性有控制权,且S相信D也相信i是新的,则S相信i是新的。 根据BAN逻辑的新鲜性规则,即: 由于KiSD=Hi(SN⊕PW),所以: S相信i是新的,则S相信和i级联的整体信息也是新的,即S相信KiSD的新鲜性。同理,D相信KiSD的新鲜性。 (4)服务器与设备会话密钥协商 根据BAN逻辑的管辖权规则的推断,即: D相信S对S与D之间的共享密钥KiSD有控制权,且D相信S相信KiSD是S与D之间的共享密钥,那么当D相信KiSD是S与D之间的共享密钥。此过程完成服务器与设备的共享会话密钥协商。 (5)设备之间会话密钥協商 根据BAN逻辑的管辖权规则的推断,即: D1相信S对D1与D2的共享密钥KDD有控制权,且D1相信S也相信KDD是D1与D2的共享密钥,则D1相信KDD是D1与D2的共享密钥。同理,则D2相信KDD是D1与D2的共享密钥。 (6)设备之间会话密钥新鲜性 根据BAN逻辑的管辖权规则的推断,即: D1相信S对D1与D2的会话密钥KDD的新鲜性有控制权,且D1相信S也相信D1与D2的会话密钥KDD是新的,则D1相信KDD是新的。同理,D2相信KDD是新的。 通过BAN逻辑形式化分析,结果显示,新方案可实现到以下目标: ◆实现服务器与设备之间的双向认证; ◆实现设备与设备之间的双向认证; ◆实现服务器与设备之间的会话密钥协商; ◆实现服务器与设备之间的会话密钥可变性及新鲜性; ◆实现设备之间会话密钥可变性及新鲜性;