使用随机数的通信安全认证方法

文档序号:7959320阅读:352来源:国知局
专利名称:使用随机数的通信安全认证方法
技术领域
本发明涉及一种通信安全认证方法,尤其涉及一种利用随机数进行通信安全认证的方法。
(2)背景技术现代科技的发展使安全认证渗透到了各个领域。例如,电子商务和自动存取款等商业活动,安全门禁和管理权限等企业管理,它们都需要安全认证。目前,最常用的认证方法是加密认证。在此认证过程中,加密和解密双方都拥有一个秘密,即所谓的加密算法。信息发送方根据加密算法用加密密钥对信息加密,然后将加密信息发送给接收方。接收方用解密密钥对接收到的加密信息解密,获得原始信息。由于加密和解密过程中使用的密钥通常在一段时间内不会改变,当不法分子利用窃听手段截获传送信息时,加密算法可能被破解,从而导致信息发送失去安全保障。窃听手段的不断升级迫使研发人员设计越来越复杂的加密算法,由此引起的大运算量对设备也提出了越来越高的要求。
(3)发明内容为此,本发明的一个目的是提供一种安全性高、运算量小且方案简单的通信安全认证方法。
根据本发明,提供了一种在第一和第二设备之间进行通信安全认证的方法,其中第一和第二设备具有相同的随机数表,且所述随机数表由N个随机数组组成,每个随机数组包括第一、第二和第三随机数。该方法包括以下步骤(a)使第一设备随机数表的当前指针与第二设备随机数表的当前指针同步,其中所述当前指针号大于等于第一与第二设备随机数表各自下次认证指针号中的较大者;(b)将第一设备随机数表当前指针指向的第m个随机数组的第一个随机数发送给第二设备;
(c)当第一和第二设备随机数表第m个随机数组的第一个随机数相等时,将第二设备随机数表的下次认证指针号更新为m+1;(d)将第二设备随机数表当前指针指向的第m个随机数组的第二个随机数发送给第一设备;(e)当第一和第二设备随机数表第m个随机数组的第二个随机数相等时,将第一设备随机数表的下次认证指针号更新为m+1;(f)将第一设备随机数表当前指针指向的第m个随机数组的第三个随机数发送给第二设备;(g)当第一和第二设备随机数表第m个随机数组的第三个随机数相等时,发送确认信息;以及(h)当第一和第二设备随机数表第m个随机数组的任何一个随机数比对不相等时,认证失败。
在上述安全认证方法中,第一和第二随机数表的当前指针号最好等于第一与第二随机数表各自下次认证指针号中的较大者。
在上述安全认证方法中,在步骤(a)之前还可以包括下述步骤将第一设备的标识符发送给第二设备;当第二设备中存在第一设备标识符时,第二设备调用与第一设备标识符相应的随机数表;将第二设备的标识符发送给第一设备;当第一设备中存在第二设备标识符时,第一设备调用与第二设备标识符相应的随机数表;以及当第一或第二设备中不存在第二或第一设备标识符时,认证失败。
在上述安全认证方法中,步骤(h)还可以包括下述步骤当第一和第二设备随机数表第m个随机数组的第二个随机数不相等时,认证失败并将第一设备错误标志增1;对于第二设备标识符,当第一设备错误标志连续累加达到一预定值时,第一设备在一段时间内拒绝响应第二设备;当第一和第二设备随机数表第m个随机数组的第一个或第三随机数不相等时,认证失败并将第二设备错误标志增1;以及对于第一设备标识符,当第二错误标志连续累加达到一预定值时,第二设备在一段时间内拒绝响应第一设备。
在上述安全认证方法中,还包括下述步骤当第一设备在发送其标识符后未在一预定时间内收到来自第二设备的标识符时,认证失败;
当第二设备在发送其标识符后未在预定时间内收到来自第一设备的当前指针同步信息或第一随机数时,认证失败;当第一设备在发送当前指针同步信息或第一随机数后未在一预定时间内收到来自第二设备的第二随机数时,认证失败并将第一设备错误标志增1;以及当第二设备在发送第二随机数后未在预定时间内收到来自第一设备的第三随机数时,认证失败并将第二设备错误标志增1。
在上述安全认证方法中,第一设备和第二设备之间可以通过有线或无线通信线路连接。
(4)


结合附图阅读本发明的具体实施方式
,将清楚和明白本发明的特征和优点,其中附图有图1是一认证系统的结构示意图;图2是依照本发明一实施例的随机数表的数据结构图;图3示出了依照本发明一实施例在安全认证过程中前端和后端设备随机数表指针的移动过程;图4(a)是依照本发明一实施例的安全认证过程的流程图;和图4(b)是图4(a)流程图中子程序A的工作过程。
(5)具体实施方式
以下参照附图,详细描述本发明的具体实施方式

图1是一认证系统10,它包括前端设备12和后端设备14,两者之间可以通过有线或无线连接方式交流信息。在实践中,前端和后端设备可以是任何能够交流信息的成对设备。例如,自动取款机和银行帐户系统,两个网络终端,电子钥匙和门禁。
在本发明的安全认证方法中,由管理机构生成一随机数表。这里,对于上述例举的成对设备,管理机构分别可以是银行、网络提供者或企业管理部门等。在某些情况下,管理机构也可以是两个成对设备的任何一个。管理机构将生成的随机数表与后端设备的标识符分配给前端设备,同时将同一随机数表与前端设备的标识符分配给后端设备。这样,前端和后端设备具有相同的随机数表。
图2例示了依照本发明一实施例的随机数表20的结构。如图所示,该表是一个N×3二维表,由n组随机数组成。每一组随机数包含三个随机数。每个随机数可以是16位、32位或其它位数的二进制数,也可以是具有一定长度的其它进制的数字串。在本发明的安全认证方案中,每次认证使用一组随机数。随机数表的大小可以根据使用场合而定。
由于一个前端设备可能对应多个后端设备,反之亦然,所以为前端和后端设备分配标识符是必要的。如前所述,管理机构在为一对前端和后端设备分配随机数表时,还必须将一个设备的标识符通知另一个设备。这样,在认证过程中,前端设备和后端设备可以通过识别标识符来调用对应的随机数表。
图3示出了依照本发明一实施例在安全认证过程中前端和后端设备随机数表指针的移动过程。
当前端设备被非法使用或者后端设备受到侵犯时,两个设备的随机数表指针可能指向不同的数组。因此,每次认证开始时应先使指针同步。具体地说,在一实施例中,当前端设备对后端设备作一次新的访问时,它将其标识符ID1发送给后端设备。后端设备识别标识符ID1,找出与标识符ID1对应的随机数表。然后,后端设备对前端设备的访问作出响应,将自己的标识符ID2和下次认证指针P2next=m′发送给前端设备。前端设备根据后端设备标识符ID2查找相应的随机数表,并将自已的下次认证指针P1next=m与后端设备的下次认证指针P2next=m′作比较。如果m≥m′,则将m作为当前指针的指针号P1,即令P1=m。如果m<m′,则将m′作为当前指针的指针号,即令P1=m′。前端设备会将当前指针号P1通知后端设备。为了防止第三者通过窃听而重发攻击,后端设备判断P1是否大于或等于后端的下次认证指针P2next。如果是,则后端设备使P2=P1,完成当前指针的同步。如果不是,表示认证失败。在图3所示的实施例中,假设m>m′,因此同步后P1=P2=m。
在认证方面,前端设备根据当前指针P1=m从随机数表第m组数据中取出第一个随机数Rm1,并将Rm1与P1一起发送给后端设备。后端设备也根据其当前指针P2=m从随机数表第m组数据中取出第一个随机数rm1。后端设备将rm1与接收到的Rm1比较。如果相同,表示后端设备实现了对前端设备的认证。为了保证后端随机数表的当前数据组不会在下一次认证时再次使用,后端设备将下次认证指针P2next的值更新为当前指针P2的值加1,即P2next=P2+1=m+1。接着,后端设备根据当前指针P2从随机数表第m组中取出第二个随机数rm2,并将其发送给前端设备。前端设备也取出第m组数据中的第二随机数Rm2,并将Rm2与rm2比较。如果相同,表示前端设备实现了对后端设备的认证。同样,为了保证前端随机数表当前数据组不会在下一次认证时再次使用,前端设备将下次认证指针P1next的值更新为当前指针P1的值加1,即P1next=P1+1=m+1。接着,前端设备根据当前指针号P1取出随机数表第m组数据的第三个随机数Rm3,并将其发送给后端设备。后端设备取出随机数rm3,并将其与接收到的Rm3比较。如果相同,表示完成确认。后端设备发出确认信息。整个认证过程结束。在电子钥匙(前端设备)和门禁(后端设备)的实施例中,当完成确认时,门禁发出的确认信息可以是表示开启门锁的信号。
另外,在本发明的认证方法中,可以为前端设备设立一个错误标志和一预定值,用于记录后端设备的错误次数。同样,为后端设备设立一个错误标志和一预定值,用于记录前端设备的错误次数。当前端设备比对后端设备发送的随机数不成功时,前端设备的错误标志加1。如果对于同一后端设备ID,前端错误标志连续累计值小于预定值,那么允许前端设备重新请求认证。如果前端错误标志连续累计值大于或等于预定值,虽然前端设备仍可重新请求认证,但前端设备在一段时间内拒绝响应同一ID的后端设备ID。另一方面,当后端设备比对前端设备发送的随机数不成功时,后端设备的错误标志加1。如果对于同一前端设备ID,后端错误标志连续累计值小于预定值,那么允许前端设备重新请求认证。如果后端错误标志连续累计值大于或等于预定值,那么后端设备在一段时间内拒绝响应同一ID的前端设备。如果有一次完成的认证过程成功了,则将前端和后端错误标志清零。
另外,为了防止外来攻击,在本发明的认证方法中,还可以为前端和后端设备分别设置一计时器,并设定一预定时间。当前端或后端设备在发出各自设备ID后未能在预定时间内收到对方设备的响应,则不再接收信息并返回起始状态,允许前端设备重新请求认证。当前端或后端设备在发出随机数后未能在预定时间内收到对方设备的响应,则不再接收信息,并将相应的错误标志加1。
图4(a)是依照本发明一实施例的安全认证过程的流程图。
首先,在步骤42,前端设备向后端设备发出认证请求,提供其ID。在步骤62,后端设备核对前端ID。如果在后端设备存储的所有前端设备ID中搜索到相匹配的ID,则核对成功,过程进至步骤64。否则,返回起始处。在步骤64,后端设备调用与接收到的前端ID相对应的随机数表,并作出认证响应,向前端设备发送后端ID及后端随机数表的下次认证指针号P2next。在步骤44,前端设备核对后端ID。如果在前端设备存储的所有后端设备ID中搜索到相匹配的ID,则核对成功,过程进至步骤46。否则返回起始处。在步骤46,前端设备调用与接收到的后端ID相对应的随机数表,并将该表的下次认证指针号P1next与接收到的后端P2next中的较大者设定为前端随机数表的当前指针号P1。然后,前端设备将前端当前指针号P1以及该指针所指随机数组的第一个随机数Rm1发送给后端设备。在步骤65,后端设备判断P1是否大于等于后端P2next。如果是,则过程进入步骤66。如果否,则返回起始处。在步骤66,后端设备使后端指针与前端指针同步P2=P1。在步骤68,将P2所指随机数组中的第一个随机数rm1与接收到的Rm1比对。如果两个第一随机数相等,则过程进到步骤70。如果不相等,过程进到子程序A。在步骤70,使下次认证指针号P2next等于P2+1。然后,后端设备将P2所指随机数组的第二个随机数rm2发送给前端。在步骤48,前端设备将P1所指随机数组中的第二个随机数Rm2与接收到的rm2比对。如果两个第二随机数相等,则过程进到步骤50。如果不相等,过程进到子程序A。在步骤50,使下次认证指针号P1next等于P1+1。然后,前端设备将P1所指随机数组的第三个随机数Rm3发送给后端。在步骤72,后端设备将P2所指随机数组中的第三个随机数rm3与接收到的Rm3比对。如果两个第三随机数相等,则过程进到步骤74。如果不相等,过程进到子程序A。在步骤74,后端设备发出认证成功信号,整个认证过程结束。
图4(b)是图4(a)中子程序A的流程。当前端和后端设备中的任一设备比对随机数不成功时,该设备的错误标志增1。然后,判断该错误标志是否大于或等于一预定值。如果是,则关闭该设备。这里“关闭”是指所述设备在一段时间内拒绝响应同一对方设备。如果否,则返回图4(a)流程中的起始处,允许前端设备重新发出认证请求。图4(b)所示的子程序也适用于前端或后端设备在发送随机数后未能在预定时间内收到对方响应的情况。
具体地说,对于同一后端设备ID2,当前端设备未能在预定时间内收到来自后端设备的随机数rm2或者比对Rm2与rm2不成功时,前端错误标志增1。然后,判断此前端错误标志是否大于或等于预定值,如果是,返回起始处,前端设备重新请求,但拒绝响应同一ID的后端设备2。类似地,对于同一前端设备ID1,当后端设备未能在预定时间内收到来自前端设备的随机数rm3或者比对rm1与Rm1或rm3与Rm3不成功时,后端错误标志增1。然后,判断此后端错误标志是否大于或等于预定值,如果是,后端设备拒绝响应同一ID的前端设备。
图4的流程图未包括用计时器限制对方设备响应时间的过程。但根据前述,本领域的熟练技术人员应该可以理解。
由上述技术方案可知,本发明的技术方案有很高的安全性。具体表现在第一,本发明的安全认证过程采用一次口令的方式。每次认证过程都采用三个一组的随机数进行确认。一组随机数用过后,便被废弃(参见图4(a)中的步骤50和70),可以防止中间人通过窃听进行重发攻击。第二,前端和后端设备的随机数指针号采用同步方式(参见图4(a)中的步骤46和66),取双方指针号的大者为当前指针号。这样,即使前端设备被非法使用或后端设备受到攻击,也可以保证每次合法的认证过程能够顺利进行。第三,本发明的安全认证过程采用三个一组随机数进行认证。其中,第一和第二随机数是认证随机数,用于成对设备相互间的认证。第三随机数是确认随机数,当第一和第二随机数比对成功后,还要比对第三随机数。只有第三随机数比对成功,才认为认证成功。与仅比对二个随机数的方案相比,本发明的三个随机数比对方案可以防止中间人的攻击。第四,前端和后端设备都装备了一计时器,用于限制通信时间,防止中间人攻击。第五,设置错误标志,在错误次数超过预定值时,将设备关闭一段时间,由此防止中间人用穷举扫描方式进行攻击。例如,如果随机数长度为16位,则一个完整的穷举扫描需54小时。如果随机数长度增加到32位,则一个完整的穷举扫描需408年。可见,本发明方案具有很高的安全性。
本发明的安全认证方案非常简单,而且运算量小。除了生成随机数表和随机数比对之外,没有其他运算。因此,特别适用于嵌入式系统。
尽管通过实施例详细描述了本发明,但实施例仅是说明性的。本领域的熟练技术人员在不脱离本发明精神和范围的情况下,可以作各种变化和修改。本发明由后附权利要求书及其等效技术方案来限定。
权利要求
1.一种在第一和第二设备之间进行通信安全认证的方法,其中第一和第二设备具有相同的随机数表,且所述随机数表由N个随机数组组成,每个随机数组包括第一、第二和第三随机数,其特征在于,所述方法包括以下步骤(a)使第一设备随机数表的当前指针与第二设备随机数表的当前指针同步,其中所述当前指针号大于等于第一与第二设备随机数表各自下次认证指针号中的较大者;(b)将第一设备随机数表当前指针指向的第m个随机数组的第一个随机数发送给第二设备;(c)当第一和第二设备随机数表第m个随机数组的第一个随机数相等时,将第二设备随机数表的下次认证指针号更新为m+1;(d)将第二设备随机数表当前指针指向的第m个随机数组的第二个随机数发送给第一设备;(e)当第一和第二设备随机数表第m个随机数组的第二个随机数相等时,将第一设备随机数表的下次认证指针号更新为m+1;(f)将第一设备随机数表当前指针指向的第m个随机数组的第三个随机数发送给第二设备;(g)当第一和第二设备随机数表第m个随机数组的第三个随机数相等时,发送确认信息;以及(h)当第一和第二设备随机数表第m个随机数组的任何一个随机数比对不相等时,认证失败。
2.如权利要求1所述的通信安全认证方法,其特征在于,第一和第二设备随机数表的当前指针号等于第一与第二设备随机数表各自下次认证指针号中的较大者。
3.如权利要求1或2所述的通信安全认证方法,其特征在于,在步骤(a)之前还包括下述步骤将第一设备的标识符发送给第二设备;当第二设备中存在第一设备标识符时,第二设备调用与第一设备标识符相应的随机数表;将第二设备的标识符发送给第一设备;当第一设备中存在第二设备标识符时,第一设备调用与第二设备标识符相应的随机数表;以及当第一或第二设备中不存在第二或第一设备标识符时,认证失败。
4.如权利要求3所述的通信安全认证方法,其特征在于,所述步骤(h)还包括下述步骤当第一和第二设备随机数表第m个随机数组的第二个随机数不相等时,认证失败并将第一设备错误标志增1;对于第二设备标识符,当第一设备错误标志连续累加达到一预定值时,第一设备在一段时间内拒绝响应第二设备;当第一和第二设备随机数表第m个随机数组的第一个或第三随机数不相等时,认证失败并将第二设备错误标志增1;以及对于第一设备标识符,当第二错误标志连续累加达到一预定值时,第二设备在一段时间内拒绝响应第一设备。
5.如权利要求4所述的通信安全认证方法,其特征在于,还包括下述步骤当第一设备在发送其标识符后未在一预定时间内收到来自第二设备的标识符时,认证失败;当第二设备在发送其标识符后未在预定时间内收到来自第一设备的当前指针同步信息或第一随机数时,认证失败;当第一设备在发送当前指针同步信息或第一随机数后未在一预定时间内收到来自第二设备的第二随机数时,认证失败并将第一设备错误标志增1;以及当第二设备在发送第二随机数后未在预定时间内收到来自第一设备的第三随机数时,认证失败并将第二设备错误标志增1。
6.如权利要求1所述的通信安全认证方法,其特征在于,第一设备和第二设备之间通过有线通信线路连接。
7.如权利要求1所述的通信安全认证方法,其特征在于,第一设备和第二设备之间通过无线通信线路连接。
全文摘要
一种在具有相同随机数表的前后设备之间进行通信安全认证的方法,其中随机数表由N个随机数组组成,每组包括三个随机数。具体步骤使前后端随机数表的当前指针同步,当前指针最好等于前后端下次认证指针中的较大者;前端将当前第m个随机数组的第一随机数发送给后端;后端将其相应数组的第一个随机数与前端第一随机数比对,若相等,将后端下次认证指针号更新为m+1;后端将第二个随机数发送给前端;前端将其第二个随机数与后端第二随机数比对,若相等,将前端下次认证指针号更新为m+1;前端将第三个随机数发送给后端;后端将其第三个随机数与前端第三随机数比对,若相等,认证成功。若任何一个随机数比对不相等,认证失败。
文档编号H04L9/00GK1419356SQ0113744
公开日2003年5月21日 申请日期2001年11月13日 优先权日2001年11月13日
发明者黄旭涛, 沈王磊 申请人:杭州中正生物认证技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1