本發(fā)明屬于信息安全技術(shù)領(lǐng)域,更具體地,涉及一種多變量公鑰加密方法。
背景技術(shù):隨著計(jì)算機(jī)和網(wǎng)絡(luò)的不斷發(fā)展,人們對(duì)信息的完整性、安全性要求越來(lái)越高,因此,密碼學(xué)應(yīng)運(yùn)而生。公鑰密碼學(xué)由于其加密密鑰和解密密鑰不一樣,成為了解決網(wǎng)絡(luò)安全和信息安全的某些安全問(wèn)題的關(guān)鍵手段。但是隨著信息技術(shù)的不斷發(fā)展,人們對(duì)系統(tǒng)的性能要求越來(lái)越高,不僅要求信息的完整性、安全性,還要求傳遞信息過(guò)程的簡(jiǎn)便性和快速性。目前,主流對(duì)稱密碼的密鑰管理和傳遞過(guò)程較復(fù)雜,且公鑰密碼的運(yùn)算效率偏低,已越來(lái)越不能滿足人們?nèi)找嬖鲩L(zhǎng)的物質(zhì)文化需要。其次,隨著手機(jī)或無(wú)線移動(dòng)終端應(yīng)用的普及,無(wú)紙化辦公概念的提出,以及物聯(lián)網(wǎng)的發(fā)展,手機(jī)或無(wú)線移動(dòng)終端在我們生活中扮演的角色越來(lái)越重要,然而手機(jī)或無(wú)線移動(dòng)終端的運(yùn)行速度和資源都還無(wú)法和計(jì)算機(jī)相比,因此,在手機(jī)或無(wú)線移動(dòng)終端等這種資源環(huán)境受限的應(yīng)用情況下,傳統(tǒng)的加密方案不再適用。此外,隨著量子計(jì)算的提出,傳統(tǒng)的加密方案受到極大的威脅,一旦量子計(jì)算機(jī)的成功研發(fā),人們常用的公鑰密碼RSA、ECC將不再安全。抗量子計(jì)算機(jī)攻擊的公鑰加密方法主要有基于格問(wèn)題的NTRU算法、基于Hash函數(shù)的簽名算法、基于糾錯(cuò)碼的公鑰密碼體制以及多變量二次多項(xiàng)式(簡(jiǎn)稱MQ)公鑰密碼體制和OUT2000公鑰密碼體制等,這些算法的便捷性和安全性,非常適用于智能卡等移動(dòng)終端。公開(kāi)號(hào)為CN103200001A的中國(guó)專利申請(qǐng)公開(kāi)了一種多變量公鑰加密方法,具有實(shí)現(xiàn)效率高,抗量子計(jì)算機(jī)攻擊的特點(diǎn)。盡管如此,上述方法均存在存儲(chǔ)的密鑰較長(zhǎng),不便于密鑰管理的問(wèn)題。因此,為了讓公鑰密碼能夠更好地發(fā)展,更好地運(yùn)用到生活中,急需研究安全快速的公鑰密碼算法。
技術(shù)實(shí)現(xiàn)要素:針對(duì)現(xiàn)有技術(shù)的以上缺陷或改進(jìn)需求,本發(fā)明提供了一種多變量公鑰加密方法,大大縮短了密鑰的長(zhǎng)度,便于密鑰管理,在加密中引入隨機(jī)參數(shù),是一種概率加密的方法,只有知道隨機(jī)參數(shù)的大小才能正確解密明文,增加了攻擊者破解密文的難度,能抵抗量子計(jì)算機(jī)的攻擊,加解密速度快,能夠運(yùn)用于移動(dòng)終端,如手機(jī)等。為實(shí)現(xiàn)上述目的,本發(fā)明提供了一種多變量公鑰加密方法,其特征在于,包括如下步驟:(1)生成密鑰,進(jìn)一步包括如下步驟:選取有限域Z及有限域Z中的k個(gè)整數(shù)p1,p2,…,pi,…,pk,其中,i為不大于k的正整數(shù);在有限域Z上選取如下整數(shù):(β11,β12),(β21,β22),…,(βi1,βi2),…,(βk1,βk2)和(x1,x2,…,xi,…,xk);構(gòu)造與(β11,β12),(β21,β22),…,(βi1,βi2),…,(βk1,βk2)和p1,p2,…,pi,…,pk相關(guān)的兩組參數(shù)a11,a21,…,ai1,…,ak1和a12,a22,…,ai2,…,ak2,使ai1和ai2的二進(jìn)制長(zhǎng)度相同;構(gòu)造k×n維滿秩矩陣A=(aij),j=1,…,n,其中,j>2時(shí),構(gòu)造矩陣Kl×k和矩陣Dk×l,使其滿足D·K=λ·Ek×k,且l≥k,其中,Ek×k是單位矩陣,λ為任意整數(shù);計(jì)算矩陣C=K·A=(cyj),y=1,...,l,選取正整數(shù)h,0<h<n,確定隨機(jī)參數(shù)ε的取值范圍[1,e],其中,t為任意正整數(shù);選取l個(gè)整數(shù)P1,...,Pl,滿足不等式得到P1,...,Pl的最小公倍數(shù)N;求解同余方程組得到向量d=(d1,d2,…,dj,…,dn);將d和h一起作為公鑰,或者將d、h和N一起作為公鑰,對(duì)應(yīng)的私鑰至少包括(x1,x2,…,xi,…,xk)、p1,p2,…,pi,…,pk、P1,...,Pl、(β11,β12),(β21,β22),…,(βi1,βi2),…,(βk1,βk2)和D;(2)用公鑰加密,進(jìn)一步包括如下步驟:獲取明文M=(m1,…,mn),選定隨機(jī)參數(shù)ε;用步驟(1)得到的公鑰以概率加密的方式對(duì)明文進(jìn)行加密,得到密文C;(3)用私鑰解密,進(jìn)一步包括如下步驟:求解同余方程組計(jì)算[SA1…SAk]T=D[CP1…CPl]T;通過(guò)解密方法或者同步方法獲取隨機(jī)參數(shù)ε;通過(guò)(SA1,…,SAk)和隨機(jī)參數(shù)ε求解得到明文M=(m1,…,mn)。優(yōu)選地,所述步驟(1)中,ai1=βi1pi,優(yōu)選地,所述步驟(1)中,ai1=βi1,ai2=βi2pi。優(yōu)選地,所述密文C由如下表達(dá)式中的任何一個(gè)得到:和優(yōu)選地,通過(guò)解密方法獲取隨機(jī)參數(shù)ε具體為:計(jì)算同余方程組得到隨機(jī)參數(shù)ε,其中,|λ|表示整數(shù)λ的絕對(duì)值,為矩陣D的第i行所有元素之和??傮w而言,通過(guò)本發(fā)明所構(gòu)思的以上技術(shù)方案與現(xiàn)有技術(shù)相比,具有以下有益效果:(1)在密鑰生成過(guò)程中,采用迭代方法構(gòu)造矩陣,大大縮短了密鑰的長(zhǎng)度,便于密鑰管理。(2)采用概率加密,在加密中引入隨機(jī)參數(shù),解密方必須通過(guò)解密過(guò)程求解出該隨機(jī)參數(shù),并參與明文的解密,只有知道隨機(jī)參數(shù)的大小才能正確解密明文,增加了解密或攻擊者破解密文的難度,即使在公鑰相同的情況下密文也是不同的,公鑰能以類似電話號(hào)碼的形式公布,提高了加密安全性。而普通的概率公鑰中的隨機(jī)參數(shù)是直接通過(guò)某種手段濾除,解密密文與此隨機(jī)參數(shù)無(wú)關(guān),使破解密文的難度降低。(3)基于組合優(yōu)化困難問(wèn)題和多變量二次多項(xiàng)式(MQ)問(wèn)題,能抵抗量子計(jì)算機(jī)的攻擊,加解密速度快,能夠運(yùn)用于移動(dòng)終端,如手機(jī)等。(4)基于有限域上的運(yùn)算,而不是基于多項(xiàng)式上的運(yùn)算,簡(jiǎn)化了運(yùn)算過(guò)程。(5)具有加法同態(tài)和減法同態(tài),在特殊條件下具有乘法同態(tài),能應(yīng)用于云計(jì)算等新興領(lǐng)域。附圖說(shuō)明圖1是公鑰加密方法在通信中的應(yīng)用原理示意圖;圖2是本發(fā)明實(shí)施例的多變量公鑰加密方法流程圖。具體實(shí)施方式為了使本發(fā)明的目的、技術(shù)方案及優(yōu)點(diǎn)更加清楚明白,以下結(jié)合附圖及實(shí)施例,對(duì)本發(fā)明進(jìn)行進(jìn)一步詳細(xì)說(shuō)明。應(yīng)當(dāng)理解,此處所描述的具體實(shí)施例僅僅用以解釋本發(fā)明,并不用于限定本發(fā)明。此外,下面所描述的本發(fā)明各個(gè)實(shí)施方式中所涉及到的技術(shù)特征只要彼此之間未構(gòu)成沖突就可以相互組合。圖1是公鑰加密方法在通信中的應(yīng)用原理示意圖,如圖1所示,用戶通過(guò)密鑰對(duì)生成器生成公私鑰對(duì),將公鑰發(fā)送給可信第三方,由可信第三方制作成公鑰密碼本,并發(fā)送給每一個(gè)用戶。這里的可信第三方可以是類似于移動(dòng)、聯(lián)通這種可信第三方。用戶的處理器既可以是加密器也可以是解密器,當(dāng)用戶作為加密方、通信的發(fā)起方時(shí),其對(duì)應(yīng)的處理器用作加密器,當(dāng)用戶作為解密方、通信的接收方時(shí),其對(duì)應(yīng)的處理器用作解密器。判別處理器用作加密處理還是解密處理的方法是看其信息的輸入方式,如果信息是從發(fā)送/接收器輸入,則處理器用作解密器,如果信息是從其他渠道(如鍵盤等)輸入,則處理器用作加密器。當(dāng)用戶A要與用戶B通信時(shí),用戶A通過(guò)查詢公鑰密碼本,得到目標(biāo)用戶B的公鑰密碼——公鑰B8;公鑰B8、明文A6和隨機(jī)數(shù)發(fā)生器A2產(chǎn)生的隨機(jī)數(shù)作為輸入,輸入到用作加密器的處理器A1中。處理器A1通過(guò)加密得到密文C,輸出的密文C通過(guò)發(fā)送/接收器A7和信道發(fā)送給用戶B。用戶B通過(guò)發(fā)送/接收器B7將密文C輸入到處理器B1中,處理器B1用作解密器。處理器B1通過(guò)調(diào)用用戶B的私鑰——私鑰B4進(jìn)行解密,得到明文B6。當(dāng)用戶B要與用戶A通信時(shí),原理相同,此處就不贅述了。如圖2所示,本發(fā)明實(shí)施例的多變量公鑰加密方法包括如下步驟:(1)生成密鑰,進(jìn)一步包括如下步驟:選取有限域Z及有限域Z中的k個(gè)整數(shù)p1,p2,…,pi,…,pk,其中,i為不大于k的正整數(shù);在有限域Z上選取如下整數(shù):(β11,β12),(β21,β22),…,(βi1,βi2),…,(βk1,βk2)和(x1,x2,…,xi,…,xk);構(gòu)造與(β11,β12),(β21,β22),…,(βi1,βi2),…,(βk1,βk2)和p1,p2,…,pi,…,pk相關(guān)的兩組參數(shù)a11,a21,…,ai1,…,ak1和a12,a22,…,ai2,…,ak2,使得ai1和ai2的二進(jìn)制長(zhǎng)度相同,具體地,ai1=βi1pi,或者ai1=βi1,ai2=βi2pi;構(gòu)造k×n維滿秩矩陣A=(aij),j=1,…,n,其中,j>2時(shí),構(gòu)造矩陣Kl×k和矩陣Dk×l,使其滿足D·K=λ·Ek×k,且l≥k,其中,Ek×k是單位矩陣,λ為任意整數(shù);計(jì)算矩陣C=K·A=(cyj),其中,y=1,...,l,選取正整數(shù)h,其中,0<h<n,確定隨機(jī)參數(shù)ε的取值范圍[1,e],其中,t為任意正整數(shù);選取l個(gè)整數(shù)P1,...,Pl,滿足不等式得到P1,...,Pl的最小公倍數(shù)N;求解同余方程組得到向量d=(d1,d2,…,dj,…,dn);具體地,如果P1,...,Pl兩兩互素,則可以通過(guò)中國(guó)剩余定理求解dj;如果P1,...,Pl不是兩兩互素,則可以通過(guò)其它方法計(jì)算dj;將d和h一起作為公鑰kp,或者將d、h和N一起作為公鑰kp,對(duì)應(yīng)的私鑰ks至少包括(x1,x2,…,xi,…,xk)、p1,p2,…,pi,…,pk、P1,...,Pl、(β11,β12),(β21,β22),…,(βi1,βi2),…,(βk1,βk2)和D;(2)用公鑰加密,進(jìn)一步包括如下步驟:獲取明文M=(m1,…,mn),選定隨機(jī)參數(shù)ε;用步驟(1)得到的公鑰以概率加密的方式對(duì)明文進(jìn)行加密,得到密文C;具體地,C可以由如下表達(dá)式中的任何一個(gè)得到:(3)用私鑰解密,進(jìn)一步包括如下步驟:求解同余方程組計(jì)算[SA1…SAk]T=D[CP1…CPl]T;通過(guò)解密方法或者同步方法獲取隨機(jī)參數(shù)ε;具體地,如果采用式(1)或式(2)的加密方式,一般通過(guò)同步方法獲取隨機(jī)參數(shù)ε,如果采用式(3)或式(4)的加密方式,一般通過(guò)解密方法獲取隨機(jī)參數(shù)ε;通過(guò)解密方法獲取隨機(jī)參數(shù)ε具體為:計(jì)算同余方程組得到隨機(jī)參數(shù)ε,其中,|λ|表示整數(shù)λ的絕對(duì)值,為矩陣D的第i行所有元素之和;通過(guò)(SA1,…,SAk)和隨機(jī)參數(shù)ε求解得到明文M=(m1,…,mn)。為使本領(lǐng)域技術(shù)人員更好地理解本發(fā)明,下面結(jié)合具體實(shí)施例,對(duì)本發(fā)明的多變量公鑰加密方法進(jìn)行詳細(xì)說(shuō)明。應(yīng)當(dāng)說(shuō)明的是,下述實(shí)施例僅為本發(fā)明方法的優(yōu)選實(shí)施例,實(shí)施例中各步驟的實(shí)現(xiàn)順序不應(yīng)理解為對(duì)本發(fā)明的限制。實(shí)施例1通過(guò)解密方法獲取隨機(jī)參數(shù)ε,本方法包括如下步驟:(1)生成密鑰。進(jìn)一步包括如下步驟:(1-1)采用迭代方式構(gòu)造k×n維滿秩矩陣A。進(jìn)一步包括如下步驟:(1-1-1)確定k=2。(1-1-2)選取有限域Z,及有限域Z中的2個(gè)整數(shù)p1,p2。(1-1-3)選取有限域Z上的如下整數(shù):(β11,β12)、(β21,β22)和(x1,x2)。令a11=β11p1,a21=β21p2,(1-1-4)構(gòu)造矩陣A=(aij),其中,i=1,2,j=1,…,n,j>2時(shí),(1-2)通過(guò)混淆或擴(kuò)散方式F得到向量d=(d1,d2,…,dj,…,dn),其中,dj通過(guò)如下方式求解:(A1)選取整數(shù)t,s,γ,c,δ,h,使其同時(shí)滿足以下3個(gè)條件:(a)γc-δ<max(s,t)<δ;(b)2.2<h<n-2;(c)gcd(R1,R3)=1。其中,R1=δ(X+Y)m+c,R3=1+γ(X+Y)m,m=p1p2-1,e=tp1p2-1。其中,選取正整數(shù)R2,使R2|(R1-1),gcd(R2,R3)=1,且R2>c,構(gòu)造矩陣K3×2和矩陣D2×3,選擇任意正整數(shù)z1,z2。(A2)計(jì)算矩陣C=K·A=(cyj),y=1,2,3。(A3)選取3個(gè)整數(shù)P1=R1,P2=R2R3,P3=R1R3。(A4)求解同余方程組如果P1、P2和P3不是兩兩互素,具體計(jì)算公式為:dj=(s+γR1-R1R3δ)a1j+(s+t+γR1-R1R3δ)a2jmodN(1-3)將d=(d1,...,dn),N=R1R2R3和h一起作為公鑰,將β11,β12,β21,β22,D,P1,P2,P3,p1,p2,x1,x2一起作為對(duì)應(yīng)的私鑰。(2)用公鑰加密。進(jìn)一步包括如下步驟:(2-1)獲取明文M=(m1,m2,…,mj,…,mn),選定隨機(jī)參數(shù)ε;(2-2)用步驟(1)得到的公鑰對(duì)明文進(jìn)行加密,得到密文C為:(3)用私鑰解密。進(jìn)一步包括如下步驟:(3-1)求解同余方程組(3-2)計(jì)算(3-3)通過(guò)解密方法獲取ε。具體地,計(jì)算得得到ε為模tp1p2下的唯一解。(3-4)通過(guò)SA1,SA2和ε求解得到明文M=(m1,m2,…,mj,…,mn)。進(jìn)一步包括如下步驟:(3-4-1)根據(jù)私鑰β11,β12,β21,β22,p1,p2,當(dāng)j>2時(shí),利用公式計(jì)算參數(shù)(β13,…,β1n)以及(β23,…,β2n)。(3-4-2)當(dāng)j=1時(shí),計(jì)算和得到m1為模p1p2下的唯一解。(3-4-3)當(dāng)j=2,...,h時(shí),計(jì)算和得到mj為模p1p2下的唯一解。(3-4-4)當(dāng)j=h+1時(shí),計(jì)算和得到mh+1為模p1p2下唯一解。(3-4-5)當(dāng)j=h+2,…,n時(shí),計(jì)算和得到mj為模p1p2下的唯一解。實(shí)施例2通過(guò)同步方法獲取隨機(jī)參數(shù)ε,本方法包括如下步驟:(1)生成密鑰。進(jìn)一步包括如下步驟:(1-1)采用迭代方式構(gòu)造k×n維滿秩矩陣A。進(jìn)一步包括如下步驟:(1-1-1)確定k=2。(1-1-2)選取有限域Z,及有限域Z中的2個(gè)整數(shù)p1,p2。(1-1-3)在有限域Z上選取如下整數(shù):(β11,β12)、(β21,β22)和(x1,x2)。令a11=β11,a12=β12p1,a21=β21,a22=β22p2。(1-1-4)構(gòu)造矩陣A=(aij),其中,i=1,2,j=1,…,n,j>2時(shí),(1-2)通過(guò)混淆或擴(kuò)散方式F得到向量d=(d1,d2,…,dj,…,dn),其中,dj通過(guò)如下方式求解:(A1)選取整數(shù)t,s,γ,c,δ,h,使其同時(shí)滿足以下3個(gè)條件:(a)γc-δ<max(s,t)<δ;(b)2.2<h<n-2;(c)gcd(R1,R3)=1。其中,R1=δ(X+Y)m+c,R3=1+γ(X+Y)m,m=p1p2-1,e=tp1p2-1。其中,選取正整數(shù)R2,使R2|(R1-1),gcd(R2,R3)=1,且R2>c,構(gòu)造矩陣K3×2和矩陣D2×3,選擇任意正整數(shù)z1,z2。(A2)計(jì)算矩陣C=K·A=(cyj),y=1,2,3。(A3)選取3個(gè)整數(shù)P1=R1,P2=R2R3,P3=R1R3。(A4)求解同余方程組如果P1、P2和P3不是兩兩互素,具體計(jì)算公式為:dj=(s+γR1-R1R3δ)a1j+(s+t+γR1-R1R3δ)a2jmodN(1-3)將d=(d1,...,dn)和h一起作為公鑰,將β11,β12,β21,β22,D,P1,P2,P3,p1,p2,x1,x2,t一起作為對(duì)應(yīng)的私鑰。(2)用公鑰加密。進(jìn)一步包括如下步驟:(2-1)獲取明文M=(m1,m2,…,mj,…,mn),選定隨機(jī)參數(shù)ε。(2-2)用步驟(1)得到的公鑰對(duì)明文進(jìn)行加密,得到密文C為:(3)用私鑰解密。進(jìn)一步包括如下步驟:(3-1)求解同余方程組(3-2)計(jì)算(3-3)通過(guò)同步方法獲取ε。同步的方法有很多,如外同步等。通信雙方在同步的情況下即可獲取參數(shù)ε。(3-4)通過(guò)SA1,SA2和ε求解得到明文M=(m1,m2,…,mj,…,mn)。進(jìn)一步包括如下步驟:(3-4-1)根據(jù)私鑰β11,β12,β21,β22,p1,p2,當(dāng)j>2時(shí),利用公式計(jì)算參數(shù)(β13,…,β1n)以及(β23,…,β2n)。(3-4-2)當(dāng)j=1時(shí),計(jì)算和得到m1為模p1p2下的唯一解。(3-4-3)當(dāng)j=2,...,h時(shí),計(jì)算和得到mj為模p1p2下的唯一解。(3-4-4)當(dāng)j=h+1時(shí),計(jì)算和得到mh+1為模p1p2下的唯一解。(3-4-5)當(dāng)j=h+2,…,n時(shí),計(jì)算和得到mj為模p1p2下的唯一解。實(shí)施例3本方法包括如下步驟:(1)生成密鑰。進(jìn)一步包括如下步驟:(1-1)采用迭代方式構(gòu)造k×n維滿秩矩陣A。進(jìn)一步包括如下步驟:(1-1-1)確定k=2,n=4。(1-1-2)選取有限域Z,及有限域Z中的2個(gè)整數(shù)數(shù)p1=3,p2=7。(1-1-3)選取有限域Z上的如下整數(shù):β11=28,β12=10,β21=345,β22=52,x1=5,x2=9。令a11=β11p1=84,a21=β21p2=2415,(1-1-4)構(gòu)造矩陣A=(aij),其中,i=1,2,j=1,…,4,j>2時(shí),(1-2)通過(guò)混淆或擴(kuò)散方式F得到向量d=(d1,d2,d3,d4),向量dj通過(guò)如下方式求解:(A1)構(gòu)造矩陣K3×2和矩陣D2×3:選取整數(shù)t=1,s=4,γ=3,δ=2,h=2,c=1。R1=6393481,R2=2,R3=9590221。(A2)計(jì)算矩陣C=K·A=(cyj),y=1,2,3。(A3)選取3個(gè)整數(shù)P1=R1,P2=R2R3,P3=R1R3:P1=6393481,P2=19180442,P3=61314895749301。(A4)計(jì)算得到d=[47931939468,50598021734,100754893236,47605871855](1-3)將d,N=122629791498602,h=2一起作為公鑰,將β11=28,β12=10,β21=345,β22=52,D,P1=6393481,P2=19180442,P3=61314895749301,p1=3,p2=7,x1=5,x2=9,t=1作為對(duì)應(yīng)的私鑰。(2)用公鑰加密。進(jìn)一步包括如下步驟:(2-1)設(shè)給定明文M=[1,11,3,2],選定隨機(jī)參數(shù)ε=3。(2-2)用步驟(1)得到的公鑰對(duì)明文進(jìn)行加密,得到密文C為:(3)用私鑰解密。進(jìn)一步包括如下步驟:(3-1)計(jì)算(3-2)計(jì)算(3-3)通過(guò)解密方法獲取ε:計(jì)算得ε=3。(3-4)通過(guò)SA1,SA2和ε求解得到明文M=(m1,m2,…,mj,…,mn)。進(jìn)一步包括如下步驟:(3-4-1)根據(jù)私鑰β11,β12,β21,β22,p1,p2,當(dāng)j>2時(shí),利用公式計(jì)算參數(shù)(3-4-2)當(dāng)j=1時(shí),計(jì)算和得m1=1。(3-4-3)當(dāng)j=2時(shí),計(jì)算和得m2=11。(3-4-4)當(dāng)j=3時(shí),計(jì)算和得m3=3。(3-4-5)當(dāng)j=4時(shí),計(jì)算和得m4=2。本領(lǐng)域的技術(shù)人員容易理解,以上所述僅為本發(fā)明的較佳實(shí)施例而已,并不用以限制本發(fā)明,凡在本發(fā)明的精神和原則之內(nèi)所作的任何修改、等同替換和改進(jìn)等,均應(yīng)包含在本發(fā)明的保護(hù)范圍之內(nèi)。