複製鏈接
請複製以下鏈接發送給好友

CPK

(組合公鑰)

鎖定
在信息安全領域,CPK是“Combined Public Key”的縮寫,即中文名為組合公鑰,是一種加密算法,以很小的資源,生成大規模密鑰。
組合公鑰CPK( Combined Public Key)基於標識的數字簽名協議和密鑰交換協議,滿足證明的規模性和驗證的直接性,真正實現了 Shamir的設想,開闢了以組合化解決規模化的新路。2007年在組合公鑰的基礎上,形成了雙因子複合型組合公鑰TF-CPK,保留了組合公鑰的優點,增強了安全性,分別實現了複合化數字簽名和密鑰交換機制,解決了在集中式管理模式下由個人定義簽名密鑰的難點。 [1] 
中文名
組合公鑰
外文名
Combined Public Key
縮    寫
CPK
定    義
加密算法

CPK簡介

2003年提出了利用種子公鑰SPK( Seeded Puhlic Key)解決密鑰管理規模化的思想,提出基於RSA的多重公鑰(LPK)和基於橢網曲線加密(ECC,Elliptir Curves Cryptography)的基於標識的組合公鑰( CPK,Combined Puhlic KeV)兩種算法。CPK認證機制可以在可信環境中為大量用户提供簡潔、安全的密鑰管理。這種密鑰產生和存儲的新方式可以大大節省密鑰存儲空間,以少量的種子生成幾乎“無限”個公鑰,以兆比特級的空間存放千萬或上億個公鑰變量。CPK以簡捷的方式解決了規模化的密鑰管理,為構建認證體系提供了可靠的技術基礎。 [2] 
基於ECC的CPK的主要思想如下:
(1)設定由整數矢量(rij)組成的m*h階私鑰種子矩陣SSK。適當選取階為素數門的橢圓曲線E,選擇其上的一個基點G,計算公鑰矢量(rijG)=(xij,yij),得出公鑰種子矩陣PSK。保留SSK,公佈PSK; [2] 
(2)以用户A的標識ID為參數,作h次映射(映射函數可以是加密算法或Hash函數),得五個映射值MAPi(i=1,2,3,…,),進行模n下的加法運算,得出私鑰SK=(RMAP11+RMAP22+……+RMAPhh); [2] 
(3)根據映射值和公鑰種子矩陣,設用户A的h次映射值分別為i,j,k,進行橢圓曲線E上點的加法運算,得出公鑰PKA。由此形成了用户A的公、私鑰對PKA和SKA。因子矩陣大小為mh的CPK系統,可組合出的密鑰量卻為mh,因此,CPK只需很小的存儲空間就可形成一個相當大的密鑰空間。 [2] 

CPK原理

CPK密鑰管理體制是離散對數難題型的基於標識(身份)的密鑰生成與管理的體制。它依據離散對數難題的數學原理構建公開密鑰與私有密鑰矩陣,採用雜湊函數與密碼變換將實體的標識映射為矩陣的行座標與列座標序列,用以對矩陣元素進行選取與組合,生成數量龐大的由公開密鑰與私有密鑰組成的公鑰、私鑰對,從而實現基於標識的超大規模的密鑰生產與分發。 [1] 
CPK密鑰管理體制中密鑰生產與管理是集中式的,它通過註冊部(RA)、生產部(PA)和發行部(DA)接受實體的申請,對身份進行核查,生產基於標識的私鑰,並向實體靜態分發。各實體的私鑰是分散保存的,而公開密鑰矩陣可以採用最容易訪問的方式存放,供任意實體方便調用,使任意實體均能根據對方標識生產出其公開密鑰。 [1] 
CPK密鑰管理體制還採用定義作用域密鑰參數的方法,實現不同系統的分割;採用一個實體多個標識的設置,滿足一卡多用的需求,使得該體制更增強了應用中的安全性、靈活性和適應性。 [1] 
CPK密鑰管理體制既可以基於一般有限域離散對數問題構建,也可以基於橢圓曲線離散對數問題構建。鑑於橢圓曲線離散對數問題在密碼應用中具有在相同安全度條件下所佔用的資源小於一般有限域離散對數問題的優勢。 [1] 

CPK作用

CPK是基於組合的公鑰體制,將密鑰生產和密鑰管理結合起來,能夠實現數字簽名和密鑰交換,可以滿足超大規模信息網絡與非信息網絡(包括物聯)中的標識鑑別、實體鑑別、數據保密需求。

CPK特性

CPKECC特性

ECC遵從IEEE標準。
組合矩陣(Combining-matrix)分為私鑰矩陣和公鑰矩陣,分割密鑰序列(Separating-keysequence )由一定數量的分割密鑰(Separating-key)構成,密鑰對用(ssk, SPK)標記。
標識密鑰(Identity-key)由標識產生,用(isk,IPK)標記。
組合密鑰(Combined-key)由標識密鑰和分割密鑰複合而成,用(csk,CPK)標記。

CPK複合特性

組合公鑰體制採用有限域Fp上的橢圓曲線E:
,以參數(a, b,G, n, p)定義。其中a, b是係數,a,b,x,y∈p,G為加法羣的基點,n是以G為基點的羣的階。令任意小於n的整數為私鑰,則rG=R為對應公鑰。
ECC複合特性如下:
在橢圓曲線密碼ECC中,任意多對公、私鑰,其私鑰之和與公鑰之和構成新的公、私鑰對。
如果,私鑰之和為:( r1 + r2 + … + rm ) mod n = r;
則對應公鑰之和為: R1 + R2 + … + Rm= R (點加);
那麼,r和R剛好形成新的公、私鑰對。
因為,R = R1 + R2 + … + Rm =r1G + r2G +…+ rmG = (r1 +r2 +…+ rm) G = rG。

CPK密鑰分類

CPK標識密鑰

一、組合矩陣
組合矩陣分為私鑰矩陣和公鑰矩陣。矩陣大小均為hx32,用(ri,j)或(Ri,j)表示,i=1..h,j=1..32。r是小於n的隨機數。私鑰矩陣(ri,j)用於私鑰的生成,是秘密變量。公鑰矩陣由私鑰矩陣派生,即 ri,j G= (xi,j,yi,j) =Ri,j,是公開變量。
二、標識到矩陣座標的映射
標識到組合矩陣座標的映射通過將標識ID經Hash變換變成YS序列實現:YS =Hash (ID)= w1,w2,…,w34;w的字長為k比特,k由矩陣的行數h決定,即h=2,w1 - w32依次指示行座標。w33- w34指示分割密鑰座標。列座標從1到32順序啓用。
三、標識密鑰的計算
標識私鑰(isk)的計算在KMC進行。設第i列所用行座標用wi表示,令標識私鑰為isk,那麼私鑰以有限域域Fp上的倍數加法實現,實體Alice的私鑰為:公鑰計算以橢圓曲線E上的倍點加法實現,對應公鑰為:分割密鑰
分割密鑰由YS序列中的w33,w34指示,從分割密鑰序列中選取,並只以公鑰形式存在,分割公鑰序列SPKi可以文件形式公佈,或記入CPK-card。

CPK組合密鑰

標識密鑰和分割密鑰複合形成組合密鑰。設分割私鑰為ssk,實體Alice的組合私鑰cskAlice由KMC計算:
cskAlice = (iskAlice +sskAlice)mod n;
將組合私鑰cskAlice記入Alice的CPK-card並刪除分割私鑰sskAlice。
組合公鑰由各依賴方計算:CPKAlice=IPKAlice+SPKAlice。

CPK性能規格

CPK安全界限

CPK組合私鑰csk是標識私鑰isk和分割私鑰ssk相加而成,分割私鑰序列是亂數序列,用於對標識私鑰的加密。因為標識私鑰是組合矩陣變量的線性組合,只有消除分割私鑰的影響,才能暴露標識密鑰的線性方程。消除分割私鑰的辦法是尋找分割私鑰的重複。
設組合矩陣變量的總量為N1,分割私鑰變量的總量為N2。因為標識密鑰方程組的秩為N1-1,要列N1個聯立方程,至少要獲得N1個重複。假設用户量為N1*N2,分割私鑰重複的概率為N1次,那麼可以找到N1個重複,但是:
a) 在這些重複中,只有參與共謀的才有私鑰,可以列出方程,而沒有參與共謀的,即使找到了重複,也因為沒有私鑰,所以列不出方程,因而沒有意義。
b) 在消除分割私鑰影響以後的組合私鑰的線性方程中,又只有線性無關方程才有意義,而線性相關方程沒有意義。
當N1*N2個用户全體參與共謀的情況下,N1個方程恰好滿秩的可能性幾乎等於零,顯然方程不可能有唯一解,私鑰的組合矩陣仍然是安全的。

CPK密鑰規模

當組合矩陣變量總量為N1,分割密鑰變量總量為N2時,公佈所需要的空間是兩個總量之和(N1+N2),而密鑰規模則是兩個總量的乘積(N1*N2),因此當N1=N2時,其密鑰規模最大。密鑰規模是指無意義共謀規模的上限(實際上,離真正得上限還差很遠),如果本規模的共謀是不可能事件,那麼用户規模可以是無限的。假設ECC密鑰長度為160比特(20B),其公鑰長度為40B,那麼密鑰的存儲量和密鑰規模的關係如下表。
N1
2(40KB)
2(160KB)
N2
2(40KB)
2(160KB)
規模
2=1..0x10
2=1.6x10?

CPKPKI、IBE、CPK的比較

PKI、IBE、CPK在密鑰產生、密鑰分發管理等幾個方面具有自己的特點。 [2] 

CPK密鑰產生

密鑰產生方式主要有兩種,分別是集中式模式和分散式模式。 [2] 
PKI的密鑰產生方式屬於分散式。PKI的私鑰由用户自己保存,不需要傳遞私鑰,不依賴安全信道,公鑰是隨機計算生成的號碼,它必須通過證書才能與用户的身份關聯到一起,通信雙方必須通過CA利用數字證書進行身份確認,即身份確認過程必須建立在對第i方的共同信任的基礎之上。 [2] 
IBE用户的公鑰就足該用户的身份標識,私鑰的產生方式屬於集中式。IBF的私鑰由PKG產生,用户可以在每次需要私鑰時將自己的標識發送給PKG,PKG將計算後得到的私鑰通過秘密通道發回給用户,IBE用户也可以自己保存私鑰,PKG只做定期更新用户私鑰的工作。在IBE系統用户獲得私鑰後即使離線也可解密文件,輕鬆達到認證目的。 [2] 
CPK的密鑰產生方式屬於集中式。CPK的種子矩陣由可信第三方KMC離線生產。私鑰種子矩陣保密,公鑰種子矩陣公開,KMC適當選擇單向陷門函數作為公鑰查詢函數,根據用户身份標識ID唯一確定列因子的一種組合,PSK和SSK採用同樣選擇方法,求和後分別作為用户的公鑰和私鑰,並通過安全信道交付用户使用。 [2] 

CPK密鑰分發管理

密鑰的分發和管理分靜態和動態兩種方式。PKI的公鑰保存在證書中,證書採用靜態分發,動態管理的模式,LDAP(Lightweight Directory Access Protocol,輕量目錄訪問協議)目庫一直在線運行,其維護量很大,運行費用也很高。另外,PKI由於用户遺失私鑰或離職需要更改或撤銷證書是一件非常閒難的事情。 [2] 
IBE的密鑰採用動態分發,動態管理的模式,CPK的密鑰採用靜態分發,靜態管理的模式在IBE和CPK系統中,由可信機構根據用户選擇的公鑰來產生相對應的私鑰,所以私鑰的產生可以滯後於公鑰的產生。用户不必始終保存自己的私鑰,因此不必擔心私鑰泄露的問題。IBE和CPK密鑰的更換和撤銷是一件非常簡單的事情。只要用户在選擇公鑰的時候加上有關使用期限的信息(比如current year表示本年內使用,rurrent day表示今天內使用),因為每天的日期不同使得公鑰可以根據需要更換,超過了使用期限的私鑰就不能再使用。而密鑰的撤銷只需可信機構在確認用户身份的時候,限制非法用户得到私鑰即可。此外發送方在選擇用户ID的同時,可以加入可查看該消息的用户權限,用於將消息羣發時,只有接收方獲得該權限才能獲得私鑰查看消息。 [2] 
參考資料
  • 1.    南湘浩著.CPK標識認證:國防工業出版社,2006年10月:第50頁
  • 2.    王國才,施榮華主編.計算機通信網絡安全:中國鐵道出版社,2016.09:第76頁