基于環(huán)Zn上圓錐曲線的雙難題公鑰加密體制

近年來,基于圓錐曲線密碼體制的研究引起了學者們的關(guān)注,那么今天,我們就在前人研究的基礎(chǔ)上提出了基于環(huán)Zn上圓錐曲線的雙密鑰公開加密體制,從而實現(xiàn)了圓錐曲線上的基于大整數(shù)分解與圓錐曲線上的離散對數(shù)雙困難問題的加密體制,并給出了數(shù)值模擬。

一、基于環(huán)Zn上圓錐曲線的相關(guān)知識

1、環(huán)Zn上的圓錐曲線

設(shè)Zn是一個模n的剩余類環(huán),定義環(huán)Zn上的圓錐曲線是同余方程:

基于環(huán)Zn上圓錐曲線的雙難題公鑰加密體制
在Zn上的解(x,y)的集,這里n=pq,p,q為兩個不同的奇素數(shù),(a,n)=(b,n)=1。a是模p的二次非剩余,b是模q的二次非剩余,且p+1=2r,q+1=2s,其中r,s是素數(shù),則曲線的階Nn=2rs,可以對圓錐曲線Cn(a,b)上的點定義一個加法運算。圓錐曲線上的點的集合在該加法作用下構(gòu)成一個有限交換群,在此圓錐曲線上階為Nn=2rs的點G稱為基點。圓錐曲線上的離散對數(shù)問題定義為:由基點G生成的群S={G,2G,NnG}

給定M,N∈S,求出整數(shù)e使得M=eN是非常困難的,稱為圓錐曲線上的離散對數(shù)問題。

2、基于環(huán)Zn上圓錐曲線的RSA公鑰密碼體制

首先選定一條圓錐曲線:y2≡ax2-bx(modn)其中a,b∈Zn,(a,n)=(b,n)=1,n=pq,p,q為兩個不同的大素數(shù),滿足(a/p)=-1,(a/q)=-1,且p+1=2r,q+1=2s,其中:r,s也為素數(shù),令Nn=2rs,任取1<e<Nn,且(e,Nn)=1,計算ed=1(modNn)則:

(1)參數(shù)選擇

公鑰:e,n,a,b

私鑰:d,p,q

(2)加密算法

計算C=eP1(m)(modn)

(3)解密算法

dC=deP1(m)=(1+hNn)P1(m)=P1(m)

對P1(m)使用譯碼算法即得明文m。

3、基于環(huán)Zn上圓錐曲線的E1Gamal加密算法

首先選定一條圓錐曲線:y2≡ax2-bx(modn)其中a,b∈Zn,(a,n)=(b,n)=1,n=pq,p,q為兩個不同的大素數(shù)滿足(a/p)=-1,(a/q)=-1,且p+1=2r,q+1=2s,其中:r,s也為素數(shù),令Nn=2rs,選取G∈Cn(a,b),其階為Nn=2rs,即G為基點。任取1<e<Nn,計算Y=eG。

公開:n,a,b,G,Y

私鑰:e

加密算法:

任取k,計算C1=kG,C2=P1(m)⊕kY,密文C=(C1,C2)

解密算法:

計算C2⊕(-eC1)=P1(m),對P1(m)用譯碼算法得明文。

顯然,系統(tǒng)安全性基于圓錐曲線上計算離散對數(shù)的困難性。

二、基于環(huán)Zn上的圓錐曲線的雙密鑰公開加密體制

首先選定一條圓錐曲線:Cn(a,b)y2≡ax2-bx(modn)其中a,b∈Zn,(a,n)=(b,n)=1,n=pq,p,q為兩個不同的大素數(shù)滿足(a/p)=-1,(a/q)=-1。且p+1=2r,q+1=2s,其中:r,s也為素數(shù),令Nn=2rs,選取G∈Cn(a,b),其階為Nn=2rs,即G為基點。任取1<x<Nn,計算Y=xG。再計算3×d≡1(modNn)。

公鑰:n,G,Y,3

私鑰:x,d,Nn

所謂雙密鑰就是指d和x,分別是基于大整數(shù)分解難題與圓錐曲線離散對數(shù)難題的密鑰。其中解密密鑰d與RSA中的解密密鑰相似,而RSA體制中的公鑰這里用常數(shù)3代替,當然這里公開鑰值也不一定是3,可以根據(jù)情況選取,只要保證是個小常數(shù),從而節(jié)省系統(tǒng)開銷。

具體加密過程通信雙方首先要共享一個會話密鑰:設(shè)KAB為用戶A,B之間進行通信對話的公開密鑰(會話密鑰),若A為通信發(fā)起者,則A取B的公鑰(nB,GB,YB,3),用戶B保存自己的私鑰(xB,dB,NnB),用戶A隨機地選擇一個數(shù)k,1<k<n/2,并依下列各式計算出KAB,ZA,C:

KAB=kY;

ZA=kG;

C=3ZA。

然后,將C值傳送給用戶B,用戶B收到C值后,再用私鑰xB和dB計算出ZA和KA:

ZA=dBC=3dBZA=(1+hNn)ZA=ZA0;

KAB=xBZA。

加密方法:

設(shè)用戶A向用戶B傳送需加密的明文序列為{m1,m2,mi},先將明文序列嵌入圓錐曲線的點P1(mi),A用戶用會話密鑰KAB通過下面的方法對生成的明文數(shù)據(jù)塊mi加密的一對密鑰Ki,1和Ki,2:

Ki,1=Ki-1,1⊕KAB=iKAB=P1(ki);

(K0,1=1)Ki,2=kiG;

加密過程:

i=3P1(mi)⊕Ki,2;

解密方法:

用戶B用自己的私鑰按上文描述的方法計算出會話密鑰KAB,再用KAB計算出Ki,1和Ki,2。

解密過程:

P1(mi)=dB(Ci,Ki,2)。

譯碼算法得mi。

三、基于環(huán)Zn上的圓錐曲線的雙密鑰公開加密體制的數(shù)值模擬

首先B選定一條圓錐曲線:Cn(2,1)y2≡2x2-x(mod65),即a=2,b=1,n=65,p=5,q=13,r=(p+1)/2=3,s=(q+1)/2=7,Nn=2rs=42,G=P1(2)=(32,64),取x=11,Y=xG=11G=P1(58)。

5×d≡1(mod42)

公鑰:n=65,G=P1(2);Y=P1(58),5

私鑰:x=11,d=17,Nn=42。

用戶A為通信發(fā)起者,其隨機選取k=5,計算出KAB,ZA,C:

KAB=5P1(58)=P1(37);

ZA=5P1(2)=P1(3);

C=5P1(3)=P1(32)。

用戶A將C值發(fā)給用B,B通過私鑰計算出的KAB:

ZA=17P1(32)=P1(3);

KAB=11P1(3)=P1(37)。

設(shè)用戶A向用戶B傳送需加密的明文序列為{m1=24,m2=18},先將明文序列嵌入圓錐曲線的點, P1 (24),P1 (18),A用戶用會話密鑰KAB通過下面的方法對生成的明文數(shù)據(jù)塊m1, m2加密的一對密鑰K1,1,K2,1和K1,2,K2,2:

K1,1=KAB=P1(37),K1,2=37G=37P1(2)=P1(62);

K2,1=2P1(37)=P1(44),K2,2=44G=44P1(2)=P1(34);

加密過程:

C1=5P1(24)⊕P1(62)=P1(36)⊕P1(62)=P1(48)

C2=5P1(18)⊕P1(34)=P1(22)⊕P1(34)=P1(25)

傳送(C1,C2)

解密過程:

用戶B同樣通過會話密鑰KAB計算出加密的密鑰,從而進行解密。

P1(m1)=d(C1,K1,2)=17(P1(48),P1(62))=17P1(36)=P1(24);

P1(m2)=d(C2,K2,2)=17(P1(25),P1(34))=17P1(22)=P1(18)。

通過明文譯碼算法得到明文m1=24,m2=18。

四、基于環(huán)Zn上圓錐曲線的雙難題公鑰加密體制安全性與性能分析

1、安全性分析

從會話密鑰KAB的計算過程可以看出,用戶B要得到KAB必須要用的密鑰dB和xB,而求解它們分別是大整數(shù)分解困難問題與圓錐曲線上的離散對數(shù)難題。攻擊者即使成功分解了大整數(shù),從而得到密鑰dB,但也只能得到ZA,要想計算出KAB還需要計算xB,這是一個圓錐曲線上的計算離散對數(shù)的難題。反過來攻擊者若能夠得到xB,無法解密C,還需要得到dB,而這是一個求解大整數(shù)分解難題。所以本體制是一個基于雙難題的密碼體制,攻擊者必須同時攻克雙難題,才能破解本系統(tǒng),這使本系統(tǒng)有較高的安全性。

為了提高系統(tǒng)效率,在文件加密中使用了小常數(shù)作為公鑰,在有限域上雙密鑰公開加密體制會受到小加密指數(shù)的算法攻擊,使系統(tǒng)存在安全隱患,基于大整數(shù)分解困難問題的安全性存在漏洞。而由于圓錐曲線上的RSA體制能夠抵抗小加密指數(shù)攻擊,因此本文提出的在圓錐曲線上的雙密鑰公開加密體制可以抵抗小加密指數(shù)的攻擊,使本體制在保持效率的同時具有更好的安全性。

本體制在加密與解密過程中對會話密鑰進行了迭代計算,并對明文的加密采用了分組加密,使同樣的明文可以對應不同的密文,從而使安全性有了一定的提高。

2、性能分析

在本體制中,對于一個數(shù)據(jù)塊mi的加密,需要用到一個圓錐曲線上點的倍乘運算,但由于其倍數(shù)為小常數(shù)(為3),故此運算量可以忽略。對于解密數(shù)據(jù)塊Ci,需要兩次圓錐曲線上的倍乘運算,這個運算量相當于圓錐曲線上的RSA或ElGamal的單個運算量。同時,由于圓錐曲線中明文嵌入、階的計算及點的運算都比較容易,特別是在群(Cn(a,b),⊕)中逆元計算十分容易,以及在引進標準二進制計算群元素的情況下,比著名的“平方-和-乘法”算法節(jié)約1/4計算量。這使本體制易于實現(xiàn)。

本文將雙密鑰公開加密體制在圓錐曲線上進行了模擬,從而實現(xiàn)了圓錐曲線上的基于大整數(shù)分解困難與圓錐曲線上的離散對數(shù)困難問題的加密體制,并進行數(shù)值模擬,分析了該體制的安全性與效率,與原有體制相比,本體制在保證原有效率的同時還能夠抵抗小加密指數(shù)攻擊,從而提高了系統(tǒng)的安全性。而且圓錐曲線上的各種運算比較容易,使本體制易于實現(xiàn),具有一定應用價值。

小知識之圓錐曲線

圓錐曲線包括橢圓,雙曲線,拋物線。其統(tǒng)一定義:到定點的距離與到定直線的距離的比e是常數(shù)的點的軌跡叫做圓錐曲線。當0<e1時為雙曲線。