新四季網

一種基於標識的橢圓曲線密碼系統的製作方法

2023-08-11 00:38:46

一種基於標識的橢圓曲線密碼系統的製作方法
【專利摘要】本發明涉及一種基於標識的橢圓曲線密碼系統,所述系統包括偽公鑰、偽數字證書、ECC密鑰生成系統、偽數字證書籤發系統、偽數字證書籤發客戶端、密碼模塊、密碼應用程式。所述密碼系統通過將對應一個身份標識的偽公鑰與密碼模塊中對應同一身份標識的ECC公鑰組和ECC私鑰組相對應,從而將使用偽公鑰的密碼運算自動轉化成使用對應ECC公鑰組中相應公鑰的運算;將使用偽公鑰對應私鑰的密碼運算自動轉化成使用對應ECC私鑰組中對應私鑰的運算;且在沒有對應ECC公鑰或私鑰時,由密碼模塊自動獲取對應的ECC公鑰或私鑰。本發明的系統具有IBC的部分特點,但密碼算法比IBC簡單,且易於得到客戶端密碼硬體的支持,並能減少密鑰更新過程中用戶的幹預。
【專利說明】—種基於標識的橢圓曲線密碼系統【技術領域】
[0001]本發明屬於信息安全【技術領域】,是一種具有IBCXIdentity Based Cryptography)部分特點的基於標識的的橢圓曲線密碼系統。
【背景技術】
[0002]在非對稱密鑰密碼體制(Asymmetric Key Cryptography)中,採用兩個不同但相互關聯的密鑰(密鑰對),其中一個可公開,稱為公鑰(Public Key),用於數據加密或籤名驗證,另一不公開,稱為私鑰(Private Key),用於數據解密或數字籤名,私鑰須由密鑰對的擁有者安全保管。由於一個密鑰可公開,因此,非對稱密鑰密碼體制又稱為公開密鑰密碼體制(Public Key Cryptography),其中的密鑰對又稱為公開密鑰對。相應地,非對稱密鑰密碼體制中的密碼算法稱為非對稱密鑰密碼算法或公開密鑰密碼算法。目前獲得廣泛應用的公開密鑰密碼算法包括以三個發明人Rivest, Shamir和Adleman命名的RSA算法,以及DSA(Digital Signature Algorithm)算法等;而 ECC (Elliptic CurveCryptography)捕圓曲線密碼算法也是最近幾年獲得重視並逐步獲得應用的公開密鑰密碼算法。
[0003]相對於數據加密方和解密方使用同一個密鑰的對稱密鑰密碼體制,公開密鑰密碼算法具有密鑰分發容易(公鑰可公開發布)的優點,但其也存在算法實現較複雜、運算速度較慢的缺點。故此,在數據加密應用中,通常將二者結合起來使用:使用隨機生成的對稱密鑰和對稱密鑰密碼算法對數據加密,然後使用數據解密方的公鑰、應用公開密鑰密碼算法對隨機產生的對稱密鑰加密,之後將加密的數據和對稱密鑰一起傳遞給數據解密方;數據解密方接收到加密後的數據和對稱密鑰後,先用自己的私鑰解密加密的對稱密鑰,然後用解密後的對稱密鑰解密數據。
[0004]在公開密鑰密碼體制中,一方要向另一方發送加密數據,必須事先獲得對方的公鑰,因此,公鑰的擁有者(即加密數據的接收者)需通過一定的安全途徑發布其公鑰(防止攻擊者假冒他人發布公鑰),以使得其他人(或實體)能夠使用其公鑰向其發送加密數據。為了解決這一問題,人們提出了公開密鑰基礎設施(Public Key Infrastructure, PKI)安全技術體系。在PKI體系中,由一個數字證書認證中心(Certification Authority,CA)作為可信的第三方籤發數字證書(Digital Certificate)來進行用戶(實體)公鑰的發布(如通過LDAP 目錄服務,Lightweight Directory Access Protocol)。CA籤發的數字證書除了包含證書持有人的公鑰外,還包含有證書持有人的其他身份信息,如姓名、所屬組織、電子郵件地址等。這樣,在PKI體系中,一方要向另一方發送加密數據,發送者需先通過一定的途徑,如從CA的公開證書目錄服務(LDAP),獲取接收者的(加密)數字證書,然後從數字證書中提取接收者的公鑰。
`[0005]在PKI體系中,要發送加密數據,必須事先獲取接收方的(加密)數字證書,這對於許多普通用戶來說不是一件容易的事,這也是PKI技術體系在實際應用中存在的一個比較突出的問題,為了解決這一問題,人們提出了基於身份標識的密碼體制(Identity BasedCryptography, IBC)(也稱基於標識的密碼體制)。在IBC中,一個實體(如人)的一個身份標識就構成了一個公鑰(IBC公鑰),用於數據加密或籤名驗證,並對應一個私鑰(IBC私鑰),用於數據解密或數字籤名。身份標識對應的私鑰是由一個稱為私鑰生成器(Private KeyGenerator, PKG)的一個IBE密鑰伺服器產生的。嚴格地說,IBC公鑰是由一個身份標識和一組IBC公開參數所組成,而IBC私鑰是由一個身份標識對應的私密數據和一組IBC公開參數所組成。IBC用於數據加密稱為IBE (Identity Based Cryptography,基於身份標識的加密);IBC用於數字籤名稱為IBS (Identity Based Signature)。但是,有時候人們把IBE與IBC等同(IBE同時包括加密與籤名,因為籤名、籤名驗證同樣可看作一種加密、解密運算)。
[0006]使用IBC進行數據加密時,數據加密方無需事先獲得數據解密方的數字證書或公鑰,只需事先知道唯一標識對方身份的一個標識(如身份證號、電子郵件地址等),然後基於這個身份識別結合一組公開參數就可以進行數據加密(通常是先用隨機產生的對稱密鑰加密數據,然後用IBE公鑰加密隨機產生的對稱密鑰)。由於無需事先獲得數據解密方的數字證書或公鑰,這就大大提供了數據加密的易用性、方便性。進一步,除了易用性外,與PKI/CA相比,IBC具有如下有點:
[0007]I)密鑰管理與服務系統要簡單很多,只需一個用戶和標識管理系統加上一個PKG即可;
[0008]2)由於用戶的IBC私鑰是由PKG動態計算出來的,在用戶私鑰丟失時可方便地為用戶(在線)恢復私鑰,不像PKI/CA需要一個複雜的KMC (Key Management Center)系統為所有用戶生成、保存並恢復加密數字證書的私鑰(密鑰對),其中保存大量的用戶私鑰增加了系統的複雜性,以及增加了對系統安全性、可靠性的要求。
[0009]IBC還可以與各種身份標識或密鑰限定策略結合使用,形成各種基於策略(PolicyBased)的數據加密(或籤名),其中最常用的是將一個身份標識與一個時間段限定策略結合(時間策略),形成一個如下所示的擴展身份標識:
[0010]〈身份標識>I〈時間段〉,
[0011]這裡, 指身份標識對應的字串, 指相應時間段信息的字串(如用2013-8-28:2013-9-28,表示時間段2013年8月28日到2013年9月28,但這種表示不是唯一的,可根據需要約定),「 I I」表示身份標識字串和時間段字串的組合(可以是簡單的字串連接、合併,或者其他約定的組合方式,只要能唯一區分、表示擴展身份標識即可),時間段既可以是一個時間區間,也可以是一個時刻(起止時間相同)。擴展身份標識被當作一個通常的身份標識對應有一個IBC私鑰,並用於密碼運算。增加了時間段的擴展身份標識及其對應的私鑰僅在一段時間內使用,這相當於用時間段對身份標識及其私鑰的使用進行了限定(限定身份標識和/或其私鑰僅在對應的時間段使用和有效)。通過時間段限定的擴展身份標識所對應的私鑰一旦被洩露,則僅會對相應時間段內的密碼數據造成影響。時間段的長短可根據安全要求結合使用方便性綜合考慮,如可以按年、月、周、日更新。
[0012]除了採用時間段對身份標識的使用進行限定外,還可以增加其他的限定策略對標識的使用加以限定,如,
[0013] 11〈角色> 11〈時間段>,
[0014]這裡,〈角色 > 是角色的字串表示,即限定只有擁有對應角色的用戶才能使用擴展身份標識對應的私鑰對加密數據進行解密,或者對數據進行數字籤名。[0015]需指出的是,在IBC的實際密碼運算中,並不是使用身份標識字串本身參與運算,而是使用身份標識的散列值=HASH (〈身份標識 >),這裡HASH (…)表示散列值計算。
[0016]加了限定策略後,參與密碼運算的是擴展身份標識,這時,參與運算的散列值有兩種計算方式,一是採用如下的先拼接擴展身份標識,再計算散列值的方式:
[0017]HASH ( I I〈時間段 >),或者,
[0018]HASH ( I I〈角色> I I〈時間段? ;
[0019]二是採用如下先計算散列值,然後拼接,再計算散列值的方式:
[0020]HASH (HASH | HASH ),或者,
[0021]HASH (HASH (〈身份標識 >)I HASH (〈角色 >)| HASH (〈時間段 >))。
[0022]IBC有很多獨特的優點,其中最突出的是改善用戶公鑰數據加密的易用性、方便性,但IBC應用也存在一定的問題,具體如下:
[0023]I)目前缺少統一的 密碼算法國際標準,導致缺少統一的IBC密碼產品認證標準,這樣妨礙了密碼設備的研製生產、銷售和使用;
[0024]2)沒有應用層的統一的標準(國際或工業標準),導致缺少應用支持,目前幾乎所有的主流標準應用都不支持IBC ;
[0025]3)由於相對普通的公開密鑰密碼算法,IBC的密碼運算多了複雜的配對運算,密碼運算量比較大,若在密碼硬體中進行密碼運算,則對密碼硬體的要求比較高,因此,目前還沒有像RSA、ECC那樣的進行客戶端密碼運算的合適的客戶端密碼硬體(如USB Key),目前的IBC USB Key基本上是不進行密碼運算的密鑰存儲Key。
[0026]ECC (Elliptic Curve Cryptography)橢圓曲線密碼算法是最近幾年獲得重視並逐步獲得應用的公開密鑰密碼算法,與目前仍然廣泛使用的RSA密碼算法相比,ECC具有密鑰長度短、運算量小等特點,已有相應的國際、國家、工業標準以及相應密碼產品認證規範,以及客戶端密碼硬體(如支持ECC的USB KeyXECC密碼算法是基於有限域(finite field)上的橢圓曲線的點所構成的加法群(Group)來實現密碼運算。在ECC中,首先選定一條橢圓曲線,包括曲線格式、域(field)和曲線係數,並選定橢圓曲線上的一個稱為基點(basepoint)的公共點計算G,選定的橢圓曲線的格式、域、係數以及基點G構成了 ECC的系統參數(System Parameters), ECC系統參數是可公開的(也稱為ECC公開參數);在選定了 ECC系統參數後,一個用戶ECC私鑰是一個隨機生成的整數d,其中d小於G的階(Order) (G的階是一個大素數);d對應的公鑰是P=dG,其中dG是橢圓曲線上的點構成的加法群(group)中的倍乘(即d個G的累加和);(d,P)即構成了用戶的ECC密鑰對。
[0027]實際上,在ECC密碼體制中,也可以通過將一個擴展身份標識與一個ECC私鑰或密鑰對相對應,使之具有IBC的部分性質,有關方案如下:
[0028]由一個密鑰生成系統通過一個秘密的種子數據(如隨機字串)與一個擴展身份標識通過運算(如合併後的散列運算)得到一個ECC私鑰,並進而得到一個擴展身份標識對應的ECC公鑰或密鑰對;擴展身份標識中的限定策略用於限定ECC私鑰的生成、使用;
[0029]一個身份標識的擁有者可從密鑰生成系統獲取其擴展身份標識對應的ECC私鑰或密鑰對;一個ECC公鑰的信賴方,可從密鑰生成系統獲取其他個用戶擴展身份標識對應的ECC公鑰。
[0030]本發明的基於標識的橢圓曲線密碼系統是在以上方案的基礎上實現的。
【發明內容】

[0031]本發明的目的是主要針對企業、機構內部的應用,提出一種採用ECC橢圓曲線密碼算法,具有IBC密碼系統的部分特點,包括將一個ECC密鑰對與一個(擴展)身份標識相對應,通過限定策略限定對應ECC密鑰對的使用,由密碼服務系統根據用戶(擴展)身份標識計算生成或恢復對應的ECC私鑰或密鑰對,以及無需集中存儲用戶私鑰等特點的基於標識的橢圓曲線密碼系統。
[0032]為了實現上述目的,本發明所採用的技術方案是:
[0033]一種基於標識的橢圓曲線密碼系統,所述密碼系統包括如下組件或數據:
[0034]偽公鑰:一種公鑰數據結構,存放的不是數據結構標識的或約定的公開密鑰密碼算法的公鑰數據,而是身份標識信息及ECC系統參數信息;所述身份標識信息指身份標識字串本身或其散列值,所述ECC系統參數信息包括ECC密碼運算所採用的橢圓曲線格式、域、係數及基點的指示信息(如通過一個URL或版本號指示),即ECC系統參數的指示信息;一個所述偽公鑰對應一個身份標識及其所有擴展身份標識;(比如一個公鑰數據結構原本標識或約定是用來存放RSA或ECC公鑰數據的,但實際上存放的不是RSA或ECC公鑰的密鑰數據,而是身份標識信息及ECC系統參數信息)
[0035]偽數字證書:一種X509格式的數字證書,數字證書上的證書持有者(主題名對應的實體)的公鑰不是數字證書上所指示的公開密鑰密碼算法(如RSA或ECC)的公鑰,而是證書持有者的身份標識所對應的偽公鑰;一張偽數字證書及其偽公鑰與證書持有者的身份標識及其所有擴展的身份標識相對應;所述偽數字證書的有效期長度及起始、終止時間的設定沒有限定要求,只要超過偽數字證書所對應的身份標識的所有擴展身份標識所對應的ECC私鑰或密鑰對的使用期限即可(通常將有效期設置得很長,如50年,而將起始、終止時間固定);
[0036]ECC密鑰生成系統:通過計算得到一個擴展身份標識對應的ECC公鑰、ECC私鑰或ECC密鑰對的系統;所述ECC密鑰生成系統設置有隨機生成的用於ECC私鑰生成計算的種子數據;
[0037]偽數字證書籤發系統:生成並籤發一個身份標識所對應的偽數字證書的系統;
[0038]偽數字證書籤發客戶端:供用戶使用,用於從偽數字證書籤發系統獲取用戶身份標識所對應的偽數字證書的用戶端軟體程序;
[0039]密碼模塊:提供密鑰操作與密碼運算功能的軟體組件或軟硬體組合,所述密鑰操作包括密鑰生成、導入、導出和刪除,所述密碼運算包括加密和解密,籤名和籤名驗證;所述密碼模塊通過密碼接口對外提供密鑰操作與密碼運算功能的調用;
[0040]密碼應用程式:調用密碼模塊進行密鑰操作(包括公鑰、私鑰或密鑰對的密鑰操作),包括生成、導出、導入和刪除,以及調用密碼模塊使用公鑰或私鑰進行加密或解密,籤名驗證或數字籤名密碼運算的軟體程序;
[0041]所述密碼模塊在存儲介質中為用戶或密碼應用程式使用的每一個身份標識維護一個存放ECC公鑰組的密鑰對象,稱為ECC公鑰組密鑰對象;所述ECC公鑰組密鑰對象的ECC公鑰組中存放有一系列由同一個身份標識的擴展身份標識所生成的ECC公鑰;一個所述ECC公鑰組及其密鑰對象與一個對應相同身份標識的偽公鑰和偽數字證書相對應;所述ECC公鑰組密鑰對象作為一個密鑰對象用一個密鑰對象標識符(Key Object Identifier)標識;
[0042]當所述密碼模塊在存儲介質中創建一個偽公鑰的密鑰對象時,將所創建的偽公鑰密鑰對象關聯到對應的具有相同身份標識的ECC公鑰組的密鑰對象;密碼應用程式通過使用偽公鑰的密鑰對象使用偽公鑰對應的ECC公鑰組密鑰對象的ECC公鑰組中的ECC公鑰進行密碼運算,包括數據加密和籤名驗證;所述密碼模塊所創建的偽公鑰的密鑰對象稱為偽公鑰密鑰對象;
[0043]所述密碼模塊在存儲介質中為用戶或密碼應用程式使用的每一個身份標識維護一個存放ECC私鑰組或密鑰對組的密鑰對象,稱為ECC私鑰組或密鑰對組密鑰對象;所述ECC私鑰組或密鑰對組密鑰對象的ECC私鑰組或密鑰對組中存放有一系列由同一個身份標識的一個擴展身份標識所生成的ECC私鑰或公鑰對;一個所述ECC私鑰組或密鑰對組及其密鑰對象與一個對應相同身份標識的偽公鑰和偽數字證書相對應;一個所述ECC私鑰組或密鑰對組密鑰對象作為一個密鑰對象用一個密鑰對象標識符標識,並通過密鑰對象標識符被當作對應的偽公鑰和偽數字證書的對應私鑰或密鑰對使用(稱為影子私鑰或影子密鑰對);
[0044]所述ECC公鑰組或ECC私鑰組或密鑰對組的密鑰對象數據中,除了保存有每個擴展身份標識對應的ECC公鑰或ECC私鑰或密鑰對外,還保存有對應的身份標識信息以及每個ECC公鑰或ECC私鑰或密鑰對所對應的擴展身份標識信息;
[0045]所述密鑰對象指各種密鑰包括公鑰、私鑰、密鑰對以及對稱密鑰在密碼模塊中的數據存在形式;所述密鑰對象包括存儲在永久存儲介質上(如硬碟、USB Key上)的永久密鑰對象和存儲在臨時存儲介質上(如內存中)的臨時密鑰對象,並分別對應有永久密鑰對象標識符(通常是字串)和臨時密鑰對象標識符(通常是整數,即密鑰對象句柄,簡稱密鑰句柄);
[0046]所述密碼模塊和ECC密鑰生成系統預定或配置有身份標識限定策略;密碼模塊處的身份標識限定策略規定或限定了在數據加密或數字籤名時一個身份標識所對應的擴展身份標識,即規定或限定了在數據加密時所採用的ECC公鑰所對應的擴展身份標識或在數字籤名時所採用的ECC私鑰所對應的擴展身份標識,也即在數據加密或數字籤名時哪一個擴展身份標識所對應的ECC公鑰或ECC私鑰被採用;ECC密鑰生成系統處的身份標識限定策略規定或限定了在生成一個擴展身份標識對應的ECC私鑰時需要滿足的必要條件;所述預定的身份標識限定策略指已編碼在程序中的不能更改的身份標識限定策略;所述配置的身份標識限定策略指可修改、設定的身份標識限定策略;
[0047]所述密碼應用程式按使用公鑰及其對應私鑰或密鑰對的方式使用偽公鑰及其對應的私鑰或密鑰對;
[0048]所述密碼應用程式按使用數字證書及其對應私鑰或密鑰對的方式使用偽數字證書及其對應私鑰或密鑰對(如將證書上的持有者公鑰導入到密碼模塊中用於數據加密或籤名驗證,或通過證書所關聯的私鑰或密鑰對密鑰對象的密鑰對象標識符使用證書持有者的私鑰,用於數據解密或籤名驗證);
[0049]若密碼應用程式不使用數字證書而是直接使用公鑰或私鑰或密鑰對進行數據加密和解密,籤名和籤名驗證,則所述偽數字證書、偽數字證書籤發系統以及偽數字證書籤發客戶端不再存在;[0050]若僅密碼應用程式從所述偽數字證書籤發系統獲取偽數字證書,則所述偽數字證書籤發客戶端不再存在。
[0051]在大部分的密碼模塊實現中都採用了密鑰對象的概念,在不產生歧義的情況下,可將公鑰、私鑰、密鑰對、對稱密鑰與公鑰對象、私鑰對象、密鑰對對象、對稱密鑰對象等同。永久存儲介質上的密鑰對象通常需要裝載到臨時存儲介質中後通過相應的整數密鑰標識符訪問。
[0052]用戶通過如下方式對密碼應用程式的密鑰或數字證書進行配置:
[0053]對於不使用數字證書的密碼應用程式,用戶通過如下方式進行密鑰配置:
[0054]非身份標識的擁有者用戶通過密碼應用程式或其他密鑰配置工具自動或在用戶幹預的情況下,生成身份標識對應的偽公鑰,調用所述密碼模塊的ECC公鑰組生成接口生成身份標識對應的ECC公鑰組的密鑰對象,然後將生成的偽公鑰導入到密碼模塊中,將偽公鑰配置為密碼應用程式所用,包括用於數據加密和籤名驗證;
[0055]身份標識的擁有者用戶通過密碼應用程式或其他密鑰配置工具自動或在用戶幹預的情況下,生成身份標識對應的偽公鑰,調用所述密碼模塊的私鑰或密鑰對生成接口生成身份標識對應的ECC私鑰組或密鑰對組的密鑰對象,然後將生成的偽公鑰和ECC私鑰組或密鑰對組密鑰對象作為配對的公鑰和私鑰配置為密碼應用程式所用,包括用於數據加密和解密,籤名和籤名驗證;
[0056]對於使用數字證書的密碼應用程式,用戶通過如下方式進行數字證書配置:
[0057]非身份標識的擁有者用戶通過偽數字證書籤發客戶端或密碼應用程式,進行如下密鑰及證書生成和配置操作:
[0058]操作Q:調用所述密碼模塊的ECC公鑰組生成接口,生成身份標識對應的ECC公鑰組的密鑰對象;
[0059]操作U:從偽數字證書籤發系統獲取身份標識對應的偽數字證書;
[0060]操作V:將生成的偽數字證書配置為密碼應用程式所用,包括用於數據加密和籤名驗證;
[0061]身份標識的擁有者用戶通過偽數字證書籤發客戶端或密碼應用程式,進行如下密鑰及證書生成和配置操作:
[0062]操作W:調用所述密碼模塊的私鑰或密鑰對密鑰生成接口,生成身份標識對應的ECC私鑰組或密鑰對組的密鑰對象;
[0063]操作X:從偽數字證書籤發系統獲取身份標識對應的偽數字證書;
[0064]操作Y:將操作W得到的密鑰對象與操作X獲取的偽數字證書關聯(如何關聯取決於具體應用的證書使用環境,通常是通過密鑰對象標識符將一個私鑰或密鑰對密鑰對象與一張數字證書關聯),即將操作W生成的ECC私鑰組或密鑰對組密鑰對象作為操作X獲得的偽數字證書的私鑰或密鑰對密鑰對象;
[0065]操作Z:將生成的偽數字證書配置為密碼應用程式所用,包括用於數據加密和解密,籤名和籤名驗證。
[0066]對於偽數字證書籤發客戶端或密碼應用程式針對公鑰或私鑰或密鑰對操作的接口調用,所述密碼模塊針對不同的接口操作調用分別按如下方式進行處理:
[0067]操作調用A:對於生成私鑰或密鑰對的接口調用,在存儲介質中創建一個包括一個空的ECC私鑰組或密鑰對組的密鑰對象,並將通過人機界面獲得的身份標識信息保存在新生成的密鑰對象中,然後將返回的密鑰對象標識符指向新生成的ECC私鑰組或密鑰對組的密鑰對象;或者生成一個偽公鑰的數據結構所標識的或約定的公開密鑰密碼算法的私鑰或密鑰對的密鑰對象,然後將返回的密鑰對象標識符指向新生成的密鑰對象(如,若偽公鑰的數據結構所標識的或約定的算法是RSA,則生成一個RSA私鑰或密鑰對);
[0068]操作調用B:對於生成私鑰組或密鑰對組的接口調用,在存儲介質中創建一個包括一個空的ECC私鑰組或密鑰對組的密鑰對象,並將通過調用接口或人機界面獲得的身份標識信息保存在新生成的密鑰對象中,然後將返回的密鑰對象標識符指向新生成的ECC私鑰組或密鑰對組的密鑰對象;
[0069]操作調用C:對於生成ECC公鑰組的接口調用,在存儲介質中創建一個包括一個空的ECC公鑰組的密鑰對象,並將通過調用接口或人機界面獲得的身份標識信息保存在新生成的密鑰對象中,然後將返回的密鑰對象標識符指向新生成的ECC公鑰組的密鑰對象;
[0070]操作調用D:對於使用ECC私鑰組或密鑰對組密鑰對象的密鑰對象標識符導出私鑰或密鑰對的接口調用,返回出錯;
[0071]操作調用E:對於使用ECC私鑰組或密鑰對組密鑰對象的密鑰對象標識符導出ECC私鑰組或密鑰對組的接口調用,返回密鑰對象標識符指向的密鑰對象的ECC私鑰組或密鑰對組中所有ECC私鑰或密鑰對,以及對應的身份標識和擴展身份標識信息;
[0072]操作調用F:對於使用ECC公鑰組密鑰對象的密鑰對象標識符導出ECC公鑰組的接口調用,返回密鑰對象標識符指向的密鑰對象的ECC公鑰組中所有ECC公鑰,以及對應的身份標識和擴展身份標識信息;
[0073]操作調用G:對於使用ECC私鑰組或密鑰對組密鑰對象的密鑰對象標識符導出公鑰的接口調用,從密鑰對象標識符指向的密鑰對象中獲取對應的身份標識,生成身份標識對應的偽公鑰,然後返回生成的偽公鑰;
[0074]操作調用H:對於導入ECC公鑰組的接口調用,在存儲介質中創建一個ECC公鑰組的密鑰對象,並將通過調用接口輸入的要導入的ECC公鑰組中的所有ECC公鑰以及對應的身份標識和擴展身份標識信息加入到新創建的密鑰對象中,然後將返回的密鑰對象標識符指向新生成的ECC公鑰組密鑰對象;
[0075]操作調用1:對於導入ECC私鑰組或密鑰對組的接口調用,在存儲介質中創建一個ECC私鑰組或密鑰對組的密鑰對象,並將通過調用接口輸入的要導入的ECC私鑰組或密鑰對組中的所有ECC私鑰或密鑰對以及對應的身份標識和擴展身份標識信息加入到新創建的密鑰對象中,然後將返回的密鑰對象標識符指向新生成的ECC私鑰組或密鑰對組的密鑰對象;
[0076]操作調用J:對於使用ECC私鑰組或密鑰對組的密鑰對象的密鑰對象標識符刪除私鑰或密鑰對密鑰對象的接口調用,在存儲介質中清除對象標識符所指的密鑰對象;
[0077]操作調用K:對於使用ECC公鑰組的密鑰對象的密鑰對象標識符刪除公鑰組的接口調用,在存儲介質中清除密鑰對象標識符所指的密鑰對象;
[0078]操作調用L:對於導入公鑰的接口調用,檢查導入的公鑰是否是偽公鑰,如果不是,則按導入正常的公鑰(即非偽公鑰)的方式完成導入公鑰的處理;否則,按如下方式處理:[0079]步驟L1:在存儲介質中創建一個偽公鑰的密鑰對象,將要導入的偽公鑰保存在創建的偽公鑰密鑰對象中;
[0080]步驟L2:從偽公鑰中獲取身份標識信息;
[0081]步驟L3:查看存儲介質中是否已有身份標識對應的ECC公鑰組密鑰對象,若是,則將步驟LI創建的偽公鑰的密鑰對象與對應的ECC公鑰組密鑰對象相關聯(如將ECC公鑰組密鑰對象的密鑰對象標識符保存在創建的偽公鑰密鑰對象中),並將返回的密鑰對象標識符指向創建的偽公鑰的密鑰對象,完成偽公鑰的導入處理;否則,返回出錯;
[0082]操作調用M:對於使用偽公鑰密鑰對象的密鑰對象標識符導出公鑰的接口調用,導出密鑰對象標識符指向的偽公鑰密鑰對象中的偽公鑰;
[0083]操作調用N:對於使用偽公鑰密鑰對象的密鑰對象標識符刪除公鑰密鑰對象的接口調用,在存儲介質中清除密鑰對象標識符所指的偽公鑰密鑰對象;
[0084]執行所述操作調用A是生成一個ECC私鑰組或密鑰對組的密鑰對象,還是生成一個偽公鑰的數據結構所標識的或約定的公開密鑰密碼算法的私鑰或密鑰對的密鑰對象,由用戶通過人機界面選擇決定,或者由所述密碼模塊的配置信息決定,或者由密碼模塊程序固定設定。
[0085]操作調用A和操作調用B是兩種不同的接口調用(操作調用A通常是標準的接口調用,而操作調用B是額外定義的接口調用);同樣地,操作調用D和操作調用F是兩種不同的接口調用(操作調用D通常是標準的接口調用,而操作調用F是額外定義的接口調用)。
[0086]以上針對密鑰的操作,或者是針對永久存儲介質上的密鑰的操作,或者是針對臨時存儲介質上的密鑰的操作;永久存儲介質上(如硬碟)的密鑰通常需要裝載到臨時存儲介質中(如內存中)才能使用,這與具體實施有關。另外,在密碼模塊的具體實施中,除了以上所述針對公鑰、私鑰或密鑰對的操作外,還需要實施針對其他密鑰對象(如對稱密鑰)的密鑰操作。
[0087]對於密碼應用程式使用偽公鑰密鑰對象的密鑰對象標識符調用所述密碼模塊進行數據加密的操作(通常是對隨機對稱密鑰加密),所述密碼模塊按如下方式進行處理:
[0088]第I步:從密鑰對象標識符所指的偽公鑰密鑰對象中獲取對應的身份標識,用獲取的身份標識生成一個與預定或配置的身份標識限定策略相對應的擴展身份標識;
[0089]第2步:查看密鑰對象標識符指向的偽公鑰密鑰對象所關聯的ECC公鑰組密鑰對象的ECC公鑰組中是否有第I步生成的擴展身份標識對應的ECC公鑰,若沒有,轉入第3步;若有,則使用對應的ECC公鑰對數據進行加密,並將當前使用的ECC公鑰對應的擴展身份標識的信息作為附加數據或填充數據附加或填充到被加密的數據中,完成處理後返回結果;
[0090]第3步:使用第I步生成的擴展身份標識從ECC密鑰生成系統請求獲取擴展身份標識對應的ECC公鑰;
[0091]第4步:將獲得的ECC公鑰及對應的擴展身份標識及加入到當前使用的偽公鑰密鑰對象所關聯的ECC公鑰組密鑰對象的ECC公鑰組中;
[0092]第5步:使用獲得的ECC公鑰對數據進行加密,並將當前使用的ECC公鑰對應的擴展身份標識的信息作為附加數據或填充數據附加或填充到被加密的數據中,完成處理後返回結果;
[0093]所述第2步或第5步中將當前使用的ECC公鑰對應的擴展身份標識的信息作為附加數據或填充數據附加或填充到被加密的數據中的操作處理,是指將擴展身份標識信息加入到經ECC公鑰密碼運算後的數據本身中,而不是作為加密密鑰的密鑰標識信息或密鑰標識信息的一部分放入到加密數據信封的接收者信息中(如RFC5652,CryptographicMessageSyntax (CMS)的 EnvelopedData 數據信封的 RecipientInfo 中)。
[0094]實際上,通常ECC公鑰是用於加密隨機產生的對稱密鑰,因此,通常情況下擴展身份標識的信息是附加或填充入到被加密的隨機對稱密鑰數據中。
[0095]如何在一個身份標識的基礎上生成一個與預定或配置的身份標識限定策略相對應的擴展身份標識,與具體的策略有關,與具體的策略實施方案有關。
[0096]對於密碼應用程式使用ECC私鑰組或密鑰對組密鑰對象的密鑰對象標識符調用所述密碼模塊進行數據解密的操作,所述密碼模塊按如下方式進行處理:
[0097]第A步:通過加密數據的附加數據或填充數據獲得數據加密時所用ECC公鑰的對應擴展身份標識;
[0098]第B步:查看密鑰對象標識符指向的密鑰對象的ECC私鑰組或密鑰對組中是否有第A步獲得的擴展身份標識對應的ECC私鑰或密鑰對,若沒有,轉入第C步;若有,則使用對應的ECC私鑰或密鑰對解密加密的數據,完成處理後返回結果;
[0099]第C步:使用第A步獲得的擴展身份標識從ECC密鑰生成系統請求獲取擴展身份標識對應的ECC私鑰或密鑰對;
[0100]第D步:將獲得的ECC私鑰或密鑰對及對應的擴展身份標識及加入到當前使用的ECC私鑰組或密鑰對組密鑰對象的ECC私鑰組或密鑰對組中;
[0101]第E步:使用獲得的ECC私鑰或密鑰對解密加密的數據,完成處理後返回結果。
[0102]對於密碼應用程式使用ECC私鑰組或密鑰對組的密鑰對象的密鑰對象標識符調用所述密碼模塊對數據進行數字籤名的操作,所述密碼模塊按如下方式進行處理:
[0103]步驟1:從密鑰對象標識符所指的ECC私鑰組或密鑰對組密鑰對象中獲取的對應身份標識,用獲取的身份標識生成一個與預定或配置的身份標識限定策略(即對應的ECC私鑰的限定策略)相對應的擴展身份標識;
[0104]步驟2:查看密鑰對象標識符指向的ECC私鑰組或密鑰對組密鑰對象的ECC私鑰組或密鑰對組中是否有步驟I生成的擴展身份標識對應的ECC私鑰或密鑰對,若沒有,轉入步驟3 ;若有,則使用對應的ECC私鑰或密鑰對中的私鑰對數據進行數字籤名,並將當前使用的ECC私鑰或密鑰對所對應的擴展身份標識的信息作為附加數據或填充數據附加或填充到被籤名的數據中,完成處理後返回結果;
[0105]步驟3:使用步驟I生成的擴展身份標識從ECC密鑰生成系統請求獲取擴展身份標識對應的ECC私鑰或密鑰對;
[0106]步驟4:將獲得的對應ECC私鑰或密鑰對及對應的擴展身份標識及加入到當前使用的ECC私鑰組或密鑰對組中;
[0107]步驟5:使用獲得的ECC私鑰或密鑰對中的私鑰對數據進行數字籤名,將當前使用的ECC私鑰或密鑰對所對應的擴展身份標識的信息作為附加數據或填充數據附加或填充到被籤名的數據中,完成處理後返回結果;
[0108]所述步驟2或步驟5中將當前使用的ECC私鑰或密鑰對所對應的擴展身份標識的信息作為附加數據或填充數據附加或填充到被籤名的數據中的操作處理,是指將擴展身份標識信息加入到經ECC私鑰密碼算後的數據本身中,而不是作為籤名者密鑰標識信息或密鑰標識信息的一部分放入到籤名後形成的數據結構的籤名者信息中(如CMS中的SignedData的SignertInfo中)(實際上,籤名是用ECC私鑰針對籤名數據的散列值進行密碼運算,因此,擴展身份標識的信息是附加或填充到經ECC私鑰密碼運算後的散列值中)。
[0109]對於密碼應用程式使用偽公鑰密鑰對象的密鑰對象標識符調用所述密碼模塊對籤名數據進行籤名驗證的操作,所述密碼模塊按如下方式進行處理:
[0110]步驟A:通過籤名數據的附加數據或填充數據獲得籤名時所用ECC私鑰的對應擴展身份標識;
[0111]步驟B:查看密鑰對象標識符指向的偽公鑰密鑰對象所關聯的ECC公鑰組密鑰對象的ECC公鑰組中是否有步驟A中獲得的擴展身份標識對應的ECC公鑰,若沒有,轉入步驟C ;若有,則使用對應的ECC公鑰對籤名數據進行籤名驗證,完成處理後返回結果;
[0112]步驟C:使用步驟A獲得的擴展身份標識從ECC密鑰生成系統請求獲取擴展身份標識對應的ECC公鑰;
[0113]步驟D:將獲得的對應ECC公鑰及對應擴展身份標識及加入到當前使用的偽公鑰密鑰對象關聯的ECC公鑰組密鑰對象的ECC公鑰組中;
[0114]步驟E:使用獲得的ECC公鑰對籤名數據進行籤名驗證,完成處理後返回結果。
[0115]在密碼模塊的具體實施中,除了以上針對公鑰、私鑰或密鑰對密碼運算外,還需要實施針對其他密鑰對象(如對稱密鑰)的密碼運算。
[0116]對於用戶通過偽數字證書籤發客戶端或密碼應用程式從所述偽數字證書籤發系統獲取一張身份標識對應的偽數字證書的請求,所述偽數字證書籤發系統按如下步驟進行處理:
[0117]步驟1:查看內存或資料庫中是否緩存或保存有請求中的擴展身份標識對應的偽數字證書,若有,則返回對應的偽數字證書;否則,轉入步驟II ;
[0118]步驟I1:偽數字證書籤發系統利用請求中的身份標識信息生成對應的偽公鑰,然後使用偽數字證書籤發CA的私鑰籤發一張證書持有者公鑰是偽公鑰的偽數字證書,,之後將籤發的偽數字證書緩存在內存中或保存在資料庫中,最後返回籤發的偽數字證書;
[0119]所述偽數字證書籤發系統針對同一身份標識所籤發的偽數字證書的籤發者名(Issuer Name)和序列號(Serial Number)相同(主題名,即Subject Name,可以同,也可以不同)。
[0120]若所述基於標識的橢圓曲線密碼系統僅用於數據加密應用,則所述偽數字證書籤發系統是一個獨立運行的系統,或者與所述偽數字證書籤發客戶端合併為一個運行於用戶端的偽數字證書籤發工具;
[0121]若所述偽數字證書籤發系統與所述偽數字證書籤發客戶端合併為一個運行於用戶端的偽數字證書籤發工具,則每個用戶或密碼應用程式通過所述偽數字證書籤發工具獨立生成加密或解密所需的偽數字證書,包括帶私鑰和不帶私鑰的偽數字證書;不同用戶或密碼應用程式通過所述偽數字證書籤發工具針對同一個身份標識獨立生成的偽數字證書的籤發者名和序列號相同(主題名可以同,也可以不同);不同用戶的偽數字證書籤發工具所使用的證書籤發CA及其上級CA的CA證書的籤發者名、主題名和序列號相同,但證書籤發CA及其上級CA的CA證書的密鑰對不同。[0122]對於密碼模塊從ECC密鑰生成系統請求獲取一個擴展身份標識所對應的ECC公鑰的請求,所述ECC密鑰生成系統按如下步驟處理:
[0123]步驟一:查看內存或資料庫中是否緩存或保存有請求中的擴展身份標識對應ECC公鑰,若有,則返回對應的ECC公鑰;否則,轉入步驟二 ;
[0124]步驟二:將請求中的擴展身份標識與ECC密鑰生成系統的種子數據通過運算生成擴展身份標識對應的ECC私鑰(d),並進而計算得到對應的ECC公鑰(dG),然後將計算得到的ECC公鑰緩存在內存中或保存在資料庫中,最後返回計算得到的對應的ECC公鑰。
[0125]對於密碼模塊從ECC密鑰生成系統請求獲取一個擴展身份標識所對應的ECC私鑰或密鑰對的請求,所述ECC密鑰生成系統按如下步驟處理:
[0126]第I步:驗證和確認請求方的用戶就是擴展身份標識對應的身份標識的擁有者,若驗證通過,則轉入第II步;否則,返回拒絕,並給出拒絕的原因;
[0127]第II步:根據請求中的擴展身份標識中的限定策略確定當前是否符合為用戶生成擴展身份標識對應私鑰的條件,若是,則轉入第III步;否則,返回拒絕,並給出拒絕的原因;
[0128]第III步:將請求中的擴展身份標識與ECC密鑰生成系統的種子數據通過運算生成擴展身份標識對應的ECC私鑰(d),並返回生成的ECC私鑰;
[0129]若請求是生成ECC密鑰對,則由ECC密鑰生成系統利用生成的ECC私鑰(d)計算得到對應的ECC公鑰(dG)並返回生成和計算得到的ECC私鑰和公鑰(即ECC密鑰對),或者僅返回生成的ECC私鑰,由調用方的密碼模塊利用獲得的ECC私鑰計算得到對應的ECC公鑰。
[0130]如何根據請求中的擴展身份標識的限定策略確定當前是否符合為用戶生成擴展身份標識對應私鑰的條件,與具體的策略有關,與具體的策略實施方案有關。
[0131]若所述基於標識的橢圓曲線密碼系統採用分割方式生成ECC密鑰,則由兩個或兩個以上的採用相同ECC系統參數的ECC密鑰生成系統分別生成一個擴展身份標識對應的ECC私鑰,然後以分別生成的ECC私鑰的代數和作為最終的ECC私鑰;以每個ECC密鑰生成系統分別生成的擴展身份標識對應的ECC公鑰的橢圓曲線群和(橢圓曲線上的點構成的群的點加和)作為最終的ECC公鑰;每個ECC密鑰生成系統用於ECC私鑰計算的種子數據各不相同。對不同ECC密鑰生成系統分別生成的ECC私鑰求代數和以及對不同ECC密鑰生成系統分別生成的ECC公鑰求橢圓曲線群和的運算由密碼模塊完成。
[0132]本發明的基於標識的橢圓曲線密碼系統,通過將對應於一個身份標識的偽公鑰與對應同一身份標識的ECC公鑰組和ECC私鑰組(或ECC密鑰對組)相對應,從而將使用偽公鑰進行數據加密或籤名驗證的密碼運算自動轉化成使用對應ECC公鑰組中相應ECC公鑰的運算;將使用偽公鑰所對應的私鑰(一個實際上不存在的影子私鑰)進行數據解密或籤名的運算自動轉化成使用對應ECC私鑰組(或ECC密鑰對組)中對應私鑰的運算;並且,在沒有對應ECC公鑰或私鑰(密鑰對)時,由密碼模塊自動獲取對應的ECC公鑰或私鑰(密鑰對)。這樣的基於標識的橢圓曲線密碼系統不但具有IBC密碼系統的部分特點,包括將一個密鑰對與一個(擴展)身份標識相對應,通過限定策略對身份標識對應密鑰對的使用進行限定,由密鑰生成系統根據用戶的(擴展)身份標識計算生成或恢復對應的私鑰或密鑰對,無需集中存儲用戶數字證書和對應私鑰等(從而大大降低了密鑰管理和服務系統的複雜性),而且,密碼算法比IBC簡單,易於得到客戶端密碼硬體的支持,並通過密碼模塊自動獲取或更新密鑰,減少了密鑰更新過程中用戶的幹預,給用戶帶來方便。
【專利附圖】

【附圖說明】
[0133]圖1為本發明的密碼系統的結構框圖。
[0134]圖2為本發明的密碼模塊中ECC密鑰組(包括ECC公鑰組、ECC私鑰組或密鑰對組)的實施示意圖。
【具體實施方式】
[0135]下面結合附圖和實施例對本發明作進一步的描述。
[0136]採用本發明的密碼系統的結構框圖如圖1所示。
[0137]本發明的實施首先需要確定偽公鑰的實施方案。本發明的偽公鑰可以基於RSA公鑰實施(偽RSA公鑰),也可以基於ECC公鑰實施(偽ECC公鑰),或基於其他公開密鑰密碼算法的公鑰實施。無論採用RSA公鑰實施還是採用ECC公鑰實施(或其他算法的公鑰實施),都可以參考本發明專利申請的 申請人:在其專利「一種基於偽RSA密鑰的新近公開密鑰加密算法的應用實現方法」(專利號:201110248050.8)中所述的偽RSA密鑰(針對公鑰部分)的實施方案。這時,偽RSA公鑰數據或偽ECC公鑰數據中存放的身份標識信息是(基本)身份標識的散列數值(若存原始值,則有可能太長),以及ECC系統參數(包括橢圓曲線具體格式、域、係數和基點)的指示信息(通過版本號或URL),而不是橢圓曲線的具體格式、域、係數和基點數據本身。
[0138]在偽公鑰的基礎上可實施偽數字證書(如偽RSA數字證書或偽ECC數字證書)。實現所有偽數字證書的籤發者名相同是很容易做到的,只要證書籤發CA的CA證書的主題名不變或相同即可;為了保證針對同一個身份標識所生成籤發的偽數字證書的序列號相同,可以用身份標識的散列值作為證書序列號。
[0139]證書主題名如何設置與具體密碼應用有關,通常情況下根據密碼應用的需要,身份標識需要作為主題名的一部分出現在主題名中,比如,如果身份標識是電子郵箱地址,則身份標識(即電子郵箱地址)要作為主題名(主題甄別名)的電子郵件欄位(E欄位)的值出現在主題名中。
[0140]偽數字證書的有效期可以設置得很長,比如50年,100年,且可將其起始、終止時間固定。
[0141]若偽數字證書籤發系統是一個運行於用戶端的偽數字證書籤發工具,要做到不同用戶的偽數字證書籤發工具所使用的證書籤發CA及其上級CA的CA證書的籤發者名、主題名和序列號相同,而證書籤發CA及其上級CA的CA證書的密鑰對不同,不是一件困難的事情,只要每個用戶端的偽數字證書籤發工具各自獨立地生成證書籤發CA及其上級CA的CA證書(包括根CA證書)的密鑰對,且使得各自生成的CA證書使用預先約定的籤發者名、主題名和序列號即可。
[0142]由於目前的絕大部分密碼應用程式和標準密碼模塊接口都支持RSA算法和RSA數字證書,而很多密碼應用程式或標準密碼模塊接口尚不支持ECC算法和ECC數字證書,故現階段最好採用RSA實施偽公鑰和偽RSA數字證書。[0143]需要指出的是,如果基於RSA公鑰實施本發明的用於ECC密鑰操作和密碼運算的偽公鑰和偽數字證書,則實施得到的偽公鑰和偽數字證書與發明「一種基於偽RSA密鑰的新近公開密鑰加密算法的應用實現方法」(專利號:201110248050.8)中針對ECC算法實施得到的偽RSA公鑰和偽RSA數字證書是完全不同的,這是因為,本發明的偽公鑰數據包括偽數字證書上的偽公鑰數據中並沒有包含真正的ECC公鑰,而是身份標識及其他信息,而發明201110248050.8中針對ECC算法實施得到的偽RSA公鑰數據包括偽RSA數字證書上的偽公鑰數據中包含有真正的ECC公鑰。
[0144]確定了偽公鑰和偽數字證書的實施方案後,基於現有的信息系統開發技術,如C/C++、Java、C#.NET等,開發一個實現本發明所述功能的偽數字證書籤發系統不是一件困難的事情。偽數字證書籤發系統與偽數字證書籤發客戶端之間的協議可以自定義。
[0145]實施ECC密鑰生成系統的關鍵是計算一個擴展身份標識對應的ECC密鑰對的ECC私鑰,並由此得到對應的ECC公鑰或密鑰對。對於一個擴展身份標識對應的ECC私鑰,可以採用如下散列值計算方案獲得:
[0146]HASH ( I I ),
[0147]即將擴展身份標識與種子數據合併後計算散列值,然後從計算得到的散列值得到需要的ECC私鑰,比如,若散列值是160位,而ECC私鑰要求是128位,則可取散列值的前128位作為ECC私鑰;若散列值是160位,而ECC私鑰要求是160位,則可將散列值作為ECC私鑰。採用的散列算法可以是SHA-1、MD5或其他散列算法。如果所採用的散列算法的散列值的長度小於期望的ECC私鑰的長度(比如散列值是160位,ECC私鑰的長度是192位),則可以用兩個種子數據計算散列值,然後從兩個散列值合併後的數據中導出ECC私鑰。或者採用其他能夠將一個擴展身份標識唯一映射到一個ECC私鑰的算法。
[0148]實施密碼模塊是實施本發明的系統的關鍵。在實施時有一點需要注意,對於公開密鑰密碼算法而言,私鑰數據通常包含有公鑰,或者可以通過私鑰直接計算得到公鑰,因此,針對私鑰的操作和運算與針對密鑰對的操作與運算是等同的。
[0149]實施密碼模塊的一種方案是自定義密碼調用接口,並實現本發明所述功能以及其他需要的功能,包括涉及對稱密鑰、散列計算的功能。但是,採用這種方案的缺點是大部分的密碼應用程式將無法使用實施的密碼模塊進行數據加密、解密,籤名、籤名驗證,這是因為大部分的密碼應用程式是通過標準密碼接口,如Windows CSP的CryptoSP1、PKCS#11等,來實現密碼功能調用(Windows實際上是通過CryptoAPI調用CSPjS CSP需實現CryptoSPI)。為了使得這些密碼應用程式能使用本發明的密碼系統,故需要基於這些標準密碼接口實施本發明的密碼模塊。下面以Windows CSP的CryptoSPI為例來說明,基於PKCS#11或其他標準密碼接口的實施方式類似。
[0150]Windows CSP是Windows作業系統中的提供密碼服務功能的模塊,全稱是Cryptographic Services Provider (密碼服務提供者),它採用的密碼接口為CryptoSPI。考慮到Windows的CSP架構目前還不能很好地支持ECC算法,故可以採用RSA CSP來實施本發明的內容,即所述偽公鑰是偽RSA公鑰,所述偽數字證書是偽RSA數字證書,而所述密碼模塊是一個支持RSA密碼接口的CSP。
[0151]採用基於RSA密碼接口的CSP實施本發明的密碼模塊時,所有與RSA密鑰對有的密碼調用需要根據本發明的內容作相應的改變和實施,實施要點如下:[0152]I )RSA CSP中的RSA密鑰對密鑰對象(或密鑰容器)對應於本發明的ECC密鑰組密鑰對象;
[0153]2)RSA CSP中的RSA公鑰密鑰對象對應於本發明中的偽公鑰密鑰對象及其關聯的ECC公鑰組密鑰對象;
[0154]3 )本發明中的密鑰對象標識符或者對應於RSA CSP中的永久密鑰對象的永久密鑰對象標識符,或者對應於RSA CSP中的臨時密鑰對象的臨時密鑰對象標識符,即密鑰句柄;相應地,針對密鑰對象的操作或者是針對永久密鑰對象,或者是針對臨時密鑰對象,取決於對應的RSA CSP調用接口採用的對象標識符和對應的密鑰對象;
[0155]4) RSA CSP中初始化一個RSA密鑰對的密鑰容器的接口調用,對應的實施是在臨時存儲介質(內存)中創建一個臨時的ECC私鑰組或密鑰對組密鑰對象,包括將一個永久ECC私鑰組或密鑰對組密鑰對象通過創建臨時密鑰對象的方式裝載到臨時存儲介質中(供使用);
[0156]5)操作調用A對應於RSA CSP中創建一個RSA密鑰對密鑰對象的接口調用;
[0157]6)操作調用D對應於RSA CSP中導出一個RSA密鑰對密鑰對象(密鑰容器中)的RSA密鑰對的接口調用;
[0158]7)操作調用G對應於RSA CSP中從一個RSA密鑰對密鑰對象(密鑰容器中)導出公鑰的接口調用;
[0159]8)操作調用J對應於RSA CSP中刪除永久存儲介質上的一個RSA密鑰對密鑰對象或刪除(釋放)臨時存儲介質上(內存中)的一個RSA密鑰對密鑰對象的接口調用(取決於對應的RSA CSP接口調用);
[0160]9)操作調用L對應於RSA CSP中導入公鑰的接口調用;
[0161]10)操作調用M對應於RSA CSP中針對RSA公鑰密鑰對象導出公鑰的接口調用;
[0162]11)操作調用N對應於RSA CSP中刪除RSA公鑰密鑰對象的接口調用;
[0163]12)操作調用B、操作調用C、操作調用E、操作調用F、操作調用H、操作調用1、操作調用K在RSA CSP中沒有對應的接口調用,需要通過標準接口之外額外定義的接口實現;
[0164]13)其他與RSA密鑰對有關的密鑰操作調用,包括密鑰參數查詢,若無法實施,可以直接返回出錯。
[0165]RSA CSP中所有與使用RSA公鑰、私鑰進行密碼運算的操作,包括加密、解密,籤名、籤名驗證,按本發明給出的相應方案實施。除此之外,還需要實施本發明中未描述但應用過程中需要的其他密碼功能,包括與對稱密鑰、散列運算有關的密鑰操作與密碼運算功倉泛。
[0166]身份標識限定策略的實施,與具體的限定策略有關。最常用的身份標識限定策略是時間策略,通常是規定或限定擴展身份標識及其私鑰每間隔一段就進行更新,這樣在數據加密或數字籤名時所用的擴展身份標識應該是覆蓋當前時刻的擴展身份標識,對應的ECC公鑰或私鑰是覆蓋當前時刻的擴展身份標識所對應的ECC公鑰或私鑰;而在生成擴展身份標識對應的ECC私鑰時,當前時刻必須不早於擴展身份標識中的起始時刻(起始時間)。因此,對於時間策略,生成一個身份標識的與(預定或配置的)時間限定策略相對應的擴展身份標識,即用覆蓋當前時刻的時間段形成對應的擴展身份標識;從ECC私鑰生成系統獲取ECC私鑰時,ECC私鑰生成系統根據當前時刻是否在擴展身份標識中的時間限定策略的起始時刻(起始時間)之後,來判斷當前是否符合為用戶生成擴展身份標識對應私鑰的條件。
[0167]如果預定或配置有角色策略,則生成一個身份標識的與預定或配置的角色限定策略相對應的擴展身份標識即把對應的角色策略加入到生成的擴展身份標識中(以字串的形式);從ECC私鑰生成系統獲取ECC私鑰時,ECC私鑰生成系統根據當前用戶是否擁有對應的角色來判斷當前是否符合為用戶生成擴展身份標識對應私鑰的條件。
[0168]通過分析,可以發現,根據限定策略的取值,限定策略可分為兩類:動態策略,靜態策略;前者出現在擴展身份標識中的數據值是可變的(如時間策略),或者根據情況可出現或者不出現,後者是固定不變的(如角色)。故此,在生成一個身份標識與預定或配置的限定策略相對應的擴展身份標識的時候,需要根據當前的情況確定動態策略是否需要出現,或者當前出現的策略數據值是什麼(如時間段的值),然後將需要出現的動態策略及其數據值按事先約定順序的加入到擴展身份標識;對於靜態策略總是將其按事先約定順序的加入到擴展身份標識中;從ECC私鑰生成系統獲取ECC私鑰時,ECC私鑰生成系統根據當前情況判斷擴展身份標識中出現的動態策略和靜態策略的約束要求是否得到滿足,從而判斷當前是否符合為用戶生成擴展身份標識對應私鑰的條件(實施者可根據具體實施的限定策略的類型,以及自身的需要,確定如何根據當前情況判斷擴展身份標識中出現的動態策略和靜態策略的約束要求是否得到滿足)。
[0169]關於通過策略對身份標識及其密鑰的使用可參考其他文獻。
[0170]對於將擴展 身份標識的信息作為附加數據或填充數據附加或填充到被加密的數據或被籤名的數據中的實施方案描述如下。
[0171]若偽公鑰和偽數字證書是基於RSA算法實現,則由於經RSA密鑰密碼運算後的數據,如RSA公鑰加密後的對稱密鑰(加密數據),RSA私鑰密碼運算(籤名)後的散列值(籤名數據),比經ECC密鑰密碼運算後的對應數據要長很多,故可以採用將擴展身份標識的信息作為填充數據附加在經ECC密鑰密碼運算後的數據之後,使得填充後的經ECC密鑰密碼運算後的數據的長度與經RSA密鑰密碼運算後的數據具有同樣的長度(邊界對齊)。由於,密碼應用程式通常是不會檢查經RSA密鑰密碼運算後的數據的長度的(即是否具有固定),因此,可以將擴展身份標識的信息作為附加數據附加在經ECC密鑰密碼運算後的數據之後,而不用考慮長度或邊界對齊的問題(若要考慮長度或邊界對齊則是填充數據)。
[0172]若偽公鑰和偽數字證書是基於ECC算法實現,則可將擴展身份標識的信息作為附加數據附加在經ECC密鑰密碼運算後的數據之後。
[0173]附加或填充到被加密的數據或被籤名的數據中的擴展身份標識的信息,必須包括限定策略的原始信息(如時間區間),或者能夠恢復限定策略原始信息的指示信息(如用數字0、1、3…代表不同的角色等);擴展身份標識對應的身份標識本身由於具有不固定的長度且可能很長,故擴展身份標識對應的身份標識本身是不放在被加密的數據或被籤名的數據中的,可將其散列值放入其中。實際上,身份標識的散列值也可不放在被加密的數據或被籤名的數據中,因為,數據解密方或籤名驗證方的密碼應用程式可通過加密數據信封中或籤名數據結構中的密鑰標識信息(即數字證書的籤發者名、證書序列號)找到對應的ECC私鑰組(或密鑰對組)密鑰對象或者ECC公鑰組密鑰對象。
[0174]確定了偽公鑰、偽數字證書、偽數字證書籤發系統及協議、ECC密鑰生成系統、密碼模塊的實施方案後,實施偽數字證書籤發系統不是意見困難的事情,可以基於成熟的桌面軟體開發技術,如c/C++、C#.NET。
[0175]對於技術實現的其他方面,對於相關領域的技術開發者而言是不言自明的。
【權利要求】
1.一種基於標識的橢圓曲線密碼系統,所述密碼系統包括如下組件或數據: 偽公鑰:一種公鑰數據結構,存放的不是數據結構標識的或約定的公開密鑰密碼算法的公鑰數據,而是身份標識信息及ECC系統參數信息;所述身份標識信息指身份標識字串本身或其散列值,所述ECC系統參數信息包括ECC密碼運算所採用的橢圓曲線格式、域、係數以及基點的指示信息,即ECC系統參數的指示信息;一個所述偽公鑰對應一個身份標識及其所有擴展身份標識; 偽數字證書:一種X509格式的數字證書,數字證書上的證書持有者的公鑰不是數字證書上所指示的公開密鑰密碼算法的公鑰,而是證書持有者的身份標識所對應的偽公鑰;一張偽數字證書及其偽公鑰與證書持有者的身份標識及其所有擴展的身份標識相對應;所述偽數字證書的有效期長度及起始、終止時間的設定沒有限定要求,只要超過偽數字證書所對應的身份標識的所有擴展身份標識所對應的ECC私鑰或密鑰對的使用期限即可; ECC密鑰生成系統:通過計算得到一個擴展身份標識對應的ECC公鑰、ECC私鑰或ECC密鑰對的系統;所述ECC密鑰生成系統設置有隨機生成的用於ECC私鑰生成計算的種子數據; 偽數字證書籤發系統:生成並籤發一個身份標識所對應的偽數字證書的系統; 偽數字證書籤發客戶端:供用戶使用,用於從偽數字證書籤發系統獲取用戶身份標識所對應的偽數字證書的用戶端軟體程序; 密碼模塊:提供密鑰操作與密碼運算功能的軟體組件或軟硬體組合,所述密鑰操作包括密鑰生成、導入、導出和刪除,所述密碼運算包括加密和解密,籤名和籤名驗證;所述密碼模塊通過密碼接口對外提供密鑰操作與密碼運算功能的調用; 密碼應用程式:調用密碼模塊進行密鑰操作,包括生成、導出、導入和刪除,以及調用密碼模塊使用公鑰或私鑰進行加密或解密,籤名驗證或數字籤名密碼運算的軟體程序; 所述密碼模塊在存儲介質中為`用戶或密碼應用程式使用的每一個身份標識維護一個存放ECC公鑰組的密鑰對象,稱為ECC公鑰組密鑰對象;所述ECC公鑰組密鑰對象的ECC公鑰組中存放有一系列由同一個身份標識的擴展身份標識所生成的ECC公鑰;一個所述ECC公鑰組及其密鑰對象與一個對應相同身份標識的偽公鑰和偽數字證書相對應;所述ECC公鑰組密鑰對象作為一個密鑰對象用一個密鑰對象標識符標識; 當所述密碼模塊在存儲介質中創建一個偽公鑰的密鑰對象時,將所創建的偽公鑰密鑰對象關聯到對應的具有相同身份標識的ECC公鑰組的密鑰對象;密碼應用程式通過使用偽公鑰的密鑰對象使用偽公鑰對應的ECC公鑰組密鑰對象的ECC公鑰組中的ECC公鑰進行密碼運算,包括數據加密和籤名驗證;所述密碼模塊所創建的偽公鑰的密鑰對象稱為偽公鑰密鑰對象; 所述密碼模塊在存儲介質中為用戶或密碼應用程式使用的每一個身份標識維護一個存放ECC私鑰組或密鑰對組的密鑰對象,稱為ECC私鑰組或密鑰對組密鑰對象;所述ECC私鑰組或密鑰對組密鑰對象的ECC私鑰組或密鑰對組中存放有一系列由同一個身份標識的一個擴展身份標識所生成的ECC私鑰或公鑰對;一個所述ECC私鑰組或密鑰對組及其密鑰對象與一個對應相同身份標識的偽公鑰和偽數字證書相對應;一個所述ECC私鑰組或密鑰對組密鑰對象作為一個密鑰對象用一個密鑰對象標識符標識,並通過密鑰對象標識符被當作對應的偽公鑰和偽數字證書的對應私鑰或密鑰對使用;所述ECC公鑰組或ECC私鑰組或密鑰對組的密鑰對象數據中,除了保存有每個擴展身份標識對應的ECC公鑰或ECC私鑰或密鑰對外,還保存有對應的身份標識信息以及每個ECC公鑰或ECC私鑰或密鑰對所對應的擴展身份標識信息; 所述密鑰對象指各種密鑰包括公鑰、私鑰、密鑰對以及對稱密鑰在密碼模塊中的數據存在形式;所述密鑰對象包括存儲在永久存儲介質上的永久密鑰對象和存儲在臨時存儲介質上的臨時密鑰對象,並分別對應有永久密鑰對象標識符和臨時密鑰對象標識符; 所述密碼模塊和ECC密鑰生成系統預定或配置有身份標識限定策略;密碼模塊處的身份標識限定策略規定或限定了在數據加密或數字籤名時一個身份標識所對應的擴展身份標識,即規定或限定了在數據加密時所採用的ECC公鑰所對應的擴展身份標識或在數字籤名時所採用的ECC私鑰所對應的擴展身份標識,也即在數據加密或數字籤名時哪一個擴展身份標識所對應的ECC公鑰或ECC私鑰被採用;ECC密鑰生成系統處的身份標識限定策略規定或限定了在生成一個擴展身份標識對應的ECC私鑰時需要滿足的必要條件;所述預定的身份標識限定策略指已編碼在程序中的不能更改的身份標識限定策略;所述配置的身份標識限定策略指可修改、設定的身份標識限定策略; 所述密碼應用程式按使用公鑰及其對應私鑰或密鑰對的方式使用偽公鑰及其對應的私鑰或密鑰對,包括使用偽公鑰及其對應私鑰或密鑰對的密鑰對象; 所述密碼應用程式按使用 數字證書及其對應私鑰或密鑰對的方式使用偽數字證書及其對應私鑰或密鑰對,包括使用偽數字證書對應私鑰或密鑰對的密鑰對象; 若密碼應用程式不使用數字證書而是直接使用公鑰或私鑰或密鑰對進行數據加密和解密,籤名和籤名驗證,則所述偽數字證書、偽數字證書籤發系統以及偽數字證書籤發客戶端不再存在; 若僅密碼應用程式從所述偽數字證書籤發系統獲取偽數字證書,則所述偽數字證書籤發客戶端不再存在。
2.根據權利要求1所述的基於標識的橢圓曲線密碼系統,其特徵是: 當所述偽數字證書籤發客戶端或密碼應用程式調用所述密碼模塊的密鑰操作接口進行針對公鑰或私鑰或密鑰對的密鑰操作時,所述密碼模塊針對不同的密鑰操作接口調用分別按如下方式進行處理: 操作調用A:對於生成私鑰或密鑰對的接口調用,在存儲介質中創建一個包括一個空的ECC私鑰組或密鑰對組的密鑰對象,並將通過人機界面獲得的身份標識信息保存在新生成的密鑰對象中,然後將返回的密鑰對象標識符指向新生成的ECC私鑰組或密鑰對組的密鑰對象;或者生成一個所述偽公鑰的數據結構所標識的或約定的公開密鑰密碼算法的私鑰或密鑰對的密鑰對象,然後將返回的密鑰對象標識符指向新生成的密鑰對象;所述操作調用是生成一個ECC私鑰組或密鑰對組的密鑰對象,還是生成一個所述偽公鑰的數據結構所標識的或約定的公開密鑰密碼算法的私鑰或密鑰對的密鑰對象,由用戶通過人機界面選擇決定,或者由所述密碼模塊的配置信息決定,或者由密碼模塊程序固定設定; 操作調用B:對於生成私鑰組或密鑰對組的接口調用,在存儲介質中創建一個包括一個空的ECC私鑰組或密鑰對組的密鑰對象,並將通過調用接口或人機界面獲得的身份標識信息保存在新生成的密鑰對象中,然後將返回的密鑰對象標識符指向新生成的ECC私鑰組或密鑰對組的密鑰對象;操作調用C:對於生成ECC公鑰組的接口調用,在存儲介質中創建一個包括一個空的ECC公鑰組的密鑰對象,並將通過調用接口或人機界面獲得的身份標識信息保存在新生成的密鑰對象中,然後將返回的密鑰對象標識符指向新生成的ECC公鑰組的密鑰對象; 操作調用D:對於使用ECC私鑰組或密鑰對組密鑰對象的密鑰對象標識符導出私鑰或密鑰對的接口調用,返回出錯; 操作調用E:對於使用ECC私鑰組或密鑰對組密鑰對象的密鑰對象標識符導出ECC私鑰組或密鑰對組的接口調用,返回密鑰對象標識符指向的密鑰對象的ECC私鑰組或密鑰對組中所有ECC私鑰或密鑰對,以及對應的身份標識和擴展身份標識信息; 操作調用F:對於使用ECC公鑰組密鑰對象的密鑰對象標識符導出ECC公鑰組的接口調用,返回密鑰對象標識符指向的密鑰對象的ECC公鑰組中所有ECC公鑰,以及對應的身份標識和擴展身份標識信息; 操作調用G:對於使用ECC私鑰組或密鑰對組密鑰對象的密鑰對象標識符導出公鑰的接口調用,從密鑰對象標識符指向的密鑰對象中獲取對應的身份標識,生成身份標識對應的偽公鑰,然後返回生成的偽公鑰; 操作調用H:對於導入ECC公鑰組的接口調用,在存儲介質中創建一個ECC公鑰組的密鑰對象,並將通過調用接口輸入的要導入的ECC公鑰組中的所有ECC公鑰以及對應的身份標識和擴展身份標識信息加入到新創建的密鑰對象中,然後將返回的密鑰對象標識符指向新生成的ECC公鑰組密鑰對象; 操作調用1:對於導入ECC私鑰組或密鑰對組的接口調用,在存儲介質中創建一個ECC私鑰組或密鑰對組的密鑰對象,並將通過調用接口輸入的要導入的ECC私鑰組或密鑰對組中的所有ECC私鑰或密鑰對以及對應的身份標識和擴展身份標識信息加入到新創建的密鑰對象中,然後將返回的密鑰對象標識符指向新生成的ECC私鑰組或密鑰對組的密鑰對象;` 操作調用J:對於使用ECC私鑰組或密鑰對組的密鑰對象的密鑰對象標識符刪除私鑰或密鑰對密鑰對象的接口調用,在存儲介質中清除對象標識符所指的密鑰對象; 操作調用K:對於使用ECC公鑰組的密鑰對象的密鑰對象標識符刪除公鑰組的接口調用,在存儲介質中清除密鑰對象標識符所指的密鑰對象; 操作調用L:對於導入公鑰的接口調用,檢查導入的公鑰是否是偽公鑰,如果不是,則按導入正常的公鑰的方式完成導入公鑰的處理;否則,按如下方式處理: 步驟L1:在存儲介質中創建一個偽公鑰的密鑰對象,將要導入的偽公鑰保存在創建的偽公鑰密鑰對象中; 步驟L2:從偽公鑰中獲取身份標識信息; 步驟L3:查看存儲介質中是否已有身份標識對應的ECC公鑰組密鑰對象,若是,則將步驟LI創建的偽公鑰的密鑰對象與對應的ECC公鑰組密鑰對象相關聯,並將返回的密鑰對象標識符指向創建的偽公鑰的密鑰對象,完成偽公鑰的導入處理;否則,返回出錯; 操作調用M:對於使用偽公鑰密鑰對象的密鑰對象標識符導出公鑰的接口調用,導出密鑰對象標識符指向的偽公鑰密鑰對象中的偽公鑰; 操作調用N:對於使用偽公鑰密鑰對象的密鑰對象標識符刪除公鑰密鑰對象的接口調用,在存儲介質中清除密鑰對象標識符所指的偽公鑰密鑰對象。
3.根據權利要求1所述的基於標識的橢圓曲線密碼系統,其特徵是: 當所述密碼應用程式使用偽公鑰密鑰對象的密鑰對象標識符調用所述密碼模塊進行數據加密操作時,所述密碼模塊按如下方式進行處理: 第I步:從密鑰對象標識符所指的偽公鑰密鑰對象中獲取對應的身份標識,用獲取的身份標識生成一個與預定或配置的身份標識限定策略相對應的擴展身份標識; 第2步:查看密鑰對象標識符指向的偽公鑰密鑰對象所關聯的ECC公鑰組密鑰對象的ECC公鑰組中是否有所述第I步生成的擴展身份標識對應的ECC公鑰,若沒有,轉入第3步;若有,則從所關聯的ECC公鑰組密鑰對象的ECC公鑰組中獲得對應的ECC公鑰,然後轉入第5步; 第3步:使用所述第I步生成的擴展身份標識從ECC密鑰生成系統請求獲取擴展身份標識對應的ECC公鑰; 第4步:將獲得的ECC公鑰及對應的擴展身份標識及加入到當前使用的偽公鑰密鑰對象所關聯的ECC公鑰組密鑰對象的ECC公鑰組中; 第5步:使用獲得的ECC公鑰對數據進行加密,並將當前使用的ECC公鑰對應的擴展身份標識的信息作為附加數據或填充數據附加或填充到被加密的數據中,完成處理後返回結果; 所述第5步中將當前使用的ECC公鑰對應的擴展身份標識的信息作為附加數據或填充數據附加或填充到被加密的數據中的操作處理,是指將擴展身份標識信息加入到經ECC公鑰密碼運算後的數據本身中,而不是作為加密密鑰的密鑰標識信息或密鑰標識信息的一部分放入到加密數據信封的接收者信息中。
4.根據權利要求1所述的基於標識的橢圓曲線密碼系統,其特徵是: 當所述密碼應用程式使用ECC私鑰組或密鑰對組密鑰對象的密鑰對象標識符調用所述密碼模塊進行數據解密操作時,所述密碼模塊按如下方式進行處理: 第A步:通過加密數據的附加數據或填充數據獲得數據加密時所用ECC公鑰的對應擴展身份標識; 第B步:查看密鑰對象標識符指向的密鑰對象的ECC私鑰組或密鑰對組中是否有所述第A步獲得的擴展身份標識對應的ECC私鑰或密鑰對,若沒有,轉入第C步;若有,則從密鑰對象標識符指向的密鑰對象的ECC私鑰組或密鑰對組中獲得對應的ECC私鑰或密鑰對,然後轉入第E步; 第C步:使用所述第A步獲得的擴展身份標識從ECC密鑰生成系統請求獲取擴展身份標識對應的ECC私鑰或密鑰對; 第D步:將獲得的ECC私鑰或密鑰對及對應的擴展身份標識及加入到當前使用的ECC私鑰組或密鑰對組密鑰對象的ECC私鑰組或密鑰對組中; 第E步:使用獲得的ECC私鑰或密鑰對中的私鑰解密加密的數據,完成處理後返回結果O
5.根據權利要求1所述的基於標識的橢圓曲線密碼系統,其特徵是: 當所述密碼應用程式使用ECC私鑰組或密鑰對組的密鑰對象的密鑰對象標識符調用所述密碼模塊對數據進行數字籤名操作時,所述密碼模塊按如下方式進行處理: 步驟1:從密鑰對象標識符所指的ECC私鑰組或密鑰對組密鑰對象中獲取的對應身份標識,用獲取的身份標識生成一個與預定或配置的身份標識限定策略相對應的擴展身份標識; 步驟2:查看密鑰對象標識符指向的ECC私鑰組或密鑰對組密鑰對象的ECC私鑰組或密鑰對組中是否有所述步驟I生成的擴展身份標識對應的ECC私鑰或密鑰對,若沒有,轉入步驟3 ;若有,則從密鑰對象標識符指向的ECC私鑰組或密鑰對組密鑰對象的ECC私鑰組或密鑰對組中獲得對應的ECC私鑰或密鑰對,然後轉入步驟5 ; 步驟3:使用所述步驟I生成的擴展身份標識從ECC密鑰生成系統請求獲取擴展身份標識對應的ECC私鑰或密鑰對; 步驟4:將獲得的對應ECC私鑰或密鑰對及對應的擴展身份標識及加入到當前使用的ECC私鑰組或密鑰對組中; 步驟5:使用獲得的ECC私鑰或密鑰對中的私鑰對數據進行數字籤名,將當前使用的ECC私鑰或密鑰對所對應的擴展身份標識的信息作為附加數據或填充數據附加或填充到被籤名的數據中,完成處理後返回結果; 所述步驟5中將當前使用的ECC私鑰或密鑰對所對應的擴展身份標識的信息作為附加數據或填充數據附加或填充到被籤名的數據中的操作處理,是指將擴展身份標識信息加入到經ECC私鑰密碼算後的數據本身中,而不是作為籤名者密鑰標識信息或密鑰標識信息的一部分放入到籤名後形成的數據結構的籤名者信息中。
6.根據權利要求1所述的基於標識的橢圓曲線密碼系統,其特徵是: 當所述密碼應用程式使用偽公鑰密鑰對象的密鑰對象標識符調用所述密碼模塊對籤名數據進行籤名驗證操作時,所述密碼模塊按如下方式進行處理: 步驟A:通過籤名數據的附加數據或填充數據獲得籤名時所用ECC私鑰的對應擴展身份標識; 步驟B:查看密鑰對象標識符指向的偽公鑰密鑰對象所關聯的ECC公鑰組密鑰對象的ECC公鑰組中是否有所述步驟A中獲得的擴展身份標識對應的ECC公鑰,若沒有,轉入步驟C ;若有,則從所關聯的ECC公鑰組密鑰對象的ECC公鑰組中獲得對應的ECC公鑰,然後轉入步驟E ; 步驟C:使用所述步驟A獲得的擴展身份標識從ECC密鑰生成系統請求獲取擴展身份標識對應的ECC公鑰; 步驟D:將獲得的對應ECC公鑰及對應擴展身份標識及加入到當前使用的偽公鑰密鑰對象關聯的ECC公鑰組密鑰對象的ECC公鑰組中; 步驟E:使用獲得的ECC公鑰對籤名數據進行籤名驗證,完成處理後返回結果。
7.根據權利要求1所述的基於標識的橢圓曲線密碼系統,其特徵是: 當用戶通過所述偽數字證書籤發客戶端或密碼應用程式從所述偽數字證書籤發系統請求獲取一張身份標識對應的偽數字證書時,所述偽數字證書籤發系統按如下步驟進行處理: 步驟1:查看內存或資料庫中是否緩存有或保存有請求中的擴展身份標識對應的偽數字證書,若有,則返回對應的偽數字證書;否則,轉入步驟II ; 步驟I1:利用請求中的身份標識信息生成對應的偽公鑰,然後使用偽數字證書籤發CA的私鑰籤發一張證書持有者公鑰是偽公鑰的偽數字證書,之後將籤發的偽數字證書緩存在內存中或保存在資料庫中,最後返回籤發的偽數字證書; 所述偽數字證書籤發系統針對同一身份標識所籤發的偽數字證書的籤發者名和序列號相同。
8.根據權利要求1所述的基於標識的橢圓曲線密碼系統,其特徵是: 若所述基於標識的橢圓曲線密碼系統僅用於數據加密應用,則所述偽數字證書籤發系統是一個獨立運行的系統,或者與所述偽數字證書籤發客戶端合併為一個運行於用戶端的偽數字證書籤發工具; 若所述偽數字證書籤發系統與所述偽數字證書籤發客戶端合併為一個運行於用戶端的偽數字證書籤發工具,則每個用戶或密碼應用程式通過所述偽數字證書籤發工具獨立生成加密或解密所需的偽數字證書,包括帶私鑰和不帶私鑰的偽數字證書;不同用戶或密碼應用程式通過所述偽數字證書籤發工具針對同一個身份標識獨立生成的偽數字證書的籤發者名和序列號相同;不同用戶的偽數字證書籤發工具所使用的證書籤發CA及其上級CA的CA證書的籤發者名、主題名和序列號相同,但證書籤發CA及其上級CA的CA證書的密鑰對不同。
9.根據權利要求1所述的基於標識的橢圓曲線密碼系統,其特徵是: 當所述密碼模塊從ECC密鑰生成系統請求獲取一個擴展身份標識所對應的ECC公鑰時,所述ECC密鑰生成系統按如下步驟處理: 步驟一:查看內存或數 據庫中是否緩存或保存有請求中的擴展身份標識對應ECC公鑰,若有,則返回對應的ECC公鑰;否則,轉入步驟二 ; 步驟二:將請求中的擴展身份標識與ECC密鑰生成系統的種子數據通過運算生成擴展身份標識對應的ECC私鑰,並進而計算得到對應的ECC公鑰,然後將計算得到的ECC公鑰緩存在內存中或保存在資料庫中,最後返回計算得到的對應的ECC公鑰; 若所述基於標識的橢圓曲線密碼系統採用由兩個或兩個以上的使用相同ECC系統參數和不同種子數據的ECC密鑰生成系統通過分割方式生成ECC公鑰,則每個ECC密鑰生成系統生成的擴展身份標識對應的ECC公鑰的橢圓曲線群和是最終的ECC公鑰。
10.根據權利要求1所述的基於標識的橢圓曲線密碼系統,其特徵是: 當所述密碼模塊從ECC密鑰生成系統請求獲取一個擴展身份標識所對應的ECC私鑰或密鑰對時,所述ECC密鑰生成系統按如下步驟處理: 第I步:驗證和確認請求方的用戶就是擴展身份標識對應的身份標識的擁有者,若驗證通過,則轉入下一步;否則,返回拒絕,並給出拒絕的原因; 第II步:根據請求中的擴展身份標識中的限定策略確定當前是否符合為用戶生成擴展身份標識對應私鑰的條件,若是,則轉入下一步;否則,返回拒絕,並給出拒絕的原因; 第III步:將請求中的擴展身份標識與ECC密鑰生成系統的種子數據通過運算生成擴展身份標識對應的ECC私鑰,並返回生成的ECC私鑰; 若請求是生成ECC密鑰對,則由ECC密鑰生成系統利用生成的ECC私鑰計算得到對應的ECC公鑰並返回生成和計算得到的ECC私鑰和公鑰,或者僅返回生成的ECC私鑰,由調用方的密碼模塊利用獲得的ECC私鑰計算得到對應的ECC公鑰; 若所述基於標識的橢圓曲線密碼系統採用由兩個或兩個以上的使用相同ECC系統參數和不同種子數據的ECC密鑰生成系統通過分割方式生成ECC私鑰,則每個ECC密鑰生成系統生成的擴展身份標識對應的EC`C私鑰的代數和是最終ECC私鑰的ECC私鑰。
【文檔編號】H04L9/30GK103560882SQ201310520985
【公開日】2014年2月5日 申請日期:2013年10月29日 優先權日:2013年10月29日
【發明者】龍毅宏 申請人:武漢理工大學

同类文章

一種新型多功能組合攝影箱的製作方法

一種新型多功能組合攝影箱的製作方法【專利摘要】本實用新型公開了一種新型多功能組合攝影箱,包括敞開式箱體和前攝影蓋,在箱體頂部設有移動式光源盒,在箱體底部設有LED脫影板,LED脫影板放置在底板上;移動式光源盒包括上蓋,上蓋內設有光源,上蓋部設有磨沙透光片,磨沙透光片將光源封閉在上蓋內;所述LED脫影

壓縮模式圖樣重疊檢測方法與裝置與流程

本發明涉及通信領域,特別涉及一種壓縮模式圖樣重疊檢測方法與裝置。背景技術:在寬帶碼分多址(WCDMA,WidebandCodeDivisionMultipleAccess)系統頻分復用(FDD,FrequencyDivisionDuplex)模式下,為了進行異頻硬切換、FDD到時分復用(TDD,Ti

個性化檯曆的製作方法

專利名稱::個性化檯曆的製作方法技術領域::本實用新型涉及一種檯曆,尤其涉及一種既顯示月曆、又能插入照片的個性化檯曆,屬於生活文化藝術用品領域。背景技術::公知的立式檯曆每頁皆由月曆和畫面兩部分構成,這兩部分都是事先印刷好,固定而不能更換的。畫面或為風景,或為模特、明星。功能單一局限性較大。特別是畫

一種實現縮放的視頻解碼方法

專利名稱:一種實現縮放的視頻解碼方法技術領域:本發明涉及視頻信號處理領域,特別是一種實現縮放的視頻解碼方法。背景技術: Mpeg標準是由運動圖像專家組(Moving Picture Expert Group,MPEG)開發的用於視頻和音頻壓縮的一系列演進的標準。按照Mpeg標準,視頻圖像壓縮編碼後包

基於加熱模壓的纖維增強PBT複合材料成型工藝的製作方法

本發明涉及一種基於加熱模壓的纖維增強pbt複合材料成型工藝。背景技術:熱塑性複合材料與傳統熱固性複合材料相比其具有較好的韌性和抗衝擊性能,此外其還具有可回收利用等優點。熱塑性塑料在液態時流動能力差,使得其與纖維結合浸潤困難。環狀對苯二甲酸丁二醇酯(cbt)是一種環狀預聚物,該材料力學性能差不適合做纖

一種pe滾塑儲槽的製作方法

專利名稱:一種pe滾塑儲槽的製作方法技術領域:一種PE滾塑儲槽一、 技術領域 本實用新型涉及一種PE滾塑儲槽,主要用於化工、染料、醫藥、農藥、冶金、稀土、機械、電子、電力、環保、紡織、釀造、釀造、食品、給水、排水等行業儲存液體使用。二、 背景技術 目前,化工液體耐腐蝕貯運設備,普遍使用傳統的玻璃鋼容

釘的製作方法

專利名稱:釘的製作方法技術領域:本實用新型涉及一種釘,尤其涉及一種可提供方便拔除的鐵(鋼)釘。背景技術:考慮到廢木材回收後再加工利用作業的方便性與安全性,根據環保規定,廢木材的回收是必須將釘於廢木材上的鐵(鋼)釘拔除。如圖1、圖2所示,目前用以釘入木材的鐵(鋼)釘10主要是在一釘體11的一端形成一尖

直流氧噴裝置的製作方法

專利名稱:直流氧噴裝置的製作方法技術領域:本實用新型涉及ー種醫療器械,具體地說是ー種直流氧噴裝置。背景技術:臨床上的放療過程極易造成患者的局部皮膚損傷和炎症,被稱為「放射性皮炎」。目前對於放射性皮炎的主要治療措施是塗抹藥膏,而放射性皮炎患者多伴有局部疼痛,對於止痛,多是通過ロ服或靜脈注射進行止痛治療

新型熱網閥門操作手輪的製作方法

專利名稱:新型熱網閥門操作手輪的製作方法技術領域:新型熱網閥門操作手輪技術領域:本實用新型涉及一種新型熱網閥門操作手輪,屬於機械領域。背景技術::閥門作為流體控制裝置應用廣泛,手輪傳動的閥門使用比例佔90%以上。國家標準中提及手輪所起作用為傳動功能,不作為閥門的運輸、起吊裝置,不承受軸向力。現有閥門

用來自動讀取管狀容器所載識別碼的裝置的製作方法

專利名稱:用來自動讀取管狀容器所載識別碼的裝置的製作方法背景技術:1-本發明所屬領域本發明涉及一種用來自動讀取管狀容器所載識別碼的裝置,其中的管狀容器被放在循環於配送鏈上的文檔匣或託架裝置中。本發明特別適用於,然而並非僅僅專用於,對引入自動分析系統的血液樣本試管之類的自動識別。本發明還涉及專為實現讀