一種多種子動態(tài)令牌的工作方法
【專利摘要】本發(fā)明公開了一種多種子動態(tài)令牌的工作方法,屬于信息安全領(lǐng)域。所述方法包括:動態(tài)令牌上電初始化,打開總中斷,初始化系統(tǒng)狀態(tài)后進入休眠模式,當動態(tài)令牌檢測到中斷時從休眠模式被喚醒進入中斷處理流程,中斷處理流程結(jié)束后檢查各喚醒標志,執(zhí)行與被置位的喚醒標志對應(yīng)的處理流程。本發(fā)明的有益效果在于:使用本發(fā)明提供的方法,用戶能夠通過操作動態(tài)令牌實現(xiàn)向動態(tài)令牌中燒寫種子數(shù)據(jù),以及更新動態(tài)令牌中的種子數(shù)據(jù),并且本發(fā)明涉及的動態(tài)令牌可存儲和管理多個種子,在動態(tài)令牌使用過程中,能夠根據(jù)用戶的選擇使用對應(yīng)的種子數(shù)據(jù)生成動態(tài)口令,方便用戶使用,并且動態(tài)令牌的唯一標識與種子數(shù)據(jù)之間的綁定保障了種子數(shù)據(jù)的可靠性和安全性。
【專利說明】一種多種子動態(tài)令牌的工作方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及信息安全領(lǐng)域,尤其涉及一種多種子動態(tài)令牌的工作方法。
【背景技術(shù)】
[0002]在現(xiàn)有技術(shù)中,動態(tài)令牌(One-time Password, OTP)是一種安全便捷的賬號防盜技術(shù),根據(jù)專門的算法生成一個不可預(yù)測的隨機數(shù)字組合作為口令,每個口令只能使用一次,用戶進行認證時候,除輸入賬號和靜態(tài)密碼之外,必須要求輸入動態(tài)密碼,只有通過系統(tǒng)驗證,才可以正常登錄或者交易,從而有效保證用戶身份的合法性和唯一性。動態(tài)令牌最大的優(yōu)點在于,用戶每次使用的口令都不相同,使得不法分子無法仿冒合法用戶的身份。動態(tài)口令認證技術(shù)被認為是目前能夠最有效解決用戶的身份認證方式之一,可以有效防范黑客木馬盜竊用戶賬戶口令、假網(wǎng)站等多種網(wǎng)絡(luò)問題,導(dǎo)致的用戶的財產(chǎn)或者資料的損失。目前被廣泛運用在網(wǎng)銀、網(wǎng)游、電信運營商、電子政務(wù)、企業(yè)等領(lǐng)域。
[0003]發(fā)明人在實現(xiàn)本發(fā)明的過程中發(fā)現(xiàn),目前的動態(tài)令牌中的種子數(shù)據(jù)都是在動態(tài)令牌出廠前,由動態(tài)令牌生產(chǎn)廠家內(nèi)置在動態(tài)令牌中,動態(tài)令牌被激活后不允許用戶更新,并且只面向單一應(yīng)用,這些問題不僅給用戶的使用帶來了不便,還會帶來硬件資源的浪費。
【發(fā)明內(nèi)容】
[0004]本發(fā)明的目的是為了克服現(xiàn)有技術(shù)的缺陷,提供一種多種子動態(tài)令牌的工作方法。
[0005]本發(fā)明方法是通過下述技術(shù)方案實現(xiàn)的:
[0006]一種多種子動態(tài)令牌的工作方法,其基本實施過程如下:
[0007]步驟S1、動態(tài)令牌上電初始化,打開總中斷,設(shè)置系統(tǒng)狀態(tài)為第一預(yù)設(shè)狀態(tài),進入休眠模式,等待被喚醒;
[0008]步驟S2、所述動態(tài)令牌檢測到中斷時被喚醒,進入中斷處理流程,待所述中斷處理流程結(jié)束后執(zhí)行步驟S3 ;
[0009]所述中斷處理流程包括:所述動態(tài)令牌判斷按鍵中斷標志是否被置位,是則置位按鍵喚醒標志,復(fù)位所述按鍵中斷標志,中斷處理流程結(jié)束,否則中斷處理流程結(jié)束,其中,當所述動態(tài)令牌的按鍵被按下時觸發(fā)按鍵中斷,所述按鍵中斷標志被置位;
[0010]步驟S3、所述動態(tài)令牌檢查所述按鍵喚醒標志,若所述按鍵喚醒標志被置位,則進入按鍵處理流程,待所述按鍵處理流程結(jié)束后,重新進入休眠模式,等待被喚醒,返回步驟S2 ;
[0011 ] 所述按鍵處理流程包括:
[0012]步驟a、所述動態(tài)令牌獲取鍵值,判斷鍵值和系統(tǒng)狀態(tài),當鍵值為第一預(yù)設(shè)鍵值且系統(tǒng)狀態(tài)為第一預(yù)設(shè)狀態(tài)時執(zhí)行步驟b ;當鍵值為第二預(yù)設(shè)鍵值且系統(tǒng)狀態(tài)為第二預(yù)設(shè)狀態(tài)時執(zhí)行步驟c ;當鍵值為第二預(yù)設(shè)鍵值且系統(tǒng)狀態(tài)為第三預(yù)設(shè)狀態(tài)時執(zhí)行步驟d ;當鍵值為第二預(yù)設(shè)鍵值且系統(tǒng)狀態(tài)為第五預(yù)設(shè)狀態(tài)時執(zhí)行步驟e ;當鍵值為第三預(yù)設(shè)鍵值且系統(tǒng)狀態(tài)為第二預(yù)設(shè)狀態(tài)時執(zhí)行步驟f;當鍵值為第三預(yù)設(shè)鍵值且系統(tǒng)狀態(tài)為第三預(yù)設(shè)狀態(tài)時執(zhí)行步驟g ;否則,執(zhí)行步驟h ;
[0013]步驟b、所述動態(tài)令牌顯示功能菜單,初始化功能菜單索引,設(shè)置系統(tǒng)狀態(tài)為第二預(yù)設(shè)狀態(tài),執(zhí)行步驟h;
[0014]步驟C、所述動態(tài)令牌根據(jù)所述功能菜單索引判斷用戶選擇的操作,若用戶選擇的操作為生成口令,則顯示種子數(shù)據(jù)菜單,初始化種子菜單索引,設(shè)置系統(tǒng)狀態(tài)為第三預(yù)設(shè)狀態(tài),執(zhí)行步驟h,若用戶選擇的操作為燒寫種子數(shù)據(jù),則獲取預(yù)先存儲的動態(tài)令牌序列號并顯示,設(shè)置系統(tǒng)狀態(tài)為第五預(yù)設(shè)狀態(tài),執(zhí)行步驟h ;
[0015]步驟d、所述動態(tài)令牌讀取所述動態(tài)令牌中存儲的與所述種子菜單索引對應(yīng)的種子數(shù)據(jù),根據(jù)讀取到的種子數(shù)據(jù)生成動態(tài)口令并顯示,設(shè)置系統(tǒng)狀態(tài)為第六預(yù)設(shè)狀態(tài),執(zhí)行步驟h ;
[0016]步驟e、所述動態(tài)令牌采集光感數(shù)據(jù),判斷采集到的光感數(shù)據(jù)中的序列號與預(yù)先存儲的動態(tài)令牌序列號是否匹配,若匹配則存儲采集到的光感數(shù)據(jù)中的種子數(shù)據(jù),根據(jù)最新存儲的種子數(shù)據(jù)生成動態(tài)口令并顯示,設(shè)置系統(tǒng)狀態(tài)為所述第六預(yù)設(shè)狀態(tài),執(zhí)行步驟h,若不匹配則清除采集到的光感數(shù)據(jù),獲取預(yù)先存儲的動態(tài)令牌序列號并顯示,設(shè)置系統(tǒng)狀態(tài)為所述第五預(yù)設(shè)狀態(tài),執(zhí)行步驟h ;
[0017]步驟f、所述動態(tài)令牌更新所述功能菜單索引,執(zhí)行步驟h ;
[0018]步驟g、所述動態(tài)令牌更新所述種子菜單索引,執(zhí)行步驟h ;
[0019]步驟h、所述動態(tài)令牌復(fù)位所述按鍵喚醒標志,所述按鍵處理流程結(jié)束。
[0020]進一步地,所述步驟c中,還可以包括:若用戶選擇的操作為更新種子數(shù)據(jù),所述動態(tài)令牌顯示種子數(shù)據(jù)菜單,初始化種子菜單索引,設(shè)置系統(tǒng)狀態(tài)為第四預(yù)設(shè)狀態(tài),執(zhí)行步驟h;
[0021]相應(yīng)地,所述步驟c中,當用戶選擇的操作為燒寫種子數(shù)據(jù)時,還包括:置位添加種子數(shù)據(jù)標志;
[0022]所述步驟a中,還包括:當鍵值為第二預(yù)設(shè)鍵值且系統(tǒng)狀態(tài)為所述第四預(yù)設(shè)狀態(tài)時,所述動態(tài)令牌獲取預(yù)先存儲的動態(tài)令牌序列號并顯示,設(shè)置系統(tǒng)狀態(tài)為第五預(yù)設(shè)狀態(tài),復(fù)位所述添加種子數(shù)據(jù)標志,執(zhí)行步驟h;當鍵值為第三預(yù)設(shè)鍵值且系統(tǒng)狀態(tài)為所述第四預(yù)設(shè)狀態(tài)時,更新所述種子菜單索引,執(zhí)行步驟h ;
[0023]所述步驟e中,所述存儲采集到的光感數(shù)據(jù)中的種子數(shù)據(jù)具體包括:檢查所述添加種子數(shù)據(jù)標志,若所述添加種子數(shù)據(jù)標志被置位,則存儲采集到的光感數(shù)據(jù)中的種子數(shù)據(jù),若所述添加種子數(shù)據(jù)標志未被置位,則用采集到的光感數(shù)據(jù)中的種子數(shù)據(jù)替換與種子菜單索引對應(yīng)的種子數(shù)據(jù)。
[0024]進一步地,所述步驟c中,還可以包括:若用戶選擇的操作為刪除種子數(shù)據(jù),則顯示種子數(shù)據(jù)菜單,初始化種子菜單索引,設(shè)置系統(tǒng)狀態(tài)為第十預(yù)設(shè)狀態(tài),執(zhí)行步驟h ;
[0025]相應(yīng)地,所述步驟a中,還包括:當鍵值為第二預(yù)設(shè)鍵值且系統(tǒng)狀態(tài)為所述第十預(yù)設(shè)狀態(tài)時,所述動態(tài)令牌刪除與所述種子菜單索引對應(yīng)的種子數(shù)據(jù),顯示功能菜單,初始化功能菜單索引,設(shè)置系統(tǒng)狀態(tài)為第二預(yù)設(shè)狀態(tài),執(zhí)行步驟h ;當鍵值為第三預(yù)設(shè)鍵值且系統(tǒng)狀態(tài)為所述第十預(yù)設(shè)狀態(tài)時,更新所述種子菜單索引,執(zhí)行步驟h。
[0026]進一步地,所述步驟e可以替換為:所述動態(tài)令牌采集光感數(shù)據(jù),判斷采集到的光感數(shù)據(jù)中的序列號與預(yù)先存儲的動態(tài)令牌序列號是否匹配,若匹配則顯示采集到的光感數(shù)據(jù)中的應(yīng)用信息,設(shè)置系統(tǒng)狀態(tài)為第七預(yù)設(shè)狀態(tài),執(zhí)行步驟h,若不匹配則清除采集到的光感數(shù)據(jù),獲取預(yù)先存儲的動態(tài)令牌序列號并顯示,設(shè)置系統(tǒng)狀態(tài)為所述第五預(yù)設(shè)狀態(tài),執(zhí)行步驟h ;
[0027]相應(yīng)地,所述步驟a中,還包括:當鍵值為第二預(yù)設(shè)鍵值且系統(tǒng)狀態(tài)為所述第七預(yù)設(shè)狀態(tài)時,所述動態(tài)令牌存儲采集到的光感數(shù)據(jù)中的種子數(shù)據(jù),根據(jù)獲取到的種子數(shù)據(jù)生成動態(tài)口令并顯示,設(shè)置系統(tǒng)狀態(tài)為所述第六預(yù)設(shè)狀態(tài),執(zhí)行步驟h。
[0028]進一步地,所述步驟e中,所述采集光感數(shù)據(jù)之后,所述判斷采集到的光感數(shù)據(jù)中的序列號與預(yù)先存儲的動態(tài)令牌序列號是否匹配之前,還可以包括:判斷是否采集完成,若采集完成則判斷采集到的光感數(shù)據(jù)中的序列號與預(yù)先存儲的動態(tài)令牌序列號是否匹配;若采集未完成則判斷是否采集超時,若采集超時則停止采集光感數(shù)據(jù),提示種子數(shù)據(jù)燒寫超時,獲取預(yù)先存儲的動態(tài)令牌序列號并顯示,設(shè)置系統(tǒng)狀態(tài)為所述第五預(yù)設(shè)狀態(tài),執(zhí)行步驟h,若采集未超時則繼續(xù)采集光感數(shù)據(jù)。
[0029]進一步地,所述步驟e中,所述采集光感數(shù)據(jù)之前,還可以包括:設(shè)置系統(tǒng)狀態(tài)為第八預(yù)設(shè)狀態(tài);所述采集光感數(shù)據(jù)之后,所述判斷采集到的光感數(shù)據(jù)中的序列號與預(yù)先存儲的動態(tài)令牌序列號是否匹配之前,還包括:判斷是否采集完成,若采集完成則判斷采集到的光感數(shù)據(jù)中的序列號與預(yù)先存儲的動態(tài)令牌序列號是否匹配;若采集未完成則判斷系統(tǒng)狀態(tài)是否為第九預(yù)設(shè)狀態(tài),是則停止采集光感數(shù)據(jù),提示已取消燒寫種子數(shù)據(jù),獲取預(yù)先存儲的動態(tài)令牌序列號并顯示,設(shè)置系統(tǒng)狀態(tài)為所述第五預(yù)設(shè)狀態(tài),執(zhí)行步驟h,否則繼續(xù)采集光感數(shù)據(jù);
[0030]相應(yīng)地,所述中斷處理流程中,當所述按鍵標志被置位時,所述置位按鍵喚醒標志之前,還包括:判斷系統(tǒng)狀態(tài),若系統(tǒng)狀態(tài)為所述第八預(yù)設(shè)狀態(tài)則獲取并判斷鍵值,當鍵值為所述第一預(yù)設(shè)鍵值時,設(shè)置系統(tǒng)狀態(tài)為第九預(yù)設(shè)狀態(tài),所述中斷處理流程結(jié)束,當鍵值不為所述第一預(yù)設(shè)鍵值時,所述中斷處理流程結(jié)束;若系統(tǒng)狀態(tài)不為所述第八預(yù)設(shè)狀態(tài)則置位按鍵喚醒標志。
[0031]進一步地,所述步驟a中,還可以包括:當鍵值為第一預(yù)設(shè)鍵值且系統(tǒng)狀態(tài)為所述第三、第四或第六預(yù)設(shè)狀態(tài)時,顯示功能菜單,初始化功能菜單索引,設(shè)置系統(tǒng)狀態(tài)為第二預(yù)設(shè)狀態(tài),執(zhí)行步驟h;當鍵值為第四預(yù)設(shè)鍵值且系統(tǒng)狀態(tài)不為第一預(yù)設(shè)狀態(tài)時設(shè)置系統(tǒng)狀態(tài)為所述第一預(yù)設(shè)狀態(tài),執(zhí)行步驟h。
[0032]進一步地,所述步驟e中,所述存儲采集到的光感數(shù)據(jù)中的種子數(shù)據(jù)之后,根據(jù)最新存儲的種子數(shù)據(jù)生成動態(tài)口令并顯示之前,還可以包括:從采集到的光感數(shù)據(jù)中獲取動態(tài)口令顯示位數(shù),并將獲取到的動態(tài)口令顯示位數(shù)與獲取到的種子數(shù)據(jù)對應(yīng)存儲;
[0033]相應(yīng)地,所述步驟e中,所述根據(jù)最新存儲的種子數(shù)據(jù)生成動態(tài)口令并顯示,具體包括:根據(jù)最新存儲的種子數(shù)據(jù)生成動態(tài)口令,再根據(jù)最新存儲的動態(tài)口令顯示位數(shù)截取生成的動態(tài)口令,顯示截取得到的數(shù)據(jù);
[0034]所述步驟d中,所述根據(jù)讀取到的種子數(shù)據(jù)生成動態(tài)口令并顯示,具體包括:根據(jù)讀取到的種子數(shù)據(jù)生成動態(tài)口令,根據(jù)動態(tài)令牌中存儲的與讀取到的種子數(shù)據(jù)對應(yīng)的動態(tài)口令顯示位數(shù)截取生成的動態(tài)口令,顯示截取得到的數(shù)據(jù)。
[0035]進一步地,所述中斷處理流程中,當所述按鍵中斷標志未被置位時,還可以包括:判斷RTC中斷標志是否被置位,是則置位RTC喚醒標志,復(fù)位所述RTC中斷標志,所述中斷處理流程結(jié)束,否則所述中斷處理流程結(jié)束;其中,當所述RTC中斷被觸發(fā)時,所述RTC中斷標志被置位;
[0036]相應(yīng)地,所述步驟S3替換為:所述動態(tài)令牌判斷是否有被置位的喚醒標志,如果有被置位的喚醒標志則依次檢查所述RTC喚醒標志和所述按鍵喚醒標志,若所述按鍵喚醒標志被置位,則進入所述按鍵處理流程,待所述按鍵處理流程結(jié)束后,重新執(zhí)行步驟S3,若所述RTC喚醒標志被置位,則進入RTC處理流程,待所述RTC處理流程結(jié)束后,重新執(zhí)行步驟S3 ;如果沒有被置位的喚醒標志則所述動態(tài)令牌進入休眠模式,等待被喚醒,返回步驟S2 ;
[0037]其中,所述RTC處理流程包括:
[0038]步驟Xl:所述動態(tài)令牌遞減RTC中斷次數(shù),判斷所述RTC中斷次數(shù)是否為預(yù)設(shè)次數(shù),是則復(fù)位所述RTC喚醒標志,執(zhí)行步驟X2,否則執(zhí)行步驟X2 ;
[0039]步驟X2:所述動態(tài)令牌遞增第一參數(shù)和第二參數(shù),分別判斷所述第一參數(shù)和所述第二參數(shù)是否達到相應(yīng)閾值,若所述第一參數(shù)達到所述第一參數(shù)的閾值,則設(shè)置所述第一參數(shù)為其初始值,更新所述動態(tài)令牌中存儲的第一時間因子,若所述第二參數(shù)達到所述第二參數(shù)的閾值,則設(shè)置所述第二參數(shù)為其初始值,更新所述動態(tài)令牌中存儲的第二時間因子,然后執(zhí)行步驟X3 ;若所述第一參數(shù)和所述第二參數(shù)均未達到相應(yīng)閾值則直接執(zhí)行步驟X3 ;
[0040]步驟X3:所述動態(tài)令牌更新校準計數(shù)值,判斷所述第一參數(shù)是否等于預(yù)設(shè)值,是則執(zhí)行步驟X4,否則所述RTC處理流程結(jié)束;
[0041]步驟X4:所述動態(tài)令牌根據(jù)所述校準計數(shù)值和所述動態(tài)令牌內(nèi)預(yù)先存儲的校準值判斷是否需要對所述第一參數(shù)和所述第二參數(shù)進行校準,是則根據(jù)所述校準值和所述校準計數(shù)值更新所述第一參數(shù)、所述第二參數(shù)和所述校準計數(shù)值,所述RTC處理流程結(jié)束,否則所述RTC處理流程結(jié)束;
[0042]更近一步地,所述存儲采集到的光感數(shù)據(jù)中的種子數(shù)據(jù)之后,根據(jù)最新存儲的種子數(shù)據(jù)生成動態(tài)口令并顯示之前,還包括:從采集到的光感數(shù)據(jù)中獲取動態(tài)令牌模式信息,若獲取到的動態(tài)令牌模式信息為事件型,則將獲取到的動態(tài)令牌模式信息與獲取到的種子數(shù)據(jù)對應(yīng)存儲,并設(shè)置與所述獲取到的種子數(shù)據(jù)對應(yīng)的事件因子,若獲取到的動態(tài)令牌模式信息為第一時間模式或第二時間模式,則將獲取到的動態(tài)令牌模式信息與獲取到的種子數(shù)據(jù)對應(yīng)存儲;
[0043]所述步驟e中,所述根據(jù)最新存儲的種子數(shù)據(jù)生成動態(tài)口令,具體包括:檢查最新存儲的動態(tài)令牌模式信息,若為事件模式,則根據(jù)最新存儲的種子數(shù)據(jù)和最新設(shè)置的事件因子生成動態(tài)口令,若為第一時間模式,則根據(jù)最新存儲的種子數(shù)據(jù)和所述動態(tài)令牌中的第一時間因子生成動態(tài)口令,若為第二時間模式,則根據(jù)最新存儲的種子數(shù)據(jù)和所述動態(tài)令牌中的第二時間因子生成動態(tài)口令;
[0044]所述步驟d中,所述根據(jù)讀取到的種子數(shù)據(jù)生成動態(tài)口令,具體包括:檢查與所述動態(tài)令牌中存儲的與讀取到的種子數(shù)據(jù)對應(yīng)的動態(tài)令牌模式信息,若為事件模式,則根據(jù)讀取到的種子數(shù)據(jù)和所述動態(tài)令牌中存儲的與讀取到的種子數(shù)據(jù)對應(yīng)的事件因子生成動態(tài)口令,若為第一時間模式,則根據(jù)讀取到的種子數(shù)據(jù)和所述動態(tài)令牌中的第一時間因子生成動態(tài)口令,若為第二時間模式,則根據(jù)讀取到的種子數(shù)據(jù)和所述動態(tài)令牌中的第二時間因子生成動態(tài)口令;
[0045]所述根據(jù)最新存儲的種子數(shù)據(jù)和最新設(shè)置的事件因子生成動態(tài)口令之前或之后,還包括:更新最新設(shè)置的事件因子;
[0046]所述根據(jù)讀取到的種子數(shù)據(jù)和所述動態(tài)令牌中存儲的與讀取到的種子數(shù)據(jù)對應(yīng)的事件因子生成動態(tài)口令之前或之后,還包括:更新與讀取到的種子數(shù)據(jù)對應(yīng)的事件因子;
[0047]所述RTC處理流程中還包括:檢測所述動態(tài)令牌是否被開殼,并且當檢測出所述動態(tài)令牌被開殼時清除所述動態(tài)令牌內(nèi)部存儲的敏感數(shù)據(jù),置位開殼標志;其中,所述敏感數(shù)據(jù)包括種子數(shù)據(jù);
[0048]所述步驟b中,顯示功能菜單之前,還包括:檢查所述開殼標志是否被置位,是則提示動態(tài)令牌已自毀,執(zhí)行步驟h,否則顯示功能菜單;
[0049]所述步驟X4中,當不需要對所述第一參數(shù)和所述第二參數(shù)進行校準時,以及根據(jù)所述校準值和所述校準計數(shù)值更新所述第一參數(shù)、所述第二參數(shù)和所述校準計數(shù)值之后,還包括:檢查系統(tǒng)狀態(tài),若系統(tǒng)狀態(tài)為所述第一預(yù)設(shè)狀態(tài)則所述RTC處理流程結(jié)束,若系統(tǒng)狀態(tài)不為所述第一預(yù)設(shè)狀態(tài)則遞減自動關(guān)機時間,若所述自動關(guān)機時間等于預(yù)設(shè)時間,則對顯示屏下電,設(shè)置系統(tǒng)狀態(tài)為所述第一預(yù)設(shè)狀態(tài),所述RTC處理流程結(jié)束,若所述自動關(guān)機時間不等于所述預(yù)設(shè)時間,則所述RTC處理流程結(jié)束;
[0050]所述按鍵處理流程中,所述步驟a之前,還包括:重置所述自動關(guān)機時間;
[0051]所述步驟e中,所述存儲采集到的光感數(shù)據(jù)中的種子數(shù)據(jù)之后,根據(jù)最新存儲的種子數(shù)據(jù)生成動態(tài)口令并顯示之前,還包括:從采集到的光感數(shù)據(jù)中獲取種子數(shù)據(jù)有效期,將獲取到的種子數(shù)據(jù)有效期與獲取到的種子數(shù)據(jù)對應(yīng)存儲;
[0052]所述步驟X2中,當所述第二參數(shù)達到所述第二參數(shù)的閾值時,還包括:根據(jù)所述動態(tài)令牌中存儲的與各種子數(shù)據(jù)對應(yīng)的種子數(shù)據(jù)有效期檢查各種子數(shù)據(jù)是否到期,并更新未到期的種子數(shù)據(jù)對應(yīng)的種子數(shù)據(jù)有效期,置位到期的種子數(shù)據(jù)對應(yīng)的種子數(shù)據(jù)失效標志;
[0053]所述步驟d中,根據(jù)讀取到的種子數(shù)據(jù)生成動態(tài)口令之前,還包括:檢查與讀取到的種子數(shù)據(jù)對應(yīng)的種子數(shù)據(jù)失效標志是否被置位,是則提示種子數(shù)據(jù)失效,執(zhí)行步驟h,否則根據(jù)讀取到的種子數(shù)據(jù)生成動態(tài)口令;
[0054]所述動態(tài)令牌根據(jù)所述校準計數(shù)值和所述動態(tài)令牌內(nèi)預(yù)先存儲的校準值判斷是否需要對所述第一參數(shù)和所述第二參數(shù)進行校準,具體包括:所述動態(tài)令牌判斷所述校準值和0x7F進行與運算的結(jié)果是否小于所述校準計數(shù)值,是則需要對所述第一參數(shù)和所述第二參數(shù)進行校準,否則不需要對所述第一參數(shù)和所述第二參數(shù)進行校準;
[0055]所述根據(jù)所述校準值和所述校準計數(shù)值更新所述第一參數(shù)、所述第二參數(shù)和所述校準計數(shù)值,具體包括:更新所述校準計數(shù)值為其當前值減去所述校準值,檢查所述校準值的最高位,若所述校準值的最高位為1,則更新所述第一參數(shù)為其當前值減1,更新所述第二參數(shù)為其當前值減I;若所述校準值的最高位為0,則更新所述第一參數(shù)為其當前值加1,更新所述第二參數(shù)為其當前值加I。
[0056]進一步地,所述中斷處理流程中,所述判斷按鍵中斷標志是否被置位之前,還包括:判斷工裝通信中斷標志是否被置位,是則置位工裝通信喚醒標志,復(fù)位所述工裝通信中斷標志,所述中斷處理流程結(jié)束,否則執(zhí)行所述判斷按鍵中斷標志是否被置位;其中,當所述動態(tài)令牌接收到工裝發(fā)送的通信數(shù)據(jù)時觸發(fā)工裝通信中斷,所述工裝通信中斷標志被置位;
[0057]所述步驟S3替換為:所述動態(tài)令牌判斷是否有被置位的喚醒標志,如果有被置位的喚醒標志則依次檢查所述工裝通信喚醒標志和所述按鍵喚醒標志,若所述工裝通信標志被置位,則進入工裝通信處理流程,待所述工裝通信處理流程結(jié)束后,重新執(zhí)行步驟S3,若所述按鍵喚醒標志被置位,則進入所述按鍵處理流程,待所述按鍵處理流程結(jié)束后,重新執(zhí)行步驟S3,如果沒有被置位的喚醒標志則所述動態(tài)令牌進入休眠模式,等待被喚醒,返回步驟S2 ;
[0058]所述工裝通信處理流程包括:
[0059]步驟Yl:關(guān)閉總中斷,判斷當前接收到的數(shù)據(jù)是否為所述工裝發(fā)送的喚醒信號,是則向所述工裝返回握手信號,繼續(xù)接收所述工裝發(fā)送的通信數(shù)據(jù),執(zhí)行步驟Y2,否則執(zhí)行步驟Y3 ;
[0060]步驟Y2:判斷當前接收到的數(shù)據(jù)的類型,若為獲取令牌硬件信息命令,則獲所述獲取令牌硬件信息命令中的隨機數(shù),保存所述隨機數(shù),并將獲取到的隨機數(shù)返回給所述工裝,執(zhí)行步驟Y3,若為其他工裝命令,則根據(jù)所述動態(tài)令牌中保存的隨機數(shù)對接收到的工裝命令進行解密,執(zhí)行解密后的命令,并向所述工裝返回執(zhí)行結(jié)果,執(zhí)行步驟Y3,否則執(zhí)行步驟Y3 ;
[0061]步驟Y3:置位所述工裝通信喚醒標志,使能總中斷,所述工裝通信處理流程結(jié)束。
[0062]本發(fā)明方法的有益效果在于,使用本發(fā)明提供的方法,用戶能夠通過操作動態(tài)令牌實現(xiàn)向動態(tài)令牌中燒寫種子數(shù)據(jù),以及更新動態(tài)令牌中的種子數(shù)據(jù),并且本發(fā)明涉及的動態(tài)令牌可存儲和管理多個種子,在動態(tài)令牌使用過程中,能夠根據(jù)用戶的選擇使用對應(yīng)的種子數(shù)據(jù)生成動態(tài)口令,方便用戶使用,并且動態(tài)令牌的唯一標識與種子數(shù)據(jù)之間的綁定保障了種子數(shù)據(jù)的可靠性和安全性。
【專利附圖】
【附圖說明】
[0063]為了更清楚的說明本發(fā)明實施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對實施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作簡單的介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的一些實施例,對于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動的前提下,還可以根據(jù)這些附圖獲得其他的附圖。
[0064]圖1為本發(fā)明實施例一提供的一種多種子動態(tài)令牌的工作方法中的按鍵處理流程圖;
[0065]圖2為本發(fā)明實施例二提供的一種多種子動態(tài)令牌的工作方法的流程圖;
[0066]圖3為本發(fā)明實施例二中提供的中斷處理流程的流程圖;
[0067]圖4為本發(fā)明實施例二中提供的工裝通信處理流程的流程圖;
[0068]圖5為本發(fā)明實施例二中提供的RTC處理流程的流程圖;
[0069]圖6為本發(fā)明實施例二中提供的按鍵處理流程的流程圖。
【具體實施方式】
[0070]下面將結(jié)合本發(fā)明實施例中的附圖,對本發(fā)明實施例中的技術(shù)方案進行清楚、完整地描述,顯然,所描述的實施例僅僅是本發(fā)明一部分實施例,而不是全部的實施例?;诒景l(fā)明中的實施例,本領(lǐng)域技術(shù)人員在沒有做出創(chuàng)造性勞動前提下所獲得的所有其他實施例,都屬于本發(fā)明保護的范圍。
[0071]實施例一
[0072]本發(fā)明實施例一提供一種多種子動態(tài)令牌的工作方法,所述方法具體包括:
[0073]步驟S1、動態(tài)令牌上電初始化,打開總中斷,設(shè)置系統(tǒng)狀態(tài)為第一預(yù)設(shè)狀態(tài),進入休眠模式,等待被喚醒;
[0074]步驟S2、所述動態(tài)令牌檢測到中斷時被喚醒,進入中斷處理流程,待所述中斷處理流程結(jié)束后執(zhí)行步驟S3 ;
[0075]所述中斷處理流程包括:所述動態(tài)令牌判斷按鍵中斷標志是否被置位,是則置位按鍵喚醒標志,復(fù)位所述按鍵中斷標志,中斷處理流程結(jié)束,否則中斷處理流程結(jié)束,其中,當所述動態(tài)令牌的按鍵被按下時觸發(fā)按鍵中斷,所述按鍵中斷標志被置位;
[0076]步驟S3、所述動態(tài)令牌檢查所述按鍵喚醒標志,若所述按鍵喚醒標志被置位,則進入按鍵處理流程,待所述按鍵處理流程結(jié)束后,重新進入休眠模式,等待被喚醒,返回步驟S2 ;
[0077]本實施例中,按鍵處理流程如圖1所述,具體包括:
[0078]步驟11:所述動態(tài)令牌獲取鍵值,判斷鍵值和系統(tǒng)狀態(tài),當鍵值為第一預(yù)設(shè)鍵值且系統(tǒng)狀態(tài)為第一預(yù)設(shè)狀態(tài)時執(zhí)行步驟12 ;當鍵值為第二預(yù)設(shè)鍵值且系統(tǒng)狀態(tài)為第二預(yù)設(shè)狀態(tài)時執(zhí)行步驟13 ;當鍵值為第二預(yù)設(shè)鍵值且系統(tǒng)狀態(tài)為第三預(yù)設(shè)狀態(tài)時執(zhí)行步驟16 ;當鍵值為第二預(yù)設(shè)鍵值且系統(tǒng)狀態(tài)為第五預(yù)設(shè)狀態(tài)時執(zhí)行步驟17 ;當鍵值為第三預(yù)設(shè)鍵值且系統(tǒng)狀態(tài)為第二預(yù)設(shè)狀態(tài)時執(zhí)行步驟20 ;當鍵值為第三預(yù)設(shè)鍵值且系統(tǒng)狀態(tài)為第三預(yù)設(shè)狀態(tài)時執(zhí)行步驟21 ;否則執(zhí)行步驟22 ;
[0079]步驟12:所述動態(tài)令牌顯示功能菜單,初始化功能菜單索引,設(shè)置系統(tǒng)狀態(tài)為第二預(yù)設(shè)狀態(tài),執(zhí)行步驟22;
[0080]步驟13:所述動態(tài)令牌根據(jù)所述功能菜單索引判斷用戶選擇的操作,若用戶選擇的操作為生成口令,則執(zhí)行步驟14,若用戶選擇的操作為燒寫種子數(shù)據(jù),則執(zhí)行步驟15 ;
[0081]步驟14:所述動態(tài)令牌顯示種子數(shù)據(jù)菜單,初始化種子菜單索引,設(shè)置系統(tǒng)狀態(tài)為第三預(yù)設(shè)狀態(tài),執(zhí)行步驟22 ;
[0082]步驟15:所述動態(tài)令牌獲取預(yù)先存儲的動態(tài)令牌序列號并顯示,設(shè)置系統(tǒng)狀態(tài)為第五預(yù)設(shè)狀態(tài),執(zhí)行步驟22;
[0083]步驟16:所述動態(tài)令牌讀取所述動態(tài)令牌中存儲的與所述種子菜單索引對應(yīng)的種子數(shù)據(jù),根據(jù)讀取到的種子數(shù)據(jù)生成動態(tài)口令并顯示,設(shè)置系統(tǒng)狀態(tài)為第六預(yù)設(shè)狀態(tài),執(zhí)行步驟22 ;
[0084]步驟17:所述動態(tài)令牌采集光感數(shù)據(jù),判斷采集到的光感數(shù)據(jù)中的序列號與預(yù)先存儲的動態(tài)令牌序列號是否匹配,若匹配則執(zhí)行步驟18,若不匹配則執(zhí)行步驟19 ;
[0085]步驟18:所述動態(tài)令牌存儲采集到的光感數(shù)據(jù)中的種子數(shù)據(jù),根據(jù)最新存儲的種子數(shù)據(jù)生成動態(tài)口令并顯示,設(shè)置系統(tǒng)狀態(tài)為所述第六預(yù)設(shè)狀態(tài),執(zhí)行步驟22 ;
[0086]步驟19:所述動態(tài)令牌清除采集到的光感數(shù)據(jù),獲取預(yù)先存儲的動態(tài)令牌序列號并顯示,設(shè)置系統(tǒng)狀態(tài)為所述第五預(yù)設(shè)狀態(tài),執(zhí)行步驟22 ;
[0087]步驟20:所述動態(tài)令牌更新所述功能菜單索引,執(zhí)行步驟22 ;
[0088]步驟21:所述動態(tài)令牌更新所述種子菜單索引,執(zhí)行步驟22 ;
[0089]步驟22:所述動態(tài)令牌復(fù)位所述按鍵喚醒標志,所述按鍵處理流程結(jié)束。
[0090]進一步地,本實施例中,步驟11中,還包括:當鍵值為第一預(yù)設(shè)鍵值且系統(tǒng)狀態(tài)為第三、第四或第六預(yù)設(shè)狀態(tài)時,所述動態(tài)令牌顯示功能菜單,初始化功能菜單索引,設(shè)置系統(tǒng)狀態(tài)為第二預(yù)設(shè)狀態(tài),執(zhí)行步驟22 ;當鍵值為第四預(yù)設(shè)鍵值且系統(tǒng)狀態(tài)不為第一預(yù)設(shè)狀態(tài)時設(shè)置系統(tǒng)狀態(tài)為所述第一預(yù)設(shè)狀態(tài),執(zhí)行步驟22。
[0091]第一預(yù)設(shè)鍵值、第二預(yù)設(shè)鍵值、第三預(yù)設(shè)鍵值和第四預(yù)設(shè)鍵值中的一個或多個對應(yīng)一個物理按鍵。當?shù)谝活A(yù)設(shè)鍵值、第二預(yù)設(shè)鍵值、第三預(yù)設(shè)鍵值和第四預(yù)設(shè)鍵值分別對應(yīng)不同的物理按鍵時,所述動態(tài)令牌通過物理按鍵獲取對應(yīng)的鍵值;當?shù)谝活A(yù)設(shè)鍵值、第二預(yù)設(shè)鍵值、第三預(yù)設(shè)鍵值和第四預(yù)設(shè)鍵值中的多個對應(yīng)同一個物理按鍵時,所述動態(tài)令牌通過物理按鍵和/或按鍵方式(如長按、短按等)獲取對應(yīng)的鍵值。
[0092]實施例二
[0093]實施例一中的按鍵處理流程中,沒有限制判斷鍵值和判斷系統(tǒng)狀態(tài)的順序,先判斷鍵值或先判斷系統(tǒng)狀態(tài)均能實現(xiàn)本發(fā)明的目的,本發(fā)明實施例二以先判斷鍵值為例提供一種多種子動態(tài)令牌的工作方法,如圖2所示,所述方法具體包括:
[0094]步驟101:動態(tài)令牌上電初始化,打開總中斷,設(shè)置系統(tǒng)狀態(tài)為第一預(yù)設(shè)狀態(tài),進入休眠模式,當檢測到中斷時被喚醒,執(zhí)行步驟102。
[0095]本實施例中,中斷包括:工裝通信中斷、RTC中斷和按鍵中斷。
[0096]步驟102:動態(tài)令牌進入中斷處理流程進行中斷處理,根據(jù)中斷類型置位相應(yīng)喚醒標志,待中斷處理流程結(jié)束后,執(zhí)行步驟103 ;
[0097]本實施例中,中斷處理流程如圖3所述,具體包括:
[0098]步驟Al:判斷工裝通信中斷標志是否被置位,是則執(zhí)行步驟A2,否則執(zhí)行步驟A3 ;
[0099]步驟A2:復(fù)位工裝通信中斷標志,置位工裝通信喚醒標志,中斷處理流程結(jié)束;
[0100]步驟A3:判斷按鍵中斷標志是否被置位,是則執(zhí)行步驟A4,否則執(zhí)行步驟AS ;
[0101]步驟A4:判斷系統(tǒng)狀態(tài)是否為第八預(yù)設(shè)狀態(tài),是則執(zhí)行步驟A5,否則執(zhí)行步驟A7 ;
[0102]步驟A5:獲取鍵值,判斷是否為第一預(yù)設(shè)鍵值,是則執(zhí)行步驟A6,否則中斷處理流程結(jié)束;
[0103]步驟A6:設(shè)置系統(tǒng)狀態(tài)為第九預(yù)設(shè)狀態(tài),中斷處理流程結(jié)束;
[0104]步驟A7:復(fù)位按鍵中斷標志,置位按鍵喚醒標志,中斷處理流程結(jié)束;
[0105]步驟AS:判斷RTC中斷標志是否被置位,是則執(zhí)行步驟A9,否則中斷處理流程結(jié)束;
[0106]步驟A9:復(fù)位RTC中斷標志,更新RTC中斷次數(shù),置位RTC喚醒標志,中斷處理流程結(jié)束。
[0107]本實施例中,當令牌接收到工裝發(fā)送的通信數(shù)據(jù)時觸發(fā)通信中斷,通信中斷標志被置位,當令牌的按鍵被按下時觸發(fā)按鍵中斷,按鍵中斷標志被置位,RTC中斷每秒觸發(fā)一次,當RTC中斷被觸發(fā)時,RTC中斷標志被置位。
[0108]本實施例中所述的中斷處理流程中,當RTC中斷標志被置位時,具體更新RTC中斷次數(shù)為其當前次數(shù)加I。
[0109]步驟103:動態(tài)令牌判斷是否有被置位的喚醒標志,是則執(zhí)行步驟104,否則動態(tài)令牌進入休眠模式,當檢測到中斷時被喚醒,返回步驟102 ;
[0110]步驟104:動態(tài)令牌依次檢查各喚醒標志,若工裝通信喚醒標志被置位,則執(zhí)行步驟105,若RTC喚醒標志被置位,則執(zhí)行步驟106,若按鍵喚醒標志被置位,則執(zhí)行步驟107 ;
[0111]本實施例中所述的喚醒標志包括:工裝通信喚醒標志、RTC喚醒標志和按鍵喚醒標志,優(yōu)選地,動態(tài)令牌按照工裝通信喚醒標志、RTC喚醒標志、按鍵喚醒標志的順序依次檢查各喚醒標志。
[0112]步驟105:動態(tài)令牌進入工裝通信處理流程,待工裝通信處理流程結(jié)束后返回步驟 103 ;
[0113]本實施例中,動態(tài)令牌進入工裝通信處理流程如圖4所述,具體包括動態(tài)令牌執(zhí)行以下操作:
[0114]步驟B1:關(guān)閉總中斷,判斷當前接收到的數(shù)據(jù)是否為工裝發(fā)送的喚醒信號,是則執(zhí)行步驟B2,否則執(zhí)行步驟B9 ;
[0115]步驟B2:向工裝返回握手信號,繼續(xù)接收工裝發(fā)送的通信數(shù)據(jù);
[0116]步驟B3:判斷當前接收到的數(shù)據(jù)中的數(shù)據(jù)長度是否大于預(yù)設(shè)長度,是則執(zhí)行步驟B9,否則執(zhí)行步驟B4 ;
[0117]本實施例中,預(yù)設(shè)長度為50字節(jié)。
[0118]步驟B4:根據(jù)數(shù)據(jù)長度繼續(xù)接收工裝發(fā)送的通信數(shù)據(jù);
[0119]步驟B5:檢驗當前接收到的數(shù)據(jù)是否正確,是則執(zhí)行步驟B6,否則執(zhí)行步驟B9 ;
[0120]步驟B6:判斷當前接收到的數(shù)據(jù)的類型,若是預(yù)設(shè)工裝命令則執(zhí)行步驟B7,若是其他工裝命令則執(zhí)行步驟B8,否則執(zhí)行步驟B9 ;
[0121]本實施例中所述的預(yù)設(shè)工裝命令為工裝發(fā)送的獲取令牌硬件信息命令。
[0122]步驟B7:獲取預(yù)設(shè)工裝命令中的隨機數(shù),保存獲取到的隨機數(shù)并將獲取到的隨機數(shù)返回給工裝,執(zhí)行步驟B9;
[0123]步驟B8:根據(jù)令牌中保存的隨機數(shù)對接收到的工裝命令進行解密,執(zhí)行解密后的命令,并向工裝返回執(zhí)行結(jié)果,執(zhí)行步驟B9 ;
[0124]本實施例中,其他工裝命令包括:寫時間因子命令;執(zhí)行解密后的寫時間因子命令,具體包括:存儲寫時間因子命令中的時間因子,所述時間因子包括第一時間因子和第二時間因子。
[0125]步驟B9:復(fù)位工裝通信喚醒標志,使能總中斷,工裝通信處理流程結(jié)束。
[0126]步驟106:動態(tài)令牌進入RTC處理流程,待RTC處理流程結(jié)束后返回步驟103 ;
[0127]本實施例中,動態(tài)令牌進入RTC處理流程如圖5所示,具體包括動態(tài)令牌執(zhí)行以下操作:
[0128]步驟Cl:遞減RTC中斷次數(shù);
[0129]本實施例步驟Cl中,遞減RTC中斷次數(shù)具體為更新RTC中斷次數(shù)為其當前次數(shù)減
I;
[0130]步驟C2:判斷RTC中斷次數(shù)是否為預(yù)設(shè)次數(shù),是則執(zhí)行步驟C3,否則執(zhí)行步驟C4 ;
[0131]本實施例中,預(yù)設(shè)次數(shù)為O次。
[0132]步驟C3:復(fù)位RTC喚醒標志,執(zhí)行步驟C4 ;
[0133]步驟C4:遞增第一參數(shù)和第二參數(shù);
[0134]本實施例中,第一參數(shù)和第二參數(shù)的初始值均為0,遞增第一參數(shù)和第二參數(shù)具體為:更新第一參數(shù)為其當前值加1,更新第二參數(shù)為其當前值加I ;
[0135]步驟C5:判斷第一參數(shù)是否達到第一參數(shù)的閾值,是則執(zhí)行步驟C6,否則執(zhí)行步驟C7 ;
[0136]本實施例中,第一參數(shù)的閾值為30。
[0137]步驟C6:設(shè)置第一參數(shù)為其初始值,遞增第一時間因子,執(zhí)行步驟C7 ;
[0138]本實施例中,遞增第一時間因子具體為更新第一時間因子為其當前值加I ;
[0139]步驟C7:判斷第二參數(shù)是否達到第二參數(shù)的閾值,是則執(zhí)行步驟CS,否則執(zhí)行步驟C9 ;
[0140]本實施例中,第二參數(shù)的閾值為60。
[0141]步驟CS:設(shè)置第二參數(shù)為其初始值,遞增第二時間因子,執(zhí)行步驟C9 ;
[0142]本實施例中,遞增第二時間因子具體為更新第二時間因子為其當前值加I ;
[0143]步驟C9:遞增校準計數(shù)值;
[0144]本實施例中,遞增校準計數(shù)值具體為更新校準計數(shù)值為其當前值加I ;
[0145]步驟ClO:判斷第一參數(shù)是否等于預(yù)設(shè)值,是則執(zhí)行步驟C11,否則執(zhí)行步驟C13 ;
[0146]本實施例中,預(yù)設(shè)值為15 ;
[0147]步驟Cll:根據(jù)校準計數(shù)值和令牌內(nèi)存儲的校準值判斷是否需要對第一參數(shù)和第二參數(shù)進行校準,是則執(zhí)行步驟C12,否則執(zhí)行步驟C13 ;
[0148]本實施例中,步驟Cll具體包括:判斷校準值&0x7F是否小于校準計數(shù)值,是則需要對第一參數(shù)和第二參數(shù)進行校準,執(zhí)行步驟C12,否則不需要對第一參數(shù)和第二參數(shù)進行校準,執(zhí)行步驟C13。
[0149]步驟C12:根據(jù)校準值和校準計數(shù)值對第一參數(shù)和第二參數(shù)進行校準,并更新校準計數(shù)值,執(zhí)行步驟C13;
[0150]本實施例中,更新校準計數(shù)值為其當前值減去校準值,檢查校準值的最高位,若校準值的最高位為I則將第一參數(shù)校準為其當前值減1,將第二參數(shù)校準為其當前值減1,若校準值的最高位為O則將第一參數(shù)校準為其當前值加1,將第二參數(shù)校準為其當前值加I。
[0151]步驟C13:檢測令牌是否被開殼,是則執(zhí)行步驟C14,否則執(zhí)行步驟C15 ;
[0152]步驟C14:清除令牌內(nèi)部存儲的敏感數(shù)據(jù),置位開殼標志,RTC處理流程結(jié)束;
[0153]步驟C15:檢查系統(tǒng)狀態(tài),若為第一預(yù)設(shè)狀態(tài)則RTC處理流程結(jié)束,否則執(zhí)行步驟C16 ;
[0154]步驟C16:遞減自動關(guān)機時間,判斷自動關(guān)機時間是否為預(yù)設(shè)時間,是則執(zhí)行步驟Cl7,否則RTC處理流程結(jié)束;
[0155]本實施例中,遞減自動關(guān)機時間具體為更新自動關(guān)機時間為其當前時間減1,預(yù)設(shè)時間為O ;
[0156]步驟C17:對顯示屏下電,設(shè)置系統(tǒng)狀態(tài)為第一預(yù)設(shè)狀態(tài),RTC處理流程結(jié)束。
[0157]本實施例中所述的敏感數(shù)據(jù)為需要保密、一旦被非法獲取將帶來安全隱患的數(shù)據(jù),包括全部的種子數(shù)據(jù)等。
[0158]步驟107:動態(tài)令牌進入按鍵處理流程,待按鍵處理流程結(jié)束后返回步驟103 ;
[0159]本實施例中,動態(tài)令牌進入按鍵處理流程如圖6所示,具體包括動態(tài)令牌執(zhí)行以下操作:
[0160]步驟DO:獲取鍵值,判斷鍵值是否有效,是則執(zhí)行步驟Dl,否則執(zhí)行步驟D32 ;
[0161]步驟Dl:重置自動關(guān)機時間,檢查鍵值,若為第一預(yù)設(shè)鍵值則執(zhí)行步驟D2,若為第二預(yù)設(shè)鍵值則執(zhí)行步驟D8,若為第三預(yù)設(shè)鍵值則執(zhí)行步驟D29,否則執(zhí)行步驟D32 ;
[0162]步驟D2:統(tǒng)計按鍵被按下的時間,判斷按鍵被按下的時間是否超過預(yù)設(shè)時長,是則執(zhí)行步驟D3,否則執(zhí)行步驟D5 ;
[0163]具體地,步驟D2包括:
[0164]步驟1.初始化計時器的計數(shù)值,打開計時器開始計時;
[0165]本實施例中,初始化計時器的計數(shù)值為O ;
[0166]步驟i1.判斷計時器的計數(shù)值是否達到預(yù)設(shè)時長,是則按鍵被按下時間超過預(yù)設(shè)時長,關(guān)閉計時器,執(zhí)行步驟D3,否則執(zhí)行步驟iii ;
[0167]本實施例中,預(yù)設(shè)時長為I秒;
[0168]步驟ii1.判斷按鍵狀態(tài)是否為被按下,是則返回步驟ii,否則按鍵被按下時間未超過預(yù)設(shè)時長,關(guān)閉計時器,執(zhí)行步驟D5。
[0169]步驟D3:檢查系統(tǒng)狀態(tài),若為第一預(yù)設(shè)狀態(tài)則執(zhí)行步驟D32,否則執(zhí)行步驟D4 ;
[0170]步驟D4:對顯示屏下電,設(shè)置系統(tǒng)狀態(tài)為第一預(yù)設(shè)狀態(tài),執(zhí)行步驟D32 ;
[0171]步驟D5:檢查系統(tǒng)狀態(tài),若為第一預(yù)設(shè)狀態(tài),則執(zhí)行步驟D6,若為第三、第四、第五、第六、第七或第十預(yù)設(shè)狀態(tài),則執(zhí)行步驟D7,否則執(zhí)行步驟D32 ;
[0172]步驟D6:對顯示屏上電,設(shè)置系統(tǒng)狀態(tài)為第二預(yù)設(shè)狀態(tài),初始化功能菜單索引,將功能菜單寫入顯示緩存區(qū),并根據(jù)功能菜單索引標識被選中的功能條目,執(zhí)行步驟D32;
[0173]步驟D7:設(shè)置系統(tǒng)狀態(tài)為第二預(yù)設(shè)狀態(tài),初始化功能菜單索引,將功能菜單寫入顯示緩存區(qū),并根據(jù)功能菜單索引標識被選中的功能條目,執(zhí)行步驟D32;
[0174]本實施例中,功能菜單中包括生成口令條目、更新種子條目和添加種子條目。
[0175]步驟D8:檢查系統(tǒng)狀態(tài),若為第二預(yù)設(shè)狀態(tài)則執(zhí)行步驟D9,若為第三預(yù)設(shè)狀態(tài)則執(zhí)行步驟D14,若為第四預(yù)設(shè)狀態(tài)則執(zhí)行步驟D15,若為第五預(yù)設(shè)狀態(tài)則執(zhí)行步驟D16,若為第六預(yù)設(shè)狀態(tài)則執(zhí)行步驟D24,若為第七預(yù)設(shè)狀態(tài)則執(zhí)行步驟D25,若為第十預(yù)設(shè)狀態(tài)則執(zhí)行步驟D28,否則執(zhí)行步驟D32 ;
[0176]步驟D9:根據(jù)功能菜單索引判斷被選中的功能條目,若為生成口令條目則執(zhí)行步驟D10,若為更新種子條目則執(zhí)行步驟Dll,若為添加種子條目則執(zhí)行步驟D12,若為刪除種子條目則執(zhí)行步驟D13,否則執(zhí)行步驟D32 ;
[0177]步驟DlO:設(shè)置系統(tǒng)狀態(tài)為第三預(yù)設(shè)狀態(tài),初始化種子菜單索引,將種子菜單寫入顯示緩存區(qū),并根據(jù)種子菜單索引標識被選中的種子條目,執(zhí)行步驟D32 ;
[0178]優(yōu)選地,本實施例中,種子菜單包括與動態(tài)令牌中存儲的各種子數(shù)據(jù)對應(yīng)的應(yīng)用信息。
[0179]步驟Dll:設(shè)置系統(tǒng)狀態(tài)為第四預(yù)設(shè)狀態(tài),初始化種子菜單索引,將種子菜單寫入顯示緩存區(qū),并根據(jù)種子菜單索引標識被選中的種子條目,執(zhí)行步驟D32 ;
[0180]步驟D12:將動態(tài)令牌內(nèi)預(yù)先存儲的序列號寫入顯示緩存區(qū),設(shè)置系統(tǒng)狀態(tài)為第五預(yù)設(shè)狀態(tài),置位添加種子數(shù)據(jù)標志,執(zhí)行步驟D32 ;
[0181]步驟D13:設(shè)置系統(tǒng)狀態(tài)為第十預(yù)設(shè)狀態(tài),初始化種子菜單索引,將種子菜單寫入顯示緩存區(qū),并根據(jù)種子菜單索引標識被選中的種子條目,執(zhí)行步驟D32 ;
[0182]步驟D14:根據(jù)種子菜單索引查找動態(tài)令牌中存儲的相應(yīng)種子數(shù)據(jù),根據(jù)查找到的種子數(shù)據(jù)和動態(tài)令牌中存儲的動態(tài)因子計算生成動態(tài)口令,將生成的動態(tài)口令寫入顯示緩存區(qū),設(shè)置系統(tǒng)狀態(tài)為第六預(yù)設(shè)狀態(tài),執(zhí)行步驟D32 ;
[0183]步驟D15:將動態(tài)令牌內(nèi)預(yù)先存儲的序列號寫入顯示緩存區(qū),設(shè)置系統(tǒng)狀態(tài)為第五預(yù)設(shè)狀態(tài),復(fù)位添加種子數(shù)據(jù)標志,執(zhí)行步驟D32 ;
[0184]步驟D16:設(shè)置系統(tǒng)狀態(tài)為第八預(yù)設(shè)狀態(tài),執(zhí)行步驟D17 ;
[0185]步驟D17:采集光感數(shù)據(jù),提示正在采集光感數(shù)據(jù),判斷光感數(shù)據(jù)是否采集完成,是則執(zhí)行步驟D18,否則執(zhí)行步驟D21 ;
[0186]步驟D18:判斷采集到的光感數(shù)據(jù)中的序列號與動態(tài)令牌中預(yù)先存儲的序列號是否匹配,是則執(zhí)行步驟D19,否則執(zhí)行步驟D20 ;
[0187]本實施例中,步驟D18具體為:判斷采集到的光感數(shù)據(jù)中的序列號與動態(tài)令牌中預(yù)先存儲的序列號是否一致,是則執(zhí)行步驟D19,否則執(zhí)行步驟D20。
[0188]步驟D19:設(shè)置系統(tǒng)狀態(tài)為第七預(yù)設(shè)狀態(tài),將采集到的光感數(shù)據(jù)中的應(yīng)用信息寫入顯不緩存區(qū),提不用戶確認,執(zhí)彳丁步驟D32 ;
[0189]步驟D20:清除采集到的光感數(shù)據(jù),提示種子數(shù)據(jù)燒寫錯誤,將動態(tài)令牌內(nèi)預(yù)先存儲的序列號寫入顯示緩存區(qū),設(shè)置系統(tǒng)狀態(tài)為第五預(yù)設(shè)狀態(tài),執(zhí)行步驟D32;
[0190]步驟D21:判斷采集是否超時,或者系統(tǒng)狀態(tài)為第九預(yù)設(shè)狀態(tài),若采集超時,則執(zhí)行步驟D22,若系統(tǒng)狀態(tài)為第九預(yù)設(shè)狀態(tài),則執(zhí)行步驟D23,否則返回步驟D16 ;
[0191]步驟D22:清除采集到的光感數(shù)據(jù),提示種子數(shù)據(jù)燒寫超時,將動態(tài)令牌中預(yù)先存儲的序列號寫入顯示緩存區(qū),設(shè)置系統(tǒng)狀態(tài)為第五預(yù)設(shè)狀態(tài),執(zhí)行步驟D32;
[0192]步驟D23:清除采集到的光感數(shù)據(jù),提示已取消燒寫種子數(shù)據(jù),將動態(tài)令牌中預(yù)先存儲的序列號寫入顯示緩存區(qū),設(shè)置系統(tǒng)狀態(tài)為第五預(yù)設(shè)狀態(tài),執(zhí)行步驟D32;
[0193]步驟D24:設(shè)置系統(tǒng)狀態(tài)為第二預(yù)設(shè)狀態(tài),初始化功能菜單索引,將功能菜單寫入顯示緩存區(qū),并根據(jù)功能菜單索引標識被選中的功能條目,執(zhí)行步驟D32;
[0194]步驟D25:判斷添加種子數(shù)據(jù)標志是否被置位,是則執(zhí)行步驟D26,否則執(zhí)行步驟D27 ;
[0195]步驟D26:存儲采集到的光感數(shù)據(jù)中的種子數(shù)據(jù),將采集到的光感數(shù)據(jù)中的應(yīng)用信息添加到種子菜單,根據(jù)最新存儲的種子數(shù)據(jù)和動態(tài)令牌中存儲的動態(tài)因子計算生成動態(tài)口令,將生成的動態(tài)口令寫入顯示緩存區(qū),設(shè)置系統(tǒng)狀態(tài)為第六預(yù)設(shè)狀態(tài),執(zhí)行步驟D32 ;
[0196]進一步地,步驟D26中還可以包括,種子個數(shù)遞增,相應(yīng)地,本實施例中,每次將功能菜單寫入輸出緩存區(qū)之前,檢查種子個數(shù),若種子個數(shù)達到最大值則將功能菜單中除添加種子條目以外的內(nèi)容寫入輸出緩存區(qū),若種子個數(shù)未達到最大值則將功能菜單的全部內(nèi)容寫入輸出緩存區(qū)。
[0197]步驟D27:用采集到的光感數(shù)據(jù)中的種子數(shù)據(jù)替換與種子菜單索引相對應(yīng)的種子數(shù)據(jù),根據(jù)最新存儲的種子數(shù)據(jù)和動態(tài)令牌中存儲的動態(tài)因子計算生成動態(tài)口令,將生成的動態(tài)口令寫入顯示緩存區(qū),設(shè)置系統(tǒng)狀態(tài)為第六預(yù)設(shè)狀態(tài),執(zhí)行步驟D32;
[0198]步驟D28:刪除與種子菜單索引相對應(yīng)的應(yīng)用信息和種子數(shù)據(jù),設(shè)置系統(tǒng)狀態(tài)為第二預(yù)設(shè)狀態(tài),初始化功能菜單索引,將功能菜單寫入顯示緩存區(qū),并根據(jù)功能菜單索引標識被選中的功能條目,執(zhí)行步驟D32 ;
[0199]進一步地,步驟D28中還可以包括,種子個數(shù)遞減。
[0200]步驟D29:檢查系統(tǒng)狀態(tài),若為第二預(yù)設(shè)狀態(tài)則執(zhí)行步驟D30,若為第三、第四或第十預(yù)設(shè)狀態(tài)則執(zhí)行步驟D31,否則執(zhí)行步驟D32 ;
[0201]步驟D30:更新功能菜單索引,根據(jù)更新后的功能菜單索引重新標識被選中的功能條目,執(zhí)行步驟D32;
[0202]步驟D31:更新種子菜單索引,根據(jù)更新后的種子菜單索引重新標識被選中的種子條目,執(zhí)行步驟D32;
[0203]步驟D32:復(fù)位按鍵喚醒標志,按鍵處理流程結(jié)束。
[0204]進一步地,本實施例中:
[0205]光感數(shù)據(jù)中還可以包括種子數(shù)據(jù)有效期,相應(yīng)地:
[0206]RTC處理流程的步驟C9中,還包括根據(jù)動態(tài)令牌內(nèi)存儲的各種子數(shù)據(jù)有效期判斷對應(yīng)的各種子數(shù)據(jù)是否到期,是則置位相應(yīng)種子數(shù)據(jù)失效標志,然后執(zhí)行步驟C9,否則更新動態(tài)令牌內(nèi)存儲的各種子數(shù)據(jù)有效期,然后執(zhí)行步驟C9 ;具體地,可以通過判斷動態(tài)令牌中存儲的各種子數(shù)據(jù)有效期是否為O來判斷對應(yīng)的各種子數(shù)據(jù)是否到期,種子數(shù)據(jù)有效期為O的種子數(shù)據(jù)到期,種子數(shù)據(jù)有效期不為O的種子數(shù)據(jù)未到期,更新未到期的種子數(shù)據(jù)的種子數(shù)據(jù)有效期為其當前值減I ;
[0207]按鍵處理流程的步驟D14中,查找到種子數(shù)據(jù)之后還包括檢查該種子數(shù)據(jù)對應(yīng)的種子數(shù)據(jù)失效標志是否被置位,是則提示種子數(shù)據(jù)失效,執(zhí)行步驟D32,否則根據(jù)查找到的種子數(shù)據(jù)和動態(tài)令牌中存儲的動態(tài)因子計算生成動態(tài)口令;步驟D26中,還包括存儲采集到的光感數(shù)據(jù)中的種子數(shù)據(jù)有效期;步驟D27中,還包括用采集到的光感數(shù)據(jù)中的種子數(shù)據(jù)有效期替換與種子菜單索引相對應(yīng)的種子數(shù)據(jù)的種子數(shù)據(jù)有效期;
[0208]光感數(shù)據(jù)中還可以包括動態(tài)口令顯示位數(shù),相應(yīng)地:
[0209]按鍵處理流程的步驟D26中,還包括存儲采集到的光感數(shù)據(jù)中的動態(tài)口令顯示位數(shù);步驟D27中,還包括用采集到的光感數(shù)據(jù)中的動態(tài)口令顯示位數(shù)替換與種子菜單索引相對應(yīng)的種子數(shù)據(jù)的動態(tài)口令顯示位數(shù);步驟D14、步驟D26和步驟D27中,將生成的動態(tài)口令寫入顯示緩存區(qū)替換為:根據(jù)相應(yīng)的動態(tài)口令顯示位數(shù)對生成的動態(tài)口令進行截取,將截取得到的數(shù)據(jù)寫入顯示緩存區(qū);
[0210]例如,與生成動態(tài)口令所根據(jù)的種子數(shù)據(jù)相對應(yīng)的動態(tài)口令顯示位數(shù)為6,則截取生成的動態(tài)口令的后6位,并寫入顯示緩存區(qū);
[0211]光感數(shù)據(jù)中還可以包括動態(tài)令牌模式信息,其中動態(tài)令牌模式信息包括:事件模式、第一時間模式和第二時間模式,相應(yīng)地:
[0212]按鍵處理流程的步驟D26中,生成動態(tài)口令之前還包括:存儲采集到的光感數(shù)據(jù)中的動態(tài)令牌模式信息,若動態(tài)令牌模式信息為事件模式,則還包括設(shè)置與種子數(shù)據(jù)對應(yīng)的事件因子;步驟D27中,還包括用采集到的光感數(shù)據(jù)中的動態(tài)令牌模式信息替換與種子菜單索引相對應(yīng)的種子數(shù)據(jù)的動態(tài)令牌模式信息,若采集到的光感數(shù)據(jù)中的動態(tài)令牌模式信息為事件模式,則還包括重新設(shè)置與種子菜單索引相對應(yīng)的種子數(shù)據(jù)對應(yīng)的事件因子;步驟D14中根據(jù)查找到的種子數(shù)據(jù)和動態(tài)令牌中存儲的動態(tài)因子計算生成動態(tài)口令,具體包括:讀取動態(tài)令牌中存儲的與查找到的種子數(shù)據(jù)對應(yīng)的動態(tài)令牌模式信息和動態(tài)因子,若為事件模式,則讀取動態(tài)令牌中存儲的與查找到的種子數(shù)據(jù)對應(yīng)的事件因子,根據(jù)查找到的種子數(shù)據(jù)以及讀取到的事件因子計算生成動態(tài)口令;若為第一時間模式,則讀取動態(tài)令牌中存儲的第一時間因子,根據(jù)查找到的種子數(shù)據(jù)以及讀取到的第一時間因子計算生成動態(tài)口令;若為第二時間模式,則讀取動態(tài)令牌中存儲的第二時間因子,根據(jù)查找到的種子數(shù)據(jù)以及讀取到的第二時間因子計算生成動態(tài)口令;其中,當根據(jù)查找到的種子數(shù)據(jù)以及讀取到的事件因子計算生成動態(tài)口令時,在生成動態(tài)口令之前或之后還包括:更新動態(tài)令牌中存儲的與查找到的種子數(shù)據(jù)對應(yīng)的事件因子;步驟D26和步驟D27中,根據(jù)最新存儲的種子數(shù)據(jù)和動態(tài)令牌中存儲的動態(tài)因子計算生成動態(tài)口令,具體包括:檢查最新存儲的種子數(shù)據(jù)對應(yīng)的動態(tài)令牌模式信息,若為事件模式,則根據(jù)最新存儲的種子數(shù)據(jù)以及事件因子計算生成動態(tài)口令;若為第一時間模式,則根據(jù)最新存儲的種子數(shù)據(jù)以及第一時間因子計算生成動態(tài)口令;若為第二時間模式,則根據(jù)最新存儲的種子數(shù)據(jù)以及第二時間因子計算生成動態(tài)口令;其中,當根據(jù)最新存儲的種子數(shù)據(jù)和事件因子計算生成動態(tài)口令時,在生成動態(tài)口令之前或之后還包括:更新動態(tài)令牌中存儲的事件因子。
[0213]以上所述的實施例只是本發(fā)明較優(yōu)選的【具體實施方式】,本領(lǐng)域的技術(shù)人員在本發(fā)明技術(shù)方案范圍內(nèi)進行的通常變化和替換都應(yīng)包含在本發(fā)明的保護范圍內(nèi)。
【權(quán)利要求】
1.一種多種子動態(tài)令牌的工作方法,其特征在于,包括: 步驟S1、動態(tài)令牌上電初始化,打開總中斷,設(shè)置系統(tǒng)狀態(tài)為第一預(yù)設(shè)狀態(tài),進入休眠模式,等待被喚醒; 步驟S2、所述動態(tài)令牌檢測到中斷時被喚醒,進入中斷處理流程,待所述中斷處理流程結(jié)束后執(zhí)彳丁步驟S3 ; 所述中斷處理流程包括:所述動態(tài)令牌判斷按鍵中斷標志是否被置位,是則置位按鍵喚醒標志,復(fù)位所述按鍵中斷標志,中斷處理流程結(jié)束,否則中斷處理流程結(jié)束,其中,當所述動態(tài)令牌的按鍵被按下時觸發(fā)按鍵中斷,所述按鍵中斷標志被置位; 步驟S3、所述動態(tài)令牌檢查所述按鍵喚醒標志,若所述按鍵喚醒標志被置位,則進入按鍵處理流程,待所述按鍵處理流程結(jié)束后,重新進入休眠模式,等待被喚醒,返回步驟S2 ; 所述按鍵處理流程包括: 步驟a、所述動態(tài)令牌獲取鍵值,判斷鍵值和系統(tǒng)狀態(tài),當鍵值為第一預(yù)設(shè)鍵值且系統(tǒng)狀態(tài)為第一預(yù)設(shè)狀態(tài)時執(zhí)行步驟b ;當鍵值為第二預(yù)設(shè)鍵值且系統(tǒng)狀態(tài)為第二預(yù)設(shè)狀態(tài)時執(zhí)行步驟c ;當鍵值為第二預(yù)設(shè)鍵值且系統(tǒng)狀態(tài)為第三預(yù)設(shè)狀態(tài)時執(zhí)行步驟d ;當鍵值為第二預(yù)設(shè)鍵值且系統(tǒng)狀態(tài)為第五預(yù)設(shè)狀態(tài)時執(zhí)行步驟e ;當鍵值為第三預(yù)設(shè)鍵值且系統(tǒng)狀態(tài)為第二預(yù)設(shè)狀態(tài)時執(zhí)行步驟f ;當鍵值為第三預(yù)設(shè)鍵值且系統(tǒng)狀態(tài)為第三預(yù)設(shè)狀態(tài)時執(zhí)行步驟g;否則,執(zhí)行步驟h; 步驟b、所述動態(tài)令牌顯示功能菜單,初始化功能菜單索引,設(shè)置系統(tǒng)狀態(tài)為第二預(yù)設(shè)狀態(tài),執(zhí)彳T步驟h ; 步驟C、所述動態(tài)令牌根據(jù)所述功能菜單索引判斷用戶選擇的操作,若用戶選擇的操作為生成口令,則顯示種子數(shù)據(jù)菜單,初始化種子菜單索引,設(shè)置系統(tǒng)狀態(tài)為第三預(yù)設(shè)狀態(tài),執(zhí)行步驟h,若用戶選擇的操作為燒寫種子數(shù)據(jù),則獲取預(yù)先存儲的動態(tài)令牌序列號并顯示,設(shè)置系統(tǒng)狀態(tài)為第五預(yù)設(shè)狀態(tài),執(zhí)行步驟h ; 步驟d、所述動態(tài)令牌讀取所述動態(tài)令牌中存儲的與所述種子菜單索引對應(yīng)的種子數(shù)據(jù),根據(jù)讀取到的種子數(shù)據(jù)生成動態(tài)口令并顯示,設(shè)置系統(tǒng)狀態(tài)為第六預(yù)設(shè)狀態(tài),執(zhí)行步驟h ; 步驟e、所述動態(tài)令牌采集光感數(shù)據(jù),判斷采集到的光感數(shù)據(jù)中的序列號與預(yù)先存儲的動態(tài)令牌序列號是否匹配,若匹配則存儲采集到的光感數(shù)據(jù)中的種子數(shù)據(jù),根據(jù)最新存儲的種子數(shù)據(jù)生成動態(tài)口令并顯示,設(shè)置系統(tǒng)狀態(tài)為所述第六預(yù)設(shè)狀態(tài),執(zhí)行步驟h,若不匹配則清除采集到的光感數(shù)據(jù),獲取預(yù)先存儲的動態(tài)令牌序列號并顯示,設(shè)置系統(tǒng)狀態(tài)為所述第五預(yù)設(shè)狀態(tài),執(zhí)行步驟h ; 步驟f、所述動態(tài)令牌更新所述功能菜單索引,執(zhí)行步驟h ; 步驟g、所述動態(tài)令牌更新所述種子菜單索引,執(zhí)行步驟h ; 步驟h、所述動態(tài)令牌復(fù)位所述按鍵喚醒標志,所述按鍵處理流程結(jié)束。
2.如權(quán)利要求1所述的方法,其特征在于,所述步驟c中,還包括:若用戶選擇的操作為更新種子數(shù)據(jù),所述動態(tài)令牌顯示種子數(shù)據(jù)菜單,初始化種子菜單索引,設(shè)置系統(tǒng)狀態(tài)為第四預(yù)設(shè)狀態(tài),執(zhí)行步驟h; 所述步驟c中,當用戶選擇的操作為燒寫種子數(shù)據(jù)時,還包括:置位添加種子數(shù)據(jù)標志; 所述步驟a中,還包括:當鍵值為第二預(yù)設(shè)鍵值且系統(tǒng)狀態(tài)為所述第四預(yù)設(shè)狀態(tài)時,所述動態(tài)令牌獲取預(yù)先存儲的動態(tài)令牌序列號并顯示,設(shè)置系統(tǒng)狀態(tài)為第五預(yù)設(shè)狀態(tài),復(fù)位所述添加種子數(shù)據(jù)標志,執(zhí)行步驟h;當鍵值為第三預(yù)設(shè)鍵值且系統(tǒng)狀態(tài)為所述第四預(yù)設(shè)狀態(tài)時,更新所述種子菜單索引,執(zhí)行步驟h ; 所述步驟e中,所述存儲采集到的光感數(shù)據(jù)中的種子數(shù)據(jù)具體包括:檢查所述添加種子數(shù)據(jù)標志,若所述添加種子數(shù)據(jù)標志被置位,則存儲采集到的光感數(shù)據(jù)中的種子數(shù)據(jù),若所述添加種子數(shù)據(jù)標志未被置位,則用采集到的光感數(shù)據(jù)中的種子數(shù)據(jù)替換與種子菜單索引對應(yīng)的種子數(shù)據(jù)。
3.如權(quán)利要求1所述的方法,其特征在于,所述步驟c中,還包括:若用戶選擇的操作為刪除種子數(shù)據(jù),則顯示種子數(shù)據(jù)菜單,初始化種子菜單索引,設(shè)置系統(tǒng)狀態(tài)為第十預(yù)設(shè)狀態(tài),執(zhí)行步驟h ; 所述步驟a中,還包括:當鍵值為第二預(yù)設(shè)鍵值且系統(tǒng)狀態(tài)為所述第十預(yù)設(shè)狀態(tài)時,所述動態(tài)令牌刪除與所述種子菜單索引對應(yīng)的種子數(shù)據(jù),顯示功能菜單,初始化功能菜單索弓丨,設(shè)置系統(tǒng)狀態(tài)為第二預(yù)設(shè)狀態(tài),執(zhí)行步驟h ;當鍵值為第三預(yù)設(shè)鍵值且系統(tǒng)狀態(tài)為所述第十預(yù)設(shè)狀態(tài)時,更新所述種子菜單索引,執(zhí)行步驟h。
4.如權(quán)利要求1所述的方法,其特征在于,所述步驟e替換為:所述動態(tài)令牌采集光感數(shù)據(jù),判斷采集到的光感數(shù)據(jù)中的序列號與預(yù)先存儲的動態(tài)令牌序列號是否匹配,若匹配則顯示采集到的光感數(shù)據(jù)中的應(yīng)用信息,設(shè)置系統(tǒng)狀態(tài)為第七預(yù)設(shè)狀態(tài),執(zhí)行步驟h,若不匹配則清除采集到的光感數(shù)據(jù),獲取預(yù)先存儲的動態(tài)令牌序列號并顯示,設(shè)置系統(tǒng)狀態(tài)為所述第五預(yù)設(shè)狀態(tài),執(zhí)行步驟h ; 所述步驟a中,還包括:當鍵值為第二預(yù)設(shè)鍵值且系統(tǒng)狀態(tài)為所述第七預(yù)設(shè)狀態(tài)時,所述動態(tài)令牌存儲采集到的光感數(shù)據(jù)中的種子數(shù)據(jù),根據(jù)獲取到的種子數(shù)據(jù)生成動態(tài)口令并顯示,設(shè)置系統(tǒng)狀態(tài)為所述第六預(yù)設(shè)狀態(tài),執(zhí)行步驟h。
5.如權(quán)利要求1所述的方法,其特征在于,所述步驟e中,所述采集光感數(shù)據(jù)之后,所述判斷采集到的光感數(shù)據(jù)中的序列號與預(yù)先存儲的動態(tài)令牌序列號是否匹配之前,還包括:判斷是否采集完成,若采集完成則判斷采集到的光感數(shù)據(jù)中的序列號與預(yù)先存儲的動態(tài)令牌序列號是否匹配;若采集未完成則判斷是否采集超時,若采集超時則停止采集光感數(shù)據(jù),提示種子數(shù)據(jù)燒寫超時,獲取預(yù)先存儲的動態(tài)令牌序列號并顯示,設(shè)置系統(tǒng)狀態(tài)為所述第五預(yù)設(shè)狀態(tài),執(zhí)行步驟h,若采集未超時則繼續(xù)采集光感數(shù)據(jù)。
6.如權(quán)利要求1所述的方法,其特征在于,所述步驟e中,所述采集光感數(shù)據(jù)之前,還包括:設(shè)置系統(tǒng)狀態(tài)為第八預(yù)設(shè)狀態(tài);所述采集光感數(shù)據(jù)之后,所述判斷采集到的光感數(shù)據(jù)中的序列號與預(yù)先存儲的動態(tài)令牌序列號是否匹配之前,還包括:判斷是否采集完成,若采集完成則判斷采集到的光感數(shù)據(jù)中的序列號與預(yù)先存儲的動態(tài)令牌序列號是否匹配;若采集未完成則判斷系統(tǒng)狀態(tài)是否為第九預(yù)設(shè)狀態(tài),是則停止采集光感數(shù)據(jù),提示已取消燒寫種子數(shù)據(jù),獲取預(yù)先存儲的動態(tài)令牌序列號并顯示,設(shè)置系統(tǒng)狀態(tài)為所述第五預(yù)設(shè)狀態(tài),執(zhí)行步驟h,否則繼續(xù)采集光感數(shù)據(jù); 所述中斷處理流程中,當所述按鍵標志被置位時,所述置位按鍵喚醒標志之前,還包括:判斷系統(tǒng)狀態(tài),若系統(tǒng)狀態(tài)為所述第八預(yù)設(shè)狀態(tài)則獲取并判斷鍵值,當鍵值為所述第一預(yù)設(shè)鍵值時,設(shè)置系統(tǒng)狀態(tài)為第九預(yù)設(shè)狀態(tài),所述中斷處理流程結(jié)束,當鍵值不為所述第一預(yù)設(shè)鍵值時,所述中斷處理流程結(jié)束;若系統(tǒng)狀態(tài)不為所述第八預(yù)設(shè)狀態(tài)則置位按鍵喚醒
ll1、O
7.如權(quán)利要求1所述的方法,其特征在于,所述步驟a中,還包括:當鍵值為第一預(yù)設(shè)鍵值且系統(tǒng)狀態(tài)為所述第三、第四或第六預(yù)設(shè)狀態(tài)時,顯示功能菜單,初始化功能菜單索弓丨,設(shè)置系統(tǒng)狀態(tài)為第二預(yù)設(shè)狀態(tài),執(zhí)行步驟h ;當鍵值為第四預(yù)設(shè)鍵值且系統(tǒng)狀態(tài)不為第一預(yù)設(shè)狀態(tài)時設(shè)置系統(tǒng)狀態(tài)為所述第一預(yù)設(shè)狀態(tài),執(zhí)行步驟h。
8.如權(quán)利要求1所述的方法,其特征在于,所述步驟e中,所述存儲采集到的光感數(shù)據(jù)中的種子數(shù)據(jù)之后,根據(jù)最新存儲的種子數(shù)據(jù)生成動態(tài)口令并顯示之前,還包括:從采集到的光感數(shù)據(jù)中獲取動態(tài)口令顯示位數(shù),并將獲取到的動態(tài)口令顯示位數(shù)與獲取到的種子數(shù)據(jù)對應(yīng)存儲; 所述步驟e中,所述根據(jù)最新存儲的種子數(shù)據(jù)生成動態(tài)口令并顯示,具體包括:根據(jù)最新存儲的種子數(shù)據(jù)生成動態(tài)口令,再根據(jù)最新存儲的動態(tài)口令顯示位數(shù)截取生成的動態(tài)口令,顯示截取得到的數(shù)據(jù); 所述步驟d中,所述根據(jù)讀取到的種子數(shù)據(jù)生成動態(tài)口令并顯示,具體包括:根據(jù)讀取到的種子數(shù)據(jù)生成動態(tài)口令,根據(jù)動態(tài)令牌中存儲的與讀取到的種子數(shù)據(jù)對應(yīng)的動態(tài)口令顯示位數(shù)截取生成的動態(tài)口令,顯示截取得到的數(shù)據(jù)。
9.如權(quán)利要求1所述的方法,其特征在于,所述中斷處理流程中,當所述按鍵中斷標志未被置位時,還包括:判斷RTC中斷標志是否被置位,是則置位RTC喚醒標志,復(fù)位所述RTC中斷標志,所述中斷處理流程結(jié)束,否則所述中斷處理流程結(jié)束;其中,當所述RTC中斷被觸發(fā)時,所述RTC中斷標志被置位; 所述步驟S3替換為:所述動態(tài)令牌判斷是否有被置位的喚醒標志,如果有被置位的喚醒標志則依次檢查所述RTC喚醒標志和所述按鍵喚醒標志,若所述按鍵喚醒標志被置位,則進入所述按鍵處理流程,待所述按鍵處理流程結(jié)束后,重新執(zhí)行步驟S3,若所述RTC喚醒標志被置位,則進入RTC處理流程,待所述RTC處理流程結(jié)束后,重新執(zhí)行步驟S3 ;如果沒有被置位的喚醒標志則所述動態(tài)令牌進入休眠模式,等待被喚醒,返回步驟S2 ; 所述RTC處理流程包括: 步驟Xl:所述動態(tài)令牌遞減RTC中斷次數(shù),判斷所述RTC中斷次數(shù)是否為預(yù)設(shè)次數(shù),是則復(fù)位所述RTC喚醒標志,執(zhí)行步驟X2,否則執(zhí)行步驟X2 ; 步驟X2:所述動態(tài)令牌遞增第一參數(shù)和第二參數(shù),分別判斷所述第一參數(shù)和所述第二參數(shù)是否達到相應(yīng)閾值,若所述第一參數(shù)達到所述第一參數(shù)的閾值,則設(shè)置所述第一參數(shù)為其初始值,更新所述動態(tài)令牌中存儲的第一時間因子,若所述第二參數(shù)達到所述第二參數(shù)的閾值,則設(shè)置所述第二參數(shù)為其初始值,更新所述動態(tài)令牌中存儲的第二時間因子,然后執(zhí)行步驟X3 ;若所述第一參數(shù)和所述第二參數(shù)均未達到相應(yīng)閾值則直接執(zhí)行步驟X3 ; 步驟X3:所述動態(tài)令牌更新校準計數(shù)值,判斷所述第一參數(shù)是否等于預(yù)設(shè)值,是則執(zhí)行步驟X4,否則所述RTC處理流程結(jié)束; 步驟X4:所述動態(tài)令牌根據(jù)所述校準計數(shù)值和所述動態(tài)令牌內(nèi)預(yù)先存儲的校準值判斷是否需要對所述第一參數(shù)和所述第二參數(shù)進行校準,是則根據(jù)所述校準值和所述校準計數(shù)值更新所述第一參數(shù)、所述第二參數(shù)和所述校準計數(shù)值,所述RTC處理流程結(jié)束,否則所述RTC處理流程結(jié)束。
10.如權(quán)利要求9所述的方法,其特征在于,所述步驟e中,所述存儲采集到的光感數(shù)據(jù)中的種子數(shù)據(jù)之后,根據(jù)最新存儲的種子數(shù)據(jù)生成動態(tài)口令并顯示之前,還包括:從采集到的光感數(shù)據(jù)中獲取動態(tài)令牌模式信息,若獲取到的動態(tài)令牌模式信息為事件型,則將獲取到的動態(tài)令牌模式信息與獲取到的種子數(shù)據(jù)對應(yīng)存儲,并設(shè)置與所述獲取到的種子數(shù)據(jù)對應(yīng)的事件因子,若獲取到的動態(tài)令牌模式信息為第一時間模式或第二時間模式,則將獲取到的動態(tài)令牌模式信息與獲取到的種子數(shù)據(jù)對應(yīng)存儲; 所述步驟e中,所述根據(jù)最新存儲的種子數(shù)據(jù)生成動態(tài)口令,具體包括:檢查最新存儲的動態(tài)令牌模式信息,若為事件模式,則根據(jù)最新存儲的種子數(shù)據(jù)和最新設(shè)置的事件因子生成動態(tài)口令,若為第一時間模式,則根據(jù)最新存儲的種子數(shù)據(jù)和所述動態(tài)令牌中的第一時間因子生成動態(tài)口令,若為第二時間模式,則根據(jù)最新存儲的種子數(shù)據(jù)和所述動態(tài)令牌中的第二時間因子生成動態(tài)口令; 所述步驟d中,所述根據(jù)讀取到的種子數(shù)據(jù)生成動態(tài)口令,具體包括:檢查與所述動態(tài)令牌中存儲的與讀取到的種子數(shù)據(jù)對應(yīng)的動態(tài)令牌模式信息,若為事件模式,則根據(jù)讀取到的種子數(shù)據(jù)和所述動態(tài)令牌中存儲的與讀取到的種子數(shù)據(jù)對應(yīng)的事件因子生成動態(tài)口令,若為第一時間模式,則根據(jù)讀取到的種子數(shù)據(jù)和所述動態(tài)令牌中的第一時間因子生成動態(tài)口令,若為第二時間模式,則根據(jù)讀取到的種子數(shù)據(jù)和所述動態(tài)令牌中的第二時間因子生成動態(tài)口令。
11.如權(quán)利要求10所述的方法,其特征在于,所述根據(jù)最新存儲的種子數(shù)據(jù)和最新設(shè)置的事件因子生成動態(tài)口令之前或之后,還包括:更新最新設(shè)置的事件因子; 所述根據(jù)讀取到的種子數(shù)據(jù)和所述動態(tài)令牌中存儲的與讀取到的種子數(shù)據(jù)對應(yīng)的事件因子生成動態(tài)口令之前或之后,還包括:更新與讀取到的種子數(shù)據(jù)對應(yīng)的事件因子。
12.如權(quán)利要求9所述的方法,其特征在于,所述RTC處理流程中還包括:檢測所述動態(tài)令牌是否被開殼,并且當檢測出所述動態(tài)令牌被開殼時清除所述動態(tài)令牌內(nèi)部存儲的敏感數(shù)據(jù),置位開殼標志;其中,所述敏感數(shù)據(jù)包括種子數(shù)據(jù); 所述步驟b中,顯示功能菜單之前,還包括:檢查所述開殼標志是否被置位,是則提示動態(tài)令牌已自毀,執(zhí)行步驟h,否則顯示功能菜單。
13.如權(quán)利要求9所述的方法,其特征在于,所述步驟X4中,當不需要對所述第一參數(shù)和所述第二參數(shù)進行校準時,以及根據(jù)所述校準值和所述校準計數(shù)值更新所述第一參數(shù)、所述第二參數(shù)和所述校準計數(shù)值之后,還包括:檢查系統(tǒng)狀態(tài),若系統(tǒng)狀態(tài)為所述第一預(yù)設(shè)狀態(tài)則所述RTC處理流程結(jié)束,若系統(tǒng)狀態(tài)不為所述第一預(yù)設(shè)狀態(tài)則遞減自動關(guān)機時間,若所述自動關(guān)機時間等于預(yù)設(shè)時間,則對顯示屏下電,設(shè)置系統(tǒng)狀態(tài)為所述第一預(yù)設(shè)狀態(tài),所述RTC處理流程結(jié)束,若所述自動關(guān)機時間不等于所述預(yù)設(shè)時間,則所述RTC處理流程結(jié)束; 所述按鍵處理流程中,所述步驟a之前,還包括:重置所述自動關(guān)機時間。
14.如權(quán)利要求9所述的方法,其特征在于,所述步驟e中,所述存儲采集到的光感數(shù)據(jù)中的種子數(shù)據(jù)之后,根據(jù)最新存儲的種子數(shù)據(jù)生成動態(tài)口令并顯示之前,還包括:從采集到的光感數(shù)據(jù)中獲取種子數(shù)據(jù)有效期,將獲取到的種子數(shù)據(jù)有效期與獲取到的種子數(shù)據(jù)對應(yīng)存儲; 所述步驟X2中,當所述第二參數(shù)達到所述第二參數(shù)的閾值時,還包括:根據(jù)所述動態(tài)令牌中存儲的與各種子數(shù)據(jù)對應(yīng)的種子數(shù)據(jù)有效期檢查各種子數(shù)據(jù)是否到期,并更新未到期的種子數(shù)據(jù)對應(yīng)的種子數(shù)據(jù)有效期,置位到期的種子數(shù)據(jù)對應(yīng)的種子數(shù)據(jù)失效標志; 所述步驟d中,根據(jù)讀取到的種子數(shù)據(jù)生成動態(tài)口令之前,還包括:檢查與讀取到的種子數(shù)據(jù)對應(yīng)的種子數(shù)據(jù)失效標志是否被置位,是則提示種子數(shù)據(jù)失效,執(zhí)行步驟h,否則根據(jù)讀取到的種子數(shù)據(jù)生成動態(tài)口令。
15.如權(quán)利要求9所述的方法,其特征在于,所述動態(tài)令牌根據(jù)所述校準計數(shù)值和所述動態(tài)令牌內(nèi)預(yù)先存儲的校準值判斷是否需要對所述第一參數(shù)和所述第二參數(shù)進行校準,具體包括:所述動態(tài)令牌判斷所述校準值和0x7F進行與運算的結(jié)果是否小于所述校準計數(shù)值,是則需要對所述第一參數(shù)和所述第二參數(shù)進行校準,否則不需要對所述第一參數(shù)和所述第二參數(shù)進行校準。
16.如權(quán)利要求15所述的方法,其特征在于,所述根據(jù)所述校準值和所述校準計數(shù)值更新所述第一參數(shù)、所述第二參數(shù)和所述校準計數(shù)值,具體包括:更新所述校準計數(shù)值為其當前值減去所述校準值,檢查所述校準值的最高位,若所述校準值的最高位為1,則更新所述第一參數(shù)為其當前值減1,更新所述第二參數(shù)為其當前值減I ;若所述校準值的最高位為O,則更新所述第一參數(shù)為其當前值加1,更新所述第二參數(shù)為其當前值加I。
17.如權(quán)利要求1所述的方法,其特征在于,所述中斷處理流程中,所述判斷按鍵中斷標志是否被置位之前,還包括:判斷工裝通信中斷標志是否被置位,是則置位工裝通信喚醒標志,復(fù)位所述工裝通信中斷標志,所述中斷處理流程結(jié)束,否則執(zhí)行所述判斷按鍵中斷標志是否被置位;其中,當所述動態(tài)令牌接收到工裝發(fā)送的通信數(shù)據(jù)時觸發(fā)工裝通信中斷,所述工裝通信中斷標志被置位; 所述步驟S3替換為:所述動態(tài)令牌判斷是否有被置位的喚醒標志,如果有被置位的喚醒標志則依次檢查所述工裝通信喚醒標志和所述按鍵喚醒標志,若所述工裝通信標志被置位,則進入工裝通信處理流程,待所述工裝通信處理流程結(jié)束后,重新執(zhí)行步驟S3,若所述按鍵喚醒標志被置位,則進入所述按鍵處理流程,待所述按鍵處理流程結(jié)束后,重新執(zhí)行步驟S3,如果沒有被置位的喚醒標志則所述動態(tài)令牌進入休眠模式,等待被喚醒,返回步驟S2 ; 所述工裝通信處理流程包括: 步驟Yl:關(guān)閉總中斷,判斷當前接收到的數(shù)據(jù)是否為所述工裝發(fā)送的喚醒信號,是則向所述工裝返回握手信號,繼續(xù)接收所述工裝發(fā)送的通信數(shù)據(jù),執(zhí)行步驟Y2,否則執(zhí)行步驟Y3 ; 步驟Y2:判斷當前接收到的數(shù)據(jù)的類型,若為獲取令牌硬件信息命令,則獲所述獲取令牌硬件信息命令中的隨機數(shù),保存所述隨機數(shù),并將獲取到的隨機數(shù)返回給所述工裝,執(zhí)行步驟Y3,若為其他工裝命令,則根據(jù)所述動態(tài)令牌中保存的隨機數(shù)對接收到的工裝命令進行解密,執(zhí)行解密后的命令,并向所述工裝返回執(zhí)行結(jié)果,執(zhí)行步驟Y3,否則執(zhí)行步驟Y3 ; 步驟Y3:置位所述工裝通信喚醒標志,使能總中斷,所述工裝通信處理流程結(jié)束。
【文檔編號】H04L9/32GK104506319SQ201410771841
【公開日】2015年4月8日 申請日期:2014年12月15日 優(yōu)先權(quán)日:2014年12月15日
【發(fā)明者】陸舟, 于華章, 李明基 申請人:飛天誠信科技股份有限公司, 海博思科信息系統(tǒng)有限公司