專(zhuān)利名稱(chēng):用戶(hù)實(shí)體自產(chǎn)生公鑰證書(shū)并管理公鑰證書(shū)系統(tǒng)和方法
技術(shù)領(lǐng)域:
本發(fā)明涉及的是一種數(shù)字信息安全技術(shù),特別涉及的是一種用戶(hù)實(shí)體自產(chǎn) 生公鑰證書(shū)并管理公鑰證書(shū)的系統(tǒng)以及通過(guò)上述系統(tǒng)實(shí)現(xiàn)的相應(yīng)方法。
背景技術(shù):
對(duì)于力口密算法而言,PKI (Public Key Infrastructure,公鑰基礎(chǔ)設(shè)施),其最 主要的功能是安全地完整地發(fā)布用戶(hù)實(shí)體公鑰及相應(yīng)的證書(shū),并使得用戶(hù)實(shí)體 安全地使用其它用戶(hù)實(shí)體的公鑰及相應(yīng)的證書(shū)。PKI是現(xiàn)在網(wǎng)絡(luò)安全部件及應(yīng)用 的基礎(chǔ),如SSL, IPsec, https, PGP, SET等;正是由于有了PKI做基礎(chǔ),才使得 的Email通信、電子商務(wù)、電子選舉等安全應(yīng)用成為了可能。請(qǐng)參閱圖l所示,其 為現(xiàn)有的公鑰產(chǎn)生系統(tǒng)的結(jié)構(gòu)示意圖,其中所述的PKI主要包4舌CA(Certificate Authority)證書(shū)認(rèn)證機(jī)構(gòu)和申請(qǐng)公鑰證書(shū)的一些用戶(hù)實(shí)體l,所述的用戶(hù)實(shí)體l 向CA申請(qǐng)公鑰證書(shū),CA向用戶(hù)實(shí)體發(fā)放公鑰證書(shū),根據(jù)功能劃分,CA又可以 分為兩個(gè)部分來(lái)實(shí)現(xiàn)最主要的幾個(gè)功能(1) 注冊(cè)機(jī)構(gòu)(Registration Authodty)2 ,簡(jiǎn)稱(chēng)為RA,負(fù)責(zé)完成用戶(hù)實(shí)體l的 信息的錄入,用戶(hù)實(shí)體l的身份認(rèn)證。(2) 密鑰管理服務(wù)器(Key Management Server)3,簡(jiǎn)稱(chēng)為KMS。當(dāng)RA2對(duì)用 戶(hù)實(shí)體l的認(rèn)證通過(guò)后,KMS3負(fù)責(zé)為用戶(hù)實(shí)體l生成公私鑰對(duì),并向用戶(hù)實(shí)體l 發(fā)放公鑰證書(shū),公鑰證書(shū)主要包括用戶(hù)實(shí)體l的身份信息,用戶(hù)實(shí)體l的公鑰, 證書(shū)的發(fā)放日期和有效期等信息,以及CA對(duì)這些信息的哈希(hash)值的一個(gè) 簽名,KMS3把用戶(hù)實(shí)體l相應(yīng)的私鑰和公鑰證書(shū)發(fā)放給用戶(hù)實(shí)體l。將用戶(hù)實(shí)體1的公鑰證書(shū)等相關(guān)信息存儲(chǔ)在證書(shū)資料庫(kù)31中。 同時(shí)將已被撤消的用戶(hù)實(shí)體1的公鑰證書(shū)存儲(chǔ)在證書(shū)撤消列表3 2中。 KMS3管理用戶(hù)實(shí)體的公鑰證書(shū),并維護(hù)證書(shū)資料庫(kù)31和公鑰證書(shū)撤消列表 32,向用戶(hù)實(shí)體提供在線服務(wù)。當(dāng)用戶(hù)實(shí)體A要使用用戶(hù)實(shí)體B的公鑰證書(shū)時(shí),首先要向CA的公鑰證書(shū)撤消列表服務(wù)器查詢(xún)用戶(hù)實(shí)體B的公鑰證書(shū)是否在撤消列表中。如果在,說(shuō)明用戶(hù)實(shí)體B的公鑰證書(shū)已經(jīng)失效,否則就可以使用用戶(hù)實(shí)體B的公鑰證書(shū)了 ,公鑰證書(shū) 將用戶(hù)實(shí)體B的信息與用戶(hù)實(shí)體B的公鑰進(jìn)行綁定,而由于CA是可信的第三方, 所以C A在公鑰證書(shū)上的簽名實(shí)質(zhì)上也就表達(dá)了證書(shū)的真實(shí)性和可認(rèn)證性。但是對(duì)于以CA為中心的PKI仍然存在一些固有的缺陷,如CA的工作復(fù)雜而 繁重,尤其是對(duì)用戶(hù)實(shí)體l公鑰證書(shū)的管理,CA負(fù)責(zé)證書(shū)的產(chǎn)生,維護(hù)和撤消。 當(dāng)用戶(hù)實(shí)體l的數(shù)目增多,CA的管理任務(wù)就會(huì)益加復(fù)雜而繁重;用戶(hù)實(shí)體1向CA申請(qǐng)證書(shū)時(shí),需要向CAi正明用戶(hù)實(shí)體1的私鑰和7>鑰是匹配 的,目前主要有兩種方法生成用戶(hù)實(shí)體l的公鑰和私鑰第一種方法是前面敘述的,由CA中的密鑰管理服務(wù)器KMS3協(xié)助用戶(hù)實(shí)體l 生成公鑰和私鑰,然后將公鑰和私鑰告訴用戶(hù)實(shí)體l,這種做法實(shí)質(zhì)上使得CA 知道了用戶(hù)實(shí)體l的私鑰,違反了用戶(hù)實(shí)體l的私鑰的隱私性,雖然CA是可信的 第三方,但是CA掌控用戶(hù)實(shí)體l的私鑰還是會(huì)增大私鑰泄露的機(jī)會(huì);第二種方法用戶(hù)實(shí)體l自己生成公私鑰,然后將公鑰提交CA,私鑰自己保存。 這種方法的好處是CA也不知道用戶(hù)實(shí)體l的私鑰,但是缺點(diǎn)是用戶(hù)實(shí)體l必須向 CA證明自己知道與所提交的公鑰相對(duì)應(yīng)的私鑰,但是這則需要復(fù)雜的零知識(shí)證 明技術(shù)。鑒于上述缺陷,本發(fā)明創(chuàng)作者經(jīng)過(guò)長(zhǎng)時(shí)間的研究和實(shí)踐終于獲得了本創(chuàng)作。 發(fā)明內(nèi)容本發(fā)明的目的在于,提供一種用戶(hù)實(shí)體自產(chǎn)生公鑰證書(shū)并管理公鑰證書(shū)的 系統(tǒng)和方法,用以克服上述缺陷。為實(shí)現(xiàn)上述目的,本發(fā)明采用的技術(shù)方案在于,首先提供一種用戶(hù)實(shí)體自 產(chǎn)生公鑰證書(shū)并管理公鑰證書(shū)的系統(tǒng),其包括用戶(hù)實(shí)體;一可信第三方用以和用戶(hù)實(shí)體進(jìn)行數(shù)據(jù)交互,并生成部分私鑰給所述的用 戶(hù)實(shí)體;一服務(wù)器,用以存儲(chǔ)所述用戶(hù)實(shí)體自己生成或更新的公鑰證書(shū)。 其中,任何用戶(hù)實(shí)體允許對(duì)所述的服務(wù)器進(jìn)行訪問(wèn),并查詢(xún)公鑰證書(shū),但 只允許修改和更新自己的公鑰證書(shū)。其次本發(fā)明提供一種用戶(hù)實(shí)體自產(chǎn)生公鑰證書(shū)并管理公鑰證書(shū)的方法,其 是通過(guò)上述的用戶(hù)實(shí)體自產(chǎn)生公鑰證書(shū)并管理公鑰證書(shū)的系統(tǒng)實(shí)現(xiàn)的,其包括的步驟為步驟a:生成建立系統(tǒng)所需要的系統(tǒng)參數(shù);步驟b:用戶(hù)實(shí)體與可信第三方進(jìn)行秘密的數(shù)據(jù)交互,所述的可信第三方參 與生成所述用戶(hù)實(shí)體的部分私鑰;步驟c:所述的用戶(hù)實(shí)體利用部分私鑰生成或更新完整的公鑰和私鑰以及相 應(yīng)的7〉鑰證書(shū);步驟d:服務(wù)器利用用戶(hù)實(shí)體的公鑰證書(shū)和系統(tǒng)參數(shù),驗(yàn)證用戶(hù)實(shí)體的公鑰 i正書(shū)的準(zhǔn)確性。其中,所述的步驟a生成建立系統(tǒng)所需要的系統(tǒng)參數(shù),其包括的步驟為 步驟al:根據(jù)安全參數(shù)人,選擇一個(gè)大的素?cái)?shù)p; 步驟a2:選擇階為p的一個(gè)群G; 步驟a3:隨機(jī)地選取集合z/上的元素x; 步驟a4:從所述的群G中隨機(jī)選取一個(gè)不是單位元的元素g; 步驟a5:在所述的群G上計(jì)算y-gX; 步驟a6:選擇一個(gè)哈希函數(shù),記為H: {0, 1}'—Zp; 步驟a7:輸出公開(kāi)參數(shù)param- (p, G, g, y)和主密鑰x。 其中,步驟b:用戶(hù)實(shí)體與可信第三方進(jìn)行秘密的數(shù)據(jù)交互,所述的可信第 三方參與生成所述的用戶(hù)實(shí)體的部分私鑰,其包括的步驟為 步驟bl:用戶(hù)實(shí)體隨機(jī)選取所述集合Z/上的元素z;步驟b2:用戶(hù)實(shí)體在所述的群G上計(jì)算u = gz,所述的g為系統(tǒng)的一個(gè)公 開(kāi)參數(shù);步驟b3:所述的用戶(hù)實(shí)體向所述的可信第三方發(fā)送u; 步驟b4:所述的可信第三方收到所述的u后,輸出部分私鑰s和輔助驗(yàn)證 信息w;步驟b5:所述的用戶(hù)實(shí)體驗(yàn)證來(lái)自于所述可信第三方生成的部分私鑰s的 合法性,如果合法則執(zhí)行下述步驟b6,如果不合法執(zhí)行bl;步驟b6:所述用戶(hù)實(shí)體的私鑰為兩部分,由所述用戶(hù)實(shí)體生成的部分私鑰 為sk!-z,由所述可信第三方為所述的用戶(hù)實(shí)體生成的部分私鑰為sk2 = s。其中,步驟b4:所述的可信第三方收到所述的u后,輸出部分私鑰s和輔 助驗(yàn)證信息w;包括的步驟為步驟b41:隨機(jī)選取所述集合Z/上的元素t; 步驟b42:計(jì)算輔助驗(yàn)證信息w = g"步驟b43:計(jì)算部分私鑰s = t + xH(IDIIuw),其中哈希函數(shù)是H公開(kāi)的參數(shù), ID是所述用戶(hù)實(shí)體的身份信息。其中,步驟c:用戶(hù)實(shí)體利用部分私鑰生成或更新完整的公鑰和私鑰以及相 應(yīng)的公鑰證書(shū),其包括的步驟為步驟cl:所述的用戶(hù)實(shí)體獲得系:統(tǒng)參數(shù)pamm、部分私鑰s、和sk2;步驟c2:所述的用戶(hù)實(shí)體隨機(jī)地選取所述的集合Z/上的元素k;步驟c3:計(jì)算完整的私鑰為sk=ski + sk2 + k=z+s + k;步驟c4:計(jì)算中間量pk (1' = uw = gz + t; 步驟c5:計(jì)算中間量pk(2) = pk(')gy,単"))ggk =gz + s + k步驟c6:計(jì)算中間量沐(3) =gk;步驟c7:隨機(jī)選取所述的集合Z/上的元素r,并計(jì)算中間量?1^(4)= (R,5) 5步驟c8:用戶(hù)實(shí)體的公鑰為pk- (pk("llpk(2)llpk(3)llpk④);步驟c9:用戶(hù)實(shí)體的公鑰證書(shū)為cert= (ID||pk||timel|validity ) = (ID||pk (" ||pk(2)||pk(3>||pk(4)||time||validity),其中time為證書(shū)生成時(shí)間,validity為證書(shū) 的有效期,ll表示級(jí)聯(lián)關(guān)系。其中,步驟c7:隨機(jī)選取所述的集合Z,上的元素r,并計(jì)算中間量 pk(4) = (R, S);其包括的步驟為步驟c71:計(jì)算R-gf;步驟c72:計(jì)算S = r + sAg/7(/Z) PP; A:(2) PpA:(3) P"附e Pva//&Xv P及)。其中,步驟d:利用用戶(hù)實(shí)體的公鑰證書(shū)和系統(tǒng)參數(shù),驗(yàn)證用戶(hù)實(shí)體的公鑰證書(shū)的準(zhǔn)確性,其包括的步驟為步驟dl:如果當(dāng)前時(shí)間在證書(shū)的有效期內(nèi),則執(zhí)行下述步驟d2,否則執(zhí)行下述步驟d4;步驟d2:驗(yàn)證pk(" - pk"V(,"')g)k")是否成立,如果成立則執(zhí)行下述步驟 d3,否則執(zhí)行下述步驟d4;步驟d3:計(jì)算<formula>formula see original document page 9</formula>,如果成立,則證書(shū)視為有效,否則執(zhí)行下述步驟d4;步驟d4: -瞼證用戶(hù)實(shí)體的公鑰證書(shū)為無(wú)效。與現(xiàn)有技術(shù)比較,本發(fā)明的有益效果在于,其將傳統(tǒng)的PKI中CA集中生成 并管理用戶(hù)實(shí)體證書(shū)的功能分散給各個(gè)用戶(hù)實(shí)體,在一個(gè)可信第三方的幫助下, 用戶(hù)實(shí)體產(chǎn)生自己的證書(shū),同時(shí)來(lái)負(fù)責(zé)自己的證書(shū)的管理。自己管理自己的證 書(shū)可以避免傳統(tǒng)PKI中CA的集中式管理所帶來(lái)的一切弊端。同時(shí),本發(fā)明所提 供的用戶(hù)實(shí)體自產(chǎn)生證書(shū)的方法和系統(tǒng)適用于任意基于離散對(duì)數(shù)的公鑰加密及 數(shù)字簽名體制。
圖1為現(xiàn)有的公鑰證書(shū)產(chǎn)生系統(tǒng)的結(jié)構(gòu)示意圖;圖2為本發(fā)明用戶(hù)實(shí)體自產(chǎn)生公鑰證書(shū)并管理公鑰證書(shū)的系統(tǒng)的結(jié)構(gòu)示意圖;圖3為本發(fā)明用戶(hù)實(shí)體自產(chǎn)生公鑰證書(shū)并管理公鑰證書(shū)的方法的流程圖。
具體實(shí)施方式
以下結(jié)合附圖,對(duì)本發(fā)明上述的和另外的技術(shù)特征和優(yōu)點(diǎn)作更詳細(xì)的說(shuō)明。 請(qǐng)參閱圖2所示,其為本發(fā)明用戶(hù)實(shí)體自產(chǎn)生公鑰證書(shū)并管理公鑰證書(shū)的 系統(tǒng)的結(jié)構(gòu)示意圖;其包括用戶(hù)實(shí)體l; 一可信第三方4用以和用戶(hù)實(shí)體1進(jìn) 行數(shù)據(jù)交互,并生成部分私鑰給所述的用戶(hù)實(shí)體1, 一服務(wù)器5,用以存儲(chǔ)所述 用戶(hù)實(shí)體自己生成或更新的公鑰證書(shū),所述的服務(wù)器受到一資料庫(kù)支持,其中, 可信第三方4對(duì)用戶(hù)實(shí)體1提供認(rèn)證服務(wù),認(rèn)證通過(guò)后,為用戶(hù)實(shí)體l產(chǎn)生部 分私鑰;可信第三方4對(duì)用戶(hù)實(shí)體l認(rèn)證通過(guò)后,通知服務(wù)器5為用戶(hù)實(shí)體l開(kāi)帳戶(hù), 向用戶(hù)實(shí)體l提供ftp服務(wù)。用戶(hù)實(shí)體l在自己的帳戶(hù)上上載自己的公鑰證書(shū)。系 統(tǒng)中所有的用戶(hù)實(shí)體1在服務(wù)器5中有權(quán)利對(duì)自己的帳戶(hù)實(shí)時(shí)進(jìn)行數(shù)據(jù)的上載、 修改、維護(hù)等操作,但是對(duì)于其他用戶(hù)實(shí)體的帳戶(hù),用戶(hù)實(shí)體l只有下載數(shù)據(jù)的 權(quán)利,沒(méi)有修改的權(quán)利。請(qǐng)參閱圖3所示,其為本發(fā)明用戶(hù)實(shí)體自產(chǎn)生公鑰證書(shū)并管理公鑰證書(shū)的 方法的流程圖;其包括的步驟為步驟a:生成建立系統(tǒng)所需要的系統(tǒng)參數(shù);步驟b:用戶(hù)實(shí)體1與可信第三方4進(jìn)行數(shù)據(jù)交互,所述的可信第三方4參 與生成所述用戶(hù)實(shí)體1的部分私鑰;步驟c:所述的用戶(hù)實(shí)體1利用部分私鑰生成或更新完整的^^鑰和私鑰以及 相應(yīng)的公鑰i正書(shū);步驟d:服務(wù)器5利用用戶(hù)實(shí)體1的公鑰證書(shū)和系統(tǒng)參數(shù),驗(yàn)證用戶(hù)實(shí)體l 的7>鑰證書(shū)的準(zhǔn)確性。下面將具體進(jìn)行相應(yīng)的說(shuō)明,其中,本發(fā)明用戶(hù)實(shí)體自產(chǎn)生公鑰證書(shū)并管 理公鑰證書(shū)的方法中生成建立系統(tǒng)所需要的系統(tǒng)參數(shù)的流程包括的步驟為步驟al:根據(jù)安全參數(shù)X,選擇一個(gè)大的素?cái)?shù)p;步驟a2:選擇階為p的一個(gè)群G;步驟a3:隨機(jī)地選取集合z/上的元素x;步驟a4:從所述的群G中隨機(jī)選取一個(gè)不是單位元的元素g;步驟a5:在所述的群G上計(jì)算y-gX;步驟a6:選擇一個(gè)哈希函數(shù),記為H: {0, 1}'—Zp;步驟a7:輸出公開(kāi)參數(shù)param- (p, G, g, y)和主密鑰x。為了使上述的本發(fā)明用戶(hù)實(shí)體自產(chǎn)生公鑰證書(shū)并管理公鑰證書(shū)的方法中生 成建立系統(tǒng)所需要的系統(tǒng)參數(shù)的流程圖,下面以ElGamal公鑰加密體制為例, 其具體實(shí)施為選擇一個(gè)至少X比特的大素?cái)?shù)p;計(jì)算q-2p+l,如果q是素?cái)?shù),則執(zhí)行下述步驟,否則執(zhí)行步驟(al) 步驟(a2 ) 上述步驟(al ) 步驟(a3 ) 步驟(a4 ) 步驟(a5 ) 步驟(a6 ) 步驟(a7 )隨機(jī)選取集合Zq^上的元素h,令g^h2mod q; 選擇以g為生成元的階為p的一個(gè)乘法群G; 隨機(jī)地選取集合Zp'上的元素x,在群G上計(jì)算y=gxmod q; 選擇一個(gè)哈希函數(shù),記為H: {0, 1}*—Zp; 輸出/>開(kāi)參凄史卩3『3111= (p, q, G, H, g, y)和主密鑰x。 對(duì)于可信第三方在整個(gè)系統(tǒng)中公開(kāi)param。系統(tǒng)的用戶(hù)實(shí)體1向可信第三方4提交注冊(cè)請(qǐng)求,可信第三方4進(jìn)行注冊(cè) 時(shí),驗(yàn)證用戶(hù)實(shí)體l的身份,如果用戶(hù)實(shí)體1的身份認(rèn)證通過(guò),所述的可信第三方4參與生成所述的用戶(hù)實(shí)體1的部分私鑰,否則其會(huì)拒絕服務(wù)。其中,對(duì)于本發(fā)明用戶(hù)實(shí)體1自產(chǎn)生公鑰證書(shū)并管理公鑰證書(shū)的方法中用戶(hù)實(shí)體l與可信第三方4進(jìn)行數(shù)據(jù)交互,所述的可信第三方4參與生成所述的 用戶(hù)實(shí)體1的部分私鑰的 一較佳實(shí)施例的流程包括的步驟為步驟bl:用戶(hù)實(shí)體1隨機(jī)選取所述集合Zp'上的元素z;步驟b2:用戶(hù)實(shí)體1在所述的群G上計(jì)算u-gz,所述的g為系統(tǒng)的一個(gè) 公開(kāi)參數(shù);步驟b3:所述的用戶(hù)實(shí)體1向所述的可信第三方4發(fā)送u; 步驟b4:所述的可信第三方4收到所述的u后,輸出部分私鑰s和輔助驗(yàn) 證信息w;本步驟細(xì)化為步驟b41:隨機(jī)選取所述集合Z/上的元素t; 步驟b42:計(jì)算輔助驗(yàn)證信息w =步驟b43:計(jì)算部分私鑰s = t + xH(ID||uw),其中哈希函數(shù)是H公開(kāi)的參數(shù), ID是所述用戶(hù)實(shí)體1的身份信息;步驟b5:所述的用戶(hù)實(shí)體1驗(yàn)證來(lái)自于所述可信第三方4生成的部分私鑰 s的合法性,如果合法則執(zhí)行下述步驟b6,如果不合法執(zhí)行bl;步驟b6:所述用戶(hù)實(shí)體1的私鑰為兩部分,由所述用戶(hù)實(shí)體1生成的部分 私鑰為ski-z,由所述可信第三方4為所述的用戶(hù)實(shí)體1生成的部分私鑰為sk2 =s。其中對(duì)于本發(fā)明用戶(hù)實(shí)體自產(chǎn)生公鑰證書(shū)并管理公鑰證書(shū)的方法中用戶(hù)實(shí) 體利用部分私鑰生成或更新完整的公鑰和私鑰以及相應(yīng)的公鑰證書(shū)的 一較佳實(shí) 施例的流程包括的步驟為步驟cl:所述的用戶(hù)實(shí)體1獲得系統(tǒng)參數(shù)param、部分私鑰s、和sk2;步驟c2:所述的用戶(hù)實(shí)體1隨機(jī)地選取所述的集合Z/上的元素k;步驟c3:計(jì)算完整的私鑰為sk-sk, + sk2 + k-z+s + k;步驟c4:計(jì)算中間量pk") =uw = gz+t; 步驟c5:計(jì)算中間量pk(2)=沐"V"(",'")^ =gz" + k;步驟c6:計(jì)算中間量pk巾=gk;步驟c7:隨機(jī)選取所述的集合Z,上的元素r,并計(jì)算中間量pk"'- (R,5) 5本步驟細(xì)化為 步驟c71:計(jì)算R-gf;步驟c72:計(jì)算S = r + s/tg /(/£ P W0) P; A;(2) P; it(3) P"me Pva/,W,Xy Pi );步驟c8:用戶(hù)實(shí)體的公鑰為pk- (pk("llpk(2)llpk(3)llpk(4));步驟c9:用戶(hù)實(shí)體的公鑰證書(shū)為cert= (ID||pk||time||validity ) = (ID||pk(1) ||pk(2)i|pk(3)||pk(4) ||time||validity),其中time為證書(shū)生成時(shí)間,validity為證書(shū) 的有效期,H表示級(jí)聯(lián)關(guān)系。所述用戶(hù)實(shí)體1將自己的公鑰證書(shū)cert上載到服務(wù)器5自己的賬戶(hù)上,其 中,對(duì)于本發(fā)明用戶(hù)實(shí)體1自產(chǎn)生公鑰證書(shū)并管理公鑰證書(shū)的方法中利用用戶(hù) 實(shí)體1的公鑰證書(shū)和系統(tǒng)參數(shù),驗(yàn)證用戶(hù)實(shí)體1的公鑰證書(shū)的準(zhǔn)確性的流程包 括的步驟為步驟dl:如果當(dāng)前時(shí)間在證書(shū)的有效期內(nèi),則執(zhí)行下述步驟d2,否則執(zhí)行 下述步驟d4;步驟d2:驗(yàn)證pk。' = pk('V,W')g)k")是否成立,如果成立則執(zhí)行下述步驟 d3,否則執(zhí)行下述步驟d4;步驟d3:計(jì)算gs= ^pk(2)則単"V'2'叫")胸一論,,如果成立,則證書(shū)視為有效,否則執(zhí)行下述步驟d4;步驟d4:驗(yàn)證用戶(hù)實(shí)體1的公鑰證書(shū)為無(wú)效。在所述用戶(hù)實(shí)體l公鑰證書(shū)過(guò)期后,必須更新用戶(hù)實(shí)體l自己的私鑰及相應(yīng) 的公鑰證書(shū),在更新時(shí),需要再次調(diào)用上述的步驟b和步驟c得到新的完整私鑰sk, 和新公鑰證書(shū)cert.,將新的證書(shū)cert'上載到服務(wù)器5上。如果與所述的用戶(hù)實(shí)體l公鑰證書(shū)相應(yīng)的私鑰sk泄露了 ,為了取保用戶(hù)實(shí)體 l的安全,須立即將公鑰證書(shū)cert從服務(wù)器5中去除,同時(shí)所述的用戶(hù)實(shí)體l再次 調(diào)用上述的步驟b和步驟c得到新的完整私鑰sk,和新公鑰證書(shū)cert.。將新的證書(shū) cert.上載到服務(wù)器5上。對(duì)于上述的ElGamal加密體制,其中對(duì)應(yīng)的ElGamal加密算法為假設(shè)用戶(hù) 實(shí)體l利用ElGamal加密體制向用戶(hù)實(shí)體l發(fā)送消息m,用戶(hù)實(shí)體1從服務(wù)器5的公 鑰資料庫(kù)51下載用戶(hù)實(shí)體l的公鑰證書(shū),在驗(yàn)證所迷的用戶(hù)實(shí)體l公鑰證書(shū)有效 的情況下,調(diào)用ElGamal加密算法進(jìn)行加密,其算法如下隨機(jī)地選取所述的集合Z/上的元素v,計(jì)算q = gv mod 9和<;2= pk(2)'m mod q,并令密文C- (cP c2);同時(shí)與ElGamal加密算法相對(duì)的ElGamal解密算法,其算法如下 用戶(hù)實(shí)體l利用自己的私鑰sk對(duì)密文C- (cP C2)進(jìn)行解密m三cvc,mod《。 本發(fā)明提供了 一個(gè)新型的公鑰基礎(chǔ)設(shè)施(PKI)實(shí)施的方法,在本發(fā)明所提供 的新的PKI基礎(chǔ)上,可以創(chuàng)建任何基于離散對(duì)數(shù)的公鑰密碼體制。只需要一個(gè)可 信第三方4協(xié)助用戶(hù)實(shí)體l產(chǎn)生部分密鑰,之后用戶(hù)實(shí)體l可以自己整合私鑰,并 產(chǎn)生自己的證書(shū)。之后用戶(hù)實(shí)體1的私鑰更新以及相應(yīng)的7>鑰〗正書(shū)的更新和維護(hù) 都只需要用戶(hù)實(shí)體本人來(lái)完成。以上所述僅為本發(fā)明的較佳實(shí)施例,對(duì)本發(fā)明而言?xún)H僅是說(shuō)明性的,而非 限制性的。本專(zhuān)業(yè)技術(shù)人員理解,在本發(fā)明權(quán)利要求所限定的精神和范圍內(nèi)可 對(duì)其進(jìn)行許多改變,修改,甚至等效,但都將落入本發(fā)明的保護(hù)范圍內(nèi)。
權(quán)利要求
1、一種用戶(hù)實(shí)體自產(chǎn)生公鑰證書(shū)并管理公鑰證書(shū)的系統(tǒng),其特征在于,其包括用戶(hù)實(shí)體;一可信第三方用以和用戶(hù)實(shí)體進(jìn)行數(shù)據(jù)交互,并生成部分私鑰給所述的用戶(hù)實(shí)體;一服務(wù)器,用以存儲(chǔ)所述用戶(hù)實(shí)體自己生成或更新的公鑰證書(shū)。
2、 根據(jù)權(quán)利要求1所述的用戶(hù)實(shí)體自產(chǎn)生公鑰證書(shū)并管理公鑰證書(shū)的系統(tǒng), 其特征在于,任何用戶(hù)實(shí)體允許對(duì)所述的服務(wù)器進(jìn)行訪問(wèn),并查詢(xún)公鑰證書(shū), {旦只允許^修改和更新自己的 〃>鑰證書(shū)。
3、 一種用戶(hù)實(shí)體自產(chǎn)生公鑰證書(shū)并管理公鑰證書(shū)的方法,其是通過(guò)上述的 用戶(hù)實(shí)體自產(chǎn)生公鑰證書(shū)并管理公鑰證書(shū)的系統(tǒng)實(shí)現(xiàn)的,其特征在于,其包括的步驟為步驟a:生成建立系統(tǒng)所需要的系統(tǒng)參數(shù);步驟b:用戶(hù)實(shí)體與可信第三方進(jìn)行秘密的數(shù)據(jù)交互,所述的可信第三方參 與生成所述用戶(hù)實(shí)體的部分私鑰;步驟c:所述的用戶(hù)實(shí)體利用部分私鑰生成或更新完整的公鑰和私鑰以及相 應(yīng)的公鑰證書(shū);步驟d:通過(guò)服務(wù)器利用用戶(hù)實(shí)體的公鑰證書(shū)和系統(tǒng)參數(shù),驗(yàn)證用戶(hù)實(shí)體的 />鑰證書(shū)的準(zhǔn)確性。
4、 根據(jù)權(quán)利要求3所述的用戶(hù)實(shí)體自產(chǎn)生公鑰證書(shū)并管理公鑰證書(shū)的方法, 其特征在于,所述的步驟a生成建立系統(tǒng)所需要的系統(tǒng)參數(shù),其包括的步驟為步驟al:根據(jù)安全參數(shù)X,選擇一個(gè)大的素?cái)?shù)p;步驟a2:選擇階為p的一個(gè)群G;步驟a3:隨機(jī)地選取集合z/上的元素x;步驟a4:從所述的群G中隨機(jī)選取一個(gè)不是單位元的元素g;步驟a5:在所述的群G上計(jì)算y-gX;步驟a6:選擇一個(gè)哈希函數(shù),記為H: {0, 1}*—Zp;步驟a7:輸出公開(kāi)參數(shù)paran^ (p, G, g, y)和主密鑰x。
5、 根據(jù)權(quán)利要求3所述的用戶(hù)實(shí)體自產(chǎn)生公鑰證書(shū)并管理公鑰證書(shū)的方法,其特征在于,步驟b:用戶(hù)實(shí)體與可信第三方進(jìn)行秘密的數(shù)據(jù)交互,所述的可信第三方參與生成所述的用戶(hù)實(shí)體的部分私鑰,其包括的步驟為 步驟bl:用戶(hù)實(shí)體隨機(jī)選取所述集合Z/上的元素z;步驟b2:用戶(hù)實(shí)體在所述的群G上計(jì)算u = gz,所述的g為系統(tǒng)的一個(gè)公開(kāi) 參數(shù);步驟b3:所述的用戶(hù)實(shí)體向所述的可信第三方發(fā)送u;步驟b4:所述的可信第三方收到所述的u后,輸出部分私鑰s和輔助驗(yàn)證信 息w;步驟b5:所述的用戶(hù)實(shí)體驗(yàn)證來(lái)自于所述可信第三方生成的部分私鑰s的合 法性,如果合法則執(zhí)行下述步驟b6,如果不合法執(zhí)行bl;步驟b6:所述用戶(hù)實(shí)體的私鑰為兩部分,由所述用戶(hù)實(shí)體生成的部分私鑰為 sk! -z,由所述可信第三方為所述的用戶(hù)實(shí)體生成的部分私鑰為sk2 = s。
6、 根據(jù)權(quán)利要求5所述的用戶(hù)實(shí)體自產(chǎn)生公鑰證書(shū)并管理公鑰證書(shū)的方法, 其特征在于,步驟b4:所述的可信第三方收到所述的u后,輸出部分私鑰s和 輔助驗(yàn)證信息w;包括的步驟為步驟b41:隨機(jī)選取所述集合Zp'上的元素t; 步驟b42:計(jì)算輔助驗(yàn)證信息w = gh步驟b43:計(jì)算部分私鑰s = t + xH(ID||uw),其中哈希函數(shù)H是公開(kāi)的參數(shù), ID是所述用戶(hù)實(shí)體的身份信息。
7、 根據(jù)權(quán)利要求3所述的用戶(hù)實(shí)體自產(chǎn)生公鑰證書(shū)并管理公鑰證書(shū)的方法, 其特征在于,步驟c:用戶(hù)實(shí)體利用部分私鑰生成或更新完整的^^鑰和私鑰以及 相應(yīng)的公鑰證書(shū),其包括的步驟為步驟cl:所述的用戶(hù)實(shí)體獲得系統(tǒng)參數(shù)param、部分私鑰sh和sk2;步驟c2:所述的用戶(hù)實(shí)體隨機(jī)地選取所述的集合z/上的元素k;步驟c3:計(jì)算完整的私鑰為sk-sk一sk2 + k-z+s + k;步驟c4:計(jì)算中間量pk(" =uw=gz+t;步驟c5:計(jì)算中間量pk(2)=沐"V""卿"')^ =g"s + k步驟c6:計(jì)算中間量pk③=gk;步驟c7:隨機(jī)選取所述的集合Z/上的元素r,并計(jì)算中間量pk") = (R, S); 步驟c8:用戶(hù)實(shí)體的公鑰為pk- (pk("llpk(2)llpk(3)llpk(4));步驟c9:用戶(hù)實(shí)體的公鑰證書(shū)為cert= (ID||pk||time||validity ) = (ID||pk(" ||pk (2)||pk(3)i|pk(4)||time||validity),其中time為證書(shū)生成時(shí)間,validity為證書(shū)的 有效期,ii表示級(jí)聯(lián)關(guān)系。
8、 根據(jù)權(quán)利要求7所述的用戶(hù)實(shí)體自產(chǎn)生公鑰證書(shū)并管理公鑰證書(shū)的方法, 其特征在于,步驟c7:隨機(jī)選取所述的集合Z/上的元素r,并計(jì)算中間量 pk(4)= (R, S);其包括的步驟為步驟c71:計(jì)算R-g"";步驟c72:計(jì)算5 = r + sAgf/(/D PPj^(2) P W(3) P"we Pva/W/> P及)。
9、 根據(jù)權(quán)利要求3所述的用戶(hù)實(shí)體自產(chǎn)生公鑰證書(shū)并管理公鑰證書(shū)的方法, 其特征在于,步驟d:利用用戶(hù)實(shí)體的公鑰證書(shū)和系統(tǒng)參數(shù),驗(yàn)證用戶(hù)實(shí)體的公 鑰證書(shū)的準(zhǔn)確性,其包括的步驟為步驟dl:如果當(dāng)前時(shí)間在證書(shū)的有效期內(nèi),則執(zhí)行下述步驟d2,否則執(zhí)行 下述步驟d4;步驟d2:驗(yàn)證pk'2) = pk('VH",'")g)k")是否成立,如果成立則執(zhí)行下述步驟 d3,否則執(zhí)行下述步驟d4;步驟d3:計(jì)算g匕7 ,pk(""(','、、n'一雄,,如果成立,則證書(shū)視為有效,否則執(zhí)行下述步驟d4;步驟d4:驗(yàn)證用戶(hù)實(shí)體的公鑰證書(shū)為無(wú)效。
全文摘要
本發(fā)明為一種用戶(hù)實(shí)體自產(chǎn)生公鑰證書(shū)并管理公鑰證書(shū)的系統(tǒng)和方法,其包括用戶(hù)實(shí)體;一可信第三方用以和用戶(hù)實(shí)體進(jìn)行數(shù)據(jù)交互,并生成部分私鑰給所述的用戶(hù)實(shí)體;一服務(wù)器,用以存儲(chǔ)所述用戶(hù)實(shí)體自己生成或更新的公鑰證書(shū)其中,任何用戶(hù)實(shí)體允許對(duì)所述的服務(wù)器進(jìn)行訪問(wèn),并查詢(xún)他人的公鑰證書(shū),但只允許修改和更新自己的公鑰證書(shū)。
文檔編號(hào)H04L9/08GK101257380SQ200810004198
公開(kāi)日2008年9月3日 申請(qǐng)日期2008年1月29日 優(yōu)先權(quán)日2007年12月5日
發(fā)明者劉勝利, 張慶勝, 賴(lài)俊祚, 郭寶安, 陳克非 申請(qǐng)人:航天信息股份有限公司