一种在嵌入式系统中生成动态口令的方法及装置制造方法及图纸

技术编号:7917841 阅读:146 留言:0更新日期:2012-10-25 02:52
本发明专利技术公开了一种在嵌入式系统中生成动态口令的方法及装置,涉及身份认证领域,该方法包括:CPU检测到生成动态口令的预设条件,根据计时器得到当前动态值;生成寻址指针的值,并根据所述当前动态值或所述寻址指针的值判断是否需要生成固定长度数据串,是则生成当前动态因子,并调用静态因子,根据所述当前动态因子和所述静态因子生成所述固定长度数据串并存储在第一存储区,根据所述寻址指针的值查找对应的数据段作为动态口令输出;否则直接根据所述寻址指针的值在第一存储区中查找到对应的数据段作为动态口令输出。通过本发明专利技术方案减缓了动态口令的频繁生成对硬件的损耗,且降低了生成动态口令的耗时。

【技术实现步骤摘要】

本专利技术涉及身份认证领域,尤其涉及一种在嵌入式系统中生成动态口令的方法与 装置。
技术介绍
现有技术中,动态口令每生成一次都要求对动态因子做一次运算,而由动态因子得到动态口令的运算为较复杂运算,倘若需要动态口令频繁生成,则其运算费时且对硬件损耗较大,尤其对于常显的动态令牌,每隔固定时间计算一次动态口令,如何降低动态口令生成时间及硬件损耗亟待解决的问题。
技术实现思路
本专利技术目的是解决目前现有技术中动态口令频繁生成对硬件损耗较大且耗时较长的问题,根据本专利技术的一方面,提供了一种在嵌入式系统中生成动态口令的方法,包括步骤SI =CPU检测到生成动态口令的预设条件;步骤S2 :根据计时器得到当前动态值;步骤S3 :根据所述当前动态值和/或第一预设值生成寻址指针的值,并根据所述当前动态值或所述寻址指针的值判断是否需要生成固定长度的数据串,是则执行步骤S4,否则执行步骤S6 ;步骤S4:生成当前动态因子,调用预置在第一存储器中的静态因子,对所述当前动态因子及所述静态因子进行处理生成固定长度数据串,并用所述固定长度数据串更新第一缓存区中的数据;步骤S5 :根据所述第一预设值对所述第一缓存区中的数据进行分段;步骤S6 :根据所述寻址指针的值,在分段的所述第一缓存区中查找相应的数据段,并将查找到的数据段的值作为动态口令输出。其中,所述计时器为定时触发器,每隔预设时间触发一次;所述预设条件为所述定时触发器触发信号。或者,所述计时器设有最大值及溢标志位,所述预设条件为所述计时器的溢出标志位置位;所述步骤Si中检测到所述预设条件后还包括将所述计时器的溢出标志位复位。或者,所述预设条件为所述计时器计时达到预设时间,所述步骤SI中所述CPU检测到所述预设条件后还包括将所述计时器清零,重新开始计时。进一步地,所述步骤S2中所述根据计时器得到当前动态值具体为所述计时器满足所述预设条件后,计数器计数一次,所述CPU获取所述计数器的计数值得到所述当前动态值。其中,所述计数器为从0到所述第一预设值的循环计数器,获取到的所述当前动态值即所述寻址指针的值,所述步骤S3中判断是否生成固定长度的数据串具体为所述CPU判断所述计数器的计数值或所述寻址指针的值是否为O,是则需要生成所述固定长度数据串,否则不需要。进一步地,当所述CPU判断需要生成固定长度数据串时,所述步骤S4中生成所述当前动态因子具体为将第二缓存区中的数据自增一个第二预设值得到所述当前动态因子,并用所述当前动态因子更新第二缓存区;所述步骤S5中根据所述第一预设值对所述第一缓存区中的数据进行分段具体为将所述第一缓存区中的数据进行等长分段,所分段数大于或等于所述第一预设值加I的值。进一步地,所述步骤S3具体为所述CPU用所述当前动态值对所述第一预设值进行取模运算,得到所述寻址指针的值,并赋值给寻址指针;判断所述寻址指针的值是否为0,是则需要生成固定长度的数据串,否则不需要生成固定长度的数据串。 进一步地,当所述CPU判断需要生产固定长度数据串时,所述步骤S4中生成所述当前动态因子具体为获取当前动态值将其作为当前动态因子;所述步骤S5中根据所述第一预设值对所述第一缓存区中的数据进行分段具体为将所述第一缓存区中的数据进行等长分段,所分段数大于或等于所述第一预设值。其中,所述计数器设有初始值,所述CPU将计数器的初始值存储于第二存储器,所述步骤S3具体为所述CPU根据所述第一预设值,分别获取所述当前动态值与所述计数器初始值的低位端相应比特位数的数据,用得到的当前动态值的低位端数据减所述计数器初始值的低位端数据得到所述寻址指针的值,并将所述寻址指针的值赋值给寻址指针;判断所述寻址指针的值是否为0,是则需要生成固定长度的数据串,否则不需要生成固定长度的数据串。进一步地,当所述CPU判断需要生产固定长度数据串时,所述步骤S4中生成当前动态因子具体为获取当前动态值并将其作为当前动态因子;步骤S5中根据所述第一预设值对所述第一缓存区中的数据进行分段具体为所述CPU对所述第一缓存区的数据进行等长分段,所分段数大于或等于第三预设值,所述第三预设值为以2为底数、以所述第一预设值为幂数的计算结果。其中,所述步骤SI具体为所述CPU接收到按键触发生成动态口令生成指令。进一步地,所述步骤S2中根据计时器生成所述当前动态值具体为所述CPU获取计时器所计时间,并根据预设时间对所述当前动态值进行处理,得到当前动态值。进一步地,所述步骤S3具体包括所述CPU用得到的当前动态值对所述第一预设值进行取模运算,得到寻址指针的值,并赋值给寻址指针;判断当前动态值与所述寻址指针的值的差值与第二缓存区中存储的数据是否一致,是则不需要生成固定长度的数据串,否则需要生成。进一步地,当所述CPU判断需要生成固定长度的数据串时,所述步骤S4中的生成当前动态因子具体为用当前动态值减去寻址指针的值得到当前动态因子,所述步骤S4之后还包括所述CPU用所述当前动态因子更新所述第二缓存区中的数据;所述步骤S5中根据所述第一预设值对所述第一缓存区中的数据进行分段具体为将所述第一缓存区中的数据进行等长分段,所分段数大于或等于所述第一预设值。其中,所述静态因子为密钥,所述步骤S4中对当前动态因子及所述静态因子进行处理生成固定长度数据串具体包括步骤a:所述CPU将当前动态因子及所述静态因子组合,根据组合得到的数据的比特位数对组合得到的数据进行填充,得到原始数据,并将所述原始数据缓存在第三缓存区;步骤b 对一组字寄存器设置初始值;步骤c :按照512个比特位对所述第三缓存区中的数据按进行分段,并将偏移指针初始位置指向第一段数据; 步骤d:根据所述原始数据的当前段数据进行消息扩展,生成一组字数据;步骤e :所述CPU对所述一组字寄存器中当前数据及所述一组字数据进行处理,并用处理结果更新所述一组字寄存器中的数据;步骤f :判断所述原始数据的当前段数据是否为最后一段数据,是则执行步骤g,否则将偏移指针右移指向原始数据的下一段数据,返回步骤d ;步骤g :获取所述一组字寄存器存储的数据,得到所述固定长度数据串。其中,所述根据组合得到的数据的比特位数对组合得到的数据进行填充,具体包括用所述组合得到数据的比特位数作为填充数据,填充得到的所述原始数据的比特位数为512的整数倍。其中,所述一组字寄存器可以为5个或8个字寄存器;当所述一组字寄存器为5个时,所述步骤d中生成的所述一组字为79个字数据;当所述一组字寄存器为8个时,所述步骤d中生成的所述一组字为132个字数据。进一步地,所述步骤d具体包括 将所述原始数据的当前段数据每32位划分为一个字数据,得到16个字数据,顺序对已得到的字数据进行异或和/或与运算和/或模加运算和/或移位得到所述一组字。其中,所述步骤e中CPU对所述一组字寄存器中当前数据及所述一组字进行处理具体为对所述一组字数据中不同字数据及所述一组字寄存器中不同寄存器中的数据进行异或运算、与运算、模加运算、移位操作,并不断用操作结果更新所述一组字寄存器中的数据,直到历遍所述一组字中所有的字。根据本专利技术的另一方面,提供了又一种在嵌入式系统中生成动态口令的方法,包括A =CPU检测到生成动态口令的预设条件;B :所述CPU判断预设分段的第一缓存区中是否存在数据本文档来自技高网...

【技术保护点】
一种在嵌入式系统中生成动态口令的方法,其特征在于,包括:步骤S1:CPU检测到生成动态口令的预设条件;步骤S2:根据计时器得到当前动态值;步骤S3:根据所述当前动态值和/或第一预设值生成寻址指针的值,并根据所述当前动态值或所述寻址指针的值判断是否需要生成固定长度的数据串,是则执行步骤S4,否则执行步骤S6;步骤S4:生成当前动态因子,调用预置在第一存储器中的静态因子,对所述当前动态因子及所述静态因子进行处理生成固定长度数据串,并用所述固定长度数据串更新第一缓存区中的数据;步骤S5:根据所述第一预设值对所述第一缓存区中的数据进行分段;步骤S6:根据所述寻址指针的值,在分段的所述第一缓存区中查找相应的数据段,并将查找到的数据段的值作为动态口令输出。

【技术特征摘要】

【专利技术属性】
技术研发人员:陆舟于华章
申请(专利权)人:飞天诚信科技股份有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1