欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

實用不可展的公鑰加密系統(tǒng)的制作方法

文檔序號:7624310閱讀:216來源:國知局
專利名稱:實用不可展的公鑰加密系統(tǒng)的制作方法
技術(shù)領(lǐng)域
本發(fā)明涉及保密或信息安全。具體地講,涉及提高數(shù)據(jù)處理系統(tǒng)安全性的保密通信系統(tǒng)和方法。所提的公鑰密碼系統(tǒng)對午餐時間攻擊和適應(yīng)性選擇密文攻擊都是安全的。
背景技術(shù)
保密和安全是當(dāng)今網(wǎng)絡(luò)社會的重要內(nèi)容。傳輸?shù)男畔⒈幌薅ㄔ谥付ǖ慕邮照?,并不適合所有人。為確保通信安全,加密方法是很有用的。一個密碼系統(tǒng)是指發(fā)送者將發(fā)送的信息用某種方法處理后發(fā)送給接收者,這個信息仍然是安全的,即只有指定的接收者才能恢復(fù)這個信息。密碼系統(tǒng)將信息即明文,轉(zhuǎn)換成一種加密的形式即密文。加密是用一個密鑰或多個密鑰對信息作巧妙的處理和轉(zhuǎn)換。接收者將密文轉(zhuǎn)換為明文來解密信息,是用一個密鑰或多個密鑰對密文作處理和轉(zhuǎn)換,是加密的逆過程。如果只有發(fā)送者和接收者才知道密鑰信息,這個加密傳輸就是安全的。過去,一些密碼系統(tǒng)被提出來,比如公鑰密碼系統(tǒng)。一般來講,算法用來加密和解密信息的數(shù)據(jù)叫做密鑰。公鑰密碼系統(tǒng)有兩個密鑰,一個公有密鑰和一個私有密鑰,它們是相互關(guān)聯(lián)的。
現(xiàn)有的大多數(shù)公鑰密碼系統(tǒng)對積極攻擊都不是安全的。在積極攻擊中,攻擊者可以將選擇的消息注入數(shù)據(jù)流中,觀察結(jié)果狀態(tài)。適應(yīng)性選擇密文攻擊是這類攻擊中已知的最強攻擊形式。它被公認(rèn)為是最具攻擊性的攻擊形式,每個密碼系統(tǒng)都應(yīng)該能抵擋這種攻擊。在這種攻擊中,攻擊者可以接入一個“解密預(yù)言機”,也是一個服務(wù)器,它可以讓攻擊者解密自己選擇的密文。這里,“攻擊者”是指一個試圖破解密碼系統(tǒng)中的一個人。這種攻擊可分為一種稱為午餐時間攻擊的較弱的攻擊形式和稱為適應(yīng)性選擇密文攻擊的較強的攻擊形式。在午餐時間攻擊中,攻擊者詢問解密預(yù)言機許多次,然后攻擊者獲得他要分析的目標(biāo)密文,之后,他不能再詢問解密預(yù)言機。在適應(yīng)性選擇密文攻擊中,攻擊者在獲得他想分析的目標(biāo)密文以后還可以繼續(xù)詢問解密預(yù)言機。這樣,攻擊者重復(fù)下面的過程他向?qū)崿F(xiàn)了密碼系統(tǒng)的軟件或者硬件個體發(fā)送詢問,觀察返回的結(jié)果,基于返回結(jié)果發(fā)送更多的詢問,目的就是要攻破這個密碼系統(tǒng)。
多年以來,沒有加密方案在選擇密文攻擊下是安全的。M.Naor和M.Yung在“Public-key cryptosystems provably secure against chosen ciphertext attacks(選擇密文攻擊安全的公鑰密碼系統(tǒng))”(in 22nd Annual ACM Symposium on Theory ofComputing,pp.427-437,1990.)中提出了第一個在午餐時間攻擊下可證明安全的方案。接著,D.Dolev,C.Dwork和M.Naor在“Non-malleable cryptography(不可展密碼系統(tǒng))”(in 23rd Annual ACM Symposium on Theory of Computing,pp.542-552,1991)提出了一個在選擇密文攻擊下可證明安全的方案。這些方案在標(biāo)準(zhǔn)難題假設(shè)下是可證明安全的,但是不實用,因為為了非交互式零知識證明,它們的構(gòu)造很復(fù)雜。
I Damgard.在“Towards practical public key cryptosystems secure againstchosen ciphertext attacks(對選擇密文攻擊安全的實用公鑰密碼系統(tǒng))”(inAdvances in Cryptology-Crypto’91,pp.445-456,1991)中提出了一個實用方案。作者猜想這個方案對午餐時間攻擊是安全的。但是,這個方案沒有證明是安全的。
Y.Zheng和J.Seberry在“Practical approaches to attaining security againstadaptively chosen ciphertext attacks(對選擇密文攻擊安全的實用方法)”(inAdvances in Cryptology-Crypto’92,pp.292-304,1992)中提出了在選擇密文攻擊下猜想是可證明安全的實用方案,但是沒有已知的基于標(biāo)準(zhǔn)難題的安全證明。
C.H.Lim和P.J.Lee在“Another method for attaining security againstadaptively chosen ciphertext attacks(對適應(yīng)性選擇密文攻擊安全的另一種方法)”(in Advances in Cryptology-Crypto’93,pp.420-434,1993)提出了實用的方案。但是后來被Y.Frankel和M.Yung攻破?!癈ryptanalysis of immunized LL public keysystems(免疫LL公鑰系統(tǒng)分析)”(in Advances in Cryptology-Crypto’95,pp.287-297,1995)一文中描述了這種攻擊方法。
在另外一個不同的方向,M.Bellare和P.Rogaway在“Random oracles arepracticala paradigm for designing efficient protocols(隨機預(yù)言是有效的設(shè)計高效協(xié)議的范例)”(in First ACM Conference on Computer and CommunicationsSecurity,1993)和“Optimal asymmetric encryption(最優(yōu)非對稱加密)”(in Advancesin Cryptology-Crypto’94,pp.92-111,1994)中提出了實用的方案。在一個理想化的計算模型下這些方案是可證明安全的。在這個理想化的模型中,哈希函數(shù)被看作是一個隨機預(yù)言機。雖然隨機預(yù)言模型下的安全證明要比沒有證明要好,但是一個在真實世界中的安全證明將會更好。
R.Canetti,O.Goldreich和S.Halevi在“The random oracle model,revisted(隨機預(yù)言模型,修訂版)”(in 30th Annual ACM Symposium on Theory of Computing,1998)一文中證明了存在密碼方案,它在隨機預(yù)言模型下是安全的,但無論哈希函數(shù)如何選擇,在真實世界中并不安全。現(xiàn)在還不清楚這結(jié)果意味著什么。
同時,存在一些理論上安全的密碼方案,但是它們都不實用。也有一些實用的密碼方案提出來,但是它們在標(biāo)準(zhǔn)難題假設(shè)下沒有證明是安全的。
直到1998年,R.Cramer和V.Shoup在“A practical public key cryptosystemprovably secure against adaptive chosen ciphertext attack(一種實用的適應(yīng)性選擇密文攻擊安全的公鑰密碼系統(tǒng))”(in H.Krawczyk,editor,Advances inCryptology-Proceedings of CRYPTO’98,Lecture Notes in Computer Science,vol1462,pp.13-25.Springer-Verlag,1998)中,提出了第一個實用的而且在標(biāo)準(zhǔn)難題假設(shè)下可抵擋選擇密文攻擊的密碼方案。這個方案基于ElGamal加密方案,生成了一個擴展的私有密鑰和公有密鑰。在這個方案中,為了抵擋選擇密文攻擊,密文在解密前,有一個密文的驗證。這個驗證可以證明密文的合法性。也就是說,密文被檢查。如果密文是合法的,則被解密成明文;如果密文是不合法的,也就是說,密文是無效的或者是偽造的,則被拒絕。由于拒絕了偽造的密文,這個加密方案對午餐時間攻擊,甚至是適應(yīng)性選擇密文攻擊都是安全的。合法密文的不可偽造性基于標(biāo)準(zhǔn)假設(shè),即判定Diffie-Hellman問題的難度和哈希函數(shù)的無碰撞性。但是,這個方案為了能驗證密文是合法性,公共密鑰和私有密鑰都擴展的較長,計算也較復(fù)雜,不是一個高效的方案。文中還提出了它的一個簡化方案,這個簡化方案的效率比基本方案要高,但是它對適應(yīng)性選擇密文攻擊不是安全的。
在公鑰加密系統(tǒng)中,有一類特殊的密碼系統(tǒng),即基于身份的公鑰加密系統(tǒng)。這類系統(tǒng)的特點是以個人身份信息作為公鑰,因此擁有普通公鑰密碼系統(tǒng)所不具備的一些優(yōu)點,如不需驗證用戶的公鑰,節(jié)省網(wǎng)絡(luò)帶寬?;谏矸莸墓€加密系統(tǒng)的概念是在A.Shamir的“Identity-Based Cryptosystems and SignaturesSchemes(基于身份的加密系統(tǒng)與簽名方案)”被提出,該文發(fā)表于ADVANCES INCRYPTOGRAPHY-CRYPTO’84,Lecture Notes in Computer Science196(1984),Springer,47-53。在這篇文章中,提出了一個自證實的公鑰加密系統(tǒng)。然而,驗證者除了需要一個身份的同時還需要一個獨立的公鑰。這個公鑰加密系統(tǒng)不是非交互的公鑰加密系統(tǒng),這是自證實公鑰的一個缺陷。
D.Boneh和M.Franklin在“Identity based encryption from the Weil pairing(基于Weil對的基于身份加密)”(In Proceedings of Crypto 2001,Lecture Notes inComputer Science,Vol 2139,Springer-Verlag,pp 213-229,2001)中提出了第一個實用的基于身份加密系統(tǒng)。在一個理想化的計算模型下,即隨機預(yù)言模型下,這個方案是可證明安全的。如前所述,在這個理想化的模型中,哈希函數(shù)被看作是一個隨機預(yù)言機。雖然隨機預(yù)言模型下的安全證明要比沒有證明要好,但是一個在標(biāo)準(zhǔn)假設(shè)的安全證明將會更好。而且已經(jīng)證明了存在密碼方案,它在隨機預(yù)言模型下是安全的,但無論哈希函數(shù)如何選擇,在真實世界中并不安全。
同時,存在一些標(biāo)準(zhǔn)假設(shè)下安全的基于身份公鑰密碼系統(tǒng),但是它們都不實用。也有一些實用的基于身份密碼方案提出來,但是它們在標(biāo)準(zhǔn)難題假設(shè)下沒有證明是安全的。
接下來給出一些簡略的定義,它將有助于所提方案的理解。
群密碼學(xué)意義上的群是一個代數(shù)系統(tǒng)(G,*),它由一個元素或者數(shù)的集和一個群運算(*),其中(*)是可以結(jié)合的,有一個單位元,而且G中的每個元素都有逆元。
符號(*)的選擇是任意的。實際上,大多數(shù)的群運算都用+或者·表示,這樣的群分別稱為加群和乘法群。
有限群一個群G如果包含有限多個元素,那么稱它為有限的。有限群里的元素個數(shù)叫做它的階。
例如,對任意一個正整數(shù)n,集Zn包含整數(shù)0,...,n-1,它組成了一個模n加法群。另外,由與n互質(zhì)的Zn的子集構(gòu)成了一個模n乘法群,用Zn*表示。特別的,如果p是素數(shù),Zp*由{1,...,p-1}組成,它是個有p-1個元素的群。
抗碰撞哈希函數(shù)一個哈希函數(shù)簇是抗碰撞的,如果給定這個簇中的一個隨機哈希函數(shù)H,發(fā)現(xiàn)一個碰撞是不可行的,即發(fā)現(xiàn)兩個串x≠y,使得H(x)=H(y)。

發(fā)明內(nèi)容
本發(fā)明的目的在于提供實用的、在標(biāo)準(zhǔn)假設(shè)下對午餐時間攻擊和適應(yīng)性選擇密文攻擊都是安全的公鑰加密系統(tǒng)。
本發(fā)明采用的技術(shù)方案如下所提公鑰加密系統(tǒng)生成了一個擴展的私有密鑰和公有密鑰。一個消息也叫明文,用公鑰轉(zhuǎn)化為一種加密的形式也叫密文。只有擁有正確私鑰的接收者才能解開密文。但在解密前,有一個密文的驗證過程。這個驗證可以證明密文的合法性。也就是說,密文被檢查。如果密文是合法的,則被解密成明文;如果密文是不合法的,也就是說,密文是無效的或者是偽造的,則被拒絕。由于拒絕了偽造的密文,這個加密方案對午餐時間攻擊,甚至是適應(yīng)性選擇密文攻擊都是安全的。合法密文的不可偽造性基于計算Diffie-Hellman問題或雙線性Diffie-Hellman問題的難度和哈希函數(shù)的無碰撞性。
由于超奇異橢圓曲線或阿貝爾簇(abelian varieties)上的點的加群和具有大素數(shù)階的循環(huán)群上都存在計算Diffie-Hellman問題。其中,超奇異橢圓曲線或阿貝爾簇(abelian varieties)上的點的加群上的計算Diffie-Hellman問題也叫雙線性Diffie-Hellman問題。所以,本發(fā)明適合在這兩種代數(shù)結(jié)構(gòu)上構(gòu)造的公鑰加密系統(tǒng)。實際上,由于超奇異橢圓曲線或阿貝爾簇(abelian varieties)上的點的加群和具有大素數(shù)階的循環(huán)群存在的映射關(guān)系,而且都是基于計算Diffie-Hellman問題或雙線性Diffie-Hellman問題來構(gòu)造合法密文的不可偽造性,所以加密方案很容易相互推出。為了清晰,分在超奇異橢圓曲線或阿貝爾簇(abelian varieties)上的點的加群構(gòu)造和在具有大素數(shù)階的循環(huán)群上構(gòu)造兩中不同情況,詳細(xì)介紹所提發(fā)明。
基于超奇異橢圓曲線或阿貝爾簇(abelian varieties)上的點的加群構(gòu)造的公鑰加密系統(tǒng)由以下方法組成密鑰對生成(a)生成第一個循環(huán)群G1和第二個循環(huán)群G2,其中,第一個循環(huán)群G1與第二個循環(huán)群G2有相同的素數(shù)階q,第一個循環(huán)群G1是一個超奇異橢圓曲線或阿貝爾簇上的點的加群,第二個循環(huán)群G2是一個有限域的乘法群。
(b)選取一個可行的非退化的配對e,它能夠由第一個循環(huán)群G1的兩個元素生成第二個循環(huán)群G2的一個元素;(c)任意選擇一個生成元P∈G1;(d)隨機選取x1,y1,z1,x2,y2,z2,…,xn,yn,zn∈Zq,其中n是一個大于零的整數(shù)。計算P11=x1P,P21=y(tǒng)1P,P31=z1P,P12=x2P,P22=y(tǒng)2P,P32=z2P,
…,P1n=xnP,P2n=y(tǒng)nP,P3n=znP;(e)將(x1,y1,z1,x2,y2,z2,…,xn,yn,zn)作為系統(tǒng)的私鑰保存,并公開系統(tǒng)參數(shù)(G1,G2,e,P,P11,P21,P31,P12,P22,P32,…,P1n,P2n,P3n)。
(f)生成G1中選擇一個元素Q作為用戶的公鑰;(g)計算c1=x1Q,d1=y(tǒng)1Q,h1=z1Q,c2=x2Q,d2=y(tǒng)2Q,h2=z2Q,…,cn=xnQ,dn=y(tǒng)nQ,hn=znQ。
(h)計算c=c1+…+cn,d=d1+…+dn,h=h1+…+hn。
(i)將(c,d,h)作為用戶的私鑰保存。
加密為了發(fā)送秘密消息m給用戶,首先獲得系統(tǒng)公開參數(shù)(G1,G2,e,P,P11,P21,P31,P12,P22,P32,…,P1n,P2n,P3n)和用戶的公鑰Q。然后運用這些參數(shù),加密明文m如下(a)從Zq中選擇一個隨機指數(shù)r;(b)如下計算一個通用密文數(shù)據(jù)u,一個加密密文數(shù)據(jù)t,一個哈希值a和一個驗證密文數(shù)據(jù)vP1=P11+…+P1n,P2=P21+…+P2n,P3=P31+…+P3n,u=rP,t=me(rP3,Q),應(yīng)用哈希函數(shù)H計算哈希值a。其中,哈希函數(shù)H能把長串映射到Zq中一個元素,而且應(yīng)用哈希函數(shù)H計算哈希值a時,至少輸入通用密文數(shù)據(jù)u和加密密文數(shù)據(jù)t,v=e(rP1+raP2,Q);(c)所得的密文為(u,t,v);驗證當(dāng)用戶收到密文(u,t,v)后,用私有密鑰(c,d,h)驗證密文如下(a)應(yīng)用哈希函數(shù)H計算哈希值a;(b)驗證是否有v=e(u,c+ad)成立。如果不成立,拒絕密文;解密如果在以上驗證中,v=e(u,c+ad)成立,則計算m=t/e(u,h),恢復(fù)明文m。
在以上說明的基于超奇異橢圓曲線或阿貝爾簇(abelian varieties)上的點的加群構(gòu)造的公鑰加密系統(tǒng)中,假設(shè)ID表述用戶的唯一可識別的身份。用戶公鑰Q也可以通過計算Q=F(ID)得到。其中,哈希函數(shù)F能把用戶的身份ID映射到G1中一個元素。此時,它是一個基于身份的公鑰加密系統(tǒng)。
基于大素數(shù)階的循環(huán)群構(gòu)造的公鑰加密系統(tǒng)由如下方法組成密鑰對生成(a)生成一個循環(huán)群G,其中G是一個具有大素數(shù)階q的群;(b)隨機選擇一個生成元g∈G;(c)隨機選取x,y,z∈Zq,計算c=gx,d=gy,h=gz;(d)保留(x,y,z)作為用戶的私有密鑰,將(g,c,d,h)作為用戶的公共密鑰并公開。
加密為了發(fā)送秘密消息m給用戶,首先獲得用戶的公共密鑰(g,c,d,h)。然后運用這些參數(shù),加密明文m如下(a)從Zq中選擇一個隨機指數(shù)r;(b)計算一個通用密文數(shù)據(jù)u,一個加密密文數(shù)據(jù)e,一個哈希值a和一個驗證密文數(shù)據(jù)vu=gr,e=hrm,應(yīng)用哈希函數(shù)H計算哈希值a。其中,哈希函數(shù)H能把長串映射到Zq中一個元素,而且應(yīng)用哈希函數(shù)H計算哈希值a時,至少輸入通用密文數(shù)據(jù)u和加密密文數(shù)據(jù)e。
v=crdra;(c)輸出加密的密文為(u,e,v);驗證當(dāng)用戶收到密文(u,e,v)后,用私有密鑰(x,y,z)驗證密文如下(a)應(yīng)用哈希函數(shù)H計算哈希值a。其中,哈希函數(shù)H能把長串映射到Zq中一個元素,而且應(yīng)用哈希函數(shù)H計算哈希值a時,至少輸入通用密文數(shù)據(jù)u和加密密文數(shù)據(jù)e。
(b)驗證是否有ux+ay=v成立,如果ux+ay≠v,拒絕密文;解密如果在以上驗證中,ux+ay=v成立,則計算m=e/uz,恢復(fù)明文m。
以上說明的在超奇異橢圓曲線或阿貝爾簇(abelian varieties)上的點的加群構(gòu)造的公鑰密碼系統(tǒng)是一種基于身份的公鑰加密系統(tǒng),在接下來的說明中簡稱基于身份的公鑰加密系統(tǒng);在具有大素數(shù)階的循環(huán)群上構(gòu)造的公鑰密碼系統(tǒng)是一種通用公鑰加密系統(tǒng),在接下來的說明中簡稱通用公鑰加密系統(tǒng)。下面分別對這兩種公鑰密碼系統(tǒng)的典型實現(xiàn)做更詳細(xì)說明在所提的基于身份公鑰加密系統(tǒng)典型實現(xiàn)中,需要可信中心來生成用戶的私鑰。這里,可信中心通常是指值得信賴的機構(gòu)。但是企業(yè),甚至用戶本人也可以執(zhí)行可信中心完成的工作。所以,以下可信中心通指值得信賴的機構(gòu),企業(yè)或者用戶本人等等。
所提的基于身份公鑰加密系統(tǒng)具體實現(xiàn)步驟如下下文中對本發(fā)明的具體實施步驟的詳細(xì)說明參考了

圖1,其中圖1是本發(fā)明的一個圖解。
接下來參考圖1,詳細(xì)介紹所提的基于身份公鑰加密系統(tǒng)的具體實現(xiàn)步驟。
圖1是所提基于身份公鑰密碼系統(tǒng)發(fā)明的圖解,它被點劃線劃分為從一到六共6部分,每個部分都在左邊用大寫數(shù)字標(biāo)號,其中第一部分和第二部分描述了密鑰對的生成,第三部分和第四部分描述了加密,第五部分描述了驗證,第六部分描述了解密。公鑰密碼系統(tǒng)從第一部分開始,其中可信中心在步驟14選擇系統(tǒng)的私有密鑰,在步驟16生成系統(tǒng)參數(shù);在第二部分,可信中心根據(jù)用戶的身份ID20生成用戶私鑰;在第三部分,先在步驟32選擇一個明文m,然后在步驟33將明文m加密為密文(u,t,v)。密文(u,t,v)在圖中編號是40,它可以在不安全信道上傳輸。這部分在第四部分中描述。第五部分說明了驗證步驟50。第六部分描述了解密步驟50。
所提公鑰密碼系統(tǒng)可以用在基于計算方法的連接中,其中計算方法是指一個機器或者計算機用數(shù)學(xué)方法處理至少兩個數(shù),生成第三個數(shù)。系統(tǒng)既可以用軟件實現(xiàn),也可以用硬件實現(xiàn)。為了清楚,圖1沒有畫出所有的要說明的方法。加密通信既可以用于直接連接,也可以用于不安全網(wǎng)絡(luò)。
下面對每個部分作詳細(xì)解釋。
第一部分在系統(tǒng)參數(shù)的生成過程中,用到了一個隨機數(shù)生成器,這個隨機數(shù)生成器沒有在圖1中畫出。系統(tǒng)參數(shù)生成算法用隨機數(shù)生成器生成第一個循環(huán)群G110和第二個循環(huán)群G211,其中G1最好是一個超奇異橢圓曲線或阿貝爾簇(abelianvarieties)上的點的加群,G2最好是一個有限域的乘法群,但是其它類型的群也可以使用。循環(huán)群G1和循環(huán)群G2它們最好有相同的素數(shù)階q。
選取一個非退化的配對eG1×G1→G2,它能夠由第一個循環(huán)群G1的兩個元素生成第二個循環(huán)群G2的一個元素。函數(shù)e最好滿足三個條件。首先,函數(shù)e最好是雙線性的,從而但T和R在G1中且b和n為整數(shù)時,有e(bT,nR)=e(T,R)bn。第二,函數(shù)e最好是非退化的,從而映射不會將G1×G1中的所有配對變?yōu)镚2中的單位元。第三,函數(shù)e最好是能高效計算的。滿足這三個條件的函數(shù)e可以被考慮采用。
函數(shù)e最好還是對稱的,從而使得e(T,R)=e(R,T)對所有T,R∈G1都成立。但是,對稱可直接由雙線性以及G1是一個循環(huán)群這個事實得出??梢愿鶕?jù)現(xiàn)有技術(shù)中已知的方法修改與超奇異橢圓曲線或阿貝爾簇相關(guān)的Weil或Tate配對,以便產(chǎn)生這類雙線性映射。但是,即使將第一循環(huán)群G1中的元素稱為點可能暗示函數(shù)e是一個經(jīng)過改進(jìn)的Weil或Tate配對,但是應(yīng)該注意,任何合理的函數(shù)e都能行得通。
系統(tǒng)參數(shù)生成算法用隨機數(shù)生成器,在選擇步驟12中選擇G1的生成元P,可以表示為P∈G1。
設(shè)有n個可信中心,其中n≥1。以上系統(tǒng)參數(shù)由這些可信中心共有。系統(tǒng)私鑰選擇步驟從一個模q的集中隨機選取指數(shù)x1,y1,z1,x2,y2,z2,…,xn,yn,zn作為私有密鑰。其中,第i個可信中心選擇xi,yi,zi,這在圖中用14標(biāo)出。這個模q的集用Zq表示,在圖1中用數(shù)13標(biāo)出。選取可以表示如下。
xi,yi,zi∈Zq然后,第i個可信中心用選擇的數(shù)(xi,yi,zi),在步驟15計算P1i=xiP,P2i=y(tǒng)iP,P3i=ziP。
現(xiàn)在,第i個可信中心將(xi,yi,zi)作為自己的系統(tǒng)私鑰保存。將(G1,G2,e,P,P1i,P2i,P3i)作為系統(tǒng)參數(shù)公開。
第二部分在密鑰對的生成中,要用到一個哈希函數(shù)F和一個哈希函數(shù)H,其中哈希函數(shù)F{0,1}*→G1,這個哈希函數(shù)能把用戶的身份ID映射到G1中一個元素;哈希函數(shù)H{0,1}*→Zq,這個哈希函數(shù)能把長串映射到Zq中的一個元素。為了清晰,沒有在圖中畫出選擇哈希函數(shù)的過程。
在用戶密鑰對的生成過程中,可信中心對用戶進(jìn)行物理鑒定以確認(rèn)ID20具有唯一性,這個過程沒有在圖1中畫出。在確認(rèn)用戶的身份后,可信中心用身份ID20計算Q=F(ID)。Q這是G1中的一個元素,并且也是用戶基于身份的公鑰。
然后,第i個可信中心用系統(tǒng)密鑰(xi,yi,zi)和用戶的公鑰Q計算ci=xiQ,di=y(tǒng)iQ,hi=ziQ。
第i個可信中心將(ci,di,hi)通過安全信道發(fā)送給用戶,用戶在步驟21計算c=c1+…+cn,d=d1+…+dn,h=h1+…+hn。
用戶將(c,d,h)作為自己的私鑰保存。為了清晰,這個傳輸過程沒有在圖1中畫出。
第三部分以一種計算機可讀的和可理解的形式存在的清晰的文本消息,稱為明文m。比如,明文m包含了用ASCII編碼的數(shù)字。這里,ASCII可以表示數(shù)據(jù)符號,比如字母,數(shù)字和符號。一般的,明文m可以用G2中的元素來表示,或者可以編碼為G2中的元素。
加密中用到了哈希函數(shù)H,比如SHA-1和MD-5,在圖中沒有畫出。這個哈希函數(shù)H是公開的,它可以把長串散列為Zq的元素。這個哈希函數(shù)H是從通用的單向哈希函數(shù)簇中選擇的。
假設(shè)明文m已經(jīng)準(zhǔn)備好,在圖中用數(shù)字32標(biāo)出。加密算法運行如下。首先,從一個模q的元素集合中選擇一個隨機指數(shù)r,這個過程在圖中用31標(biāo)出。這個模q的元素集合,記為Zq,在圖中用30標(biāo)出。這個模q的元素集合必須大,但是不必和第一部分中描述的Zq一樣。加密方法計算一個通用密文數(shù)據(jù)u,一個加密密文數(shù)據(jù)t,一個哈希值a和一個驗證密文數(shù)據(jù)v。它們是在加密步驟33中,用數(shù)據(jù)(P,P11,P21,P31,P12,P22,P32,…,P1n,P2n,P3n),指數(shù)r,明文m和身份ID,用下面公式計算得到P1=P11+…+P1n,P2=P21+…+P2n,P3=P31+…+P3n,Q=F(ID),u=rP,t=me(rP3,Q),a=H(u,t)。在這里,計算哈希值a時,哈希函數(shù)H也可以輸入其它參數(shù),比如公鑰Q。
v=e(rP1+raP2,Q);用數(shù)字40編號的密文由以上通用密文數(shù)據(jù)u,加密密文數(shù)據(jù)t和驗證密文數(shù)據(jù)v組成。通用密文數(shù)據(jù)u和加密密文數(shù)據(jù)t是應(yīng)用ElGamal方案加密得到。驗證密文數(shù)據(jù)v是一種特殊的錯誤檢驗碼。它將在編號為50的驗證步驟中用到,是為了檢驗密文是否正確構(gòu)造。在第五部分將對此作詳細(xì)說明。
如上所述,驗證密文數(shù)據(jù)v基于第一個群元P1,第二個群元P1,身份ID和指數(shù)r。
第四部分密文40,包括數(shù)據(jù)u,t,v在不安全信道上傳輸。發(fā)送設(shè)備,用輸出方法發(fā)送用這個密文。而接收設(shè)備用輸入方法接受這個密文。特別地,接收者也可以是發(fā)送者。密文也可以直接保存。
本發(fā)明的安全性基于計算Diffie-Hellman問題或雙線性Diffie-Hellman問題的難度。其中,計算Diffie-Hellman問題是在給定一個隨機選取的P∈G1,且給定αP和βP(對于未知的隨機選取的α,β∈Zq)的條件下,求出αβP。雙線性Diffie-Hellman問題是在給定一個隨機選取的P∈G1,且給定αP,βP及γP(對于未知的隨機選取的α,β,γ∈Zq)的條件下,求出e(P,P)αβγ。在G1中解決了計算Diffie-Hellman問題也就解決了雙線性Diffie-Hellman問題,因為e(P,P)αβγ=e(αβP,γP)。相似地,解決G2中的計算Diffie-Hellman問題也就解決了雙線性Diffie-Hellman問題,這是因為如果g=e(P,P),那么gαβγ=(gαβ)γ,其中g(shù)αβ=e(αP,βP)且gγ=e(P,γP)。在計算Diffie-Hellman難題或雙線性Diffie-Hellman難題假設(shè)前提下,密文40沒有泄漏有關(guān)密鑰的任何信息,明文m也被隱藏。
第五部分在編號為60的解密步驟之前,有一個用驗證方法對用密文40進(jìn)行驗證的步驟50。驗證可以獨立與在第六部分要說明的解密,因此在圖中分開標(biāo)出。當(dāng)在運行驗證步驟50時,解密可以在另外的地方同時運行。這是一個優(yōu)點,因為并行處理可以提高系統(tǒng)的效率。
用接收到的加密數(shù)據(jù)u,t和v,驗證方法重新用哈希函數(shù)H計算哈希值a=H(u,t)。在這里,計算哈希值a時,和第三部分哈希值的輸入?yún)?shù)保持一致,哈希函數(shù)H還可以輸入其它參數(shù),比如公鑰Q。然后根據(jù)用戶私鑰中的c和d來檢驗是否有以下等式成立v=e(u,c+ad)[1]這個檢驗根據(jù)條件[1]輸出真或者假。如果條件[1]不成立,即結(jié)果是假,系統(tǒng)輸出拒絕信息。拒絕信息在圖中編號是51。根據(jù)它來做后續(xù)處理,比如中斷連接。
條件[1],也稱為驗證[1]。因為在驗證步驟50中會檢驗這個條件,所以除非滿足這個條件,否則將阻止解密方法或解密單元錯誤地充當(dāng)一個解密預(yù)言機。
如第三部分所提到的,驗證密文數(shù)據(jù)v作為錯誤檢驗碼被創(chuàng)建。對正確創(chuàng)建的密文40,總有[1]成立。這樣的密文也叫做合法密文。但是對于一個適應(yīng)性選擇密文攻擊者,沒有辦法阻止他提交不合法的密文或偽造的密文,也就是說,密文不是由第三部分中的加密算法所生成的,攻擊者不知道指數(shù)r或m。這就是檢驗[1]的目的,它會檢驗接收的密文是否是由加密步驟中的加密算法所生成的。檢驗[1]會確保不合法的密文會被拒絕,這是因為偽造合法密文的難度相當(dāng)于計算Diffie-Hellman問題或雙線性Diffie-Hellman問題。另外,由于哈希函數(shù)H的無碰撞特性,也將阻止攻擊者從現(xiàn)有合法密文中計算其它合法密文。這樣,可以有效地抵擋選擇密文攻擊,從而任何有關(guān)于私有密鑰的信息都沒有泄漏。另外,錯誤碼信息v也沒有泄漏任何有用的信息。
第六部分如果在第五部分中條件[1]成立,即結(jié)果為真,可以在解密步驟60中用t,u和h來恢復(fù)明文,其中h是用戶私鑰的一部分。解密方法輸出m=t/e(u,h)。
密文40中的數(shù)據(jù)t中包含了明文m。因此,可以用ElGamal方案來恢復(fù)出明文m,其中用到了密文中的數(shù)據(jù)u和用戶私鑰中的h。
在所提基于身份公鑰密碼系統(tǒng)中,合法密文的不可偽造性僅僅基于標(biāo)準(zhǔn)假設(shè),即計算Diffie-Hellman問題或雙線性Diffie-Hellman問題的難度和哈希函數(shù)的無碰撞性。因此,攻擊者無法偽造一個合法密文。又由于在解密前,要驗證密文的合法性。如果密文是不合法的,則被拒絕。這樣,攻擊者偽造的密文都將被拒絕。由于拒絕了所有偽造的密文,這個加密方案對午餐時間攻擊,甚至是適應(yīng)性選擇密文攻擊都是安全的。所以,這個基于身份公鑰密碼系統(tǒng)不會泄漏私有密鑰的任何信息。
所提基于身份公鑰密碼系統(tǒng)中,當(dāng)n=1時,只有一個可信中心參與生成用戶的私鑰,因此適合對于用戶來說無條件信任是可以接收的應(yīng)用。但是,當(dāng)n≥2時,如果至少一個可信中心時可信賴的,就可以防止可信中心的搭線竊聽。它適合在開放環(huán)境的應(yīng)用。
接下來參考圖2,詳細(xì)介紹所提通用公鑰加密系統(tǒng),它是一個實用的可以抵擋選擇密文攻擊的公鑰密碼系統(tǒng)。
圖2是所提通用公鑰密碼系統(tǒng)發(fā)明的一個圖例,它被點劃線劃分為從一到五,共5部分。每個部分都在左邊標(biāo)號,其中第一部分描述了密鑰對的生成,第二部分和第三部分描述了加密,第四部分描述了驗證,第五部分描述了解密。通用公鑰密碼系統(tǒng)從第一部分開始,其中第17步是建立密鑰對的公共密鑰,第13步是選擇私有密鑰。在第二部分,先在第22步選擇一個明文m,然后在第20步將明文m加密為密文t。密文t在圖中編號是30,它可以在不安全信道上傳輸。這部分在第三部分表述。第四部分說明了驗證步驟40。第五部分說明了解密步驟50。
所提通用公鑰密碼系統(tǒng)可以用在基于計算方法的連接中,其中計算方法是指一個機器或者計算機用數(shù)學(xué)方法處理至少兩個數(shù),生成第三個數(shù)。系統(tǒng)既可以用軟件實現(xiàn),也可以用硬件實現(xiàn)。為了清楚,圖2沒有畫出所有的要說明的方法。加密通信既可以用于直接連接,也可以用于不安全網(wǎng)絡(luò)。
在圖2中每個部分都在左邊用大寫數(shù)字標(biāo)號。下面對每個部分作詳細(xì)解釋。
第一部分在公有密鑰的生成過程中,用到了一個隨機數(shù)生成器,這個隨機數(shù)生成器在圖2中沒有畫出。選取一個有大素數(shù)q階群G,G在圖中用數(shù)字10標(biāo)出。G是一個有很強密碼性質(zhì)的密碼群,比如模一個大素數(shù)的乘法群的大素數(shù)階子群,或者一個定義在橢圓曲線上的有大素數(shù)階的加群。密鑰對生成算法用隨機數(shù)生成器,在選擇步驟12中選擇G的基元g,可以表示為g∈G。
私有密鑰選擇步驟13從一個模q的集中隨機選取第一個指數(shù)x,第二個指數(shù)y,第三個指數(shù)z作為私有密鑰。這個模q的集用Zq表示,在圖2中用數(shù)14標(biāo)出。選取可以表示如下。
x,y,z∈Zq然后,用選擇的數(shù)(g,x,y,z),根據(jù)下面公式計算出來第一個群元c,第二個群元d,第三個群元hc=gx,d=gy,h=gz。
現(xiàn)在,公共密鑰計算完成,表示為數(shù)g,c,d和h。
第二部分以一種計算機可讀的和可理解的形式存在的清晰的文本消息,稱為明文m。比如,明文m包含了用ASCII編碼的數(shù)字。這里,ASCII可以表示數(shù)據(jù)符號,比如字母,數(shù)字和符號。一般的,明文m可以用G中的數(shù)來表示,或者可以編碼為G中的數(shù)字。
加密中用到了哈希函數(shù)H,比如SHA-1和MD-5,在圖中沒有畫出。這個哈希函數(shù)H是公開的,它可以把長串哈希為Zq的元素。這個哈希函數(shù)H是從通用的單向哈希函數(shù)簇中選擇的。
假設(shè)明文m已經(jīng)準(zhǔn)備好,在圖中用數(shù)22標(biāo)出。加密算法運行如下。首先,從一個模q的元素集合中選擇一個隨機指數(shù)r,這個過程在圖中用23標(biāo)出。這個模q的元素集合,記為Zq,在圖中用24標(biāo)出。這個模q的元素集合必須大,但是不必和第一部分中描述的Zq一樣。加密方法計算第一個通用密文數(shù)據(jù)u,一個加密密文數(shù)據(jù)e,一個哈希值a和一個驗證密文數(shù)據(jù)v。它們是在加密步驟20中,用公共密鑰數(shù)據(jù)(g,c,d,h),指數(shù)r和明文m,用下面公式計算得到u=gr,e=hrm,a=H(u,e)。在這里,計算哈希值a時,哈希函數(shù)H還可以輸入其它參數(shù),比如公鑰。
v=crdra。
編號是30的密文由這個通用密文數(shù)據(jù)u,加密密文數(shù)據(jù)e和驗證密文數(shù)據(jù)v組成。通用密文數(shù)據(jù)u和加密密文數(shù)據(jù)e是應(yīng)用ElGamal方案加密得到。驗證密文數(shù)據(jù)v是一種特殊的錯誤檢驗碼。它將在編號為40的驗證步驟中用到,是為了檢驗密文是否正確構(gòu)造。在第四部分將對此作詳細(xì)說明。
如上所述,驗證密文數(shù)據(jù)v基于第一個群元c,第二個群元d,和指數(shù)r。
第三部分用30編號的密文,包括密碼數(shù)u,e,v在不安全信道上傳輸。為了清晰起見,這在圖2中沒有標(biāo)出。在判定Diffie-Hellman難題假設(shè)前提下,密文30沒有泄漏有關(guān)密鑰的任何信息,明文m也被隱藏。發(fā)送設(shè)備,比如圖1a和圖1b中的設(shè)備1,用輸出方法發(fā)送用這個密文。而接收設(shè)備,比如圖1a和圖1b中的設(shè)備2,用輸入方法接受這個密文。密文也可以直接保存。
第四部分在編號為50的解密步驟之前,有一個用驗證方法對用30編號的密文進(jìn)行驗證的步驟40。驗證可以獨立與在第五部分要說明的解密,因此在圖中分開標(biāo)出。當(dāng)在進(jìn)行驗證步驟40時,解密可以在另外的地方同時運行。這是一個優(yōu)點,因為計算能力可以共享,或者驗證和解密在特別處理過的機器上運行。
用接收到的加密數(shù)據(jù)u,e和v,驗證方法重新用哈希函數(shù)H計算哈希值a=H(u,e)。在這里,計算哈希值a時,和第二部分哈希值的輸入?yún)?shù)保持一致,哈希函數(shù)H還可以輸入其它參數(shù),比如公鑰。然后用私有密鑰中的x和y來檢驗是否有ux+ay=v[2]這個計算或者檢驗方法根據(jù)條件[2]輸出真或者假。如果條件[2]不成立,即結(jié)果是假,系統(tǒng)輸出拒絕信息。拒絕信息在圖中編號是41。根據(jù)它來做后續(xù)處理,比如中斷連接。
條件[2],也叫檢驗[2]。因為在驗證步驟40中會檢驗這個條件,所以除非滿足這個條件,否則將阻止解密方法或解密單元錯誤地充當(dāng)一個解密預(yù)言機。
如在第二部分所提到的,驗證密文數(shù)據(jù)v作為錯誤檢驗碼被創(chuàng)建。對正確創(chuàng)建的用30編號的密文,總有[2]成立。這樣的密文也叫做合法密文。但是對于一個適應(yīng)性選擇密文的攻擊者,沒有辦法阻止他提交不合法的密文或偽造的密文,也就是說,密文不是由第二部分的加密算法所創(chuàng)建的,攻擊者不知道指數(shù)r。這就是檢驗[2]的目的,它會檢驗接收的密文是否是第二部分的加密算法所創(chuàng)建的。檢驗[2]會確保不合法的密文會被拒絕。另外,由于哈希函數(shù)地?zé)o碰撞特性,也將阻止攻擊者從現(xiàn)有合法密文中計算一個不同的合法密文。這樣,可以有效地抵擋選擇密文攻擊,從而任何有關(guān)于私有密鑰的信息都沒有泄漏。另外,錯誤碼信息v也沒有泄漏任何有用的信息。
第五部分如果條件[2]成立,即結(jié)果為真,可以在解密步驟50中用e,u和z來恢復(fù)明文,其中z是私有密鑰的一部分。解密方法輸出m=e/uz。
用30編號的密文中在密文數(shù)據(jù)e中包含了明文m。因此,可以用ElGamal方案來恢復(fù)出明文m,其中用到了密文中的密文數(shù)據(jù)u和私有密鑰中的第三個指數(shù)z。
以上說提基于身份公鑰密碼系統(tǒng)和通用公鑰密碼系統(tǒng)不僅可以用軟件實現(xiàn),也可以用硬件實現(xiàn)。以上密碼系統(tǒng)的計算機化的機器可讀代碼包含在存儲介質(zhì)中,如硬盤,手機等等,可以用來安全通信。也可以在存儲介質(zhì)中包含一種機器可讀代碼,這種機器代碼控制硬件實現(xiàn)以上加密系統(tǒng)。裝備了以上所述的存儲介質(zhì)的數(shù)據(jù)處理單元可以用來完成以上加密系統(tǒng)的功能。
所提公鑰密碼系統(tǒng)有以下優(yōu)點1.所提基于身份公鑰密碼系統(tǒng)對午餐時間攻擊和適應(yīng)性選擇密文攻擊都是安全的。
2.適應(yīng)性選擇密文攻擊安全同時意味者不可展性。不可展是所提基于身份公鑰密碼系統(tǒng)的另一個優(yōu)點。
3.由于所提基于身份公鑰密碼系統(tǒng)對午餐時間攻擊和適應(yīng)性選擇密文攻擊都是安全的。因此,所提方案可以保證安全通信。這樣,敏感信息,如信用卡信息,密碼等,可以包含在密文中傳輸。通過因特網(wǎng)的電子商務(wù)傳輸也可以用所提公鑰密碼方案來實現(xiàn)。
4.所提基于身份公鑰密碼系統(tǒng)不僅可以用來加密,可以廣泛應(yīng)用于身份認(rèn)證、密鑰交換等領(lǐng)域。
5.所提基于身份公鑰加密系統(tǒng)是一個實用的加密系統(tǒng)。在這個方案中,用合理的計算代價抵擋了選擇密文攻擊,是一個實用的加密系統(tǒng)。
6.所提通用公鑰密碼系統(tǒng)對午餐時間攻擊和適應(yīng)性選擇密文攻擊都是安全的。
7.適應(yīng)性選擇密文攻擊安全同時意味者不可展性。不可展是所提通用公鑰密碼系統(tǒng)的另一個優(yōu)點。
8.由于所提通用公鑰密碼系統(tǒng)對午餐時間攻擊和適應(yīng)性選擇密文攻擊都是安全的。因此,所提方案可以保證安全通信。這樣,敏感信息,如信用卡信息,密碼等,可以包含在密文中傳輸。通過因特網(wǎng)的電子商務(wù)傳輸也可以用所提公鑰密碼方案來實現(xiàn)。
9.所提通用公鑰密碼系統(tǒng)不僅可以用來加密,可以廣泛應(yīng)用于身份認(rèn)證、密鑰交換等領(lǐng)域。
10.所提通用公鑰加密系統(tǒng)是高效的。與Cramer-Shoup方案相比,它的公有密鑰長度減短了20%,私有密鑰長度減短了40%,加密時的冪計算量減少了25%,密文長度減少了25%。效率上有很大提高,網(wǎng)絡(luò)帶寬要求也大幅降低。
說明書附1是所提基于身份公鑰密碼系統(tǒng)的一個圖解。
圖2是所提通用公鑰密碼系統(tǒng)的一個圖解。
具體實施例方式
具體實施方式
一當(dāng)只有一個可信中心情況下,所提基于身份公鑰密碼系統(tǒng)用于安全通信時,假設(shè)用戶B向用戶A發(fā)送信息m。則B先用A的公有密鑰加密m,并將加密后的密文發(fā)送給A。A得到密文后用自己的私有密鑰恢復(fù)出m。具體步驟如下第一部分 可信中心建立系統(tǒng)參數(shù)(a)生成第一個循環(huán)群G1和第二個循環(huán)群G2,其中G1是一個超奇異橢圓曲線或阿貝爾簇上的點的加群,G2是一個有限域的乘法群;(b)選取一個可行的配對eG1×G1→G2,它能夠由第一個循環(huán)群G1的兩個元素生成第二個循環(huán)群G2的一個元素;(c)任意選擇一個生成元P∈G1;(d)隨機選取x,y,z∈Zq,計算P1=xP,P2=y(tǒng)P,P3=zP;(e)可信中心將(x,y,z)作為系統(tǒng)的私鑰保存,并公開系統(tǒng)參數(shù)(G1,G2,e,P,P1,P2,P3)。
第二部分 可信中心生成用戶密鑰對假設(shè)IDA表述用戶A的唯一可識別的身份。可信中心對A進(jìn)行物理鑒定以確認(rèn)IDA具有唯一性后,生成用戶A的私鑰如下(a)計算QA=F(IDA),這是G1中的一個元素,并且也是用戶A的基于身份的公鑰。其中哈希函數(shù)F{0,1}*→G1,這個哈希函數(shù)能把用戶的身份ID映射到G1中一個元素;(b)計算c=xQA,d=y(tǒng)QA,h=zQA。
(c)將(c,d,h)通過安全信道發(fā)送給用戶A。用戶A將(c,d,h)作為自己的私鑰保存。
第三部分 加密為了發(fā)送秘密消息m給用戶A,用戶B首先獲得系統(tǒng)公開參數(shù)(G1,G2,e,P,P1,P2,P3,F(xiàn),H)和用戶A的身份IDA。然后運用這些參數(shù),用戶B加密明文m如下(a)從Zq中選擇一個隨機指數(shù)r;(b)計算用戶A的基于身份的公鑰QA,一個通用密文數(shù)據(jù)u,一個加密密文數(shù)據(jù)t,一個哈希值a和一個驗證密文數(shù)據(jù)vQA=F(IDA),u=rP,t=me(rP3,QA),a=H(u,t)。在這里,計算哈希值a時,哈希函數(shù)H還可以輸入其它參數(shù),比如公鑰Q。但在最佳實施例中,只輸入u和t。其中哈希函數(shù)H{0,1}*→Zq,這個哈希函數(shù)能把長串映射到Zq中一個元素;v=e(rP1+raP2,QA);(c)所得的密文為(u,t,v);第四部分 密文傳輸用戶B將密文(u,t,v)發(fā)送給用戶A;第五部分 驗證當(dāng)用戶A收到密文(u,t,v)后,用私有密鑰(c,d,h)驗證密文如下(a)a=H(u,t);在這里,計算哈希值a時,哈希函數(shù)H還可以輸入其它參數(shù),比如公鑰Q。但在最佳實施例中,只輸入u和t。其中哈希函數(shù)H{0,1}*→Zq,這個哈希函數(shù)能把長串映射到Zq中一個元素;(b)驗證是否有v=e(u,c+ad)成立。如果不成立,拒絕密文;第六部分 解密如果在以上驗證中,v=e(u,c+ad)成立,則用戶A計算m=t/e(u,h),恢復(fù)明文m。
具體實施例方式
二當(dāng)有n個可信中心情況下,其中n≥2,所提基于身份公鑰密碼系統(tǒng)用于安全通信時,假設(shè)用戶B向用戶A發(fā)送信息m。則B先用A的公有密鑰加密m,并將加密后的密文發(fā)送給A。A得到密文后用自己的私有密鑰恢復(fù)出m。具體步驟如下第一部分 n個可信中心建立系統(tǒng)參數(shù)(a)生成第一個循環(huán)群G1和第二個循環(huán)群G2,其中G1是一個超奇異橢圓曲線或阿貝爾簇上的點的加群,G2是一個有限域的乘法群;(b)選取一個可行的配對eG1×G1→G2,它能夠由第一個循環(huán)群G1的兩個元素生成第二個循環(huán)群G2的一個元素;(c)任意選擇一個生成元P∈G1;(d)隨機選取xi,yi,zi∈Zq,計算P1i=xiP,P2i=y(tǒng)iP,P3i=ziP;(e)可信中心將(xi,yi,zi)作為系統(tǒng)的私鑰保存,并公開系統(tǒng)參數(shù)(G1,G2,e,P,P1i,P2i,P3i)。
第二部分 可信中心生成用戶密鑰對假設(shè)IDA表述用戶A的唯一可識別的身份。第i個可信中心對A進(jìn)行物理鑒定以確認(rèn)IDA具有唯一性后,生成用戶A的私鑰如下(a)計算QA=F(IDA),這是G1中的一個元素,并且也是用戶A的基于身份的公鑰。其中哈希函數(shù)F{0,1}*→G1,這個哈希函數(shù)能把用戶的身份ID映射到G1中一個元素;(b)計算ci=xiQA,di=y(tǒng)iQA,hi=ziQA。
(c)將(ci,di,hi)通過安全信道發(fā)送給用戶A。
(d)用戶A計算c=c1+…+cn,d=d1+…+dn,h=h1+…+hn。
(e)用戶A將(c,d,h)作為自己的私鑰保存。
第三部分 加密為了發(fā)送秘密消息m給用戶A,用戶B首先獲得系統(tǒng)公開參數(shù)(G1,G2,e,P,P1i,P2i,P3i)和用戶A的身份IDA。然后運用這些參數(shù),用戶B加密明文m如下(a)從Zq中選擇一個隨機指數(shù)r;(b)計算用戶A的基于身份的公鑰QA,一個通用密文數(shù)據(jù)u,一個加密密文數(shù)據(jù)t,一個哈希值a和一個驗證密文數(shù)據(jù)vP1=P11+…+P1n,P2=P21+…+P2n,P3=P31+…+P3n,QA=F(IDA),u=rP,t=me(rP3,QA),a=H(u,t)。在這里,計算哈希值a時,哈希函數(shù)H還可以輸入其它參數(shù),比如公鑰Q。但在最佳實施例中,只輸入u和t。其中哈希函數(shù)H{0,1}*→Zq,這個哈希函數(shù)能把長串映射到Zq中一個元素;v=e(rP1+raP2,QA);(c)所得的密文為(u,t,v);第四部分 密文傳輸用戶B將密文(u,t,v)發(fā)送給用戶A;
第五部分 驗證當(dāng)用戶A收到密文(u,t,v)后,用私有密鑰(c,d,h)驗證密文如下(a)a=H(u,t);在這里,計算哈希值a時,哈希函數(shù)H還可以輸入其它參數(shù),比如公鑰Q。但在最佳實施例中,只輸入u和t。其中哈希函數(shù)H{0,1}*→Zq,這個哈希函數(shù)能把長串映射到Zq中一個元素;(b)驗證是否有v=e(u,c+ad)成立。如果不成立,拒絕密文;第六部分 解密如果在以上驗證中,v=e(u,c+ad)成立,則用戶A計算m=t/e(u,h),恢復(fù)明文m。
具體實施例方式
三當(dāng)所提通用公鑰密碼系統(tǒng)用于安全通信時,假設(shè)用戶A向用戶B發(fā)送信息m。A用B的公有密鑰加密m,并將加密后的密文發(fā)送給B。B得到密文后用自己的私有密鑰恢復(fù)出m。具體步驟如下第一部分 生成密鑰對建立一個大素數(shù)q階的循環(huán)群群G。
用戶B在密碼群G中選擇一個基元g,在Zq中隨機選取第一個指數(shù)x,第二個指數(shù)y和第三個指數(shù)z,保留(x,y,z)作為私有密鑰;用下面公式計算出來第一個群元c,第二個群元d,第三個群元hc=gx,d=gy,h=gz,將(g,c,d,h)作為公共密鑰并公開;第二部分 加密用戶A從可信目錄中得到用戶B的公有密鑰(g,c,d,h),然后用公有密鑰(g,c,d,h)加密明文m如下(a)從Zq中選擇一個隨機指數(shù)r;(b)用下面公式計算一個通用密文數(shù)據(jù)u,一個加密密文數(shù)據(jù)e,一個哈希值a和一個驗證密文數(shù)據(jù)vu=gr,e=hrm,
a=H(u,e),v=crdra,其中H是一個哈希函數(shù)。
(c)輸出加密的密文為(u,e,v);第三部分 密文傳輸用戶A將密文(u,e,v)發(fā)送給用戶B;第四部分 驗證當(dāng)用戶B收到用戶A發(fā)送的密文(u,e,v)后,用私有密鑰(x,y,z)驗證密文如下(a)應(yīng)用哈希函數(shù)H計算哈希值a;(b)驗證是否有ux+ay=v成立,如果ux+ay≠v,拒絕密文;第五部分 解密如果在以上驗證中,ux+ay=v成立,則用戶B計算m=e/uz,恢復(fù)明文m。
權(quán)利要求
1.一種實用不可展的公鑰加密系統(tǒng),其特征在于這種公鑰加密系統(tǒng)由以下方法組成密鑰對生成(a)生成第一個循環(huán)群G1和第二個循環(huán)群G2,其中第一個循環(huán)群G1是一個超奇異橢圓曲線或阿貝爾簇上的點的加群,第二個循環(huán)群G2是一個有限域的乘法群,第一個循環(huán)群G1與第二個循環(huán)群G2有相同的素數(shù)階q;(b)選取一個可行的非退化的配對e,它能夠由第一個循環(huán)群G1的兩個元素生成第二個循環(huán)群G2的一個元素;(c)任意選擇一個生成元P∈G1;(d)隨機選取x1,y1,z1,x2,y2,z2,…,xn,yn,zn∈Zq,其中x1,y1,z1,x2,y2,z2,…,xn,yn,zn互不相同。計算P11=x1P,P21=y(tǒng)1P,P31=z1P,P12=x2P,P22=y(tǒng)2P,P32=z2P,…,P1n=xnP,P2n=y(tǒng)nP,P3n=znP;(e)將(x1,y1,z1,x2,y2,z2,…,xn,yn,zn)作為系統(tǒng)的私鑰保存,并公開系統(tǒng)參數(shù)(G1,G2,e,P,P11,P21,P31,P12,P22,P32,…,P1n,P2n,P3n),其中。(f)生成G1中的一個元素Q作為用戶公鑰。(g)計算c1=x1Q,d1=y(tǒng)1Q,h1=z1Q,c2=x2Q,d2=y(tǒng)2Q,h2=z2Q,…,cn=xnQ,dn=y(tǒng)nQ,hn=znQ。(h)計算c=c1+…+cn,d=d1+…+dn,h=h1+…+hn。(i)將(c,d,h)作為用戶的私鑰保存。加密用參數(shù)(G1,G2,e,P,P11,P21,P31,P12,P22,P32,…,P1n,P2n,P3n)和用戶的公鑰Q來加密明文m的步驟如下(a)從Zq中選擇一個隨機指數(shù)r;(b)計算一個通用密文數(shù)據(jù)u,一個加密密文數(shù)據(jù)t,一個哈希值a和一個驗證密文數(shù)據(jù)vP1=P11+…+P1n,P2=P21+…+P2n,P3=P31+…+P3n,u=rP,t=me(rP3,Q),應(yīng)用哈希函數(shù)H計算哈希值a。v=e(rP1+raP2,Q);(c)所得的密文為(u,t,v);驗證用私有密鑰(c,d,h)驗證密文(u,t,v)如下(a)應(yīng)用哈希函數(shù)H計算哈希值a;(b)驗證是否有v=e(u,c+ad)成立。如果不成立,拒絕密文;解密如果有v=e(u,c+ad)成立,則計算m=t/e(u,h),恢復(fù)明文m。
2.根據(jù)權(quán)利要求1所述的一種實用不可展的公鑰加密系統(tǒng),其特征用戶公鑰Q或者從群G1中選擇,或者計算Q=F(ID)得到。其中,ID是用戶的可識別的身份,哈希函數(shù)F能把用戶的身份ID映射到群G1中一個元素。
3.根據(jù)權(quán)利要求1所述的一種實用不可展的公鑰加密系統(tǒng),其特征哈希函數(shù)H能把長串映射到Zq中一個元素,應(yīng)用哈希函數(shù)H計算哈希值a時,至少輸入通用密文數(shù)據(jù)u和加密密文數(shù)據(jù)t。
4.根據(jù)權(quán)利要求1所述的一種實用不可展的公鑰加密系統(tǒng),其特征是n是一個大于零的整數(shù)。
5.一種實用的不可展的公鑰加密系統(tǒng),其特征在于這種公鑰加密系統(tǒng)由以下方法組成密鑰對生成(a)生成一個循環(huán)群G,其中循環(huán)群G有素數(shù)階q;(b)隨機選擇一個生成元g∈G;(c)隨機選取x,y,z∈Zq,其中x,y,z互不相同。計算c=gx,d=gy,h=gz;(d)保留(x,y,z)作為用戶的私有密鑰,將(g,c,d,h)作為用戶的公共密鑰并公開。加密用公共密鑰(g,c,d,h)加密明文m如下(a)從Zq中選擇一個隨機指數(shù)r;(b)計算一個通用密文數(shù)據(jù)u,一個加密密文數(shù)據(jù)e,一個哈希值a和一個驗證密文數(shù)據(jù)vu=gr,e=hrm,應(yīng)用哈希函數(shù)H計算哈希值a,v=crdra;(c)輸出加密的密文為(u,e,v);驗證用私有密鑰(x,y,z)驗證密文(u,e,v)如下(a)應(yīng)用哈希函數(shù)H計算哈希值a;(b)驗證是否有ux+ay=v成立,如果ux+ay≠v,拒絕密文;解密如果有ux+ay=v成立,則計算m=e/uz,恢復(fù)明文m。
6.根據(jù)權(quán)利要求5所述的一種實用的不可展的公鑰加密系統(tǒng),其特征哈希函數(shù)H能把長串映射到Zq中一個元素,而且應(yīng)用哈希函數(shù)H計算哈希值a時,至少輸入通用密文數(shù)據(jù)u和加密密文數(shù)據(jù)e。
7.一種存儲介質(zhì),其特征是包含權(quán)利要求1到6所述的任何一個方法的機器可讀代碼。
8.一種存儲介質(zhì),其特征是包含了為控制計算機硬件去實現(xiàn)權(quán)利要求1到6所述的任何一個方法的機器可讀程序代碼。
9.一種數(shù)據(jù)處理單元,其特征是裝備了權(quán)利要求7所述的存儲介質(zhì)。
10.一種數(shù)據(jù)處理單元,其特征是裝備了權(quán)利要求8所述的存儲介質(zhì)。
全文摘要
所提發(fā)明是在標(biāo)準(zhǔn)假設(shè)下能抵抗午餐時間攻擊和適應(yīng)性選擇密文攻擊的公鑰密碼系統(tǒng)。它不會泄漏私有密鑰或者明文的任何信息。在所提發(fā)明中,明文用公鑰轉(zhuǎn)化為一種加密的形式即密文后,只有擁有正確私鑰的接收者才能解開密文。但在解密前,有一個密文的驗證過程,它檢查密文的合法性。如果密文是合法的,則被解密成明文;如果密文是不合法的,則被拒絕。合法密文的不可偽造性基于標(biāo)準(zhǔn)假設(shè)計算Diffie-Hellman問題或雙線性Diffie-Hellman問題的難度和哈希函數(shù)的無碰撞性。本發(fā)明可以廣泛應(yīng)用在數(shù)據(jù)加密、身份認(rèn)證、安全通信、密鑰交換等領(lǐng)域。
文檔編號H04L9/08GK1925390SQ200510104789
公開日2007年3月7日 申請日期2005年12月26日 優(yōu)先權(quán)日2005年11月17日
發(fā)明者胡玉蓮 申請人:胡玉蓮
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
哈尔滨市| 鄄城县| 翁牛特旗| 绥江县| 郴州市| 南开区| 砀山县| 三明市| 尚志市| 铁岭市| 项城市| 任丘市| 房山区| 梨树县| 营山县| 梓潼县| 贵港市| 信丰县| 大邑县| 赣榆县| 红原县| 天祝| 渝中区| 分宜县| 百色市| 含山县| 湘西| 南华县| 临夏县| 延安市| 香格里拉县| 平南县| 卢氏县| 农安县| 原平市| 石渠县| 乳源| 华阴市| 延吉市| 乌海市| 登封市|