郑习武 赵雪锋
1(江苏财会职业学院 江苏 连云港 222061) 2(江苏海洋大学计算机工程学院 江苏 连云港 222061)
进入21世纪之后,科学技术有了飞跃的发展,许多传统的技术得到了广泛的发展;同时伴随不断有新技术的产生,传统的技术更进一步推广和运用,比如射频识别技术[1-2]。许多传统的系统因当时科学技术的限制等各种因素,使得很多好的技术并没有运用上。但现在科技发展飞快,更多的科学技术与传统的系统相结合,从而产生意想不到的效率和收益,比如将射频识别技术运用到传统的电子票据系统中[3-4]。
在传统的电子票据系统中,并没有与现在大规模运用的射频识别技术相结合,从而使得传统的电子票据系统没有那样令人满意的工作效率以及令人期待向往的收益[5-6]。在将射频识别技术运用到传统电子票据系统中后,人们发现,不仅可以提高工作效率的同时,人们的收益得到较大幅度的提高。但推广运用过程中,相关的一些问题也逐渐展现出来,其中最令人值得关注的问题当属安全问题,甚至安全问题已经成为制约电子票据系统更进一步发展的关键性因素[7-9]。为确保电子票据系统中读卡器与电子标签通信时发送消息的安全性,需要设计出安全的认证协议或安全的认证方案,以此抵抗可能存在的攻击。
文献[10]采用PUF方法设计出一个方案,但攻击者可通过监听等手段获取通信消息,从而进行重放消息,经过若干次消息重放,通信实体之间将失去一致性,攻击者异步攻击成功。文献[11]结合多种框架结构设计一个方案,但通信协议中部分信息未进行加密传送,将导致通信实体之间无法实现对彼此的认证,从而使得攻击者有假冒攻击的可行性。文献[12]提出一种超轻量级的方案,但方案没有考虑到攻击者可能发送物理攻击,从而破解出部分隐私信息,再根据破解出的隐私信息更进一步推导出更多的隐私信息,从而发起假冒攻击。文献[13]提出一种使用在电子票据系统中的方案,但对协议安全性分析,发现协议存在较多问题,其中一个重点问题是协议无法抵抗假冒攻击。鉴于篇幅有限,更多的方案或协议可以参见文献[14-18]。
本文在总结现有众多协议存在安全缺陷的基础之上,在针对文献[13]中方案具体分析之后,提出一种改进的适用于电子票据系统中的超轻量级安全认证协议。协议需满足用户对安全的基本要求,因此协议采用一种创新性的加密算法,即采用循环移动置换运算实现对信息的加密,该加密算法具备较高的安全性;同时为使协议能够在现有的低成本的系统中运用,需要加密算法的计算量满足低要求,通过位运算实现的循环移动置换运算算法则较好地满足这一要求。通过各种不同角度的分析,协议具备良好的安全需求,同时满足现有系统对计算量的要求。
王悦等[13]提出的安全协议具备一定的实用价值,但无法提供安全等级较高的需求。协议主要存在两个方面的安全不足,具体分析如下。
第一个方面的安全不足:当Reader给Tag发送一个单独的消息P时,使得协议出现第一个安全缺陷或安全不足。按照原协议的描述,Tag在收到消息P后,通过相对应的逆置换变换可以得到Reader产生的随机数R1;待Tag得到随机数R1后,进行其他信息的计算。该过程中,Tag在计算得到R1后,并没有对计算所得到的R1正确性进行校验。因此,Tag并没有完成Tag对Reader的认证,从而所产生的后果是,只有等待下一步骤中,即Reader收到Tag发送来的V和R′消息后,通过验证这两个消息的证伪,才可以决定协议是否继续。当Tag未通过Reader的验证,表明之前的步骤中,协议已经出现安全缺陷,但王悦设计的协议并没有在之前的步骤中结束协议。
第二个方面的不足:协议无法抵抗假冒攻击,具体的分析:在Reader与Tag之间最后的一次通信过程中,Tag只是将信息“OK”/“ON”发送给Reader,而Reader收到信息后,无须进行任何的计算,即无法实现Reader对Tag的认证。因此,攻击者可以在Reader发送消息R″之后,切断Reader与Tag之间的后续通信,攻击者此时假冒成标签,向Reader发送“OK”/“ON”消息,即可蒙混Reader的认证。基于上述阐述,故协议无法抵抗假冒攻击。
文中的安全认证协议涉及到多个不同的符号,下面给出一些符号的含义:
Reader表示读卡器;
Tag表示电子标签;
ID表示电子标签的标识符;
ID_L表示电子标签的标识符左半边;
K表示Reader与Tag之间的共享秘密值;
Kold表示Reader与Tag之间上次通话的共享秘密值;
Knew表示Reader与Tag之间当前通话的共享秘密值;
a表示读卡器产生的随机数;
b表示电子标签产生的随机数;
&表示与运算;
⊕表示异或运算;
Cmp(A,B)表示循环移动置换运算。
循环移动置换运算用Cmp(A,B)(Cyclic Moving Permutation,Cmp(A,B))表示,可以按照如下描述实现:
步骤一A、B、A1、B1都是长度为L位的二进制序列,为便于后续计算,要求L取值为偶数。
步骤二用H(A)、H(B)分别表示A、B二进制序列的汉明重量值。
步骤三循环移动操作,循环移动的规则是:当H(A)≥H(B)时,二进制序列B向左移动H(A)位,得到二进制序列B1;当H(A) 步骤四对第三步循环移动得到的结果进行置换操作,置换操作的规则是: 当H(A)≥H(B)时,对B1进行置换,即:从左向右遍历A,当A的第i位为0时,B1的第i位发生置换(即0变1,1变0);当A的第i位为1时,B1的第i位不变。 当H(A) 步骤五按照上述4个步骤操作即可得到循环移动置换运算的最终结果。 通过下面两个例子来展现H(A)≥H(B)和H(A) 取值L=12,A=100111001101,B=011010100001,可以得出:H(A)=7,H(B)=5,满足H(A)≥H(B)的条件。运用上面的定义,得到:B1=000010110101,Cmp(A,B)=011010000111,具体步骤可见图1。 取值L=12,A=010010100001,B=110010110110,可以得出:H(A)=4,H(B)=7,满足H(A) 本文设计的安全认证协议流程见图3。 本文安全认证协议的步骤描述如下: 步骤一Reader产生随机数a,并计算A和B,同时将A和B发送给Tag,从而开启认证协议。 其中A=ID⊕a,B=Cmp(ID_L,a)。 步骤二Tag收到A和B信息,由A和ID计算得到随机数a;同时结合ID_L,按照Reader端计算B相同的方法,计算得到一个B′,对比两者值是否相等。 若不等,协议停止。若相等,Tag产生随机数b,再计算E和F,同时将E和F发送给Reader。 其中a=A⊕ID,B′=Cmp(ID_L,A⊕ID),E=(ID&a)⊕b,F=Cmp(a,b⊕K)。 步骤三Reader收到E和F信息,由E、ID和a计算得到随机数b;结合K,按照相同的计算方法得到一个F′,再对比两者值是否相等。 若不等,用Kold代替Knew,再次按照相同的计算方法得到一个F″,在比对二者值是否相等。仍不等,协议停止;若相等,表明电子标签与读卡器之间先前存在暂时的信息不一致情况,经过本次通信会话认证之后,两者之间的消息恢复一致性,Reader计算G,同时更新信息:Kold=Knew、Knew=Cmp(K,b),最后将G发送给Tag。 若相等,Reader计算G,同时更新信息:Kold=Knew、Knew=Cmp(K,b),最后将G发送给Tag。 其中b=(ID&a)⊕E,F′=Cmp(a,((ID&a)⊕E)⊕k),F″=Cmp(a,((ID&a)⊕E)⊕Kold),Knew=Cmp(K,b),G=Cmp(a,b)。 步骤四Tag收到G信息后,按照相同的法则计算得到一个G′,比较两者值是否相等。若不等,协议停止;若相等,Tag开始更新信息:Knew=Cmp(K,b)。 其中G′=Cmp(A⊕ID,b)。 本文中设计协议与王悦等[13]中的协议进行比较,其优势在于:本文协议在传送的每个都可以完成相互之间的认证,即每步通信过程中信息接收者可以验证信息发送者的真伪;同时协议采用一种创新型的加密算法,循环移动置换运算的实现包含移动和置换两步操作,破解难度远大于原协议中加密的算法,从而攻击者破解难度更大,使得协议具备更高的安全性。 (1) 重放攻击。攻击者监听获取某轮通话信息,然后随之重放监听所获得信息,以企图通过某一通信实体的认证。文中设计协议为能够抵抗重放攻击,加密过程中信息均涉及到随机数,前后两轮通信用到的随机数具有随机性、不可预测性特征,使得当攻击者重放上轮监听获得信息时,本轮通话中用到的加密随机数已发生变更。故协议具备抗重放攻击的能力。 (2) 假冒攻击。通信系统中包含读卡器和电子标签,从理论出发分析,攻击者可能伪装成任一通信实体进而发起假冒攻击。攻击者伪装成读卡器时,因缺少通信共享的秘密值,无法正确计算A和B消息的数值,待电子标签进行简单计算验证,即可识别攻击者假冒读卡器发送消息。同理,当攻击者伪装成电子标签时,缺少电子标签的标识符,无法正确解析出读卡器产生的随机数,从而更进一步无法计算得到正确的E和F消息的数值。故协议具备抗假冒攻击的能力。 (3) 异步攻击。攻击者通过某些手段使得读卡器与电子标签之间通信用到的共享秘密值失去一致性,从而使得两者之间无法进行正常的通信。文中协议为能够抵抗攻击者发动的异步攻击,在读卡器一端存放前后两轮会话用到的共享秘密值,即读卡器先用当前共享秘密值验证电子标签,当且仅当当前共享秘密值无法验证出标签真伪时,立刻用上轮的共享秘密值代替当前的共享秘密值再次对电子标签进行验证,从而恢复两者之间的信息一致性。故协议具备抗异步攻击的能力。 (4) 追踪攻击。攻击者可以通过长时间的监听手段获取多轮的通信消息,当电子标签发送给读卡器的消息中存在某个消息的数值始终不变时,攻击者可通过该数值对电子标签发起位置攻击。本文协议在电子标签发送给读卡器的所有消息加密过程中全部混入随机数,从而可以确保前后多次通信信息数值不同,且无法提前预测,以此瓦解攻击者的位置攻击。故协议具备抗追踪攻击的能力。 (5) 穷举攻击。当攻击者无法通过其他手段获取隐私信息之时,更为直接的穷尽手段会被用上。此处选择消息A=ID⊕a、B=Cmp(ID_L,a)为例子进行说明,本文协议可抗穷尽攻击。在消息A中,攻击者不知道ID和a的值,无法穷尽。在消息B中,攻击者可以进行将A代入的方式得到B=Cmp(ID_L,A⊕ID),该公式中A可通过监听手段获取,而从看似在上述公式中只有ID的值不知道,攻击者以为可以穷尽,其实不然。根据本文前面对循环移动置换运算的描述可知:攻击者同时也不知道加密两个参数汉明重量的数值,这样计算,相当于攻击者有三个参数的数值不知道。因此无法穷尽B中包含的隐私信息,故协议具备抗穷尽攻击的能力。 (6) 后向安全。攻击者无法从监听等手段获取的通信消息中破解出之前会话用到的隐私信息,称之为后向安全。本文协议用更新共享秘密值的方法,同时结合更新共享秘密值混入随机数的思想,以此来抵抗后向安全。更新共享秘密值,可以使得每次会话用到的认证共享秘密值不同;更新秘密值过程中混入随机数,可使得前后共享秘密值既有关联,同时又是攻击者无法逆推,因随机数具备不可预测性及随机性。故协议具备抗后向安全的能力。 本文设计的安全认证协议与其他协议安全性比较结果如表1所示。 表1 协议之间的安全性比较 性能分析可以选择读卡器和电子标签两个通信实体进行分析,但相对于电子标签来说,读卡器具备较大的存储空间和强大的计算能力,因此一般仅仅只是选择电子标签作为对象进行性能分析。电子标签一端主要是计算量作为最为重要的因素进行分析,因存储量这个指标一般相差不大,本文协议与其他协议性能比较结果如表2所示。 表2 协议之间的性能比对结果 表2中:pa表示产生随机数的计算量;pb表示哈希函数的计算量;pc表示物理不可克隆PUF函数的计算量;pd表示伪随机函数的计算量;pe表示模运算的计算量;pf表示交叉运算的计算量;pg表示位运算的计算量(位运算包括常见的与运算、异或运算等);ph表示循环移动置换运算的计算量;pi表示循环移位运算的计算量;pj表示f加密函数运算的计算量;pk表示置换变换运算的计算量。 对本文协议标签一端的计算量进行详细分析:标签一端产生一个随机数b,用到一次pa计算量。标签一端在计算a′时,第一次用到位“异或”运算;在后面计算消息E的过程中,会第二次用到位“与”运算以及第三次用到位“异或”运算,因此总共用到3pg计算量。标签一端在计算B′时,会第一次用到ph计算量;再计算消息F时,会第二次用到ph计算量;在计算G′时,会第三次用到ph计算量;最后在更新共享密钥Knew时会第四次用到ph计算量,因此总共用到4ph计算量。基于上述描述,文中协议标签一端的总共的计算量为pa+3pg+4ph。 对文献[13]中协议标签一端的计算量进行详细分析:标签会产生一个随机数R2,用到一次pa计算量。标签在计算R1过程中,会第一次用到pk计算量;再计算消息V的过程中,会第二次用到pk计算量;最后再计算Tl过程中,会第三次用到pk计算量,因此总共用到3pk计算量。标签一端在计算SID′过程中,会第一次用到pi计算量;再更新信息Kt过程中,会第二次用到pi计算量,因此总共用到2pi计算量。标签一端在计算R′过程中,会第一次、第二次用到pj计算量;在计算R″过程中,会第三次用到pj计算量,因此总共用到3pj计算量。基于上述描述,文献[13]中协议标签一端总的计算量为pa+3pk+2pi+3pj。 其中文献[10-12]中协议标签一端的计算量在文献[13]中已经有提及过,加之文中篇幅有限,故此处不再详细阐述。 文中所提出的创新型的加密算法根据前文中的描述可得知,算法基于按位运算实现,算法实现过程中整体计算量属于超轻量级的,计算量少于其他常见的加密函数(比如:哈希函数);同时结合安全性分析,可得知本文加密算法具备较好的安全性,能够提供系统所需要的安全需求。基于上述从安全性角度、性能分析角度阐述,本文设计算法能够适用于当前电子票据系统中。 在上面的计算中,产生随机数的计算量、哈希函数的计算量、物理不可克隆函数的计算量、伪随机函数的计算量、模运算的计算量都属于轻量级或重量级的运算,属于计算量较大的,该类运算在协议中需尽量不用或尽量少用到。从表2的计算量角度对比可以得出,本文协议在计算量方面具备绝对的优势,仅仅只用到产生随机数一次轻量级的运算,其他计算都属于超轻量级的运算,能够使得通信实体中电子标签一端的计算量得到较大幅度的降低。且协议还可以弥补其他协议存在的安全缺陷问题,具备一定的实际使用价值。 针对王悦等设计的电子票据系统中安全认证方案进行分析,得出认证协议具备一定的不足之处,即无法抗假冒攻击。本文在该通信协议框架基础之上,给出一种改进的电子票据系统中用到的超轻量级的安全认证协议。安全认证协议采用一种创新型的加密算法对信息进行加密,即循环移动置换运算。该加密算法基于位运算方式实现,因此能够使得加密协议达到超轻量级的级别;同时循环移动置换运算会根据加密信息自身携带的汉明重量值进行不同的操作,攻击者在不知晓加密信息汉明重量值的情况下,无法知晓算法采用哪种方式对信息进行加密,增大攻击者的破解难度。将协议与其他不同协议进行比较,协议不仅可以弥补其他协议存在的安全缺陷,同时具备计算量低等特征,能够适用于当前电子票据系统中。1.4 改进协议的步骤描述
2 安全认证协议安全性分析
3 安全认证协议性能分析
4 结 语