身份认证设备及其认证处理方法和处理装置的制作方法

文档序号:6398651阅读:297来源:国知局
专利名称:身份认证设备及其认证处理方法和处理装置的制作方法
技术领域
本发明涉及身份认证领域,具体而言,涉及一种身份认证设备及其认证处理方法和处理装置。
背景技术
SPA是一种直接解释功率消耗测定值的技术,攻击者通过观察设备运行时的功率消耗的变化,利用统计方法和经验对收集的信息进行分析,从而破解设备中执行的指令以及相关的秘密数据。当功率检测设备的精度较高时,设备执行的单条指令的特征将能够被区分开来。在现有的身份认证设备中,如USBKEY、智能卡等,绝大部分都是由一个6 16字节的PIN来认证设备持有人的合法性,也就是说,攻击者在获得了设备后,只要再拥有了正确的PIN值,就能以合法的身份来使用设备,因而,身份认证设备需要对PIN进行保护。现有的嵌入式身份认证设备对PIN的保护方式主要包含以下几种1、在设备内不存放PIN明文数据,仅存放PIN的哈希结果,校验时对输入的PIN值也做同样的哈希操作后进行比较,如图1所示的校验流程;2、限制PIN值校验连续错误的次数,如果PIN值校验出错,则连续错误次数加一,直到PIN值连续错误次数达到上限后锁定PIN的使用,如图2所示的校验流程。但是,发明人发现,对于保护方式1,虽然在设备仅存放PIN值的哈希结果,能够防止设备内PIN信息被非法读取后 直接获取到PIN值的攻击方式,但是,如果攻击者使用精度较高的检测设备,并对PIN校验进行重复多次的SPA检测,仍然可推测出使用的哈希算法。例如,以攻击6位PIN的嵌入式身份认证设备为例,当攻击者采用如图3所示的PIN攻击方法时,上述保护方式I仍然无法实现防御。因此,如果身份认证设备仅保存了 PIN的哈希结果,对输入数据进行一定的排序即可按照上述流程进行快速攻击。根据获得的常用哈希算法,首先使用高性能的电脑计算出00000(Γ999999的哈希结果,并对此哈希结果按字节顺序进行排序,对按排序值对应的PIN值进行输入测试,即使是20字节的哈希结果,也最多需要20*256=5120次即可获得PIN值,并且这个次数不会随PIN值长度的增加而增加。对于保护方式2,限制PIN值校验连续错误的次数,虽然能够防止一般情况下对PIN穷举的破解方式,但是,发明人进一步发现,EEPR0M/FLASH在编程操作,维护PIN值的连续错误次数时会需要较大的能量,使用检测设备可以轻易的分析出身份认证设备的EEPR0M/FLASH编程操作的起始和结束,再针对以上限制PIN错误次数流程中的漏洞,便实现多次攻击的可能。例如,当攻击者采用如图4所示的PIN攻击方法时,上述保护方式2仍然无法实现防御。针对相关技术中身份认证设备安全性差的问题,目前尚未提出有效的解决方案
发明内容
本发明的主要目的在于提供一种身份认证设备及其认证处理方法和处理装置,以解决身份认证设备安全性差的问题。为了实现上述目的,根据本发明的一个方面,提供了一种身份认证设备的认证处
理方法。根据本发明的身份认证设备的认证处理方法包括获取输入PIN和参考PIN ;对输入PIN和参考PIN按位进行逻辑运算,以得到运算结果;根据运算结果判断输入PIN和参考PIN是否相等;当输入PIN和参考PIN相等时,身份认证设备输出认证成功的信息,当输入PIN和参考PIN不相等时,身份认证设备输出认证失败的信息。进一步地,在对输入PIN和参考PIN按位进行逻辑运算之前,该方法还包括对输入PIN和参考PIN进行数据处理,以使处理后的输入PIN与处理后的参考PIN的长度相等,其中,对输入PIN和参考PIN按位进行逻辑运算包括对处理后的输入PIN和处理后的参考PIN按位进行逻辑运算。进一步地,对输入PIN和参考PIN进行数据处理包括计算输入PIN和参考PIN的长度值;将输入PIN的长度值与输入PIN按照预设方法组装为第一数据;将参考PIN的长度值与参考PIN按照预设方法组装为第二数据;对第一数据和/或第二数据进行数据填充,以使第一数据和第二数据的长度相等,其中,数据填充后的第一数据为处理后的输入PIN,填充处理后的第二数据为处理后的参考PIN。进一步地,对输入PIN和参考PIN按位进行逻辑运算包括对输入PIN和参考PIN按位进行异或操作,得到异或值;对异或值所有位进行或操作,得到单字节信息,其中,单字节信息为运算结果,根据运算结果判断输入PIN和参考PIN是否相等包括判断单字节信息是否为0,其中,当单字节信息为O时,输入PIN和参考PIN相等,当单字节信息为I时,输入PIN和参考PIN不等。进一步地,在获取输入PIN和参考PIN之前,该方法还包括判断存储的认证次数是否大于预设次数,其中,当存储的认证次数小于预设次数时,获取输入PIN和参考PIN,在获取输入PIN和参考PIN之后,判断输入PIN和参考PIN是否相等之前,法还包括将存储的认证次数加1,当输入PIN和参考PIN相等时,该方法还包括将存储的认证次数清零。为了实现上述目的,根据本发明的另一方面,提供了一种身份认证设备的认证处理装置。根据本发明的身份认证设备的认证处理装置包括获取模块,用于获取输入PIN和参考PIN ;第一处理模块,用于对输入PIN和参考PIN按位进行逻辑运算,以得到运算结果;第一判断模块,用于根据运算结果判断输入PIN和参考PIN是否相等;输出模块,用于当输入PIN和参考PIN相等时,输出身份认证设备的认证成功,当输入PIN和参考PIN不相等时,输出身份认证设备的认证失败。进一步地,该装置还包括第二处理模块,用于对输入PIN和参考PIN进行数据处理,以使处理后的输入PIN与处理后的参考PIN的长度相等,其中,第一处理模块还用于对处理后的输入PIN和处理后的参考PIN按位进行逻辑运算。进一步地,第二处理模块包括计算子模块,用于计算输入PIN和参考PIN的长度值;第一处理子模块,用于将输入PIN的长度值与输入PIN按照预设装置组装为第一数据;第二处理子模块,用于将参考PIN的长度值与参考PIN按照预设装置组装为第二数据;第三处理子模块,用于对第一数据和/或第二数据进行数据填充,以使第一数据和第二数据的长度相等,其中,数据填充后的第一数据为处理后的输入PIN,填充处理后的第二数据为处理后的参考PIN。进一步地,第一处理模块包括第四处理子模块,用于对输入PIN和参考PIN按位进行异或操作,得到异或值;第五处理子模块,用于对异或值所有位进行或操作,得到单字节信息,第一判断模块包括判断子模块,用于判断单字节信息是否为O ;第一确定子模块,用于当单字节信息为O时,确定输入PIN和参考PIN相等;第二确定子模块,用于当单字节信息为I时,确定输入PIN和参考PIN不等。进一步地,该装置还包括存储模块,用于存储身份认证设备的认证次数;第二判断模块,用于在获取模块获取输入PIN和参考PIN之前,判断存储模块中的认证次数是否大于预设次数;修改模块,用于在获取输入PIN和参考PIN之后,判断输入PIN和参考PIN是否相等之前,将存储模块中存储的认证次数加I,在输入PIN和参考PIN相等时,将存储模块中存储的认证次数清零,其中,获取模块用于当存储的认证次数小于预设次数时,获取输入PIN和参考PIN。为了实现上述目的,根据本发明的另一方面,提供了一种身份认证设备。根据本发明的身份认证设备包括本发明提供的任意一种的身份认证设备的认证
处理装置。通过本发明,采用包括以下步骤的身份认证设备的认证处理方法,首先获取输入PIN和参考PIN,然后对输入PIN和参考PIN按位进行逻辑运算,以得到运算结果,最后根据运算结果判断输入PIN和参考PIN是否相等,当输入PIN和参考PIN相等时,身份认证设备输出认证成功的信息,当输入PIN和参考PIN不相等时,身份认证设备输出认证失败的信息,无论认证成功或认证失败,在输出认证结果信息之前,身份认证设备执行相同的步骤,从而能够防止攻击者通过分析执行认证步骤消耗的能量而窃取到PIN,解决了身份认证设备安全性差的问题,进而达到了能够防止对身份认证设备的SPA攻击,提高身份认证设备安全性的效果。


构成本申请的一部分的附图用来提供对本发明的进一步理解,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中图1和图2是根据相关技术的身份认证设备中PIN校验的流程图;图3和图4是根据相关技术的身份认证设备的攻击方法的流程图;图5是根据本发明第一实施例的身份认证设备的认证处理方法的流程图;图6是根据本发明第二实施例的身份认证设备的认证处理方法的流程图;图7和图8是根据本发明第三实施例的身份认证设备的认证处理方法的流程图;图9是根据本发明第四实施例的身份认证设备的认证处理装置的框图;以及图10是根据本发明第五实施例的身份认证设备的认证处理装置的框图。
具体实施例方式需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。下面将参考附图并结合实施例来详细说明本发明。图5是根据本发明第一实施例的身份认证设备的认证处理方法的流程图,如图5所示,该方法包括如下的步骤S102至步骤S110。步骤S102 :获取输入PIN和参考PIN。身份认证设备内可直接存储PIN明文数据,优选地,也可将PIN明文数据进行哈希操作,存储PIN明文数据对应的哈希值,也可将PIN明文数据进行加密处理,存储PIN明文数据对应的加密值,在该步骤中,获取PIN明文数据、PIN明文数据对应的哈希值或PIN对应的加密值得到参考PIN。身份认证设备接收用户输入的PIN数据,如果设备内存储的是PIN值明文时,直接将用户输入的PIN数据作为输入PIN ;如果设备内存储的是哈希值时,设备在接收到用户输入的PIN数据后,对用户输入的PIN数据进行同样的哈希操作,得到的哈希值作为输入PIN;如果设备内存储的是加密值时,设备在接收到用户输入的PIN数据后,对用户输入的PIN数据进行同样的加密处理,得到的加密值作为输入PIN。通过保存和比较哈希或加密后的结果,能够防止汉明距离、汉明重量相关模型的SPA攻击。步骤S104 :对输入PIN和参考PIN按位进行逻辑运算,以得到运算结果。在该步骤中,将输入PIN和参考PIN看作两个长的bit流位,将输入PIN的第一位与参考PIN的第一位进行逻辑运算,以判断输入PIN的第一位与参考PIN的第一位是否相同,将输入PIN的第二位与参考PIN的第二位进行逻辑运算,以判断输入PIN的第二位与参考PIN的第二位是否相同,以此类推,将输入PIN和参考PIN的各对应位分别进行逻辑运笪
ο步骤S106 :根据运算结果判断输入PIN和参考PIN是否相等,其中,当输入PIN和参考PIN相等时,执行步骤S108,否则执行步骤S110。如果通过步骤S104判断得到输入PIN和参考PIN的每一位均相同,则输入PIN和参考PIN相等,否则二者不等。步骤S108 :输出认证成功的信息。步骤SllO :输出认证失败的信息。在该实施例中,无论认证成功或认证失败,在输出认证结果信息之前,身份认证设备执行相同的步骤,攻击者无法通过SPA分析定位输入的PIN值中单个字节是否正确,也就无法快速的通过攻击而获取正确的PIN值,从而能够防止攻击者通过分析执行认证步骤消耗的能量而窃取到PIN,能够防止对身份认证设备的SPA攻击,提高了身份认证设备的安全性。图6是根据本发明第二实施例的身份认证设备的认证处理方法的流程图,如图6所示,该方法包括如下的步骤S202至步骤S218。步骤S202 :用户触发认证功能后,获取存储的PIN连续认证失败次数,其中,若PIN连续认证失败次数大于预设次数,则对认证功能进行锁定,并输出认证已被锁定的信息,若PIN连续认证失败次数小于预设次数,执行步骤S204。步骤S204 :获取输入PIN和参考PIN。步骤S206 :将存储的PIN连续认证失败次数加I。
可通过EEPR0M/FLASH存储PIN连续认证失败次数,在获取输入PIN和参考PIN之后,校验输入PIN之前,对EEPR0M/FLASH进行写操作,使其中存储的PIN连续认证失败次数加I。步骤S208 :对输入PIN和参考PIN进行数据处理,以使处理后的输入PIN与处理后的参考PIN的长度相等。当输入PIN和参考PIN的数据长度不相等时,为了使二者能够执行按位逻辑运算的步骤,在进行运算之前,先对二者进行数据处理,例如设置接收数据的最大长度,也即,用户只能输入小于等于该最大长度的数据,当用户输入的数据长度大于最大长度时,设备自动选取用户输入的前N位作为输入PIN,该处的N等于最大长度。其中,参考PIN的数据长度X小于该最大长度N,在存储参考PIN时,前X位为参考PIN,后N-X位为预设值,在设备获取到输入PIN后,判断输入PIN的数据长度Y是否小于最大长度N,当输入PIN的数据长度Y小于最大长度N时,对输入PIN进行数据处理,其前X位为输入PIN,后N-Y位为预设值。优选地,在对输入PIN和参考PIN进行数据处理时,采用如下的步骤计算输入PIN和参考PIN的长度值;将输入PIN的长度值与输入PIN按照预设方法组装为第一数据;将参考PIN的长度值与参考PIN按照预设方法组装为第二数据;对第一数据和/或第二数据进行数据填充,以使第一数据和第二数据的长度相等,其中,数据填充后的第一数据为处理后的输入PIN,填充处理后的第二数据为处理后的参考PIN。对第一数据和/或第二数据进行数据填充包括当第一数据大于第二数据时,对第二数据进行数据填充,当第二数据大于第一数据时,对第一数据进行数据填充,或者,在任何情况下均对第一数据和第二数据进行数据填充,用于填充的数据可以为预设数据,也可为随机生成的数据。采用该优选方式进行数据处理,将输入PIN数据长度作为处理后输入PIN的一部分,将参考PIN数据长度作为处理后参考PIN的一部分,能够避免不同的输入PIN和参考PIN经过数据长度的处理后而相同,从而在保证设备安全性的同时,保证了 PIN数据验证时的准确性,进一步地,对数据进行填充,能够增加攻击者获取参考PIN值的实际长度的难度。步骤S210 :对处理后的输入PIN和处理后的参考PIN按位进行逻辑运算,以得到
运算结果。步骤S212 :根据运算结果判断输入PIN和参考PIN是否相等,其中,当输入PIN和参考PIN相等时,执行步骤S214,否则执行步骤S218。优选地,对输入PIN和参考PIN按位进行逻辑运算包括对输入PIN和参考PIN按位进行异或操作,得到异或值;对异或值所有位进行或操作,得到单字节信息,其中,单字节信息为运算结果,根据运算结果判断输入PIN和参考PIN是否相等包括判断单字节信息是否为0,其中,当单字节信息为O时,输入PIN和参考PIN相等,当单字节信息为I时,输入PIN和参考PIN不等。也可以按位判断得到的异或值的各位是否为1,只要有一个位为1,就可以判定输入PIN和参考PIN不等;若各位均为0,则可以判定输入PIN和参考PIN相等。对输入PIN和参考PIN按位进行异或操作时,输入PIN和参考PIN相同位上的值相同时,异或后对应位上的值为0,输入PIN和参考PIN相同位上的值不同时,异或后对应位上的值为1,再对异或值所有位进行或后,当异或值上的所有位均为O时,输入PIN和参考PIN的每一对应位上的值均相同,也即输入PIN和参考PIN相等,当异或值上的任一位为I时,输入PIN和参考PIN存在对应位上的值不同的情况,也即输入PIN和参考PIN不等。采用该优选方式进行逻辑运算,能够通过简单的运算得到输入PIN和参考PIN是否相等的结果,数据处理速度快。步骤S214 :输出认证成功的信息。步骤S216 :将存储的认证次数清零,当认证成功后,将认证次数清零。步骤S218 :输出认证失败的信息。在该实施例中,在输出认证结果信息之前,身份认证设备执行相同的步骤,能够防止攻击者通过分析执行认证步骤消耗的能量而窃取到PIN,提高身份认证设备的安全性;通过将对PIN连续认证失败次数的修改步骤设置于校验PIN之前,断绝了攻击者想通过设备掉电的方式无限获得校验PIN流程的功耗曲线的可能性,且并不影响正常情况下的用户体验,进一步提高了设备的安全性。图7和图8是根据本发明第三实施例的身份认证设备的认证处理方法的流程图。如图7所示,设备在接收到输入PIN后,首先判断PIN连续错误次数是否超过预设限值,如果PIN连续错误次数超限时,锁定PIN。当PIN被锁定后,直接输出验证失败的信息,当PIN未被锁定时,获取设备内存储的参考PIN对应的哈希结果,并将存储的PIN连续错误次数加I,然后调用PIN校验流程,在PIN校验成功时,清零PIN连续错误次数。其中,调用的PIN校验流程如图8所示,首先,对输入的PIN值进行哈希,获得与设备内参考PIN格式相同的输入PIN的哈希结果,将输入的PIN值对应的哈希结果作为输入PIN,该处的参考PIN也为哈希结果;然后,将输入PIN和参考PIN均组装成固定长度格式的数据LVPl和LVP2,其中,LVPl为输入PIN的长度值+输入PIN+预设填充值,LVP2为参考PIN的长度值+参考PIN+预设填充值;第三,将LVPl与LVP2看作两个长的bit流按位做‘异或’操作,即P_X0R=LVPlxor LVP2,获得数据P_X0R ;第四,将P_X0R的所有字节做‘或’操作,得到单字节结果R ;第五,判断R是否为0,当R为O时,进行PIN校验成功处理,当R不为O时,进行PIN校验失败处理。上述实施例是以设备中存储的参考PIN为PIN明文数据的哈希结果为例的认证处理方法,在校验时,对输入的PIN值进行哈希后,校验两个哈希结果。也可直接存储PIN的明文信息,在校验时,直接校验两个明文PIN值。假设设备内保存的参考PIN是明文信息,参考PIN为0xl20x34,PIN值数据最大长度为4字节,则保存的数据格式(采用十六进制)如下0212348A3F,其中8A3F为设备保存参考PIN时对参考PIN进行数据处理时生成的随机数,02为PIN长度字节数。进行PIN校验时,设备将进行数据处理后的参考PIN值(5字节)读入内存中,然后根据外部输入的PIN值长度和参考PIN值对外部输入的数据进行覆盖,假设输入PIN为0x120x340x56,则覆盖后的数据为031234563F。然后设备将处理后的输入PIN与存储的参考PIN (保存在FLASH或EEPROM中)按位“异或”得到结果010000DC00,再将这5字节按字节“或”,得到结果R=DD,根据结果为非零则认为PIN校验失败。在该实施例中,通过对现有设备校验流程的改进,在校验PIN前,先更新审计日志,避免了校验PIN后更新审计日志时被恶意断电导致审计日志更新失败,攻击者可以无限次攻击的情况;在校验PIN时,通过指令均衡处理和特殊比较方式获取PIN的校验结果,有效防止了校验PIN的过程中泄漏PIN信息的可能性。本发明实施例还提供了身份认证设备的认证处理装置,以下对本发明实施例所提供的身份认证设备的认证处理装置进行介绍。需要说明的是,在本发明实施例的身份认证设备的认证处理方法可以通过本发明实施例所提供的身份认证设备的认证处理装置来执行,本发明实施例的身份认证设备的认证处理装置也可以用于执行本发明实施例所提供的身份认证设备的认证处理方法。图9是根据本发明第一实施例的身份认证设备的认证处理装置的框图,如图9所不,该装置包括获取模块10、第一处理模块20、第一判断模块30和输出模块40。获取模块10用于获取输入PIN和参考PIN。身份认证设备内可直接存储PIN明文数据,优选地,也可将PIN明文数据进行哈希操作,存储PIN明文数据对应的哈希值,也可将PIN明文数据进行加密处理,存储PIN明文数据对应的加密值,获取模块10获取PIN明文数据、PIN明文数据对应的哈希值或PIN对应的加密值得到参考PIN。获取模块10可以通过按钮或触屏,接收用户输入的PIN数据,如果设备内存储的是PIN值明文时,直接将用户输入的PIN数据作为输入PIN;如果设备内存储的是哈希值时,获取模块10在接收到用户输入的PIN数据后,对用户输入的PIN数据进行同样的哈希操作,得到的哈希值作为输入PIN ;如果设备内存储的是加密值时,获取模块10在接收到用户输入的PIN数据后,对用户输入的PIN数据进行同样的加密处理,得到的加密值作为输入PIN。通过保存和比较哈希或加密后的结果,能够防止汉明距离、汉明重量相关模型的SPA攻击。第一处理模块20用于对输入PIN和参考PIN按位进行逻辑运算,以得到运算结果,具体地,将输入PIN和参考PIN看作两个长的bit流位,第一处理模块20将输入PIN的第一位与参考PIN的第一位进行逻辑运算,以判断输入PIN的第一位与参考PIN的第一位是否相同,将输入PIN的第二位与参考PIN的第二位进行逻辑运算,以判断输入PIN的第二位与参考PIN的第二位是否相同,以此类推,将输入PIN和参考PIN的各对应位分别进行逻辑运算,得到运算结果。第一判断模块30用于根据运算结果判断输入PIN和参考PIN是否相等,如果判断得到输入PIN和参考PIN的每一位均相同,则输入PIN和参考PIN相等,否则二者不等。输出模块40用于当输入PIN和参考PIN相等时,输出认证成功的信息,当输入PIN和参考PIN不相等时,输出认证失败的信息。在该实施例中,无论认证成功或认证失败,在输出认证结果信息之前,身份认证设备的模块执行相同的步骤,攻击者无法通过SPA分析定定位输入的PIN值中单个字节是否正确,也就无法快速的通过攻击而获取正确的PIN值,从而能够防止攻击者通过分析执行认证步骤消耗的能量而窃取到PIN,能够防止对身份认证设备的SPA攻击,提高了身份认证设备的安全性。图10是根据本发明第二实施例的身份认证设备的认证处理装置的框图,如图10所不,该装置包括获取模块10、第一处理模块20、第一判断模块30、输出模块40、第二处理模块50、存储模块60、第二判断模块70和修改模块80。
其中,第二处理模块50包括计算子模块51、第一处理子模块52、第二处理子模块53、第三处理子模块54 ;第一处理模块20包括第四处理子模块21、第五处理子模块22 ;第一判断模块30包括判断子模块31、第一确定子模块32和第二确定子模块33。存储模块60可以为EEPROM或FLASH存储器,用于存储身份认证设备的认证次数,修改模块80可以对存储模块60进行写操作,以修改认证次数或将认证次数清零,其中,该处的认证次数指的是设备连续认证失败次数。用户触发认证功能后,第二判断模块70获取存储模块60中的认证次数,判断该认证次数是否大于预设次数,当认证次数大于预设次数时,将身份认证设备的认证功能锁定,当认证次数小于预设次数时,获取模块10获取输入PIN和参考PIN,之后,修改模块80对存储模块60进行第一次写操作,将存储模块60中存储的认证次数加I。第二处理模块50用于对输入PIN和参考PIN进行数据处理,以使处理后的输入PIN与处理后的参考PIN的长度相等,第一处理模块20用于对处理后的输入PIN和处理后的参考PIN按位进行逻辑运算,第一判断模块30用于根据运算结果判断输入PIN和参考PIN是否相等。具体地,第二处理模块50中的计算子模块51用于计算输入PIN和参考PIN的长度值,第一处理子模块52用于将输入PIN的长度值与输入PIN按照预设方法组装为第一数据,第二处理子模块53用于将参考PIN的长度值与参考PIN按照预设方法组装为第二数据,例如将长度值置于PIN数据的数据首,第三处理子模块54用于对第一数据和/或第二数据进行数据填充,以使第一数据和第二数据的长度相等,其中,数据填充后的第一数据为处理后的输入PIN,填充处理后的第二数据为处理后的参考PIN。具体地,第一处理模块20中的第四处理子模块21用于对输入PIN和参考PIN按位进行异或操作,得到异或值,第五处理子模块22用于对异或值所有位进行或操作,得到
单字节信息。具体地,第一判断模块30中的判断子模块31用于判断单字节信息是否为0,第一确定子模块32用于当单字节信息为O时,确定输入PIN和参考PIN相等,第二确定子模块33用于当单字节信息为I时,确定输入PIN和参考PIN不等,当第一确定子模块32确定输入PIN和参考PIN相等时,修改模块80对存储模块60进行第二次写操作,将存储模块中存储的认证次数清零。输出模块40用于当输入PIN和参考PIN相等时,输出认证成功的信息,当输入PIN和参考PIN不相等时,输出认证失败的信息。在该实施例中,在输出认证结果信息之前,身份认证设备的各模块执行相同的步骤,能够防止攻击者通过分析执行认证步骤消耗的能量而窃取到PIN,提高身份认证设备的安全性;修改模块80在校验PIN之前对PIN连续认证失败次数进行修改,避免攻击者通过设备掉电的方式无限获得校验PIN流程的功耗曲线的可能性,且并不影响正常情况下的用户体验,进一步提高了设备的安全性;在进行输入PIN和参考PIN的按位逻辑运算之前,对数据长度进行处理,并将输入PIN数据长度作为处理后输入PIN的一部分,将参考PIN数据长度作为处理后参考PIN的一部分,能够避免不同的输入PIN和参考PIN经过数据长度的处理后而相同,从而在保证设备安全性的同时,保证了 PIN数据验证时的准确性。从以上的描述中,可以看出,本发明实现了如下技术效果在输出认证成功或认证失败的信息之前,身份认证设备执行相同的步骤,从而能够防止攻击者通过分析执行认证步骤消耗的能量而窃取到PIN,能够防止对身份认证设备的SPA攻击,提高了身份认证设备的安全性。需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的身份认证设备中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
权利要求
1.一种身份认证设备的认证处理方法,其特征在于,包括获取输入PIN和参考PIN;对所述输入PIN和所述参考PIN按位进行逻辑运算,以得到运算结果;根据所述运算结果判断所述输入PIN和所述参考PIN是否相等;当所述输入PIN和所述参考PIN相等时,输出认证成功的信息,当所述输入PIN和所述参考PIN不相等时,输出认证失败的信息。
2.根据权利要求1所述的身份认证设备的认证处理方法,其特征在于,在对所述输入 PIN和所述参考PIN按位进行逻辑运算之前,所述方法还包括对所述输入PIN和所述参考PIN进行数据处理,以使处理后的输入PIN与处理后的参考PIN的长度相等,其中,对所述输入PIN和所述参考PIN按位进行逻辑运算包括对所述处理后的输入 PIN和所述处理后的参考PIN按位进行逻辑运算。
3.根据权利要求2所述的身份认证设备的认证处理方法,其特征在于,对所述输入PIN 和所述参考PIN进行数据处理包括计算所述输入PIN和所述参考PIN的长度值;将所述输入PIN的长度值与所述输入PIN按照预设方法组装为第一数据;将所述参考PIN的长度值与所述参考PIN按照所述预设方法组装为第二数据;对所述第一数据和/或所述第二数据进行数据填充,以使所述第一数据和所述第二数据的长度相等,其中,数据填充后的第一数据为所述处理后的输入PIN,填充处理后的第二数据为所述处理后的参考PIN。
4.根据权利要求1至3中任一项所述的身份认证设备的认证处理方法,其特征在于, 对所述输入PIN和所述参考PIN按位进行逻辑运算包括对所述输入PIN和所述参考PIN按位进行异或操作,得到异或值;对所述异或值所有位进行或操作,得到单字节信息, 其中,所述单字节信息为所述运算结果,根据所述运算结果判断所述输入PIN和所述参考PIN是否相等包括判断所述单字节信息是否为0,其中,当所述单字节信息为O时,所述输入PIN和所述参考PIN相等,当所述单字节信息为I时,所述输入PIN和所述参考PIN不等。
5.根据权利要求4所述的身份认证设备的认证处理方法,其特征在于,在获取输入PIN和参考PIN之前,所述方法还包括判断存储的认证次数是否大于预设次数,其中,当所述存储的认证次数小于所述预设次数时,获取所述输入PIN和所述参考 PIN ;在获取输入PIN和参考PIN之后,判断所述输入PIN和所述参考PIN是否相等之前,所述方法还包括将所述存储的认证次数加I ;当所述输入PIN和所述参考PIN相等时,所述方法还包括将所述存储的认证次数清零。
6.一种身份认证设备的认证处理装置,其特征在于,包括获取模块,用于获取输入PIN和参考PIN ;第一处理模块,用于对所述输入PIN和所述参考PIN按位进行逻辑运算,以得到运算结果;第一判断模块,用于根据所述运算结果判断所述输入PIN和所述参考PIN是否相等; 输出模块,用于当所述输入PIN和所述参考PIN相等时,输出认证成功的信息,当所述输入PIN和所述参考PIN不相等时,输出认证失败的信息。
7.根据权利要求6所述的身份认证设备的认证处理装置,其特征在于,所述装置还包括第二处理模块,用于对所述输入PIN和所述参考PIN进行数据处理,以使处理后的输入 PIN与处理后的参考PIN的长度相等,其中,所述第一处理模块还用于对所述处理后的输入PIN和所述处理后的参考PIN按位进行逻辑运算。
8.根据权利要求7所述的身份认证设备的认证处理装置,其特征在于,所述第二处理模块包括计算子模块,用于计算所述输入PIN和所述参考PIN的长度值;第一处理子模块,用于将所述输入PIN的长度值与所述输入PIN按照预设方法组装为第一数据;第二处理子模块,用于将所述参考PIN的长度值与所述参考PIN按照所述预设方法组装为第二数据;第三处理子模块,用于对所述第一数据和/或所述第二数据进行数据填充,以使所述第一数据和所述第二数据的长度相等,其中,数据填充后的第一数据为所述处理后的输入PIN,填充处理后的第二数据为所述处理后的参考PIN。
9.根据权利要求6至8中任一项所述的身份认证设备的认证处理装置,其特征在于, 所述第一处理模块包括第四处理子模块,用于对所述输入PIN和所述参考PIN按位进行异或操作,得到异或值;第五处理子模块,用于对所述异或值所有位进行或操作,得到单字节信息,所述第一判断模块包括判断子模块,用于判断所述单字节信息是否为O ;第一确定子模块,用于当所述单字节信息为O时,确定所述输入PIN和所述参考PIN相等;第二确定子模块,用于当所述单字节信息为I时,确定所述输入PIN和所述参考PIN不等。
10.根据权利要求9所述的身份认证设备的认证处理装置,其特征在于,还包括存储模块,用于存储身份认证设备的认证次数;第二判断模块,用于在所述获取模块获取输入PIN和参考PIN之前,判断所述存储模块中的认证次数是否大于预设次数;修改模块,用于在获取输入PIN和参考PIN之后,判断所述输入PIN和所述参考PIN是否相等之前,将所述存储模块中存储的认证次数加1,在所述输入PIN和所述参考PIN相等时,将所述存储模块中存储的认证次数清零,其中,所述获取模块用于当所述存储的认证次数小于所述预设次数时,获取所述输入 PIN和所述参考PIN。
11.一种身份认证设备,其特征在于,包括权利要求6至10中任一项所述身份认证设备的认证处理装置。
全文摘要
本发明公开了一种身份认证设备及其认证处理方法和处理装置。该方法包括获取输入PIN和参考PIN;对输入PIN和参考PIN按位进行逻辑运算,以得到运算结果;根据运算结果判断输入PIN和参考PIN是否相等;当输入PIN和参考PIN相等时,身份认证设备输出认证成功的信息,当输入PIN和参考PIN不相等时,身份认证设备输出认证失败的信息。通过本发明,能够防止攻击者通过分析执行认证步骤消耗的能量而窃取到PIN,能够防止对身份认证设备的SPA攻击,提高了身份认证设备的安全性。
文档编号G06F21/34GK103049688SQ20131003036
公开日2013年4月17日 申请日期2013年1月25日 优先权日2013年1月25日
发明者周军, 牛纪祥 申请人:北京天诚盛业科技有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1