專利名稱:基于強(qiáng)素數(shù)的零知識身份認(rèn)證方法
技術(shù)領(lǐng)域:
本發(fā)明屬于計算機(jī)信息安全技術(shù)領(lǐng)域,具體涉及一種基于強(qiáng)素數(shù)的零知識身份認(rèn)證方法,能廣泛應(yīng)用于身份認(rèn)證領(lǐng)域,通過一系列交互過程,能比現(xiàn)有方案有更高的安全性以及更低的性能開銷。
背景技術(shù):
隨著互聯(lián)網(wǎng)技術(shù)的發(fā)展和電子政務(wù),電子商務(wù)的興起,如何進(jìn)行安全的身份認(rèn)證成為一個的棘手問題。傳統(tǒng)的身份認(rèn)證都要求傳輸口令或身份信息,用戶名密碼的身份驗證方式早已被認(rèn)為是弱安全性的,對此人們提出許多新的身份識別方案,但唯一可行的只有基于離散對數(shù)難解問題的身份認(rèn)證方案。由此“零知識證明”在20世紀(jì)80年代初由 Goldwasser等人提出?!傲阒R證明”指的是證明者能夠在不向驗證者提供任何有用的信息的情況下,使驗證者相信某個論斷是正確的。零知識證明實質(zhì)上是一種涉及兩方或更多方的協(xié)議,即兩方或更多方完成一項任務(wù)所需采取的一系列步驟。證明者向驗證者證明并使其相信自己知道或擁有某一消息,但證明過程不能向驗證者泄漏任何關(guān)于被證明消息的信息。在Goldwasser等人提出的零知識證明中,證明者和驗證者之間必須進(jìn)行交互,這樣的零知識證明被稱為“交互零知識證明”。大量事實證明,零知識證明在密碼學(xué)中非常有用。零知識身份認(rèn)證的一般過程如下 (I)AaB 證明
聲稱是A的證明者從預(yù)先定義集中選擇一個隨機(jī)元作為他的秘密承諾,并計算相關(guān) (公開)證據(jù)發(fā)送給驗證者B。(2) BaA:挑戰(zhàn)
B選擇一個挑戰(zhàn)發(fā)送給A。(3) AaB:響應(yīng)
A提供他的響應(yīng)給B,B驗證該響應(yīng)的正確性。現(xiàn)在最著名的零知識身份認(rèn)證方案是Smorr在1991年提出的零知識身份認(rèn)證方案以及后來由 Sultan Almuhammadi and Clifford Neuman 針對 khnorr 方案進(jìn)行改進(jìn)提出的S. C零知識證明方案。1. Schnorr零知識身份認(rèn)證方案
Schnorr零知識身份認(rèn)證方案是零知識證明里最著名的方案,該方案由Schnorr在 1991年提出并在世界上許多國家申請了專利。現(xiàn)在很多的零知識身份認(rèn)證方案都是由 Schnorr方案變型或者是改進(jìn)而來,其具體過程如下
用戶A’公鑰為V,私鑰為s,其中v=a_s mod p,a為q階元。證明者A向驗證者B證明其身份的具體過程如下
(1)A任選一隨機(jī)數(shù)re [1,q-1],計算x=armod ρ,然后將χ送給驗證者B;
(2)驗證者B任選一整數(shù)ee[1,21]送給證明者A;
(3)證明者A將y=(r+Se)modq發(fā)送給驗證者B;(4)驗證者B驗證X=ay*ve mod ρ是否成立如果成立,則說明證明者A即為用戶Α’ ; 否則,證明者A不是用戶A’。但是khnorr方案也存在一定的缺點一方面整個認(rèn)證過程交互次數(shù)較多,另一方面在整個認(rèn)證方案中求模運算較多,對整個系統(tǒng)的性能要求較高。因此能對這個方案進(jìn)行改進(jìn)將能使其得到更廣的應(yīng)用。2. Sultan Almuhammadi and Clifford Neuman提出的S. C零知識身份認(rèn)證方案
Sultan Almuhammadi and Clifford Neuman 針對 Schnorr 方案中交互次數(shù)較多的問題于2005年提出了 S. C方案,此方案減少了 Schnorr方案中驗證者和證明者之間的交互次數(shù),其具體過程如下
證明者A向驗證者B證明他知道滿足gx=y (mod ρ)的數(shù)χ (但不泄漏χ)
(1)驗證者B隨機(jī)產(chǎn)生一個數(shù)b,計算c=gbmod p,將c作為挑戰(zhàn)碼發(fā)給證明者A
(2)證明者A計算r=cxmod p,將r作為應(yīng)答數(shù)據(jù)發(fā)回給驗證者B
(3)驗證者B通過驗證等式r=ybmod ρ是否成立來證明A是否真正知道χ 如果成立, 則證明者A真正知道X,說明證明者A為即為用戶Α’ ;否則,證明者A不是用戶Α’。對比S. C方案和khnorr方案可知,S. C方案比Schnorr方案少了一次交互次數(shù)。 但S. C方案存在一個缺陷當(dāng)公鑰參數(shù)選取不安全時,會大大降低攻擊者破解用戶A’私鑰時求解離散對數(shù)的難度。如果公共模數(shù)P不是強(qiáng)素數(shù),或者/7雖然是強(qiáng)素數(shù)但g不是本原元,且穿的階為4的唯一質(zhì)因子分解O^a1sWa2sVMansn中的每個^, /?,gcd(x , dg) Φ \ 時,攻擊者可以通過有目的地選取g、b的值來獲得用戶Α’的若干身份驗證信息r,并分別求解離散對數(shù)log。r,然后再利用中國剩余定理求解同余方程組來得到用戶A’的私有信息
Xo
發(fā)明內(nèi)容
為了克服現(xiàn)有技術(shù)的上述缺點,本發(fā)明提供了一種基于強(qiáng)素數(shù)的零知識身份認(rèn)證方法,利用可信中心產(chǎn)生的強(qiáng)素數(shù),解決了 S. C方案中的缺陷,具備khnorr方案和S. C方案安全、高效的優(yōu)點,認(rèn)證效率比Schnon 方案提高1/3,減少系統(tǒng)開銷,提高了安全性。由于“交互式零知識證明”身份認(rèn)證方式需要證明者和驗證者之間進(jìn)行交互才能完成整個身份認(rèn)證過程,因此減少交互次數(shù)有助于提高系統(tǒng)性能。本發(fā)明在S. C方案的基礎(chǔ)上,利用可信中心產(chǎn)生的強(qiáng)素數(shù),因此能在保證安全性的同時,將系統(tǒng)交互次數(shù)減少一步從而使性能提高了 1/3。本發(fā)明解決其技術(shù)問題所采用的技術(shù)方案是一種基于強(qiáng)素數(shù)的零知識身份認(rèn)證方法,包括如下步驟
第一步、可信中心產(chǎn)生強(qiáng)素數(shù)并選取滿足條件的強(qiáng)素數(shù)
1)可信中心隨機(jī)抽取數(shù)字A7;
2)當(dāng)辦是一個奇素數(shù)且滿足A)乒 1,4 (mod 7) ,ρ, Φ 7 (mod 10),ρ, Φ 1 (mod 13) 時,選取一個整數(shù) ,滿足08 - 2)/12< ρ0 ;
3)P1= 6/70+ !,P2= 2/7! - 1= 12/70+ I, p3= 2mp2+ I, Pi= 2pz~ 1= Amp2+ I, P5= Ipfi-I=Smp2+ 1 ;4)當(dāng)2_ = 1 (mod P1),2_ = 1 (mod p2 ),= 1 (mod p.),2_2 = 1 (mod pA), 2一2 ^ 1 (mod p5)時,就得到一個強(qiáng)素數(shù)P5 ;
5)選取滿足條件的強(qiáng)素數(shù)P對于P-I的唯一素因子分解P-Pa1s^f*…廣、… *ansn,需滿足 31* 《* 柏卜廣、〈 《 ,且 至少為160位;
第二步、可信中心選取一個q階乘法元g,用戶Α’隨機(jī)選取一個xe [l,q_l]作為自己的私有信息,計算 ο //7,則y、P則用戶Α’的公開信息,用戶Α’到SP注冊自己的公開信息,注冊完成后用戶A’具有自己的身份信息M,用戶A’將身份信息M及公開信息送交驗證系統(tǒng)B,驗證系統(tǒng)B根據(jù)SP的數(shù)字簽名來驗證用戶的公開信息; 第三步、身份認(rèn)證
1)證明者A向驗證系統(tǒng)B提出身份認(rèn)證請求;
2)驗證系統(tǒng)B隨機(jī)選擇一數(shù)be[1,q-1],計算c=gb mod p,將c發(fā)給證明者A,然后驗證系統(tǒng)B計算r’=yb mod ρ;
3)證明者A收到c后計算r=cxmod p,然后將r發(fā)回給驗證系統(tǒng)B ;
4)驗證系統(tǒng)B收到r后驗證等式r=r’是否成立如果等式成立,說明證明者A知道用戶A’的私有信息X,則證明者A為合法用戶。與現(xiàn)有技術(shù)相比,本發(fā)明的積極效果是
(1)新的基于強(qiáng)素數(shù)的零知識身份認(rèn)證也是建立在求離散對數(shù)的困難性的安全性基礎(chǔ)上,針對S. C方案的漏洞對模數(shù)/7的選取做了嚴(yán)格的限定,所以它完全能夠經(jīng)得起攻擊或者有目的選取不同的乘法元^或指數(shù)e值后求解離散對數(shù)的攻擊方法。(2)新方案和Schnorr身份識別方案相比在公鑰注冊中減少了一步求逆運算。在身份驗證時不用計算_7二 (r+^)mod q。雖然它們都需計算三次離散對數(shù)但本發(fā)明可以將離散對數(shù)計算并行化,即在證明者計算r=Zmod/7的同時驗證者計算rζ =/ mod ρ,這樣雖然計算三次離散對數(shù)但卻只占用兩次時間。而^^1101·!·身份識別方案要連續(xù)計算Zmod P,ν mod p,ay mod ρ三次離散對數(shù)(不能被并行化)還要進(jìn)行一次大整數(shù)模乘運算,由此將效率提高1/3。
具體實施例方式一種基于強(qiáng)素數(shù)的零知識身份認(rèn)證方法,包括如下步驟 第一步、可信中心產(chǎn)生強(qiáng)素數(shù)并選取滿足條件的強(qiáng)素數(shù)
可信中心類似于公共密碼學(xué)中的認(rèn)證中心(CA,certification authority),不過可信中心功能更強(qiáng),還需要產(chǎn)生強(qiáng)素數(shù),選取用于計算的素數(shù)等。在公共密碼學(xué)中,認(rèn)證中心認(rèn)證屬于特殊實體(一個人或者網(wǎng)絡(luò)實體)的公鑰。對于一個已認(rèn)證的公共密鑰來說,如果一個人完全相信CA對公鑰的認(rèn)證,那么他也能確定該密鑰的所有者。由此可見,在身份認(rèn)證系統(tǒng)中,可信中心充當(dāng)著一個協(xié)助者的角色,協(xié)助需要認(rèn)證的雙方完成身份認(rèn)證工作??尚胖行呢?fù)責(zé)產(chǎn)生強(qiáng)素數(shù),其具體產(chǎn)生過程如下
1)、可信中心根據(jù)隨機(jī)抽取到的數(shù)字辦,當(dāng)A7是一個奇素數(shù)且滿足A1^1,4 (mod 7), 7 (mod 10) ,/ 。興 l(mod 13)時,
2)、選取一個整數(shù) 滿足08 - 2)/12< p0,
3)、令A(yù)=6/ o+ 1,P2二 2/7! - 1= 12/ 0+ 1,/73= 2 /72+ 1,p4= 2p3~ 1= Amp2+ 1,p5=Ipii- 1=8 /72+ I04)、由波克林頓定理以及普羅茲定理推論可知當(dāng)26p°(mod Pl), 212p0 ^ 1 (mod p2 ),I2ap2 三 1 (mod ρ,),2_2 三 1 (mod Pi),2一2 三 1 (mod p5)時就能得到一個強(qiáng)素數(shù)p5,P5是強(qiáng)素數(shù)的理由如下
因為26- 1= 32X 7及所設(shè)外乒1 (mod 7),就得到A =6/^ + 1^0 (mod 7);由于^=6/70+1 三 1 乒 0 (mod 3),于是 Q6 - I, P1) = I,
再由條件2^。三l(modA)及6 <(28- 2)/12 < (28" - 2)/12</70)根據(jù)波克林頓定理就得到A為素數(shù)。同樣由 212-1=32X7X5X13,所設(shè)/70 乒 4 (mod 7) , P0^ (mod 10) , P0^ 1 (modl3),就有/ 2= I2p0+ 1 乒 0 (mod 7),p2= Up0+ 1^0 (mod 5),p2= 12ρ0+ 1 乒 0 (mod 13),又/72=12/70+1 = 1 ^0 (mod 3),于是 012_1,/ 2) =1,
再由條件2_三1 (mod p2)及12^28-2)/12(^^-2)/120^根據(jù)波克林頓定理就得到P2為素數(shù)。最后,可以由^2)/120。得到22"- 1< 2、1< 28"- 1< p2 以及 2 < 4 < & < 28w< 4 ip2+ 1)。再由條件a=2mp2+ 1,ρ,= 2p,~ 1= Amp2+ 1,p5= 2Pl - 1= Smp2+ 1,根據(jù)普羅茲定理的推論就得到/73、Pi^P5都為素數(shù)。因此,p5顯然是一個強(qiáng)素數(shù)。5)、選取滿足條件的強(qiáng)素數(shù)ρ
要求P-I的唯一素因子分解$-1= 31* …柏卜廣1*…* 311,滿足B1sl^a232*-^^" ^ an,且 Eii 至少為 160 位。至此,本方案中的強(qiáng)素數(shù)能滿足公鑰參數(shù)的安全性要求。第二步、可信中心選取一個q階乘法元g,用戶A’隨機(jī)選取一個χ e [1,q-Ι]作為自己的私有信息,計算則y、P則用戶Α’的公開信息。用戶AlIjSP注冊自己的公開信息。注冊完成后用戶A’具有自己的身份信息M。用戶A’將其身份信息M及公開信息送交驗證系統(tǒng)B,驗證系統(tǒng)B根據(jù)SP的數(shù)字簽名來驗證用戶的公開信息。第三步、身份認(rèn)證
1)、證明者A(即待認(rèn)證者)向驗證系統(tǒng)B提出身份認(rèn)證請求;
2)、驗證系統(tǒng)B隨機(jī)選擇一數(shù)be [1,q-Ι],并計算c=gb mod p,將c發(fā)給證明者A, 然后驗證系統(tǒng)B自己計算r’ =yb mod ρ。3)、證明者A收到c后計算r=cx mod p,然后將r發(fā)回給驗證系統(tǒng)B。4)、驗證系統(tǒng)B收到r后驗證等式r=r’是否成立。如果等式成立,則說明證明者 A知道私有信息χ,則證明者A為用戶A’(即為合法用戶)。
權(quán)利要求
1. 一種基于強(qiáng)素數(shù)的零知識身份認(rèn)證方法,其特征在于包括如下步驟第一步、可信中心產(chǎn)生強(qiáng)素數(shù)并選取滿足條件的強(qiáng)素數(shù)1)可信中心隨機(jī)抽取數(shù)字A7;2)當(dāng)辦是一個奇素數(shù)且滿足A)乒 1,4 (mod 7) ,ρ, Φ 7 (mod 10),ρ, Φ 1 (mod 13) 時,選取一個整數(shù) ,滿足08 - 2)/12< ρ0 ;3)P1= 6/70+ !,P2= 2/7! - 1= 12/70+ I, p3= 2mp2+ I, Pi= 2pz~ 1= Amp2+ I, P5= Ipfi-I=Smp2+ 1 ;4)當(dāng)2_ = 1 (mod P1),2_ = 1 (mod p2 ),I2mp2 = 1 (mod ρ,),2_2 = 1 (mod Pi), 2一2 ^ 1 (mod p5)時,就得到一個強(qiáng)素數(shù)P5 ;5)選取滿足條件的強(qiáng)素數(shù)P對于P-I的唯一素因子分解P-Pa1s^f*…廣、… *ansn,需滿足 31* 《* 柏卜廣、〈 《 ,且 至少為160位;第二步、可信中心選取一個q階乘法元g,用戶Α’隨機(jī)選取一個xe [l,q_l]作為自己的私有信息,計算 ο //7,則y、P則用戶Α’的公開信息,用戶Α’到SP注冊自己的公開信息,注冊完成后用戶A’具有自己的身份信息M,用戶A’將身份信息M及公開信息送交驗證系統(tǒng)B,驗證系統(tǒng)B根據(jù)SP的數(shù)字簽名來驗證用戶的公開信息;第三步、身份認(rèn)證1)證明者A向驗證系統(tǒng)B提出身份認(rèn)證請求;2)驗證系統(tǒng)B隨機(jī)選擇一數(shù)be[1,q-1],計算c=gb mod p,將c發(fā)給證明者A,然后驗證系統(tǒng)B計算r’=yb mod ρ;3)證明者A收到c后計算r=cxmod p,然后將r發(fā)回給驗證系統(tǒng)B ;4)驗證系統(tǒng)B收到r后驗證等式r=r’是否成立如果等式成立,說明證明者A知道用戶A’的私有信息X,則證明者A為合法用戶。
全文摘要
本發(fā)明公開了一種基于強(qiáng)素數(shù)的零知識身份認(rèn)證方法,針對Schnorr方案交互次數(shù)多和S.C方案中存在的缺陷,提出了一種基于一種強(qiáng)素數(shù)的零知識身份認(rèn)證方法,利用可信中心產(chǎn)生的強(qiáng)素數(shù),解決了S.C方案中的缺陷,具備Schnorr方案和S.C方案安全、高效的優(yōu)點,認(rèn)證效率比Schnorr方案提高1/3,減少系統(tǒng)開銷的同時還提高了安全性。
文檔編號H04L9/32GK102231666SQ201110179069
公開日2011年11月2日 申請日期2011年6月29日 優(yōu)先權(quán)日2011年6月29日
發(fā)明者佘堃, 莫超 申請人:電子科技大學(xué)