專(zhuān)利名稱(chēng):基于用戶(hù)身份標(biāo)識(shí)的加解密方法
技術(shù)領(lǐng)域:
本發(fā)明涉及的是一種加解密方法,特別涉及的是一種基于用戶(hù)身份標(biāo)識(shí)的加解密方法。
背景技術(shù):
PKI技術(shù)是一種成熟的公鑰密碼技術(shù),近10年來(lái)獲得了廣泛的應(yīng)用,如現(xiàn)在的網(wǎng)上銀行,網(wǎng)上證券、電子商務(wù)等等都基于PKI技術(shù),來(lái)保證數(shù)據(jù)傳輸?shù)陌踩?。我?guó)2004頒布的《電子簽名法)》也是基于PKI技術(shù)。在公鑰密碼技術(shù)中,用戶(hù)有兩把密鑰,一把密鑰為用戶(hù)獨(dú)有,稱(chēng)為用戶(hù)私鑰;一把密鑰公開(kāi)給大家,稱(chēng)為公鑰,利用用戶(hù)公鑰就可以給該用戶(hù)發(fā)送加密信息,但在PKI技術(shù)中用戶(hù)公鑰是一串沒(méi)有意義的隨機(jī)數(shù)字,因而要將公鑰和標(biāo)志用戶(hù)身份標(biāo)識(shí)的信息綁定起來(lái),形成數(shù)字證書(shū),才方便大家查詢(xún),一旦用戶(hù)數(shù)量過(guò)多的情況,用戶(hù)繁瑣的數(shù)字證書(shū)管理問(wèn)題成了PKI系統(tǒng)運(yùn)行的瓶頸。
為了解決繁瑣的數(shù)字證書(shū)管理問(wèn)題,早在1984年,RSA公鑰密碼技術(shù)的發(fā)明者之一Adi Shamir教授就提出了基于身份加密(Identity-Based Encryption)的思想,IBE是基于身份加密的縮寫(xiě),它的最大特點(diǎn)是利用標(biāo)志用戶(hù)身份標(biāo)識(shí)的信息(如用戶(hù)的身份證號(hào)、電子郵件地址、QQ號(hào)、手機(jī)號(hào)等等)直接作為用戶(hù)公鑰,不采用數(shù)字證書(shū)的概念,因而避免了繁瑣的數(shù)字證書(shū)管理問(wèn)題。但在那時(shí)還沒(méi)有具體方法在實(shí)際中實(shí)現(xiàn)這一思想,IBE技術(shù)成為密碼學(xué)界未解決的主要問(wèn)題之一。
2001年,基于橢圓曲線(xiàn)密碼和Weil配對(duì)數(shù)學(xué)理論,斯坦福大學(xué)計(jì)算機(jī)科學(xué)技術(shù)系的教授Dan Boneh和加州大學(xué)戴維斯分院的教授Matt Franklin分別發(fā)明了具體可實(shí)施的IBE算法,該算法又簡(jiǎn)稱(chēng)為D.B/M.F算法。
D.B/M.F算法方案的安全性建立在CDH(Computation Diffie-Hellman)困難問(wèn)題的一個(gè)變形之上,稱(chēng)為BDH(Bilinear Diffie-Hellman)困難問(wèn)題。D.B/M.F算法的核心是使用了超奇異橢圓曲線(xiàn)上的一個(gè)雙線(xiàn)性映射Weil Pairing。描述如下 1、設(shè)p是一個(gè)大素?cái)?shù),p≡2 mod 3,并且存在大素?cái)?shù)q,使得p+1能被q整除,但不能被q2整除,記為p=1q-1; 2、E/GF(p)是在有限域GF(p)上構(gòu)造的橢圓曲線(xiàn)y2=x3+1,P是該曲線(xiàn)上階為q的點(diǎn),也稱(chēng)為基點(diǎn),定義加法循環(huán)群G1利用P的點(diǎn)積方法生成;定義乘法循環(huán)群G2利用P的乘冪的方法生成; 3、BDH問(wèn)題對(duì)于隨機(jī)的a,b,c∈Zq*,已知(P,aP,bP,cP)來(lái)計(jì)算ê(P,P)abc∈G2。注意到E/GF(p)是超奇異橢圓曲線(xiàn)。“ê”是由修改的Weil Pairing變來(lái)的映射,êG1×G1→G2,滿(mǎn)足以下三條性質(zhì) 1)雙線(xiàn)性性 對(duì)于所有P,Q∈G1,和所有的a,b∈Z有ê(aP,bQ)=ê(P,Q)ab,其中Z是整數(shù)集; 2)非退化性如果P是G1的生成元,則ê(P,P)∈GF(p2)*是G2的生成元。在群G中如果存在有P∈G使得G={Pk|k∈Z},則稱(chēng)G為循環(huán)群,稱(chēng)P為G的生成元; 3)可計(jì)算性對(duì)于任何P,Q∈G1,存在一個(gè)有效的算法來(lái)計(jì)算ê(P,Q)∈G2。
Weil Pairing的存在本來(lái)是對(duì)超奇異橢圓曲線(xiàn)上的密碼體制的威脅,也就是說(shuō),G中的離散對(duì)數(shù)問(wèn)題可輕易地簡(jiǎn)化成GF(p2)*中的離散對(duì)數(shù)問(wèn)題。E/GF(p)是超奇異橢圓曲線(xiàn),所以為使G中的離散對(duì)數(shù)問(wèn)題難解,必須要求p的長(zhǎng)度至少為512比特。
D.B/M.F算法方案分為四個(gè)執(zhí)行階段系統(tǒng)參數(shù)建立階段(Setup)、用戶(hù)私鑰生成階段(Extract)、加密階段(Encrypt),以及解密階段(Decrypt),其中, 所述的系統(tǒng)參數(shù)建立階段,包括的內(nèi)容是 可信第三方密鑰服務(wù)器進(jìn)行如下步驟產(chǎn)生D.B/M.F的系統(tǒng)參數(shù) 1)首先選擇一個(gè)至少512比特長(zhǎng)的大素?cái)?shù)p,找一條滿(mǎn)足BDH安全假設(shè)的超奇異橢圓曲線(xiàn)E/GF(p),P是曲線(xiàn)E的基點(diǎn),基點(diǎn)的階是大素?cái)?shù)q,q的長(zhǎng)度至少為160比特,定義q階加法循環(huán)群G1、q階乘法循環(huán)群G2,以及雙線(xiàn)性配對(duì)êG1×G1→G2; 2)定義hash函數(shù)H2GF(p2)→{0,1}n,及一個(gè)用于將用戶(hù)身份ID映射到G1*上元素的函數(shù)H1,這里的G1*表示G1去除O元素; 3)明文空間是M={0,1}n,密文空間是C=G1*×{0,1}n; 4)隨機(jī)選擇s∈Zq*作為系統(tǒng)主密鑰(master key),并令Ppub=sP; 5)保密主密鑰s,公開(kāi)公共參數(shù)param=<q,G1,G2,ê,n,P,Ppub,H1,H2>。
所述用戶(hù)私鑰生成階段,其包括的步驟為 身份標(biāo)識(shí)為ID∈{0,1}n的用戶(hù)向密碼服務(wù)器申請(qǐng)自己的解密私鑰,密碼服務(wù)器需要做以下工作 1)計(jì)算用戶(hù)公鑰QIDQID=H1(ID) 2)產(chǎn)生用戶(hù)私鑰dIDdID=sQID。
所述的加密階段,其包括的步驟為 隨機(jī)選取r∈Zq*,用QID加密明文M,產(chǎn)生密文C 1)令gID=ê(QID,Ppub)∈G2; 2)C=<rP,MH2(gIDr)> 所述的解密階段,其包括的步驟為 用dID解密密文C=<U,V>,獲取明文M 1)檢查U是否是E/GF(p)中的點(diǎn),如果不是就拒絕該密文; 2)計(jì)算得出M=VH2(ê(dID,U)); 其中,加解密的一致性是由下面的等式保證的 ê(dID,U)=ê(sQID,rP)=ê(QID,sP)r=ê(QID,Ppub)r=gIDr。
該方案根據(jù)橢圓曲線(xiàn)密碼和雙線(xiàn)性映射理論實(shí)現(xiàn)具體可實(shí)施的IBE方案,解決了密碼學(xué)的一大難題。但這個(gè)系統(tǒng)中也存在一些問(wèn)題(1)主密鑰一旦被破解,黑客可計(jì)算出任何人的私鑰,則系統(tǒng)即被攻破;(2)密鑰管理的問(wèn)題沒(méi)有很好的解決。IBE技術(shù)和PKI技術(shù)相比的優(yōu)點(diǎn)是無(wú)證書(shū)管理問(wèn)題,但缺點(diǎn)是密鑰管理沒(méi)有PKI那樣方便、安全。PKI技術(shù)的私鑰可以在客戶(hù)端自行隨機(jī)產(chǎn)生,為CA服務(wù)器端所不知,然后計(jì)算生成公鑰,結(jié)合著自己的身份等相關(guān)信息到CA申請(qǐng)數(shù)字證書(shū);而D.B/M.F的IBE方案的用戶(hù)私鑰由密鑰服務(wù)器統(tǒng)一計(jì)算并分發(fā),D.B/M.F方案在密鑰更新過(guò)程中要求用戶(hù)身份信息不被改變,采用將用戶(hù)身份信息和時(shí)間信息連接,諸如ID||T的形式,作為用戶(hù)公鑰,這樣經(jīng)過(guò)一定的時(shí)間密鑰就要更新一次,如果設(shè)定T是年,則用戶(hù)私鑰要每年更新一次,為了減少用戶(hù)私鑰被破解的風(fēng)險(xiǎn),時(shí)間段T要盡量短一些,比如可設(shè)置T為天,用戶(hù)私鑰每天更新一次,這樣即使黑客盜取了用戶(hù)私鑰,他也只能解密當(dāng)天的加密信息,但這樣頻繁地通過(guò)密碼服務(wù)器更新用戶(hù)私鑰,又極大地增加了密碼服務(wù)器的負(fù)擔(dān)。
以手機(jī)為例保密手機(jī)可以通過(guò)IBE技術(shù)來(lái)實(shí)現(xiàn),每個(gè)手機(jī)號(hào)都是唯一的,可作為標(biāo)識(shí)用戶(hù)的身份信息,在密碼系統(tǒng)中,作為公開(kāi)密鑰,用戶(hù)的手機(jī)號(hào)不會(huì)輕易的變化。出于密碼安全需要,要求用戶(hù)的私鑰每天都更新一次,如果采用D.B/M.F的IBE算法,用戶(hù)每天都要和密碼服務(wù)器交互,這樣勢(shì)必密碼服務(wù)器的負(fù)荷過(guò)重,就不能體現(xiàn)IBE技術(shù)公鑰管理方便,計(jì)算量小的優(yōu)越性。
為解決上述問(wèn)題,本發(fā)明創(chuàng)作者經(jīng)過(guò)長(zhǎng)時(shí)間的研究和實(shí)踐終于獲得了本創(chuàng)作。
發(fā)明內(nèi)容
本發(fā)明的目的在于,提供一種基于用戶(hù)身份標(biāo)識(shí)的加解密方法,用以克服上述缺陷。
為實(shí)現(xiàn)上述目的,本發(fā)明采用的技術(shù)方案在于,提供一種基于用戶(hù)身份標(biāo)識(shí)的加解密方法,其包括的步驟為 步驟a產(chǎn)生基于用戶(hù)身份標(biāo)識(shí)的加解密系統(tǒng)的系統(tǒng)參數(shù),生成至少兩個(gè)主密鑰分量; 步驟b提供多級(jí)密鑰設(shè)備,密鑰服務(wù)器向符合身份標(biāo)識(shí)要求用戶(hù)的各級(jí)密鑰設(shè)備中設(shè)置種子密鑰和參數(shù); 步驟c每級(jí)密鑰設(shè)備根據(jù)上一級(jí)密鑰設(shè)備的幫助密鑰生成和更新本級(jí)密鑰設(shè)備的幫助密鑰; 步驟d在最后一級(jí)密鑰設(shè)備處生成用戶(hù)私鑰;其是根據(jù)最后一級(jí)密鑰設(shè)備之前的密鑰設(shè)備生成的所述的幫助密鑰實(shí)現(xiàn)的; 步驟e根據(jù)用戶(hù)的公鑰加密明文產(chǎn)生密文; 步驟f通過(guò)用戶(hù)私鑰解密密文變成明文; 較佳的,所述的步驟a產(chǎn)生基于用戶(hù)身份標(biāo)識(shí)的加解密系統(tǒng)的系統(tǒng)參數(shù),生成至少兩個(gè)主密鑰分量,其包括的步驟為 步驟a1選擇一至少512比特長(zhǎng)的大素?cái)?shù)p和滿(mǎn)足BDH安全假設(shè)的超奇異橢圓曲線(xiàn)E/GF(p),其中,P是曲線(xiàn)E的基點(diǎn),基點(diǎn)的階是大素?cái)?shù)q,q的長(zhǎng)度至少為160比特,定義q階加法循環(huán)群G1、q階乘法循環(huán)群G2,以及雙線(xiàn)性配對(duì)êG1×G1→G2; 步驟a2定義hash函數(shù)H2GF(p2)→{0,1}n,及一用于將用戶(hù)身份ID映射到G1*上元素的函數(shù)H1,其中,G1*表示G1去除O元素; 步驟a3確定明文空間M、密文空間是C,其中,M={0,1}n、C=G1*×{0,1}n; 步驟a4根據(jù)實(shí)際需要,確定用戶(hù)私鑰更新的級(jí)數(shù)m,隨機(jī)選擇m個(gè)主密分量s1,s2,...sm∈Zq*,并令Ppub=(s1+s2+...+sm)P; 步驟a5保密各個(gè)主密鑰分量si,其中i=1,2,...,m,公開(kāi)公共參數(shù)param=<q,G1,G2,ê,n,P,Ppub,H1,H2>; 步驟a6執(zhí)行步驟b; 較佳的,所述的步驟b提供多級(jí)密鑰設(shè)備,密鑰服務(wù)器向符合身份標(biāo)識(shí)要求用戶(hù)的各級(jí)密鑰設(shè)備中設(shè)置種子密鑰和參數(shù),其包括的步驟為 步驟b1計(jì)算用戶(hù)公鑰QID,其中QID=H1(ID); 步驟b2各級(jí)密鑰設(shè)備分別設(shè)置種子密鑰siQID,其中i=1,2,...,m; 步驟b3將系統(tǒng)參數(shù)p設(shè)置到各級(jí)密鑰設(shè)備中; 步驟c每級(jí)密鑰設(shè)備根據(jù)上一級(jí)密鑰設(shè)備的幫助密鑰生成和更新本級(jí)密鑰設(shè)備的幫助密鑰,是在與密鑰服務(wù)器脫線(xiàn)的情況下完成的,第i級(jí)中間設(shè)備的幫助密鑰為 相關(guān)的中間計(jì)算結(jié)果為riP 其中,j=1,2,...,m-1,ri為各級(jí)密鑰設(shè)備產(chǎn)生的隨機(jī)數(shù),Ptj為各級(jí)密鑰設(shè)備根據(jù)相應(yīng)的時(shí)間段,經(jīng)過(guò)hash函數(shù)H1運(yùn)算得到的G1*中的元素,
其中,Tj(time)表示對(duì)時(shí)間進(jìn)行相應(yīng)的運(yùn)算,取出其中相應(yīng)的時(shí)間段的信息,標(biāo)識(shí)本級(jí)密鑰更新一次的時(shí)間,其中,第i密鑰設(shè)備幫助密鑰更新的時(shí)間大于第i-1密鑰設(shè)備幫助密鑰更新的時(shí)間; 較佳的,所述的密鑰設(shè)備為硬件智能卡或UsbKey; 步驟d在最后一級(jí)密鑰設(shè)備處生成用戶(hù)私鑰;其是根據(jù)最后一級(jí)密鑰設(shè)備之前的密鑰設(shè)備生成的所述的幫助密鑰實(shí)現(xiàn)的;用戶(hù)私鑰為 相關(guān)的計(jì)算結(jié)果為 riP,(i=1,2,L,m) 其中
Tj(time)表示對(duì)時(shí)間進(jìn)行相應(yīng)的運(yùn)算,取出其中相應(yīng)的時(shí)間段的信息,標(biāo)識(shí)本級(jí)密鑰更新一次的時(shí)間,用戶(hù)私鑰更新相對(duì)頻繁; 步驟e根據(jù)用戶(hù)的公鑰加密明文產(chǎn)生密文,其包括的步驟為 步驟e1令gID=ê(QID,Ppub)=ê(QID,(s1+s2+...+sm)P)∈G2; 步驟e2其中i=1,2,L,m,
Tj(time)表示對(duì)時(shí)間進(jìn)行相應(yīng)的運(yùn)算,取出其中相應(yīng)的時(shí)間段的信息,標(biāo)識(shí)本級(jí)密鑰更新一次的時(shí)間; 步驟f通過(guò)用戶(hù)私鑰解密密文變成明文,其包括的步驟為 步驟f1檢查U是否是E/GF(p)中的點(diǎn),如果不是就拒絕該密文; 步驟f2計(jì)算得出明文其中,加解密的一致性是由下面的等式保證的 其中密文C=<U,V1,V2,...,Vm,W>。
與現(xiàn)有技術(shù)比較本發(fā)明的有益效果在于,首先引入了多個(gè)主密鑰分量,避免單一主密鑰被破解,從而導(dǎo)致整個(gè)系統(tǒng)被破解的風(fēng)險(xiǎn); 其次采用多級(jí)密鑰更新裝置,既保證了用戶(hù)私鑰的頻繁更新,又極大地減輕了密碼服務(wù)器的負(fù)擔(dān); 最后本發(fā)明還具有計(jì)算量小,需要的存貯空間也小的優(yōu)點(diǎn)。
圖1為本發(fā)明基于用戶(hù)身份標(biāo)識(shí)的加解密方法的流程圖; 圖2為本發(fā)明基于用戶(hù)身份標(biāo)識(shí)的加解密方法中步驟a的流程圖; 圖3為本發(fā)明基于用戶(hù)身份標(biāo)識(shí)的加解密方法中步驟b的流程圖。
具體實(shí)施例方式 以下結(jié)合附圖,對(duì)本發(fā)明上述的和另外的技術(shù)特征和優(yōu)點(diǎn)作更詳細(xì)的說(shuō)明。
請(qǐng)參閱圖1所示,其為本發(fā)明基于用戶(hù)身份標(biāo)識(shí)的加解密方法的流程圖;其包括得步驟為 步驟a產(chǎn)生基于用戶(hù)身份標(biāo)識(shí)的加解密系統(tǒng)的系統(tǒng)參數(shù),生成至少兩個(gè)主密鑰分量; 步驟b提供多級(jí)密鑰設(shè)備,密鑰服務(wù)器向符合身份標(biāo)識(shí)要求用戶(hù)的各級(jí)密鑰設(shè)備中設(shè)置種子密鑰和參數(shù); 步驟c每級(jí)密鑰設(shè)備根據(jù)上一級(jí)密鑰設(shè)備的幫助密鑰生成和更新本級(jí)密鑰設(shè)備的幫助密鑰; 步驟d在最后一級(jí)密鑰設(shè)備處生成用戶(hù)私鑰;其是根據(jù)最后一級(jí)密鑰設(shè)備之前的密鑰設(shè)備生成的所述的幫助密鑰實(shí)現(xiàn)的; 步驟e根據(jù)用戶(hù)的公鑰加密明文產(chǎn)生密文; 步驟f通過(guò)用戶(hù)私鑰解密密文變成明文; 其中,所述的步驟a二產(chǎn)生基于用戶(hù)身份標(biāo)識(shí)的加解密系統(tǒng)的系統(tǒng)參數(shù),生成至少兩個(gè)主密鑰分量,請(qǐng)參閱圖2所示,其包括的步驟為 步驟a1選擇一至少512比特長(zhǎng)的大素?cái)?shù)p和滿(mǎn)足BDH安全假設(shè)的超奇異橢圓曲線(xiàn)E/GF(p),其中,P是曲線(xiàn)E的基點(diǎn),基點(diǎn)的階是大素?cái)?shù)q,q的長(zhǎng)度至少為160比特,定義q階加法循環(huán)群G1、q階乘法循環(huán)群G2,以及雙線(xiàn)性配對(duì)êG1×G1→G2; 步驟a1定義hash函數(shù)H2GF(p2)→{0,1}n,及一用于將用戶(hù)身份ID映射到G1*上元素的函數(shù)H1,其中,G1*表示G1去除O元素; 步驟a2確定明文空間M、密文空間是C,其中,M={0,1}n、C=G1*×{0,1}n; 步驟a3根據(jù)實(shí)際需要,確定用戶(hù)私鑰更新的級(jí)數(shù)m,隨機(jī)選擇m個(gè)主密分量s1,s2,...sm∈Zq*,并令Ppub=(s1+s2+...+sm)P; 步驟a4保密各個(gè)主密鑰分量si,其中i=1,2,...,m,公開(kāi)公共參數(shù)param=<q,G1,G2,ê,n,P,Ppub,H1,H2>; 步驟a5執(zhí)行步驟b; 對(duì)于本發(fā)明的步驟a而言,其與現(xiàn)有的D.B/M.F算法技術(shù)對(duì)比,主要是增加了主密鑰分量。
對(duì)于所述的步驟b提供多級(jí)密鑰設(shè)備,密鑰服務(wù)器向符合身份標(biāo)識(shí)要求用戶(hù)的各級(jí)密鑰設(shè)備中設(shè)置種子密鑰和參數(shù),請(qǐng)參閱圖3所示,其包括的步驟為 步驟b1計(jì)算用戶(hù)公鑰QID,其中QID=H1(ID); 步驟b2各級(jí)密鑰設(shè)備分別設(shè)置種子密鑰siQID,其中i=1,2,...,m; 步驟b3將系統(tǒng)參數(shù)p設(shè)置到各級(jí)密鑰設(shè)備中; 對(duì)于本發(fā)明所述的步驟c每級(jí)密鑰設(shè)備根據(jù)上一級(jí)密鑰設(shè)備的幫助密鑰生成和更新本級(jí)密鑰設(shè)備的幫助密鑰,是在與密鑰服務(wù)器脫線(xiàn)的情況下完成的,第i級(jí)中間設(shè)備的幫助密鑰為 相關(guān)的中間計(jì)算結(jié)果為riP 其中,j=1,2,...,m-1,ri為各級(jí)密鑰設(shè)備產(chǎn)生的隨機(jī)數(shù),Ptj為各級(jí)密鑰設(shè)備根據(jù)相應(yīng)的時(shí)間段,經(jīng)過(guò)hash函數(shù)H1運(yùn)算得到的G1*中的元素,
這里的Tj(time)表示對(duì)時(shí)間進(jìn)行相應(yīng)的運(yùn)算,取出其中相應(yīng)的時(shí)間段的信息,標(biāo)識(shí)本級(jí)密鑰更新一次的時(shí)間,如果T1(time)=y(tǒng)ear,表示經(jīng)過(guò)運(yùn)算取出時(shí)間中的年份信息,表明第一級(jí)密鑰設(shè)備每年更新一次,以此類(lèi)推,級(jí)數(shù)越靠前的密鑰設(shè)備幫助密鑰更新的時(shí)間段越長(zhǎng),即第i級(jí)密鑰設(shè)備幫助密鑰更新的時(shí)間小于第i-1級(jí)密鑰設(shè)備幫助密鑰更新的時(shí)間;所需要的安全性也更高,所述的密鑰設(shè)備采用硬件智能卡或UsbKey,這類(lèi)比較安全的硬件介質(zhì)。
對(duì)于所述的步驟d在最后一級(jí)密鑰設(shè)備處生成用戶(hù)私鑰;其是根據(jù)最后一級(jí)密鑰設(shè)備之前的密鑰設(shè)備生成的所述的幫助密鑰實(shí)現(xiàn)的;其是出于方便使用的考慮,用戶(hù)私鑰可以導(dǎo)入到比如PC、終端等比較不安全的設(shè)備上,因?yàn)橛脩?hù)私鑰更新比較頻繁,比如規(guī)定每天對(duì)用戶(hù)私鑰更新一次,如果黑客截獲了用戶(hù)私鑰,他也只能在一天內(nèi)破解用戶(hù)的機(jī)密信息,第二天他所截獲的用戶(hù)私鑰就再也沒(méi)什么用處,其中所述的用戶(hù)私鑰為 相關(guān)的計(jì)算結(jié)果為 riP,(i=1,2,L,m) 其中
Tj(time)表示對(duì)時(shí)間進(jìn)行相應(yīng)的運(yùn)算,取出其中相應(yīng)的時(shí)間段的信息,標(biāo)識(shí)本級(jí)密鑰更新一次的時(shí)間,用戶(hù)私鑰更新相對(duì)頻繁; 對(duì)于所述的步驟e與步驟f而言,其與現(xiàn)有的D.B/M.F算法技術(shù)對(duì)比,區(qū)別主要是由于步驟a以及步驟b中增加了主密鑰分量以及在密鑰設(shè)備上設(shè)置種子密鑰和參數(shù)的技術(shù)特征所引起的后續(xù)處理的改變,所述的步驟e根據(jù)用戶(hù)的公鑰加密明文產(chǎn)生密丈,其包括的步驟為 步驟e1令gID=ê(QID,Ppub)=ê(QID,(s1+s2+...+sm)P)∈G2; 步驟e2其中i=1,2,L,m,
Tj(time)表示對(duì)時(shí)間進(jìn)行相應(yīng)的運(yùn)算,取出其中相應(yīng)的時(shí)間段的信息,標(biāo)識(shí)本級(jí)密鑰更新一次的時(shí)間; 對(duì)于所述的步驟f通過(guò)用戶(hù)私鑰解密密文變成明文,其包括的步驟為 步驟f1檢查U是否是E/GF(p)中的點(diǎn),如果不是就拒絕該密文; 步驟f2計(jì)算得出明文其中,加解密的一致性是由下面的等式保證的 其中密文C=<U,V1,V2,...,Vm,W>。每一級(jí)的密鑰更新設(shè)備只儲(chǔ)存一個(gè)幫助密鑰,第i級(jí)密鑰更新設(shè)備儲(chǔ)存i個(gè)有關(guān)運(yùn)算結(jié)果。
為了使本領(lǐng)域技術(shù)人員更清楚,我們?nèi)砸员C苁謾C(jī)為例,采用本發(fā)明的方法,通過(guò)三個(gè)主密鑰分量(s1、s2和s3),結(jié)合發(fā)明內(nèi)容步驟a中的參數(shù)P(P是曲線(xiàn)E的基點(diǎn)),將s1P設(shè)置到第一級(jí)密鑰設(shè)備,s2P設(shè)置在到第二級(jí)密鑰設(shè)備,將s3P設(shè)置到用戶(hù)手機(jī),這里的密鑰設(shè)備采用硬件智能卡或Usb Key的硬件介質(zhì)形式,設(shè)置后的密鑰生成和更新都是在和密鑰服務(wù)器脫線(xiàn)的情況下進(jìn)行的,按時(shí)間分三級(jí),其中 T1(time)=y(tǒng)ear,T2(time)=month,T3(time)=day。
也就是說(shuō),第一級(jí)密鑰設(shè)備的幫助密鑰自行每年更新一次,第二級(jí)密鑰設(shè)備的幫助密鑰依賴(lài)于第一級(jí)幫助密鑰每月更新一次,用戶(hù)私鑰依賴(lài)于第二級(jí)幫助密鑰每天更新一次。
綜上,本發(fā)明引入多個(gè)主密鑰分量,避免單一主密鑰被破解,從而導(dǎo)致整個(gè)系統(tǒng)被破解的風(fēng)險(xiǎn);在用戶(hù)密鑰管理中,采用按時(shí)間分級(jí)的模式,既保持了用戶(hù)私鑰在較短時(shí)間得以更新,從而最大限度地避免了密鑰被破解的風(fēng)險(xiǎn),而且只有種子密鑰和參數(shù)設(shè)置需要和密鑰服務(wù)器交互,其他的密鑰更新都是在密鑰服務(wù)器脫線(xiàn)的情況下完成的,所以又極大地減輕了密鑰服務(wù)器的負(fù)擔(dān);另外,本發(fā)明的每一級(jí)幫助密鑰的更新只需要進(jìn)行一次關(guān)鍵的點(diǎn)積運(yùn)算,每一級(jí)的中間結(jié)果也只需要進(jìn)行一次關(guān)鍵的點(diǎn)積運(yùn)算;因此具有計(jì)算量小,需要的儲(chǔ)存空間也小的特點(diǎn)。
以上所述僅為本發(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ù)身份標(biāo)識(shí)的加解密方法,其特征在于,其包括的步驟為
步驟a產(chǎn)生基于用戶(hù)身份標(biāo)識(shí)的加解密系統(tǒng)的系統(tǒng)參數(shù),生成至少兩個(gè)主密鑰分量;
步驟b提供多級(jí)密鑰設(shè)備,密鑰服務(wù)器向符合身份標(biāo)識(shí)要求用戶(hù)的各級(jí)密鑰設(shè)備中設(shè)置種子密鑰和參數(shù);
步驟c每級(jí)密鑰設(shè)備根據(jù)上一級(jí)密鑰設(shè)備的幫助密鑰生成和更新本級(jí)密鑰設(shè)備的幫助密鑰;
步驟d在最后一級(jí)密鑰設(shè)備處生成用戶(hù)私鑰;其是根據(jù)最后一級(jí)密鑰設(shè)備之前的密鑰設(shè)備生成的所述的幫助密鑰實(shí)現(xiàn)的;
步驟e根據(jù)用戶(hù)的公鑰加密明文產(chǎn)生密文;
步驟f通過(guò)用戶(hù)私鑰解密密文變成明文。
2.根據(jù)權(quán)利要求1所述的基于用戶(hù)身份標(biāo)識(shí)的加解密方法,其特征在于,所述的步驟a產(chǎn)生基于用戶(hù)身份標(biāo)識(shí)的加解密系統(tǒng)的系統(tǒng)參數(shù),生成至少兩個(gè)主密鑰分量,其包括的步驟為
步驟a1選擇一至少512比特長(zhǎng)的大素?cái)?shù)p和滿(mǎn)足BDH安全假設(shè)的超奇異橢圓曲線(xiàn)E/GF(p),其中,P是曲線(xiàn)E的基點(diǎn),基點(diǎn)的階是大素?cái)?shù)q,q的長(zhǎng)度至少為160比特,定義q階加法循環(huán)群G1、q階乘法循環(huán)群G2,以及雙線(xiàn)性配對(duì)êG1×G1→G2;
步驟a2定義hash函數(shù)H2GF(p2)→{0,1}n,及一用于將用戶(hù)身份ID映射到G1*上元素的函數(shù)H1,其中,G1*表示G1去除O元素;
步驟a3確定明文空間M、密文空間是C,其中,M={0,1}n、C=G1*×{0,1}n;
步驟a4根據(jù)實(shí)際需要,確定用戶(hù)私鑰更新的級(jí)數(shù)m,隨機(jī)選擇m個(gè)主密分量s1,s2,...sm∈Zq*,并令Ppub=(s1+s2+...+sm)P;
步驟a5保密各個(gè)主密鑰分量si,其中i=1,2,...,m,公開(kāi)公共參數(shù)param=<q,G1,G2,ê,n,P,Ppub,H1,H2>;
步驟a6執(zhí)行步驟b。
3.根據(jù)權(quán)利要求1或2所述的基于用戶(hù)身份標(biāo)識(shí)的加解密方法,其特征在于,所述的步驟b提供多級(jí)密鑰設(shè)備,密鑰服務(wù)器向符合身份標(biāo)識(shí)要求用戶(hù)的各級(jí)密鑰設(shè)備中設(shè)置種子密鑰和參數(shù),其包括的步驟為
步驟b1計(jì)算用戶(hù)公鑰QID,其中QID=H1(ID);
步驟b2各級(jí)密鑰設(shè)備分別設(shè)置種子密鑰siQID,其中i=1,2,...,m;
步驟b3將系統(tǒng)參數(shù)p設(shè)置到各級(jí)密鑰設(shè)備中。
4.根據(jù)權(quán)利要求1所述的基于用戶(hù)身份標(biāo)識(shí)的加解密方法,其特征在于,所述的步驟c每級(jí)密鑰設(shè)備根據(jù)上一級(jí)密鑰設(shè)備的幫助密鑰生成和更新本級(jí)密鑰設(shè)備的幫助密鑰,是在與密鑰服務(wù)器脫線(xiàn)的情況下完成的,第i級(jí)中間設(shè)備的幫助密鑰為
相關(guān)的中間計(jì)算結(jié)果為riP
其中,j=1,2,...,m-1,rj為各級(jí)密鑰設(shè)備產(chǎn)生的隨機(jī)數(shù),Ptj為各級(jí)密鑰設(shè)備根據(jù)相應(yīng)的時(shí)間段,經(jīng)過(guò)hash函數(shù)H1運(yùn)算得到的G1*中的元素,
其中,Tj(time)表示對(duì)時(shí)間進(jìn)行相應(yīng)的運(yùn)算,取出其中相應(yīng)的時(shí)間段的信息,標(biāo)識(shí)本級(jí)密鑰更新一次的時(shí)間,其中,第i級(jí)密鑰設(shè)備幫助密鑰更新的時(shí)間大于第i-1級(jí)密鑰設(shè)備幫助密鑰更新的時(shí)間。
5.根據(jù)權(quán)利要求1或4所述的基于用戶(hù)身份標(biāo)識(shí)的加解密方法,其特征在于,所述的密鑰設(shè)備為硬件智能卡或UsbKey。
6.根據(jù)權(quán)利要求1或4所述的基于用戶(hù)身份標(biāo)識(shí)的加解密方法,其特征在于,所述的步驟d在最后一級(jí)密鑰設(shè)備處生成用戶(hù)私鑰;其是根據(jù)最后一級(jí)密鑰設(shè)備之前的密鑰設(shè)備生成的所述的幫助密鑰實(shí)現(xiàn)的;用戶(hù)私鑰為
相關(guān)的中間計(jì)算結(jié)果為
rjP,(i=1,2,L,m)
其中
Tj(time)表示對(duì)時(shí)間進(jìn)行相應(yīng)的運(yùn)算,取出其中相應(yīng)的時(shí)間段的信息,標(biāo)識(shí)本級(jí)密鑰更新一次的時(shí)間。
7.根據(jù)權(quán)利要求1所述的基于用戶(hù)身份標(biāo)識(shí)的加解密方法,其特征在于,所述的步驟e根據(jù)用戶(hù)的公鑰加密明文產(chǎn)生密文,其包括的步驟為
步驟e1令gID=ê(QID,Ppub)=ê(QID,(s1+s2+...+sm)P)∈G2;
步驟e2其中i=1,2,L,m,
Tj(time)表示對(duì)時(shí)間進(jìn)行相應(yīng)的運(yùn)算,取出其中相應(yīng)的時(shí)間段的信息,標(biāo)識(shí)本級(jí)密鑰更新一次的時(shí)間。
8.根據(jù)權(quán)利要求1所述的基于用戶(hù)身份標(biāo)識(shí)的加解密方法,其特征在于,所述的步驟f通過(guò)用戶(hù)私鑰解密密文變成明文,其包括的步驟為
步驟f1檢查U是否是E/GF(p)中的點(diǎn),如果不是就拒絕該密文;
步驟f2計(jì)算得出明文
其中,加解密的一致性是由下面的等式保證的
其中密文C=<U,V1,V2,...,Vm,W>。
全文摘要
本發(fā)明為一種基于用戶(hù)身份標(biāo)識(shí)的加解密方法,其包括的步驟為步驟a產(chǎn)生基于用戶(hù)身份標(biāo)識(shí)的加解密系統(tǒng)的系統(tǒng)參數(shù),生成至少兩個(gè)主密鑰分量;步驟b提供多級(jí)密鑰設(shè)備,密鑰服務(wù)器向符合身份標(biāo)識(shí)要求用戶(hù)的各級(jí)密鑰設(shè)備中設(shè)置種子密鑰和參數(shù);步驟c每級(jí)密鑰設(shè)備根據(jù)上一級(jí)密鑰設(shè)備的幫助密鑰生成和更新本級(jí)密鑰設(shè)備的幫助密鑰;步驟d在最后一級(jí)密鑰設(shè)備處生成用戶(hù)私鑰;其是根據(jù)最后一級(jí)密鑰設(shè)備之前的密鑰設(shè)備生成的所述的幫助密鑰實(shí)現(xiàn)的;步驟e根據(jù)用戶(hù)的公鑰加密明文產(chǎn)生密文;步驟f通過(guò)用戶(hù)私鑰解密密文變成明文。實(shí)現(xiàn)了避免單一主密鑰被破解,使整個(gè)系統(tǒng)被破解的風(fēng)險(xiǎn);保證了用戶(hù)私鑰的頻繁更新,減輕了密鑰服務(wù)器的負(fù)擔(dān);計(jì)算量小,存貯空間也小。
文檔編號(hào)H04L9/30GK101166088SQ20071012256
公開(kāi)日2008年4月23日 申請(qǐng)日期2007年9月27日 優(yōu)先權(quán)日2007年9月27日
發(fā)明者張慶勝, 程登峰, 瑤 丁, 磊 王 申請(qǐng)人:航天信息股份有限公司