中文字幕无码日韩视频无码三区

一種數字簽名方法和裝置的制作方法

文檔序號:7894923閱讀:172來源:國知局
專利名稱:一種數字簽名方法和裝置的制作方法
技術領域
本發明涉及信息安全領域,特別是涉及一種數字簽名方法和裝置。
背景技術
隨著近年來網銀安全事件的不斷的發生,安全問題成為了網銀系統的工作重點。目前的網銀系統中,通常使用USB (Universal Serial BUS,通用串行總線)Key來提高安全防范等級。USB Key是一種具有USB接口的硬件設備,內置單片機或智能卡芯片,有一定的存儲空間,可以存儲用戶的私鑰以及數字證書。當用戶使用USB Key登錄網銀系統時,USB Key會先對用戶輸入的PIN (Personal Identification Number,個人識別密碼)碼進行驗證,并在驗證通過時,使用私鑰對數據進行加密,進而完成數字簽名。發明人在實現本發明的過程中,發現現有技術至少存在以下缺陷現有技術中的USB Key通常具有唯一的PIN碼,USB Key中的私鑰也是唯一的,當PIN碼泄露時,會對網銀的安全造成巨大的威脅,因此,現有的數字簽名方法的安全性較低,無法保障網銀系統的安全。

發明內容
本發明實施例提供了一種數字簽名方法和裝置,用于提高PIN碼認證和數字簽名的安全性。本發明實施例提供了一種數字簽名方法,包括以下步驟通用串行總線USB Key接收來自主機的報文,獲取用戶輸入信息,所述用戶輸入信息為所述用戶輸入個人識別密碼PIN碼的方式,和/或,所述用戶輸入的PIN碼;所述USB Key判斷獲取的用戶輸入信息是否與所述USB Key接收到的報文匹配;如果所述獲取的用戶輸入信息與所述USB Key接收到的報文匹配,所述USB Key對所述報文進行數字簽名;
如果所述獲取的用戶輸入信息與所述USB Key接收到的報文不匹配,所述USB Key返回錯誤信息或認證失敗信息。本發明實施例提供了一種數字簽名方法,應用于包括通用串行總線USB Key和主機的系統中,所述USB Key存儲有用戶輸入信息集合,并記錄有上一次認證時使用的用戶輸入信息,所述用戶輸入信息為所述用戶輸入個人識別密碼PIN碼的方式,和/或,所述用戶輸入的PIN碼,所述方法包括以下步驟①、所述USB Key獲取用戶輸入信息;②、所述USB Key判斷獲取的用戶輸入信息是否包含在所述用戶輸入信息集合中,如果包含在所述用戶輸入信息集合中,則執行步驟④;否則,執行步驟③;③、所述USB Key返回錯誤信息或認證失敗信息,結束流程;④、所述USB Key判斷所述獲取的用戶輸入信息是否與上一次認證時使用的用戶輸入信息相同,如果相同,則執行步驟③;否則,執行步驟⑤;⑤、所述USB Key對接收到的報文進行數字簽名。本發明實施例提供了一種數字簽名方法,包括以下步驟①、通用串行總線USB Key接收來自主機的報文,根據所述報文確定對應的PIN碼的數量;②、所述USB Key獲取用戶輸入信息,將計數器的計數值加1,所述計數器的初始計數值為零,所述用戶輸入信息為所述用戶輸入個人識別密碼PIN碼的方式,和/或,所述用戶輸入的PIN碼;③、所述USB Key判斷獲取的用戶輸入信息是否滿足預設條件,如果滿足,則執行步驟⑤;否則,執行步驟④;④、所述USB Key返回錯誤信息或認證失敗信息,結束流程;⑤、所述USB Key判斷計數器的計數值是否小于與所述報文對應的PIN碼的數量,如果小于,則返回步驟②;否則,執行步驟⑥;⑥、所述USB Key對所述報文進行數字簽名。本發明實施例提供了一種數字簽名方法,包括以下步驟①、通用串行總線USB Key獲取第一用戶輸入信息,判斷所述第一用戶輸入信息是否滿足預設條件,如果不滿足,則執行步驟②;如果滿足,執行步驟③;所述第一用戶輸入信息為所述用戶輸入第一個人識別密碼PIN碼的方式,和/或,所述用戶輸入的第一 PIN碼;②、所述USB Key返回錯誤信息或認證失敗信息,結束流程;
③、所述USB Key接收來自主機的報文,獲取第二用戶輸入信息,判斷所述第二用戶輸入信息是否與所述USB Key接收到的報文匹配,如果不匹配,則執行步驟②;如果匹配,則執行步驟④;所述第二用戶輸入信息為所述用戶輸入第二PIN碼的方式,和/或,所述用戶輸入的第二 PIN碼;④、所述USB Key對所述報文進行數字簽名。本發明實施例提供了一種通用串行總線USB Key,包括接收模塊,用于接收來自主機的報文;獲取模塊,用于獲取用戶輸入信息,所述用戶輸入信息為所述用戶輸入個人識別密碼PIN碼的方式,和/或,所述用戶輸入的PIN碼;判斷模塊,用于判斷所述獲取模塊獲取的用戶輸入信息是否與所述接收模塊接收到的報文匹配;數字簽名模塊,用于在所述判斷模塊判斷所述用戶輸入信息與所述報文匹配時,對所述報文進行數字簽名;發送模塊,用于在所述判斷模塊判斷所述用戶輸入信息與所述報文不匹配時,返回錯誤信息或認證失敗信息。本發明實施例提供了一種通用串行總線USB Key,包括存儲模塊,用于存儲用戶輸入信息集合,所述用戶輸入信息為所述用戶輸入個人識別密碼PIN碼的方式,和/或,所述用戶輸入的PIN碼;記錄模塊,記錄上一次認證時使用的用戶輸入信息;
接收模塊,用于接收來自主機的報文;獲取模塊,用于獲取用戶輸入信息;第一判斷模塊,用于判斷所述獲取模塊獲取的用戶輸入信息是否包含在所述用戶輸入信息集合中;第二判斷模塊,用于在所述第一判斷模塊判斷所述獲取模塊獲取的用戶輸入信息包含在所述用戶輸入信息集合中時,判斷所述獲取的用戶輸入信息是否與上一次認證時使用的用戶輸入信息相同;數字簽名模塊,用于在所述第二判斷模塊判斷所述獲取的用戶輸入信息是否與上
一次認證時使用的用戶輸入信息不同時,對所述報文進行數字簽名;發送模塊,用于在所述第一判斷模塊判斷所述獲取模塊獲取的用戶輸入信息不包含在所述用戶輸入信息集合中時,或者,在所述第二判斷模塊判斷所述獲取的用戶輸入信息是否與上一次認證時使用的用戶輸入信息相同時,返回錯誤信息或認證失敗信息。本發明實施例提供了一種通用串行總線USB Key,包括接收模塊,用于接收來自主機的報文;確定模塊,用于根據所述報文確定對應的個人識別密碼PIN碼的數量;獲取模塊,用于獲取用戶輸入信息,所述用戶輸入信息為所述用戶輸入PIN碼的方式,和/或,所述用戶輸入的PIN碼;計數器模塊,用于在所述獲取模塊獲取用戶輸入信息后,將計數值加1,所述計數值的初始值為零;第一判斷模塊,用于判斷所述獲取模塊獲取的用戶輸入信息是否滿足預設條件;發送模塊,用于在所述第一判斷模塊判斷所述獲取模塊獲取的用戶輸入信息不滿足預設條件時,返回錯誤信息或認證失敗信息;第二判斷模塊,用于判斷所述計時器模塊的計數值是否等于與所述報文對應的PIN碼的數量;數字簽名模塊,用于在所述第二判斷模塊判斷所述計時器模塊的計數值等于與所述報文對應的PIN碼的數量時,對所述報文進行數字簽名。本發明實施例提供了一種通用串行總線USB Key,包括獲取模塊,用于獲取第一用戶輸入信息和第二用戶輸入信息,所述第一用戶輸入信息為所述用戶輸入第一個人識別密碼PIN碼的方式,和/或,所述用戶輸入的第一 PIN碼;所述第二用戶輸入信息為所述用戶輸入第二 PIN碼的方式,和/或,所述用戶輸入的第二 PIN 碼;第一判斷模塊,用于判斷所述第一用戶輸入信息是否滿足預設條件;接收模塊,用于在所述第一判斷模塊判斷所述第一用戶輸入信息滿足預設條件時,接收來自主機的報文;第二判斷模塊,用于判斷所述第二用戶輸入信息是否與所述接收模塊接收到的報文匹配;發送模塊,用于在所述第一判斷模塊判斷所述第一用戶輸入信息不滿足預設條件,或者,所述第二判斷模塊判斷所述第二用戶輸入信息與所述接收模塊接收到的報文不匹配時,返回錯誤信息或認證失敗信息;
數字簽名模塊,用于在所述第二判斷模塊判斷所述第二用戶輸入信息與所述接收模塊接收到的報文匹配時,對所述報文進行數字簽名。本發明實施例提供的技術方案中,在一次認證過程中,使用多個PIN碼進行認證,或者,在相鄰的兩次數字簽名過程中,使用不同的私鑰進行數字簽名;且根據接收到的報文,使用對應的私鑰進行數字簽名,當一個PIN碼泄露時,不會對其他PIN碼的認證和數字簽名造成影響,能夠有效地減少由于PIN碼泄露帶來的損失,提高了數字簽名的安全性。


圖I為本發明實施例一提供的一種數字簽名方法流程圖;圖2為本發明實施例一提供的一種報文格式示意圖;圖3為本發明實施例二提供的一種數字簽名方法流程圖;圖4為本發明實施例三提供的一種數字簽名方法流程圖;圖5為本發明實施例四提供的一種數字簽名方法流程圖;圖6為本發明實施例五提供的一種數字簽名方法流程圖;圖7為本發明實施例六提供的一種USB Key的結構示意圖;圖8為本發明實施例七提供的一種USB Key的結構示意圖;圖9為本發明實施例八提供的一種USB Key的結構示意圖;圖10為本發明實施例九提供的一種USB Key的結構示意圖。
具體實施例方式下面將結合本發明實施例中的附圖,對本發明實施例中的技術方案進行清楚、完整地描述,顯然,所描述的實施例僅僅是本發明一部分實施例,而不是全部的實施例。基于本發明中的實施例,本領域普通技術人員在沒有做出創造性勞動前提下所獲得的所有其他實施例,都屬于本發明保護的范圍。 實施例一本發明實施例一提供了一種數字簽名方法,參見圖1,包括以下步驟步驟101,主機獲取用戶輸入的數據,根據該數據進行報文封裝,并將封裝得到的報文發送給USB Key0其中,用戶輸入的數據可以包括指令和/或參數,指令包括查詢指令、支付指令和轉賬指令等;參數包括賬戶號、賬戶姓名和轉賬金額等。主機中的業務系統根據用戶輸入的數據,通過調用主機中的控件提供的函數向報文添加內容,將內容、與內容對應的關鍵字和內容長度信息封裝為報文中的信息段。當需要多次向報文添加內容時,需要按照不同內容對應的信息段的編號,對信息段進行排列。封裝得到的報文為TLV格式的報文,如圖2所示,其中,Tag (標簽)的內容為ACSII碼的“00”,占用2個字節;Length (長度)占用16個字節,表現為十進制數字的字符;Value(值)包括一個或多個信息段。每個信息段包括關鍵字、編號、長度信息和內容,關鍵字包括顯示標志和NV標志。其中,顯示標志用于表示是否顯示該信息段的內容,占用I個字節,其內容可以為“S”或“D”,“S”表示顯示該信息段的內容,“D”表示不顯示該信息段的內容。NV(Name-ValUe,名字-值)標志用于表示該信息段的內容的顯示方式,占用I個字節,其內容可以為“N”或“V”,“N”表示以名字的形式顯示該信息段的內容,S卩,在將該信息段的內容在前半部分顯示表示以值的形式顯示該信息段的內容,S卩,在將該信息段的內容在后半部分顯示。編號用于表示該信息段的編號,占用2個字節,其內容可以為從“00”到“99”之間的數值。內容長度信息用于表示該信息段的內容的長度,占用4個字節。例如,封裝得到的報文中的“Value”包括10個信息段,內容分別為“SN010016轉入賬戶號:”、“SV0222222221”、“SN020019 轉入賬戶姓名:”、“SV020006 李四”、“SN030032 轉賬金額(小寫):”、“SV03000810000. 00”、“DN010016 轉出賬戶號:,,、“DV0222222222”、“DN020019 轉出賬戶姓名:”和 “DV020006 張三”,則顯示的內容為“轉入賬戶號222222222222221”、“轉入賬戶姓名李四”和“轉賬金額(小寫)10000. 00”。、
步驟102,USB Key提示用戶輸入PIN碼,并獲取用戶輸入的PIN碼。具體地,USB Key可以通過自身的顯示裝置提示用戶輸入PIN碼,也可以通過與自身連接的主機上的顯示裝置提示用戶輸入PIN碼。USB Key可以通過自身的輸入裝置獲取用戶輸入的PIN碼,也可以通過與自身連接的主機上的輸入裝置獲取用戶輸入的PIN碼。例如,USB Key可以通過與自身連接的主機,以屏幕顯示或語音提示的方式提示用戶輸入PIN碼;也可以通過液晶顯示、燈閃爍或聲音提示,提示用戶輸入PIN碼。步驟103,USB Key判斷用戶輸入PIN碼的方式是否與USB Key接收到的報文匹配,如果匹配,則執行步驟105 ;否則,執行步驟104。具體地,USB Key可以根據接收到的報文所包含的信息段中的內容的取值,確定該內容所在的數據區間,并進一步確定該數據區間對應的輸入PIN碼的方式,如果確定的輸入PIN碼的方式與用戶輸入PIN碼的方式相同,則確定用戶輸入PIN碼的方式與USB Key接收到的報文匹配;否則,則確定用戶輸入PIN碼的方式與USB Key接收到的報文不匹配。例如,當USB Key接收到的報文為“SV03000810000. 00”時,該報文包含的信息段中的內容的取值為“10000. 00”,USB Key可以確定該內容所在的數據區間為(5000,15000),并進一步確定該數據數據對應的輸入PIN碼的方式為虛擬桌面配合軟鍵盤的輸入方式,如果用戶輸入PIN碼的方式為虛擬桌面配合軟鍵盤的輸入方式,則確定用戶輸入PIN碼的方式與USB Key接收到的報文匹配;否則,則確定用戶輸入PIN碼的方式與USB Key接收到的報文不匹配。USB Key也可以根據用戶輸入PIN碼的方式,確定該方式對應的數據區間,如果USB Key接收到的報文所包含的信息段中的內容的取值在該數據區間內,則確定用戶輸入PIN碼的方式與USB Key接收到的報文匹配;否則,則確定用戶輸入PIN碼的方式與USB Key接收到的報文不匹配。USB Key還可以根據接收到的報文所包含的信息段中的關鍵字的取值,確定該取值對應的輸入PIN碼的方式,如果確定的輸入PIN碼的方式與用戶輸入PIN碼的方式相同,則確定用戶輸入PIN碼的方式與USB Key接收到的報文匹配;否則,則確定用戶輸入PIN碼的方式與USB Key接收到的報文不匹配。例如,當USB Key接收到的報文為“SN010016轉入賬戶號”時,該報文包含的信息段中的關鍵字的取值為“SN”,USB Key可以確定該取值對應的輸入PIN碼的方式為普通鍵盤輸入方式,如果用戶輸入PIN碼的方式為普通鍵盤輸入方式,則確定用戶輸入PIN碼的方式與USB Key接收到的報文匹配;否則,則確定用戶輸入PIN碼的方式與USB Key接收到的報文不匹配。USB Key還可以根據用戶輸入PIN碼的方式,確定該方式對應的關鍵字的取值,如果確定出的關鍵字的取值與USB Key接收到的報文所包含的信息段中的關鍵字的取值相同,則確定用戶輸入PIN碼的方式與USB Key接收到的報文匹配;否則,則確定用戶輸入PIN碼的方式與USB Key接收到的報文不匹配。其中,輸入PIN碼的方式可以包括普通鍵盤輸入方式、軟鍵盤輸入方式、虛擬桌面配合普通鍵盤的輸入方式、虛擬桌面配合軟鍵盤的輸入方式、在帶有輸入裝置的USB Key上直接輸入的方式,以及以上輸入方式的組合。不同的數據區間可以對應不同的輸入PIN碼的方式,數據區間內的數據的值越大,該數據區間對應的輸入PIN碼的方式越復雜。關鍵字的不同取值也可以對應不同的輸入PIN碼的方式。步驟104,USB Key返回錯誤信息。需要說明的是,執行完本步驟后,返回步驟102。步驟105,USB Key判斷用戶輸入的PIN碼是否與USB Key接收到的報文匹配,如果匹配,則執行步驟106 ;否則,返回步驟104。具體地,USB Key可以根據接收到的報文所包含的信息段中的內容的取值,確定該內容所在的數據區間,并進一步確定該數據區間對應的PIN碼,如果確定的PIN碼與用戶輸入的PIN碼相同,則確定用戶輸入的PIN碼與USB Key接收到的報文匹配;否則,則確定用戶輸入的PIN碼與USB Key接收到的報文不匹配。USB Key也可以根據用戶輸入的PIN碼,確定該PIN碼對應的數據區間,如果USBKey接收到的報文所包含的信息段中的內容的取值在該數據區間內,則確定用戶輸入的PIN碼與USB Key接收到的報文匹配;否則,則確定用戶輸入的PIN碼與USB Key接收到的報文不匹配。USB Key還可以根據接收到的報文所包含的信息段中的關鍵字的取值,確定該取值對應的PIN碼,如果確定的PIN碼與用戶輸入的PIN碼相同,則確定用戶輸入的PIN碼與USB Key接收到的報文匹配;否則,則確定用戶輸入的PIN碼與USB Key接收到的報文不匹配。USB Key還可以根據用戶輸入的PIN碼,確定該PIN碼對應的關鍵字的取值,如果確定出的關鍵字的取值與USB Key接收到的報文所包含的信息段中的關鍵字的取值相同,則確定用戶輸入的PIN碼與USB Key接收到的報文匹配;否則,則確定用戶輸入的PIN碼與USB Key接收到的報文不匹配。其中,不同的數據區間對應不同的PIN碼,數據區間內的數據的值越大,對應的PIN碼越復雜。例如,第一區間內的數據小于或等于500,對應第一 PIN碼;第二區間內的數 據的大小在501-2000的范圍內,對應第二 PIN碼;第三區間內的數據大于2000,對應第三PIN碼。第三PIN碼比第二 PIN碼復雜,第二 PIN碼比第一 PIN碼復雜。關鍵字的不同取值也可以對應不同的PIN碼。步驟106,USB Key使用與接收到的報文對應的一個或多個私鑰,對該報文進行數
字簽名。
具體地,USB Key可以根據接收到的報文所包含的信息段中的內容的取值,確定該內容所在的數據區間,進而確定該數據區間對應的一個或多個私鑰,即,與接收到的報文對應的一個或多個私鑰;也可以根據接收到的報文所包含的信息段中的關鍵字的取值,確定該取值對應的一個或多個私鑰,即,與接收到的報文對應的一個或多個私鑰。進一步地,USB Key可以使用哈希函數生成與接收到的報文對應的報文摘要,并用確定出的一個或多個私鑰對報文摘要進行加密,將加密后的報文摘要作為報文的數字簽名和報文一起發送給接收方。接收方可以使用相同的哈希函數生成與接收到的報文對應的報文摘要,用對應的公鑰對報文附加的數字簽名進行解密,得到解密后的報文摘要。當使用哈希函數生成的報文摘要與解密得到的報文摘要相同時,接收方可確認接收到的數字簽名為合法簽名。其中,不同的數據區間可以對應不同的私鑰,數據區間內的數據的值越大,對應的
私鑰的強度越大。例如,第一區間內的數據小于或等于500,對應第一私鑰;第二區間內的數據的大小在501-2000的范圍內,對應第二私鑰;第三區間內的數據大于2000,對應第三私鑰。第三私鑰的強度大于第二私鑰的強度,第二私鑰的強度大于第一私鑰的強度。另外,不同的數據區間也可以對應不同數量的私鑰,數據區間內的數據的值越大,對應的私鑰的數量越多、強度越大。例如,第一區間內的數據小于或等于500,對應第一私鑰;第二區間內的數據的大小在501-2000的范圍內,對應第二私鑰和第三私鑰;第三區間內的數據大于2000,對應第二私鑰、第三私鑰和第四密鑰。此外,關鍵字的不同取值可以對應不同的私鑰,也可以對應不同數量的私鑰。本發明實施例針對USB Key接收到的報文,使用對應的PIN碼和PIN碼輸入方式進行認證,并使用對應的私鑰進行數字簽名,當一個PIN碼泄露時,不會對使用其他PIN碼的認證和數字簽名造成影響,能夠有效地減少由于PIN碼泄露帶來的損失,提高了數字簽名的安全性。本發明實施例一中,先判斷用戶輸入PIN碼的方式是否與USB Key接收到的報文匹配,如果匹配,再判斷用戶輸入的PIN碼是否與USB Key接收到的報文匹配。在本發明的其他實施例中,也可以先判斷用戶輸入的PIN碼是否與USB Key接收到的報文匹配,如果匹配,再判斷用戶輸入PIN碼的方式是否與USB Key接收到的報文匹配,具體流程見實施例
--O實施例二本發明實施例二提供了一種數字簽名方法,應用于包括主機和USB Key的系統,參見圖3,包括以下步驟步驟201,主機獲取用戶輸入的數據,根據該數據進行報文封裝,并將封裝得到的報文發送給USB Key0其中,用戶輸入的數據可以包括指令和/或參數。步驟202,USB Key根據接收到的報文,向主機發送提示信息。步驟203,主機根據接收到的提示信息,提示用戶輸入PIN碼,并獲取用戶輸入的PIN碼,將該PIN碼發送給USB Key0需要說明的是,上述步驟202為本實施例的優選步驟。在本發明的其他實施方式中,USB Key也可以不向主機發送提示信息,主機在獲取用戶輸入的數據后,直接提示用戶輸入PIN碼,獲取用戶輸入的PIN碼,并將該PIN碼發送給USB Key0步驟204,USB Key判斷用戶輸入的PIN碼是否與USB Key接收到的報文匹配,如果匹配,則執行步驟206 ;否則,執行步驟205。需要說明的是,USB Key判斷用戶輸入的PIN碼是否與USB Key接收到的報文匹配的具體過程,與實施例一中的步驟105相同。步驟205,USB Key返回認證失敗信息,將認證失敗次數加I。其中,認證失敗次數的初始值為O。步驟206,USB Key判斷認證失敗次數是否大于預設次數,如果大于預設次數,則執、行步驟207 ;否則,返回步驟202。步驟207,USB Key返回錯誤信息。步驟208,USB Key判斷用戶輸入PIN碼的方式是否與USB Key接收到的報文匹配,如果匹配,則執行步驟209 ;否則,返回步驟205。需要說明的是,USB Key判斷用戶輸入PIN碼的方式是否與USB Key接收到的報文匹配的具體過程,與實施例一中的步驟103相同。步驟209,USB Key使用與接收到的報文對應的私鑰,對該報文進行數字簽名。需要說明的是,USB Key對報文進行數字簽名的具體過程,與實施例一中的步驟106相同。本發明實施例針對USB Key接收到的報文,使用對應的PIN碼和PIN碼輸入方式進行認證,并使用對應的私鑰進行數字簽名,當一個PIN碼泄露時,不會對使用其他PIN碼的認證和數字簽名造成影響,能夠有效地減少由于PIN碼泄露帶來的損失,提高了數字簽名的安全性。需要說明的是,在本發明的其他實施方式中,USB Key可以判斷用戶輸入的PIN碼是否與USB Key接收到的報文匹配,如果匹配,則使用與接收到的報文對應的私鑰,對該報文進行數字簽名;否則,返回錯誤信息或認證失敗信息;USB Key也可以判斷用戶輸入PIN碼的方式是否與USB Key接收到的報文匹配,如果匹配,則使用與接收到的報文對應的私鑰,對該報文進行數字簽名;否則,返回錯誤信息或認證失敗信息;上述兩種實施方式,同樣可以實現本發明的發明目的。在本發明的其他實施方式中,USB Key也可以存儲PIN碼集合,PIN碼集合包括多個PIN碼,USB Key還可以記錄上一次認證使用的PIN碼。在相鄰的兩次認證過程中,USBKey使用不同的PIN碼進行認證;USB Key還可以存儲私鑰集合,私鑰集合包括多個私鑰,在相鄰的兩次數字簽名中,USB Key使用不同的私鑰進行簽名。具體流程見實施例三。實施例三本發明實施例三提供了一種數字簽名方法,參見圖4,包括以下步驟步驟301,USB Key接收來自主機的報文。步驟302,USB Key提示用戶輸入PIN碼,獲取用戶輸入的PIN碼。步驟303,USB Key判斷自身存儲的PIN碼集合中是否包含用戶輸入的PIN碼,如果包含,則執行步驟304 ;否則,執行步驟305。步驟304,USB Key判斷用戶輸入的PIN碼是否與上次認證時使用的PIN碼相同,如果相同,則執行步驟305 ;否則,執行步驟308。
步驟305,USB Key返回認證失敗信息,將認證失敗次數加I。其中,認證失敗次數的初始值為O。步驟306,USB Key判斷認證失敗次數是否大于預設次數,如果大于預設次數,則執行步驟307 ;否則,返回步驟302。步驟307,USB Key返回錯誤信息。步驟308,USB Key判斷用戶輸入PIN碼的方式是否與USB Key接收到的報文匹配,如果匹配,則執行步驟309 ;否則,返回步驟305。需要說明的是,USB Key判斷用戶輸入PIN碼的方式是否與USB Key接收到的報
文匹配的具體過程,與實施例一中的步驟103相同。步驟309,USB Key從私鑰集合中選取與上一次數字簽名所使用的私鑰不同的私鑰,使用選取的私鑰對接收到的報文進行數字簽名,并記錄本次認證所使用的PIN碼。本發明實施例提供的技術方案中,在相鄰的兩次認證過程中,USB Key使用不同的PIN碼進行認證;在相鄰的兩次數字簽名過程中,USB Key使用不同的私鑰進行數字簽名;且針對對應不同數據區間內的報文,USB Key使用不同的PIN碼輸入方式進行認證,并使用不同的私鑰進行數字簽名,當某次認證使用的PIN碼泄露時,不會對下一次認證和數字簽名造成影響,能夠有效地減少由于PIN碼泄露帶來的損失,提高了數字簽名的安全性。需要說明的是,在本發明的其他實施方式中,USB Key也可以存儲PIN碼輸入方式集合,該集合包括多種PIN碼輸入方式,USB Key還可以記錄上一次認證時使用的PIN碼輸入方式。USB Key獲取用戶輸入的PIN碼之后,判斷用戶輸入PIN碼的方式是否包含在USBKey存儲的PIN碼輸入方式集合中,如果不包含在PIN碼輸入方式集合中,則返回錯誤信息或認證失敗信息;如果包含在PIN碼輸入方式集合中,則判斷用戶輸入PIN碼的方式是否與上次認證時使用的PIN碼輸入方式相同,如果相同,則返回錯誤信息或認證失敗信息;如果不同,則判斷用戶輸入的PIN碼的是否與USB Key接收到的報文匹配,如果匹配,則對接收到的報文進行數字簽名;否則,返回錯誤信息或認證失敗信息。上述實施方式同樣可以實現本發明的發明目的。USB Key還可以同時存儲PIN碼輸入方式集合和PIN碼集合,并記錄上一次認證時使用的PIN碼和PIN碼輸入方式。USB Key獲取用戶輸入的PIN碼之后,判斷用戶輸入PIN碼的方式是否包含在USB Key存儲的PIN碼輸入方式集合中,如果不包含在PIN碼輸入方式集合中,則返回錯誤信息或認證失敗信息;如果包含在PIN碼輸入方式集合中,則判斷用戶輸入PIN碼的方式是否與上次認證時使用的PIN碼輸入方式相同,如果相同,則返回錯誤信息或認證失敗信息;如果不同,判斷用戶輸入的PIN碼是否包含在USB Key存儲的PIN碼集合中,如果不包含在PIN碼集合中,則返回錯誤信息或認證失敗信息;如果包含在PIN碼集合中,則判斷用戶輸入的PIN碼是否與上次認證時使用的PIN碼相同,如果相同,則返回錯誤信息或認證失敗信息;如果不同,則判斷用戶輸入的PIN碼是否與USB Key接收到的報文匹配,如果匹配,則對接收到的報文進行數字簽名;否則,返回錯誤信息或認證失敗信息。上述實施方式同樣可以實現本發明的發明目的。在本發明的其他實施方式中,USB Key也可以存儲多個PIN碼的。在一次認證過程中,USB Key可以使用多個PIN碼進行認證,具體流程見實施例四。實施例四
本發明實施例四提供了一種數字簽名方法,參見圖5,包括以下步驟步驟401,USB Key接收來自主機的報文。步驟402,USB Key根據接收到的報文,確定與該報文對應的PIN碼的數量。具體地,USB Key可以根據報文所包含的信息段中的內容的取值,確定該內容所在的數據區間,根據該數據區間確定對應的PIN碼的數量,將確定出的PIN碼數量作為與報文對應的PIN碼的數量。USB Key也可以根據報文所包含的信息段中的關鍵字的取值,確定該取值對應的PIN碼的數量,將確定出的PIN碼數量作為與報文對應的PIN碼的數量。步驟403,USB Key提示用戶輸入PIN碼,獲取用戶輸入信息,將計數器的計數值加
Io其中,用戶輸入信息為用戶輸入PIN碼的方式,和/或,用戶輸入的PIN碼;計數器的初始計數值為零。步驟404,USB Key判斷獲取的用戶輸入信息是否滿足預設條件,如果滿足,則執行步驟408 ;否則,執行步驟405。其中,預設條件可以為用戶輸入信息與所述報文匹配;也可以為用戶輸入信息包含在USB Key預先存儲的用戶輸入信息集合中。步驟405,USB Key返回認證失敗信息,將認證失敗次數加I。其中,認證失敗次數的初始值為O。步驟406,USB Key判斷認證失敗次數是否大于預設次數,如果大于預設次數,則執行步驟407 ;否則,返回步驟403。步驟407,USB Key返回錯誤信息,結束流程。步驟408,USB Key判斷計數器的計數值是否小于與USB Key接收到的報文對應的PIN碼的數量,如果小于,則返回步驟403 ;否則,執行步驟409。步驟409,USB Key使用與接收到的報文對應的私鑰,對報文進行數字簽名。需要說明的是,USB Key對報文進行數字簽名的具體過程,與實施例一中的步驟106相同。本發明實施例提供的技術方案中,USB Key在一次認證過程中,使用多個PIN碼進行認證;且根據接收到的報文,USB Key使用對應的私鑰進行數字簽名,當一個PIN碼泄露時,不會對其他PIN碼的認證和數字簽名造成影響,能夠有效地減少由于PIN碼泄露帶來的損失,提高了數字簽名的安全性。實施例五本發明實施例五提供了一種數字簽名方法,參見圖6,包括以下步驟步驟501,USB Key獲取第一用戶輸入信息。其中,第一用戶輸入信息為用戶輸入第一 PIN碼的方式,和/或,用戶輸入的第一PIN 碼。步驟502,USB Key判斷第一用戶輸入信息是否滿足預設條件,如果不滿足,則執行503 ;否則,執行步驟504。 其中,預設條件可以具體為第一用戶輸入信息為預設信息;或者,第一用戶輸入信息包含在USB Key預先存儲的用戶輸入信息集合中。步驟503,USB Key返回錯誤信息或認證失敗信息,結束流程。
步驟504,USB Key接收來自主機的報文,獲取第二用戶輸入信息。其中,第二用戶輸入信息為用戶輸入第二 PIN碼的方式,和/或,用戶輸入的第二PIN 碼。步驟505,USB Key判斷第二用戶輸入信息是否與USB Key接收到的報文匹配,如果不匹配,則執行步驟503 ;如果匹配,則執行步驟506。步驟506,USB Key使用與接收到的報文對應的一個或多個私鑰,對報文進行數字簽名。需要說明的是,USB Key對報文進行數字簽名的具體過程,與實施例一中的步驟106相同。本發明實施例提供的技術方案中,USB Key在一次認證過程中,使用兩個PIN碼進行認證;且根據接收到的報文,USB Key使用相應的PIN碼進行認證,并使用相應的私鑰進行數字簽名,當一個PIN碼泄露時,不會對其他PIN碼的認證和數字簽名造成影響,能夠有效地減少由于PIN碼泄露帶來的損失,提高了數字簽名的安全性。實施例六本發明實施例六提供了一種USB Key,如圖7所示,包括接收模塊610,用于接收來自主機的報文。獲取模塊620,用于獲取用戶輸入信息,所述用戶輸入信息為所述用戶輸入PIN碼的方式,和/或,所述用戶輸入的PIN碼。判斷模塊630,用于判斷獲取模塊620獲取的用戶輸入信息是否與接收模塊610接收到的報文匹配。具體地,判斷模塊630,具體用于 根據所述報文所包含的信息段中的內容的取值,確定所述內容所在的數據區間;根據所述數據區間,確定所述數據區間對應的用戶輸入信息;判斷確定出的用戶輸入信息是否與所述獲取模塊獲取的用戶輸入信息相同,如果相同,則確定所述獲取的用戶輸入信息與所述接收模塊接收到的報文匹配;否則,則確定所述獲取的用戶輸入信息與所述接收模塊接收到的報文不匹配;或者,根據所述報文所包含的信息段中的關鍵字的取值,確定所述取值對應的用戶輸入信息,判斷確定出的用戶輸入信息是否與所述獲取模塊獲取的用戶輸入信息相同,如果相同,則確定所述獲取的用戶輸入信息與所述接收模塊接收到的報文匹配;否則,則確定所述獲取的用戶輸入信息與所述接收模塊接收到的報文不匹配;或者,根據所述獲取的用戶輸入信息,確定所述用戶輸入信息對應的數據區間,判斷所述報文所包含的信息段中的內容的取值是否在確定出的數據區間內,如果在所述確定出的數據區間內,則確定所述獲取的用戶輸入信息與所述接收模塊接收到的報文匹配;否則,則確定所述獲取的用戶輸入信息與所述接收模塊接收到的報文不匹配;或者,根據所述獲取的用戶輸入信息,確定所述用戶輸入信息對應的關鍵字的取值,判斷所述確定出的關鍵字的取值是否與所述報文所包含的信息段中的關鍵字的取值相同,如果相同,則確定所述獲取的用戶輸入信息與所述接收模塊接收到的報文匹配;否則,則確定所述獲取的用戶輸入信息與所述接收模塊接收到的報文不匹配。數字簽名模塊640,用于在判斷模塊630判斷所述用戶輸入信息與所述報文匹配時,對所述報文進行數字簽名。具體地,數字簽名模塊640,具體用于使用與所述報文對應的一個或多個私鑰,對所述報文進行數字簽名;或者, 從預置的私鑰集合中,選取與上一次數字簽名所使用的私鑰不同的私鑰,使用選取的私鑰對所述報文進行數字簽名。發送模塊650,用于在判斷模塊630判斷所述用戶輸入信息與所述報文不匹配時,返回錯誤信息或認證失敗信息。本發明實施例針對USB Key接收到的報文,使用對應的PIN碼和PIN碼輸入方式進行認證,并使用對應的私鑰進行數字簽名,當一個PIN碼泄露時,不會對使用其他PIN碼的認證和數字簽名造成影響,能夠有效地減少由于PIN碼泄露帶來的損失,提高了數字簽名的安全性。實施例七本發明實施例七提供了一種USB Key,如圖8所示,包括存儲模塊710,用于存儲用戶輸入信息集合,所述用戶輸入信息為所述用戶輸入PIN碼的方式,和/或,所述用戶輸入的PIN碼。記錄模塊720,記錄上一次認證時使用的用戶輸入信息。接收模塊730,用于接收來自主機的報文。獲取模塊740,用于獲取用戶輸入信息。第一判斷模塊750,用于判斷獲取模塊740獲取的用戶輸入信息是否包含在所述用戶輸入信息集合中。第二判斷模塊760,用于在第一判斷模塊750判斷獲取模塊740獲取的用戶輸入信息包含在所述用戶輸入信息集合中時,判斷所述獲取的用戶輸入信息是否與上一次認證時使用的用戶輸入信息相同;數字簽名模塊770,用于在第二判斷模塊760判斷所述獲取的用戶輸入信息是否與上一次認證時使用的用戶輸入信息不同時,對所述報文進行數字簽名;具體地,數字簽名模塊770,具體用于使用與所述報文對應的一個或多個私鑰,對所述報文進行數字簽名;或者,從預置的私鑰集合中,選取與上一次數字簽名所使用的私鑰不同的私鑰,使用選取的私鑰對所述報文進行數字簽名。發送模塊780,用于在第一判斷模塊760判斷獲取模塊740獲取的用戶輸入信息不包含在所述用戶輸入信息集合中時,或者,在第二判斷模塊760判斷所述獲取的用戶輸入信息是否與上一次認證時使用的用戶輸入信息相同時,返回錯誤信息或認證失敗信息。本發明實施例提供的技術方案中,在相鄰的兩次認證過程中,使用不同的PIN碼進行認證;在相鄰的兩次數字簽名過程中,使用不同的私鑰進行數字簽名;且針對對應不同數據區間內的報文,使用不同的PIN碼輸入方式進行認證,并使用不同的私鑰進行數字簽名,當某次認證使用的PIN碼泄露時,不會對下一次認證和數字簽名造成影響,能夠有效地減少由于PIN碼泄露帶來的損失,提高了數字簽名的安全性。實施例八本發明實施例八提供了一種USB Key,如圖9所示,包括接收模塊810,用于接收來自主機的報文。確定模塊820,用于根據接收模塊810接收到的報文,確定對應的PIN碼的數量。具體地,確定模塊820,具體用于根據所述報文所包含的信息段中的內容的取值,確定所述內容所在的數據區間;根據所述數據區間,確定所述數據區間對應的PIN碼的數量,將確定出的PIN碼數量作為與所述報文對應的PIN碼的數量;或者,根據所述報文所包含的信息段中的關鍵字的取值,確定所述取值對應的PIN碼的數量,將確定出的PIN碼數量作為與所述報文對應的PIN碼的數量。獲取模塊830,用于獲取用戶輸入信息,所述用戶輸入信息為所述用戶輸入PIN碼的方式,和/或,所述用戶輸入的PIN碼。計數器模塊840,用于在獲取模塊830獲取用戶輸入信息后,將計數值加1,所述計數值的初始值為零。第一判斷模塊850,用于判斷獲取模塊830獲取的用戶輸入信息是否滿足預設條件。其中,預設條件,具體為用戶輸入信息與所述報文匹配;或者,用戶輸入信息包含在所述USB Key預先存儲的用戶輸入信息集合中。當預設條件為用戶輸入信息與所述報文匹配時,第一判斷模塊850,具體用于根據所述報文所包含的信息段中的內容的取值,確定所述內容所在的數據區間;根據所述數據區間,確定所述數據區間對應的用戶輸入信息;判斷確定出的用戶輸入信息是否與所述獲取模塊獲取的用戶輸入信息相同,如果相同,則確定所述獲取的用戶輸入信息與所述接收模塊接收到的報文匹配;否則,則確定所述獲取的用戶輸入信息與所述接收模塊接收到的報文不匹配;或者,根據所述報文所包含的信息段中的關鍵字的取值,確定所述取值對應的用戶輸入信息,判斷確定出的用戶輸入信息是否與所述獲取模塊獲取的用戶輸入信息相同,如果相同,則確定所述獲取的用戶輸入信息與所述接收模塊接收到的報文匹配;否則,則確定所述獲取的用戶輸入信息與所述接收模塊接收到的報文不匹配;或者,根據所述獲取的用戶輸入信息,確定所述用戶輸入信息對應的數據區間,判斷所述報文所包含的信息段中的內容的取值是否在確定出的數據區間內,如果在所述確定出的數據區間內,則確定所述獲取的用戶輸入信息與所述接收模塊接收到的報文匹配;否則,則確定所述獲取的用戶輸入信息與所述接收模塊接收到的報文不匹配;或者,
根據所述獲取的用戶輸入信息,確定所述用戶輸入信息對應的關鍵字的取值,判斷所述確定出的關鍵字的取值是否與所述報文所包含的信息段中的關鍵字的取值相同,如果相同,則確定所述獲取的用戶輸入信息與所述接收模塊接收到的報文匹配;否則,則確定所述獲取的用戶輸入信息與所述接收模塊接收到的報文不匹配。發送模塊860,用于在第一判斷模塊850判斷獲取模塊830獲取的用戶輸入信息不滿足預設條件時,返回錯誤信息或認證失敗信息。第二判斷模塊870,用于判斷計時器模塊840的計數值是否等于與所述報文對應的PIN碼的數量。數字簽名模塊880,用于在第二判斷模塊870判斷計時器模塊840的計數值等于與所述報文對應的PIN碼的數量時,對所述報文進行數字簽名。、本發明實施例提供的技術方案中,在一次認證過程中,使用多個PIN碼進行認證;且根據接收到的報文,使用對應的私鑰進行數字簽名,當一個PIN碼泄露時,不會對其他PIN碼的認證和數字簽名造成影響,能夠有效地減少由于PIN碼泄露帶來的損失,提高了數字簽名的安全性。實施例九本發明實施例九提供了一種USB Key,如圖10所示,包括獲取模塊910,用于獲取第一用戶輸入信息和第二用戶輸入信息,所述第一用戶輸入信息為所述用戶輸入第一個人識別密碼PIN碼的方式,和/或,所述用戶輸入的第一 PIN碼;所述第二用戶輸入信息為所述用戶輸入第二 PIN碼的方式,和/或,所述用戶輸入的第二 PIN 碼。第一判斷模塊920,用于判斷所述第一用戶輸入信息是否滿足預設條件。其中,預設條件具體為第一用戶輸入信息為預設信息;或者,第一用戶輸入信息包含在USB Key預先存儲的用戶輸入信息集合中。接收模塊930,用于在第一判斷模塊920判斷所述第一用戶輸入信息滿足預設條件時,接收來自主機的報文。第二判斷模塊940,用于判斷所述第二用戶輸入信息是否與接收模塊930接收到的報文匹配。具體地,第二判斷模塊940,具體用于根據所述報文所包含的信息段中的內容的取值,確定所述內容所在的數據區間;根據所述數據區間,確定所述數據區間對應的用戶輸入信息;判斷確定出的用戶輸入信息是否與所述第二用戶輸入信息相同,如果相同,則確定所述第二用戶輸入信息與所述報文匹配;否則,則確定所述第二用戶輸入信息與所述報文不匹配;或者,根據所述報文所包含的信息段中的關鍵字的取值,確定所述取值對應的用戶輸入信息,判斷確定出的用戶輸入信息是否與所述第二用戶輸入信息相同,如果相同,則確定所述第二用戶輸入信息與所述報文匹配;否則,則確定所述第二用戶輸入信息與所述報文不匹配;或者,根據所述第二用戶輸入信息,確定所述第二用戶輸入信息對應的數據區間,判斷所述報文所包含的信息段中的內容的取值是否在確定出的數據區間內,如果在所述確定出的數據區間內,則確定所述第二用戶輸入信息與所述報文匹配;否則,則確定所述第二用戶輸入信息與所述報文不匹配;或者,根據所述第二用戶輸入信息,確定所述第二用戶輸入信息對應的關鍵字的取值,判斷所述確定出的關鍵字的取值是否與所述報文所包含的信息段中的關鍵字的取值相同,如果相同,則確定所述第二用戶輸入信息與所述報文匹配;否則,則確定所述第二用戶輸入信息與所述報文不匹配。發送模塊950,用于在所述第一判斷模塊920判斷所述第一用戶輸入信息不滿足預設條件,或者,所述第二判斷模塊940判斷所述第二用戶輸入信息與所述USB Key接收到的報文不匹配時,返回錯誤信息或認證失敗信息。數字簽名模塊960,用于在第二判斷模塊940判斷所述第二用戶輸入信息與接收模塊930接收到的報文匹配時,對所述報文進行數字簽名。具體地,數字簽名模塊960,具體用于使用與所述報文對應的一個或多個私鑰,對所述報文進行數字簽名;或者,從預置的私鑰集合中,選取與上一次數字簽名所使用的私鑰不同的私鑰,使用選 取的私鑰對所述報文進行數字簽名。本發明實施例提供的技術方案中,在一次認證過程中,使用兩個PIN碼進行認證;且根據接收到的報文,使用相應的PIN碼進行認證,并使用相應的私鑰進行數字簽名,當一個PIN碼泄露時,不會對其他PIN碼的認證和數字簽名造成影響,能夠有效地減少由于PIN碼泄露帶來的損失,提高了數字簽名的安全性。結合本文中所公開的實施例描述的方法中的步驟可以直接用硬件、處理器執行的軟件模塊,或者二者的結合來實施。軟件模塊可以置于隨機存儲器(RAM)、內存、只讀存儲器(ROM)、電可編程ROM、電可擦除可編程ROM、寄存器、硬盤、可移動磁盤、CD-ROM、或技術領域內所公知的任意其它形式的存儲介質中。以上所述,僅為本發明的具體實施方式
,但本發明的保護范圍并不局限于此,任何熟悉本技術領域的技術人員在本發明揭露的技術范圍內,可輕易想到變化或替換,都應涵蓋在本發明的保護范圍之內。因此,本發明的保護范圍應所述以權利要求的保護范圍為準。
權利要求
1.一種數字簽名方法,其特征在于,包括以下步驟 通用串行總線USB Key接收來自主機的報文,獲取用戶輸入信息,所述用戶輸入信息為所述用戶輸入個人識別密碼PIN碼的方式,和/或,所述用戶輸入的PIN碼; 所述USB Key判斷獲取的用戶輸入信息是否與所述USB Key接收到的報文匹配; 如果所述獲取的用戶輸入信息與所述USB Key接收到的報文匹配,所述USB Key對所述報文進行數字簽名; 如果所述獲取的用戶輸入信息與所述USB Key接收到的報文不匹配,所述USB Key返回錯誤信息或認證失敗信息。
2.如權利要求I所述的方法,其特征在于,所述USBKey判斷用戶輸入信息是否與所述USB Key接收到的報文匹配,具體包括 所述USB Key根據所述報文所包含的信息段中的內容的取值,確定所述內容所在的數據區間;所述USB Key根據所述數據區間,確定所述數據區間對應的用戶輸入信息;所述USB Key判斷確定出的用戶輸入信息是否與所述USB Key獲取的用戶輸入信息相同,如果相同,則確定所述獲取的用戶輸入信息與所述USB Key接收到的報文匹配;否則,則確定所述獲取的用戶輸入信息與所述USB Key接收到的報文不匹配; 或者, 所述USB Key根據所述報文所包含的信息段中的關鍵字的取值,確定所述取值對應的用戶輸入信息,判斷確定出的用戶輸入信息是否與所述USB Key獲取的用戶輸入信息相同,如果相同,則確定所述獲取的用戶輸入信息與所述USB Key接收到的報文匹配;否則,則確定所述獲取的用戶輸入信息與所述USB Key接收到的報文不匹配; 或者, 所述USB Key根據所述獲取的用戶輸入信息,確定所述用戶輸入信息對應的數據區間,判斷所述報文所包含的信息段中的內容的取值是否在確定出的數據區間內,如果在所述確定出的數據區間內,則確定所述獲取的用戶輸入信息與所述USB Key接收到的報文匹配;否則,則確定所述獲取的用戶輸入信息與所述USB Key接收到的報文不匹配; 或者, 所述USB Key根據所述獲取的用戶輸入信息,確定所述用戶輸入信息對應的關鍵字的取值,判斷所述確定出的關鍵字的取值是否與所述報文所包含的信息段中的關鍵字的取值相同,如果相同,則確定所述獲取的用戶輸入信息與所述USB Key接收到的報文匹配;否貝U,則確定所述獲取的用戶輸入信息與所述USB Key接收到的報文不匹配。
3.如權利要求I所述的方法,其特征在于,所述USBKey對所述報文進行數字簽名,具體為 所述USB Key使用與所述報文對應的一個或多個私鑰,對所述報文進行數字簽名; 或者, 所述USB Key從預置的私鑰集合中,選取與上一次數字簽名所使用的私鑰不同的私鑰,使用選取的私鑰對所述報文進行數字簽名。
4.一種數字簽名方法,應用于包括通用串行總線USB Key和主機的系統中,其特征在于,所述USB Key存儲有用戶輸入信息集合,并記錄有上一次認證時使用的用戶輸入信息,所述用戶輸入信息為所述用戶輸入個人識別密碼PIN碼的方式,和/或,所述用戶輸入的PIN碼,所述方法包括以下步驟 ①、所述USBKey獲取用戶輸入信息; ②、所述USBKey判斷獲取的用戶輸入信息是否包含在所述用戶輸入信息集合中,如果包含在所述用戶輸入信息集合中,則執行步驟④;否則,執行步驟③; ③、所述USBKey返回錯誤信息或認證失敗信息,結束流程; ④、所述USBKey判斷所述獲取的用戶輸入信息是否與上一次認證時使用的用戶輸入信息相同,如果相同,則執行步驟③;否則,執行步驟⑤; ⑤、所述USBKey對接收到的報文進行數字簽名。
5.如權利要求4所述的方法,其特征在于,所述USBKey對接收到的報文進行數字簽名,具體為 所述USB Key使用與所述報文對應的一個或多個私鑰,對所述報文進行數字簽名; 或者, 所述USB Key從預置的私鑰集合中,選取與上一次數字簽名所使用的私鑰不同的私鑰,使用選取的私鑰對所述報文進行數字簽名。
6.一種數字簽名方法,其特征在于,包括以下步驟 ①、通用串行總線USBKey接收來自主機的報文,根據所述報文確定對應的PIN碼的數量; ②、所述USBKey獲取用戶輸入信息,將計數器的計數值加1,所述計數器的初始計數值為零,所述用戶輸入信息為所述用戶輸入個人識別密碼PIN碼的方式,和/或,所述用戶輸入的PIN碼; ③、所述USBKey判斷獲取的用戶輸入信息是否滿足預設條件,如果滿足,則執行步驟⑤;否則,執行步驟④; ④、所述USBKey返回錯誤信息或認證失敗信息,結束流程; ⑤、所述USBKey判斷計數器的計數值是否小于與所述報文對應的PIN碼的數量,如果小于,則返回步驟②;否則,執行步驟⑥; ⑥、所述USBKey對所述報文進行數字簽名。
7.如權利要求6所述的方法,其特征在于,所述USBKey根據所述報文確定對應的PIN碼的數量,具體包括 所述USB Key根據所述報文所包含的信息段中的內容的取值,確定所述內容所在的數據區間;所述USB Key根據所述數據區間,確定所述數據區間對應的PIN碼的數量,將確定出的PIN碼數量作為與所述報文對應的PIN碼的數量; 或者, 所述USB Key根據所述報文所包含的信息段中的關鍵字的取值,確定所述取值對應的PIN碼的數量,將確定出的PIN碼數量作為與所述報文對應的PIN碼的數量。
8.如權利要求6所述的方法,其特征在于,所述預設條件,具體為 所述用戶輸入信息與所述報文匹配; 或者, 所述用戶輸入信息包含在所述USB Key預先存儲的用戶輸入信息集合中。
9.如權利要求6所述的方法,其特征在于,所述預設條件為所述用戶輸入信息與所述報文匹配時,所述USB Key判斷獲取的用戶輸入信息是否滿足預設條件,具體包括 所述USB Key根據所述報文所包含的信息段中的內容的取值,確定所述內容所在的數據區間;所述USB Key根據所述數據區間,確定所述數據區間對應的用戶輸入信息;所述USB Key判斷確定出的用戶輸入信息是否與所述USB Key獲取的用戶輸入信息相同,如果相同,則確定所述獲取的用戶輸入信息滿足預設條件;否則,則確定所述獲取的用戶輸入信息不滿足預設條件; 或者, 所述USB Key根據所述報文所包含的信息段中的關鍵字的取值,確定所述取值對應的用戶輸入信息,判斷確定出的用戶輸入信息是否與所述USB Key獲取的用戶輸入信息相同,如果相同,則確定所述獲取的用戶輸入信息滿足預設條件;否則,則確定所述獲取的用戶輸入信息不滿足預設條件; 或者, 所述USB Key根據所述獲取的用戶輸入信息,確定所述用戶輸入信息對應的數據區間,判斷所述報文所包含的信息段中的內容的取值是否在確定出的數據區間內,如果在所述確定出的數據區間內,則確定所述獲取的用戶輸入信息滿足預設條件;否則,則確定所述獲取的用戶輸入信息不滿足預設條件; 或者, 所述USB Key根據所述獲取的用戶輸入信息,確定所述用戶輸入信息對應的關鍵字的取值,判斷所述確定出的關鍵字的取值是否與所述報文所包含的信息段中的關鍵字的取值相同,如果相同,則確定所述獲取的用戶輸入信息滿足預設條件;否則,則確定所述獲取的用戶輸入信息不滿足預設條件。
10.一種數字簽名方法,其特征在于,包括以下步驟 ①、通用串行總線USBKey獲取第一用戶輸入信息,判斷所述第一用戶輸入信息是否滿足預設條件,如果不滿足,則執行步驟②;如果滿足,執行步驟③;所述第一用戶輸入信息為所述用戶輸入第一個人識別密碼PIN碼的方式,和/或,所述用戶輸入的第一 PIN碼; ②、所述USBKey返回錯誤信息或認證失敗信息,結束流程; ③、所述USBKey接收來自主機的報文,獲取第二用戶輸入信息,判斷所述第二用戶輸入信息是否與所述USB Key接收到的報文匹配,如果不匹配,則執行步驟②;如果匹配,則執行步驟④;所述第二用戶輸入信息為所述用戶輸入第二 PIN碼的方式,和/或,所述用戶輸入的第二 PIN碼; ④、所述USBKey對所述報文進行數字簽名。
11.如權利要求10所述的方法,其特征在于,所述預設條件具體為 所述第一用戶輸入信息為預設信息; 或者, 所述第一用戶輸入信息包含在所述USB Key預先存儲的用戶輸入信息集合中。
12.如權利要求10所述的方法,其特征在于,所述USBKey判斷第二用戶輸入信息是否與所述USB Key接收到的報文匹配,具體包括 所述USB Key根據所述報文所包含的信息段中的內容的取值,確定所述內容所在的數據區間;所述USB Key根據所述數據區間,確定所述數據區間對應的用戶輸入信息;所述USB Key判斷確定出的用戶輸入信息是否與所述第二用戶輸入信息相同,如果相同,則確定所述第二用戶輸入信息與所述USB Key接收到的報文匹配;否則,則確定所述第二用戶輸入信息與所述USB Key接收到的報文不匹配; 或者, 所述USB Key根據所述報文所包含的信息段中的關鍵字的取值,確定所述取值對應的用戶輸入信息,判斷確定出的用戶輸入信息是否與所述第二用戶輸入信息相同,如果相同,則確定所述第二用戶輸入信息與所述USB Key接收到的報文匹配;否則,則確定所述第二用戶輸入信息與所述USB Key接收到的報文不匹配; 或者, 所述USB Key根據所述第二用戶輸入信息,確定所述第二用戶輸入信息對應的數據區間,判斷所述報文所包含的信息段中的內容的取值是否在確定出的數據區間內,如果在所述確定出的數據區間內,則確定所述第二用戶輸入信息與所述USB Key接收到的報文匹配;否則,則確定所述第二用戶輸入信息與所述USB Key接收到的報文不匹配; 或者, 所述USB Key根據所述第二用戶輸入信息,確定所述第二用戶輸入信息對應的關鍵字的取值,判斷所述確定出的關鍵字的取值是否與所述報文所包含的信息段中的關鍵字的取值相同,如果相同,則確定所述第二用戶輸入信息與所述USB Key接收到的報文匹配;否貝U,則確定所述第二用戶輸入信息與所述USB Key接收到的報文不匹配。
13.如權利要求10所述的方法,其特征在于,所述USBKey對所述報文進行數字簽名,具體為 所述USB Key使用與所述報文對應的一個或多個私鑰,對所述報文進行數字簽名; 或者, 所述USB Key從預置的私鑰集合中,選取與上一次數字簽名所使用的私鑰不同的私鑰,使用選取的私鑰對所述報文進行數字簽名。
14.一種通用串行總線USB Key,其特征在于,包括 接收模塊,用于接收來自主機的報文; 獲取模塊,用于獲取用戶輸入信息,所述用戶輸入信息為所述用戶輸入個人識別密碼PIN碼的方式,和/或,所述用戶輸入的PIN碼; 判斷模塊,用于判斷所述獲取模塊獲取的用戶輸入信息是否與所述接收模塊接收到的報文匹配; 數字簽名模塊,用于在所述判斷模塊判斷所述用戶輸入信息與所述報文匹配時,對所述報文進行數字簽名; 發送模塊,用于在所述判斷模塊判斷所述用戶輸入信息與所述報文不匹配時,返回錯誤信息或認證失敗信息。
15.如權利要求14所述的USBKey,其特征在于,所述判斷模塊,具體用于 根據所述報文所包含的信息段中的內容的取值,確定所述內容所在的數據區間;根據所述數據區間,確定所述數據區間對應的用戶輸入信息;判斷確定出的用戶輸入信息是否與所述獲取模塊獲取的用戶輸入信息相同,如果相同,則確定所述獲取的用戶輸入信息與所述接收模塊接收到的報文匹配;否則,則確定所述獲取的用戶輸入信息與所述接收模塊接收到的報文不匹配; 或者, 根據所述報文所包含的信息段中的關鍵字的取值,確定所述取值對應的用戶輸入信息,判斷確定出的用戶輸入信息是否與所述獲取模塊獲取的用戶輸入信息相同,如果相同,則確定所述獲取的用戶輸入信息與所述接收模塊接收到的報文匹配;否則,則確定所述獲取的用戶輸入信息與所述接收模塊接收到的報文不匹配; 或者, 根據所述獲取的用戶輸入信息,確定所述用戶輸入信息對應的數據區間,判斷所述報文所包含的信息段中的內容的取值是否在確定出的數據區間內,如果在所述確定出的數據區間內,則確定所述獲取的用戶輸入信息與所述接收模塊接收到的報文匹配;否則,則確定所述獲取的用戶輸入信息與所述接收模塊接收到的報文不匹配; 或者, 根據所述獲取的用戶輸入信息,確定所述用戶輸入信息對應的關鍵字的取值,判斷所述確定出的關鍵字的取值是否與所述報文所包含的信息段中的關鍵字的取值相同,如果相同,則確定所述獲取的用戶輸入信息與所述接收模塊接收到的報文匹配;否則,則確定所述獲取的用戶輸入信息與所述接收模塊接收到的報文不匹配。
16.如權利要求14所述的USBKey,其特征在于, 所述數字簽名模塊,具體用于使用與所述報文對應的一個或多個私鑰,對所述報文進行數字簽名; 或者, 從預置的私鑰集合中,選取與上一次數字簽名所使用的私鑰不同的私鑰,使用選取的私鑰對所述報文進行數字簽名。
17.一種通用串行總線USB Key,其特征在于,包括 存儲模塊,用于存儲用戶輸入信息集合,所述用戶輸入信息為所述用戶輸入個人識別密碼PIN碼的方式,和/或,所述用戶輸入的PIN碼; 記錄模塊,記錄上一次認證時使用的用戶輸入信息; 接收模塊,用于接收來自主機的報文; 獲取模塊,用于獲取用戶輸入信息; 第一判斷模塊,用于判斷所述獲取模塊獲取的用戶輸入信息是否包含在所述用戶輸入信息集合中; 第二判斷模塊,用于在所述第一判斷模塊判斷所述獲取模塊獲取的用戶輸入信息包含在所述用戶輸入信息集合中時,判斷所述獲取的用戶輸入信息是否與上一次認證時使用的用戶輸入信息相同; 數字簽名模塊,用于在所述第二判斷模塊判斷所述獲取的用戶輸入信息是否與上一次認證時使用的用戶輸入信息不同時,對所述報文進行數字簽名; 發送模塊,用于在所述第一判斷模塊判斷所述獲取模塊獲取的用戶輸入信息不包含在所述用戶輸入信息集合中時,或者,在所述第二判斷模塊判斷所述獲取的用戶輸入信息是否與上一次認證時使用的用戶輸入信息相同時,返回錯誤信息或認證失敗信息。
18.如權利要求17所述的USBKey,其特征在于,所述數字簽名模塊,具體用于使用與所述報文對應的一個或多個私鑰,對所述報文進行數字簽名; 或者, 從預置的私鑰集合中,選取與上一次數字簽名所使用的私鑰不同的私鑰,使用選取的私鑰對所述報文進行數字簽名。
19.一種通用串行總線USB Key,其特征在于,包括 接收模塊,用于接收來自主機的報文; 確定模塊,用于根據所述報文確定對應的個人識別密碼PIN碼的數量; 獲取模塊,用于獲取用戶輸入信息,所述用戶輸入信息為所述用戶輸入PIN碼的方式,和/或,所述用戶輸入的PIN碼; 計數器模塊,用于在所述獲取模塊獲取用戶輸入信息后,將計數值加1,所述計數值的初始值為零; 第一判斷模塊,用于判斷所述獲取模塊獲取的用戶輸入信息是否滿足預設條件; 發送模塊,用于在所述第一判斷模塊判斷所述獲取模塊獲取的用戶輸入信息不滿足預設條件時,返回錯誤信息或認證失敗信息; 第二判斷模塊,用于判斷所述計時器模塊的計數值是否等于與所述報文對應的PIN碼的數量; 數字簽名模塊,用于在所述第二判斷模塊判斷所述計時器模塊的計數值等于與所述報文對應的PIN碼的數量時,對所述報文進行數字簽名。
20.如權利要求19所述的USBKey,其特征在于, 所述確定模塊,具體用于根據所述報文所包含的信息段中的內容的取值,確定所述內容所在的數據區間;根據所述數據區間,確定所述數據區間對應的PIN碼的數量,將確定出的PIN碼數量作為與所述報文對應的PIN碼的數量; 或者, 根據所述報文所包含的信息段中的關鍵字的取值,確定所述取值對應的PIN碼的數量,將確定出的PIN碼數量作為與所述報文對應的PIN碼的數量。
21.如權利要求19所述的USBKey,其特征在于,所述預設條件,具體為 所述用戶輸入信息與所述報文匹配; 或者, 所述用戶輸入信息包含在所述USB Key預先存儲的用戶輸入信息集合中。
22.如權利要求19所述的USBKey,其特征在于,所述預設條件為所述用戶輸入信息與所述報文匹配時, 所述第一判斷模塊,具體用于 根據所述報文所包含的信息段中的內容的取值,確定所述內容所在的數據區間;根據所述數據區間,確定所述數據區間對應的用戶輸入信息;判斷確定出的用戶輸入信息是否與所述獲取模塊獲取的用戶輸入信息相同,如果相同,則確定所述獲取的用戶輸入信息與所述接收模塊接收到的報文匹配;否則,確定所述獲取的用戶輸入信息與所述接收模塊接收到的報文不匹配; 或者,根據所述報文所包含的信息段中的關鍵字的取值,確定所述取值對應的用戶輸入信息,判斷確定出的用戶輸入信息是否與所述獲取模塊獲取的用戶輸入信息相同,如果相同,則確定所述獲取的用戶輸入信息與所述接收模塊接收到的報文匹配;否則,則確定所述獲取的用戶輸入信息與所述接收模塊接收到的報文不匹配; 或者, 根據所述獲取的用戶輸入信息,確定所述用戶輸入信息對應的數據區間,判斷所述報文所包含的信息段中的內容的取值是否在確定出的數據區間內,如果在所述確定出的數據區間內,則確定所述獲取的用戶輸入信息與所述接收模塊接收到的報文匹配;否則,則確定所述獲取的用戶輸入信息與所述接收模塊接收到的報文不匹配; 或者, 根據所述獲取的用戶輸入信息,確定所述用戶輸入信息對應的關鍵字的取值,判斷所述確定出的關鍵字的取值是否與所述報文所包含的信息段中的關鍵字的取值相同,如果相同,則確定所述獲取的用戶輸入信息與所述接收模塊接收到的報文匹配;否則,則確定所述獲取的用戶輸入信息與所述接收模塊接收到的報文不匹配。
23.一種通用串行總線USB Key,其特征在于,包括 獲取模塊,用于獲取第一用戶輸入信息和第二用戶輸入信息,所述第一用戶輸入信息為所述用戶輸入第一個人識別密碼PIN碼的方式,和/或,所述用戶輸入的第一 PIN碼;所述第二用戶輸入信息為所述用戶輸入第二 PIN碼的方式,和/或,所述用戶輸入的第二 PIN碼; 第一判斷模塊,用于判斷所述第一用戶輸入信息是否滿足預設條件; 接收模塊,用于在所述第一判斷模塊判斷所述第一用戶輸入信息滿足預設條件時,接收來自主機的報文; 第二判斷模塊,用于判斷所述第二用戶輸入信息是否與所述接收模塊接收到的報文匹配; 發送模塊,用于在所述第一判斷模塊判斷所述第一用戶輸入信息不滿足預設條件,或者,所述第二判斷模塊判斷所述第二用戶輸入信息與所述接收模塊接收到的報文不匹配時,返回錯誤信息或認證失敗信息; 數字簽名模塊,用于在所述第二判斷模塊判斷所述第二用戶輸入信息與所述接收模塊接收到的報文匹配時,對所述報文進行數字簽名。
24.如權利要求23所述的USBKey,其特征在于,所述預設條件具體為 所述第一用戶輸入信息為預設信息; 或者, 所述第一用戶輸入信息包含在所述USB Key預先存儲的用戶輸入信息集合中。
25.如權利要求23所述的USBKey,其特征在于,所述第二判斷模塊,具體用于 根據所述報文所包含的信息段中的內容的取值,確定所述內容所在的數據區間;根據所述數據區間,確定所述數據區間對應的用戶輸入信息;判斷確定出的用戶輸入信息是否與所述第二用戶輸入信息相同,如果相同,則確定所述第二用戶輸入信息與所述報文匹配;否則,則確定所述第二用戶輸入信息與所述報文不匹配; 或者,根據所述報文所包含的信息段中的關鍵字的取值,確定所述取值對應的用戶輸入信息,判斷確定出的用戶輸入信息是否與所述第二用戶輸入信息相同,如果相同,則確定所述第二用戶輸入信息與所述報文匹配;否則,則確定所述第二用戶輸入信息與所述報文不匹配; 或者, 根據所述第二用戶輸入信息,確定所述第二用戶輸入信息對應的數據區間,判斷所述報文所包含的信息段中的內容的取值是否在確定出的數據區間內,如果在所述確定出的數據區間內,則確定所述第二用戶輸入信息與所述報文匹配;否則,則確定所述第二用戶輸入信息與所述報文不匹配; 或者, 根據所述第二用戶輸入信息,確定所述第二用戶輸入信息對應的關鍵字的取值,判斷所述確定出的關鍵字的取值是否與所述報文所包含的信息段中的關鍵字的取值相同,如果相同,則確定所述第二用戶輸入信息與所述報文匹配;否則,則確定所述第二用戶輸入信息與所述報文不匹配。
26.如權利要求23所述的USB Key,其特征在于, 所述數字簽名模塊,具體用于使用與所述報文對應的一個或多個私鑰,對所述報文進行數字簽名; 或者, 從預置的私鑰集合中,選取與上一次數字簽名所使用的私鑰不同的私鑰,使用選取的私鑰對所述報文進行數字簽名。
全文摘要
本發明實施例公開一種數字簽名方法和裝置,該方法包括以下步驟通用串行總線USB Key接收來自主機的報文,獲取用戶輸入信息,所述用戶輸入信息為所述用戶輸入個人識別密碼PIN碼的方式,和/或,所述用戶輸入的PIN碼;所述USB Key判斷獲取的用戶輸入信息是否與所述USB Key接收到的報文匹配;如果所述獲取的用戶輸入信息與所述USB Key接收到的報文匹配,所述USB Key對所述報文進行數字簽名;如果所述獲取的用戶輸入信息與所述USB Key接收到的報文不匹配,所述USB Key返回錯誤信息或認證失敗信息。本發明實施例的技術方案,能夠提高PIN碼認證和數字簽名的安全性。
文檔編號H04L29/06GK102685121SQ20121013551
公開日2012年9月19日 申請日期2012年5月3日 優先權日2012年5月3日
發明者于華章, 陸舟 申請人:飛天誠信科技股份有限公司
網友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1