基于sm2的電子簽名生成及驗證方法和裝置的制造方法
【專利摘要】本發明提供了一種電子簽名生成及驗證方法和裝置。所述方法包括:獲取基于用戶為生成電子簽名輸入的口令的、特定于用戶的用戶因子;獲取隨機因子;獲取用戶輸入口令的移動設備上的、特定于移動設備的設備因子;基于所述用戶因子、隨機因子、設備因子,經基于分段模特性的SM2算法,生成電子簽名。其中基于分段模特性的SM2算法是保證用戶因子、隨機因子、設備因子及干擾因子中任何一項不同,電子簽名都不同的算法。本發明符合SM2國產密碼標準,通過分段模計算,以及移動設備與密碼設備的分布式運算,提高電子簽名的安全性。
【專利說明】
基于SM2的電子簽名生成及驗證方法和裝置
技術領域
[0001]本發明涉及移動設備安全技術領域,尤其涉及一種基于SM2的電子簽名生成及驗證方法和裝置。
【背景技術】
[0002]隨著移動互聯網技術的飛速發展和廣泛應用,智能移動終端逐步取代傳統PC,加速滲透到傳統應用中,成為各類應用的主要入口。越來越多的用戶使用移動終端進行購物、轉賬等,用戶在享受著更加便捷服務的同時,與之伴隨而來的安全性問題也愈加凸顯。
[0003]傳統的電子簽名產品,大多基于U盾等。現有的電子簽名方案,電子簽名基于用戶口令及一些隨機數等生成,安全性不高。
【發明內容】
[0004]本發明的目的是提高電子簽名的安全性。
[0005]根據本發明的一個方面,提供了一種基于SM2的電子簽名生成方法,所述方法包括:
[0006]獲取基于用戶為生成電子簽名輸入的口令的、特定于用戶的用戶因子;
[0007]獲取隨機因子;
[0008]獲取用戶輸入口令的移動設備上的、特定于移動設備的設備因子;
[0009]基于所述用戶因子、隨機因子、設備因子,經基于分段模計算特性的基于分段模特性的SM2算法,生成電子簽名,其中基于分段模特性的SM2算法是保證用戶因子、隨機因子、設備因子中任何一項不同,電子簽名都不同的算法。
[0010]根據本發明的一個方面,提供了一種基于SM2的電子簽名處理方法,所述方法包括:
[0011 ]從移動設備盾插件接收移動設備盾插件生成的電子簽名,其中所述電子簽名在從移動設備盾插件端基于用戶為生成電子簽名輸入的口令的特定于用戶的用戶因子、隨機因子、用戶輸入口令的移動設備上的特定于移動設備的設備因子,經基于分段模特性的SM2算法生成,并利用獲取的用于對電子簽名進行加擾的干擾因子進行加擾;
[0012]對所述電子簽名進行解擾;
[0013]將解擾后的電子簽名發送給認證平臺。
[0014]根據本發明的一個方面,提供了一種基于SM2的待驗證電子簽名驗證方法,所述方法包括:
[0015]獲取基于用戶為驗證電子簽名生成的口令的、特定于用戶的用戶因子;
[0016]獲取在本地存儲的、在生成電子簽名時本地產生的隨機因子;
[0017]獲取用戶輸入口令的移動設備上的、特定于移動設備的設備因子;
[0018]基于所述用戶因子、隨機因子、設備因子,經基于分段模計算特性的基于分段模特性的SM2算法,生成待驗證電子簽名,其中基于分段模特性的SM2算法是生成電子簽名時采用的基于分段模特性的SM2算法;
[0019]向分布式密鑰機發送待驗證電子簽名,以便轉發到認證平臺與電子簽名對應的公鑰驗證結果進行比對驗證。
[0020]根據本發明的一個方面,提供了一種基于SM2的待驗證電子簽名驗證方法,所述方法包括:
[0021]從移動設備盾插件接收待驗證電子簽名,所述待驗證電子簽名是按照基于用戶為驗證電子簽名生成的口令的、特定于用戶的用戶因子、在本地存儲的、在生成電子簽名時本地產生的隨機因子、用戶輸入口令的移動設備上的、特定于移動設備的設備因子,經基于分段模計算特性的基于分段模特性的SM2算法生成,并利用獲取的用于對待驗證電子簽名進行加擾的干擾因子進行加擾,其中基于分段模特性的SM2算法是生成電子簽名時采用的基于分段模特性的SM2算法;
[0022]對所述待驗證電子簽名進行解擾;
[0023]將解擾后的待驗證電子簽名發送給認證平臺,以便與公鑰驗證結果進行比對驗證。
[0024]根據本發明的一個方面,提供了一種基于SM2的電子簽名生成設備,所述設備包括:
[0025]用于獲取基于用戶為生成電子簽名輸入的口令的、特定于用戶的用戶因子的裝置;
[0026]用于獲取隨機因子的裝置;
[0027]用于獲取用戶輸入口令的移動設備上的、特定于移動設備的設備因子的裝置;
[0028]用于基于所述用戶因子、隨機因子、設備因子,經基于分段模計算特性的基于分段模特性的SM2算法,生成電子簽名的裝置,其中基于分段模特性的SM2算法是保證用戶因子、隨機因子、設備因子中任何一項不同,電子簽名都不同的算法。
[0029]根據本發明的一個方面,提供了一種電子簽名處理設備,所述設備包括:
[0030]用于從移動設備盾插件接收移動設備盾插件生成的電子簽名的裝置,其中所述電子簽名在從移動設備盾插件端基于用戶為生成電子簽名輸入的口令的特定于用戶的用戶因子、隨機因子、用戶輸入口令的移動設備上的特定于移動設備的設備因子,經基于分段模計算特性的基于分段模特性的SM2算法生成,并利用獲取的用于對電子簽名進行加擾的干擾因子進行加擾;
[0031]用于對所述電子簽名進行解擾的裝置;
[0032]用于將解擾后的電子簽名發送給認證平臺的裝置。
[0033]根據本發明的一個方面,提供了一種基于SM2的待驗證電子簽名驗證設備,所述設備包括:
[0034]用于獲取基于用戶為驗證電子簽名生成的口令的、特定于用戶的用戶因子的裝置;
[0035]用于獲取在本地存儲的、在生成電子簽名時本地產生的隨機因子的裝置;
[0036]用于獲取用戶輸入口令的移動設備上的、特定于移動設備的設備因子的裝置;
[0037]用于基于所述用戶因子、隨機因子、設備因子,經基于分段模計算特性的基于分段模特性的SM2算法,生成待驗證電子簽名的裝置,其中基于分段模特性的SM2算法是生成電子簽名時采用的基于分段模特性的SM2算法;
[0038]用于向分布式密鑰機發送待驗證電子簽名,以便與電子簽名對應的公鑰驗證結果進行比對驗證的裝置。
[0039]根據本發明的一個方面,提供了一種基于SM2的待驗證電子簽名驗證設備,所述設備包括:
[0040]用于從移動設備盾插件接收待驗證電子簽名的裝置,所述待驗證電子簽名是按照基于用戶為驗證電子簽名生成的口令的、特定于用戶的用戶因子、在本地存儲的、在生成電子簽名時本地產生的隨機因子、用戶輸入口令的移動設備上的、特定于移動設備的設備因子,經基于分段模計算特性的基于分段模特性的SM2算法生成,并利用獲取的用于對待驗證電子簽名進行加擾的干擾因子進行加擾,其中基于分段模特性的SM2算法是生成電子簽名時采用的基于分段模特性的SM2算法;
[0041 ]用于對所述待驗證電子簽名進行解擾的裝置;
[0042]用于將解擾后的待驗證電子簽名發送給認證平臺,以便與電子簽名對應的公鑰驗證結果進行比對驗證的裝置。
[0043]與現有技術相比,本發明具有以下優點:由于基于用戶因子、設備因子、隨機因子三個互不相關因子生成電子簽名,這三個因子缺一不可,用戶因子不作存儲而由用戶掌握,設備因子是移動設備特有的,只能在用戶生成電子簽名時綁定的移動設備上設置,這三個方面互相牽制,在驗證電子簽名時這三個因子必須完全與生成電子簽名時的三個因子一致,才能驗證通過,極大提高了電子簽名安全性。優選的,基于用戶因子、隨機因子、設備因子、干擾因子,生成電子簽名,其中保證用戶因子、隨機因子、設備因子、干擾因子中任何一項不同,電子簽名都不同。本發明符合SM2國產密碼標準,通過分段模計算,以及移動設備與密碼設備的分布式運算,提高電子簽名的安全性。
[0044]另外,由于本發明實施例中,電子簽名采用干擾保護機制,即通過移動設備盾插件對電子簽名進行加擾,后臺的分布式密鑰機進行解擾才能恢復電子簽名。只有分布式密鑰機才能解擾。如果加擾的電子簽名被任何第三方攔截,第三方都無法解擾恢復電子簽名。即,采用干擾機制,每一個數字簽名,都需要移動端、后臺密鑰機共同作用完成,私鑰彼此屏蔽,過程彼此牽制,缺一不可,大大提高了電子簽名的安全性。而分布式密鑰機只能消除簽名干擾成分,即解擾,不能生成用戶簽名,也不能代替用戶簽名,確保用戶簽名生成的私密性。
【附圖說明】
[0045]通過閱讀參照以下附圖所作的對非限制性實施例所作的詳細描述,本發明的其它特征、目的和優點將會變得更明顯:
[0046]圖1示出了根據本發明的一個實施例的基于SM2的電子簽名生成方法在移動設備盾插件及分布式密鑰機之間的雙端交互流程圖。
[0047]圖2示出了根據本發明的一個實施例的基于SM2的待驗證電子簽名驗證方法在移動設備盾插件及分布式密鑰機之間的雙端交互流程圖。
[0048]圖3示出了根據本發明的一個實施例的移動設備盾插件側的基于SM2的電子簽名生成設備的框圖。
[0049]圖4示出了根據本發明的一個實施例的分布式密鑰機側的基于SM2的電子簽名處理設備的框圖。
[0050]圖5示出了根據本發明的一個實施例的移動設備盾插件側的基于SM2的待驗證電子簽名驗證設備的框圖。
[0051]圖6示出了根據本發明的一個實施例的分布式密鑰機側的基于SM2的待驗證電子簽名驗證設備的框圖。
【具體實施方式】
[0052]下面結合附圖對本發明作進一步詳細描述。
[0053]圖1示出了根據本發明的一個實施例的基于SM2的電子簽名生成方法在移動設備盾插件及分布式密鑰機之間的雙端交互流程圖。SM2是本領域技術人員都了解的國密的一種算法。本申請的一個實施例的電子簽名生成驗證系統包括移動設備盾插件、分布式密鑰機、以及認證平臺。移動設備盾插件位于用戶的移動設備上,例如綁定移動設備的應用中。而分布式密鑰機位于后臺服務器,例如機房中。二者分布式協同運算,為用戶提供電子簽名功能。
[0054]以用戶移動設備(如手機)上的電子銀行應用為例。用戶在開通移動設備上的電子銀行應用(例如通過下載電子銀行應用安裝到移動設備上)時,電子銀行應用綁定有一個移動設備盾插件,該插件與U盾不同,它不是單獨存在,而是綁定在安裝的電子銀行應用中的,用于在電子簽名生成和驗證中與分布式密鑰機協同運算,完成電子簽名的生成和驗證。安裝電子銀行應用后,用戶需要完成注冊。在注冊時輸入用戶口令。用戶要記住該口令,并且在以后每次通過電子銀行應用辦理業務(例如轉賬)時要輸入相同的口令。這時,移動設備盾插件根據基于該用戶口令生成的用戶因子、獲取到的隨機因子和特定于移動設備的設備因子,生成電子簽名,并利用加擾因子加擾后發給后臺的分布式密鑰機。分布式密鑰機對該電子簽名解擾后發給認證平臺登記。當用戶以后需要通過該電子銀行應用辦理業務(如轉賬)時,需要完成電子簽名的驗證過程。驗證用戶才能辦理該業務,否則交易不安全。這時,用戶需要輸入自己在注冊時輸入的用戶口令。移動設備盾插件基于該用戶口令通過與在注冊時基于用戶口令得到用戶因子相同的算法得到與注冊時相同的用戶因子。用戶在注冊時生成電子簽名的過程中獲取的隨機因子是固定保存在用戶的移動設備中的,因此,移動設備盾插件也可以獲取到存儲的生產電子簽名的過程中使用的隨機因子。設備因子是特定于移動設備的,也可以由移動設備盾插件獲取到。此時獲取到的設備因子也是與生成電子簽名時相同的。因此,此時移動設備盾插件基于此時的用戶因子、隨機因子、設備因子生成的待驗證電子簽名應該也是與生成電子簽名時生成的電子簽名相同的。移動設備盾插件將該待驗證電子簽名加擾后發到分布式密鑰機,由分布式密鑰機解擾后發到認證平臺,與用戶注冊時生成且登記在認證平臺的電子簽名進行比對驗證。從理論上,該待驗證電子簽名與用戶注冊時生成且登記在認證平臺的電子簽名應該相同。如不相同,則說明用戶輸入了錯誤的用戶口令、用戶使用的不是一開始注冊所用的移動設備、或者生成的電子簽名或待認證電子簽名在傳輸的過程中遭到了非法篡改。由于本發明實施例中,基于用戶因子、設備因子、隨機因子三個互不相關因子生成電子簽名,這三個因子缺一不可,用戶因子不作存儲而由用戶掌握,設備因子是移動設備特有的,這三個因子互相牽制,在驗證電子簽名時這三個因子必須完全與生成電子簽名時的三個因子一致,才能驗證通過,使得即使在用戶口令泄露等情況下其他人也很難僅憑用戶口令驗證成功,極大提高了電子簽名安全性。而且,電子簽名采用干擾保護機制,即通過移動設備盾插件對電子簽名進行加擾,后臺的分布式密鑰機進行解擾才能恢復電子簽名。只有分布式密鑰機才能解擾。如果加擾的電子簽名被任何第三方攔截,第三方都無法解擾恢復電子簽名而分布式密鑰機只能消除簽名干擾成分,即解擾,不能生成用戶簽名,因此分布式密鑰機端的管理者也無法私自篡改用戶簽名,這種移動設備盾插件和分布式密鑰機相互牽制的方式確保了用戶簽名生成的私密性。
[0055]分布式密鑰機在后臺用于與移動設備盾插件相配合完成電子簽名生成和驗證過程中的運算,如解擾等。例如,每個銀行的支行的機房設置一臺分布式密鑰機,負責該支行所下發的所有電子銀行應用相關的電子簽名的生成和驗證。
[0056]如圖1所示,根據本發明一個實施例的移動設備盾插件側的一種基于SM2的電子簽名生成方法包括:
[0057]步驟S110、獲取基于用戶為生成電子簽名輸入的口令的、特定于用戶的用戶因子;
[0058]步驟SI 20、獲取隨機因子;
[0059]步驟S130、獲取用戶輸入口令的移動設備上的、特定于移動設備的設備因子;
[0060]步驟S140、基于所述用戶因子、隨機因子、設備因子,經基于分段模計算特性的基于分段模特性的SM2算法,生成電子簽名,其中基于分段模特性的SM2算法是保證用戶因子、隨機因子、設備因子中任何一項不同,電子簽名都不同的算法。
[0061]下面對這些步驟進行詳細描述。
[0062]步驟S110、獲取基于用戶為生成電子簽名輸入的口令的、特定于用戶的用戶因子。
[0063]在一個實施例中,步驟SllO包括:
[0064]獲取用戶輸入的口令;
[0065]將獲取的口令輸入用戶因子生成算法,得到特定于用戶的用戶因子,其中所述用戶因子生成算法是保證輸入的口令不同,產生的用戶因子都不同的算法。
[0066]如前所述,用戶輸入的口令是用戶在注冊時輸入用戶口令。一般,在用戶注冊時,與移動設備盾插件所綁定的應用的界面會提示用戶輸入用戶口令。當用戶輸入該口令后,移動設備盾插件就獲取了該口令。用戶要記住該口令,并且在以后每次通過電子銀行應用辦理業務(例如轉賬)時要輸入相同的口令。
[0067]所述用戶因子生成算法是保證輸入的口令不同,產生的用戶因子都不同的算法。而且,在驗證待驗證電子簽名時,產生待驗證電子簽名也要采用同樣的用戶因子生成算法生成驗證時的用戶因子。
[0068]用戶因子是已有概念,是特定于用戶的一個因子,例如隨用戶不同而不同的一個數。用戶因子生成算法的特點是輸入的口令與輸出的值(用戶因子)都唯一對應性,即輸入的口令不同,產生的用戶因子都不同。目前已知許多算法可用于用戶因子生成算法,故不贅述。
[0069]步驟S120、獲取隨機因子。
[0070]在一個實施例中,步驟S120包括:
[0071 ]接收分布式密鑰機發送的硬件隨機數;
[0072]在本地產生本地隨機數;
[0073]將所述硬件隨機數與所述本地隨機數合成,得到隨機因子。
[0074]隨機因子一般是指隨機產生的數。
[0075]該實施例中的隨機因子分為兩部分。一部分是硬件隨機數,是從分布式密鑰機接收來的。另一部分是本地隨機數,是移動設備盾插件本地產生的。該隨機因子由兩部分合成的好處是,由于該隨機因子一部分來自于分布式密鑰機,即使移動設備盾插件受到攻擊,攻擊者也僅僅是能掌握本地產生的隨機數;而該隨機因子還有一部分來自本地,即使分布式密鑰機受到攻擊,也僅僅是其中來自分布式密鑰機的部分遭到破譯,仍然無法竊取整個隨機因子,提高了電子簽名生成的安全性。
[0076]步驟S130、獲取用戶輸入口令的移動設備上的、特定于移動設備的設備因子。
[0077]該設備因子可以是用戶輸入口令的移動設備上的設備ID或設備出廠號等,也可以是基于設備ID或設備出廠號等進行某種特定的運算而得到的一個數。移動設備上的設備ID或設備出廠號等可以存儲在移動設備的存儲器中的某一特定位置。移動設備盾插件只要讀取該位置處存儲的內容,就可以得到移動設備上的設備ID或設備出廠號等。某種特定的運算是已知的,并且固定的,對于任何移動設備計算設備因子時就采用同樣的運算。例如,該特定的運算是移動設備上的設備ID異或后與設備出廠號串聯等。一般來說,該運算需要具有輸入輸出一對一性,即對于不同的輸入,必然會產生不同的輸出。
[0078]步驟S140、基于所述用戶因子、隨機因子、設備因子,經基于分段模特性的SM2算法,生成電子簽名,其中基于分段模特性的SM2算法是保證用戶因子、隨機因子、設備因子中任何一項不同,電子簽名都不同的算法。
[0079]本發明實施例是基于SM2算法實現的。SM2是國家密碼管理局于2010年12月17日發布的橢圓曲線公鑰密碼算法。本發明實施例中,基于分段模計算特性的SM2算法具有輸入輸出一對一性,即保證用戶因子、隨機因子、設備因子中任何一項不同,電子簽名都不同。在算法中,由用戶因子、硬件因子、隨機因子三個互不相關的各段因子分別迭代運算,不需要組裝成完整數據。
[0080]優選地,該基于分段模特性的SM2算法包括迭代算法,用戶因子、設備因子、隨機因子經過迭代算法,不需要將三個因子組裝成完整的用戶簽名,從完整的用戶簽名難以分析出迭代前的三個因子,極大提高了電子簽名的安全性。
[0081 ] 在步驟S140之前,在一個實施例中,該方法還包括:步驟S135、獲取用于對電子簽名進行加擾的干擾因子。
[0082]在將電子簽名發送到分布式密鑰機之前對電子簽名進行加擾的作用在于,防止電子簽名被第三方攔截而泄露。在加擾的情況下,技術電子簽名被第三方攔截,由于第三方不知道加擾用的干擾因子,仍然無法恢復電子簽名。即,采用干擾機制,每一個數字簽名,都需要移動端、后臺密鑰機共同作用完成,私鑰彼此屏蔽,過程彼此牽制,缺一不可,大大提高了電子簽名的安全性。而分布式密鑰機只能消除簽名干擾成分,即解擾,不能生成用戶簽名,確保用戶簽名生成的私密性。
[0083]在一個實施例中,步驟S135包括:
[0084]接收分布式密鑰機發送的干擾公鑰;
[0085]根據所述干擾公鑰確定干擾因子。
[0086]分布式密鑰機中設置有干擾公鑰、干擾私鑰對。干擾公鑰、干擾私鑰對可以對每次電子簽名的生成和驗證都相同,但優選是對每次電子簽名的生成和驗證采用不同的干擾公鑰、干擾私鑰對。分布式密鑰機將干擾公鑰發送給移動設備盾插件,供移動設備盾插件據此確定干擾因子。分布式密鑰機保留干擾私鑰。在移動設備盾插件用干擾因子對生成的電子簽名加擾后發回分布式密鑰機后,分布式密鑰機用干擾私鑰解擾。由于干擾私鑰與干擾公鑰是對應的,分布式密鑰機可以解擾開生成的電子簽名,而其他設備即使攔截到該電子簽名,也因為缺少干擾私鑰,無法對其解擾。
[0087]干擾因子是用于對生成的電子簽名進行加擾的數等。根據所述干擾公鑰確定干擾因子往往是通過預定干擾因子產生算法。該干擾因子產生算法具有輸入輸出一對一性,即對于不同的輸入產生不同的輸出。已知許多算法具有輸入輸出一對一性,可以作為干擾因子產生算法,故不贅述。
[0088]在步驟S140之后,所述方法還包括:步驟S145、利用獲取的干擾因子對生成的電子簽名進行加擾,生成加擾后的電子簽名。
[0089]加擾屬于已有技術。有許多加擾算法可被用來利用獲取的干擾因子對生成的電子簽名進行加擾,生成加擾后的電子簽名,故不贅述。
[0090]如圖1所示,在一個實施例中,在步驟S145之后,所述方法包括:步驟S150、向分布式密鑰機發送加擾后的電子簽名。
[0091]向分布式密鑰機發送加擾后的電子簽名的目的是使分布式密鑰機能夠利用干擾私鑰解擾加擾后的電子簽名,從而將恢復的電子簽名發送給認證平臺登記,以便以后驗證待驗證電子簽名。
[0092]如圖所示,在一個實施例中,根據本發明一個實施例的在分布式密鑰機側的一種基于SM2的電子簽名處理方法包括:
[0093]步驟S210、從移動設備盾插件接收移動設備盾插件生成的電子簽名,其中所述電子簽名在從移動設備盾插件端基于用戶為生成電子簽名輸入的口令的特定于用戶的用戶因子、隨機因子、用戶輸入口令的移動設備上的特定于移動設備的設備因子,經基于分段模特性的SM2算法生成,并利用獲取的用于對電子簽名進行加擾的干擾因子進行加擾;
[0094]步驟S220、對所述電子簽名進行解擾;
[0095]步驟S230、將解擾后的電子簽名發送給認證平臺。
[0096]電子簽名處理方法是指對從移動設備盾插件接收到的加擾后的電子簽名進行解擾等處理,并發送給認證平臺作為用戶登記的電子簽名的方法。
[0097]下面對這些步驟進行詳細描述。
[0098]步驟S210、從移動設備盾插件接收移動設備盾插件生成的電子簽名,其中所述電子簽名在從移動設備盾插件端基于用戶為生成電子簽名輸入的口令的特定于用戶的用戶因子、隨機因子、用戶輸入口令的移動設備上的特定于移動設備的設備因子,經基于分段模特性的SM2算法生成,并利用獲取的用于對電子簽名進行加擾的干擾因子進行加擾。
[0099]所述電子簽名在從移動設備盾插件端基于用戶為生成電子簽名輸入的口令的特定于用戶的用戶因子、隨機因子、用戶輸入口令的移動設備上的特定于移動設備的設備因子,經基于分段模特性的SM2算法生成,并利用獲取的用于對電子簽名進行加擾的干擾因子進行加擾的過程前面結合步驟S110-S145已經描述,因此不再贅述。
[0100]步驟S220、對所述電子簽名進行解擾。
[0101]在一個實施例中,在干擾因子是基于發送到移動設備盾插件的干擾公鑰確定出的情況下,所述對所述電子簽名進行解擾的步驟包括:用干擾私鑰對電子簽名進行解擾。
[0102]如前所述,分布式密鑰機中設置有干擾公鑰、干擾私鑰對。分布式密鑰機將干擾公鑰發送給移動設備盾插件,供移動設備盾插件據此確定干擾因子。分布式密鑰機保留干擾私鑰。在移動設備盾插件用干擾因子對生成的電子簽名加擾后發回分布式密鑰機后,分布式密鑰機用干擾私鑰解擾。由于干擾私鑰與干擾公鑰是對應的,分布式密鑰機可以解擾開生成的電子簽名,而其他設備即使攔截到該電子簽名,也因為缺少干擾私鑰,無法對其解擾。
[0103]步驟S230、將解擾后的電子簽名發送給認證平臺。
[0104]將解擾后的電子簽名發送給認證平臺的目的是作為用戶在認證平臺登記的電子簽名。當以后用戶需要使用移動設備盾插件所綁定的應用(如電子銀行應用)進行某個操作時,按后述方式生成待驗證電子簽名,發送到認證平臺與生成電子簽名時用戶登記在認證平臺的電子簽名進行比對。如一致則通過驗證。
[0105]如圖2所示,根據本發明一個實施例的移動設備盾插件側的一種基于SM2的待驗證電子簽名驗證方法包括:
[0106]步驟S310、獲取基于用戶為驗證電子簽名生成的口令的、特定于用戶的用戶因子;
[0107]步驟S320、獲取在本地存儲的、在生成電子簽名時本地產生的隨機因子;
[0108]步驟S330、獲取用戶輸入口令的移動設備上的、特定于移動設備的設備因子;
[0109]步驟S340、基于所述用戶因子、隨機因子、設備因子,經基于分段模特性的SM2算法,生成待驗證電子簽名,其中基于分段模特性的SM2算法是生成電子簽名時采用的基于分段模特性的SM2算法;
[0110]步驟S350、向分布式密鑰機發送待驗證電子簽名,以便轉發到認證平臺與公鑰驗證結果進行比對驗證。
[0111]下面對這些步驟進行詳細描述。
[0112]步驟S310、獲取基于用戶為驗證電子簽名生成的口令的、特定于用戶的用戶因子。
[0113]例如,用戶需要利用移動設備上的電子銀行應用進行轉賬,這時需要為用戶產生一個待驗證電子簽名,發送到認證平臺進行驗證。
[0114]在移動設備盾插件所綁定的應用界面的提示下,用戶輸入用戶口令。移動設備盾插件獲取到該用戶口令,基于該用戶口令生成特定于用戶的用戶因子。基于該用戶口令生成特定于用戶的用戶因子與步驟SllO中一致,且采用相同算法,這樣才能保證電子簽名生成和驗證的一致性。與步驟SllO的區別在于,本步驟獲取的是一個用于電子簽名驗證的用戶因子,而步驟SllO產生的是一個用于電子簽名生成的用戶因子。
[0115]步驟S320、獲取在本地存儲的、在生成電子簽名時本地產生的隨機因子。
[0116]由于在生成用戶的電子簽名時產生的隨機因子已保存在移動設備盾插件的存儲器中,因此可以直接獲取該隨機因子。
[0117]步驟S330、獲取用戶輸入口令的移動設備上的、特定于移動設備的設備因子。
[0118]步驟S330中獲取用戶輸入口令的移動設備上的、特定于移動設備的設備因子的過程與步驟S130中完全一致。與步驟S130的區別在于,步驟S130中獲取的設備因子用于用戶電子簽名的生成。步驟S330中獲取的設備因子用于用戶電子簽名的驗證。
[0119]步驟S340、基于所述用戶因子、隨機因子、設備因子,經基于分段模特性的SM2算法,生成待驗證電子簽名,其中基于分段模特性的SM2算法是生成電子簽名時采用的基于分段模特性的SM2算法。
[0120]該步驟與步驟S140基本相同。與步驟S140不同的是,步驟S140是基于用于電子簽名生成的用戶因子、隨機因子、設備因子來生成電子簽名,而本步驟是于用于電子簽名驗證的用戶因子、隨機因子、設備因子來生成待驗證電子簽名。
[0121]步驟S350、向分布式密鑰機發送待驗證電子簽名,以便轉發到認證平臺與公鑰驗證結果進行比對驗證。
[0122]該步驟與步驟S150基本相同。與步驟S150不同的是,步驟S150是發送為用戶生成的電子簽名,而本步驟是發送生成的待驗證電子簽名。
[0123]在一個實施例中,在步驟S340之前,所述方法還包括:步驟S335獲取用于對待驗證電子簽名進行加擾的干擾因子。
[0124]該步驟與步驟S135基本相同。與步驟S135不同的是,步驟S135是獲取用于對生成的電子簽名進行加擾的干擾因子,而步驟S335是獲取用于對待驗證電子簽名進行加擾的干擾因子。
[0125]在步驟S340之后,所述方法還包括:步驟S345、利用獲取的干擾因子對生成的待驗證電子簽名進行加擾,生成加擾后的待驗證電子簽名。
[0126]該步驟與步驟S145基本相同。與步驟S145不同的是,步驟S145是利用獲取的干擾因子對為用戶注冊時生成的電子簽名進行加擾,生成加擾后的電子簽名。步驟S345是利用獲取的干擾因子對用戶需要使用應用的功能時生成的待驗證電子簽名進行加擾,生成加擾后的待驗證電子簽名。
[0127]此時,步驟S350包括:向分布式密鑰機發送加擾后的待驗證電子簽名,以便分布式密鑰機解擾后轉發到認證平臺與公鑰驗證結果進行比對驗證。
[0128]如圖2所示,根據本發明的一個實施例的在分布式密鑰機側的待驗證電子簽名驗證方法包括:
[0129]步驟S410、從移動設備盾插件接收待驗證電子簽名,所述待驗證電子簽名是按照基于用戶為驗證電子簽名生成的口令的、特定于用戶的用戶因子、在本地存儲的、在生成電子簽名時本地產生的隨機因子、用戶輸入口令的移動設備上的、特定于移動設備的設備因子,經基于分段模特性的SM2算法生成,并利用獲取的用于對待驗證電子簽名進行加擾的干擾因子進行加擾,其中基于分段模特性的SM2算法是生成電子簽名時采用的基于分段模特性的SM2算法;
[0130]步驟S420、對所述待驗證電子簽名進行解擾;
[0131]步驟S430、將解擾后的待驗證電子簽名發送給認證平臺,以便與公鑰驗證結果進行比對驗證。
[0132]下面對這些步驟進行詳細描述。
[0133]步驟S410、從移動設備盾插件接收待驗證電子簽名,所述待驗證電子簽名是按照基于用戶為驗證電子簽名生成的口令的、特定于用戶的用戶因子、在本地存儲的、在生成電子簽名時本地產生的隨機因子、用戶輸入口令的移動設備上的、特定于移動設備的設備因子,經基于分段模特性的SM2算法生成,并利用獲取的用于對待驗證電子簽名進行加擾的干擾因子進行加擾,其中基于分段模特性的SM2算法是生成電子簽名時采用的基于分段模特性的SM2算法。
[0134]所述待驗證電子簽名按照基于用戶為驗證電子簽名生成的口令的、特定于用戶的用戶因子、在本地存儲的、在生成電子簽名時本地產生的隨機因子、用戶輸入口令的移動設備上的、特定于移動設備的設備因子,經基于分段模特性的SM2算法生成,并利用獲取的用于對待驗證電子簽名進行加擾的干擾因子進行加擾的過程如步驟S310-S345所示。
[0135]步驟S420、對所述待驗證電子簽名進行解擾。
[0136]在一個實施例中,在干擾因子是基于發送到移動設備盾插件的干擾公鑰確定出的情況下,步驟S420包括:
[0137]用干擾私鑰對待驗證電子簽名進行解擾。
[0138]步驟S430、將解擾后的待驗證電子簽名發送給認證平臺,以便與公鑰驗證結果進行比對驗證。
[0139]將解擾后的待驗證電子簽名發送給認證平臺后,如果解擾后的待驗證電子簽名與生成電子簽名時用戶在認證平臺登記的電子簽名一致,則驗證通過。反之,則驗證不通過。
[0140]如圖3所示,根據本發明一個實施例的移動設備盾插件側的一種基于SM2的電子簽名生成設備3包括:
[0141]用于獲取基于用戶為生成電子簽名輸入的口令的、特定于用戶的用戶因子的裝置(下簡稱為“生成電子簽名用用戶因子獲取裝置”)301;
[0142]用于獲取隨機因子的裝置(下簡稱為“生成電子簽名用隨機因子獲取裝置”)302;
[0143]用于獲取用戶輸入口令的移動設備上的、特定于移動設備的設備因子的裝置(下簡稱為“生成電子簽名用設備因子獲取裝置”)303;
[0144]用于基于所述用戶因子、隨機因子、設備因子,經基于分段模特性的SM2算法,生成電子簽名的裝置(下簡稱為“電子簽名生成裝置”)304。
[0145]下面對這些裝置進行詳細描述。
[0146]在一個實施例中,生成電子簽名用用戶因子獲取裝置301用于:
[0147]獲取用戶輸入的口令;
[0148]將獲取的口令輸入用戶因子生成算法,得到特定于用戶的用戶因子,其中所述用戶因子生成算法是保證輸入的口令不同,產生的用戶因子都不同的算法。
[0149]如前所述,用戶輸入的口令是用戶在注冊時輸入用戶口令。一般,在用戶注冊時,與移動設備盾插件所綁定的應用的界面會提示用戶輸入用戶口令。當用戶輸入該口令后,移動設備盾插件就獲取了該口令。用戶要記住該口令,并且在以后每次通過電子銀行應用辦理業務(例如轉賬)時要輸入相同的口令。
[0150]所述用戶因子生成算法是保證輸入的口令不同,產生的用戶因子都不同的算法。而且,在驗證待驗證電子簽名時,產生待驗證電子簽名也要采用同樣的用戶因子生成算法生成驗證時的用戶因子。
[0151]用戶因子是已有概念,是特定于用戶的一個因子,例如隨用戶不同而不同的一個數。用戶因子生成算法的特點是輸入的口令與輸出的值(用戶因子)都唯一對應性,即輸入的口令不同,產生的用戶因子都不同。目前已知許多算法可用于用戶因子生成算法,故不贅述。
[0152]在一個實施例中,生成電子簽名用隨機因子獲取裝置302用于:
[0153]接收分布式密鑰機發送的硬件隨機數;
[0154]在本地產生本地隨機數;
[0155]將所述硬件隨機數與所述本地隨機數合成,得到隨機因子。
[0156]隨機因子一般是指隨機產生的數。
[0157]該實施例中的隨機因子分為兩部分。一部分是硬件隨機數,是從分布式密鑰機接收來的。另一部分是本地隨機數,是移動設備盾插件本地產生的。該隨機因子由兩部分合成的好處是,由于該隨機因子一部分來自于分布式密鑰機,即使移動設備盾插件受到攻擊,攻擊者也僅僅是能掌握本地產生的隨機數;而該隨機因子還有一部分來自本地,即使分布式密鑰機受到攻擊,也僅僅是其中來自分布式密鑰機的部分遭到破譯,仍然無法竊取整個隨機因子,提高了電子簽名生成的安全性。
[0158]生成電子簽名用設備因子獲取裝置303用于獲取設備因子。該設備因子可以是用戶輸入口令的移動設備上的設備ID或設備出廠號等,也可以是基于設備ID或設備出廠號等進行某種特定的運算而得到的一個數。移動設備上的設備ID或設備出廠號等可以存儲在移動設備的存儲器中的某一特定位置。移動設備盾插件只要讀取該位置處存儲的內容,就可以得到移動設備上的設備ID或設備出廠號等。某種特定的運算是已知的,并且固定的,對于任何移動設備計算設備因子時就采用同樣的運算。例如,該特定的運算是移動設備上的設備ID異或后與設備出廠號串聯等。一般來說,該運算需要具有輸入輸出一對一性,即對于不同的輸入,必然會產生不同的輸出。
[0159]電子簽名生成裝置304基于所述用戶因子、隨機因子、設備因子,經基于分段模特性的SM2算法,生成電子簽名,其中基于分段模特性的SM2算法是保證用戶因子、隨機因子、設備因子中任何一項不同,電子簽名都不同的算法。
[0160]基于分段模特性的SM2算法具有輸入輸出一對一性,即保證用戶因子、隨機因子、設備因子中任何一項不同,電子簽名都不同。已知許多算法具有輸入輸出一對一性,可以用作基于分段模特性的SM2算法。這一部分在本文中不贅述。
[0161]優選地,該基于分段模特性的SM2算法包括迭代算法,用戶因子、設備因子、隨機因子經過迭代算法,不需要將三個因子組裝成完整的用戶簽名,從完整的用戶簽名難以分析出迭代前的三個因子,極大提高了電子簽名的安全性。
[0162]在一個實施例中,所述設備還包括:用于在經基于分段模特性的SM2算法生成電子簽名之前,獲取用于對電子簽名進行加擾的干擾因子的裝置(下簡稱“生成電子簽名加擾用干擾因子獲取裝置”,圖中未示)。
[0163]在將電子簽名發送到分布式密鑰機之前對電子簽名進行加擾的作用在于,防止電子簽名被第三方攔截而泄露。在加擾的情況下,技術電子簽名被第三方攔截,由于第三方不知道加擾用的干擾因子,仍然無法恢復電子簽名。即,采用干擾機制,每一個數字簽名,都需要移動端、后臺密鑰機共同作用完成,私鑰彼此屏蔽,過程彼此牽制,缺一不可,大大提高了電子簽名的安全性。而分布式密鑰機只能消除簽名干擾成分,即解擾,不能生成用戶簽名,確保用戶簽名生成的私密性。
[0164]生成電子簽名加擾用干擾因子獲取裝置用于:
[0165]接收分布式密鑰機發送的干擾公鑰;
[0166]根據所述干擾公鑰確定干擾因子。
[0167]分布式密鑰機中設置有干擾公鑰、干擾私鑰對。干擾公鑰、干擾私鑰對可以對每次電子簽名的生成和驗證都相同,但優選是對每次電子簽名的生成和驗證采用不同的干擾公鑰、干擾私鑰對。分布式密鑰機將干擾公鑰發送給移動設備盾插件,供移動設備盾插件據此確定干擾因子。分布式密鑰機保留干擾私鑰。在移動設備盾插件用干擾因子對生成的電子簽名加擾后發回分布式密鑰機后,分布式密鑰機用干擾私鑰解擾。由于干擾私鑰與干擾公鑰是對應的,分布式密鑰機可以解擾開生成的電子簽名,而其他設備即使攔截到該電子簽名,也因為缺少干擾私鑰,無法對其解擾。
[0168]干擾因子是用于對生成的電子簽名進行加擾的數等。根據所述干擾公鑰確定干擾因子往往是通過預定干擾因子產生算法。該干擾因子產生算法具有輸入輸出一對一性,即對于不同的輸入產生不同的輸出。已知許多算法具有輸入輸出一對一性,可以作為干擾因子產生算法,故不贅述。
[0169]在一個實施例中,所述設備還包括:用于在經基于分段模特性的SM2算法生成電子簽名之后,利用獲取的干擾因子對生成的電子簽名進行加擾,生成加擾后的電子簽名的裝置(圖中未示)。
[0170]加擾屬于已有技術。有許多加擾算法可被用來利用獲取的干擾因子對生成的電子簽名進行加擾,生成加擾后的電子簽名,故不贅述。
[0171]在一個實施例中,所述設備還包括:
[0172]用于向分布式密鑰機發送加擾后的電子簽名的裝置(圖中未示)。
[0173]如圖4所示,在一個實施例中,根據本發明一個實施例的在分布式密鑰機側的一種基于SM2的電子簽名處理設備4包括:
[0174]用于從移動設備盾插件接收移動設備盾插件生成的電子簽名的裝置(下簡稱“生成電子簽名接收裝置”)401,其中所述電子簽名在從移動設備盾插件端基于用戶為生成電子簽名輸入的口令的特定于用戶的用戶因子、隨機因子、用戶輸入口令的移動設備上的特定于移動設備的設備因子,經基于分段模特性的SM2算法生成,并利用獲取的用于對電子簽名進行加擾的干擾因子進行加擾;
[0175]用于對所述電子簽名進行解擾的裝置(下簡稱“生成電子簽名解擾裝置”)402;
[0176]用于將解擾后的電子簽名發送給認證平臺的裝置(下簡稱“解擾電子簽名發送裝置”)403。
[0177]下面對這些裝置進行詳細描述。
[0178]生成電子簽名接收裝置401用于從移動設備盾插件接收移動設備盾插件生成的電子簽名,其中所述電子簽名在從移動設備盾插件端基于用戶為生成電子簽名輸入的口令的特定于用戶的用戶因子、隨機因子、用戶輸入口令的移動設備上的特定于移動設備的設備因子,經基于分段模特性的SM2算法生成,并利用獲取的用于對電子簽名進行加擾的干擾因子進行加擾。
[0179]所述電子簽名在從移動設備盾插件端基于用戶為生成電子簽名輸入的口令的特定于用戶的用戶因子、隨機因子、用戶輸入口令的移動設備上的特定于移動設備的設備因子,經基于分段模特性的SM2算法生成,并利用獲取的用于對電子簽名進行加擾的干擾因子進行加擾的過程前面結合步驟S110-S145已經描述,因此不再贅述。
[0180]生成電子簽名解擾裝置402用于對所述電子簽名進行解擾的裝置。
[0181]在一個實施例中,在干擾因子是基于發送到移動設備盾插件的干擾公鑰確定出的情況下,生成電子簽名解擾裝置402用于:
[0182]用干擾私鑰對電子簽名進行解擾。
[0183]如前所述,分布式密鑰機中設置有干擾公鑰、干擾私鑰對。分布式密鑰機將干擾公鑰發送給移動設備盾插件,供移動設備盾插件據此確定干擾因子。分布式密鑰機保留干擾私鑰。在移動設備盾插件用干擾因子對生成的電子簽名加擾后發回分布式密鑰機后,分布式密鑰機用干擾私鑰解擾。由于干擾私鑰與干擾公鑰是對應的,分布式密鑰機可以解擾開生成的電子簽名,而其他設備即使攔截到該電子簽名,也因為缺少干擾私鑰,無法對其解擾。
[0184]解擾電子簽名發送裝置403用于將解擾后的電子簽名發送給認證平臺。
[0185]將解擾后的電子簽名發送給認證平臺的目的是作為用戶在認證平臺登記的電子簽名。當以后用戶需要使用移動設備盾插件所綁定的應用(如電子銀行應用)進行某個操作時,按后述方式生成待驗證電子簽名,發送到認證平臺與生成電子簽名時用戶登記在認證平臺的電子簽名進行比對。如一致則通過驗證。
[0186]如圖5所示,根據本發明一個實施例的移動設備盾插件側的一種基于SM2的待驗證電子簽名驗證設備5包括:
[0187]用于獲取基于用戶為驗證電子簽名生成的口令的、特定于用戶的用戶因子的裝置(下簡稱“驗證電子簽名用用戶因子獲取裝置”)501;
[0188]用于獲取在本地存儲的、在生成電子簽名時本地產生的隨機因子的裝置(下簡稱“驗證電子簽名用隨機因子獲取裝置”)502;
[0189]用于獲取用戶輸入口令的移動設備上的、特定于移動設備的設備因子的裝置(下簡稱“驗證電子簽名用設備因子獲取裝置”)503;
[0190]用于基于所述用戶因子、隨機因子、設備因子,經基于分段模特性的SM2算法,生成待驗證電子簽名的裝置(下簡稱“待驗證電子簽名生成裝置”)504,其中基于分段模特性的SM2算法是生成電子簽名時采用的基于分段模特性的SM2算法;
[0191]用于向分布式密鑰機發送待驗證電子簽名,以便轉發到認證平臺與公鑰驗證結果進行比對驗證的裝置(下簡稱“待驗證電子簽名發送裝置”)505。
[0192]下面對這些裝置進行詳細描述。
[0193]驗證電子簽名用用戶因子獲取裝置501用于獲取基于用戶為驗證電子簽名生成的口令的、特定于用戶的用戶因子。
[0194]例如,用戶需要利用移動設備上的電子銀行應用進行轉賬,這時需要為用戶產生一個待驗證電子簽名,發送到認證平臺進行驗證。
[0195]在移動設備盾插件所綁定的應用界面的提示下,用戶輸入用戶口令。移動設備盾插件獲取到該用戶口令,基于該用戶口令生成特定于用戶的用戶因子。基于該用戶口令生成特定于用戶的用戶因子與裝置301中一致,且采用相同算法,這樣才能保證電子簽名生成和驗證的一致性。與裝置301的區別在于,本裝置獲取的是一個用于電子簽名驗證的用戶因子,而裝置301產生的是一個用于電子簽名生成的用戶因子。
[0196]驗證電子簽名用隨機因子獲取裝置502用于獲取在本地存儲的、在生成電子簽名時本地產生的隨機因子。
[0197]由于在生成用戶的電子簽名時產生的隨機因子已保存在移動設備盾插件的存儲器中,因此可以直接獲取該隨機因子。
[0198]驗證電子簽名用設備因子獲取裝置503用于獲取用戶輸入口令的移動設備上的、特定于移動設備的設備因子。
[0199]此裝置中獲取用戶輸入口令的移動設備上的、特定于移動設備的設備因子的過程與裝置303中完全一致。與裝置303的區別在于,裝置303中獲取的設備因子用于用戶電子簽名的生成。本裝置中獲取的設備因子用于待驗證電子簽名的驗證。
[0200]待驗證電子簽名生成裝置504用于基于所述用戶因子、隨機因子、設備因子,經基于分段模特性的SM2算法,生成待驗證電子簽名,其中基于分段模特性的SM2算法是生成電子簽名時采用的基于分段模特性的SM2算法。
[0201]該裝置與裝置304基本相同。與裝置304不同的是,裝置304是基于用于電子簽名生成的用戶因子、隨機因子、設備因子來生成電子簽名,而本裝置是于用于電子簽名驗證的用戶因子、隨機因子、設備因子來生成待驗證電子簽名。
[0202]待驗證電子簽名發送裝置505用于向分布式密鑰機發送待驗證電子簽名,以便轉發到認證平臺與公鑰驗證結果進行比對驗證。
[0203]在一個實施例中,所述設備還包括:用于在經基于分段模特性的SM2算法生成待驗證電子簽名之前,獲取用于對待驗證電子簽名進行加擾的干擾因子的裝置(圖中未示)。
[0204]在一個實施例中,所述設備還包括:用于在經基于分段模特性的SM2算法生成待驗證電子簽名之后,利用獲取的干擾因子對生成的待驗證電子簽名進行加擾,生成加擾后的待驗證電子簽名的裝置(圖中未示)。
[0205]在一個實施例中,待驗證電子簽名發送裝置505用于:
[0206]向分布式密鑰機發送加擾后的待驗證電子簽名,以便分布式密鑰機解擾后轉發到認證平臺與公鑰驗證結果進行比對驗證。
[0207]如圖6所示,根據本發明的一個實施例的在分布式密鑰機側的基于SM2的待驗證電子簽名驗證設備6包括:
[0208]用于從移動設備盾插件接收待驗證電子簽名的裝置(下簡稱“待驗證電子簽名接收裝置)601,所述待驗證電子簽名是按照基于用戶為驗證電子簽名生成的口令的、特定于用戶的用戶因子、在本地存儲的、在生成電子簽名時本地產生的隨機因子、用戶輸入口令的移動設備上的、特定于移動設備的設備因子,經基于分段模特性的SM2算法生成,并利用獲取的用于對待驗證電子簽名進行加擾的干擾因子進行加擾,其中基于分段模特性的SM2算法是生成電子簽名時采用的基于分段模特性的SM2算法;
[0209]用于對所述待驗證電子簽名進行解擾的裝置(下簡稱“待驗證電子簽名解擾裝置”)602;
[0210]用于將解擾后的待驗證電子簽名發送給認證平臺,以便與公鑰驗證結果進行比對驗證的裝置(下簡稱“解擾后待驗證電子簽名發送裝置”)603。
[0211 ]下面對這些裝置詳細描述。
[0212]待驗證電子簽名接收裝置601用于從移動設備盾插件接收待驗證電子簽名,所述待驗證電子簽名是按照基于用戶為驗證電子簽名生成的口令的、特定于用戶的用戶因子、在本地存儲的、在生成電子簽名時本地產生的隨機因子、用戶輸入口令的移動設備上的、特定于移動設備的設備因子,經基于分段模特性的SM2算法生成,并利用獲取的用于對待驗證電子簽名進行加擾的干擾因子進行加擾,其中基于分段模特性的SM2算法是生成電子簽名時采用的基于分段模特性的SM2算法。
[0213]所述待驗證電子簽名按照基于用戶為驗證電子簽名生成的口令的、特定于用戶的用戶因子、在本地存儲的、在生成電子簽名時本地產生的隨機因子、用戶輸入口令的移動設備上的、特定于移動設備的設備因子,經基于分段模特性的SM2算法生成,并利用獲取的用于對待驗證電子簽名進行加擾的干擾因子進行加擾的過程如步驟S310-S345所示。
[0214]待驗證電子簽名解擾裝置602用于對所述待驗證電子簽名進行解擾。
[0215]在一個實施例中,所述待驗證電子簽名解擾裝置602用于:在干擾因子是基于發送到移動設備盾插件的干擾公鑰確定出的情況下,用干擾私鑰對待驗證電子簽名進行解擾。
[0216]解擾后待驗證電子簽名發送裝置603用于將解擾后的待驗證電子簽名發送給認證平臺,以便與公鑰驗證結果進行比對驗證。
[0217]將解擾后的待驗證電子簽名發送給認證平臺后,如果解擾后的待驗證電子簽名與生成電子簽名時用戶在認證平臺登記的電子簽名一致,則驗證通過。反之,則驗證不通過。
[0218]其中,根據本發明的方法通過包含于計算機設備中的裝置來實現。所述計算機設備包括一種能夠按照事先設定或存儲的指令,自動進行數值計算和/或信息處理的電子設備,其硬件包括但不限于微處理器、專用集成電路(ASIC)、可編程門陣列(FPGA)、數字處理器(DSP)、嵌入式設備等。所述計算機設備包括網絡設備和/或用戶設備。其中,所述網絡設備包括但不限于單個網絡服務器、多個網絡服務器組成的服務器組或基于云計算(CloudComputing)的由大量主機或網絡服務器構成的云,其中,云計算是分布式計算的一種,由一群松散耦合的計算機集組成的一個超級虛擬計算機。所述用戶設備包括但不限于任何一種可與用戶通過鍵盤、鼠標、遙控器、觸摸板、或聲控設備等方式進行人機交互的電子產品,例如,個人計算機、平板電腦、智能手機、PDA、游戲機、或IPTV等。其中,所述用戶設備及網絡設備所處的網絡包括但不限于互聯網、廣域網、城域網、局域網、VPN網絡等。
[0219]需要說明的是,所述用戶設備、網絡設備以及網絡僅為舉例,其他現有的或今后可能出現的用戶設備、網絡設備以及網絡如可適用于本發明,也應包含在本發明保護范圍以內,并以引用方式包含于此。
[0220]本發明的軟件程序可以通過處理器執行以實現上文所述步驟或功能。同樣地,本發明的軟件程序(包括相關的數據結構)可以被存儲到計算機可讀記錄介質中,例如,RAM存儲器,磁或光驅動器或軟磁盤及類似設備。另外,本發明的一些步驟或功能可采用硬件來實現,例如,作為與處理器配合從而執行各個功能或步驟的電路。
[0221]另外,本發明的一部分可被應用為計算機程序產品,例如計算機程序指令,當其被計算機執行時,通過該計算機的操作,可以調用或提供根據本發明的方法和/或技術方案。而調用本發明的方法的程序指令,可能被存儲在固定的或可移動的記錄介質中,和/或通過廣播或其他信號承載媒體中的數據流而被傳輸,和/或被存儲在根據所述程序指令運行的計算機設備的工作存儲器中。在此,根據本發明的一個實施例包括一個裝置,該裝置包括用于存儲計算機程序指令的存儲器和用于執行程序指令的處理器,其中,當該計算機程序指令被該處理器執行時,觸發該裝置運行基于前述根據本發明的多個實施例的方法和/或技術方案。
[0222]對于本領域技術人員而言,顯然本發明不限于上述示范性實施例的細節,而且在不背離本發明的精神或基本特征的情況下,能夠以其他的具體形式實現本發明。因此,無論從哪一點來看,均應將實施例看作是示范性的,而且是非限制性的,本發明的范圍由所附權利要求而不是上述說明限定,因此旨在將落在權利要求的等同要件的含義和范圍內的所有變化涵括在本發明內。不應將權利要求中的任何附圖標記視為限制所涉及的權利要求。此夕卜,顯然“包括”一詞不排除其他單元或步驟,單數不排除復數。系統權利要求中陳述的多個單元或裝置也可以由一個單元或裝置通過軟件或者硬件來實現。第一,第二等詞語用來表示名稱,而并不表示任何特定的順序。
[0223]雖然前面特別示出并且描述了示例性實施例,但是本領域技術人員將會理解的是,在不背離權利要求書的精神和范圍的情況下,在其形式和細節方面可以有所變化。這里所尋求的保護在所附權利要求書中做了闡述。
【主權項】
1.一種基于SM2的電子簽名生成方法,其特征在于,所述方法包括: 獲取基于用戶為生成電子簽名輸入的口令的、特定于用戶的用戶因子; 獲取隨機因子; 獲取用戶輸入口令的移動設備上的、特定于移動設備的設備因子; 基于所述用戶因子、隨機因子、設備因子,經基于分段模特性的SM2算法,生成電子簽名,其中基于分段模特性的SM2算法是保證用戶因子、隨機因子、設備因子中任何一項不同,電子簽名都不同的算法。2.根據權利要求1所述的方法,其特征在于,在經基于分段模特性的SM2算法生成電子簽名的步驟之前,所述方法還包括:獲取用于對電子簽名進行加擾的干擾因子; 在經基于分段模特性的SM2算法生成電子簽名的步驟之后,所述方法還包括:利用獲取的干擾因子對生成的電子簽名進行加擾,生成加擾后的電子簽名。3.根據權利要求2所述的方法,其特征在于,在生成加擾后的電子簽名之后,所述方法還包括: 向分布式密鑰機發送加擾后的電子簽名。4.根據權利要求1所述的方法,其特征在于,所述獲取基于用戶為生成電子簽名輸入的口令的、特定于用戶的用戶因子的步驟包括: 獲取用戶輸入的口令; 將獲取的口令輸入用戶因子生成算法,得到特定于用戶的用戶因子,其中所述用戶因子生成算法是保證輸入的口令不同,產生的用戶因子都不同的算法。5.根據權利要求1所述的方法,其特征在于,所述獲取隨機因子的步驟包括: 接收分布式密鑰機發送的硬件隨機數; 在本地產生本地隨機數; 將所述硬件隨機數與所述本地隨機數合成,得到隨機因子。6.根據權利要求1所述的方法,其特征在于,所述基于分段模特性的SM2算法包括迭代算法。7.根據權利要求2所述的方法,其特征在于,所述獲取用于對電子簽名進行加擾的干擾因子的步驟包括: 接收分布式密鑰機發送的干擾公鑰; 根據所述干擾公鑰確定干擾因子。8.一種基于SM2的電子簽名處理方法,其特征在于,所述方法包括: 從移動設備盾插件接收移動設備盾插件生成的電子簽名,其中所述電子簽名在從移動設備盾插件端基于用戶為生成電子簽名輸入的口令的特定于用戶的用戶因子、隨機因子、用戶輸入口令的移動設備上的特定于移動設備的設備因子,經基于分段模特性的SM2算法生成,并利用獲取的用于對電子簽名進行加擾的干擾因子進行加擾; 對所述電子簽名進行解擾; 將解擾后的電子簽名發送給認證平臺。9.根據權利要求8所述的方法,其特征在于,在干擾因子是基于發送到移動設備盾插件的干擾公鑰確定出的情況下,所述對所述電子簽名進行解擾的步驟包括: 用干擾私鑰對電子簽名進行解擾。10.一種基于SM2的待驗證電子簽名驗證方法,其特征在于,所述方法包括: 獲取基于用戶為驗證電子簽名生成的口令的、特定于用戶的用戶因子; 獲取在本地存儲的、在生成電子簽名時本地產生的隨機因子; 獲取用戶輸入口令的移動設備上的、特定于移動設備的設備因子; 基于所述用戶因子、隨機因子、設備因子,經基于分段模特性的SM2算法,生成待驗證電子簽名,其中基于分段模特性的SM2算法是生成電子簽名時采用的基于分段模特性的SM2算法; 向分布式密鑰機發送待驗證電子簽名,以便轉發到認證平臺與電子簽名對應的公鑰驗證結果進行比對驗證。11.根據權利要求10所述的方法,其特征在于,在經基于分段模特性的SM2算法生成待驗證電子簽名的步驟之前,所述方法還包括:獲取用于對待驗證電子簽名進行加擾的干擾因子; 在經基于分段模特性的SM2算法生成待驗證電子簽名的步驟之后,所述方法還包括:利用獲取的干擾因子對生成的待驗證電子簽名進行加擾,生成加擾后的待驗證電子簽名。12.根據權利要求11所述的方法,其特征在于,所述向分布式密鑰機發送待驗證電子簽名,以便轉發到認證平臺與電子簽名對應的公鑰驗證結果進行比對驗證的步驟包括: 向分布式密鑰機發送加擾后的待驗證電子簽名,以便分布式密鑰機解擾后轉發到認證平臺與公鑰驗證結果進行比對驗證。13.一種基于SM2的待驗證電子簽名驗證方法,其特征在于,所述方法包括: 從移動設備盾插件接收待驗證電子簽名,所述待驗證電子簽名是按照基于用戶為驗證電子簽名生成的口令的、特定于用戶的用戶因子、在本地存儲的、在生成電子簽名時本地產生的隨機因子、用戶輸入口令的移動設備上的、特定于移動設備的設備因子,經基于分段模特性的SM2算法生成,并利用獲取的用于對待驗證電子簽名進行加擾的干擾因子進行加擾,其中基于分段模特性的SM2算法是生成電子簽名時采用的基于分段模特性的SM2算法; 對所述待驗證電子簽名進行解擾; 將解擾后的待驗證電子簽名發送給認證平臺,以便與電子簽名對應的公鑰驗證結果進行比對驗證。14.根據權利要求13所述的方法,其特征在于,在干擾因子是基于發送到移動設備盾插件的干擾公鑰確定出的情況下,所述對所述待驗證電子簽名進行解擾的步驟包括: 用干擾私鑰對待驗證電子簽名進行解擾。15.一種基于SM2的電子簽名生成設備,其特征在于,所述設備包括: 用于獲取基于用戶為生成電子簽名輸入的口令的、特定于用戶的用戶因子的裝置; 用于獲取隨機因子的裝置; 用于獲取用戶輸入口令的移動設備上的、特定于移動設備的設備因子的裝置; 用于基于所述用戶因子、隨機因子、設備因子,經基于分段模特性的SM2算法,生成電子簽名的裝置,其中基于分段模特性的SM2算法是保證用戶因子、隨機因子、設備因子中任何一項不同,電子簽名都不同的算法。16.根據權利要求15所述的設備,其特征在于,所述設備還包括: 用于在經基于分段模特性的SM2算法生成電子簽名之前,獲取用于對電子簽名進行加擾的干擾因子的裝置; 用于在經基于分段模特性的SM2算法生成電子簽名之后,利用獲取的干擾因子對生成的電子簽名進行加擾,生成加擾后的電子簽名的裝置。17.根據權利要求15所述的設備,其特征在于,所述設備還包括: 用于向分布式密鑰機發送加擾后的電子簽名的裝置。18.根據權利要求15所述的設備,其特征在于,所述獲取基于用戶為生成電子簽名輸入的口令的、特定于用戶的用戶因子的裝置用于: 獲取用戶輸入的口令; 將獲取的口令輸入用戶因子生成算法,得到特定于用戶的用戶因子,其中所述用戶因子生成算法是保證輸入的口令不同,產生的用戶因子都不同的算法。19.根據權利要求15所述的設備,其特征在于,所述獲取隨機因子的裝置用于: 接收分布式密鑰機發送的硬件隨機數; 在本地產生本地隨機數; 將所述硬件隨機數與所述本地隨機數合成,得到隨機因子。20.根據權利要求15所述的設備,其特征在于,所述基于分段模特性的SM2算法包括迭代算法。21.根據權利要求16所述的設備,其特征在于,所述獲取用于對電子簽名進行加擾的干擾因子的裝置用于: 接收分布式密鑰機發送的干擾公鑰; 根據所述干擾公鑰確定干擾因子。22.一種基于SM2的電子簽名處理設備,其特征在于,所述設備包括: 用于從移動設備盾插件接收移動設備盾插件生成的電子簽名的裝置,其中所述電子簽名在從移動設備盾插件端基于用戶為生成電子簽名輸入的口令的特定于用戶的用戶因子、隨機因子、用戶輸入口令的移動設備上的特定于移動設備的設備因子,經基于分段模特性的SM2算法生成,并利用獲取的用于對電子簽名進行加擾的干擾因子進行加擾; 用于對所述電子簽名進行解擾的裝置; 用于將解擾后的電子簽名發送給認證平臺的裝置。23.根據權利要求22所述的設備,其特征在于,在干擾因子是基于發送到移動設備盾插件的干擾公鑰確定出的情況下,所述對所述電子簽名進行解擾的裝置用于: 用干擾私鑰對電子簽名進行解擾。24.一種基于SM2的待驗證電子簽名驗證設備,其特征在于,所述設備包括: 用于獲取基于用戶為驗證電子簽名生成的口令的、特定于用戶的用戶因子的裝置; 用于獲取在本地存儲的、在生成電子簽名時本地產生的隨機因子的裝置; 用于獲取用戶輸入口令的移動設備上的、特定于移動設備的設備因子的裝置; 用于基于所述用戶因子、隨機因子、設備因子,經基于分段模特性的SM2算法,生成待驗證電子簽名的裝置,其中基于分段模特性的SM2算法是生成電子簽名時采用的基于分段模特性的SM2算法; 用于向分布式密鑰機發送待驗證電子簽名,以便轉發到認證平臺與電子簽名對應的公鑰驗證結果進行比對驗證的裝置。25.根據權利要求24所述的設備,其特征在于,所述設備還包括: 用于在經基于分段模特性的SM2算法生成待驗證電子簽名之前,獲取用于對待驗證電子簽名進行加擾的干擾因子的裝置; 用于在經基于分段模特性的SM2算法生成待驗證電子簽名之后,利用獲取的干擾因子對生成的待驗證電子簽名進行加擾,生成加擾后的待驗證電子簽名的裝置。26.根據權利要求25所述的設備,其特征在于,所述向分布式密鑰機發送待驗證電子簽名,以便轉發到認證平臺與電子簽名對應的公鑰驗證結果進行比對驗證的裝置用于: 向分布式密鑰機發送加擾后的待驗證電子簽名,以便分布式密鑰機解擾后轉發到認證平臺與公鑰驗證結果進行比對驗證。27.一種基于SM2的待驗證電子簽名驗證設備,其特征在于,所述設備包括: 用于從移動設備盾插件接收待驗證電子簽名的裝置,所述待驗證電子簽名是按照基于用戶為驗證電子簽名生成的口令的、特定于用戶的用戶因子、在本地存儲的、在生成電子簽名時本地產生的隨機因子、用戶輸入口令的移動設備上的、特定于移動設備的設備因子,經基于分段模特性的SM2算法生成,并利用獲取的用于對待驗證電子簽名進行加擾的干擾因子進行加擾,其中基于分段模特性的SM2算法是生成電子簽名時采用的基于分段模特性的SM2算法; 用于對所述待驗證電子簽名進行解擾的裝置; 用于將解擾后的待驗證電子簽名發送給認證平臺,以便與電子簽名對應的公鑰驗證結果進行比對驗證的裝置。28.根據權利要求27所述的設備,其特征在于,所述對所述待驗證電子簽名進行解擾的裝置用于:在干擾因子是基于發送到移動設備盾插件的干擾公鑰確定出的情況下,用干擾私鑰對待驗證電子簽名進行解擾。
【文檔編號】H04L9/08GK105933116SQ201610480445
【公開日】2016年9月7日
【申請日】2016年6月27日
【發明人】呂文華, 宛海加, 紐曉惠
【申請人】收付寶科技有限公司