APP下载

基于循环移位运算的多服务器的密钥认证方案

2022-10-17杨晓云徐国华

计算机工程与设计 2022年10期
关键词:智能卡移位口令

杨晓云,徐国华

(太原学院 计算机科学与技术系,山西 太原 030032)

0 引 言

进入新世纪后,伴随着科技不断发展,移动手机的使用越来越普及。基于现有移动手机的强大性,一部移动手机可以完成非常多的事情,比如可以使用移动手机上网课、可以使用移动手机看电影看电视剧等[1,2]。用户在使用移动手机进行上述事情过程中,将会一次或多次访问不同的应用程序服务器,该过程中用户与服务器之间可能交互一些诸如口令等隐私信息。鉴于移动手机与应用程序服务器间基于无线链路交互数据,无线链路固有的开放性,使得两者交互数据过程中存在一定的安全隐患[3-5]。为能够保证合法用户重要信息或隐私信息的安全性,就需要设计出安全的认证协议或方案,如文献[6-10]中设计出多个不同类型的认证协议或方案。

Wang等在文献[11]中给出一个改进的认证方案,并声称具备较好的安全属性。Yin等在文献[12]中基于椭圆曲线与生物特征值设计了一个认证方案,但对方案进行分析,发现方案无法抵抗假冒攻击。Wang等在文献[13]中提出了一种3个多服务器环境下的匿名认证方案,方案虽具备完善的安全需求,但方案采用传统算法实现信息加密,使得系统整体计算量部分超出计算能力,无法广泛推广使用。

Du等在文献[14]中对文献[11]中设计的方案进行了深入分析,指出该方案并没有实现真正的匿名性,同时还指出该方案易遭受服务器一端假冒攻击的安全缺陷问题。在此之后,Du等在文献[14]中设计一个改进的方案,该方案采用哈希函数及中国剩余定理实现对信息的加密,虽暂未发现该方案存在何种安全隐患,但鉴于方案采用的加密算法,使得系统整体计算量大幅度提升,仅能使用在特定场合中,无法大规模推广。

鉴于现有的认证方案仅适用单服务器或存在安全隐患或计算量大等不足,文中给出一个将口令与生物特征值相结合设计的认证方案。方案可适用于多服务器环境下,使方案具有更广阔的使用范围;方案基于一种按位运算实现的超轻量级加密算法对信息加密,能够极大程度上降低系统整体计算量;循环移位运算实现过程中充分利用加密参数自身具备的汉明权重,可在减少参量引入的同时,增加攻击者破解难度。

1 循环移位运算的设计

文中设计一种加密算法,即循环移位运算。循环移位运算统一用Cso(X,Y) 符号表示,并可按照如下方式定义及实现:

(1)X、Y是长度为L位的二进制串,W(X) 表示二进制串X的汉明权值、W(Y) 表示二进制串Y的汉明权值;

(2)当W(X)≥W(Y) 时,如果满足 (W(X)-W(Y))<(L-2), 则对二进制串Y的第2位至第L-1位循环向左移动W(X)-W(Y) 位,且保持二进制串Y的第1位、第L位不变动,则可得到循环移位运算的最终结果。如果满足 (W(X)-W(Y))≥(L-2), 则对二进制串Y的第2位至第L-1位循环向左移动L-(W(X)-W(Y))/2位,且保持二进制串Y的第1位、第L位不变动,则可得到循环移位运算的最终结果;

(3)当W(X)

其中L-(W(Y)-W(X))/2中的 (W(Y)-W(X))/2按照取整向零的方式取运算结果整数。

为便于对循环移位运算的理解,将通过下面两个例子进行讲解。取长度L=12,X=101100101100,Y=001001001010, 则可以得到W(X)=6、W(Y)=4, 满足W(X)≥W(Y) 及 (W(X)-W(Y))<(L-2) 情况,根据上述描述,可得到循环移位运算结果为Cso(X,Y)=000100101010, 具体过程如图1所示。

再次取长度L=12,X=001001001010,Y=101100101100, 则可以得到W(X)=4、W(Y)=6, 满足W(X)

2 多服务器的密钥认证方案

本章节主要从下面两个大方面展开,第一个方面,给出方案设计过程中相关的符号含义说明;第二个方面,描述文中认证方案具体实现步骤。

其中文中认证方案具体实现步骤又可分为5个不同阶段,具体如下:服务器注册阶段、用户注册阶段、登录阶段、认证阶段、口令修改阶段。

2.1 方案符号含义说明

文中方案涉及到多个符号,为便于对方案的理解,现将部分符号所表示的含义说明如下:

Sj编号为j的服务器

Ui编号为i的用户

RC注册中心

KSRC为Sj与RC间共享密钥

IDj为Sj的身份标识

IDi为Ui的身份标识

PWi为Ui的口令密码

ai为Ui注册时选取的随机数

βi为Ui的生物特征

γ系统的主密钥

b为Ui拥有的智能卡产生的随机数

d为Sj产生的随机数

⊕异或运算

Cso(X,Y) 循环移位运算

2.2 服务器注册阶段

服务器注册阶段开始的时候,编号为j的应用服务器Sj向注册中心RC申请成为一个合法的服务器。同时注册中心RC将向该服务器Sj分配一个Sj与RC间共享密钥KSRC。

2.3 用户注册阶段

新的用户如果想要获取应用服务器Sj上面的合法资源,则新的用户需要先在注册中心RC上注册,成为一个合法的新用户。用户注册阶段具体步骤描述如下:

步骤1 新的用户Ui先自主选择一个身份标识IDi、 口令密码PWi、 注册时选取的随机数ai, 同时提取生物特征βi, 接着新用户Ui开始计算Ai、Bi, 最后新用户Ui通过安全链路将IDi、Ai、Bi发送给注册中心RC。

其中Ai=Cso(IDi,ai)、Bi=Cso(PWi,βi)。

步骤2 注册中心RC在收到信息后,通过计算依次可得到Ci、Di、Ei、Fi、Gi。

其中Ci=Cso(IDi,γ)、Di=Cso(Ci_R,Ci_L)、Ei=Di⊕Bi、Fi=Di⊕Ai、Gi=KSRC⊕Ci。

步骤3 待注册中心RC计算完毕之后,注册中心RC将存储新用户Ui注册信息,并将参数 保存至智能卡中,最后通过安全通道将智能卡返回给新用户Ui手中。

步骤4 新用户Ui收到智能卡之后,新用户Ui将参数ai存储于智能卡中。

待用户注册阶段完成,智能卡中存储参数有

2.4 登录阶段

待新用户Ui完成注册,成为一个合法用户后,新用户Ui可向应用服务器Sj发起登录请求,待登录成功,新用户Ui可享受应用服务器Sj上资源。登录具体步骤描述如下:

步骤1 新用户Ui登录服务器Sj, 将智能卡插入服务器Sj相应的读卡器中,同时新用户Ui输入在注册阶段设定好的身份标识IDi、 口令密码PWi、 生物特征βi。

2.5 认证阶段

待服务器Sj收到信息之后,便开始服务器Sj与新用户Ui之间的双向认证阶段。认证阶段具体步骤描述如下:

步骤2 服务器Sj生成一个随机数d, 接着按照约定好的法则依次计算得到KSU、I3、I4, 最后将 发送给新用户Ui。

其中KSU=Cso(IDi⊕d,IDj⊕b)、I3=Cso(IDi,b)⊕d、I4=Cso(IDj,d)。

步骤4 服务器Sj收到信息后,将通过计算得到N1, 然后对比计算所得N1与接收到的N值是否相等。

若N1≠N, 则服务器Sj验证新用户Ui失败,方案不再往后进行。

若N1=N, 说明服务器Sj验证新用户Ui成功,表明该用户为合法用户。

其中N1=Cso(dR,dL)⊕KSU。

2.6 口令修改阶段

待服务器Sj与新用户Ui之间的双向认证完成,则新用户Ui可获取服务器Sj的资源。当新用户Ui需修改口令时,用户修改口令步骤描述如下:

步骤1 用户Ui向智能卡输入身份标识IDi、 口令密码PWi、 生物特征βi。

步骤3 智能卡将按照约定好的规则计算得到Enew, 并用Enew替换Ei, 到此为止,口令修改操作正常完成结束。

其中Enew=Ei⊕Cso(PWi,βi)⊕Cso(PWnew,βi)、Ei=Enew。

3 协议安全性

(1)相互认证

(2)前向安全性

前向安全性是指第三方人员无法从当前获取的信息中破解出之前会话用到的或涉及到的隐私信息。文中认证方案为能够提供前向安全行,所有信息在加密过程中都混有随机数,或服务器Sj产生的随机数混入其中或新用户Ui选择的随机数混入其中,这样将会使得每轮会话时,虽都是按照相同的运算法则进行计算,但计算出来的会话消息却不尽相同。因每轮产生的随机数不同,且具备随机性,第三方人员从获取当前消息中,无法逆推出之前涉及到隐私信息。故,文中认证方案可提供前向安全需求。

(3)重放攻击

第三方人员在截获当前会话消息后,第三方人员假冒成其中一个会话实体,将截获的消息再次发送一遍,以企图通过另一端实体验证,进而获悉其它更多隐私信息。认证方案消息加密时有随机数参与,可保证当前会话计算所得消息值与下轮会话计算所得消息值之间无关联,这样就会使得第三方人员重发消息时,无法通过另一端实体验证。故,文中认证方案课可提供抵抗重放攻击安全需求。

(4)假冒攻击

从理论上来讲,第三方人员可以假冒成会话过程中任一个会话实体,具体的,文中会话过程中,第三方人员可假冒成服务器Sj, 也可假冒成新用户Ui。 鉴于篇幅有限,仅选择第三方人员假冒成新用户Ui来进行分析。

第三方人员假冒成新用户Ui, 将一张假的智能卡插入应用服务器的读卡器中,第三方人员需要输入正确的用户身份标识、正确的口令、与之相对应的正确的生物特征值。但上述合法的3个参数信息,只有合法的用户才具有,且也只有合法用户才知晓,整个认证方案过程中,上述3个参数信息并没有明文出现过,因此第三方人员无法获取。第三方人员在无法获取的前提下,第三方人员是无法输入上述3个正确的参数值;待第三方人员输入信息完成,应用服务器只需要进行简单计算,即可识别出第三方人员是伪造的,认证方案结束。故,文中认证方案可提供抵抗假冒攻击安全需求。

(5)穷举攻击

一个好的认证方案,不仅要能够抵抗假冒、重放等攻击,更要能够抵抗第三方人员穷举分析攻击。想要抵抗第三方人员发起的穷举攻击最直接的解决办法是:每个消息加密过程中,至少确保有两个或两个以上参数信息对于第三方人员来说不知晓,则第三方人员就无法穷举出有用的隐私信息,那么穷举攻击就失败。

这里选取I4=Cso(IDj,d) 为例进行分析,文中认证方案可抵抗第三方人员的穷举攻击。在消息I4中,虽然第三方人员知晓IDj, 亦知晓加密算法具体实现步骤,但第三方人员不知晓随机数d, 此时第三方人员将会采用穷举方式穷举出随机数d所有可能取值,但第三方人员无法成功。根据文中有关循环移位运算定义可得知,算法加密过程中涉及到随机数d自身具备的汉明权重,即第三方人员在不知晓随机数d的前提下,第三方人员亦无法知晓随机数d自身具备的汉明权重。在上述情况下,第三方人员相当于有两个参量信息不知晓,使得第三方人员无法穷举出任何有用的隐私信息。故,文中认证方案可提供抵抗穷举攻击安全需求。

(6)匿名性

依据文中认证方案的具体描述可得知,在用户拥有的智能卡中并没有存放用户的身份标识参数,因此,当用户拥有的智能卡在丢失之后,第三方人员也无法获悉用户的真实身份。另外,可假设第三方人员通过一些不正当手段获取了合法用户的智能卡,则第三方人员可获取智能卡存放的所有信息 。 但因为智能卡中未存放Di, 因此第三方人员仍无法获取正确Di的值;再加上第三方人员不知晓用户设定的口令、用户的生物特征值,则第三方人员无法破解Di中用户身份标识信息。故,文中认证方案可提供匿名性安全需求。

4 协议性能分析

将选择文中认证方案与其它认证方案在5个不同阶段的计算开销进行性能对比分析,具体分析结果可见表1。

表1中出现的符号含义如下:hash表示哈希函数计算的时间;xor表示位运算的时间(该处位运算包含常见的位运算,比如异或运算、连接运算、与运算。因不同位运算间时间差距较小,可认为计算时间相同,故统一用xor符号表示);mod表示指数模幂运算的时间;Cso表示循环移位运算的时间。

表1 协议的性能比较

在上述运算时间中,xor表示的位运算时间最短,Cso表示的循环移位运算时间长于xor运算时间,都可认为是超轻量级的计算量;而hash所表示的哈希函数计算时间、mod所表示的指数模幂运算时间远远大于前面两类运算时间,该种运算可称之为轻量级的计算量。根据现有的研究理论可得知,一次轻量级运算量相当于几十次超轻量级运算量,则相对应的时间开销亦呈现出上述关系。

文中认证方案各阶段具体计算量的由来分析如下:

服务器注册阶段:该阶段会话实体并未有任何计算,故计算量为0,因此表1中省略。

用户注册阶段:新用户Ui在计算Ai、Bi过程中,分别第1次、第2次使用Cso运算;服务器Sj在计算Ci、Di过程中,分别第3次、第4次使用Cso运算;服务器Sj在计算Ei、Fi、Gi过程中,分别第1次、第2次、第3次使用xor运算。故用户注册阶段总的计算量为4Cso+3xor。

基于上述,文中认证方案完成整个过程需要的总的计算量为24Cso+18xor。从表1中可以分析出,文中认证方案需要的总的计算量最少,不仅在于超轻量级的位运算次数少,同时文中认证方案选择的加密算法计算量也远少于其它方案中加密算法计算量,从而使得文中方案整体计算量得到较大幅度上减少。再结合前一章节中安全性分析可得知,文中认证方案在保证计算量降低的情况下,依旧可以保障认证方案具有较好的安全性能,因此文中认证方案具有推广使用的实际意义。

5 结束语

针对多服务器环境下的认证方案计算量大或存在安全不足等问题,文中提出一种将用户口令与生物特征值相结合的多服务器环境下使用的密钥认证方案。方案中为能够减少系统整体计算开销,采用新设计的循环移位运算对信息进行加密;循环移位运算可基于按位运算方式实现,可使得计算开销达到超轻量级别;循环移位运算实现过程中,巧妙充分利用加密信息自身携带的汉名重权参数值,在即可减少参数引入的同时,也可以增加第三方人员破解难度。从安全需求、计算开销角度对认证方案进行分析,表明文中设计认证方案具有良好的安全性能,且计算开销优于其它对比认证方案。

猜你喜欢

智能卡移位口令
MDT诊疗模式在颞下颌关节盘不可复性盘前移位中的治疗效果
关于Bergman加权移位算子的n-亚正规性
高矮胖瘦
大型总段船坞建造、移位、定位工艺技术
口 令
好玩的“反口令”游戏
澄天伟业 国内领先的智能卡生产企业
健身气功·五禽戏教学口令
巴黎智能卡暨身份识别技术工业展落户亚洲
读编往来/评刊表