專利名稱:一種快速公鑰密碼算法及其對(duì)應(yīng)的數(shù)字簽名的制作方法
技術(shù)領(lǐng)域:
本發(fā)明屬于信息加密領(lǐng)域,特別涉及到一種快速公鑰密碼算法及其對(duì)應(yīng)的數(shù)字簽名。
背景技術(shù):
密碼算法是信息安全的核心技術(shù),重要的密碼算法都被授予過專利。目前國際上使用較多的公鑰密碼算法主要有基于因數(shù)分解問題的RSA和Rabin公鑰密碼算法、基于離散對(duì)數(shù)問題的E1Gamal公鑰密碼算法以及基于橢圓曲線離散對(duì)數(shù)問題的公鑰密碼算法。研制具有自主知識(shí)產(chǎn)權(quán)的新的公鑰密碼算法這一課題的提出是因?yàn)?a)現(xiàn)有公鑰密碼算法多數(shù)依賴大指數(shù)乘方運(yùn)算實(shí)現(xiàn)加、解密,計(jì)算量大,難以在簡(jiǎn)單設(shè)備如IC卡中實(shí)現(xiàn);(b)采用現(xiàn)有公鑰密碼算法構(gòu)成的公鑰基礎(chǔ)設(shè)施多數(shù)需要外部系統(tǒng)提供公鑰目錄支持及密鑰備份支持,有些公鑰密碼算法雖有自托管能力或支持基于身份的加密,但實(shí)施難度大。
發(fā)明內(nèi)容
本發(fā)明需要解決的技術(shù)問題是研究出一種新的公鑰密碼算法,使之(a)加、解密方法簡(jiǎn)單且高效;(b)允許用戶通過追加簡(jiǎn)單的身份標(biāo)識(shí)共享數(shù)字證書中的公鑰值;(c)支持基于身份的加密和簽名;(d)具有密鑰自恢復(fù)能力。本發(fā)明的目的,是通過引入一個(gè)新的公鑰密碼函數(shù)實(shí)現(xiàn)的,其特征是(a)采用m=[m1,m2]T表示一個(gè)信息,其中m1,m2是兩個(gè)正整數(shù),m對(duì)應(yīng)的密碼為c=(m1b+m2Ab+A2b)ψ(m)-1(mod n),(1)其中A,b分別是一個(gè)2×2矩陣和一個(gè)2×1矩陣,ψ(m)是(m1+m2A+A2)(mod n)對(duì)應(yīng)的行列式值,即ψ(m)=det(m1+m2A+A2)(mod n);
(b)A可分解為A=Hdiag(λ1,λ2)H-1(mod n),其中λ1≠λ2,其特征多項(xiàng)式為det(λI-A)=(λ-λ1)(λ-λ2)(mod n)=[λ2-(λ1+λ2)λ+λ1λ2](mod n)=(λ2-σ1λ+σ2)(mod n);(c)模數(shù)n取為若干大數(shù)素的積,如n=pq,p和q構(gòu)成主密鑰,λ1和λ2構(gòu)成輔密鑰,主密鑰和輔密鑰均可用于獨(dú)立完成解密或簽名;(d)摸數(shù)n為主公鑰,A的特征多項(xiàng)式的系數(shù)為輔公鑰,如果用戶使用不同的摸數(shù),則用戶公鑰由主公鑰和輔公鑰共同組成,即(n,σ1,σ2),如果所有用戶使用相同的摸數(shù),則用戶公鑰單獨(dú)由輔公鑰構(gòu)成,即(σ1,σ2);(e)使用輔密鑰解密時(shí),根據(jù)λ1和λ2算得H和H-1,在(1)兩邊左乘H-1,使其成為H-1c=diag[(m1+m2λ1+λ12)ψ(m)-1,(m1+m2λ2+λ22)ψ(m)-1]H-1c(mod n)并通過約去分子和分母的共同因子將其簡(jiǎn)化,使之成為一個(gè)低難度方程組,進(jìn)而求解。
本發(fā)明的有益效果是能夠提高公鑰密碼體制的加、解密速度,使其得以在簡(jiǎn)單電子器件中實(shí)現(xiàn),支持?jǐn)?shù)字證書共享,并能夠以較小代價(jià)支持基于身份的加密和簽名,建立具有自托管能力的公鑰基礎(chǔ)設(shè)施。
四
附圖是實(shí)施本發(fā)明所需要的模塊及其相互之間邏輯關(guān)系的框圖。
五具體實(shí)施例方式
以下結(jié)合附圖,對(duì)本發(fā)明的具體實(shí)施方法進(jìn)行詳細(xì)的說明。我們并對(duì)基本加、解密算法進(jìn)行了一些簡(jiǎn)化和改進(jìn)。(一)主密鑰產(chǎn)生及公共摸數(shù)制作。該模塊產(chǎn)生秘密素?cái)?shù)p和q,并計(jì)算公共模數(shù)n=pq;(二)輔密鑰制作及恢復(fù)。輔密鑰制作方法有如下兩種1.采用隨機(jī)數(shù)發(fā)生器隨機(jī)產(chǎn)生λ1和λ2,對(duì)應(yīng)的輔公鑰按如下兩個(gè)公式計(jì)算
σ1=(λ1+λ2)(mod n), (2)σ2=(λ1+λ2)(mod n); (3)2.σ1和σ2根據(jù)用戶身份選定,輔密鑰(λ1,λ2)通過求解以下方程獲得(λ2-σ1λ+σ2)(mod n)=0, (4)輔密鑰的恢復(fù)方法與第二種輔密鑰制作方法相同。在n的素?cái)?shù)因子已知的條件下,已有公知的方法可用于求解方程(4)。(三)加密。本模塊采用公鑰實(shí)現(xiàn)信息加密。主要步驟有1.把信息分解為兩個(gè)小于n的正整數(shù)m1和m2;2.按如下兩個(gè)公式計(jì)算密碼c=[c1c2]Tc1=(2m1+σ1m2+σ12-2σ2)ψ-1(m1,m2)(mod n), (5)c2=(m2+σ1)ψ-1(m1,m2)(mod n), (6)其中ψ(m1,m2)=[m12+σ1m1m2+σ2m22+(σ12-2σ2)m1+σ1σ2m2+σ22](mod n);(四)解密。本模塊采用輔密鑰實(shí)現(xiàn)信息解密,主要步驟有1.根據(jù)(2)和(3),把(5)和(6)改寫為c1=[(m1+m2λ2+λ22)-1+(m1+m2λ1+λ12)-1](mod n),(7)(λ1-λ2)c2=[(m1+m2λ2+λ22)-1-(m1+m2λ1+λ12)-1](mod n),(8)通過對(duì)(7)和(8)兩式進(jìn)行相加和相減可得2(m1+m2λ2+λ22)-1(mod n)=[c1+(λ1-λ2)c2](mod n),(9)2(m1+m2λ1+λ12)-1(mod n)=[c1-(λ1-λ2)c2](mod n),(10)2.計(jì)算μ1={2[c1-(λ1-λ2)c2]-1-λ12}(mod n), (11)μ2={2[c1+(λ1-λ2)c2]-1-λ22}(mod n); (12)3.將(11)和(12)代入(9)和(10)獲得(m1+m2λ1)(mod n)=μ1, (13)(m1+m2λ2)(mod n)=μ2; (14)4.從以上方程組中解出m1和m2,完成用戶信息解密m1=(λ1-λ2)-1(λ1μ2-λ2μ1)(mod n), (15)m2=(λ1-λ2)-1(μ1-μ2)(mod n)。
(16)(五)數(shù)字簽名。以下為簽名步驟1.用m1,m2表示待簽名信息;2.建立如下方程
m1=(2k1+σ1k2+σ12-2σ2)ψ-1(k1,k2)(mod n), (17)m2=(k2+σ1)ψ-1(k1,k2)(mod n), (18)其中ψ(k1,k2)=[k12+σ1k1k2+σ2k22+(σ12-2σ2)k1+σ1σ2k2+σ22](mod n);3.用(四)介紹的方法求解k1,k2,并以(k1,k2)作為對(duì)(m1,m2)的簽名。(六)簽名驗(yàn)證。以下為數(shù)字簽名的驗(yàn)證步驟1.按以下公式由k1,k2算出z1,z2,z1=(2k1+σ1k2+σ12-2σ2)ψ-1(k1,k2)(mod n),(19)z2=(k2+σ1)ψ-1(k1,k2)(mod n), (20)其中ψ(k1,k2)=[k12+σ1k1k2+σ2k22+(σ12-2σ2)k1+σ1σ2k2+σ22](mod n);2.比較(z1,z2)和(m1,m2),如果相同,則接受簽名,否則予以拒絕。(七)數(shù)字證書共享。實(shí)施要點(diǎn)為以模數(shù)n作為證書的公鑰值,為不同用戶選擇不同的(σ1,σ2)并從(4)解得對(duì)應(yīng)的(λ1,λ2),σ1和σ2為簡(jiǎn)單字符串,可通過電話、傳真或網(wǎng)絡(luò)手段提供給通信對(duì)方,也可作為用戶名或二級(jí)用戶名提供給系統(tǒng)。
權(quán)利要求
1.一種公鑰密碼算法,其特征在于(a)采用m=[m1,m2]T表示一個(gè)信息,其中m1,m2是兩個(gè)正整數(shù),m對(duì)應(yīng)的密碼為c=(m1b+m2Ab+A2b)ψ(m)-1(mod n),(1)其中A,b分別是一個(gè)2×2矩陣和一個(gè)2×1矩陣,ψ(m)=det(m1+m2A+A2)(mod n);(b)A可分解為A=Hdiag(λ1,λ2)H-1(mod n),其中λ1≠λ2;(c)模數(shù)n取為若干大數(shù)素的積,如n=pq,p和q構(gòu)成主密鑰,λ1和λ2構(gòu)成輔密鑰,主密鑰和輔密鑰均可用于獨(dú)立完成解密或簽名;(d)摸數(shù)n為主公鑰,A的特征多項(xiàng)式的系數(shù)為輔公鑰,如果用戶使用不同的摸數(shù),則用戶公鑰由主公鑰和輔公鑰共同組成,如果所有用戶使用相同的摸數(shù),則用戶公鑰單獨(dú)由輔公鑰構(gòu)成;(e)使用輔密鑰解密時(shí),根據(jù)λ1和λ2算得H和H-1,在(1)兩邊左乘H-1,使其成為H-1c=diag[(m1+m2λ1+λ12)ψ(m)-1,(m1+m2λ2+λ22)ψ(m)-1]H-1c(mod n)并通過約去分子和分母的共同因子將其簡(jiǎn)化,使之成為一個(gè)低難度方程,進(jìn)而求解。
2.如權(quán)利要求1所述的公鑰密碼算法的改進(jìn)實(shí)施方法,其特征在于(a)明文為m=[m1m2]T,密碼c=[c1c2]T按以下公式計(jì)算c1=(2m1+σ1m2+σ12-2σ2)ψ-1(m1,m2)(mod n), (5)c2=(m2+σ1)ψ-1(m1,m2)(mod n), (6)其中σ1和σ2滿足σ1=(λ1+λ2)(mod n), (2)σ2=(λ1λ2)(mod n); (3)ψ(m1,m2)=[m12+σ1m1m2+σ2m22+(σ12-2σ2)m1+σ1σ2m2+σ22](mod n),n=pq,p和q為大數(shù)素;(b)摸數(shù)n為主公鑰,(σ1,σ2)為輔公鑰,如果用戶使用不同的摸數(shù),則用戶公鑰為(n,σ1,σ2),如果所有用戶使用相同的摸數(shù),則用戶公鑰為(σ1,σ2);(c)p和q構(gòu)成主密鑰,λ1和λ2構(gòu)成輔密鑰,主密鑰和輔密鑰均可獨(dú)立完成解密和簽名;(c)使用輔密鑰解密時(shí)先根據(jù)(2)和(3),把(5)和(6)改寫為c1=[(m1+m2λ2+λ22)-1+(m1+m2λ1+λ12)-1](mod n),(7)(λ1-λ2)c2=[(m1+m2λ2+λ22)-1-(m1+m2λ1+λ12)-1](mod n);(8)通過對(duì)(7)和(8)兩式進(jìn)行相加和相減獲得如下兩個(gè)新的方程2(m1+m2λ2+λ22)-1(mod n)=[c1+(λ1-λ2)c2](mod n),(9)2(m1+m2λ1+λ12)-1(mod n)=[c1-(λ1-λ2)c2](mod n),(10)并將他們轉(zhuǎn)化為(m1+m2λ1)(mod n)=μ1, (13)(m1+m2λ2)(mod n)=μ2; (14)其中μ1={2[c1-(λ1-λ2)c2]-1-λ12}(mod n), (11)μ2={2[c1+(λ1-λ2)c2]-1-λ22}(mod n); (12)再求解(13)和(14)構(gòu)成的線性方程組獲得m1和m2。
3.如權(quán)利要求1或2所述的公鑰密碼算法對(duì)應(yīng)的簽名及其驗(yàn)證算法,其特征在于對(duì)信息簽名時(shí)先求解如下聯(lián)立方程獲得k1,k2,m1=(2k1+σ1k2+σ12-2σ2)ψ-1(k1,k2)(mod n), (17)m2=(k2+σ1)ψ-1(k,k2)(mod n), (18)其中ψ(k1,k2)=[k12+σ1k1k2+σ2k22+(σ12-2σ2)k1+σ1σ2k2+σ22](mod n)m1,m2表示待簽名信息,并以(k1,k2)作為對(duì)(m1,m2)的簽名;驗(yàn)證簽名時(shí)先按如下兩個(gè)方程計(jì)算z1,z2z1=(2k1+σ1k2+σ12-2σ2)ψ-1(k1,k2)(mod n), (19)z2=(k2+σ1)ψ-1(k1,k2)(mod n), (20)并將(z1,z2)和(m1,m2)比較,以決定是否接受簽名。
全文摘要
一種公鑰密碼算法及其對(duì)應(yīng)的數(shù)字簽名,其特點(diǎn)是加、解密算法簡(jiǎn)單,速度快,允許用戶通過追加簡(jiǎn)單的身份標(biāo)識(shí)共享數(shù)字證書中的公鑰值,支持基于身份的加密,并具有密鑰自恢復(fù)能力。
文檔編號(hào)H04L9/00GK1476196SQ0310210
公開日2004年2月18日 申請(qǐng)日期2003年2月8日 優(yōu)先權(quán)日2002年5月28日
發(fā)明者鄭建德 申請(qǐng)人:鄭建德