基于身份的代理密碼方法中通用的代理鍵產生方法
【技術領域】
[0001] 本發明涉及信息安全技術領域,尤其涉及一種基于身份的代理密碼方法中通用的 代理鍵產生方法。
【背景技術】
[0002] 無論是在現實環境還是網絡環境,人們經常需要將自己的某些權利委托給可靠的 代理人,讓代理人代表自己去行使這些權利。比如一個公司的經理或者一個單位的領導出 差了,為了不影響公司或者單位的正常運作,他可以委托他的秘書或者助手在他出差期間 代表他在一些重要的文件上簽名;又比如一個網絡銷售公司,由于交易的用戶很多導致主 服務器服務質量下降,網絡延遲加長,嚴重影響了用戶的體驗。此時公司可以委托一些二級 服務商,讓他們代替主服務器行使用戶驗證的權利以此緩解主服務器的負擔等。以上這些 在現實社會中或網絡環境中很常見的委托問題,可以用代理的方法有效的解決。然而隨著 信息技術的快速發展,信息安全問題頻繁的發生,使得網絡環境的代理遠遠比現實環境中 的代理要復雜的多。
[0003] 密碼技術作為信息安全領域的核心技術之一,是最常用來解決網絡安全問題的技 術。因此,各種各樣的基于密碼技術的代理方案被大量的提出,以用于解決網絡環境下的安 全代理問題。其中,基于身份的代理密碼方案由于不需要傳統的公鑰基礎設施(PKI)、能節 省公鑰管理和維護的成本而成為研究的熱點,被廣泛的應用于電子商務、移動代理、分布式 網絡環境中。然而,目前提出的基于身份的代理密碼方案普遍存在以下的一些缺點:
[0004] 1、代理公鑰鍵構造復雜、計算量大。大部分基于身份的代理密碼方案中,代理私鑰 鍵由以下幾個部分構成:原始操作人用自己的私鑰在授權證書上的簽名+代理操作人的私 鑰,代理操作人再由這個代理私鑰鍵產生代理公鑰鍵。由此可以看到,產生的代理公鑰鍵由 原始操作人的公鑰、代理操作人的公鑰、授權證書以及其它一些輔助參數組成。由于方案在 驗證過程中需要使用代理公鑰鍵,這使得最后產生的方案需要花費大量的時間來重構代理 公鑰鍵,計算復雜且效率低下。
[0005] 2、代理鍵的產生方式單一,沒有通用性。目前大部分的基于身份的代理鍵(包括代 理公鑰鍵、代理私鑰鍵)產生都是基于某種特殊的應用背景,比如:適合簽名環境的(基于身 份的代理簽名鍵),適合加密環境的(基于身份的代理重加密鍵)等等。更重要的是,這些代 理鍵產生方法只能用于這個作者提出的這個方案,不能用于其他作者提出的方案。由于每 次都需要重新建立代理鍵的產生方法,使得設計成本和時間開銷大大增加。
[0006] 3、代理鍵的傳遞需要秘密信道,降低了安全性。大部分基于身份的代理密碼方案 在代理鍵產生過程中需要秘密的信道傳遞產生的參數,如果不用秘密信道,這些參數就會 暴露,敵手能輕而易舉的獲取這些參數,一旦敵手獲得了這些參數,它們就能進行攻擊、搞 各種破壞,這無疑大大降低了方案的安全性。
【發明內容】
[0007] 本發明提供一種基于身份的代理密碼方法中通用的代理鍵產生方法,直接使用授 權證書作為代理公鑰鍵,采用哈希函數對中間參數進行加密,使用本方法建立的各種高效 的基于身份的代理密碼方法,可廣泛應用于電子商務、移動代理、分布式網絡等,可大大提 高它們的運行效率和安全性。
[0008] 為了達到上述目的,本發明提供一種基于身份的代理密碼方法中通用的代理鍵產 生方法,該通用的代理鍵產生方法可應用到任意一種已知的基于身份的密碼方法中,該通 用的代理鍵產生方法包含以下步驟:
[0009] 步驟S101、原始操作人0建立授權證書Warrant,直接將授權證書Warrant作為代理 公鑰;
[0010] 步驟S102、原始操作人0利用原始操作人的私鑰d。對授權證書Warrant進行加密, 獲得第一加密參數〇i,將該第一加密參數〇i通過公開信道發給代理操作人P;
[0011]步驟S103、如果代理操作人P接受原始操作人0的委托,則利用代理操作人的私鑰 dp對第一加密參數〇1進行加密,獲得第二加密參數〇2,將該第二加密參數〇2通過公開信道發 給 PKG;
[0012] 步驟S104、PKG對第二加密參數〇2進行驗證,如果通過驗證,則利用系統主密鑰s產 生授權證書Warrant對應的代理私鑰dw,利用代理操作人的私鑰心對代理私鑰dw進行加密, 產生第三加密參數〇3,并將該第三加密參數〇3通過公開信道發給代理操作人P ;
[0013] 步驟S105、代理操作人P利用代理操作人的私鑰^從第三加密參數〇3中提取代理私 鑰 skw〇
[0014]所述的授權證書Warrant包含原始操作人0的身份信息、代理操作人P的身份信息、 代理授權的內容、日期范圍。
[0015]所述的第一加密參數~是由原始操作人的私鑰d。、授權證書Warrant和當前的時間 戳Stamp經過哈希函數Hi計算產生,即〇i = Hi(d。| | Warrant | | Stamp),其中,哈希函數Hi是PKG (私鑰生成器,Private Key Generator)建立的,哈希函數Hi: {0,1}*4ZP%如果原始操作人 的私鑰d。包含一個以上的參數,則需要將所有的參數串聯輸入哈希函數出中。
[0016] 所述的第二加密參數〇2是由授權證書Warrant、當前的時間戳Stamp和秘密值R經 過哈希函數Hi計算產生,即〇2 = Hi(R| | Warrant | | Stamp),其中R=〇i XdP;如果代理操作人的 私鑰dP包含一個以上的參數,則需要將所有的參數分別與第一加密參數〇i相乘,然后串聯輸 入哈希函數Hi中。
[0017] 所述的對第二加密參數〇2進行驗證包含:驗證等式ti = Hi((1。| | Warrant | | Stamp) 和t3 = Hi(t2| |Warrant| |5七311^)是否成立,其中42 = 1:1\(11),如果兩個等式成立,貝1|通過驗 證;如果原始操作人的私鑰d。和代理操作人的私鑰心由多個參數組成,那么(1。= ^ |(1。2 ......,t2 = tiXdPi | | tiXdP21 ......。
[0018] 所述的利用系統主密鑰S產生授權證書Warrant對應的代理私鑰dw包含:PKG運行 IDC. Extract,輸入系統公共參數params、系統主密鑰s和授權證書Warrant,輸出代理私鑰 如,即10(^11^(31^3瓜1118,8,1)4(11,其中,10(^11^(31:是任意一種已知的基于身份的密 碼方法IDC中的私鑰抽取階段,系統公共參數params和系統主密鑰s是PKG根據安全參數k運 行IDC. Setup得到的,IDC. Setup是任意一種已知的基于身份的密碼方法IDC中的系統初始 化階段。
[0019] 所述的第三加密參數〇3是由代理操作人的私鑰^、授權證書Warrant和當前的時間 戳Stamp經過哈希函數Hi的計算后再加上代理私鑰dw產生,即〇3 = dw+Hi(dP | | Warrant | Stamp) XdP;如果代理私鑰dw包含一個以上的參數,則需要將所有的參數分別和出^ | Warrant | | Stamp) X cU目加,然后將這些相加結果一起作為第三加密參數〇3。
[0020] 所述的代理私鑰skw是由第三加密參數〇3減去哈希函數Hi對代理操作人的私鑰dP、 授權證書Warrant和當前的時間戳Stamp的哈希值產生,即skw = 〇3_Hi(dP | | Warrant | Stamp) XdP = dw;如果第三加密參數〇3包含一個以上的參數,則需要對每個參數分別減去Hi (dP | |Warrant | | Stamp) XdP,得到的所有相減結果就是提取的完整代理私鑰skw。
[0021 ]本發明還提供一種基于身份的代理密碼方法,包含以下步驟:
[0022]步驟S1、系統初始化:PKG建立哈希函數Hi,并根據安全參數k建立系統參數params 和系統主密鑰s,PKG公布系統參數params和哈希函數Hi,秘密保存系統主密鑰s;
[0023]步驟S2、抽取私鑰:PKG根據原始操作人0提交的身份信息ID。,用系統主密鑰s產生 原始操作人的私鑰d。,公鑰直接采用原始操作人0的身份信息ID。,通過秘密信道將原始操作 人的私鑰d。發送給原始操作人0,PKG根據代理操作人P提交的身份信息ID P,用系統主密鑰s 產生代理操作人的私鑰4,公鑰直接采用代理操作人的身份信息IDP,通過秘密信道將代理 操作人的私鑰d P發送給代理操作人P;
[0024]步驟S3、利用所述的基于身份的代理密碼方法中通用的代理鍵產生方法來產生代 理鍵;
[0025] 步驟S4、產生代理簽名:代理操作人P使用系統參數params和步驟S3