Login| Sign Up| Help| Contact|

Patent Searching and Data


Title:
METHOD FOR CORRECTING TEMPERATURE DRIFT OF DYNAMIC PASSWORD TOKEN AND DYNAMIC PASSWORD TOKEN
Document Type and Number:
WIPO Patent Application WO/2011/120408
Kind Code:
A1
Abstract:
A method for correcting the temperature drift of a dynamic password token and the dynamic password token are disclosed, which belong to the field of information security. The method comprises: a current environment temperature of the dynamic password token is detected by the dynamic password token with the first pre-set time as an interval; a feature value corresponding to the detected temperature is obtained by the dynamic password token which searches in a data table in accordance with the detected temperature; the current time in the dynamic password token is adjusted by the dynamic password token based on the feature value with the second pre-set time as an interval. The dynamic password token comprises a timer module, a detecting module, a search module, a table-storage module, an adjusting module, a trigger module, a generating module and a display module. This solution realizes the correction of time errors caused by the temperature drift of the dynamic password token

Inventors:
LU, Zhou (17th Floor, Tower B Huizhi Mansion, No. 9 Xueqing Road, Haidian District, Beijing 5, 100085, CN)
陆舟 (中国北京市海淀区学清路9号汇智大厦B座17层, Beijing 5, 100085, CN)
Application Number:
CN2011/072202
Publication Date:
October 06, 2011
Filing Date:
March 28, 2011
Export Citation:
Click for automatic bibliography generation   Help
Assignee:
FEITIAN TECHNOLOGIES CO., LTD. (17th Floor, Tower B Huizhi Mansion, No. 9 Xueqing Road, Haidian District, Beijing 5, 100085, CN)
北京飞天诚信科技有限公司 (中国北京市海淀区学清路9号汇智大厦B座17层, Beijing 5, 100085, CN)
LU, Zhou (17th Floor, Tower B Huizhi Mansion, No. 9 Xueqing Road, Haidian District, Beijing 5, 100085, CN)
International Classes:
G04G5/00
Attorney, Agent or Firm:
BEIJING WANG IP AGENCY, LTD. (Suite 515, ZhongGuanCun Tower No. 27 ZhongGuanCun Street, Haidian District, Beijing 0, 100080, CN)
Download PDF:
Claims:
权利要求书

1、 一种校正动态口令令牌温漂的方法, 其中, 所述动态口令令牌根据时间值及动态因子 的变化时间步长得到动态因子, 根据所述动态因子生成并显示动态口令, 其特征在于, 所述 方法包括:

动态口令令牌以第一预设时间为间隔来检测所述动态口令令牌当前所处环境的温度; 所述动态口令令牌根据所述检测到的温度查找数据表, 得到所述检查到的温度对应的特 征值;

所述动态口令令牌以第二预设时间为间隔, 根据所述特征值对所述动态口令令牌内的当 前时间值进行校正。

2、 根据权利要求 1所述的方法, 其特征在于, 所述第一预设时间是自定义的, 所述动态 口令令牌通过定时器定时的方式或轮询标志位的方式来实现以第一预设时间为间隔检测所述 动态口令令牌当前所处环境的温度。

3、 根据权利要求 1所述的方法, 其特征在于, 所述动态口令令牌根据所述检测到的温度 查找数据表, 得到所述检查到的温度对应的特征值包括:

所述动态口令令牌根据所述检测到的温度查找数据表, 并判断是否能够查找得到所述检 测到的温度对应的特征值,

如果不能查找得到, 则根据所述检测到的温度及所述数据表计算所述检测到的温度对应 的特征值。

4、根据权利要求 3所述的方法, 其特征在于, 根据所述检测到的温度及所述数据表计算 所述检测到的温度对应的特征值包括:

所述动态口令令牌根据所述检测到的温度查找所述数据表, 得到第一温度和第二温度及 所述第一温度和第二温度对应的第一特征值和第二特征值, 所述动态口令令牌根据查找得到 的上述数据及所述检测到的温度按照第一预设公式计算所述检测到的温度对应的特征值; 其中, 所述第一预设公式为:

所述检测到的温度-第一温度 _所述特征值 -第一特征值

^第二温度-第一温度 ^—第二特征值-第一特征值。

5、 根据权利要求 1所述的方法, 其特征在于, 所述数据表是预先存储在所述动态口令令 牌内部的;

所述数据表中的数据为所述动态口令令牌内晶体振荡器所采用的晶体在不同温度下的晶 振频率、晶体在不同温度下的频率稳定度或晶体在不同温度下的第一预设时间内的时间偏差; 则,

所述检测到的温度对应的特征值为晶振频率、频率稳定度或第一预设时间内的时间偏差。

6、 根据权利要求 5所述的方法, 其特征在于, 当所述特征值为第一预设时间的时间偏差 时, 所述动态口令令牌以第二预设时间为间隔, 根据所述特征值对当前时间值进行校正的方 法包括:

所述动态口令令牌在第二预设时间到时, 将当前第一预设时间内的时间偏差与之前第二 预设时间到时得到的第一预设时间内的时间偏差进行累加计算, 得到所述动态口令令牌的当 前累计时间偏差;

所述动态口令令牌判断所述当前累计时间偏差是小于、 等于、 大于预定值的哪一种, 如果是小于, 则返回到动态口令令牌以第一预设时间为间隔来检测所述动态口令令牌当 前所处环境的温度的步骤;

如果是等于, 所述动态口令令牌的当前时间值加上所述预定值, 得到校正后的时间值, 并将当前累计时间偏差清零;

如果是大于, 所述动态口令令牌的当前时间值加上所述预定值, 得到校正后的时间值, 并将当前累计时间偏差中多于所述预定值的部分作为下次进行累加计算时的基数。

7、 根据权利要求 5所述的方法, 其特征在于, 当所述特征值为晶振频率时, 所述动态口 令令牌以第二预设时间为间隔, 根据所述特征值对所述动态口令令牌的当前时间值进行校正 的方法还包括:

所述动态口令令牌根据所述晶振频率及晶振标准频率计算得到所述环境温度下的晶振频 率偏差;

所述动态口令令牌将所述计算得到的晶振频率偏差转换为时间值, 所述转换得到的时间 值为当前 1秒内的时间偏差。

所述动态口令令牌根据所述当前 1秒内的时间偏差按照第二预设公式计算得到所述第一 预设时间内的时间偏差;

所述动态口令令牌在第二预设时间到时, 将当前计算得到的第一预设时间内的时间偏差 与之前第二预设时间到时得到的第一预设时间内的时间偏差进行累加计算, 得到所述动态口 令令牌的当前累计时间偏差;

所述动态口令令牌判断所述当前累计时间偏差是小于、 等于、 大于预定值的哪一种, 如果是小于, 则返回到动态口令令牌以第一预设时间为间隔来检测所述动态口令令牌当 前所处环境的温度的步骤;

如果是等于, 所述动态口令令牌的当前时间值加上所述预定值, 得到校正后的时间值, 并将当前累计时间偏差清零;

如果是大于, 所述动态口令令牌的当前时间值加上所述预定值, 得到校正后的时间值, 并将所述累计时间偏差中多于所述预定值的部分作为下次进行累计计算时的基数。

8、 根据权利要求 7所述的方法, 其特征在于, 所述第二预设公式具体为: 第一预设时间间隔内的时间偏差 =^¾§^* ( 1+第一预设时间)。

晶振标准频率

9、 根据权利要求 5所述的方法, 其特征在于, 当所述特征值为频率稳定度时, 所述动态 口令令牌以第二预设时间为间隔, 根据所述特征值对当前时间值进行校正的方法还包括: 所述动态口令令牌将所述频率稳定度转换为时间值, 所述转换得到的时间值为当前 1秒 内的时间偏差。

所述动态口令令牌根据所述当前 1秒内的时间偏差按照第三预设公式计算得到所述第一 预设时间内的时间偏差;

所述动态口令令牌在第二预设时间到时, 将当前计算得到的第一预设时间内的时间偏差 与之前第二预设时间到时得到的第一时间间隔内的时间偏差进行累加计算, 得到所述动态口 令令牌的当前累计时间偏差;

所述动态口令令牌判读所述当前累计时间偏差是小于、 等于、 大于预定值的哪一种, 如果是小于, 则返回到动态口令令牌以第一预设时间为间隔来检测所述动态口令令牌当 前所处环境的温度的步骤;

如果是等于, 所述动态口令令牌的当前时间值加上所述预定值, 得到校正后的时间值, 并将当前累计时间偏差清零;

如果是大于, 所述动态口令令牌的当前时间值加上所述预定值, 得到校正后的时间值, 并将所述累计时间偏差中多于所述预定值的部分作为下次进行累加计算时的基数。

10、 根据权利要求 9所述的方法, 其特征在于, 所述第三预设公式具体为:

第一预设时间间隔 =频率稳定度 * ( 1+第一预设时间) *10— 6

11、 根据权利要求 7至 9所述的方法, 其特征在于, 所述第一预设时间和所述第二预设 时间是相同的。

12、 根据权利要求 1所述的方法, 其特征在于, 所述动态口令令牌以第二预设时间为间 隔, 根据所述特征值对所述动态口令令牌内的当前时间值进行校正的方法还包括:

在第二预设时间到时, 所述动态口令令牌将所述特征值转换为调整值;

所述动态口令令牌将所述调整值写入到时间调整寄存器;

所述时间调整寄存器在所述第二预设时间到时根据所述调整值改变当前时钟脉冲的时钟 计数值, 来对当前时间值进行校正;

13、 根据权利要求 12所述的方法, 其特征在于, 所述第二预设时间具体为 1分钟。

14、 一种动态口令令牌, 其特征在于, 所述动态口令令牌包括:

定时器模块, 用于在第一预设时间到时开启检测模块检测所述动态口令令牌当前所处环 境的温度;

检测模块, 用于在所述定时器模块计时达到所述第一预设时间时, 检测所述动态口令令 牌当前所处环境的温度, 并触发查询模块进行数据查询;

表存储模块, 用于存储实时时钟晶体在不同温度下的特征值;

查询模块, 用于根据所述检测模块检测到的所述动态口令令牌当前所处环境的温度在表 存储模块中查找所述检测到的温度对应的特征值;

校正模块, 用于根据所述特征值对所述动态口令令牌内的当前时间值进行校正; 触发模块, 用于触发生成模块生成动态口令;

生成模块, 用于被所述触发模块触动 , 提取所述动态口令令牌的当前时间值, 并根据 所述提取的时间值及动态因子的变化时间步长来生成动态口令;

显示模块, 用于显示或关闭显示所述生成模块生成的所述动态口令。

15、 根据权利要求 14所述的动态口令令牌, 其特征在于, 所述查询模块包括: 查询单元, 用于根据所述检测模块检测到的温度在所述表存储模块中查找所述检测到的 温度对应的特征值, 并判断是否能够查找得到所述特征值;

第一计算单元, 用于当所述查询单元的查询结果为不能时, 计算所述检测到的温度对应 的特征值。

16、 根据权利要求 14所述的动态口令令牌, 其特征在于, 所述校正模块包括: 第二计算单元, 用于根据所述查询模块得到的特征值, 计算所述动态口令令牌的当前累 计时间偏差;

判断单元, 用于判断第二计算单元计算得到的当前累计时间偏差是否达到预定值; 第一校正单元, 用于当所述判断单元的判断结果为是时, 将所述动态口令令牌的当前时 间值加上所述预定值, 得到校正后的时间值。

17、 根据权利要求 14所述的动态口令令牌, 其特征在于, 所述校正模块还包括: 转换单元, 用于将所述查询模块得到的特征值转换为调整值;

第二校正单元, 用于根据所述调整值来改变所述动态口令令牌的当前时钟脉冲的时钟计 数值, 对当前时间值进行校正。

18、 根据权利要求 14所述的动态口令令牌, 其特征在于, 所述检测到的温度对应的特征 值包括晶振频率、 频率稳定度或所述第一预设时间内的时间偏差。

Description:
校正动态口令令牌温漂的方法和动态口令令牌

技术领域

本发明属于信息安全领域,尤其涉及一种校正 动态口令令牌温漂的方法和动态口令令牌。 背景技术

实时时钟 RTC ( Real-Time Clock ) 是一个由晶体控制精度的, 向主系统提供 BCD (Binary-Coded Decimal ) 码表示的时间和日期的器件, RTC 的基本功能是保持跟踪时间和 日期等信息, 晶体振荡器在固定频率中能够提供较高的精度 , 大多数的 RTC采用 32. 768KHZ 的晶体, 晶体振荡器输出经过分频后会产生 1Hz 的基准来刷新时间和日期。 RTC的精度主要 取决于晶体振荡器的精度。

在以时间作为动态因子的动态口令令牌中, 对动态口令令牌的时间的漂移要求为每年不 得超过 2 分钟, 即要小于 5ppm, 而产生时间漂移的原因在于动态口令令牌内部 的频率为 32. 768KHz 的时钟晶体, 该时钟晶体在温度变化时, 晶体的晶振频率将会呈现抛物线趋势的 变化, 而 23ppm的温漂大约每月会产生 1分钟的时钟误差或者更大的时钟误差, 因此, 需对 动态口令令牌由于温漂产生的时钟误差进行校 正。 发明内容

本发明提供了一种校正动态口令令牌温漂的方 法, 技术方案如下:

一种校正动态口令令牌温漂的方法, 其中, 所述动态口令令牌根据时间值及动态因子的 变化时间步长得到动态因子, 根据所述动态因子生成并显示动态口令, 所述方法包括:

动态口令令牌以第一预设时间为间隔来检测所 述动态口令令牌当前所处环境的温度; 所述动态口令令牌根据所述检测到的温度查找 数据表, 得到所述检查到的温度对应的特 征值;

所述动态口令令牌以第二预设时间为间隔, 根据所述特征值对所述动态口令令牌内的当 前时间值进行校正。

一种动态口令令牌, 所述动态口令令牌包括:

定时器模块, 用于在第一预设时间到时开启检测模块检测所 述动态口令令牌当前所处环 境的温度;

检测模块, 用于在所述定时器模块计时达到所述第一预设 时间时, 检测所述动态口令令 牌当前所处环境的温度, 并触发查询模块进行数据查询;

表存储模块, 用于存储实时时钟晶体在不同温度下的特征值 ;

查询模块, 用于根据所述检测模块检测到的所述动态口令 令牌当前所处环境的温度在表 存储模块中查找所述检测到的温度对应的特征 值;

校正模块, 用于根据所述特征值对所述动态口令令牌内的 当前时间值进行校正; 触发模块, 用于触发生成模块生成动^口令; 生成模块, 用于被所述触发模块触动后, 提取所述动态口令令牌的当前时间值, 并根据 所述提取的时间值及动态因子的变化时间步长 来生成动态口令;

显示模块, 用于显示或关闭显示所述生成模块生成的所述 动态口令。

有益效果: 以固定的时间间隔来监控动态口令令牌所处环 境的温度, 并根据晶体随温度 变化的特征值计算不同温度下的累计时间偏差 , 在固定时间间隔内根据所述时间偏差对动态 口令令牌温漂进行校正后, 使得动态口令令牌在高、低温环境下的时钟偏 差得到有效的改善, 改善效果明显。 附图说明

图 1是本发明实施例提供的 32. 768KHz晶体的温漂曲线图;

图 2是本发明实施例提供的一种校正动态口令令 温漂的方法流程图;

图 3是本发明实施例提供的另一种校正动态口令 牌温漂的方法流程图;

图 4是本发明实施例提供的一种动态口令令牌;

图 5是 OTP设备 400的结构示意图。 具体实施方式

为使本发明的目的、 技术方案和优点更加清楚, 下面将结合附图对本发明实施方式作进 一步地详细描述: 实施例 1

本发明实施例提供了一种校正动态口令令牌温 漂的方法, 需要说明的是: 本发明实施例 提供的动态口令令牌内部存储有 32. 768KHZ的晶体振荡器在不同温度下的特征值, 即晶振频 率(如表 1所示), 其中, 表 1中的数据是经过反复试验得出的, 进一步地, 为了提高试验精 度, 在进行试验的过程中, 可以选择更密集的试验温度来测试晶体振荡器 的晶振频率。

表 1 : 32. 786KHz晶体振荡器在不同温度下的晶振频率 (单位 Hz )

-40° -35° -32. 8° -31. 5° -28° -25. 3° -20° -17°

32762. 2 32763 32763. 1 32763. 9 32764. 1 32764. 7 32765 32765. 7

-3° 0° 2° 9° 10° 14° 19° 20°

32766. 8 32767. 4 32767. 45 32767. 48 32767. 5 32767. 6 32767. 64 32767. 8

24° 25° 30° 30. 1 ° 31. 5° 33. 2° 35° 40°

32767. 95 32768 32767. 89 32797. 86 32767. 79 32767. 66 32737. 54 32767. 5

43° 44. 5° 47. 2° 50° 52. 3° 60° 65° 70°

32767. 42 32767. 3 32767. 25 32766. 16 32766. 08 32766. 32765. 5 32765

72° 72. 8° 74° 76. 3° 76. 9° 78° 78. 9° 80°

32764. 8 32764. 5 32784. 2 32764. 1 —5 32764. 04 32764. 5 32764. 66 32763. 7 为了更直观的体现晶体振荡器的晶振频率随温 度的变化趋势, 我们将表 1中的数据以曲 线图的形式展示(如图 1所示), 从图 1中可以清楚的看到晶体振荡器的晶振频率会 到温度 变化的极大影响, 因此动态口令令牌在提交客户使用时, 必须要对动态口令令牌的温漂进行 校正, 具体的校正方式如下:

101、 动态口令令牌装载定时器, 定时器的定时时间即第一预设时间, 可以根据实际情况 进行设定, 本实施例中按照定时时间为 1小时来设置定时器;

具体地, 如果动态口令令牌所处环境的温差较大, 定时器的定时时间设置为 10分钟或者 更短的定时时间, 如果动态口令令牌所处的环境温差较小, 定时器的定时时间设置为 1小时 或者更长的定时时间, 这样在提高校正动态口令令牌温漂精度的同时 又降低了动态口令令牌 的功耗, 从而提高动态口令令牌的使用寿命。

102、 动态口令令牌在定时时间到时, 检测当前所处环境的温度, 并将检测到的温度 T记 录下来, 然后, 重新装载定时器;

具体地, 动态口令令牌内设置有热敏电阻, 动态口令令牌根据该热敏电阻来检测动态口 令令牌当前所处环境的温度。 具体为: 该热敏电阻串接一个高精度的电阻, 其中, 该高精度 的电阻与电源和地相连, 热敏电阻的阻值是根据动态口令令牌所处环境 的温度的变化而变化 的, 因此, 热敏电阻与高精度电阻相连接处的电压值也是 根据动态口令令牌所处环境的温度 的变化而变化的, 另外, 动态口令令牌内的 AD转换器是连接在热敏电阻与高精度电阻相连 处的, 当定时时间到, 动态口令令牌检测当前所处环境的温度时启动 AD转换器, 该 AD转换 器把热敏电阻端的电压值转换为数字信号,然 后根据热敏电阻的温度系数和 AD转换器的基准 电压计算出动态口令令牌当前所处环境的温度 ;

本实施例中, 动态口令令牌在定时时间到时, 检测当前所处环境的温度, 例如检测到的 温度 T为 22度, 之后, 重新装载定时器, 对下一次动态口令令牌所处环境温度的检测进 行定 时。

进一步地, 动态口令令牌可以通过查询标志位的方式来确 定是否要检测当前所处环境的 温度, 定时时间到时, 动态口令令牌内的硬件电路将改变所述标志位 , 例如将标志位由 0改 为 1, 动态口令令牌查询所述标志位, 例如, 当标志位为 1 时, 动态口令令牌检测当前所处 环境的温度。

103、动态口令令牌根据记录的温度 T查找预先存储的数据表, 并判断是否能够在该数据 表中查找得到温度 T所对应的晶振频率 f,

如果能查到, 执行 106;

如果不能查到, 执行 104;

104、动态口令令牌根据记录的温度 T查找预先存储的数据表得到该数据表中与温 T接 近的两个温度 T1和 T2;

本实施例中,根据表 1中所存储的数据可以知道,与 T=22度最为接近的两个温度是 Tl=20 度, Τ2=24度。

105、动态口令令牌根据温度 T1和 Τ2 ^数据表中查找得到温度 Tl、 Τ2下的晶振频率 fl、 ΐ2, 并根据 Tl、 T2、 fl、 f2计算晶体在温度 Τ下所对应的晶振频率 f;

具体地, 根据 Tl、 T2、 fl、 f2计算晶体在温度 T下所对应的晶振频率 f 的计算方式是:

T-T1 _ /-/1

T2-T1 _ /2-/1, 本实施例中, 根据查表 1可以得到 T1 、 T2对应的晶振频率 fl和 f2, 分别记为 a= (Tl, fl) = (20度, 32767.5Hz) 和 b= (T2, f2) = (24度, 32767.95Hz) 及 T=22度,将该组数据 代入上述公式得到 f 为: 32767.95Hz;

本实施例中, 如果在 102中检测到的温度 T=-20度, 则在数据表中就可以查找到晶体在 -20度下的晶振频率为 32765Ηζ。

106、 动态口令令牌计算晶体在温度 Τ下的时间偏差 ΔΤ;

具体地, 动态口令令牌计算温度 Τ下晶体振荡器的晶振频率偏差 Af, 并将计算得到的晶 振频率偏差 Af转换为时间偏差 Δΐ, 需要说明的是, 计算得到的时间偏差 At是当前 1秒内 的时间偏差, 而温度 T下的时间偏差 ΔΤ还包括定时时间内的时间偏差, 所以, 温度 T下的 时间偏差 ΔΤ为当前 1秒内的时间偏差 Δΐ乘以定时时间再加上当前 1秒内的时间偏差,并将 计算得到的温度 Τ下的时间偏差 ΔΤ存储在动态口令令牌的临时缓存中;

具体地, Δΐ、 Δΐ的计算方式为:

△f=f-标准晶振频率;

△t = Af/f (秒);

其中, 标准晶振频率为常温 (25度) 下的晶体振荡器的晶振频率, 本实施例中, 由于采 用的是 32.768KHz的晶体振荡器, 则标准晶振频率为 32.768KHz。

本实施中, At= f_标准晶振频率 = 32767.95-32768 = _ L 5 * 1Q - 6 秒;

f 32767.95

贝 |J, 温度 T下的时间偏差 ΔΤ=-1.5*10— 6 *3601秒, 即温度 Τ下当前时间值和标准时间值 相比较慢了 1.5*10— 6 *3601秒。

107、 动态口令令牌根据计算得到的时间偏差 ΔΤ计算当前累计时间偏差 T' , 并将计算 得到的当前累计时间偏差 T' 存储在动态口令令牌的临时缓存中;

本实施例中, 计算当前累计时间偏差 T' 的过程是一个累加计算的过程, 将当前得到的 时间偏差 ΔΤ 与之前定时时间到时计算得到的时间偏差进行 累加就得到当前累计时间偏差 T' 。

具体地, 本次定时时间到时, 计算得到的时间偏差 ΔΤ为 -1.5*10— 6 *3601秒, 在此之前, 已有两次开启定时, 进行了温度的检测, 计算得到的时间偏差分别为 -0.75*10— 6 *3600 秒和 -1· 15*10— 6 *3600 秒, 则当前累计时间偏差为 (-0.75*10— 6 *3601 秒) + (-1· 15*10— 6 *3601 秒) + (-1.5*10— 6 *3601秒), 并将计算得到的当前累计时间偏差 T' 存储在临时缓存中, 作 为下次计算当前累计时间偏差的基数。

108、 动态口令令牌判断当前缓存中的累计时间偏差 T' 是大于、 等于还是小于预定值, 本实施例中预定值为 1秒,

如果是等于 1秒, 执行 109;

如果是大于 1秒, 则执行 110;

如果是小于 1秒, 则返回执行 102;

109、 动态口令令牌对令牌的当前时间进行校正, 并清空当前缓存, 即将当前累计时间偏 差清零, 返回执行 102;

具体地, 动态口令令牌将当前时间加上 1秒后得到校正后的时间, 并清空缓存;

110、 动态口令令牌对令牌的当前时间进行校正, 并将当前累计时间偏差 T ' 减去 1秒后 得到的时间值保存至临时缓存中, 作为下次进行累加计算的基数, 返回执行 102。

具体地, 动态口令令牌将当前时间加上 1秒后得到校正后的时间;

109和 110中均对动态口令令牌的当前时间加上 1秒得到校正后的时间, 原因如下: 由 温漂曲线图 (图 1 ) 可以直观的看出, 晶体的晶振频率在 25度时最大, 而其他温度下, 晶体 的晶振频率都会变慢, 也就是说晶体的实际频率是小于等于标准晶振 频率的, 在与标准晶振 频率相比, 时钟晶体在 1秒的时间里比标准震荡次数(32768)要少, 偏差是 Af, 则时钟晶 体的实际震荡时间与标准的震荡时间的偏差是 Af/f (秒),即时钟晶体的实际震荡时间比标准 的震荡时间慢了 Af/f (秒), 因此, 只需当偏差 Af/f (秒)累加到 1秒的时候, 对动态口令令 牌的当前时间加上 ls, 便达到了校正的目的。

111、 触发动态口令令牌, 提取当前经过校正的时间值及动态因子的变化 时间步长, 并根 据所述时间值及变化时间步长计算得到动态因 子;

需要说明的是: 基于时间同步认证技术的动态口令令牌是把时 间作为动态因子, 采用一 定的口令生成算法对当前时间因子和静态因子 进行计算, 动态因子一般以 60秒或 30秒作为 变化时间步长。 在每个动态令牌出厂时, 就已经设定好了该令牌的动态因子的计算起始 时间 和动态因子的变化时间步长。例如: 出厂时设定动态因子的计算起始时间为 2010年 1月 1日 0时 0分 0秒, 动态因子的变化时间步长为 60秒。

动态因子的计算方式为:(当前提取的时间值 -计算起始时间) /动态因子的变化时间步长;

112、 动态口令令牌根据计算得到的动态因子生成并 显示动态口令;

具体地, 动态口令令牌根据计算得到的动态因子、 预先存储的静态因子, 根据预存的动 态口令生成算法计算得到动态口令并显示输出 。

上述实施例是由动态口令令牌的应用程序来实 现对由于温漂而引起的晶体振荡器的时间 偏差的校正, 该校正方法可以通过修改相应的应用程序来实 现温漂的校正精度, 无需增加硬 件芯片, 实现方式灵活、 简单、 易于实现产品的升级, 并有效的改善了动态口令令牌在高低 温环境下由于温漂而弓 I起的时间误差。

在实际应用中, 除了上述实现方式外, 还可以在 RTC内部集成一个数字化的时间精度调 整电路, 动态口令令牌将计算得出的晶振频率偏差 Af 写入到该时间精度调整电路的调整电 路寄存器中, 该调整电路寄存器便可以根据该写入的晶振频 率偏差 来实现由于温漂而引 起的时间偏差的校正。 按照上述所述, 上述步骤中的 106至 110由步骤 106 ' 替换:

106 ' 、 动态口令令牌将温度 T下的晶振频率 f写入到 RTC内部, RTC根据写入的晶振频 率 f对当前的时间值进行校正;

具体地, RTC 内集成有数字化的时间精度调整电路, 该调整电路将写入的晶振频率 f 转 换为调整值, 并根据该调整值进行时钟走时的调整, 具体的表现为改变 1秒内的脉冲计数; 将写入的晶振频率 f转换为调整值具体的转换方式为:

当晶振频率等于标准晶振频率时, 是不需要改变 1秒内的计数脉冲的, 调整值为 0、 +1、 -64、 -63或者为缺省值。

当晶振频率小于标准晶振频率时, 要减少 1秒内的计数脉冲; 调整值 =晶振频 f - ^ ^振频率 = (晶振频率 f-标准晶振频率) * 20 ;

晶振频率 / * 2

标准晶振频率 * 20

由图 1可以看出, 在高低温环境下, 晶体振荡器的晶振频率是小于等于标准晶振频 率的, 所以本实施例中不再考虑晶振频率大于标准晶 振频率的情况。

具体地,数字时间调整电路根据调整值在每分 钟内的第 20秒时改变当前 1秒内的时钟脉 冲的计数值, 从而达到时钟走时调整;

上述方法是通过动态口令令牌内部的集成高精 度的数字时间精度调整电路来实现对动态 口令令牌温漂的校正, 实现方式简单、 校正精度比较高; 可以有效的改善动态口令令牌在高 低温环境中由于温漂而弓 I起的时间误差。

本实施例中, 如果动态口令令牌采用其他晶体(如 32KHz的晶体), 则动态口令令牌内部 只需存储相应晶体振荡器在不同温度下的晶振 频率, 具体的实现方式采用上述说明即可。

另外需要说明的是, 实时时钟电路 RTC通过秒计数确定时间和日期, 当前时间和日期保 存在一组寄存器中, 32. 768KHZ 的晶体振荡器经过分频后会产生 1Hz 的基准来刷新时间和日 期, 秒计数的话计时精度为 1秒, 这样就会有很大的误差, 所以本实施例中还可以使用一种 改进的计数方式来确定时间和日期, 即采用秒浮点计数的方式来实现由于温漂而产 生的时间 误差的校正, 其中, 浮点精度为 10— 6 ; 则 107至 110就可以由以下过程来替换: 将计算得到 的时间偏差 ΔΤ 写入到电路寄存器中, 该电路寄存器是浮点寄存器, 在电路寄存器中浮点精 度的位置上会根据每次写入的时间偏差进行累 加计算, 当累加计算得到的数值满一则自动进 位, 这样就改变了当前的 RTC时钟计数, 从而校正了由于温漂而产生的时钟误差。

现举例来说明秒浮点计数法来校正由于温漂而 产生的时钟误差, 如: 第一次定时时间到 时, 将计算得到的计时偏差 1. 5*10— 6 写入到寄存器中, 第二次定时时间到时, 将计算得到的 计时偏差 1. 54*10— 6 写入到寄存器中, 第三次定时时间到时, 将计算得到的时间偏差 2. 0*10_ 6 写入到寄存器中,……,则寄存器浮点精度位 置上的数值变化为 1. 5*10— 6 , 1. 5*10— 6 +1. 54*10— 6

1. 5*10— 6 +1. 54*10— 6 +2. 0*10— 6 , 1. 5*10— 6 +1. 54*10— 6 +2. 0*10— 6 + , , 当浮点精度位置上数 值大于等于 1时, 将会向秒的位置上自动进 1, 例如浮点位置上的数值为 100005*10— 6 时, 当 前 RTC计数值会自动加 1, 而此时浮点精度位置上的数值为 0. 5*10— 6 , 当下次定时开始, 写入 的时间偏差为 3. 6*10— 6 , 浮点精度位置上的数值变为 0. 5*10— 6 +3. 6*10— 6 , 按照上述方式进行变 化。 实施例 2

本发明实施例提供了另一种校正动态口令令牌 温漂的方法, 需要说明的是: 本发明实施 例提供的动态口令令牌内部存储有 32. 768KHz晶体在不同温度下的特征值,即频率稳定 度(如 表 2所示),其中,表 2中的数据是经过反复试验计算得出的,进一 地, 为了提高试验精度, 在进行试验的过程中, 可以选择更密集的试验温度来测试晶体的时间 偏差。

其中, 频率稳定度是指在晶体振荡器的工作温度范围 内晶振频率随着温度变化的大小, 一般用 ppm来表示, 其中, lppm=l*10— 6 秒。

具体地, lppm指温度每变化一度, 晶体的晶振频率变化百万分之一, 就是说频率的误差 = (1/1*10 6 ) *振荡器的标称频率 ;

32. 786KHZ晶体在不同温度下的频率稳定度 (单位: ppm)

为了更直观的体现晶体的晶振频率随温度的变 化趋势, 我们将表 2中的数据以曲线图的 形式展示(如图 1所示), 从图 1中可以清楚的看到晶体的晶振频率会受到温 变化的极大影 响, 因此动态口令令牌在提交客户使用时, 必须要对动态口令令牌的温漂进行校正, 具体的 校正方式如下:

201、 动态口令令牌装载定时器, 定时器的定时时间即第一预设时间, 可以根据实际情况 进行设定, 本实施例中按照定时时间为 30分钟来设置定时器;

具体地, 如果动态口令令牌所处环境的温差较大, 定时器的定时时间设置为 10分钟或者 更短的定时时间, 如果动态口令令牌所处的环境温差较小, 定时器的定时时间设置为 1小时 或者更长的定时时间, 这样在提高校正温漂精度的同时又降低了动态 口令令牌的功耗, 从而 提高动态口令令牌的使用寿命。

202、 动态口令令牌在定时时间到时, 检测当前所处环境的温度, 并将检测到的温度 T记 录下来, 然后, 重新装载定时器;

需要说明的是, 动态口令令牌内设置有热敏电阻, 动态口令令牌根据该热敏电阻来检测 动态口令令牌所处环境的温度。 具体为: 该热敏电阻串接一个高精度的电阻, 该高精度的电 阻与电源和地相连, 热敏电阻的阻值是根据动态口令令牌所处环境 的温度的变化而变化的, 因此,热敏电阻 与高精度电阻相连接处的电压值也是根据动态 口令令牌所处环境的温度的变 化而变化的,另外,动态口令令牌内的 AD转换器是连接在热敏电阻与高精度电阻相连 处的, 当定时时间到, 动态口令令牌检测当前所处环境的温度时, 动态口令令牌启动 AD转换器, 把 热敏电阻端的电压值转换为数字信号, 然后根据热敏电阻的温度系数和 AD的基准电压, 计算 出当前环境的温度;

本实施例中, 动态口令令牌在定时时间到时, 检测当前所处环境的温度, 例如检测到的 温度 T为 32度, 之后, 重新装载定时器, 对下一次动态口令令牌所处环境温度的检测进 行定 时;

进一步地, 动态口令令牌可以通过查询标志位的方式来确 定是否要检测当前所处环境的 温度, 定时时间到时, 动态口令令牌内的硬件电路将改变所述标志位 , 例如将标志位由 0改 为 1, 动态口令令牌查询所述标志位, 例如, 当标志位为 1 时, 动态口令令牌检测当前所处 环境的温度。

203、动态口令令牌根据记录的温度 T查找预先存储的数据表, 并判断是否能够在该数据 表中查找到温度 T下的频率稳定度 At,

如果能查到, 将查找得到的频率稳定度 At 保存在动态口令令牌内部的缓存中并执行

206;

如果不能查到, 执行 204;

204、 动态口令令牌根据记录的温度 T查找数据表中与温度 T接近的两个温度 T1和 T2; 本实施例中,根据表 2存储的数据可以知道,与 32度最为接近的两个温度是 Tl=31. 5度,

Τ2=33. 2度;

205、动态口令令牌根据查找得到的温度 T1和 Τ2得到频率 Tl、 Τ2下的频率稳定度 At l、 Δΐ2, 并根据 Τ1、 Τ2、 Δΐ Κ Δΐ2计算晶体在温度 Τ下所对应的频率稳定度 At;

根据 Τ1、 Τ2、 Δΐ 1、 Δΐ2计算晶体在温度 Τ下所对应的频率稳定度 At的具体计算方式 是 T - Tl _ Ar - Arl

疋' T2 - T1 ~ Δί2 - Δί1

本实施例中, 查找数据表 2可以得到 T1对应的频率稳定度 Δΐΐ和 Τ2对应的频率稳定度 Δΐ2, 记为 a= ( Τ1, Δΐ ΐ ) = ( 31. 5° , -2. 15ppm)和 b= ( Τ2, Δΐ2 ) = ( 33. 2° , -3. 65ppm) 及 Τ=32° ,将该组数据代入上述公式得到 At为: -1. 52ppm;

如果 202中检测到的温度 T=-20度, 则在数据表中就可以查找到晶体在 -20度下的时间 偏差为 _95ppm。 206、 动态口令令牌计算温度 T下的时间偏差 ΔΤ;

具体地, 动态口令令牌根据频率稳定度 At计算温度 Τ下的时间偏差 ΔΤ, 具体计算方式 如下: 将频率稳定度按照百万分之一秒转换为时间值 , 该时间值是当前 1秒内的时间偏差, 而当前时间偏差还包括定时时间内的时间偏差 , 所以温度 Τ下的时间偏差 ΔΤ为所述时间值 乘以定时时间再加上当前 1秒内的时间偏差, 并将计算得到的时间偏差 ΔΤ存储至临时缓存; 本实施例中, 温度 Τ下的时间偏差 ΔΤ=-1. 52*10— 6 *1801秒。

207、 动态口令令牌计算当前累计时间偏差 T ' ;

本实施例中, 计算当前累计时间偏差 T ' 的过程是一个累加计算的过程, 即动态口令令 牌将当前得到的时间偏差 ΔΤ 与之前定时时间到时计算得到的时间偏差进行 累加就得到当前 累计时间偏差 T ' 。

具体地, 本次定时时间到时, 计算得到的时间偏差 ΔΤ为 -1. 52*10— 6 *1801秒, 而在此之 前, 已有两次开启定时进行了温度的检测, 计算得到的时间偏差分别为 -0. 75*10— 6 *1801 秒 和 -1. 15*10— 6 *1801秒, 则当前累计时间偏差为 (-0. 75*10— 6 *1801秒) + ( - 1· 15*10— 6 *1801 秒) + ( -1. 5*10— 6 *1801秒), 并将计算得到的当前累计时间偏差 T ' 存储在临时缓存中, 作 为下次计算当前累计时间偏差的基数。

208、 动态口令令牌判断当前缓存中的累计时间偏差 是大于、 等于还是小于预定值, 本实 例中预定值为 1秒,

如果是等于 1秒, 执行 209;

如果是大于 1秒, 则执行 210;

如果是小于 1秒, 则返回执行 202;

209、 动态口令令牌对令牌的当前时间进行校正, 并清空当前缓存, 即将当前累计时间偏 差清零, 返回执行 202;

具体地, 动态口令令牌将当前时间加上 1秒得到校正后的时间, 并清空缓存中的时间偏 差;

210、 动态口令令牌对令牌的当前时间进行校正, 保存的当前累计时间偏差 T ' 减去 1秒 后得到的时间值至临时缓存中, 以便在下次定时时间到作为累加计算的基数, 返回执行 202。

具体地, 动态口令令牌将当前时间加上 1秒后得到校正后的时间;

209和 210中均对动态口令令牌的当前时间加上 1秒得到校正后的时间, 原因如下: 由 温漂曲线图 (图 1 ) 可以直观的看出, 晶体的频率稳定度在 25度时为 0, 即晶振频率不存在 偏差, 而其他温度下, 晶体的频率稳定度都会出现不同程度的变化, 且数值都是负的, 说明, 晶体振荡器在当前 1 秒内, 与标准时间值相比要慢, 偏差是 Δΐ*10— 6 秒,因此, 只需当偏差 Δΐ*10— 6 秒累加到 1秒的时候, 对动态口令令牌的当前时间加上 ls, 便达到了校正的目的。

211、 触发动态令牌, 提出当前经过校正的时间值及动态因子的变化 时间步长, 并根据所 述时间值及变化时间步长计算得到动态因子;

需要说明的是: 基于时间同步认证技术的动态口令令牌是把时 间作为动态因子, 采用一 定的口令生成算法对当前时间因子和静态 子进行计算, 动态因子一般以 60秒或 30秒作为 变化时间步长。 在每个动态令牌出厂时, 就已经设定好了该令牌的动态因子的计算起始 时间 和动态因子的变化时间步长。例如: 出厂时设定动态因子的计算起始时间为 2010年 1月 1日 0时 0分 0秒, 动态因子的变化时间步长为 60秒。

动态因子的计算方式为:(当前提取的时间值 -计算起始时间) /动态因子的变化时间步长;

212、 动态口令令牌根据计算得到的动态因子得到动 态口令并显示输出;

具体地, 动态口令令牌根据计算得到的动态因子及预先 存储的静态因子, 并根据预先存 储的动态口令生成算法, 计算得到动态口令并显示输出;

上述实施例是由动态口令令牌的应用程序来实 现对由于温漂而引起的晶体振荡器的时间 偏差的校正, 该校正方法可以通过修改相应的应用程序来实 现温漂的校正精度, 无需增加硬 件芯片, 实现方式灵活、 简单、 易于实现产品的升级, 并有效的改善了动态口令令牌在高低 温环境下由于温漂而弓 I起的时间误差。

在实际应用中, 除了上述实现方式外, 还可以在 RTC内部集成一个数字化的时间精度调 整电路, 动态口令令牌将查找得到的频率稳定度 At 写入到该时间精度调整电路的调整电路 寄存器中, 该调整电路寄存器便可以根据该写入的频率稳 定度 At 来实现由于温漂而引起的 时间偏差的校正。

按照上述所述, 上述步骤中的 206至 210由步骤 206 ' 替换:

206 ' 、动态口令令牌将频率稳定度 At写入到 RTC内部, RTC根据写入的频率稳定度 At 对当前的时间值进行校正;

具体地, RTC 内部集成了数字化的时间精度调整电路, 该时间精度调整电路将时间偏差 Δΐ写入到调整电路寄存器中,该调整电路寄 器根据时间偏差 At来有效的调整时钟计时的 精度。

具体地, 数字时间调整电路根据写入的频率稳定度在每 1分钟内的第 20秒时改变当前 1 秒内的时钟脉冲的时钟计数值, 从而达到时钟走时调整;

本实施例中, 如果动态口令令牌采用其他晶体(如 32KHz的晶体), 则动态口令令牌内部 只需存储相应晶体振荡器在不同温度下的晶振 频率, 具体的实现方式采用上述说明即可。 实施例 3

本发明实施例提供了一种校正动态口令令牌温 漂的方法, 需要说明的是: 本发明实施例 提供的动态口令令牌内部存储有 32. 768KHZ的晶体振荡器在不同温度下的特征值, 即时间偏 差 (如表 3所示), 其中, 表 3中的数据是经过反复试验得出的, 进一步地, 为了提高试验精 度, 在进行试验的过程中, 可以选择更密集的试验温度来测试晶体振荡器 的晶振频率。

需要说明的是, 时间偏差具体是指, 在定时器定时时间到时, 动态口令令牌的在定时期 间内的时间偏差。 32. 786KHz晶体振荡器在不同温度下的晶振频率 (单位 s )

301、 动态口令令牌装载定时器, 定时器的定时时间, 即第一预设值可以根据实际情况进 行设定, 本实施例中按照定时时间为 30分钟来设置定时器;

具体地, 如果动态口令令牌所处环境的温差较大, 定时器的定时时间设置为 10分钟或者 更短的定时时间, 如果动态口令令牌所处的环境温差较小, 定时器的定时时间设置为 1小时 或者更长的定时时间, 这样在提高校正动态口令令牌温漂精度的同时 又降低了动态口令令牌 的功耗, 从而提高动态口令令牌的使用寿命。

302、 动态口令令牌在定时时间到时, 检测当前所处环境的温度, 并将检测到的温度 T记 录下来, 然后, 重新装载定时器;

具体地, 动态口令令牌内设置有热敏电阻, 动态口令令牌根据该热敏电阻来检测动态口 令令牌当前所处环境的温度。 具体为: 该热敏电阻串接一个高精度的电阻, 其中, 该高精度 的电阻与电源和地相连, 热敏电阻的阻值是根据动态口令令牌所处环境 的温度的变化而变化 的, 因此, 热敏电阻与高精度电阻相连接处的电压值也是 根据动态口令令牌所处环境的温度 的变化而变化的, 另外, 动态口令令牌内的 AD转换器是连接在热敏电阻与高精度电阻相连 处的, 当定时时间到, 动态口令令牌检测当前所处环境的温度时启动 AD转换器, 该 AD转换 器把热敏电阻端的电压值转换为数字信号,然 后根据热敏电阻的温度系数和 AD转换器的基准 电压计算出动态口令令牌当前所处环境的温度 ;

本实施例中, 动态口令令牌在定时时间到时, 检测当前所处环境的温度, 例如检测到的 温度 T为 22度, 之后, 重新装载定时器, 对下一次动态口令令牌所处环境温度的检测进 行定 时。

进一步地, 动态口令令牌可以通过查询标志位的方式来确 定是否要检测当前所处环境的 温度, 第一预设时间到时, 动态口令令牌内的硬件电路将改变所述标志位 , 例如将标志位由 0改为 1, 动态口令令牌查询所述标志位, 例如, 当标志位为 1时, 动态口令令牌检测当前所 处环境的温度。

303、动态口令令牌根据记录的温度 T查找预先存储的数据表, 并判断是否能够在该数据 表中查找得到温度 T所对应的时间偏差 ΔΤ,

如果能查到, 执行 306;

如果不能查到, 执行 304;

304、动态口令令牌根据记录的温度 Τ查找预先存储的数据表得到该数据表中与温 Τ接 近的两个温度 T1和 Τ2;

本实施例中,根据表 1中所存储的数据可以知道,与 Τ=22度最为接近的两个温度是 Tl=20 度, Τ2=24度。

305、动态口令令牌根据温度 T1和 Τ2在数据表中查找得到温度 Τ1、Τ2下的时间偏差△!!、 ΔΤ2, 并根据 Τ1、 Τ2、 ΔΤ 1、 ΔΤ 2计算晶体在温度 Τ下所对应的时间偏差 ΔΤ;

具体地, 根据 Τ1、 Τ2、 ΔΤ 1、 ΔΤ 2计算晶体在温度 Τ下所对应的时间偏差 ΔΤ的计算

, . B T-T1 ΔΤ-ΔΤ1

万式是: = ;

T2-T1 ΔΤ2 - ΔΤ1

本实施例中, 根据查表可以得到 T1 、 Τ2对应的晶振频率 ΔΤ 1和 ΔΤ 2, 分别记为 a= (Τ1, ΔΤ 1) = (20度, -45μ δ ) 和 = (Τ2, ΔΤ 2) = (24度, -22.8μ δ ) 及 Τ=22度,将该 组数据代入上述公式得到 ΔΤ为: -22.8μ 8;

本实施例中, 如果在 302中检测到的温度 Τ=-20度, 则在数据表中就可以查找到晶体在 -20度下的时间偏差为 -2850μ 8

306、 动态口令令牌根据时间偏差 ΔΤ计算当前累计时间偏差 T' , 并将计算得到的当前 累计时间偏差 T' 存储在动态口令令牌的临时缓存中;

本实施例中, 计算累计时间偏差 T' 的过程是一个累加计算的过程, 即动态口令令牌将 当前得到的时间偏差 ΔΤ 与之前当时时间到时计算得到的时间偏差进行 累加就得到当前累计 时间偏差 T' 。

具体地, 本次定时时间到时, 计算得到的时间偏差 ΔΤ为 -22.8*10— 6 秒, 而在此之前, 已 有两次开启定时进行了温度的检测,计算得到 的时间偏差分别为 0秒和 -45*10— 6 秒,则当前累 计时间偏差为 (-22.8*10— 6 秒) + (0秒) + (-45*10— 6 秒), 并将计算得到的当前累计时间偏差 T' 存储在临时缓存中, 作为下次计算当前累计时间偏差的基数。

307、 动态口令令牌判断当前缓存中的累计时间偏差 T' 是大于、 等于还是小于预定值, 本实施例中预定值为 1秒,

如果是等于 1秒, 执行 308;

如果是大于 1秒, 则执行 309;

如果是小于 1秒, 则返回执行 302;

308、 动态口令令牌对令牌的当前时间进行校正, 并清空当前缓存, 即将当前累计时间偏 差清零, 返回执行 302;

具体地, 动态口令令牌将当前时间加上 1秒后得到校正后的时间, 并清空缓存中; 309、动态口令令牌对令牌的当前时间进行校正 , 并将当前累计时间 T减去 1秒后得到的 时间值保存至临时缓存中, 以便在动态口令令牌再次定时时间到时, 作为累加计算的基数, 返回执行 302。

具体地, 动态口令令牌将当前时间加上 1秒后得到校正后的时间;

308和 309中均对动态口令令牌的当前时间加上 1秒得到校正后的时间, 原因如下: 由 表 3中的数据可以看出, 出去再室温 ( 25度) 的情况下是没有时间偏差的, 在其他温度下, RTC 晶体都存在时间误差, 且误差与标准时间相比均是要慢于标准时间值 的, 因此, 只需当 偏差 Af/f (秒)累加到 1秒的时候, 对动态口令令牌的当前时间加上 ls, 便达到了校正的目 的。

310、 触发动态口令令牌, 提取当前经过校正的时间值及动态因子的变化 时间步长, 并根 据所述时间值及变化时间步长计算得到动态因 子;

需要说明的是: 基于时间同步认证技术的动态口令令牌是把时 间作为动态因子, 采用一 定的口令生成算法对当前时间因子和静态因子 进行计算, 动态因子一般以 60秒或 30秒作为 变化时间步长。 在每个动态令牌出厂时, 就已经设定好了该令牌的动态因子的计算起始 时间 和动态因子的变化时间步长。例如: 出厂时设定动态因子的计算起始时间为 2010年 1月 1日 0时 0分 0秒, 动态因子的变化时间步长为 60秒。

动态因子的计算方式为:(当前提取的时间值 -计算起始时间) /动态因子的变化时间步长;

311、 动态口令令牌根据计算得到的动态因子生成并 显示动态口令;

具体地, 动态口令令牌根据计算得到的动态因子、 预先存储的静态因子, 根据预存的动 态口令生成算法计算得到动态口令并显示输出 。

上述实施例是由动态口令令牌的应用程序来实 现对由于温漂而引起的晶体振荡器的时间 偏差的校正, 该校正方法可以通过修改相应的应用程序来实 现温漂的校正精度, 无需增加硬 件芯片, 实现方式灵活、 简单、 易于实现产品的升级, 并有效的改善了动态口令令牌在高低 温环境下由于温漂而弓 I起的时间误差。 实施例 4

一种动态口令令牌 400, 该动态口令令牌包括定时器模块 401、 检测模块 402、 查询模块 403、 表存储模块 404、 校正模块 405、 触发模块 406、 生成模块 407、 显示模块 408;

定时器模块 401用于定时开启检测模块 402检测动态口令令牌 400当前所处环境的温度; 本实施例中定时器模块 401的定时开启时间可以根据实际情况进行设置 , 例如定时器设 置为每 10分钟或 1个小时开启一次, 如果动态口令令牌所处环境的温差较大, 可以选择较短 的定时开启时间, 如果动态口令令牌所处环境的温差不是很大, 可以选择较长的定时开启时 间; 这样可以在提高校正温漂精度的同时提高动态 口令令牌的工作效率。

检测模块 402主要用于在定时器模块 401的定时时间到时, 检测动态口令令牌 400当前 所处环境的温度, 并触动查询模块 403 根据检测到的当前所处环境温度去查询表存储 模块 404; 查询模块 403用于根据检测模块 402检测到的动态口令令牌 400当前所处环境的温度, 查找表存储模块 404中动态口令令牌 400当前所处环境温度下的特征值;

表存储模块 404存储有 RTC晶体在不同温度下的特征值;

具体地, 所述特征值包括 RTC晶体在不同温度下的晶振频率或 RTC晶体在不同温度下的 频率稳定度或不同温度下的时间偏差。

校正模块 405用于根据查询模块 403查询得到的特征值对动态口令令牌 400的当前时间 进行校正。

触发模块 406用于开启生成模块 407, 具体为触发按键、 按钮或开关;

生成模块 407用于根据当前经过校正后的时间值生成动态 口令, 具体包括动态因子生成 单元、 动态口令生成单元;

动态因子生成单元主要用于根据提取的校正模 块 406校正后得到的当前时间值来生成动 态因子;

动态口令生成单元用于根据动态因子生成单元 生成的动态因子来生成动态口令; 显示模块 408, 用于在动态口令生成后显示或关闭显示生成的 动态口令;

具体地, 所述查询模块 403还包括:

查询单元, 用于根据所述检测得到的当前环境温度在表存 储模块中查找得到所述环境温 度下相应的特征值, 并判断是否能够查找得到所述特征值;

第一计算单元, 用于当所述查询单元的判断结果为不能时, 根据表存储模块中的数据及 检测到的温度计算所述环境温度下的特征值。

具体地, 校正模块 405包括:

第二计算单元, 用于根据查询模块 403查找得到的特征值, 计算当前累计时间偏差; 当所述特征值为 RTC晶体在不同温度下的晶振频率时, 所述第二计算模块还用于计算晶 振频率偏差, 以及将晶振频率偏差转换为时间偏差的运算;

判断单元, 用于判断第二计算单元 405累加计算得到的累计时间偏差的值是否达到 预定 值,

第一校正单元, 当判断单元的判断结果是是时, 根据该预定值对动态口令令牌 400的当 前时间进行校正;

具体地, 所述校正模块 405还包括:

转换单元,用于将查询模块 403查询得到的特征值根据预定的方式进行转换 得到调整值; 第二校正单元, 用于根据转换单元转换得到的调整值来改变时 钟脉冲的时钟计数值, 从 而对当前时间值进行校正。

本实施例中, 预定值是预先设定的 1秒;

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