專利名稱:基于身份的代理盲簽名系統(tǒng)及方法
技術(shù)領(lǐng)域:
總的來說,本發(fā)明涉及代理盲簽名的系統(tǒng)和方法及其計算機產(chǎn)品,尤其涉及用于在無可信私鑰產(chǎn)生器的、基于身份的代理盲簽名系統(tǒng)中進行代理盲簽名的系統(tǒng)和方法及其計算機產(chǎn)品。
背景技術(shù):
隨著計算機技術(shù)和Internet技術(shù)的不斷進步,全球經(jīng)濟發(fā)展進入了全新的信息時代。而在信息時代中,信息數(shù)據(jù)的保密問題也就顯得越來越重要了,無論是個人信息通信還是電子商務(wù)發(fā)展,都迫切需要保證Internet網(wǎng)上信息傳輸?shù)陌踩?,也就是要保證信息安全。信息安全技術(shù)涉及信息論、計算機科學(xué)和密碼學(xué)等多方面知識,其主要功能是保證計算機系統(tǒng)和通信網(wǎng)絡(luò)內(nèi)信息能夠可靠、保密、真實和完整地傳輸。在信息安全技術(shù)中,核心技術(shù)是密碼技術(shù)。密碼技術(shù)能夠保證機密性信息的加密,以及數(shù)字簽名、身份驗證、系統(tǒng)安全等功能。
在傳統(tǒng)意義上來說,密碼學(xué)技術(shù)是研究如何把信息轉(zhuǎn)換成隱蔽數(shù)據(jù)以阻止他人非法得到。密碼體制從原理上大概分為兩類,即單鑰密碼體制和公鑰密碼體制。單鑰密碼體制的加密密鑰和解密密鑰相同,系統(tǒng)的保密性主要取決于密鑰的安全性。如何產(chǎn)生滿足保密要求的密鑰使這類體制設(shè)計和實現(xiàn)的主要課題,另一個重要問題是如何將密鑰安全可靠地分配給對方通信對方。后者在網(wǎng)絡(luò)通信條件下更為復(fù)雜,包括密鑰的產(chǎn)生、分配、存儲和銷毀等多方面的問題,統(tǒng)稱為密鑰管理。單鑰加密的古典算法有簡單變換、多表代換、同態(tài)代換、多碼代換和乘積密碼等多種。
公鑰密碼體制采用公鑰密碼體制的每個用戶都有一對選定的密鑰,一個是可以公開的公鑰,另一個是必須保密的私鑰。加密時用公鑰加密,用私鑰解密。簽名時用私鑰加密,用公鑰解密。其典型的代表算法有RSA算法等。
基于身份的密碼系統(tǒng)屬于公鑰密碼系統(tǒng)領(lǐng)域?;谏矸莸拿艽a技術(shù)的基本概念最初是Sharmir于1984年提出的,目的是簡化基于證書的公鑰密碼系統(tǒng)中的密鑰管理問題?;谏矸莸拿艽a系統(tǒng)的基本思想是把用戶部分的身份作為其公鑰,而一個私鑰產(chǎn)生器(PKG,Private Key Generator)計算每個簽名人的私鑰。PKG根據(jù)系統(tǒng)中的每個簽名人的身份,為簽名人產(chǎn)生私鑰。簽名人使用他的私鑰在消息上簽名,以證明信息的可靠性。
目前,基于身份的代理盲簽名算法都是假定PKG是無條件可信任的,PKG知道每個簽名人的私鑰。然而,這是一個嚴(yán)重的缺陷,原因是PKG知道每個簽名人的私鑰,于是PKG可以偽造任何簽名人的簽名而不被察覺。這與簽名所要求的不可偽造不可抵賴的性質(zhì)是相矛盾的。
因此,有必要開發(fā)針對無可信私鑰產(chǎn)生器的基于身份的代理盲簽名系統(tǒng)和方法。
發(fā)明內(nèi)容
針對現(xiàn)有技術(shù)的上述缺陷,本發(fā)明的目的是提供針對PKG不再被假定是無條件可信任的情況下,基于身份的代理盲系統(tǒng)及其方法。在這樣的代理盲系統(tǒng),如果PKG模仿某個誠實簽名人的代理盲簽名,該簽名人可以提供證據(jù)來證明該簽名是PKG偽造的,從而使該簽名算法滿足不可偽造、不可抵賴的性質(zhì)。
為了實現(xiàn)本發(fā)明的上述和其他目的,根據(jù)本發(fā)明的一方面,提供基于身份的代理盲簽名系統(tǒng),包括:私鑰產(chǎn)生器,用于根據(jù)所接收到的密鑰數(shù)據(jù)計算私鑰,以便使用該私鑰在消息m上簽名來證明該信息m的可靠性;代理證書產(chǎn)生部分,用于根據(jù)簽名人的私密數(shù)據(jù)生成用于該簽名人的密鑰數(shù)據(jù)并將其發(fā)送到私鑰產(chǎn)生器來計算簽名人的私鑰SA,構(gòu)造證書mω并在該證書mω上以私鑰產(chǎn)生器計算出的該簽名人的私鑰SA進行簽名,以便得到代理證書WA→B;以及代理簽名部分,用于選取代理私密數(shù)據(jù),生成相應(yīng)密鑰數(shù)據(jù),將其發(fā)送到私鑰產(chǎn)生器來計算代理私鑰SB,依據(jù)代理私鑰SB以及代理公鑰IDB獲得代理簽名密鑰,并根據(jù)該代理簽名密鑰以及代理證書WA→B構(gòu)造承諾,以便代理證書產(chǎn)生部分向用戶部分代理盲簽名。
根據(jù)本發(fā)明的一種實施方式,該代理簽名部分還驗證所接收到的代理證書WA→B是否正確。
根據(jù)本發(fā)明的一種實施方式,該代理證書產(chǎn)生部分包括:第一私密數(shù)據(jù)選取裝置,用于由簽名人從
中選取私密數(shù)據(jù)rA,并將該簽名人的公鑰IDA選擇為該簽名人的身份標(biāo)識,第一密鑰數(shù)據(jù)產(chǎn)生裝置,用于進行離散對數(shù)運算rAP得到該簽名人的密鑰數(shù)據(jù),P為有限循環(huán)群的生成元,代理證書生成裝置,用于通過選擇隨機數(shù)v∈zq并計算散列函數(shù) Uω=vQA,hω=H4(mω,Uω),Vω=(v+hω)SA和Tω=rAH3(mω) 來構(gòu)成代理證書其中 H4:{0,1}*×G1→G1和 H3:{0,1}*→G1為密碼Hash函數(shù); 以及該代理簽名部分包括:第二私密數(shù)據(jù)選取裝置,用于從
中選取私密數(shù)據(jù)rB,并將該代理公鑰IDB選擇為該代理簽名部分的身份標(biāo)識,第二密鑰數(shù)據(jù)產(chǎn)生裝置,用于進行離散對數(shù)運算rBP以產(chǎn)生該代理簽名部分的密鑰數(shù)據(jù),代理證書驗證裝置,用于通過計算散列函數(shù) hω=H4(mω,Uω), 并且驗證以下兩個等式 e(Vω,P)=e(Uω+hωQA,Ppub), e(Tω,P)=e(H3(mω),rAP), 來確定該代理證書WA→B是否正確,其中Ppub=sP,e:G1×G1→G2是雙線性映射,而G2是生成元為P、階為素數(shù)q的有限循環(huán)群,代理簽名密鑰生成裝置,用于通過計算 SP=hωSB+Vω和rP=Tω+rBH3(mω) 獲得代理盲簽名密鑰,承諾構(gòu)造裝置,用于通過隨機選擇t,t′∈zq并計算 U=t(hω(QA+QB)+Uω),以及X=t′H3(mω) 來產(chǎn)生承諾X和U,以及代理盲簽名裝置,用于接收用戶部分所發(fā)送的經(jīng)盲化的消息h和k,通過隨機選擇t,t′∈Zq而在經(jīng)盲化的h和k上簽名以得到V=(t+h)SP,Y=(t′+k)rP,其中h和k是用戶部分根據(jù)承諾X和U以及代理證書WA→B中的rAP,rBP,mω,Uω和hω,通過隨機選擇盲因子并計算 R=αU+αβ(hω(QA+QB)+Uω)和h=α-1H1(m,R)+β以及 C=ξX+ξηH3(mω)和k=ξ-1H1(m,C)+η 來盲化消息m而得到,其中,QA=sH2(IDA;rAP)和SA=sQA,SB=sH2(rBP,IDB),而H1:{0,1}*×G1→Zq為密碼散列函數(shù),是該代理盲簽名系統(tǒng)的主密鑰,由該私鑰產(chǎn)生器隨機選擇,G1是生成元為P、階為素數(shù)q的有限循環(huán)群,而代理證書產(chǎn)生部分和代理簽名部分的私鑰SA和SB由該私鑰產(chǎn)生器通過散列函數(shù)H2:{0,1}*×G1→G1計算如下: QA=sH2(IDA;rAP)和SA=sQA, SB=sH2(rBP,IDB)。
根據(jù)本發(fā)明的一種實施方式,該用戶部分包括:盲化裝置,用于接收承諾X和U以及代理證書WA→B中的rAP,rBP,mω,Uω和hω,通過隨機選擇盲因子并計算 R=αU+αβ(hω(QA+QB)+Uω)和h=α-1H1(m,R)+β以及 C=ξX+ξηH3(mω)和k=ξ-1H1(m,C)+η,H1:{0,1}*×G1→Zq為密碼散列函數(shù)來盲化消息m以得到h和k;以及解盲裝置,用于根據(jù)隨機選擇的盲因子計算 S=αV,D=ξY, 從而得到在消息m上的代理盲簽名{mω,Uω,R,S,C,D,rAP,rBP},式中V和Y是該代理盲簽名裝置通過隨機選擇而在經(jīng)盲化的h和k上簽名而得到的,V=(t+h)SP,Y=(t′+k)rP。
根據(jù)本發(fā)明的一種實施方式,該代理盲簽名系統(tǒng)還包括代理盲簽名真實性驗證部分,用于通過計算 hω=H4(mω,Uω), 并驗證以下兩個等式成立 e(S,P)=e(R+H1(m,R)(hω(QA+QB)+Uω),Ppub), e(D,P)=e(C+H1(m,C)H3(mω),rAP+rBP), 來驗證代理簽名部分在消息m上的代理盲簽名的真實性。
根據(jù)本發(fā)明的一種實施方式,該代理盲簽名系統(tǒng)還包括仲裁部分,用于通過驗證 和 是否成立來鑒別私鑰產(chǎn)生器是否誠實,其中
和
為私鑰產(chǎn)生器計算出來的、分別針對簽名人和代理盲簽名部分的離散對數(shù)值。
根據(jù)本發(fā)明的另一方面,提供在基于身份的代理盲簽名系統(tǒng)中進行代理盲簽名的方法,該代理盲簽名系統(tǒng)包括私鑰產(chǎn)生器,用于根據(jù)所接收到的密鑰數(shù)據(jù)計算私鑰,以便使用該私鑰在消息m上簽名來證明該信息m的可靠性;代理證書產(chǎn)生部分,用于根據(jù)簽名人的私密數(shù)據(jù)生成用于該簽名人的密鑰數(shù)據(jù)并將其發(fā)送到私鑰產(chǎn)生器來計算簽名人的私鑰SA,構(gòu)造證書mω并在該證書mω上以私鑰產(chǎn)生器計算出的該簽名人的私鑰SA進行簽名,以便得到代理證書WA→B;以及代理簽名部分,用于選取代理私密數(shù)據(jù),生成相應(yīng)密鑰數(shù)據(jù),將其發(fā)送到私鑰產(chǎn)生器來計算代理私鑰SB,依據(jù)代理私鑰SB以及代理公鑰IDB獲得代理簽名密鑰,并根據(jù)該代理簽名密鑰以及代理證書WA→B構(gòu)造承諾,以便代理證書產(chǎn)生部分向用戶部分代理盲簽名,該方法包括步驟:1)由代理證書產(chǎn)生部分根據(jù)簽名人選取的私密數(shù)據(jù)生成密鑰數(shù)據(jù);2)由私鑰產(chǎn)生器根據(jù)所生成的密鑰數(shù)據(jù)計算簽名人的私鑰SA,以便使用所計算出來的私鑰在該消息上簽名來證明該信息的可靠性;3)由代理證書產(chǎn)生部分構(gòu)造證書mω,并在該證書mω上以該簽名人的私鑰進行簽名,以便得到代理證書WA→B;4)由代理簽名部分選取代理私密數(shù)據(jù)并生成用于該代理簽名部分的密鑰數(shù)據(jù);5)由該私鑰產(chǎn)生器根據(jù)該代理簽名部分的密鑰數(shù)據(jù)計算該代理簽名部分的代理私鑰SB;6)由代理簽名部分依據(jù)私鑰產(chǎn)生器計算出來的該代理簽名部分的代理私鑰SB以及代理公鑰IDB獲得代理簽名密鑰;以及7)根據(jù)該代理簽名密鑰構(gòu)造承諾,以便替代理證書產(chǎn)生部分向用戶部分承諾代理盲簽名。
根據(jù)本發(fā)明的一種實施方式,上述步驟4)包括子步驟:由代理簽名部分驗證所接收到的代理證書WA→B是否正確。
根據(jù)本發(fā)明的一種實施方式,在步驟1)中,由簽名人從
中選取私密數(shù)據(jù)rA,將該簽名人的公鑰IDA選擇為該簽名人的身份標(biāo)識,并進行離散對數(shù)運算rAP以產(chǎn)生該簽名人的密鑰數(shù)據(jù);在步驟2)中,由該私鑰產(chǎn)生器通過散列函數(shù)H2:{0,1}*×G1→G1計算簽名人的私鑰SA如下: QA=sH2(IDA;rAP)和SA=sQA; 在步驟3)中,通過選擇隨機數(shù)v∈Zq并計算散列函數(shù) Uω=vQA,hω=H4(mω,Uω),Vω=(v+hω)SA和Tω=rAH3(mω) 來構(gòu)成代理證書在步驟4)中,代理簽名部分從
中選取私密數(shù)據(jù)rB,將該代理公鑰IDB選擇為該代理簽名部分的身份標(biāo)識,并進行離散對數(shù)運算rBP以產(chǎn)生該代理簽名部分的密鑰數(shù)據(jù);在步驟5中,通過散列函數(shù)H2:{0,1}*×G1→G1計算代理簽名部分的私鑰SB如下: SB=sH2(rBP,IDB); 在步驟6)中,通過計算 SP=hωSB+Vω和rP=Tω+rBH3(mω) 獲得代理盲簽名密鑰;以及在步驟7)中,通過隨機選擇t,t′∈zq并計算 U=t(hω(QA+QB)+Uω),以及X=t′H3(mω) 來產(chǎn)生承諾X和U,由用戶部分根據(jù)承諾X和U以及代理證書WA→B中的rAP,rBP,mω,Uω和hω,通過隨機選擇盲因子并計算 R=αU+αβ(hω(QA+QB)+Uω)和h=α-1H1(m,R)+β以及 C=ξX+ξηH3(mω)和k=ξ-1H1(m,C)+η, 來盲化消息m以得到h和k,通過隨機選擇t,t′∈Zq而在經(jīng)盲化的h和k上簽名以得到V=(t+h)SP,Y=(t′+k)rP,其中h和k是用戶部分根據(jù)承諾X和U以及代理證書WA→B中的rAP,rBP,mω,Uω和hω,通過隨機選擇盲因子并計算 R=αU+αβ(hω(QA+QB)+Uω)和h=α-1H1(m,R)+β以及 C=ξX+ξηH3(mω)和k=ξ-1H1(m,C)+η 來盲化消息m而得到的,其中,是該代理盲簽名系統(tǒng)的主密鑰,由該私鑰產(chǎn)生器隨機選擇,G1是生成元為P、階為素數(shù)q的有限循環(huán)群,H1:{0,1}*×G1→Zq,H2:{0,1}*×G1→G1,H3:{0,1}*→G1和H4:{0,1}*×G1→G1為密碼Hash函數(shù)。
根據(jù)本發(fā)明的一種實施方式,在步驟4)的子步驟中,通過計算散列函數(shù) hω=H4(mω,Uω), 并且驗證以下兩個等式 e(Vω,P)=e(Uω+hωQA,Ppub), e(Tω,P)=e(H3(mω),rAP), 來確定該代理證書WA→B是否正確,其中Ppub=sP,e:G1×G1→G2是雙線性映射,而G2是生成元為P、階為素數(shù)q的有限循環(huán)群。
根據(jù)本發(fā)明的一種實施方式,步驟7)還包括子步驟: 由用戶部分根據(jù)隨機選擇的盲因子計算 S=αV,D=ξY, 從而得到在消息m上的代理盲簽名{mω,Uω,R,S,C,D,rAP,rBP},式中V和Y是該代理盲簽名裝置通過隨機選擇t,t′∈zq而在經(jīng)盲化的h和k上簽名而得到的,V=(t+h)SP,Y=(t′+k)rP。
根據(jù)本發(fā)明的一種實施方式,該代理盲簽名方法還包括步驟8):通過計算 hω=H4(mω,Uω), 并驗證以下兩個等式成立 e(S,P)=e(R+H1(m,R)(hω(QA+QB)+Uω),Ppub), e(D,P)=e(C+H1(m,C)H3(mω),rAP+rBP), 來驗證代理簽名部分在消息m上的代理盲簽名的真實性。
根據(jù)本發(fā)明的一種實施方式,該代理盲簽名方法還包括步驟9):通過驗證 和 是否成立來鑒別私鑰產(chǎn)生器是否誠實,其中
和
為私鑰產(chǎn)生器計算出來的、分別針對簽名人和代理盲簽名部分的離散對數(shù)值。
根據(jù)本分發(fā)明的再一方面,提供計算機產(chǎn)品,其上實施有實現(xiàn)在基于身份的代理盲簽名系統(tǒng)中進行代理盲簽名的方法的程序,該代理盲簽名系統(tǒng)包括私鑰產(chǎn)生器,用于根據(jù)所接收到的密鑰數(shù)據(jù)計算私鑰,以便使用該私鑰在消息m上簽名來證明該信息m的可靠性;代理證書產(chǎn)生部分,用于根據(jù)簽名人的私密數(shù)據(jù)生成用于該簽名人的密鑰數(shù)據(jù)并將其發(fā)送到私鑰產(chǎn)生器來計算簽名人的私鑰SA,構(gòu)造證書mω并在該證書mω上以私鑰產(chǎn)生器計算出的該簽名人的私鑰SA進行簽名,以便得到代理證書WA→B;以及代理簽名部分,用于選取代理私密數(shù)據(jù),生成相應(yīng)密鑰數(shù)據(jù),將其發(fā)送到私鑰產(chǎn)生器來計算代理私鑰SB,依據(jù)代理私鑰SB以及代理公鑰IDB獲得代理簽名密鑰,并根據(jù)該代理簽名密鑰以及代理證書WA→B構(gòu)造承諾,以便代理證書產(chǎn)生部分向用戶部分代理盲簽名,該方法包括步驟:1)由代理證書產(chǎn)生部分根據(jù)簽名人選取的私密數(shù)據(jù)生成密鑰數(shù)據(jù);2)由私鑰產(chǎn)生器根據(jù)所生成的密鑰數(shù)據(jù)計算簽名人的私鑰SA,以便使用所計算出來的私鑰在該消息上簽名來證明該信息的可靠性;3)由代理證書產(chǎn)生部分構(gòu)造證書mω,并在該證書mω上以該簽名人的私鑰進行簽名,以便得到代理證書WA→B;4)由代理簽名部分選取代理私密數(shù)據(jù)并生成用于該代理簽名部分的密鑰數(shù)據(jù);5)由該私鑰產(chǎn)生器根據(jù)該代理簽名部分的密鑰數(shù)據(jù)計算該代理簽名部分的代理私鑰SB;6)由代理簽名部分依據(jù)私鑰產(chǎn)生器計算出來的該代理簽名部分的代理私鑰SB以及代理公鑰IDB獲得代理簽名密鑰;以及7)根據(jù)該代理簽名密鑰構(gòu)造承諾,以便替代理證書產(chǎn)生部分向用戶部分承諾代理盲簽名。
本發(fā)明基于身份的代理盲簽名方案不再假定PKG是無條件可信任的。每個用戶部分除了擁有來自于PKG分配的密鑰S以外,還具有PKG未知的秘密信息r。如果PKG模仿某個誠實簽名人的簽名,該簽名人可以利用秘密信息r,提供證據(jù)來證明該簽名是PKG偽造的。除此之外,本專利中申請的基于身份的代理盲簽名方案還同時滿足代理和盲的性質(zhì),以及不可偽造不可抵賴的性質(zhì)。
通過結(jié)合附圖參照下面的詳細描述,本發(fā)明的上述和其它目的、特征和優(yōu)點將變得更加清楚,其中: 圖1示出根據(jù)本發(fā)明的、無可信私鑰產(chǎn)生器(PKG)的、基于身份的代理盲簽名系統(tǒng)的方框圖; 圖2是示出圖1所示的代理盲簽名系統(tǒng)代理證書產(chǎn)生部分的結(jié)構(gòu)的方框圖; 圖3是示出代理簽名部分的結(jié)構(gòu)的方框圖; 圖4示出根據(jù)本發(fā)明的、無可信私鑰產(chǎn)生器的、基于身份的代理盲簽名的方法的流程圖; 圖5示出在根據(jù)本發(fā)明的、無可信私鑰產(chǎn)生器(PKG)的、基于身份的代理盲簽名系統(tǒng)中的產(chǎn)生代理證書WA→B的方法的流程圖; 圖6示出驗證代理證書WA→B是否正確的流程圖; 圖7示出鑒別PKG器是否偽造代理證書產(chǎn)生部分簽名的流程圖;以及 圖8圖示鑒別PKG器是否偽造代理簽名部分簽名的流程圖。
在所有附圖中,相同的附圖參考標(biāo)記指示相同的元件、特點和結(jié)構(gòu)。
具體實施例方式 下面將參照示出本發(fā)明的優(yōu)選實施方式的附圖來更加全面地描述本發(fā)明。應(yīng)該理解,本發(fā)明可以用其他不同的形式來實現(xiàn),而且不應(yīng)當(dāng)限于這里所描述的實施方式。事實上,提供下述實施方式只是為了全面和完整地將本發(fā)明的范圍傳達給本領(lǐng)域的普通技術(shù)人員。
現(xiàn)在參照附圖描述根據(jù)本發(fā)明的、無可信私鑰產(chǎn)生器(PKG)的、基于身份的代理盲簽名系統(tǒng)和方法。在以下的描述中,將省略在這里結(jié)合的公知功能和配置的詳細描述,因為它可能混淆本發(fā)明。
首先參照圖1,圖1示出了根據(jù)本發(fā)明的、無可信私鑰產(chǎn)生器的、基于身份的代理盲簽名系統(tǒng)的方框圖。在圖1所示的代理盲簽名系統(tǒng)中,包括代理證書產(chǎn)生部分110、PKG器130、代理簽名部分140以及用戶部分150。
代理證書產(chǎn)生部分110按照通用的方法構(gòu)造證書mω,然后在mω上以PKG器130根據(jù)簽名人的私密數(shù)據(jù)和公鑰產(chǎn)生的簽名人自己的私鑰進行簽名,以得到代理證書WA→B并將該代理證書WA→B發(fā)送給代理簽名部分140。
下面詳細描述代理證書產(chǎn)生部分110的結(jié)構(gòu)。圖2是示出代理證書產(chǎn)生部分110的結(jié)構(gòu)的方框圖。如圖2所示,代理證書產(chǎn)生部分110包括私密數(shù)據(jù)選取裝置210、簽名人密鑰數(shù)據(jù)產(chǎn)生裝置220和代理證書生成裝置230。
為了產(chǎn)生代理證書WA→B,代理證書產(chǎn)生部分110首先通過私密數(shù)據(jù)選取裝置210由簽名人選擇私密數(shù)據(jù)以及公鑰IDA,其中,公鑰IDA可以是簽名人的身份標(biāo)識,然后將所選擇的私密數(shù)據(jù)和作為有限循環(huán)群(GDP)G1和G2的共同生成元P通過簽名人密鑰數(shù)據(jù)產(chǎn)生裝置220計算rAP作為簽名人的密鑰數(shù)據(jù),并將計算結(jié)果傳遞給PKG器130。
在上述算法中,rAP表示rA和P之間的離散對數(shù)運算。關(guān)于離散對數(shù)運算的問題,可以做如下說明。若G是某個有限循環(huán)群(此處設(shè)G是乘法群),其階為q,g是G的一個生成元,即 G=<g>={gi|i=0,…,q-1}。
對于群G,給定g和i,計算gi是容易的。但是給定a∈G,如果想要找到某個x∈{0,…,q-1},使得gx=a成立,是困難的。
如果G是加法群時,離散對數(shù)問題可以表示為:給定a∈G,要找到x∈{0,…,q-1},使得xg=a是困難的,其中xg表示群G中的x個g相加:xg=g+g+…+g(共x個)。
離散對數(shù)問題的例子很多,比如基于橢圓曲線的離散對數(shù)問題,基于有限域Fp上的離散對數(shù)問題,等等。
上述圖1所示的系統(tǒng)中,在代理證書產(chǎn)生部分110將其自身身份標(biāo)識IDA和離散對數(shù)計算結(jié)果rAP發(fā)送給PKG后,PKG器130根據(jù)所接收到的代理證書產(chǎn)生部分110的IDA和代理證書產(chǎn)生部分110計算所得的離散對數(shù)計算結(jié)果rAP計算散列函數(shù)值 QA=sH2(IDA;rAP)和SA=sQA, 其中是系統(tǒng)的主密鑰,其由PKG器130隨機地選擇而來并由PKG器130進行保密,IDA是簽名人的身份標(biāo)識。
然后,代理證書產(chǎn)生部分110利用代理證書生成裝置230,根據(jù)來自PKG器130的散列函數(shù)值QA=sH2(IDA;rAP)和SA=sQA,通過選擇一個隨機數(shù)v∈Zq,計算另外一組散列函數(shù)值 Uω=vQA,hω=H4(mω,Uω),Vω=(v+hω)SA和Tω=rAH5(mω)。
然后,代理證書產(chǎn)生部分110根據(jù)以上過程所計算出來的各個散列函數(shù)值Uω,Vω,Tω,mω和rAP,構(gòu)成代理證書以傳遞給代理簽名部分140。在這里和以下定義了四個密碼Hash函數(shù) H1:{0,1}*×G1→Zq, H2:{0,1}*×G1→G1, H3:{0,1}*→G1,和 H4:{0,1}*×G1→Zq。
這里和以下還假定G1,G2是兩個階為素數(shù)q的GDP群,P是它的一個生成元。而且PKG器130公開系統(tǒng)參數(shù) {G1,G2,e,q,P,Ppub,H1,H2,H3,H4}, 其中Ppub=sP,而e:G1×G1→G2是雙線性映射。
值得注意,上述算法中所用到的Hash函數(shù)可以按照通用Hash函數(shù)的定義方法進行定義。例如,D.Boneh和M.Franklin在其文章“Identity-basedEncryption from the Weil pairing”(SIAM J.of Computing,32(3):586-615,2003.Extended abstract in Advances in Crptology-Crypto′01,LNCS 2139,pp.213-229,Springer-Verlag,2001)中定義了h:{0,1}*→G*的例子,而D.Bonech,B.Lynn和H.Shacham在文獻“Short Signatures from the Weil Pairing”(ASIACRYPT 2001,LNCS 2248,pp.514-532,2001)中也定義了h:{0,1}*→G*的例子。
另外,關(guān)于算法中用到的雙線性映射(Pairing map)e:G1×G1→G2的例子,可以從D.Boneh和M.Franklin的文章“Identity-based Encryption from the Weilpairing”(SIAM J.of Computing,32(3):586-615,2003.Extended abstract inAdvances in Crptology-Crypto′01,LNCS 2139,pp.213-229,Springer-Verlag,2001)中找到具有密碼意義的橢圓曲線上和Abel代數(shù)族上的Weil雙線性映射。文獻[3]的附錄部分有關(guān)于Tate pairing的定義。此外,F(xiàn).Hess在文獻“Efficient Identitv Based Signature Schemes Based on Pairings”(SAC 2002,LNCS 2595,pp.310-324,Springer-Verlag,2002)中給出了一個被稱為Tate雙線性映射的具有密碼意義的橢圓曲線上和Abel代數(shù)族上的雙線性映射。
再回到圖1,在代理證書產(chǎn)生部分110產(chǎn)生代理證書之后,根據(jù)本發(fā)明的代理盲簽名系統(tǒng)將該代理證書WA→B發(fā)送給代理簽名部分140。代理簽名部分140驗證所接收到的代理證書WA→B是否正確,如果代理簽名部分140通過驗證知道代理證書WA→B正確,則依據(jù)其私密數(shù)據(jù)rB和私鑰SB以及公鑰IDB獲得代理簽名密鑰SP和rP,并根據(jù)代理簽名密鑰SP和rP構(gòu)造承諾U和X,以將U和X以及其他相關(guān)數(shù)據(jù)發(fā)送給用戶部分150。
以下參照圖3來詳細描述代理簽名部分140的結(jié)構(gòu)。圖3是示出代理簽名部分140的結(jié)構(gòu)的方框圖。如圖3所示代理簽名部分140包括私密數(shù)據(jù)選取裝置310、代理簽名密鑰數(shù)據(jù)產(chǎn)生裝置320、代理證書驗證裝置330、代理簽名密鑰生成裝置340、承諾構(gòu)造裝置350和代理盲簽名裝置360。
私密數(shù)據(jù)選取裝置310隨機選擇私密數(shù)據(jù)以及公鑰IDB,其中,公鑰IDB可以是代理簽名部分140的身份標(biāo)識,然后將所選擇的私密數(shù)據(jù)和作為有限循環(huán)群(GDP)G1和G2的共同生成元P通過代理簽名密鑰數(shù)據(jù)產(chǎn)生裝置320計算rBP,并將計算結(jié)果傳遞給PKG器130。
然后PKG器130根據(jù)從代理簽名部分140接收到的密鑰數(shù)據(jù)來計算代理簽名部分140的私鑰 SB=sH2(rBP,IDB)。
而代理證書驗證裝置330通過計算散列函數(shù)值 hω=H4(mω,Uω), 并且驗證以下兩個等式 e(Vω,P)=e(Uω+hωQA,Ppub), e(Tω,P)=e(H3(mω),rAP), 是否成立,來確定代理證書WA→B是否正確。如果以上兩式成立,則認(rèn)為代理證書WA→B正確,否則認(rèn)為代理證書WA→B不正確,因此拒絕進行代理。
在判定代理證書WA→B正確的情況下,為了進行代理簽名操作,代理簽名部分140通過代理簽名密鑰生成裝置340繼續(xù)獲得代理簽名密鑰 SP=hωSB+Vω和rP=Tω+rBH3(mω)。
假定m是用于簽名的消息,承諾構(gòu)造裝置350隨機選擇t,t′∈zq,然后計算所要的承諾 U=t(hω(QA+QB)+Uω),以及X=t′H5(mω)。
代理簽名部分140將承諾X和U連同代理證書中的rAP,rBP,mω,Uω和hω一起傳遞給用戶部分150。
用戶部分150響應(yīng)所接收到的數(shù)據(jù),將消息m盲化,得到h和k,并將h和k發(fā)送給代理簽名部分140。具體地說,用戶部分150包括兩個部分:盲化裝置152和解盲化裝置154(如圖1所示)。用戶部分150在接收到X和U以及代理證書中的rAP,rBP,mω,Uω和hω后,其盲化裝置152隨機選擇盲因子計算 R=αU+αβ(hω(QA+QB)+Uω)和h=α-1H1(m,R)+β,以及 C=ξX+ξηH3(mω)和k=ξ-1H1(m,C)+η, 從而產(chǎn)生用于盲化消息m的h和k,并將其傳送給代理簽名部分140。
代理盲簽名裝置360在盲化的h和k上簽名,得到V和Y,并將V和Y發(fā)送給用戶部分150。具體地說,代理盲簽名裝置360利用從用戶部分150處所接收到的h和k以及承諾構(gòu)造裝置350隨機選擇的t,t′∈Zq,計算 V=(t+h)SP,Y=(t′+k)rP, 將所得到的V和Y傳遞給用戶部分150。
而用戶部分150的解盲化裝置154根據(jù)V和Y解盲消息m,得到代理盲簽名S和D。具體來說,用戶部分150根據(jù)從代理簽名部分140接收到的V和Y,以及用戶部分150隨機選擇的盲因子計算 S=αV,D=ξY。
從而得到{mω,Uω,R,S,C,D,rAP,rBP},即代理簽名部分140在消息m上的代理盲簽名。
根據(jù)本發(fā)明的一個優(yōu)選實施方式,圖1所示的無可信私鑰產(chǎn)生器的基于身份的代理盲簽名系統(tǒng)還可以包括用于驗證消息m上的代理盲簽名的真實性的代理盲簽名真實性驗證部分160。在要驗證消息m上的代理盲簽名的真實性時,代理盲簽名真實性驗證部分160首先計算散列函數(shù) hω=H4(mω,Uω), 然后根據(jù)所計算出來的散列函數(shù)值,結(jié)合代理盲簽名{mω,Uω,R,S,C,D,rAP,rBP},驗證以下兩個等式是否成立 e(S,P)=e(R+H1(m,R)(hω(QA+QB)+Uω),Ppub), e(D,P)=e(C+H1(m,C)H3(mω),rAP+rBP). 如果這兩個等式成立,則確定代理簽名部分140在消息m上的代理盲簽名可以接受,從而獲得所要求的代理盲簽名{mω,Uω,R,S,C,D,rAP,rBP}。
根據(jù)本發(fā)明的一個優(yōu)選實施方式,圖1所示的無可信私鑰產(chǎn)生器的基于身份的代理盲簽名系統(tǒng)還可以包括仲裁部分120,用于協(xié)助鑒別PKG器130是否誠實。如果PKG器130想要偽造代理證書產(chǎn)生部分110的代理簽名證書,由于PKG器130不知道代理證書產(chǎn)生部分110的私密數(shù)據(jù)rA,于是PKG器130隨機選擇作為代理證書產(chǎn)生部分110的私密數(shù)據(jù),來計算 然后,PKG器130按照本發(fā)明的無可信私鑰產(chǎn)生器的基于身份的代理盲簽名系統(tǒng)和方法在證書mω上簽名獲得代理簽名證書WA→B。然后PKG器130把該代理簽名證書WA→B發(fā)送給代理簽名部分140。在用戶部分150與代理簽名部分140之間也根據(jù)本發(fā)明的無可信私鑰產(chǎn)生器的基于身份的代理盲簽名系統(tǒng)和方法進行簽名,從而得到在消息m上的代理盲簽名 容易驗證,該代理簽名滿足上面的兩個驗證方程 e(S′,P)=e(R′+H1(m,R′)(hω(QA+QB)+Uω),Ppub), 所以是有效的代理盲簽名。
然而,不管PKG器130偽造代理證書產(chǎn)生部分110還是代理簽名部分140的簽名,仲裁部分120都可以利用“零知識證明”的方法來識別PKG器130偽造了簽名。下面說明仲裁部分120識別PKG器130偽造了簽名的原理。
首先描述仲裁部分120利用“零知識證明”的方法來識別PKG器130偽造的代理證書產(chǎn)生部分110的簽名。為此,仲裁部分120從代理證書產(chǎn)生部分110接收rAP,并響應(yīng)從代理證書產(chǎn)生部分110接收到的rAP,隨機選擇某個隨機數(shù)α∈zq,計算αP,并將αP發(fā)送給代理證書產(chǎn)生部分110。然后,代理證書產(chǎn)生部分110根據(jù)所接收到的αP計算e(SA,αP),然后再將該所計算出的結(jié)果e(SA,αP)發(fā)送給仲裁部分120。仲裁部分120根據(jù)代理證書產(chǎn)生部分110發(fā)送來的數(shù)據(jù)驗證方程 e(SA,αP)=e(H2(IDA,rAP),Ppub)α 是否成立。如果驗證結(jié)果表明該方程成立,則說明代理證書產(chǎn)生部分110知道與其自己的身份IDA相對應(yīng)的私鑰SA,因此rAP和r′P都與IDA對應(yīng)。這說明PKG器130是不誠實的,因為只有PKG器130知道主密鑰,所以只有PKG器130能夠偽造簽名人的簽名。
接著描述通過仲裁部分120鑒別PKG器130偽造了代理簽名部分140的簽名。為此,仲裁部分120從代理簽名部分140接收
并響應(yīng)從代理簽名部分140接收到的
隨機選擇某個隨機數(shù)α∈Zq,將αP發(fā)送給代理簽名部分140,代理簽名部分140利用所接收到的αP計算e(SB,αP),并將所計算出來的值發(fā)送給仲裁部分120。然后,仲裁部分120驗證方程 是否成立,由此判斷PKG器130是否誠實。如果該方程成立,說明代理簽名部分140知道與其自身的身份IDB相對應(yīng)的私鑰SB,于是rBP和
都與IDB對應(yīng)。這說明PKG器130是不誠實的,因為只有PKG器130知道主密鑰,所以只有PKG器130能夠偽造簽名人的簽名。
根據(jù)本發(fā)明的另一方面,本發(fā)明提供無可信私鑰產(chǎn)生器(PKG)130的、基于身份的代理盲簽名方法。圖4示出了根據(jù)本發(fā)明的、無可信私鑰產(chǎn)生器130的、基于身份的代理盲簽名的方法的流程圖。在圖4中,在步驟S410,代理證書產(chǎn)生部分110按照通用的方法構(gòu)造一個證書mω,然后在mω上簽名,以得到代理證書WA→B。在得到代理證書WA→B后,步驟S410還將代理證書WA→B發(fā)送給代理簽名部分140。
具體地說,圖5示出了步驟S410的產(chǎn)生代理證書WA→B的方法的詳細流程圖。在步驟310中,簽名人通過代理證書產(chǎn)生部分110隨機選擇私密數(shù)據(jù)以及公鑰IDA,其中,公鑰IDA可以是簽名人的身份標(biāo)識。
然后,在步驟S520中,代理證書產(chǎn)生部分110利用所選擇的私密數(shù)據(jù)和作為有限循環(huán)群(GDP)G1和G2的共同生成元P計算rAP,并將計算結(jié)果傳遞給PKG器130。這里,rAP表示rA和P之間的離散對數(shù)運算。
下面接著描述產(chǎn)生代理證書WA→B的詳細流程。在圖5所示的步驟S530中,PKG器130根據(jù)所接收到的rAP和代理證書產(chǎn)生部分110的公鑰IDA計算散列函數(shù)值 QA=sH2(IDA;rAP)和SA=sQA, 其中是系統(tǒng)的主密鑰,其由PKG器130隨機地選擇而來并由PKG器130進行保密,IDA是簽名人的身份標(biāo)識。
接著,在步驟S540中,代理證書產(chǎn)生部分110選擇一個隨機數(shù)v∈Zq,計算另外一組散列函數(shù)值 Uω=vQA,hω=H4(mω,Uω),Vω=(v+hω)SA和Tω=rAH5(mω)。
最后,在步驟S550,根據(jù)以上過程所計算出來的各個散列函數(shù)值Uω,Vω,Tω,mω和rAP,構(gòu)成代理證書以傳遞給代理簽名部分140。
在這里,定義了四個密碼Hash函數(shù) H1:{0,1}*×G1→Zq, H2:{0,1}*×G1→G1, H3:{0,1}*→G1,和 H4:{0,1}*×G1→Zq, 其中假定G1,G2是兩個階為素數(shù)q的GDP群,P是它的一個生成元。而且PKG器130公開系統(tǒng)參數(shù) {G1,G2,e,q,P,Ppub,H1,H2,H3,H4}, 其中Ppub=sP,而e:G1×G1→G2是雙線性映射。值得注意,算法中用到的Hash函數(shù)可以按照通用Hash函數(shù)的定義方法進行定義。例如,D.Boneh和M.Franklin在其文章“Identity-based Encryption from the Weil pairing”(SIAM J.ofComputing,32(3):586-615,2003.Extended abstract in Advances inCrptology-Crypto′01,LNCS 2139,pp.213-229,Springer-Verlag,2001)中定義了h:{0,1}*→G*的例子,而D.Bonech,B.Lynn和H.Shacham在文獻“ShortSignatures from the Weil Pairing”(ASIACRYPT 2001,LNCS 2248,pp.514-532,2001)中也定義了h:{0,1}*→G*的例子。
另外,關(guān)于算法中用到的雙線性映射(Pairing map)e:G1×G1→G2的例子,可以從D.Boneh和M.Franklin的文章“Identity-based Encryption from the Weilpairing”(SIAM J.of Computing,32(3):586-615,2003.Extended abstract inAdvances in Crptology-Crypto′01,LNCS 2139,pp.213-229,Springer-Verlag,2001)中找到具有密碼意義的橢圓曲線上和Abel代數(shù)族上的Weil雙線性映射。文獻[3]的附錄部分有關(guān)于Tate pairing的定義。此外,F(xiàn).Hess在文獻“Efficient Identity Based Signature Schemes Based on Pairings”(SAC 2002,LNCS 2595,pp.310-324,Springer-Verlag,2002)中給出了一個被稱為Tate雙線性映射的具有密碼意義的橢圓曲線上和Abel代數(shù)族上的雙線性映射。
再回來參考圖4,在代理證書產(chǎn)生部分110產(chǎn)生代理證書之后,根據(jù)本發(fā)明的系統(tǒng)將代理證書WA→B發(fā)送給代理簽名部分140。在步驟S420,代理簽名部分140驗證WA→B是否正確,如果代理簽名部分140通過驗證知道代理證書WA→B正確,則依據(jù)其私密數(shù)據(jù)rB和私鑰SB以及公鑰IDB獲得代理簽名密鑰SP和rP,并根據(jù)代理簽名密鑰SP和rP構(gòu)造承諾U和X,以將U和X以及其他相關(guān)數(shù)據(jù)發(fā)送給用戶部分150。
圖6示出了在圖4的步驟S420的詳細流程。參考圖6,在步驟S610,代理簽名部分140計算散列函數(shù)值 hω=H4(mω,Uω)。
接下來,在步驟S620,驗證以下兩個等式 e(Vω,P)=e(Uω+hωQA,Ppub), e(Tω,P)=e(H3(mω),rAP), 是否成立。如果以上兩式成立,則在步驟S630中獲得代理簽名密鑰 SP=hωSB+Vω和rP=Tω+rBH3(mω)。
其中私鑰 SB=sH2(rBP,IDB)。
然后,在步驟S640,代理簽名部分140產(chǎn)生代理盲簽名。具體地說,假定m是用于簽名的消息,則代理簽名部分140隨機選擇t,t′∈Zq,然后計算 U=t(hω(QA+QB)+Uω),以及X=t′H5(mω), 并將X和U連同rAP,rBP,mω,Uω和hω一起傳遞給用戶部分150。
接下來,在回到圖4,在步驟S430,用戶部分150將消息m盲化,得到h和k,并將h和k發(fā)送給代理簽名部分140。具體地說,用戶部分150隨機選擇盲因子計算 R=αU+αβ(hω(QA+QB)+Uω)和h=α-1H1(m,R)+β,以及 C=ξX+ξηH3(mω)和k=ξ-1H1(m,C)+η, 然后將h和k傳送給代理簽名部分140。
接下來,在步驟S440,代理簽名部分140在盲化的h和k上簽名,得到V和Y,并將V和Y發(fā)送給用戶部分150。具體地說,代理簽名部分140利用從用戶部分150處所接收到的h和k以及代理簽名部分140自己隨機選擇t,t′∈Zq,計算 V=(t+h)SP,Y=(t′+k)rP, 將所得到的V和Y傳遞給用戶部分150。
在圖4中的步驟150中,用戶部分150根據(jù)V和Y解盲,得到代理盲簽名S和D。具體來說,用戶部分150根據(jù)從代理簽名部分140接收到的V和Y,以及用戶部分150隨機選擇的盲因子計算 S=αV,D=ξY。
從而得到{mω,Uω,R,S,C,D,rAP,rBP},即代理簽名部分140在消息m上的代理盲簽名。
要驗證代理簽名部分140在消息m上的代理盲簽名的真實性,驗證者可以通過計算 hω=H4(mω,Uω), 如果以下兩個等式成立 e(S,P)=e(R+H1(m,R)(hω(QA+QB)+Uω),Ppub), e(D,P)=e(C+H1(m,C)H3(mω),rAP+rBP). 則代理簽名部分140在消息m上的代理盲簽名可以接受,從而獲得所要求的代理盲簽名。
可以驗證,根據(jù)本發(fā)明的無可信私鑰產(chǎn)生器的基于身份的代理盲簽名系統(tǒng)和方法獲得了所要求的代理盲簽名能夠有助于鑒別PKG器130是否誠實。
事實上,在根據(jù)本發(fā)明的無可信私鑰產(chǎn)生器的基于身份的代理盲簽名系統(tǒng)和方法獲得了所要求的代理盲簽名的情況下,如果PKG器130想要偽造代理證書產(chǎn)生部分110的代理簽名證書,由于PKG器130不知道代理證書產(chǎn)生部分110的私密數(shù)據(jù)rA,于是PKG器130隨機選擇
作為代理證書產(chǎn)生部分110的私密數(shù)據(jù),來計算 然后,PKG器130按照本發(fā)明的無可信私鑰產(chǎn)生器的基于身份的代理盲簽名系統(tǒng)和方法在證書mω上簽名獲得代理簽名證書WA→B。然后PKG器130把該代理簽名證書WA→B發(fā)送給代理簽名部分140。在用戶部分150與代理簽名部分140之間也根據(jù)本發(fā)明的無可信私鑰產(chǎn)生器的基于身份的代理盲簽名系統(tǒng)和方法進行簽名,從而得到在消息m上的代理盲簽名 容易驗證,該代理簽名滿足上面的兩個驗證方程 e(S′,P)=e(R′+H1(m,R′)(hω(QA+QB)+Uω),Ppub), 所以是有效的代理盲簽名。
可以證明,代理證書產(chǎn)生部分110和代理簽名部分140都可以利用“零知識證明”的方法來識別PKG器130偽造自己的代理盲簽名。下面結(jié)合圖7和圖8詳細描述代理證書產(chǎn)生部分110和代理簽名部分140利用“零知識證明”的方法來識別PKG器130偽造的代理盲簽名的流程。圖7示出了具體地識別PKG器130偽造代理證書產(chǎn)生部分110的代理盲簽名的流程圖。在該圖中,在步驟S710,代理證書產(chǎn)生部分110將rAP發(fā)送給一個仲裁部分120,以便在仲裁部分120的協(xié)助下進行該驗證。
在步驟S720中,仲裁部分120響應(yīng)代理證書產(chǎn)生部分110發(fā)送來的rAP,隨機選擇某個隨機數(shù)α∈Zq,計算αP,并將αP發(fā)送給代理證書產(chǎn)生部分110。
接下來,在步驟S730,代理證書產(chǎn)生部分110根據(jù)所接收到的αP計算e(SA,αP),然后再將該所計算出的結(jié)果e(SA,αP)發(fā)送給仲裁部分120。
在步驟S740,仲裁部分120根據(jù)代理證書產(chǎn)生部分110發(fā)送來的數(shù)據(jù)驗證方程 是否成立。如果在步驟S740中的驗證結(jié)果表明該方程成立,則說明代理證書產(chǎn)生部分110知道與其自己的身份IDA相對應(yīng)的私鑰SA,因此rAP和
都與IDA對應(yīng)。這說明PKG器130是不誠實的,因為只有PKG器130知道主密鑰,所以只有PKG器130能夠偽造簽名人的簽名。所以,在這種情況下,仲裁部分120在步驟S750中得出PKG器130不誠實的結(jié)論。而如果在步驟S740中的驗證結(jié)果表明該方程不成立,則仲裁部分120在步驟S760中得出PKG器130誠實的結(jié)論。
另一方面,如果PKG器130想要偽造代理簽名部分140的代理盲簽名,由于他不知道代理人簽名人的私密數(shù)據(jù)rB,于是他隨機選擇計算 然后,PKG器130按照上面的協(xié)議在消息m上簽名。最后,用戶部分150得到PKG器130在消息m的盲簽名容易驗證,滿足上面的兩個驗證方程,所以是與代理簽名部分140的身份IDB相對應(yīng)的有效的代理盲簽名。
圖8圖示了驗證代理盲簽名是PKG器130偽造代理簽名部分140的簽名的流程圖。在圖8所示的流程圖中,在步驟S810,代理簽名部分140將
發(fā)送給一個仲裁部分120以請求該仲裁部分120協(xié)助驗證該簽名是否是PKG器130偽造的。
然后,在步驟S820中,仲裁部分120響應(yīng)代理簽名部分140發(fā)送來的
隨機選擇某個隨機數(shù)α∈Zq,將αP發(fā)送給代理簽名部分140。
接下來,在步驟S830,代理簽名部分140利用所接收到的aP計算e(SB,aP),并將所計算出來的值發(fā)送給仲裁部分120。
最后,在步驟S840,仲裁部分120驗證方程 是否成立,由此判斷PKG器130是否誠實。如果該方程成立,說明代理簽名部分140知道與其自身的身份IDB相對應(yīng)的私鑰SB,于是rBP和
都與IDB對應(yīng)。這說明PKG器130是不誠實的,因為只有PKG器130知道主密鑰,所以只有PKG器130能夠偽造簽名人的簽名。所以,在這種情況下,仲裁部分120在步驟S850中得出PKG器130不誠實的結(jié)論。而如果在步驟S840中的驗證結(jié)果表明該方程不成立,則仲裁部分120在步驟S860中得出PKG器130誠實的結(jié)論。
因此,這樣獲得的代理盲簽名具有代理和盲的性質(zhì),該代理盲簽名滿足不可偽造不可抵賴的性質(zhì),并且根據(jù)本發(fā)明的上述簽名方法不用假定私鑰產(chǎn)生器是無條件可信的,克服了傳統(tǒng)的基于身份的代理盲簽名算法的一個嚴(yán)重缺陷。如果PKG器130模仿某個誠實簽名人的代理盲簽名,該簽名人可以提供證據(jù)來證明該簽名是PKG器130偽造的。因此,與已知的基于身份的代理盲簽名算法相比,根據(jù)本發(fā)明的無可信私鑰產(chǎn)生器的基于身份的代理盲簽名方案具有更高實際應(yīng)用價值。
在上面的說明中,根據(jù)本發(fā)明的優(yōu)選實施方式描述了代理盲簽名系統(tǒng)及其方法。本領(lǐng)域技術(shù)人員將理解,該系統(tǒng)和方法都可以實現(xiàn)為記錄在計算機可讀記錄介質(zhì)上的計算機可讀代碼。該計算機可讀記錄介質(zhì)可以是存儲可由計算機系統(tǒng)讀取的數(shù)據(jù)的任何數(shù)據(jù)存儲設(shè)備。計算機可讀記錄介質(zhì)的示例包括只讀存儲器(ROM)、隨機存取存儲器(RAM)、CD-ROM、磁帶、軟盤、光數(shù)據(jù)存儲裝置和載波(諸如通過因特網(wǎng)的數(shù)據(jù)發(fā)送)。計算機可讀記錄介質(zhì)還可以分布在聯(lián)網(wǎng)的計算機系統(tǒng)中,以便以分布的方式存儲并執(zhí)行計算機可讀代碼。
盡管上述是參照示例性實施方式來描述本發(fā)明,但本領(lǐng)域技術(shù)人員將理解,在不背離由所附權(quán)利要求書限定的本發(fā)明宗旨和范圍的前提下,可以對本發(fā)明進行各種形式和細節(jié)上的修改。優(yōu)選實施方式應(yīng)該僅認(rèn)為是說明性的,而不是限制性的。因此,本發(fā)明的詳細描述不限定本發(fā)明的范圍,本發(fā)明的范圍應(yīng)該由所附權(quán)利要求限定,并且本發(fā)明的范圍內(nèi)的所有區(qū)別技術(shù)特征應(yīng)理解為包含在本發(fā)明中。
權(quán)利要求
1、一種基于身份的代理盲簽名系統(tǒng),包括:
私鑰產(chǎn)生器,用于根據(jù)所接收到的密鑰數(shù)據(jù)計算私鑰,以便使用該私鑰在消息m上簽名來證明該信息m的可靠性;
代理證書產(chǎn)生部分,用于根據(jù)簽名人的私密數(shù)據(jù)生成用于該簽名人的密鑰數(shù)據(jù)并將其發(fā)送到私鑰產(chǎn)生器來計算簽名人的私鑰SA,構(gòu)造證書mω并在該證書mω上以私鑰產(chǎn)生器計算出的該簽名人的私鑰SA進行簽名,以便得到代理證書WA→B;以及
代理簽名部分,用于選取代理私密數(shù)據(jù),生成相應(yīng)密鑰數(shù)據(jù),將其發(fā)送到私鑰產(chǎn)生器來計算代理私鑰SB,依據(jù)代理私鑰SB以及代理公鑰IDB獲得代理簽名密鑰,并根據(jù)該代理簽名密鑰以及代理證書WA→B構(gòu)造承諾,以便代理證書產(chǎn)生部分向用戶部分代理盲簽名。
2、如權(quán)利要求1所述的代理盲簽名系統(tǒng),其中,該代理簽名部分還驗證所接收到的代理證書WA→B是否正確。
3、如權(quán)利要求1或2所述的代理盲簽名系統(tǒng),其中,
該代理證書產(chǎn)生部分包括:
第一私密數(shù)據(jù)選取裝置,用于由簽名人從
中選取私密數(shù)據(jù)rA,并將該簽名人的公鑰IDA選擇為該簽名人的身份標(biāo)識,
第一密鑰數(shù)據(jù)產(chǎn)生裝置,用于進行離散對數(shù)運算rAP得到該簽名人的密鑰數(shù)據(jù),P為有限循環(huán)群的生成元,
代理證書生成裝置,用于通過選擇隨機數(shù)ν∈Zq并計算散列函數(shù)Uω=νQA,hω=H4(mω,Uω),Vω=(ν+hω)SA和Tω=rAH3(mω)
來構(gòu)成代理證書
其中
H4:{0,1}*×G1→G1和
H3:{0,1}*→G1為密碼Hash函數(shù);以及
該代理簽名部分包括:
第二私密數(shù)據(jù)選取裝置,用于從
中選取私密數(shù)據(jù)rB,并將該代理公鑰IDB選擇為該代理簽名部分的身份標(biāo)識,
第二密鑰數(shù)據(jù)產(chǎn)生裝置,用于進行離散對數(shù)運算rBP以產(chǎn)生該代理簽名部分的密鑰數(shù)據(jù),
代理證書驗證裝置,用于通過計算散列函數(shù)
hω=H4(mω,Uω),
并且驗證以下兩個等式
e(Vω,P)=e(Uω+hωQA,Ppub),
e(Tω,P)=e(H3(mω),rAP),
來確定該代理證書WA→B是否正確,其中Ppub=sP,e:G1×G1→G2是雙線性映射,而G2是生成元為P、階為素數(shù)q的有限循環(huán)群,
代理簽名密鑰生成裝置,用于通過計算
SP=hωSB+Vω和rP=Tω+rBH3(mω)
獲得代理盲簽名密鑰,
承諾構(gòu)造裝置,用于通過隨機選擇t,t′∈Zq并計算
U=t(hω(QA+QB)+Uω),以及X=t′H3(mω)
來產(chǎn)生承諾X和U,以及
代理盲簽名裝置,用于接收用戶部分所發(fā)送的經(jīng)盲化的消息h和k,通過隨機選擇t,t′∈Zq而在經(jīng)盲化的h和k上簽名以得到V=(t+h)SP,Y=(t′+k)rP,其中h和k是用戶部分根據(jù)承諾X和U以及代理證書WA→B中的rAP,rBP,mω,Uω和hω,通過隨機選擇盲因子并計算
R=αU+αβ(hω(QA+QB)+Uω)和h=α-1H1(m,R)+β以及
C=ξX+ξηH3(mω)和k=ξ-1H1(m,C)+η
來盲化消息m而得到,
其中,QA=sH2(IDA;rAP)和SA=sQA,SB=sH2(rBP,IDB),而H1:{0,1}*×G1→Zq為密碼散列函數(shù),是該代理盲簽名系統(tǒng)的主密鑰,由該私鑰產(chǎn)生器隨機選擇,G1是生成元為P、階為素數(shù)q的有限循環(huán)群,而代理證書產(chǎn)生部分和代理簽名部分的私鑰SA和SB由該私鑰產(chǎn)生器通過散列函數(shù)H2:{0,1}*×G1→G1計算如下:
QA=sH2(IDA;rAP)和SA=sQA,
SB=sH2(rBP,IDB)。
4、如權(quán)利要求3所述的代理盲簽名系統(tǒng),其中,該用戶部分包括:
盲化裝置,用于接收承諾X和U以及代理證書WA→B中的rAP,rBP,mω,Uω和hω,通過隨機選擇盲因子并計算
R=αU+αβ(hω(QA+QB)+Uω)和h=α-1H1(m,R)+β以及
C=ξX+ξηH3(mω)和k=ξ-1H1(m,C)+η,H1:{0,1}*×G1→Zq為密碼散列函數(shù)來盲化消息m以得到h和k;以及
解盲裝置,用于根據(jù)隨機選擇的盲因子計算
S=αV,D=ξY,
從而得到在消息m上的代理盲簽名{mω,Uω,R,S,C,D,rAP,rBP},式中V和Y是該代理盲簽名裝置通過隨機選擇而在經(jīng)盲化的h和k上簽名而得到的,V=(t+h)SP,Y=(t′+k)rP。
5、如權(quán)利要求4所述的代理盲簽名系統(tǒng),還包括代理盲簽名真實性驗證部分,用于通過計算
hω=H4(mω,Uω),
并驗證以下兩個等式成立
e(S,P)=e(R+H1(m,R)(hω(QA+QB)+Uω),Ppub),
e(D,P)=e(C+H1(m,C)H3(mω),rAP+rBP),
來驗證代理簽名部分在消息m上的代理盲簽名的真實性。
6、如權(quán)利要求4所述的代理盲簽名系統(tǒng),還包括仲裁部分,用于通過驗證
和
是否成立來鑒別私鑰產(chǎn)生器是否誠實,其中
和
為私鑰產(chǎn)生器計算出來的、分別針對簽名人和代理盲簽名部分的離散對數(shù)值。
7、一種在基于身份的代理盲簽名系統(tǒng)中進行代理盲簽名的方法,該代理盲簽名系統(tǒng)包括私鑰產(chǎn)生器,用于根據(jù)所接收到的密鑰數(shù)據(jù)計算私鑰,以便使用該私鑰在消息m上簽名來證明該信息m的可靠性;代理證書產(chǎn)生部分,用于根據(jù)簽名人的私密數(shù)據(jù)生成用于該簽名人的密鑰數(shù)據(jù)并將其發(fā)送到私鑰產(chǎn)生器來計算簽名人的私鑰SA,構(gòu)造證書mω并在該證書mω上以私鑰產(chǎn)生器計算出的該簽名人的私鑰SA進行簽名,以便得到代理證書WA→B;以及代理簽名部分,用于選取代理私密數(shù)據(jù),生成相應(yīng)密鑰數(shù)據(jù),將其發(fā)送到私鑰產(chǎn)生器來計算代理私鑰SB,依據(jù)代理私鑰SB以及代理公鑰IDB獲得代理簽名密鑰,并根據(jù)該代理簽名密鑰以及代理證書WA→B構(gòu)造承諾,以便代理證書產(chǎn)生部分向用戶部分代理盲簽名,該方法包括步驟:
1)由代理證書產(chǎn)生部分根據(jù)簽名人選取的私密數(shù)據(jù)生成密鑰數(shù)據(jù);
2)由私鑰產(chǎn)生器根據(jù)所生成的密鑰數(shù)據(jù)計算簽名人的私鑰SA,以便使用所計算出來的私鑰在該消息上簽名來證明該信息的可靠性;
3)由代理證書產(chǎn)生部分構(gòu)造證書mω,并在該證書mω上以該簽名人的私鑰進行簽名,以便得到代理證書WA→B;
4)由代理簽名部分選取代理私密數(shù)據(jù)并生成用于該代理簽名部分的密鑰數(shù)據(jù);
5)由該私鑰產(chǎn)生器根據(jù)該代理簽名部分的密鑰數(shù)據(jù)計算該代理簽名部分的代理私鑰SB;
6)由代理簽名部分依據(jù)私鑰產(chǎn)生器計算出來的該代理簽名部分的代理私鑰SB以及代理公鑰IDB獲得代理簽名密鑰;以及
7)根據(jù)該代理簽名密鑰構(gòu)造承諾,以便替代理證書產(chǎn)生部分向用戶部分承諾代理盲簽名。
8、如權(quán)利要求7所述的代理盲簽名方法,其中,
步驟4)包括子步驟:
由代理簽名部分驗證所接收到的代理證書WA→B是否正確。
9、如權(quán)利要求7或8所述的代理盲簽名方法,其中,
在步驟1)中,由簽名人從
中選取私密數(shù)據(jù)rA,將該簽名人的公鑰IDA選擇為該簽名人的身份標(biāo)識,并進行離散對數(shù)運算rAP以產(chǎn)生該簽名人的密鑰數(shù)據(jù);
在步驟2)中,由該私鑰產(chǎn)生器通過散列函數(shù)H2:{0,1}*×G1→G1計算簽名人的私鑰SA如下:
QA=sH2(IDA;rAP)和SA=sQA;
在步驟3)中,通過選擇隨機數(shù)v∈Zq并計算散列函數(shù)
Uω=νQA,hω=H4(mω,Uω),Vω=(ν+hω)SA和Tω=rAH3(mω)
來構(gòu)成代理證書
在步驟4)中,代理簽名部分從
中選取私密數(shù)據(jù)rB,將該代理公鑰IDB選擇為該代理簽名部分的身份標(biāo)識,并進行離散對數(shù)運算rBP以產(chǎn)生該代理簽名部分的密鑰數(shù)據(jù);
在步驟5中,通過散列函數(shù)H2:{0,1}*×G1→G1計算代理簽名部分的私鑰SB如下:
SB=sH2(rBP,IDB);
在步驟6)中,通過計算
SP=hωSB+Vω和rP=Tω+rBH3(mω)
獲得代理盲簽名密鑰;以及
在步驟7)中,通過隨機選擇t,t′∈Zq并計算
U=t(hω(QA+QB)+Uω),以及X=t′H3(mω)
來產(chǎn)生承諾X和U,由用戶部分根據(jù)承諾X和U以及代理證書WA→B中的rAP,rBP,mω,Uω和hω,通過隨機選擇盲因子并計算
R=αU+αβ(hω(QA+QB)+Uω)和h=α-1H1(m,R)+β以及
C=ξX+ξηH3(mω)和k=ξ-1H1(m,C)+η,
來盲化消息m以得到h和k,通過隨機選擇t,t′∈Zq而在經(jīng)盲化的h和k上簽名以得到V=(t+h)SP,Y=(t′+k)rP,其中h和k是用戶部分根據(jù)承諾X和U以及代理證書WA→B中的rAP,rBP,mω,Uω和hω,通過隨機選擇盲因子并計算
R=αU+αβ(hω(QA+QB)+Uω)和h=α-1H1(m,R)+β以及
C=ξX+ξηH3(mω)和k=ξ-1H1(m,C)+η
來盲化消息m而得到的,
其中,是該代理盲簽名系統(tǒng)的主密鑰,由該私鑰產(chǎn)生器隨機選擇,G1是生成元為P、階為素數(shù)q的有限循環(huán)群,H1:{0,1}*×G1→Zq,H2:{0,1}*×G1→G1,H3:{0,1}*→G1和H4:{0,1}*×G1→G1為密碼Hash函數(shù)。
10、如權(quán)利要求9所述的代理盲簽名方法,其中,在步驟4)的子步驟中,通過計算散列函數(shù)
hω=H4(mω,Uω),
并且驗證以下兩個等式
e(Vω,P)=e(Uω+hωQA,Ppub),
e(Tω,P)=e(H3(mω),rAP),
來確定該代理證書WA→B是否正確,其中Ppub=sP,e:G1×G1→G2是雙線性映射,而G2是生成元為P、階為素數(shù)q的有限循環(huán)群。
11、如權(quán)利要求10所述的代理盲簽名方法,其中,步驟7)還包括子步驟:由用戶部分根據(jù)隨機選擇的盲因子計算
S=αV,D=ξY,
從而得到在消息m上的代理盲簽名{mω,Uω,R,S,C,D,rAP,rBP},式中V和Y是該代理盲簽名裝置通過隨機選擇t,t′∈Zq而在經(jīng)盲化的h和k上簽名而得到的,V=(t+h)SP,Y=(t′+k)rP。
12、如權(quán)利要求10所述的代理盲簽名方法,還包括步驟8):通過計算
hω=H4(mω,Uω),
并驗證以下兩個等式成立
e(S,P)=e(R+H1(m,R)(hω(QA+QB)+Uω),Ppub),
e(D,P)=e(C+H1(m,C)H3(mω),rAP+rBP),
來驗證代理簽名部分在消息m上的代理盲簽名的真實性。
13、如權(quán)利要求10所述的代理盲簽名方法,還包括步驟9):通過驗證
和
是否成立來鑒別私鑰產(chǎn)生器是否誠實,其中
和
為私鑰產(chǎn)生器計算出來的、分別針對簽名人和代理盲簽名部分的離散對數(shù)值。
14、一種計算機產(chǎn)品,其上實施有實現(xiàn)在基于身份的代理盲簽名系統(tǒng)中進行代理盲簽名的方法的程序,該代理盲簽名系統(tǒng)包括私鑰產(chǎn)生器,用于根據(jù)所接收到的密鑰數(shù)據(jù)計算私鑰,以便使用該私鑰在消息m上簽名來證明該信息m的可靠性;代理證書產(chǎn)生部分,用于根據(jù)簽名人的私密數(shù)據(jù)生成用于該簽名人的密鑰數(shù)據(jù)并將其發(fā)送到私鑰產(chǎn)生器來計算簽名人的私鑰SA,構(gòu)造證書mω并在該證書mω上以私鑰產(chǎn)生器計算出的該簽名人的私鑰SA進行簽名,以便得到代理證書WA→B;以及代理簽名部分,用于選取代理私密數(shù)據(jù),生成相應(yīng)密鑰數(shù)據(jù),將其發(fā)送到私鑰產(chǎn)生器來計算代理私鑰SB,依據(jù)代理私鑰SB以及代理公鑰IDB獲得代理簽名密鑰,并根據(jù)該代理簽名密鑰以及代理證書WA→B構(gòu)造承諾,以便代理證書產(chǎn)生部分向用戶部分代理盲簽名,該方法包括步驟:
1)由代理證書產(chǎn)生部分根據(jù)簽名人選取的私密數(shù)據(jù)生成密鑰數(shù)據(jù);
2)由私鑰產(chǎn)生器根據(jù)所生成的密鑰數(shù)據(jù)計算簽名人的私鑰SA,以便使用所計算出來的私鑰在該消息上簽名來證明該信息的可靠性;
3)由代理證書產(chǎn)生部分構(gòu)造證書mω,并在該證書mω上以該簽名人的私鑰進行簽名,以便得到代理證書WA→B;
4)由代理簽名部分選取代理私密數(shù)據(jù)并生成用于該代理簽名部分的密鑰數(shù)據(jù);
5)由該私鑰產(chǎn)生器根據(jù)該代理簽名部分的密鑰數(shù)據(jù)計算該代理簽名部分的代理私鑰SB;
6)由代理簽名部分依據(jù)私鑰產(chǎn)生器計算出來的該代理簽名部分的代理私鑰SB以及代理公鑰IDB獲得代理簽名密鑰;以及
7)根據(jù)該代理簽名密鑰構(gòu)造承諾,以便替代理證書產(chǎn)生部分向用戶部分承諾代理盲簽名。
全文摘要
提供無可信私鑰產(chǎn)生器的、基于身份的代理盲簽名系統(tǒng)和方法。該系統(tǒng)包括私鑰產(chǎn)生器,用于根據(jù)所接收到的密鑰數(shù)據(jù)計算私鑰,以便使用該私鑰在消息m上簽名來證明該信息m的可靠性;代理證書產(chǎn)生部分,用于根據(jù)簽名人的私密數(shù)據(jù)生成用于該簽名人的密鑰數(shù)據(jù)并將其發(fā)送到私鑰產(chǎn)生器來計算簽名人的私鑰SA,構(gòu)造證書mω并在該證書mω上以私鑰SA進行簽名,以便得到代理證書WA→B;以及代理簽名部分,用于選取代理私密數(shù)據(jù),生成相應(yīng)密鑰數(shù)據(jù),將其發(fā)送到私鑰產(chǎn)生器來計算代理私鑰SB,依據(jù)代理私鑰SB以及代理公鑰IDB獲得代理簽名密鑰,并根據(jù)該代理簽名密鑰以及代理證書WA→B構(gòu)造承諾,以便代理證書產(chǎn)生部分向用戶部分代理盲簽名。從而使該簽名算法滿足不可偽造、不可抵賴的性質(zhì)。
文檔編號H04L9/32GK101378316SQ200710148548
公開日2009年3月4日 申請日期2007年8月29日 優(yōu)先權(quán)日2007年8月29日
發(fā)明者余翊華, 楊義先, 鄭世慧, 張智輝 申請人:索尼(中國)有限公司