一种动态口令的生成及认证方法与系统.pdf

上传人:00****42 文档编号:4329983 上传时间:2018-09-13 格式:PDF 页数:21 大小:4.05MB
返回 下载 相关 举报
摘要
申请专利号:

CN201210337308.6

申请日:

2012.09.12

公开号:

CN102843236A

公开日:

2012.12.26

当前法律状态:

授权

有效性:

有权

法律详情:

授权|||实质审查的生效IPC(主分类):H04L 9/32申请日:20120912|||公开

IPC分类号:

H04L9/32

主分类号:

H04L9/32

申请人:

飞天诚信科技股份有限公司

发明人:

陆舟; 于华章

地址:

100085 北京市海淀区学清路9号汇智大厦B座17层

优先权:

专利代理机构:

代理人:

PDF下载: PDF下载
内容摘要

本发明公布了一种动态口令生成及认证的方法及系统,涉及身份认证领域,包括:令牌接收到生成动态口令命令,根据第一计时器生成第一动态因子;根据第一偏移指针从第一数据组中获取当前数据,并根据第一动态因子、当前数据生成第一动态口令;服务器接收到用户输入的第二动态口令,根据第二计时器得到第二动态因子;根据第二动态因子及认证窗口值,得到认证窗口;根据所述认证窗口中的动态因子及第二数据组中的各数据,计算生成一组动态口令,验证所述一组动态口令中是否存在与所述第二动态口令一致的动态口令。通过上述方案,解决了时间型令牌不能在短时间内多次生成的问题,又避免了事件型令牌不断生成动态口令与服务器产生失步的情况。

权利要求书

1.一种动态口令的生成及认证方法,其特征在于, 包括:S1:令牌接收到生成动态口令命令,根据所述令牌内部的第一计时器所计时间生成第一动态因子;所述令牌检查到预设条件时,对所述第一偏移指针进行初始化;S2:所述令牌判断第一偏移指针是否为无效状态,是则报错,否则继续;S3:所述令牌根据所述第一偏移指针从第一数据组中获取当前数据,调用预设算法,根据所述第一动态因子、所述当前数据,计算得到第一动态口令,并判断所述当前数据是否为所述第一组数据组中的最后一个数据,是则将所述第一偏移指针设为无效状态,否则将所述第一偏移指针指向当前数据的下一个数据;S4:服务器接收到用户输入的第二动态口令,根据服务器内部的第二计时器所计时间得到第二动态因子;S5:根据所述第二动态因子及认证窗口值,生成一组动态因子,得到认证窗口;S6:调用所述预设算法,根据所述认证窗口中的动态因子及服务器内部存储的第二数据组中的各数据,计算生成一组动态口令,验证所述一组动态口令中是否存在与所述第二动态口令一致的动态口令,是则认证通过,否则认证失败。2.如权利要求1所述的方法,其特征在于,所述第一数据组与所述第二数据组一致,包含预设个数的有顺序且各不相同的数据;所述当前数据为所述第一偏移指针指向的数据。3.如权利要求2所述的方法,其特征在于,所述步骤S1中根据所述令牌内部的第一计时器所计时间生成第一动态因子具体为:用所述第一计时器所计秒数除以第一预设时长值,对得到的商取整得到所述第一动态因子;所述步骤S4中,根据服务器内部的第二计时器所计时间得到第二动态因子具体为:用所述第二计时器所计秒数除以所述第一预设时长值,对得到的商取整得到所述第二动态因子。4.如权利要求3所述的方法,其特征在于,所述令牌检查到预设条件时,对所述第一偏移指针进行初始化具体为:所述令牌实时监测所述第一计时器所计时间,每隔所述第一预设时长,对所述第一偏移指针进行初始化;所述对所述第一偏移指针进行初始化具体为:将所述第一偏移指针指向所述第一数据组中的第一个数据。5.如权利要求3所述的方法,其特征在于,所述令牌检查到预设条件时,对所述第一偏移指针进行初始化具体为:所述令牌生成第一动态因子之后,判断所述第一动态因子与第一缓存区中的数据是否一致,若不一致则对所述第一偏移指针进行初始化;所述令牌对所述第一偏移指针进行初始化之后,用所述第一动态因子更新所述第一缓存区中的数据;所述对所述第一偏移指针进行初始化具体为:将所述第一偏移指针指向所述第一数据组中的第一个数据。6.如权利要求2所述的方法,其特征在于,所述步骤S6中计算生成一组动态口令具体为:调用所述预设算法,对所述认证窗口中的每个动态因子与第二数据中的各个数据的组合得到的数据分别进行计算,得到所述一组动态口令。7.如权利要求2所述的方法,其特征在于,所述步骤S6具体包括:步骤a:按预设顺序调用所述认证窗口中的第一个动态因子;步骤b:依次将所述第二数据组中的各个数据与调用的动态因子组合,调用预设算法对组合得到的各个数据进行计算得到所述一组动态口令;步骤c:验证所述一组动态口令中是否存在与所述第二动态口令一致的动态口令,是则认证通过,否则执行步骤d;步骤d:判断所述调用的动态因子是否为所述认证窗口中的最后一个动态因子,是则认证失败,否则调用下一个动态因子,返回步骤b。8.如权利要求6或7所述的方法,其特征在于,所述步骤S6中,当验证所述一组动态口令中存在与所述第二动态口令一致的动态口令时,还包括:S7:所述服务器调用第二缓存区中的数据,将与所述第二动态口令一致的动态口令对应的动态因子与所述第二缓存区中的数据进行比较,若大于,则认证通过,执行步骤S8;若小于,则认证失败;若等于则执行S9;S8:用与所述第二动态口令一致的动态口令对应的动态因子更新所述第二缓存区中的数据,并设置第二偏移指针指向第二数据组中与所述第二动态口令一致的动态口令对应的数据;S9:判断与所述第二动态口令一致的动态口令对应的数据在第二数据组中的顺序是否在所述第二偏移指针指向的数据之后,是则认证通过,设置第二偏移指针指向第二数据组中与所述第二动态口令一致的动态口令对应的数据,否则认证失败。9.如权利要求1所述的方法,其特征在于,所述步骤S1之后还包括令牌提示用户输交易账号、交易金额、挑战码的步骤;所述步骤S4之前还包括服务器生成挑战码的步骤;所述步骤S3中根据所述第一动态因子、所述当前数据,计算得到第一动态口令具体为:将所述第一动态因子、所述当前数据与令牌密钥、用户输入令牌的账号、金额、挑战码进行组合,并用所述预设算法对组合得到的数据进行计算得到所述第一动态口令;所述步骤S6中调用所述预设算法,根据所述认证窗口中的动态因子及服务器内部存储的第二数据组中的各数据,计算生成一组动态口令具体为:依次将所述认证窗口中的各个动态因子与第二数据组中的各数据、令牌密钥、服务器接收到的用户输入的账号、金额、服务器生成的挑战码分别进行组合,并用所述预设算法对组合得到的各数据分别进行计算得到所述一组动态口令。10.如权利要求1所述的方法,其特征在于,所述步骤S6中生成一组动态口令具体包括: 将第二缓存区中的数据与所述认证窗口中的动态因子进行比对,从所述认证窗口中获取等于或大于所述第二缓存区中的数据的动态因子;依次将大于所述第二缓存区中的数据的各动态因子与所述第二数据组中的各个数据分别进行组合,调用所述预设算法对组合得到的数据分别进行计算,得到第一部分动态口令;将等于所述第二缓存区中的数据的动态因子分别与所述第二数据组中第二偏移指针指向的数据之后的各个数据分别进行组合,调用所述预设算法,对组合得到各数据分别进行计算得到第二部分动态口令;所述第一部分动态口令与所述第二部分动态口令组成所述一组动态口令。11.如权利要求10所述的方法,其特征在于,所述步骤S6中,当验证所述一组动态口令中存在与所述第二动态口令一致的动态口令时,还包括:用与所述第二动态口令一致的动态口令对应的动态因子更新所述第二缓存区中的数据,并将所述第二偏移指针指向与所述第二动态口令一致的动态口令对应的第二数据组中的数据。12.一种动态口令的生成及认证系统,其特征在于,包括令牌和服务器,所述令牌包括:第一接收模块,用于接收生成动态口令命令;第一生成模块,用于当所述第一接收模块接收到生成动态口令命令时,根据令牌内部的第一计时器所计时间生成第一动态因子;操作模块,用于每隔第一预设时长,对所述第一偏移指针初始化一次;或者当判断所述第一动态因子与第一缓存区中的数据不一致时,对所述第一偏移指针进行初始化,并用所述第一动态因子更新第一缓存区中的数据;第一计算模块,用于根据所述第一偏移指针从第一数据组中获取当前数据,调用预设算法,根据所述第一动态因子及所述当前数据,计算得到第一动态口令;第一判断模块,用于在所述第一计算模块计算得到第一动态口令后,判断当前数据是否为第一数据组中的最后一个数据;设置模块,用于当所述当前数据不为最后一个数据时,将所述第一偏移指针指向所述第一数据组中当前数据的下一个数据;当所述当前数据为最后一个数据时,将所述第一偏移指针设为无效状态,等待初始化;所述服务器包括:第二接收模块,用于接收用户通过主机输入的第二动态口令;第二生成模块,用于根据所述服务器内部的第二计时器所计时间得到第二动态因子;并根据所述第二动态因子及认证窗口值,生成一组动态因子,得到认证窗口;第二计算模块,用于调用所述预设算法,根据所述认证窗口中的动态因子及服务器内部存储的第二数据组中的各数据,计算生成一组动态口令;验证模块:用于验证所述一组动态口令中是否存在与所述第二动态口令一致的动态口令。13.如权利要求12所述的系统,其特征在于,所述第二计算模块包括:第一调用单元,用于调用所述预设算法及所述认证窗口中的第一动态因子;第一组合单元,用于依次将所述认证窗口中的各个动态因子与所述第二数据组中的各个数据分别进行组合;第一处理单元,用于用所述预设算法对所述第一组合单元组合得到的各数据分别进行计算,得到所述一组动态口令。14.如权利要求12所述的系统,其特征在于,所述第二计算模块包括:第二调用单元,用于调用所述预设算法及依次调用所述认证窗口中的动态因子;第二组合单元,用于将所述第二数据组中的各个数据分别与调用的动态因子组合;第二处理单元,用于用所述预设算法对所述组合单元组合得到的数据进行计算得到所述一组动态口令;所述验证模块包括:第一验证单元,用于验证所述第二处理单元计算得到的所述一组动态口令中,是否存在与所述第二动态口令一致的动态口令;第一判断单元,用于当所述第一验证单元验证所述一组动态口令中不存在与所述第二动态口令一致的动态口令时,判断调用的动态因子是否为所述认证窗口中的最后一个动态因子,当判断当前动态因子不为最后一个动态因子时,调用下一个动态因子,所述第二组合单元工作。15.如权利要求13或14所述的系统,其特征在于,所述系统还包括:比较模块,用于当所述验证模块验证所述一组动态口令中有与所述第二动态口令一致的动态口令时,将与所述第二动态口令一致的动态口令对应的动态因子与第二缓存区中的数据进行比较,若大于则认证通过,第一更新模块工作,若小于则认证失败,若等于则第二判断模块工作;所述第一更新模块,用于用与所述第二动态口令一致的动态口令对应的动态因子更新所述第二缓存区中的数据,并设置第二偏移指针指向所述第二数据组中与所述第二动态口令一致的动态口令对应的数据;所述第二判断模块,用于判断在所述第二数据组中与所述第二动态口令一致的动态口令对应的数据在第二数据组中的顺序是否在所述第二偏移指针指向的数据之后,是则认证通过,设置第二偏移指针指向第二数据组中与所述第二动态口令一致的动态口令对应的数据,否则认证失败。16.如权利要求12所述的系统,其特征在于,所述第二计算模块包括:查找单元,用于从所述认证窗口中查找到等于或大于第二缓存区中的数据的动态因子;第三处理单元,用于将大于所述第二缓存区中的数据的动态因子依次分别与所述第二数据组中的各个数据进行组合,调用所述预设算法对组合得到的数据分别进行计算,得到第一部分动态口令;将等于所述第二缓存区中的数据的动态因子分别与所述第二数据组中第二偏移指针指向的数据之后的各个数据进行组合,调用所述预设算法,对组合得到各数据分别进行计算得到第二部分动态口令;将所述第一部分动态口令与所述第二部分动态口令组成所述一组动态口令。17.如权利要求16所述的系统,其特征在于,所述系统还包括:第二更新模块,用于当所述验证模块验证所述一组动态口令中存在与所述第二动态口令一致的动态口令时,用与所述第二动态口令一致的动态口令对应的动态因子更新所述第二缓存区中的数据,并将所述第二偏移指针指向与所述第二动态口令一致的动态口令对应的第二数据组中的数据。18.如权利要求12所述的系统,其特征在于, 所述第一接收模块还用于接收用户输入令牌的数据;所述第二接收模块还用于接收用户通过主机输入到服务器的数据;所述第二生成模块还用于生成挑战码。19.如权利要求18所述的系统,其特征在于,所述第一计算模块包括:第三组合单元,用于将所述第一动态因子、所述当前数据、令牌密钥与用户输入令牌的数据进行组合;第四处理单元,用于调用所述预设算法对所述第三组合单元组合得到的数据进行计算得到所述第一动态口令。

说明书

一种动态口令的生成及认证方法与系统

技术领域

本发明涉及身份认证领域,特别涉及一种动态口令的生成及认证方法
与系统

背景技术

动态口令在身份认证领域的应用日益广泛,现有技术中,动态口令分
为时间型动态口令、事件型动态口令及挑战应答型动态口令。普通时
间型动态口令或者带时间参与计算的挑战应答型动态口令,在一个动
态口令变化周期仅能产生一个动态口令,出于安全性考虑,如果口令
被认证服务器认证通过后,就不能重复使用了。如果想进行认证,必
须等待一段时间,等到达下一个时间周期开始,生成下一个不同的动
态口令才能进行,不能满足在短时间内进行多次身份认证的场合的需
要;

普通事件型的动态口令,存在动态令牌不断产生动态口令而不与服务
器做认证时,令牌与服务器失步的情况,且普通事件型的动态口令引
入的次数为可预测动态因子,存在一定的安全隐患。

发明内容

为解决现有技术中存在的问题,本发明提供了一种动态口令的生成及
认证方法及系统,引入一组数据,参与时间型动态口令的产生,且在
一个时间周期内该组数据中的各个数据可以循环参与动态口令的生成

根据本发明的一方面,提供了一种动态口令生成及认证的方法,包括

S1:令牌接收到生成动态口令命令,根据所述令牌内部的第一计时器
所计时间生成第一动态因子;

所述令牌检查到预设条件时,对所述第一偏移指针进行初始化;

S2:所述令牌判断第一偏移指针是否为无效状态,是则报错,否则继
续;

S3:所述令牌根据所述第一偏移指针从第一数据组中获取当前数据,
调用预设算法,根据所述第一动态因子、所述当前数据,计算得到第
一动态口令,并判断所述当前数据是否为所述第一组数据组中的最后
一个数据,是则将所述第一偏移指针设为无效状态,否则将所述第一
偏移指针指向当前数据的下一个数据;

S4:服务器接收到用户输入的第二动态口令,根据服务器内部的第二
计时器所计时间得到第二动态因子;

S5:根据所述第二动态因子及认证窗口值,生成一组动态因子,得到
认证窗口;

S6:调用所述预设算法,根据所述认证窗口中的动态因子及服务器内
部存储的第二数据组中的各数据,计算生成一组动态口令,验证所述
一组动态口令中是否存在与所述第二动态口令一致的动态口令,是则
认证通过,否则认证失败。

具体地,所述第一数据组与所述第二数据组一致,包含预设个数的有
顺序且各不相同的数据;

所述当前数据为所述第一偏移指针指向的数据。

进一步地,所述步骤S1中根据所述令牌内部的第一计时器所计时间生
成第一动态因子具体为:用所述第一计时器所计秒数除以第一预设时
长值,对得到的商取整得到所述第一动态因子;

所述步骤S4中,根据服务器内部的第二计时器所计时间得到第二动态
因子具体为:用所述第二计时器所计秒数除以所述第一预设时长值,
对得到的商取
整得到所述第二动态因子。

其中,所述令牌检查到预设条件时,对所述第一偏移指针进行初始化
具体为:所述令牌实时监测所述第一计时器所计时间,每隔所述第一预
设时长,对所述第一偏移指针进行初始化;

所述对所述第一偏移指针进行初始化具体为:将所述第一偏移指针指
向所述第一数据组中的第一个数据。

或者,所述令牌检查到预设条件时,对所述第一偏移指针进行初始化
具体为:所述令牌生成第一动态因子之后,判断所述第一动态因子与
第一缓存区中的数据是否一致,若不一致则对所述第一偏移指针进行
初始化;

所述令牌对所述第一偏移指针进行初始化之后,用所述第一动态因子
更新所述第一缓存区中的数据;

所述对所述第一偏移指针进行初始化具体为:将所述第一偏移指针指
向所述第一数据组中的第一个数据。

进一步地,所述步骤S6中计算生成一组动态口令具体为:调用所述预
设算法,对所述认证窗口中的每个动态因子与第二数据中的各个数据
的组合得到的数据分别进行计算,得到所述一组动态口令。

或者,所述步骤S6具体包括:

步骤a:按预设顺序调用所述认证窗口中的第一个动态因子;

步骤b:依次将所述第二数据组中的各个数据与调用的动态因子组合,
调用预设算法对组合得到的各个数据进行计算得到所述一组动态口令

步骤c:验证所述一组动态口令中是否存在与所述第二动态口令一致的
动态口令,是则认证通过,否则执行步骤d;

步骤d:判断所述调用的动态因子是否为所述认证窗口中的最后一个动
态因
子,是则认证失败,否则调用下一个动态因子,返回步骤b。

进一步地,所述步骤S6中,当验证所述一组动态口令中存在与所述第
二动态口令一致的动态口令时,还包括:

S7:所述服务器调用第二缓存区中的数据,将与所述第二动态口令一
致的动态口令对应的动态因子与所述第二缓存区中的数据进行比较,
若大于,则认证通过,执行步骤S8;若小于,则认证失败;若等于则
执行S9;

S8:用与所述第二动态口令一致的动态口令对应的动态因子更新所述
第二缓存区中的数据,并设置第二偏移指针指向第二数据组中与所述
第二动态口令一致的动态口令对应的数据;

S9:判断与所述第二动态口令一致的动态口令对应的数据在第二数据
组中的顺序是否在所述第二偏移指针指向的数据之后,是则认证通过
,设置第二偏移指针指向第二数据组中与所述第二动态口令一致的动
态口令对应的数据,否则认证失败。

优选地,所述步骤S1之后还包括令牌提示用户输交易账号、交易金额
、挑战码的步骤;

所述步骤S4之前还包括服务器生成挑战码的步骤;

所述步骤S3中根据所述第一动态因子、所述当前数据,计算得到第一
动态口令具体为:

将所述第一动态因子、所述当前数据与令牌密钥、用户输入令牌的账
号、金额、挑战码进行组合,并用所述预设算法对组合得到的数据进
行计算得到所述第一动态口令;

所述步骤S6中调用所述预设算法,根据所述认证窗口中的动态因子及
服务器内部存储的第二数据组中的各数据,计算生成一组动态口令具
体为:

依次将所述认证窗口中的各个动态因子与第二数据组中的各数据、令
牌密钥、服务器接收到的用户输入的账号、金额、服务器生成的挑战
码分别进行组合,并用所述预设算法对组合得到的各数据分别进行计
算得到所述一组动态口令。

或者,所述步骤S6中生成一组动态口令具体包括:

将第二缓存区中的数据与所述认证窗口中的动态因子进行比对,从所
述认证窗口中获取等于或大于所述第二缓存区中的数据的动态因子;

依次将大于所述第二缓存区中的数据的各动态因子与所述第二数据组
中的各个数据分别进行组合,调用所述预设算法对组合得到的数据分
别进行计算,得到第一部分动态口令;将等于所述第二缓存区中的数
据的动态因子分别与所述第二数据组中第二偏移指针指向的数据之后
的各个数据分别进行组合,调用所述预设算法,对组合得到各数据分
别进行计算得到第二部分动态口令;

所述第一部分动态口令与所述第二部分动态口令组成所述一组动态口
令。

进一步地,所述步骤S6中,当验证所述一组动态口令中存在与所述第
二动态口令一致的动态口令时,还包括:

用与所述第二动态口令一致的动态口令对应的动态因子更新所述第二
缓存区中的数据,并将所述第二偏移指针指向与所述第二动态口令一
致的动态口令对应的第二数据组中的数据。

根据本发明的另外一个方面,提供了一种动态口令生成及认证的系统
,包括:令牌和服务器;

所述令牌包括:

第一接收模块,用于接收生成动态口令命令;

第一生成模块,用于当所述第一接收模块接收到生成动态口令命令时
,根
据令牌内部的第一计时器所计时间生成第一动态因子;

操作模块,用于每隔第一预设时长,对所述第一偏移指针初始化一次
;或者当判断所述第一动态因子与第一缓存区中的数据不一致时,对
所述第一偏移指针进行初始化,并用所述第一动态因子更新第一缓存
区中的数据;

第一计算模块,用于根据所述第一偏移指针从第一数据组中获取当前
数据,调用预设算法,根据所述第一动态因子及所述当前数据,计算
得到第一动态口令;

第一判断模块,用于在所述第一计算模块计算得到第一动态口令后,
判断当前数据是否为第一数据组中的最后一个数据;

设置模块,用于当所述当前数据不为最后一个数据时,将所述第一偏
移指针指向所述第一数据组中当前数据的下一个数据;当所述当前数
据为最后一个数据时,将所述第一偏移指针设为无效状态,等待初始
化;

所述服务器包括:

第二接收模块,用于接收用户通过主机输入的第二动态口令;

第二生成模块,用于根据所述服务器内部的第二计时器所计时间得到
第二动态因子;并根据所述第二动态因子及认证窗口值,生成一组动
态因子,得到认证窗口;

第二计算模块,用于调用所述预设算法,根据所述认证窗口中的动态
因子及服务器内部存储的第二数据组中的各数据,计算生成一组动态
口令;

验证模块:用于验证所述一组动态口令中是否存在与所述第二动态口
令一致的动态口令。

进一步地,所述第二计算模块包括:

第一调用单元,用于调用所述预设算法及所述认证窗口中的第一动态
因子;

第一组合单元,用于依次将所述认证窗口中的各个动态因子与所述第
二数据组中的各个数据分别进行组合;

第一处理单元,用于用所述预设算法对所述第一组合单元组合得到的
各数据分别进行计算,得到所述一组动态口令。

或者,所述第二计算模块包括:

第二调用单元,用于调用所述预设算法及依次调用所述认证窗口中的
动态因子;

第二组合单元,用于将所述第二数据组中的各个数据分别与调用的动
态因子组合;

第二处理单元,用于用所述预设算法对所述组合单元组合得到的数据
进行计算得到所述一组动态口令;

所述验证模块包括:

第一验证单元,用于验证所述第二处理单元计算得到的所述一组动态
口令中,是否存在与所述第二动态口令一致的动态口令;

第一判断单元,用于当所述第一验证单元验证所述一组动态口令中不
存在与所述第二动态口令一致的动态口令时,判断调用的动态因子是
否为所述认证窗口中的最后一个动态因子,当判断当前动态因子不为
最后一个动态因子时,调用下一个动态因子,所述第二组合单元工作

进一步地,所述系统还包括:

比较模块,用于当所述验证模块验证所述一组动态口令中有与所述第
二动态口令一致的动态口令时,将与所述第二动态口令一致的动态口
令对应的动态因子与第二缓存区中的数据进行比较,若大于则认证通
过,第一更新模块工作,若小于则认证失败,若等于则第二判断模块
工作;

所述第一更新模块,用于用与所述第二动态口令一致的动态口令对应
的动态因子更新所述第二缓存区中的数据,并设置第二偏移指针指向
所述第二数据组中与所述第二动态口令一致的动态口令对应的数据;

所述第二判断模块,用于判断在所述第二数据组中与所述第二动态口
令一致的动态口令对应的数据在第二数据组中的顺序是否在所述第二
偏移指针指向的数据之后,是则认证通过,设置第二偏移指针指向第
二数据组中与所述第二动态口令一致的动态口令对应的数据,否则认
证失败。

或者,所述第二计算模块包括:

查找单元,用于从所述认证窗口中查找到等于或大于第二缓存区中的
数据的动态因子;

第三处理单元,用于将大于所述第二缓存区中的数据的动态因子依次
分别与所述第二数据组中的各个数据进行组合,调用所述预设算法对
组合得到的数据分别进行计算,得到第一部分动态口令;将等于所述
第二缓存区中的数据的动态因子分别与所述第二数据组中第二偏移指
针指向的数据之后的各个数据进行组合,调用所述预设算法,对组合
得到各数据分别进行计算得到第二部分动态口令;将所述第一部分动
态口令与所述第二部分动态口令组成所述一组动态口令。

进一步地,所述系统还包括:

第二更新模块,用于当所述验证模块验证所述一组动态口令中存在与
所述第二动态口令一致的动态口令时,用与所述第二动态口令一致的
动态口令对应的动态因子更新所述第二缓存区中的数据,并将所述第
二偏移指针指向与所述第二动态口令一致的动态口令对应的第二数据
组中的数据。

所述第一接收模块还用于接收用户输入令牌的数据;

所述第二接收模块还用于接收用户通过主机输入到服务器的数据;

所述第二生成模块还用于生成挑战码。

进一步地,所述第一计算模块包括:

第三组合单元,用于将所述第一动态因子、所述当前数据、令牌密钥
与用户输入令牌的数据进行组合;

第四处理单元,用于调用所述预设算法对所述第三组合单元组合得到
的数据进行计算得到所述第一动态口令。

通过本发明提供的方案,在时间型动态令牌及事件型动态令牌的基础
上,提高了动态口令认证的安全性,且满足了短时间内需要进行多次
身份认证的场合的需要,为身份认证过程中认证模式提供了多种选择

附图说明

图1为本发明实施例1提供的一种动态口令的生成及认证方法流程图;

图2为本发明实施例1提供的一种动态口令的生成及认证方法的另一种
实现过程流程图;

图3为本发明实施例1提供的一种动态口令的生成及认证方法的再一种
实现过程流程图;

图4为本发明实施例2提供的一种动态口令的生成及认证系统方框图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进
行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实
施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技
术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属
于本发明保护的范围。

实施例1

本发明实施例1提供了一种动态口令的生成及认证方法,具体包括:

步骤101:令牌接收到触发生成动态口令的命令;

优选地,在本实施例中,所述生成动态口令的命令可以为按键触发信
息,该步骤之后还可以包括令牌提示用户输入到令牌的挑战码、交易
账号、交易金额等数据。

在本实施例中,所述令牌可以有多种动态口令类型选择,例如有不同
的按键以供用户选择生成登录账户、修改账户信息、转账、交易等类
型的动态口令,并按照与服务器事先约定,提示用户输入相应的数据

步骤102:令牌根据内部第一计时器所计时间及第一预设时长,生成第
一动态因子;

优选地,在本实施例中,所述第一动态因子为所述第一计时器所计时
间包含的完整的所述第一预设时长的个数,具体地,在本实施例中,
生成动态因子具体为:用所述计时器所计时间值除以所述第一预设时
长值,对得到的商取整即得到所述第一动态因子。

步骤103:判断所述第一动态因子是否与第一缓存区中的数据一致,是
则执行步骤104,否则初始化第一偏移指针,并用所述第一动态因子更
新所述第一缓存区中的数据,执行步骤104;

优选地,在本实施例中,所述第一偏移指针指向第一数据组中的某个
数据,当所述第一偏移指针被初始化后,所述第一偏移指针指向所述
第一数据组中的第一个数据。

所述第一缓存区中存储的数据可以为令牌上一次生成动态口令时所生
成的动态因子,还可以为上一次初始化第一偏移指针时对应的动态因
子。

在本实施例中,所述第一偏移指针还可以根据所述计时器所计时间进
行初始化,根据所述计时器,每隔所述第一预设时长将所述第一偏移
指针初始化一次,相应地,删除步骤103,步骤102之后直接执行步骤
104。

步骤104:根据第一偏移指针从所述第一数据组中获取当前数据,并调
用预设算法对当前数据与第一动态因子进行计算,生成第一动态口令
,所述第一偏移指针指向所述第一数据组中当前数据的下一数据;

优选地,在本实施例中,当步骤101之前还包括令牌提示用户输入挑战
码、交易账号、交易金额等数据时,用户输入到令牌的数据、当前数
据、所述第一动态因子、令牌密钥均参与生成动态口令。生成第一动
态口令的具体为:调用预设的算法如SHA1、SM3等,对上述数据组合得
到的数据进行计算,从计算结果中提取预设位数的数据得到所述第一
动态口令。

特别地,在本实施例中,本步骤中所述第一偏移指针指向当前数据的
下一个数据之前还包括:验证当前数据是否为第二数据组中的最后一
个数据,是则将所述第一偏移指针设为无效状态,等待初始化,否则
再将所述第一偏移指针执行当前数据的下一数据。相应地,该步骤之
前还包括令牌判断所述第一偏移指针是否为无效状态的步骤,若为无
效状态则报错,若不为无效状态再执行步骤104。

所述第一数据组中的数据各不相同,顺序、个数固定,可以为一组不
规则的数据,也可以为一组规则变化的数据,如递增、递减的数据等

步骤105:服务器接收到用户输入的第二动态口令,根据服务器内部的
第二计时器所计时间及第一预设时长生成第二动态因子;

优选地,在本实施例中,服务器通过主机接收到用户输入的第二动态
口令。

生成第二动态因子具体为:第二计时器所计时间除以所述预设时长得
到的商
取整后加服务器记录的漂移值得到。

步骤105之前还包括,服务器接收到用户发送的操作请求,通过主机提
示用户输入动态口令的步骤,特别地,当事先约定需要挑战码参与生
成动态口令时,该步骤前还包括服务器生成挑战码的步骤。

步骤106:根据所述第二动态因子及认证窗口值,生成一组动态因子,
得到认证窗口;

优选地,在本实施例中,以所述认证窗口值为2为例,则生成的一组动
态因子包括:所述第二动态因子的值减1得到的第三动态因子、第二动
态因子、所述第二动态因子的值加1得到的第四动态因子。

步骤107:服务器调用认证窗口中的第二动态因子,根据所述第二动态
因子及服务器内部的第二数据组中的各数据,生成第一组动态口令;
 

优选地,在本实施例中,所述第二数据组中的数据、数据个数及数据
顺序与所述第一数据组相同。服务器生成第一组动态口令具体为:调
用预设的算法,将第二动态因子与第二数据组中的各个数据分别进行
组合,对组合得到的各数据分别进行计算得到第一组动态口令;生成
每个动态口令的算法及过程与步骤104中生成方式一致。特别地,当所
述令牌与所述服务器事先约定用户输入的信息或挑战码参与生成动态
口令时,则该步骤中,与令牌生成第一动态口令的实现过程相同,用
户通过主机输入到服务器中的数据及服务器生成的挑战码中相应的数
据参与生成第一组动态口令。

本实施例提供一种优选地方式以清楚说明该生成动态口令的过程,以
所述第二数据组中各数据依次为:0x 00 00 00 00~ 00 00 0
0 09十个数据、第二动态因子为0x 00 00 00 00 01 56 56 
01、挑战码为0x 31 32 33 34 35 36 37 38-39 30、令牌密
钥为0x 80 d0 3f 19 3f e5 0c 2d-de 8a 84 46 bf a
2 88 dc 35 92 65 1c,所
述预设算法SM3为例,具体过程为:将所述密钥与所述第二动态因子顺
序拼接、 再分别与第二数据组中的10个数据分别进行顺序拼接得到
10个拼接数据、分别在10个拼接数据后再拼接挑战码得到10个组合数
据,用所述预设算法对上述10个组合数据分别进行计算,得到10份摘
要,分别从各份摘要中截取低位端4个字节数据,均转化为十进制数,
分别从10个十进制数中截取低位8位数据得到所述第一组动态口令。

步骤108:服务器验证第一组动态口令中是否存在与第二动态口令一致
的动态口令,是则执行步骤111,否则执行步骤109;

步骤109:所述服务器调用认证窗口中的第二动态因子的下一个动态因
子,并根据调用的动态因子及第二数据组,生成第二组动态口令,判
断所述第二组动态口令中是否有与第二动态口令一致的动态口令,是
则执行步骤111,否则执行步骤110;

本实施例中,生成第二组动态口令的过程参见步骤107。

步骤110:所述服务器调用认证窗口中当前调用的动态因子的下一个动
态因子,根据当前调用的动态因子及所述第二数据组生成第三组动态
口令,判断所述第三组动态口令中是否有与所述第二动态口令一致的
动态口令,是则执行步骤111;否则认证失败,报错;

生成第三组动态口令的过程参见步骤107。

优选地,在本实施例中,所述认证窗口值为2, 从而认证窗口中有三
个动态因子,调用动态因子的先后顺序为:先调用第二动态因子、再
第二动态因子加减1得到的动态因子。所述认证窗口值还可以为其他值
,则相应地,所述认证窗口中还包括其他动态因子,在该步骤中第三
组动态口令中没有与所述第二动态口令一致的动态口令时,逐次调用
所述其他动态因子来生成动态口令并认证,
调用其余动态因子的顺序按与第二动态因子差值的绝对值由小到大的
顺序。

步骤111:用与所述第二动态口令一致的动态口令对应的动态因子与服
务器中第二缓存区中的数据比较; 

若对应的动态因子小于第二缓存区中的数据,则认证失败,报错;

若等于,则执行步骤112; 

若大于,则认证通过,用所述对应的动态因子更新第二缓存区中的数
据,并将第二偏移指针初始化。

优选地,在本实施例中,所述第二偏移指针初始化后指向第二数据组
中的第一个数据。

步骤112:判断与所述第二动态口令一致的动态口令对应的第二数据组
中的数据在第二数据组中的顺序是否在第二偏移指针指向的数据之后
,是则认证通过,用所述对应的动态因子的值更新第二缓存区中的数
据,并将第二偏移指针指向所述对应的第二数据组中的数据,否则认
证失败,报错。

优选地,在本实施例中,所述第二偏移指针指向的数据为上一次认证
通过的动态口令对应的第二数据组中的数据。

参见图2,步骤107——步骤110可以替换为:

步骤207:根据第二数据组及认证窗口中的动态因子,生成第四组动态
口令;

优选地,在本实施例中,根据所述认证窗口中的各个动态因子、第二
数据组中的各个数据得到上述第四组动态口令组,具体地,所述第四
组动态口令包括第一组动态口令、第二组动态口令及第三组动态口令
的所有动态口令,生成动态口令的方式参见步骤107。

具体地,在本实施例中,所述认证窗口值为2,所述第二数据组中有1
0个数据,则相应地,将第二动态因子上下浮动1得到三个不同的动态
因子,分别根据三个动态因子与第二数据组中的各个数据生成的第四
组动态口令,得到的所述第四组动态口令组中包含30个动态口令。

步骤208:判断上述第四组动态口令中是否存在与所述第二动态口令一
致的动态口令,是则继续执行步骤111,否则认证失败,报错。

参见图3,优选地,在本实施例中,步骤107——112还可以替换为:

步骤307:判断所述认证窗口中是否存在与所述第二缓存区中的数据一
致的动态因子,

若否,则执行步骤308;

若是,则执行步骤309;

步骤308:根据第二数据组及认证窗口中的各个动态因子,生成第四组
动态口令,执行步骤310;

优选地,该步骤具体参见步骤207。

步骤309:获取所述认证窗口中大于或等于第二缓存区中的数据的动态
因子,根据获取到的各动态因子、第二偏移指针及第二数据组中的各
数据,生成第五组动态口令,执行步骤310;

具体地,在本实施例中,所述认证窗口的值为2,若所述认证窗口中的
第二动态因子与所述第二缓存区中的数据一致,则该步骤具体为:对
第二动态因子与第二数据组中各个数据分别进行计算得到第一部分动
态口令;根据第二偏移指针指向的数据,取该数据之后的各个数据分
别与获取到的大于第二动态因子的各动态因子生成第二部分动态口令
,所述第一部分动态口令与第二部分动态
口令组成所述第五组动态口令。

步骤310:判断生成的一组动态口令中是否存在与所述第二动态口令一
致的动态口令,是则认证通过,用与所述第二动态口令一致的动态口
令对应的动态因子更新第二缓存区中的数据,并将第二偏移指针指向
第二数据组中与第二动态口令一致的动态口令对应的数据,否则认证
失败,报错。

实施例2

参见图4,本发明实施例2提供了一种动态口令的生成及认证系统,包
括令牌和服务器,其中令牌包括:

第一接收模块401,用于接收生成动态口令命令; 

第一生成模块402,用于当所述第一接收模块401接收到生成动态口令
命令时,根据令牌内部的第一计时器所计时间生成第一动态因子;

操作模块403,用于每隔第一预设时长,对所述第一偏移指针初始化一
次;或者当判断所述第一动态因子与第一缓存区中的数据不一致时,
对所述第一偏移指针进行初始化,并用所述第一动态因子更新第一缓
存区中的数据;

第一计算模块404,用于根据第一偏移指针从第一数据组中获取当前数
据,调用预设算法,根据所述第一动态因子及所述当前数据,计算得
到第一动态口令;

第一判断模块405,用于在所述第一计算模块404计算得到第一动态口
令后,判断当前数据是否为第一数据组中的最后一个数据;

设置模块406,用于当所述当前数据不为最后一个数据时,将所述第一
偏移指针指向第一数据组中当前数据的下一个数据;当所述当前数据
为最后一个数据时,将所述第一偏移指针设为无效状态,等待初始化

其中,服务器包括:

第二接收模块407,用于接收用户通过主机输入的第二动态口令;

第二生成模块408,用于根据服务器内部的第二计时器所计时间得到第
二动态因子;并根据所述第二动态因子及认证窗口值,生成一组动态
因子,得到认证窗口;

第二计算模块409,用于调用所述预设算法,根据所述认证窗口中的动
态因子及服务器内部存储的第二数据组中的各数据,计算生成一组动
态口令;

验证模块410,用于验证所述一组动态口令中是否存在与所述第二动态
口令一致的动态口令。

本实施例系统中的服务器还包括:

比较模块411,用于当所述验证模块410验证所述一组动态口令中有与
所述第二动态口令一致的动态口令时,将与所述第二动态口令一致的
动态口令对应的动态因子与第二缓存区中的数据进行比较,若大于则
认证通过,第一更新模块工作412,若小于则认证失败,若等于则第二
判断模块413工作;

所述第一更新模块412,用于用与所述第二动态口令一致的动态口令对
应的动态因子更新所述第二缓存区中的数据,并设置第二偏移指针指
向所述第二数据组中与所述第二动态口令一致的动态口令对应的数据

所述第二判断模块413,用于判断与所述第二动态口令一致的动态口令
对应的数据在第二数据组中的顺序是否在所述第二偏移指针指向的数
据之后,是则认证通过,设置第二偏移指针指向第二数据组中与所述
第二动态口令一致的动态口令对应的数据,否则认证失败。

所述第一接收模块401还用于接收用户输入的令牌数据;

所述第二接收模块407还用于接收用户通过主机输入到服务器的数据;

所述第二生成模块408还用于生成挑战码。

所述第一计算模块404包括:

第三组合单元4041,用于将所述第一动态因子、所述当前数据、令牌
密钥与用户输入令牌的数据进行组合;

第四处理单元4042,用于调用所述预设算法对所述第三组合单元4041
组合得到的数据进行计算得到所述第一动态口令。

所述第二计算模块409包括:

第一调用单元4091,用于调用所述预设算法及所述认证窗口中的第一
动态因子;

第一组合单元4092,用于将所述第二数据组中的各个数据依次分别与
所述认证窗口中的各个动态因子进行组合;

第一处理单元4093,用于用所述预设算法对所述第一组合单元4092组
合得到的各数据分别进行计算,得到所述一组动态口令。

优选地,在本实施例中所述第二计算模块409还可以替换为包括:

第二调用单元,用于调用所述预设算法,用于依次调用所述认证窗口
中的动态因子;

第二组合单元,用于将所述第二数据组中的各个数据分别与调用的动
态因子组合;

第二处理单元,用于用所述预设算法对所述第一组合单元组合得到的
数据进行计算得到所述一组动态口令;

相应地,所述验证模块410包括:

第一验证单元,用于验证所述第二处理单元计算得到的所述一组动态
口令
中是否存在与所述第二动态口令一致的动态口令;

第一判断单元,用于当所述第一验证单元4101验证所述一组动态口令
中不存在与所述第二动态口令一致的动态口令时,判断当前调用的动
态因子是否为所述认证窗口中的最后一个动态因子,当判断当前动态
因子不为最后一个动态因子时,调用下一个动态因子,所述第二组合
单元工作。

或者,所述第二计算模块409包括:

查找单元,用于从所述认证窗口中查找到等于或大于第二缓存区中的
数据的动态因子;

第三处理单元,用于将大于所述第二缓存区中的数据的动态因子依次
分别与所述第二数据组中的各个数据进行组合,调用所述预设算法对
组合得到的数据分别进行计算,得到第一部分动态口令;将等于所述
第二缓存区中的数据的动态因子分别与所述第二数据组中第二偏移指
针指向的数据之后的各个数据进行组合,调用所述预设算法,对组合
得到各数据分别进行计算得到第二部分动态口令;将所述第一部分动
态口令与所述第二部分动态口令组成所述一组动态口令。

相应地,所述系统还包括:

第二更新模块,用于当所述验证模块410验证所述一组动态口令中存在
与所述第二动态口令一致的动态口令时,用与所述第二动态口令一致
的动态口令对应的动态因子更新所述第二缓存区中的数据,并将所述
第二偏移指针指向与所述第二动态口令一致的动态口令对应的第二数
据组中的数据。

以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发
明的精神
和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发
明的保护范围之内。

一种动态口令的生成及认证方法与系统.pdf_第1页
第1页 / 共21页
一种动态口令的生成及认证方法与系统.pdf_第2页
第2页 / 共21页
一种动态口令的生成及认证方法与系统.pdf_第3页
第3页 / 共21页
点击查看更多>>
资源描述

《一种动态口令的生成及认证方法与系统.pdf》由会员分享,可在线阅读,更多相关《一种动态口令的生成及认证方法与系统.pdf(21页珍藏版)》请在专利查询网上搜索。

1、(10)申请公布号 CN 102843236 A (43)申请公布日 2012.12.26 C N 1 0 2 8 4 3 2 3 6 A *CN102843236A* (21)申请号 201210337308.6 (22)申请日 2012.09.12 H04L 9/32(2006.01) (71)申请人飞天诚信科技股份有限公司 地址 100085 北京市海淀区学清路9号汇智 大厦B座17层 (72)发明人陆舟 于华章 (54) 发明名称 一种动态口令的生成及认证方法与系统 (57) 摘要 本发明公布了一种动态口令生成及认证的方 法及系统,涉及身份认证领域,包括:令牌接收到 生成动态口令命令,。

2、根据第一计时器生成第一动 态因子;根据第一偏移指针从第一数据组中获取 当前数据,并根据第一动态因子、当前数据生成第 一动态口令;服务器接收到用户输入的第二动态 口令,根据第二计时器得到第二动态因子;根据 第二动态因子及认证窗口值,得到认证窗口;根 据所述认证窗口中的动态因子及第二数据组中的 各数据,计算生成一组动态口令,验证所述一组动 态口令中是否存在与所述第二动态口令一致的动 态口令。通过上述方案,解决了时间型令牌不能在 短时间内多次生成的问题,又避免了事件型令牌 不断生成动态口令与服务器产生失步的情况。 (51)Int.Cl. 权利要求书5页 说明书11页 附图4页 (19)中华人民共和国。

3、国家知识产权局 (12)发明专利申请 权利要求书 5 页 说明书 11 页 附图 4 页 1/5页 2 1.一种动态口令的生成及认证方法,其特征在于, 包括: S1:令牌接收到生成动态口令命令,根据所述令牌内部的第一计时器所计时间生成第 一动态因子; 所述令牌检查到预设条件时,对所述第一偏移指针进行初始化; S2:所述令牌判断第一偏移指针是否为无效状态,是则报错,否则继续; S3:所述令牌根据所述第一偏移指针从第一数据组中获取当前数据,调用预设算法,根 据所述第一动态因子、所述当前数据,计算得到第一动态口令,并判断所述当前数据是否为 所述第一组数据组中的最后一个数据,是则将所述第一偏移指针设为。

4、无效状态,否则将所 述第一偏移指针指向当前数据的下一个数据; S4:服务器接收到用户输入的第二动态口令,根据服务器内部的第二计时器所计时间 得到第二动态因子; S5:根据所述第二动态因子及认证窗口值,生成一组动态因子,得到认证窗口; S6:调用所述预设算法,根据所述认证窗口中的动态因子及服务器内部存储的第二数 据组中的各数据,计算生成一组动态口令,验证所述一组动态口令中是否存在与所述第二 动态口令一致的动态口令,是则认证通过,否则认证失败。 2.如权利要求1所述的方法,其特征在于,所述第一数据组与所述第二数据组一致,包 含预设个数的有顺序且各不相同的数据; 所述当前数据为所述第一偏移指针指向的。

5、数据。 3.如权利要求2所述的方法,其特征在于,所述步骤S1中根据所述令牌内部的第一 计时器所计时间生成第一动态因子具体为:用所述第一计时器所计秒数除以第一预设时长 值,对得到的商取整得到所述第一动态因子; 所述步骤S4中,根据服务器内部的第二计时器所计时间得到第二动态因子具体为:用 所述第二计时器所计秒数除以所述第一预设时长值,对得到的商取整得到所述第二动态因 子。 4.如权利要求3所述的方法,其特征在于,所述令牌检查到预设条件时,对所述第一偏 移指针进行初始化具体为:所述令牌实时监测所述第一计时器所计时间,每隔所述第一预 设时长,对所述第一偏移指针进行初始化; 所述对所述第一偏移指针进行初。

6、始化具体为:将所述第一偏移指针指向所述第一数据 组中的第一个数据。 5.如权利要求3所述的方法,其特征在于,所述令牌检查到预设条件时,对所述第一偏 移指针进行初始化具体为:所述令牌生成第一动态因子之后,判断所述第一动态因子与第 一缓存区中的数据是否一致,若不一致则对所述第一偏移指针进行初始化; 所述令牌对所述第一偏移指针进行初始化之后,用所述第一动态因子更新所述第一缓 存区中的数据; 所述对所述第一偏移指针进行初始化具体为:将所述第一偏移指针指向所述第一数据 组中的第一个数据。 6.如权利要求2所述的方法,其特征在于,所述步骤S6中计算生成一组动态口令具体 为:调用所述预设算法,对所述认证窗口。

7、中的每个动态因子与第二数据中的各个数据的组 合得到的数据分别进行计算,得到所述一组动态口令。 权 利 要 求 书CN 102843236 A 2/5页 3 7.如权利要求2所述的方法,其特征在于,所述步骤S6具体包括: 步骤a:按预设顺序调用所述认证窗口中的第一个动态因子; 步骤b:依次将所述第二数据组中的各个数据与调用的动态因子组合,调用预设算法 对组合得到的各个数据进行计算得到所述一组动态口令; 步骤c:验证所述一组动态口令中是否存在与所述第二动态口令一致的动态口令,是 则认证通过,否则执行步骤d; 步骤d:判断所述调用的动态因子是否为所述认证窗口中的最后一个动态因子,是则 认证失败,否则。

8、调用下一个动态因子,返回步骤b。 8.如权利要求6或7所述的方法,其特征在于,所述步骤S6中,当验证所述一组动态口 令中存在与所述第二动态口令一致的动态口令时,还包括: S7:所述服务器调用第二缓存区中的数据,将与所述第二动态口令一致的动态口令对 应的动态因子与所述第二缓存区中的数据进行比较,若大于,则认证通过,执行步骤S8;若 小于,则认证失败;若等于则执行S9; S8:用与所述第二动态口令一致的动态口令对应的动态因子更新所述第二缓存区中的 数据,并设置第二偏移指针指向第二数据组中与所述第二动态口令一致的动态口令对应的 数据; S9:判断与所述第二动态口令一致的动态口令对应的数据在第二数据组。

9、中的顺序是否 在所述第二偏移指针指向的数据之后,是则认证通过,设置第二偏移指针指向第二数据组 中与所述第二动态口令一致的动态口令对应的数据,否则认证失败。 9.如权利要求1所述的方法,其特征在于,所述步骤S1之后还包括令牌提示用户输交 易账号、交易金额、挑战码的步骤; 所述步骤S4之前还包括服务器生成挑战码的步骤; 所述步骤S3中根据所述第一动态因子、所述当前数据,计算得到第一动态口令具体 为: 将所述第一动态因子、所述当前数据与令牌密钥、用户输入令牌的账号、金额、挑战码 进行组合,并用所述预设算法对组合得到的数据进行计算得到所述第一动态口令; 所述步骤S6中调用所述预设算法,根据所述认证窗口。

10、中的动态因子及服务器内部存 储的第二数据组中的各数据,计算生成一组动态口令具体为: 依次将所述认证窗口中的各个动态因子与第二数据组中的各数据、令牌密钥、服务器 接收到的用户输入的账号、金额、服务器生成的挑战码分别进行组合,并用所述预设算法对 组合得到的各数据分别进行计算得到所述一组动态口令。 10.如权利要求1所述的方法,其特征在于,所述步骤S6中生成一组动态口令具体包 括: 将第二缓存区中的数据与所述认证窗口中的动态因子进行比对,从所述认证窗口中 获取等于或大于所述第二缓存区中的数据的动态因子; 依次将大于所述第二缓存区中的数据的各动态因子与所述第二数据组中的各个数据 分别进行组合,调用所述。

11、预设算法对组合得到的数据分别进行计算,得到第一部分动态口 令;将等于所述第二缓存区中的数据的动态因子分别与所述第二数据组中第二偏移指针指 向的数据之后的各个数据分别进行组合,调用所述预设算法,对组合得到各数据分别进行 权 利 要 求 书CN 102843236 A 3/5页 4 计算得到第二部分动态口令; 所述第一部分动态口令与所述第二部分动态口令组成所述一组动态口令。 11.如权利要求10所述的方法,其特征在于,所述步骤S6中,当验证所述一组动态口令 中存在与所述第二动态口令一致的动态口令时,还包括: 用与所述第二动态口令一致的动态口令对应的动态因子更新所述第二缓存区中的数 据,并将所述第二。

12、偏移指针指向与所述第二动态口令一致的动态口令对应的第二数据组中 的数据。 12.一种动态口令的生成及认证系统,其特征在于,包括令牌和服务器,所述令牌包 括: 第一接收模块,用于接收生成动态口令命令; 第一生成模块,用于当所述第一接收模块接收到生成动态口令命令时,根据令牌内部 的第一计时器所计时间生成第一动态因子; 操作模块,用于每隔第一预设时长,对所述第一偏移指针初始化一次;或者当判断所述 第一动态因子与第一缓存区中的数据不一致时,对所述第一偏移指针进行初始化,并用所 述第一动态因子更新第一缓存区中的数据; 第一计算模块,用于根据所述第一偏移指针从第一数据组中获取当前数据,调用预设 算法,根据。

13、所述第一动态因子及所述当前数据,计算得到第一动态口令; 第一判断模块,用于在所述第一计算模块计算得到第一动态口令后,判断当前数据是 否为第一数据组中的最后一个数据; 设置模块,用于当所述当前数据不为最后一个数据时,将所述第一偏移指针指向所述 第一数据组中当前数据的下一个数据;当所述当前数据为最后一个数据时,将所述第一偏 移指针设为无效状态,等待初始化; 所述服务器包括: 第二接收模块,用于接收用户通过主机输入的第二动态口令; 第二生成模块,用于根据所述服务器内部的第二计时器所计时间得到第二动态因子; 并根据所述第二动态因子及认证窗口值,生成一组动态因子,得到认证窗口; 第二计算模块,用于调用所。

14、述预设算法,根据所述认证窗口中的动态因子及服务器内 部存储的第二数据组中的各数据,计算生成一组动态口令; 验证模块:用于验证所述一组动态口令中是否存在与所述第二动态口令一致的动态口 令。 13.如权利要求12所述的系统,其特征在于,所述第二计算模块包括: 第一调用单元,用于调用所述预设算法及所述认证窗口中的第一动态因子; 第一组合单元,用于依次将所述认证窗口中的各个动态因子与所述第二数据组中的各 个数据分别进行组合; 第一处理单元,用于用所述预设算法对所述第一组合单元组合得到的各数据分别进行 计算,得到所述一组动态口令。 14.如权利要求12所述的系统,其特征在于,所述第二计算模块包括: 第二。

15、调用单元,用于调用所述预设算法及依次调用所述认证窗口中的动态因子; 第二组合单元,用于将所述第二数据组中的各个数据分别与调用的动态因子组合; 权 利 要 求 书CN 102843236 A 4/5页 5 第二处理单元,用于用所述预设算法对所述组合单元组合得到的数据进行计算得到所 述一组动态口令; 所述验证模块包括: 第一验证单元,用于验证所述第二处理单元计算得到的所述一组动态口令中,是否存 在与所述第二动态口令一致的动态口令; 第一判断单元,用于当所述第一验证单元验证所述一组动态口令中不存在与所述第二 动态口令一致的动态口令时,判断调用的动态因子是否为所述认证窗口中的最后一个动态 因子,当判断。

16、当前动态因子不为最后一个动态因子时,调用下一个动态因子,所述第二组合 单元工作。 15.如权利要求13或14所述的系统,其特征在于,所述系统还包括: 比较模块,用于当所述验证模块验证所述一组动态口令中有与所述第二动态口令一致 的动态口令时,将与所述第二动态口令一致的动态口令对应的动态因子与第二缓存区中的 数据进行比较,若大于则认证通过,第一更新模块工作,若小于则认证失败,若等于则第二 判断模块工作; 所述第一更新模块,用于用与所述第二动态口令一致的动态口令对应的动态因子更新 所述第二缓存区中的数据,并设置第二偏移指针指向所述第二数据组中与所述第二动态口 令一致的动态口令对应的数据; 所述第二判。

17、断模块,用于判断在所述第二数据组中与所述第二动态口令一致的动态口 令对应的数据在第二数据组中的顺序是否在所述第二偏移指针指向的数据之后,是则认证 通过,设置第二偏移指针指向第二数据组中与所述第二动态口令一致的动态口令对应的数 据,否则认证失败。 16.如权利要求12所述的系统,其特征在于,所述第二计算模块包括: 查找单元,用于从所述认证窗口中查找到等于或大于第二缓存区中的数据的动态因 子; 第三处理单元,用于将大于所述第二缓存区中的数据的动态因子依次分别与所述第二 数据组中的各个数据进行组合,调用所述预设算法对组合得到的数据分别进行计算,得到 第一部分动态口令;将等于所述第二缓存区中的数据的动。

18、态因子分别与所述第二数据组中 第二偏移指针指向的数据之后的各个数据进行组合,调用所述预设算法,对组合得到各数 据分别进行计算得到第二部分动态口令;将所述第一部分动态口令与所述第二部分动态口 令组成所述一组动态口令。 17.如权利要求16所述的系统,其特征在于,所述系统还包括: 第二更新模块,用于当所述验证模块验证所述一组动态口令中存在与所述第二动态口 令一致的动态口令时,用与所述第二动态口令一致的动态口令对应的动态因子更新所述第 二缓存区中的数据,并将所述第二偏移指针指向与所述第二动态口令一致的动态口令对应 的第二数据组中的数据。 18.如权利要求12所述的系统,其特征在于, 所述第一接收模块。

19、还用于接收用户输入令牌的数据; 所述第二接收模块还用于接收用户通过主机输入到服务器的数据; 所述第二生成模块还用于生成挑战码。 权 利 要 求 书CN 102843236 A 5/5页 6 19.如权利要求18所述的系统,其特征在于,所述第一计算模块包括: 第三组合单元,用于将所述第一动态因子、所述当前数据、令牌密钥与用户输入令牌的 数据进行组合; 第四处理单元,用于调用所述预设算法对所述第三组合单元组合得到的数据进行计算 得到所述第一动态口令。 权 利 要 求 书CN 102843236 A 1/11页 7 一种动态口令的生成及认证方法与系统 技术领域 0001 本发明涉及身份认证领域,特别。

20、涉及一种动态口令的生成及认证方法与系统 背景技术 0002 动态口令在身份认证领域的应用日益广泛,现有技术中,动态口令分为时间型动 态口令、事件型动态口令及挑战应答型动态口令。普通时间型动态口令或者带时间参与计 算的挑战应答型动态口令,在一个动态口令变化周期仅能产生一个动态口令,出于安全性 考虑,如果口令被认证服务器认证通过后,就不能重复使用了。如果想进行认证,必须等待 一段时间,等到达下一个时间周期开始,生成下一个不同的动态口令才能进行,不能满足在 短时间内进行多次身份认证的场合的需要; 0003 普通事件型的动态口令,存在动态令牌不断产生动态口令而不与服务器做认证 时,令牌与服务器失步的情。

21、况,且普通事件型的动态口令引入的次数为可预测动态因子,存 在一定的安全隐患。 发明内容 0004 为解决现有技术中存在的问题,本发明提供了一种动态口令的生成及认证方法及 系统,引入一组数据,参与时间型动态口令的产生,且在一个时间周期内该组数据中的各个 数据可以循环参与动态口令的生成。 0005 根据本发明的一方面,提供了一种动态口令生成及认证的方法,包括: 0006 S1:令牌接收到生成动态口令命令,根据所述令牌内部的第一计时器所计时间生 成第一动态因子; 0007 所述令牌检查到预设条件时,对所述第一偏移指针进行初始化; 0008 S2:所述令牌判断第一偏移指针是否为无效状态,是则报错,否则。

22、继续; 0009 S3:所述令牌根据所述第一偏移指针从第一数据组中获取当前数据,调用预设算 法,根据所述第一动态因子、所述当前数据,计算得到第一动态口令,并判断所述当前数据 是否为所述第一组数据组中的最后一个数据,是则将所述第一偏移指针设为无效状态,否 则将所述第一偏移指针指向当前数据的下一个数据; 0010 S4:服务器接收到用户输入的第二动态口令,根据服务器内部的第二计时器所计 时间得到第二动态因子; 0011 S5:根据所述第二动态因子及认证窗口值,生成一组动态因子,得到认证窗口; 0012 S6:调用所述预设算法,根据所述认证窗口中的动态因子及服务器内部存储的第 二数据组中的各数据,计。

23、算生成一组动态口令,验证所述一组动态口令中是否存在与所述 第二动态口令一致的动态口令,是则认证通过,否则认证失败。 0013 具体地,所述第一数据组与所述第二数据组一致,包含预设个数的有顺序且各不 相同的数据; 0014 所述当前数据为所述第一偏移指针指向的数据。 说 明 书CN 102843236 A 2/11页 8 0015 进一步地,所述步骤S1中根据所述令牌内部的第一计时器所计时间生成第一动 态因子具体为:用所述第一计时器所计秒数除以第一预设时长值,对得到的商取整得到所 述第一动态因子; 0016 所述步骤S4中,根据服务器内部的第二计时器所计时间得到第二动态因子具体 为:用所述第二计。

24、时器所计秒数除以所述第一预设时长值,对得到的商取整得到所述第二 动态因子。 0017 其中,所述令牌检查到预设条件时,对所述第一偏移指针进行初始化具体为:所 述令牌实时监测所述第一计时器所计时间,每隔所述第一预设时长,对所述第一偏移指针 进行初始化; 0018 所述对所述第一偏移指针进行初始化具体为:将所述第一偏移指针指向所述第一 数据组中的第一个数据。 0019 或者,所述令牌检查到预设条件时,对所述第一偏移指针进行初始化具体为:所述 令牌生成第一动态因子之后,判断所述第一动态因子与第一缓存区中的数据是否一致,若 不一致则对所述第一偏移指针进行初始化; 0020 所述令牌对所述第一偏移指针进。

25、行初始化之后,用所述第一动态因子更新所述第 一缓存区中的数据; 0021 所述对所述第一偏移指针进行初始化具体为:将所述第一偏移指针指向所述第一 数据组中的第一个数据。 0022 进一步地,所述步骤S6中计算生成一组动态口令具体为:调用所述预设算法,对 所述认证窗口中的每个动态因子与第二数据中的各个数据的组合得到的数据分别进行计 算,得到所述一组动态口令。 0023 或者,所述步骤S6具体包括: 0024 步骤a:按预设顺序调用所述认证窗口中的第一个动态因子; 0025 步骤b:依次将所述第二数据组中的各个数据与调用的动态因子组合,调用预设 算法对组合得到的各个数据进行计算得到所述一组动态口令。

26、; 0026 步骤c:验证所述一组动态口令中是否存在与所述第二动态口令一致的动态口 令,是则认证通过,否则执行步骤d; 0027 步骤d:判断所述调用的动态因子是否为所述认证窗口中的最后一个动态因子, 是则认证失败,否则调用下一个动态因子,返回步骤b。 0028 进一步地,所述步骤S6中,当验证所述一组动态口令中存在与所述第二动态口令 一致的动态口令时,还包括: 0029 S7:所述服务器调用第二缓存区中的数据,将与所述第二动态口令一致的动态口 令对应的动态因子与所述第二缓存区中的数据进行比较,若大于,则认证通过,执行步骤 S8;若小于,则认证失败;若等于则执行S9; 0030 S8:用与所述。

27、第二动态口令一致的动态口令对应的动态因子更新所述第二缓存区 中的数据,并设置第二偏移指针指向第二数据组中与所述第二动态口令一致的动态口令对 应的数据; 0031 S9:判断与所述第二动态口令一致的动态口令对应的数据在第二数据组中的顺序 是否在所述第二偏移指针指向的数据之后,是则认证通过,设置第二偏移指针指向第二数 说 明 书CN 102843236 A 3/11页 9 据组中与所述第二动态口令一致的动态口令对应的数据,否则认证失败。 0032 优选地,所述步骤S1之后还包括令牌提示用户输交易账号、交易金额、挑战码的 步骤; 0033 所述步骤S4之前还包括服务器生成挑战码的步骤; 0034 所。

28、述步骤S3中根据所述第一动态因子、所述当前数据,计算得到第一动态口令具 体为: 0035 将所述第一动态因子、所述当前数据与令牌密钥、用户输入令牌的账号、金额、挑 战码进行组合,并用所述预设算法对组合得到的数据进行计算得到所述第一动态口令; 0036 所述步骤S6中调用所述预设算法,根据所述认证窗口中的动态因子及服务器内 部存储的第二数据组中的各数据,计算生成一组动态口令具体为: 0037 依次将所述认证窗口中的各个动态因子与第二数据组中的各数据、令牌密钥、服 务器接收到的用户输入的账号、金额、服务器生成的挑战码分别进行组合,并用所述预设算 法对组合得到的各数据分别进行计算得到所述一组动态口令。

29、。 0038 或者,所述步骤S6中生成一组动态口令具体包括: 0039 将第二缓存区中的数据与所述认证窗口中的动态因子进行比对,从所述认证窗口 中获取等于或大于所述第二缓存区中的数据的动态因子; 0040 依次将大于所述第二缓存区中的数据的各动态因子与所述第二数据组中的各个 数据分别进行组合,调用所述预设算法对组合得到的数据分别进行计算,得到第一部分动 态口令;将等于所述第二缓存区中的数据的动态因子分别与所述第二数据组中第二偏移指 针指向的数据之后的各个数据分别进行组合,调用所述预设算法,对组合得到各数据分别 进行计算得到第二部分动态口令; 0041 所述第一部分动态口令与所述第二部分动态口令。

30、组成所述一组动态口令。 0042 进一步地,所述步骤S6中,当验证所述一组动态口令中存在与所述第二动态口令 一致的动态口令时,还包括: 0043 用与所述第二动态口令一致的动态口令对应的动态因子更新所述第二缓存区中 的数据,并将所述第二偏移指针指向与所述第二动态口令一致的动态口令对应的第二数据 组中的数据。 0044 根据本发明的另外一个方面,提供了一种动态口令生成及认证的系统,包括:令牌 和服务器; 0045 所述令牌包括: 0046 第一接收模块,用于接收生成动态口令命令; 0047 第一生成模块,用于当所述第一接收模块接收到生成动态口令命令时,根据令牌 内部的第一计时器所计时间生成第一动。

31、态因子; 0048 操作模块,用于每隔第一预设时长,对所述第一偏移指针初始化一次;或者当判断 所述第一动态因子与第一缓存区中的数据不一致时,对所述第一偏移指针进行初始化,并 用所述第一动态因子更新第一缓存区中的数据; 0049 第一计算模块,用于根据所述第一偏移指针从第一数据组中获取当前数据,调用 预设算法,根据所述第一动态因子及所述当前数据,计算得到第一动态口令; 0050 第一判断模块,用于在所述第一计算模块计算得到第一动态口令后,判断当前数 说 明 书CN 102843236 A 4/11页 10 据是否为第一数据组中的最后一个数据; 0051 设置模块,用于当所述当前数据不为最后一个数。

32、据时,将所述第一偏移指针指向 所述第一数据组中当前数据的下一个数据;当所述当前数据为最后一个数据时,将所述第 一偏移指针设为无效状态,等待初始化; 0052 所述服务器包括: 0053 第二接收模块,用于接收用户通过主机输入的第二动态口令; 0054 第二生成模块,用于根据所述服务器内部的第二计时器所计时间得到第二动态因 子;并根据所述第二动态因子及认证窗口值,生成一组动态因子,得到认证窗口; 0055 第二计算模块,用于调用所述预设算法,根据所述认证窗口中的动态因子及服务 器内部存储的第二数据组中的各数据,计算生成一组动态口令; 0056 验证模块:用于验证所述一组动态口令中是否存在与所述第。

33、二动态口令一致的动 态口令。 0057 进一步地,所述第二计算模块包括: 0058 第一调用单元,用于调用所述预设算法及所述认证窗口中的第一动态因子; 0059 第一组合单元,用于依次将所述认证窗口中的各个动态因子与所述第二数据组中 的各个数据分别进行组合; 0060 第一处理单元,用于用所述预设算法对所述第一组合单元组合得到的各数据分别 进行计算,得到所述一组动态口令。 0061 或者,所述第二计算模块包括: 0062 第二调用单元,用于调用所述预设算法及依次调用所述认证窗口中的动态因子; 0063 第二组合单元,用于将所述第二数据组中的各个数据分别与调用的动态因子组 合; 0064 第二处。

34、理单元,用于用所述预设算法对所述组合单元组合得到的数据进行计算得 到所述一组动态口令; 0065 所述验证模块包括: 0066 第一验证单元,用于验证所述第二处理单元计算得到的所述一组动态口令中,是 否存在与所述第二动态口令一致的动态口令; 0067 第一判断单元,用于当所述第一验证单元验证所述一组动态口令中不存在与所述 第二动态口令一致的动态口令时,判断调用的动态因子是否为所述认证窗口中的最后一个 动态因子,当判断当前动态因子不为最后一个动态因子时,调用下一个动态因子,所述第二 组合单元工作。 0068 进一步地,所述系统还包括: 0069 比较模块,用于当所述验证模块验证所述一组动态口令中。

35、有与所述第二动态口令 一致的动态口令时,将与所述第二动态口令一致的动态口令对应的动态因子与第二缓存区 中的数据进行比较,若大于则认证通过,第一更新模块工作,若小于则认证失败,若等于则 第二判断模块工作; 0070 所述第一更新模块,用于用与所述第二动态口令一致的动态口令对应的动态因子 更新所述第二缓存区中的数据,并设置第二偏移指针指向所述第二数据组中与所述第二动 态口令一致的动态口令对应的数据; 说 明 书CN 102843236 A 10 5/11页 11 0071 所述第二判断模块,用于判断在所述第二数据组中与所述第二动态口令一致的动 态口令对应的数据在第二数据组中的顺序是否在所述第二偏移。

36、指针指向的数据之后,是则 认证通过,设置第二偏移指针指向第二数据组中与所述第二动态口令一致的动态口令对应 的数据,否则认证失败。 0072 或者,所述第二计算模块包括: 0073 查找单元,用于从所述认证窗口中查找到等于或大于第二缓存区中的数据的动态 因子; 0074 第三处理单元,用于将大于所述第二缓存区中的数据的动态因子依次分别与所述 第二数据组中的各个数据进行组合,调用所述预设算法对组合得到的数据分别进行计算, 得到第一部分动态口令;将等于所述第二缓存区中的数据的动态因子分别与所述第二数据 组中第二偏移指针指向的数据之后的各个数据进行组合,调用所述预设算法,对组合得到 各数据分别进行计算。

37、得到第二部分动态口令;将所述第一部分动态口令与所述第二部分动 态口令组成所述一组动态口令。 0075 进一步地,所述系统还包括: 0076 第二更新模块,用于当所述验证模块验证所述一组动态口令中存在与所述第二动 态口令一致的动态口令时,用与所述第二动态口令一致的动态口令对应的动态因子更新所 述第二缓存区中的数据,并将所述第二偏移指针指向与所述第二动态口令一致的动态口令 对应的第二数据组中的数据。 0077 所述第一接收模块还用于接收用户输入令牌的数据; 0078 所述第二接收模块还用于接收用户通过主机输入到服务器的数据; 0079 所述第二生成模块还用于生成挑战码。 0080 进一步地,所述第。

38、一计算模块包括: 0081 第三组合单元,用于将所述第一动态因子、所述当前数据、令牌密钥与用户输入令 牌的数据进行组合; 0082 第四处理单元,用于调用所述预设算法对所述第三组合单元组合得到的数据进行 计算得到所述第一动态口令。 0083 通过本发明提供的方案,在时间型动态令牌及事件型动态令牌的基础上,提高了 动态口令认证的安全性,且满足了短时间内需要进行多次身份认证的场合的需要,为身份 认证过程中认证模式提供了多种选择。 附图说明 0084 图1为本发明实施例1提供的一种动态口令的生成及认证方法流程图; 0085 图2为本发明实施例1提供的一种动态口令的生成及认证方法的另一种实现过程 流程。

39、图; 0086 图3为本发明实施例1提供的一种动态口令的生成及认证方法的再一种实现过程 流程图; 0087 图4为本发明实施例2提供的一种动态口令的生成及认证系统方框图。 具体实施方式 说 明 书CN 102843236 A 11 6/11页 12 0088 下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完 整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于 本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他 实施例,都属于本发明保护的范围。 0089 实施例1 0090 本发明实施例1提供了一种动态口令的生成及认。

40、证方法,具体包括: 0091 步骤101:令牌接收到触发生成动态口令的命令; 0092 优选地,在本实施例中,所述生成动态口令的命令可以为按键触发信息,该步骤之 后还可以包括令牌提示用户输入到令牌的挑战码、交易账号、交易金额等数据。 0093 在本实施例中,所述令牌可以有多种动态口令类型选择,例如有不同的按键以供 用户选择生成登录账户、修改账户信息、转账、交易等类型的动态口令,并按照与服务器事 先约定,提示用户输入相应的数据。 0094 步骤102:令牌根据内部第一计时器所计时间及第一预设时长,生成第一动态因 子; 0095 优选地,在本实施例中,所述第一动态因子为所述第一计时器所计时间包含的。

41、完 整的所述第一预设时长的个数,具体地,在本实施例中,生成动态因子具体为:用所述计时 器所计时间值除以所述第一预设时长值,对得到的商取整即得到所述第一动态因子。 0096 步骤103:判断所述第一动态因子是否与第一缓存区中的数据一致,是则执行步 骤104,否则初始化第一偏移指针,并用所述第一动态因子更新所述第一缓存区中的数据, 执行步骤104; 0097 优选地,在本实施例中,所述第一偏移指针指向第一数据组中的某个数据,当所述 第一偏移指针被初始化后,所述第一偏移指针指向所述第一数据组中的第一个数据。 0098 所述第一缓存区中存储的数据可以为令牌上一次生成动态口令时所生成的动态 因子,还可以。

42、为上一次初始化第一偏移指针时对应的动态因子。 0099 在本实施例中,所述第一偏移指针还可以根据所述计时器所计时间进行初始化, 根据所述计时器,每隔所述第一预设时长将所述第一偏移指针初始化一次,相应地,删除步 骤103,步骤102之后直接执行步骤104。 0100 步骤104:根据第一偏移指针从所述第一数据组中获取当前数据,并调用预设算 法对当前数据与第一动态因子进行计算,生成第一动态口令,所述第一偏移指针指向所述 第一数据组中当前数据的下一数据; 0101 优选地,在本实施例中,当步骤101之前还包括令牌提示用户输入挑战码、交易账 号、交易金额等数据时,用户输入到令牌的数据、当前数据、所述第。

43、一动态因子、令牌密钥均 参与生成动态口令。生成第一动态口令的具体为:调用预设的算法如SHA1、SM3等,对上 述数据组合得到的数据进行计算,从计算结果中提取预设位数的数据得到所述第一动态口 令。 0102 特别地,在本实施例中,本步骤中所述第一偏移指针指向当前数据的下一个数据 之前还包括:验证当前数据是否为第二数据组中的最后一个数据,是则将所述第一偏移指 针设为无效状态,等待初始化,否则再将所述第一偏移指针执行当前数据的下一数据。相应 地,该步骤之前还包括令牌判断所述第一偏移指针是否为无效状态的步骤,若为无效状态 说 明 书CN 102843236 A 12 7/11页 13 则报错,若不为无。

44、效状态再执行步骤104。 0103 所述第一数据组中的数据各不相同,顺序、个数固定,可以为一组不规则的数据, 也可以为一组规则变化的数据,如递增、递减的数据等。 0104 步骤105:服务器接收到用户输入的第二动态口令,根据服务器内部的第二计时 器所计时间及第一预设时长生成第二动态因子; 0105 优选地,在本实施例中,服务器通过主机接收到用户输入的第二动态口令。 0106 生成第二动态因子具体为:第二计时器所计时间除以所述预设时长得到的商取整 后加服务器记录的漂移值得到。 0107 步骤105之前还包括,服务器接收到用户发送的操作请求,通过主机提示用户输 入动态口令的步骤,特别地,当事先约定。

45、需要挑战码参与生成动态口令时,该步骤前还包括 服务器生成挑战码的步骤。 0108 步骤106:根据所述第二动态因子及认证窗口值,生成一组动态因子,得到认证窗 口; 0109 优选地,在本实施例中,以所述认证窗口值为2为例,则生成的一组动态因子包 括:所述第二动态因子的值减1得到的第三动态因子、第二动态因子、所述第二动态因子的 值加1得到的第四动态因子。 0110 步骤107:服务器调用认证窗口中的第二动态因子,根据所述第二动态因子及服 务器内部的第二数据组中的各数据,生成第一组动态口令; 0111 优选地,在本实施例中,所述第二数据组中的数据、数据个数及数据顺序与所述第 一数据组相同。服务器生。

46、成第一组动态口令具体为:调用预设的算法,将第二动态因子与第 二数据组中的各个数据分别进行组合,对组合得到的各数据分别进行计算得到第一组动态 口令;生成每个动态口令的算法及过程与步骤104中生成方式一致。特别地,当所述令牌与 所述服务器事先约定用户输入的信息或挑战码参与生成动态口令时,则该步骤中,与令牌 生成第一动态口令的实现过程相同,用户通过主机输入到服务器中的数据及服务器生成的 挑战码中相应的数据参与生成第一组动态口令。 0112 本实施例提供一种优选地方式以清楚说明该生成动态口令的过程,以所述第二数 据组中各数据依次为:0x 00 00 00 00 00 00 00 09十个数据、第二动态。

47、因子为0x 00 00 00 00 01 56 56 01、挑战码为0x 31 32 33 34 35 36 37 38-39 30、令牌密钥为0x 80 d0 3f 19 3f e5 0c 2d-de 8a 84 46 bf a2 88 dc 35 92 65 1c,所述预设算法SM3为例, 具体过程为:将所述密钥与所述第二动态因子顺序拼接、 再分别与第二数据组中的10个 数据分别进行顺序拼接得到10个拼接数据、分别在10个拼接数据后再拼接挑战码得到10 个组合数据,用所述预设算法对上述10个组合数据分别进行计算,得到10份摘要,分别从 各份摘要中截取低位端4个字节数据,均转化为十进制数,分。

48、别从10个十进制数中截取低 位8位数据得到所述第一组动态口令。 0113 步骤108:服务器验证第一组动态口令中是否存在与第二动态口令一致的动态口 令,是则执行步骤111,否则执行步骤109; 0114 步骤109:所述服务器调用认证窗口中的第二动态因子的下一个动态因子,并根 据调用的动态因子及第二数据组,生成第二组动态口令,判断所述第二组动态口令中是否 有与第二动态口令一致的动态口令,是则执行步骤111,否则执行步骤110; 说 明 书CN 102843236 A 13 8/11页 14 0115 本实施例中,生成第二组动态口令的过程参见步骤107。 0116 步骤110:所述服务器调用认证。

49、窗口中当前调用的动态因子的下一个动态因子, 根据当前调用的动态因子及所述第二数据组生成第三组动态口令,判断所述第三组动态 口令中是否有与所述第二动态口令一致的动态口令,是则执行步骤111;否则认证失败,报 错; 0117 生成第三组动态口令的过程参见步骤107。 0118 优选地,在本实施例中,所述认证窗口值为2, 从而认证窗口中有三个动态因子, 调用动态因子的先后顺序为:先调用第二动态因子、再第二动态因子加减1得到的动态因 子。所述认证窗口值还可以为其他值,则相应地,所述认证窗口中还包括其他动态因子,在 该步骤中第三组动态口令中没有与所述第二动态口令一致的动态口令时,逐次调用所述其 他动态因子来生成动态口令并认证,调用其余动态因子的顺序按与第二动态因子差值的绝 对值由小到大的顺序。 0119 步骤111:用与所。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 电学 > 电通信技术


copyright@ 2017-2020 zhuanlichaxun.net网站版权所有
经营许可证编号:粤ICP备2021068784号-1