專利名稱:基于小特征的雙曲數(shù)字簽名方法
技術(shù)領(lǐng)域:
本發(fā)明屬于一種用于計算機信息安全的數(shù)字簽名方法,尤其是一種基于小特征的雙曲數(shù)字簽名方法。
現(xiàn)有數(shù)字簽名方法,如著名的RSA數(shù)字簽名方法,它是基于數(shù)學(xué)中的大數(shù)分解困難,假設(shè)有兩個素數(shù)P、Q,有N=PQ,當N足夠大時,由N得出P、Q在數(shù)學(xué)上是相當困難的;但如今隨著科學(xué)技術(shù)的發(fā)展,對大數(shù)快速分解方法的研究已經(jīng)得出許多新成果,再加上計算技術(shù)及計算機的發(fā)展,大數(shù)分解的難度在不斷地降低,為了達到相應(yīng)級別的安全性能要求,就會使得數(shù)學(xué)運算位逐漸加長,從上世紀80年代的512位、90年代的1024位到現(xiàn)在的2048位,一個算法的密鑰過長,其相關(guān)素數(shù)生成困難,并會占用龐大的計算機資源,運算過程過慢,為了加快運算速度而采用硬件實現(xiàn)時,數(shù)位的過長也會使得費用極其昂貴,另外由于硬件實現(xiàn)方式的不可更改性,硬件開發(fā)和使用壽命將大大縮短,運行成本極高。
為解決上述技術(shù)問題,本發(fā)明采用的技術(shù)方案是一種基于小特征的雙曲數(shù)字簽名方法,包括有以下步驟,假設(shè)發(fā)件人是A,收件人是B,明文為m,小特征為P,α為多項式XP-X-1在含有P個元素的伽羅瓦域FP上的零點,參數(shù)為c,檢驗參數(shù)為Q1、Q2,①發(fā)件人A利用硬件進行的操作為a隨機生成私鑰X1和X2,取數(shù)對(X1,X2)為私鑰X1=Σi=0P-1aiPi]]>X2=Σi=0P-1biPi]]>其中有Σi=0P-1ai<P]]>Σi=0P-1bi<P]]>b對所生成的私鑰進行安全化檢驗,所述安全化檢驗是判斷Q1能否整除X1或Q2能否整除X2,如果有其中一個判斷是否定的,那么需要重新生成私鑰X1和X2。
c生成公鑰Y1=(cα)X1,Y2=(cα)X2,取(Y1,Y2)為相應(yīng)于私鑰(X1,X2)的公鑰,Y1、Y2表示為在含有P個元素的伽羅瓦域上的α的多項式;d對明文m取文摘數(shù)對(d1,d2),及形成簽名數(shù)對(r,s),先在非負整數(shù)域內(nèi)隨機取k和k-1,并滿足條件k k-1≡1(mod PP-1),得出簽名數(shù)對的一個分量r,r為 然后將所得的R0,…,Rp-1順序加入到明文m中產(chǎn)生一新的明文,記為m1(R0,…,Rp-1),用文摘函數(shù)MD5和SHA1對明文m1進行運算,得出相應(yīng)的文摘數(shù)對(d1,d2),其中d1=Md5(m1(R0,…,Rp-1)),d2=SHA1(m1(R0,…,Rp-1)),再令 s≡k-1(X1d1+X2d2)(mod PP-1),得出簽名數(shù)對另一分量s,由此簽名數(shù)對(r,s)形成;其中r為在含有P個元素的伽羅瓦域上的多項式,系數(shù)為R0,…,Rp-1,而s為一個整數(shù);e向B發(fā)送公鑰數(shù)對,簽名數(shù)對和明文。
②收件人B利用硬件進行的操作是a接收從A發(fā)來的公鑰數(shù)對(Y*1,Y*2),簽名數(shù)對(r*,s*)和明文m*;b將接收到簽名數(shù)對的r*中的系數(shù)R0,…,Rp-1加入到B所接收的明文m*中產(chǎn)生一新的明文,記為m*1(R0,…,Rp-1),用文摘函數(shù)MD5和SHA1對明文m*1進行運算,得出相應(yīng)的文摘數(shù)對(d*1,d*2),其中d*1=Md5(m*1(R0,…,Rp-1)),d*2=SHA1(m*1(R0,…,Rp-1));c驗證等式,取verL(r*,s*)=r*S*∈FP[α],verR(m*,r*,Y*1,Y*2)=Y(jié)*1d*1Y*2d*2如果上述等式中verL(r*,s*)=verR(m*,r*,Y*1,Y*2),表明驗證通過,所收到的明文m*為A所發(fā)出的明文m。
所述發(fā)件人A可將公鑰數(shù)對(Y1,Y2)制成X.509證書后,再發(fā)送到收件人B。
由于采取了上述的方案,本發(fā)明與現(xiàn)有技術(shù)相比所具有的優(yōu)點是1、由于本方案利用兩個文摘函數(shù)對已隨機化的明文取文摘數(shù)對,且通過私鑰對文摘數(shù)對的雙曲作用而形成簽名,使小特征的位數(shù)和安全性能之間呈現(xiàn)指數(shù)增長比例,所以既保證了相當高的安全級別,又減少了對計算機資源的占用,提高生成相關(guān)素數(shù)運算速度,縮短簽名認證時間,從而降低開發(fā)費用和運行成本;
2、由于本方法對私鑰數(shù)對進行安全化處理,能防止“生日攻擊”。
設(shè) 則
因此α的階M0一定是M的因子。
又因Σi=0P-1Pi≡P≡1(modP-1)]]>所以M與p-1互素,從而M0作為M的因子也與p-1互素。如果取FP的一個原根c,則c的階等于P-1,于是cα的階等于P-1與M的最小公倍數(shù),即為(P-1)M。特別當α的階等于M時,cα就是Galois域FP[α]的原根。
如
圖1所示,本發(fā)明基于小特征的雙曲數(shù)字簽名方法,由以下幾個步驟組成,生成密鑰、生成簽名和文摘、驗證簽名組成,如圖2所示,生成密鑰的過程分為生成私鑰和生成公鑰兩個部分組成,公鑰可為多項式數(shù)對,可以由該多項式數(shù)對生成X.509證書;如圖3所示,生成簽名和文摘是由取出私鑰、隨機化簽名數(shù)對第一分量、生成文摘數(shù)對和生成簽名數(shù)對第二分量組成;如圖4所示,驗證簽名有相容性驗證和防偽造驗證兩部分。
假設(shè)發(fā)件人是A,收件人是B,明文為m,小特征為P,α為多項式XP-X-1在含有P個元素的伽羅瓦域FP上的零點,參數(shù)為c,檢驗參數(shù)為Q1、Q2,①發(fā)件人A利用由私鑰生成模塊、公鑰生成模塊和驗證模塊組成的硬件進行的操作為a隨機生成私鑰X1和X2,取數(shù)對(X1,X2)為私鑰X1=Σi=0P-1aiPi]]>X2=Σi=0P-1biPi]]>其中有Σi=0P-1ai<P]]>Σi=0P-1bi<P]]>b對所生成的私鑰進行安全化檢驗,所述安全化檢驗是判斷Q1能否整除X1或Q2能否整除X2,如果有其中一個判斷是否定的,那么需要重新生成私鑰X1和X2。
c生成公鑰Y1=(cα)X1,Y2=(cα)X2,取(Y1,Y2)為相應(yīng)于私鑰(X1,X2)的公鑰,Y1、Y2表示為在含有P個元素的伽羅瓦域上的α的多項式;d對明文m取文摘數(shù)對(d1,d2),及形成簽名數(shù)對(r,s),先在非負整數(shù)域內(nèi)隨機取k和k-1,并滿足條件k k-1≡1(mod PP-1),得出簽名數(shù)對的一個分量r, 然后將所得的R0,…,RP-1順序加入到明文m中產(chǎn)生一新的明文,記為m1(R0,…,RP-1),用文摘函數(shù)MD5(Microsoft digest5)和SHA1(Security Hash Algorithm 1)對明文m1進行運算,得出相應(yīng)的文摘數(shù)對(d1,d2),其中d1=Md5(m1(R0,…,Rp-1)),d2=SHA1(m1(R0,…,Rp-1)),再令 s≡k-1(X1d1+X2d2)(mod pP-1),得出簽名數(shù)對另一分量s,由此簽名數(shù)對(r,s)形成。
e向B發(fā)送公鑰數(shù)對,簽名數(shù)對和文摘數(shù)對。
②收件人B利用硬件進行的操作是a接收從A發(fā)來的公鑰數(shù)對(Y*1,Y*2),簽名數(shù)對(r*,s*)和明文m*;b將接收到簽名數(shù)對的r*中的系數(shù)R0,…,Rp-1加入到B所接收的明文m*中產(chǎn)生一新的明文,記為m*1(R0,…,Rp-1),用文摘函數(shù)MD5和SHA1對明文m*1進行運算,得出相應(yīng)的文摘數(shù)對(d*1,d*2),其中d*1=Md5(m*1(R0,…,Rp-1)),d*2=SHA1(m*1(R0,…,Rp-1));c驗證等式,取
verL(r*,s*)=r*S*∈FP[α],verR(m*,r*,Y*1,Y*2)=Y(jié)*1d*1Y*2d*2如果上述等式中verL(r*,s*)=verR(m*,r*,Y*1,Y*2),表明驗證通過,所收到的明文m*為A所發(fā)出的明文m。
發(fā)件人A可將公鑰數(shù)對(Y1,Y2)制成X.509證書后,再發(fā)送到收件人B,收件人B的步驟和驗證等式不變。
簽名數(shù)對的第二分量s是文摘數(shù)對經(jīng)私鑰數(shù)對的雙曲作用并與隨機因子k-1的積,私鑰數(shù)對對文摘數(shù)對的雙曲作用(X1,X2)o(d1,d2)可定義為X1d1+X2d2;本方案中的文摘也是隨機的,這一點可以從上述的文摘數(shù)對的形成看出。
相對于RSA,其模的位數(shù)與安全性能之間呈多項式比例增長關(guān)系,我們的方案最大優(yōu)越之處是模的位數(shù)與安全性能之間呈指數(shù)增長比例,這一點,在密碼工程實踐中具有非常重要的意義。為了說明我們方案的這一特點,與RSA作一比較假定RSA的模數(shù)為1024位的,實施成功攻擊的最大可能計算量是21024;而本方案模數(shù)只要為8位的,則可達到RSA相應(yīng)的安全性,因為在我們的方案中,實施成功攻擊的最大可能計算量的公式為(2n)^{2n},其中n為模數(shù)的位數(shù)。
本發(fā)明的實現(xiàn)需要借助一個物理實體,該實體可以是一臺計算機或是一個專用芯片,它至少應(yīng)該包括私鑰模塊的電路、公鑰產(chǎn)生硬件電路、簽名數(shù)對中r的產(chǎn)生模塊和驗證模塊硬件電路。
如圖5所示,私鑰模塊的電路由隨機數(shù)發(fā)生器、求余電路、系數(shù)產(chǎn)生電路、∑電路、MUX和緩沖器等模塊組成。模塊工作時首先輸入素數(shù)P至隨機數(shù)發(fā)生電路,該電路產(chǎn)生一個隨機數(shù)n1′;n1′與輸入的q1求余,并判斷余數(shù)是否為0;余數(shù)為0時,系數(shù)產(chǎn)生電路開始工作,把n1′分解為多項式,并產(chǎn)生系數(shù)送至求和電路,判斷是否滿足約束2,如滿足則選通MUX,私鑰n1由緩沖器輸出。
如圖6所示,公鑰產(chǎn)生硬件電路由循環(huán)FFT(快速傅立葉變換)運算核、RAM(隨機存儲器)、運算電路、輸出緩存、控制電路等模塊組成。產(chǎn)生的私鑰由FFT運算核完成多項式相乘,并把運算的中間值暫存至RAM中,由運算電路輔助完成系數(shù)的求解。最后把系數(shù)(公鑰)送入緩存并串行輸出。簽名數(shù)對中r的產(chǎn)生模塊與公鑰產(chǎn)生硬件電路相同。
如圖7所示,驗證模塊硬件電路由輸入緩沖、Md5運算核、SHA運算核、簽名數(shù)對S產(chǎn)生模塊、循環(huán)FFT運算核1,2、存儲器A,B、比較器及控制電路組成。首先由r經(jīng)過Md5、SHA運算核后產(chǎn)生文摘數(shù)對d1、d2,并由此產(chǎn)生簽名數(shù)對之一S。再由兩個循環(huán)FFT運算核分別對文摘數(shù)對、簽名數(shù)對和私鑰進行運算,并對其產(chǎn)生的結(jié)果通過比較器進行比較,比較結(jié)果由標志位輸出。
權(quán)利要求
1.一種基于小特征的雙曲數(shù)字簽名方法,其特征在于它包括有以下步驟,假設(shè)發(fā)件人是A,收件人是B,明文為m,小特征為P,α為多項式XP-X-1在含有P個元素的伽羅瓦域FP上的零點,參數(shù)為c,檢驗參數(shù)為Q1、Q2,①發(fā)件人A利用硬件進行的操作為a隨機生成私鑰X1和X2,取數(shù)對(X1,X2)為私鑰X1=Σi=0P-1aiPi]]>X2=Σi=0P-1biPi]]>其中有Σi=0P-1ai<P]]>Σi=0P-1bi<P]]>b對所生成的私鑰進行安全化檢驗,所述安全化檢驗是判斷Q1能否整除X1或Q2能否整除X2,如果有其中一個判斷是否定的,那么需要重新生成私鑰X1和X2;c生成公鑰Y1=(cα)X1,Y2=(cα)X2,取(Y1,Y2)為相應(yīng)于私鑰(X1,X2)的公鑰,Y1、Y2表示為在含有P個元素的伽羅瓦域上的α的多項式;d對明文m取文摘數(shù)對(d1,d2),及形成簽名數(shù)對(r,s),先在非負整數(shù)域內(nèi)隨機取k和k-1,并滿足條件k k-1≡1(mod PP-1),得出簽名數(shù)對的一個分量r,r為 然后將所得的R0,…,Rp-1順序加入到明文m中產(chǎn)生一新的明文,記為m1(R0,…,Rp-1),用文摘函數(shù)MD5和SHA1對明文m1進行運算,得出相應(yīng)的文摘數(shù)對(d1,d2),其中d1=Md5(m(R0,…,Rp-1)),d2=SHA1(m(R0,…,Rp-1)),再令s≡k-1(X1d1+X2d2)(mod pP-1),得出簽名數(shù)對另一分量s,由此簽名數(shù)對(r,s)形成,其中r為在含有P個元素的伽羅瓦域上的α的多項式,系數(shù)為R0,…,RP-1,而s為一個整數(shù);e向B發(fā)送公鑰數(shù)對,簽名數(shù)對和明文;②收件人B利用硬件進行的操作是a接收從A發(fā)來的公鑰數(shù)對(Y*1,Y*2),簽名數(shù)對(r*,s*)和明文m*;b將接收到簽名數(shù)對的第一分量r*中的系數(shù)R0,…,Rp-1加入到B所接收的明文m*中產(chǎn)生一新的明文,記為m*1(R0,…,Rp-1),用文摘函數(shù)MD5和SHA1對明文m*1進行運算,得出相應(yīng)的文摘數(shù)對(d*1,d*2),其中d*1=Md5(m*1(R0,…,Rp-1)),d*2=SHA1(m*1(R0,…,Rp-1));c驗證等式,取verL(r*,s*)=r*S*∈ FP[α],verR(m*,r*,Y*1,Y*2)=Y(jié)*1d*1Y*2d*2如果上述等式中verL(r*,s*)=verR(m*,r*,Y*1,Y*2),表明驗證通過,所收到的明文m*為A所發(fā)出的明文m。
2.根據(jù)權(quán)利要求1所述的基于小特征的雙曲數(shù)字簽名方法,其特征在于所述發(fā)件人A可將公鑰數(shù)對(Y1,Y2)制成X.509證書后,再發(fā)送到收件人B。
全文摘要
本發(fā)明公開了一種基于小特征的雙曲數(shù)字簽名方法,它包括有以下步驟,假設(shè)發(fā)件人是A,收件人是B,明文為m,①發(fā)件人A利用硬件進行的操作為隨機生成私鑰數(shù)對(X
文檔編號H04L9/32GK1391168SQ0213617
公開日2003年1月15日 申請日期2002年7月24日 優(yōu)先權(quán)日2002年7月24日
發(fā)明者汪振華, 陳志杰 申請人:上海氯堿化工股份有限公司, 上海燕托計算機有限公司