專利名稱:一種加密/解密和簽名方法及系統(tǒng)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及電子商務(wù)應(yīng)用領(lǐng)域,特別涉及一種應(yīng)用二次背包問題進行加密/解密和簽名的方法及系統(tǒng)。
背景技術(shù):
公鑰密碼是現(xiàn)代保密通信使用的一種基本工具。這一體制的最大特點是采用兩個密鑰將加密和解密分開一個公開作為加密密鑰,另一個為用戶專用,作為解密密鑰。通信雙方無須事先交換密鑰就可以進行保密通信。要從公鑰或密文分析出明文或私鑰,在計算上是不可行的。若以公鑰作為加密密鑰,私鑰作為解密密鑰,則可實現(xiàn)多個用戶加密的消息只能由一個用戶解讀;反之,以私鑰作為加密密鑰,而以公鑰作為解密密鑰,則可實現(xiàn)由一個用戶加密的消息可使多個用戶解讀。前者可用于保密通信,后者可用于數(shù)字簽名。
公鑰密碼提出以后,人們基于不同的計算問題,提出了大量的公鑰密碼算法。最具代表意義的有1)基于大整數(shù)分解的RSA算法、Rabin算法和由它們的融合得到的改進RSA算法;2)基于離散對數(shù)問題的ElGamal算法和目前被視為可以代替RSA算法的橢圓曲線算法(ECC);3)基于背包問題的MH算法和二次背包問題的曹氏算法。對于第1)種算法,由于大整數(shù)分解的進展和計算能力的提高,為提高安全性,現(xiàn)在的大整數(shù)需要取1024甚至2048bit,這限制了許多應(yīng)用。對于第2)種算法,雖然ECC在獲得與RSA相同安全性時所需密鑰長度小于RSA,同時運算速度也相應(yīng)的較RSA快,但仍然不能適應(yīng)大量的安全性需求。主要原因是由于ECC的參數(shù)選取和運算速度仍然嫌慢,遠(yuǎn)遠(yuǎn)低于對稱密碼算法。對于第3)種算法,眾所周知,背包密碼算法運算速度遠(yuǎn)遠(yuǎn)高于RSA和ECC,甚至高于對稱密碼算法,但是當(dāng)前的一次背包密碼體制基本都是不安全的。二次背包密碼體制(應(yīng)用二次背包問題進行加密、解密的方法)雖然是安全的,但密鑰量太大,一直難以實用。而且至今還沒有人提出一個可以作簽名的二次背包密碼體制。
發(fā)明內(nèi)容
本發(fā)明的目的在于克服現(xiàn)有技術(shù)中存在的一次背包密碼體制不安全性、二次背包密碼體制密鑰計算量大、非背包密碼體制運算速度慢以及無二次背包簽名方法的不足,提供了一種安全、運算速度快的基于二次背包問題的密碼體制。所述技術(shù)方案如下本發(fā)明提供了一種加密/解密方法,所述方法包括以下步驟步驟A設(shè)定系統(tǒng)參數(shù),生成公鑰和私鑰W,m,M,其中R為n階矩陣;步驟B用所述公鑰R對明文x進行加密,加密算法采用二次背包算法xRxT=y(tǒng),生成密文y,其中x=(x1,…,xn)∈{0,1}n;步驟C對所述密文y用所述私鑰W,m,M進行解密,解密算法為計算<my>M=y(tǒng)1,再計算z=<W-1y1>m,然后由z=Σi=1nxi·2i-1]]>得到x=(x1,…,xn)。
所述步驟A具體包括步驟A1隨機選取兩個n×n階矩陣B,C,所述矩陣B為整數(shù)矩陣,所述矩陣C為正整數(shù)矩陣;步驟A2選取W,m,滿足m≥2n,(W,m)=1,即W,m互質(zhì);對于i=1,2,…,n,對W·2i-1取模m非負(fù)最小剩余,即計算ti=<W·2i-1>m;選取M滿足M>Σi=1nti+mΣi=1nΣj=1ncij,(M,m)=1]]>設(shè)定系統(tǒng)私鑰為W,m,M;步驟A3計算λi滿足λi≡m-1ti(modM),i=1,2,…,n令A(yù)=λ1.0.0.λn+MB+C]]>將A的下三角元素依主對角線為對稱軸加到上三角對應(yīng)元素上,所述下三角的元素為零,所得矩陣記為R,設(shè)定系統(tǒng)公鑰為R。
本發(fā)明還提供了一種加密/解密系統(tǒng),所述系統(tǒng)包括設(shè)定系統(tǒng)參數(shù)模塊、加密模塊和解密模塊;
所述設(shè)定系統(tǒng)參數(shù)模塊用于設(shè)定系統(tǒng)參數(shù),生成公鑰R和私鑰W,m,M,其中R為n階矩陣;所述加密模塊用于用所述公鑰R對明文x進行加密,加密算法采用二次背包算法xRxT=y(tǒng),生成密文y;所述解密模塊用于對所述密文y用所述私鑰W,m,M進行解密,解密算法為計算<my>M=y(tǒng)1,再計算z=<W-1y1>m,然后由z=Σi=1nxi·2i-1]]>得到x=(x1,…,xn)。
所述設(shè)定系統(tǒng)參數(shù)模塊具體包括設(shè)定矩陣單元、設(shè)定公鑰和私鑰單元;所述設(shè)定矩陣單元用于隨機選取兩個n×n階矩陣B,C,所述矩陣B為整數(shù)矩陣,所述矩陣C為正整數(shù)矩陣;所述設(shè)定公鑰和私鑰單元用于選取W,m,滿足m≥2n,(W,m)=1,即W,m互質(zhì);對于i=1,2,…,n,對W·2i-1取模m非負(fù)最小剩余,即計算ti=<W·2i-1>m;選取M滿足M>Σi=1nti+mΣi=1nΣj=1ncij,(M,m)=1]]>計算λi,λi滿足λi≡m-1ti(modM),i=1,2,…,n令A(yù)=λ1.0.0.λn+MB+C]]>將A的下三角元素依主對角線為對稱軸加到上三角對應(yīng)元素上,所述下三角的元素為零,所得矩陣記為R,并設(shè)定系統(tǒng)公鑰為R,私鑰為W,m,M。
本發(fā)明還提供了一種簽名方法,所述方法包括以下步驟步驟A′設(shè)定系統(tǒng)參數(shù),生成公鑰R,m,M和私鑰W,其中R為n階矩陣;步驟B′用所述公鑰和私鑰對消息進行簽名,簽名算法如下對于任意消息y,計算哈西函數(shù)值h(y);計算z=<W-1<mh(y)>M>m然后由z=Σi=1nxi·2i-1]]>計算出所述簽名x=(x1,…,xn)∈{0,1}n,
生成簽名消息(y,x)。
所述方法步驟A′具體包括步驟A1′隨機選取兩個n×n階矩陣B,C,所述矩陣B為整數(shù)矩陣,所述矩陣C為正整數(shù)矩陣;步驟A2′選取W,m,滿足m≥2n,(W,m)=1,即W,m互質(zhì);對于i=1,2,…,n,對W·2i-1取模m非負(fù)最小剩余,即計算ti=<W·2i-1>;選取M滿足M>Σi=1nti+mΣi=1nΣj=1ncij,(M,m)=1]]>步驟A3′計算λi滿足λi≡m-1ti(modM),i=1,2,…,n令A(yù)=λ1.0.0.λn+MB+C]]>將A的下三角元素依主對角線為對稱軸加到上三角對應(yīng)元素上,所述下三角的元素為零,所得矩陣記為R;步驟A4′設(shè)定系統(tǒng)公鑰為R,m,M,私鑰為W。
所述簽名方法還包括以下步驟步驟C′用所述公鑰R,m,M對所述簽名消息(y,x)進行驗證,具體驗證方法為判斷等式<mh(y)>M=<m(xRxT)>M(modm)是否成立,如果成立,則簽名有效;否則無效。
本發(fā)明還提供了一種簽名系統(tǒng),所述系統(tǒng)包括設(shè)定系統(tǒng)參數(shù)模塊、簽名模塊和驗證簽名模塊;所述系統(tǒng)參數(shù)設(shè)置模塊設(shè)定系統(tǒng)參數(shù),生成公鑰R,m,M和私鑰W,其中R為n階矩陣;所述簽名模塊用于用所述公鑰和私鑰對消息進行簽名,簽名算法如下對于任意消息y,計算哈西函數(shù)值h(y);計算z=<W-1<mh(y)>M>m,然后由公式z=Σi=1nxi·2i-1,]]>計算出所述簽名x,
生成簽名消息(y,x);所述驗證簽名模塊用于用所述公鑰R,m,M對所述簽名消息(y,x)進行驗證,具體驗證方法為判斷等式<mh(y)>M=<m(xRxT)>M(modm)是否成立,如果成立,則簽名有效;否則無效。
所述設(shè)定系統(tǒng)參數(shù)模塊具體包括設(shè)定矩陣單元、設(shè)定公鑰和私鑰單元;所述設(shè)定矩陣單元用于隨機選取兩個n×n階矩陣B,C,所述矩陣B為整數(shù)矩陣,所述矩陣C為正整數(shù)矩陣;設(shè)定公鑰和私鑰單元用于選取W,m,滿足m≥2n,(W,m)=1,即W,m互質(zhì);對于i=1,2,…,n,對W·2i-1取模m非負(fù)最小剩余,即計算ti=<W·2i-1>m;選取M滿足M>Σi=1nti+mΣi=1nΣj=1ncij,(M,m)=1]]>計算λi滿足λi≡m-1ti(modM),i=1,2,…,n令A(yù)=λ1.0.0.λn+MB+C]]>將A的下三角元素依主對角線為對稱軸加到上三角對應(yīng)元素上,所述下三角的元素為零,所得矩陣記為R;設(shè)定系統(tǒng)公鑰為R,m,M,私鑰為W。
本發(fā)明的有益效果是1.使二次背包密碼體制變得實用化,解決了原有基于一次背包算法的密碼體制不安全性和基于二次背包問題的密碼算法數(shù)據(jù)量過大的問題;2.首次實現(xiàn)了基于二次背包問題的簽名。
3.基于二次背包的密碼體制使得加密和簽名有了更廣闊的應(yīng)用領(lǐng)域。
圖1是本發(fā)明提供的一種加密/解密方法流程圖;
圖2是本發(fā)明提供的一種加密/解密系統(tǒng)示意圖;圖3是本發(fā)明提供的一種簽名方法流程圖;圖4是本發(fā)明提供的一種簽名系統(tǒng)示意圖。
具體實施例方式
下面將參照附圖和實施例對本發(fā)明進行進一步說明,但并不作為對本發(fā)明的限定。
本發(fā)明提出了基于二次背包問題的加密和簽名方法,這里的二次背包問題如下假設(shè)向量x=(x1,…xn)∈{0,1}n,已知矩陣R和向量y,則由公式xRxT=y(tǒng)求解向量x的問題即為二次背包問題。
實施例1參見圖1,本發(fā)明提供了一種加密/解密方法,所述方法步驟如下設(shè)定系統(tǒng)參數(shù),生成公鑰R和私鑰W,m,M,其中R為n階矩陣;具體執(zhí)行步驟如下步驟101設(shè)定系統(tǒng)矩陣,設(shè)Z,N分別是整數(shù)和正整數(shù)的集合,M(Z)和M(N)分別表示元素屬于Z,N的矩陣類。隨機選取兩個n×n階矩陣B和C,滿足B∈M(Z),C∈M(N)。
其中,矩陣的維數(shù)越大,安全性越高,一般n>100時已有足夠的安全性保證。在本實施例中,可以確定矩陣的維數(shù)n=128;選取B為每一個元素都是絕對值小于8的整數(shù)的矩陣;選取C為每一個元素都是值小于8的正整數(shù)的矩陣;其中,對于B和C中每個元素的選取沒有限定,進行加密時,為了計算方便選取元素的絕對值小于8就可以。
步驟102系統(tǒng)參數(shù)設(shè)定以后開始選取并計算系統(tǒng)公鑰和私鑰,選取W,m,滿足m≥2n,(W,m)=1,即W,m互質(zhì);本實施例中,選取m=2n+k,k為隨機選取的一個64位正整數(shù),并且(W,m)=1;隨機選取一個64位正整數(shù)為W,按照這樣的設(shè)置可以選出m,W分別為m100000000000000000933389fbd8121b6,W40842aea2e61ab71;
對于i=1,2,…,n,計算ti=<W·2i-1>m,<*>m表示模m非負(fù)最小剩余;選取M滿足M>Σi=1nti+mΣi=1nΣj=1ncij,(M,m)=1;]]>因而得到M280800000000000001705186a7d2233eda0b3。
根據(jù)上述步驟得到系統(tǒng)私鑰W,m,M之后,計算公鑰R計算λi滿足λi≡m-1ti(modM),i=1,2,…,n。令A(yù)=λ1.0.0.λn+MB+C]]>將A的下三角元素依主對角線為對稱軸加到上三角對應(yīng)元素上,所述下三角的元素為零,所得的矩陣為公鑰R。
由于得到的R數(shù)據(jù)太多,這里從略。
于是基于二次背包問題的加密體制的構(gòu)成如下公鑰R(同樣的從略)私鑰W,m,M,m100000000000000000933389fbd8121b6,M280800000000000001705186a7d2233eda0b3,W40842aea2e61ab71;其余的中間參數(shù)銷毀。
步驟103用公鑰對明文進行加密,具體過程為設(shè)明文x=(x1,…xn)∈{0,1}n,明文11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111,由公鑰R計算xRxT=y(tǒng),y即為加密后生成的密文。
以此公鑰加密結(jié)果為
密文2d3867ee18b1d1a9f3d4044d8ce57b4c3258bcb50。
步驟104用私鑰對所生成的密文進行解密,具體過程如下由私鑰W,m,M計算<my>M=y(tǒng)1=25213559177459502588320220163843886303745753(十進制);再計算z=<W-1y1>m=340282366920938463463374607431768211455(十進制);然后由z=Σi=1nxi·2i-1]]>通過將z寫成2進制,對應(yīng)的系數(shù)就是所求的x=(x1,…,xn)∈{0,1}n即明文11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111。
這是因為y=xRxT=xΛxT+M(xBxT)+xCxT=Σi=1nλixi2+M(xBxT)+xCxT]]>注意到xi2=xi,]]>所以my=Σi=1nmλixi+m(M(xBxT)+xCxT)]]>注意到λi≡m-1ti(modM),i=1,2,…,n,對上式取模M得my≡Σi=1ntixi+m(xCxT)(modM)---(*)]]>又0≤Σi=1ntixi+m(xCxT)≤Σi=1nti+mΣi=1nΣj=1ncijxixj≤Σi=1nti+mΣi=1nΣj=1ncij<M]]>所以(*)式給出y1=⟨my⟩M=Σi=1ntixi+m(xCxT)]]>對上式模m,得y1≡Σi=1ntixi(modm),]]>再由ti=<W·2i-1>m,即得⟨W-1y1⟩m=z=Σi=1nxi·2i-1]]>這就證明了解密算法的正確性。
實施例2參見圖2,本發(fā)明還提供了一種加密/解密系統(tǒng),所述系統(tǒng)包括設(shè)定系統(tǒng)參數(shù)模塊、加密模塊和解密模塊;所述設(shè)定系統(tǒng)參數(shù)模塊通過設(shè)定系統(tǒng)參數(shù),生成公鑰R和私鑰W,m,M,其中R為n階矩陣;
所述加密模塊用于用所述公鑰R對明文x進行加密,加密算法采用二次背包算法xRxT=y(tǒng),生成密文y;所述解密模塊用于對所述密文y用所述私鑰W,m,M進行解密,解密算法為計算<my>M=y(tǒng)1,再計算z=<W-1y1>m,然后由z=Σi=1nxi·2i-1]]>得到x,這只需要將z寫成2進制,對應(yīng)的系數(shù)為所述明文x。
所述設(shè)定系統(tǒng)參數(shù)模塊具體包括設(shè)定矩陣單元、設(shè)定公鑰和私鑰單元;所述設(shè)定矩陣單元用于隨機選取兩個n×n階矩陣B,C,所述矩陣B為整數(shù)矩陣,所述矩陣C為正整數(shù)矩陣;矩陣B,C的具體形式同實施例1中矩陣B,C,不再贅述。
所述設(shè)定公鑰和私鑰單元用于選取并計算系統(tǒng)公鑰和私鑰,首先選取W,m,滿足m≥2n,(W,m)=1,即W,m互質(zhì);對于i=1,2,…,n,對W·2i-1取模m非負(fù)最小剩余,即計算ti=<W·2i-1>m;選取M滿足M>Σi=1nti+mΣi=1nΣj=1ncij,(M,m)=1]]>計算λi,λi滿足λi≡m-1ti(modM),i=1,2,…,n令A(yù)=λ1.0.0.λn+MB+C]]>將A的下三角元素依主對角線為對稱軸加到上三角對應(yīng)元素上,所得結(jié)果記為R,并設(shè)定系統(tǒng)公鑰為R,私鑰為W,m,M。
實施例3參見圖3,本發(fā)明還提供了一種簽名方法,所述方法包括以下步驟設(shè)定系統(tǒng)參數(shù),生成公鑰R,m,M和私鑰W,其中R為n階矩陣,具體步驟如下步驟201設(shè)定系統(tǒng)矩陣。
步驟202選取并計算系統(tǒng)公鑰R,m,M和私鑰W。
步驟201至步驟202中具體設(shè)定參數(shù)過程同實施例1中步驟101至步驟102,這里不再贅述,其中,對于B和C中每個元素的選取沒有限定,進行簽名時,選取元素的絕對值應(yīng)該相應(yīng)地增大,可以避免通過窮舉法將私鑰破解。
步驟203用所述公鑰和私鑰對消息進行簽名,簽名算法如下對于任意消息y,計算哈西函數(shù)值h(y);計算z=<W-1<mh(y)>M>m然后由z=Σi=1nxi·2i-1]]>計算出所述簽名x=(x1,…,xn)∈{0,1}n,生成簽名消息(y,x)。
步驟204用所述公鑰R,m,M對所述簽名消息(y,x)進行驗證,具體驗證方法為判斷等式<mh(y)>M=<m(xRxT)>M(modm)是否成立,如果成立,則簽名有效;否則無效。
實施例4參見圖4,本發(fā)明還提供了一種簽名系統(tǒng),所述系統(tǒng)包括設(shè)定系統(tǒng)參數(shù)模塊、簽名模塊和驗證簽名模塊;所述系統(tǒng)參數(shù)設(shè)置模塊設(shè)定系統(tǒng)參數(shù),生成公鑰R,m,M和私鑰W;所述簽名模塊模塊用于用所述公鑰和私鑰對消息進行簽名,簽名算法如下對于任意消息y,計算哈西函數(shù)值h(y);計算z=<W-1<mh(y)>M>m然后由公式z=Σi=1nxi·2i-1,]]>計算出所述簽名x,生成簽名消息(y,x);所述驗證簽名模塊用于用所述公鑰R,m,M對所述簽名消息(y,x)進行驗證,具體驗證方法為判斷等式<mh(y)>M=<m(xRxT)>M(modm)是否成立,如果成立,則簽名有效;否則無效。
所述設(shè)定系統(tǒng)參數(shù)模塊具體包括設(shè)定矩陣單元、設(shè)定公鑰和私鑰單元;所述設(shè)定矩陣單元用于隨機選取兩個n×n階矩陣B,C,所述矩陣B為整數(shù)矩陣,所述矩陣C為正整數(shù)矩陣;矩陣B,C的具體形式同實施例1中矩陣B,C,不再贅述。
設(shè)定公鑰和私鑰單元用于選取并計算系統(tǒng)公鑰和私鑰,具體功能同實施例2中的設(shè)定公鑰和私鑰單元,這里不再贅述。
設(shè)定系統(tǒng)公鑰為R,m,M,私鑰為W。
以上只是本發(fā)明的優(yōu)選實施方式進行了描述,本領(lǐng)域的技術(shù)人員在本發(fā)明技術(shù)的方案范圍內(nèi)進行的通常變化和替換,都應(yīng)包含在本發(fā)明的保護范圍內(nèi)。
權(quán)利要求
1.一種加密/解密方法,其特征在于,所述方法包括以下步驟步驟A設(shè)定系統(tǒng)參數(shù),生成公鑰 和私鑰W,m,M,其中 為n階矩陣;步驟B用所述公鑰 對明文x進行加密,加密算法采用二次背包算法 生成密文y,其中x=(x1,…,xn)∈{0,1}n;步驟C對所述密文y用所述私鑰W,m,M進行解密,解密算法為計算<my>M=y(tǒng)1,再計算z=<W-1,y1>m,然后由z=Σi=1nxi·2i-1]]>得到x=(x1,…,xn)。
2.如權(quán)利要求1所述的一種加密/解密方法,其特征在于,所述步驟A具體包括步驟A1隨機選取兩個n×n階矩陣B,C,所述矩陣B為整數(shù)矩陣,所述矩陣C為正整數(shù)矩陣;步驟A2選取W,m,滿足m≥2n,(W,m)=1,即W,m互質(zhì);對于i=1,2,…,n,對W·2i-1取模m非負(fù)最小剩余,即計算ti=<W·2i-1>m;選取M滿足M>Σi=1nti+mΣi=1nΣj=1ncij,(M,m)=1]]>設(shè)定系統(tǒng)私鑰為W,m,M;步驟A3計算λi滿足λi≡m-1ti(modM),i=1,2,…,n令A(yù)=λ1·0·0·λn+MB+C]]>將A的下三角元素依主對角線為對稱軸加到上三角對應(yīng)元素上,所述下三角的元素為零,所得矩陣記為 ,設(shè)定系統(tǒng)公鑰為
3.一種加密/解密系統(tǒng),其特征在于,所述系統(tǒng)包括設(shè)定系統(tǒng)參數(shù)模塊、加密模塊和解密模塊;所述設(shè)定系統(tǒng)參數(shù)模塊用于設(shè)定系統(tǒng)參數(shù),生成公鑰 和私鑰W,m,M,其中 為n階矩陣;所述加密模塊用于用所述公鑰 對明文x進行加密,加密算法采用二次背包算法 生成密文y;所述解密模塊用于對所述密文y用所述私鑰W,m,M進行解密,解密算法為計算<my>M=y(tǒng)1,再計算z=<W-1y1>m,然后由z=Σi=1nxi·2i-1]]>得到x=(x1,…,xn)。
4.如權(quán)利要求3所述的一種加密/解密系統(tǒng),其特征在于,所述設(shè)定系統(tǒng)參數(shù)模塊具體包括設(shè)定矩陣單元、設(shè)定公鑰和私鑰單元;所述設(shè)定矩陣單元用于隨機選取兩個n×n階矩陣B,C,所述矩陣B為整數(shù)矩陣,所述矩陣C為正整數(shù)矩陣;所述設(shè)定公鑰和私鑰單元用于選取W,m,滿足m≥2n,(W,m)=1,即W,m互質(zhì);對于i=1,2,…,n,對W·2i-1取模m非負(fù)最小剩余,即計算ti=<W·2i-1>;選取M滿足M>Σi=1nti+mΣi=1nΣj=1ncij,(M,m)=1]]>計算λi,λi滿足λi≡m-1ti(modM),i≡1,2,…,n令A(yù)=λ1·0·0·λn+MB+C]]>將A的下三角元素依主對角線為對稱軸加到上三角對應(yīng)元素上,所述下三角的元素為零,所得矩陣記為 ,并設(shè)定系統(tǒng)公鑰為 ,私鑰為W,m,M。
5.一種簽名方法,其特征在于,所述方法包括以下步驟步驟A′設(shè)定系統(tǒng)參數(shù),生成公鑰 m,M和私鑰W,其中 為n階矩陣;步驟B′用所述公鑰和私鑰對消息進行簽名,簽名算法如下對于任意消息y,計算哈西函數(shù)值h(y);計算z=<W-1<mh(y)>M>m然后由z=Σi=1nxi·2i-1]]>計算出所述簽名x=(x1,…,xn)∈{0,1}n,生成簽名消息(y,x)。
6.如權(quán)利要求5所述的一種簽名方法,其特征在于,所述方法步驟A′具體包括步驟A1′隨機選取兩個n×n階矩陣B,C,所述矩陣B為整數(shù)矩陣,所述矩陣C為正整數(shù)矩陣;步驟A2′選取W,m,滿足m≥2n,(W,m)=1,即W,m互質(zhì);對于i=1,2,…,n,對W·2i-1取模m非負(fù)最小剩余,即計算ti=<W·2i-1>m;選取M滿足M>Σi=1nti+mΣi=1nΣj=1ncij,(M,m)=1]]>步驟A3′計算λi滿足λi≡m-1ti(mod M),i=1,2,…,n令A(yù)=λ1·0·0·λn+MB+C]]>將A的下三角元素依主對角線為對稱軸加到上三角對應(yīng)元素上,所述下三角的元素為零,所得矩陣記為 步驟A4′設(shè)定系統(tǒng)公鑰為 m,M,私鑰為W。
7.如權(quán)利要求5或6所述的一種簽名方法,其特征在于,所述方法還包括以下步驟步驟C′用所述公鑰 m,M對所述簽名消息(y,x)進行驗證,具體驗證方法為判斷等式 是否成立,如果成立,則簽名有效;否則無效。
8.一種簽名系統(tǒng),其特征在于,所述系統(tǒng)包括設(shè)定系統(tǒng)參數(shù)模塊、簽名模塊和驗證簽名模塊;所述系統(tǒng)參數(shù)設(shè)置模塊設(shè)定系統(tǒng)參數(shù),生成公鑰 m,M和私鑰W,其中 為n階矩陣;所述簽名模塊用于用所述公鑰和私鑰對消息進行簽名,簽名算法如下對于任意消息y,計算哈西函數(shù)值h(y);計算z=<W-1<mh(y)>M>m,然后由公式z=Σi=1nxi·2i-1,]]>計算出所述簽名x,生成簽名消息(y,x);所述驗證簽名模塊用于用所述公鑰 m,M對所述簽名消息(y,x)進行驗證,具體驗證方法為判斷等式 是否成立,如果成立,則簽名有效;否則無效。
9.如權(quán)利要求8所述的一種簽名系統(tǒng),其特征在于,所述設(shè)定系統(tǒng)參數(shù)模塊具體包括設(shè)定矩陣單元、設(shè)定公鑰和私鑰單元;所述設(shè)定矩陣單元用于隨機選取兩個n×n階矩陣B,C,所述矩陣B為整數(shù)矩陣,所述矩陣C為正整數(shù)矩陣;設(shè)定公鑰和私鑰單元用于選取W,m,滿足m≥2n,(W,m)=1,即W,m互質(zhì);對于i=1,2,…,n,對W·2i-1取模m非負(fù)最小剩余,即計算ti=<W·2i-1>m;選取M滿足M>Σi=1nti+mΣi=1nΣj=1ncij,(M,m)=1]]>計算λi滿足λi≡m-1ti(mod M),i=1,2,…,n令A(yù)=λ1·0·0·λn+MB+C]]>將A的下三角元素依主對角線為對稱軸加到上三角對應(yīng)元素上,所述下三角的元素為零,所得矩陣記為 設(shè)定系統(tǒng)公鑰為 m,M,私鑰為W。
全文摘要
本發(fā)明提供了一種加密/解密和簽名方法及系統(tǒng)。屬于計算機通訊及電子商務(wù)領(lǐng)域。為了解決現(xiàn)有技術(shù)中一次背包密碼體制不安全、二次背包密碼體制密鑰量大、非背包密碼體制運算速度慢以及無二次背包簽名方法的不足,本發(fā)明提供了一種加密/解密方法及系統(tǒng),方法包括設(shè)定系統(tǒng)參數(shù)、對明文加密生成密文、對密文解密的步驟,系統(tǒng)包括設(shè)定系統(tǒng)參數(shù)模塊、加密模塊、解密模塊。上述加密/解密方法和系統(tǒng)中,設(shè)定的系統(tǒng)參數(shù)(模塊)還可以用來提供一種簽名方法及系統(tǒng),方法包括設(shè)定系統(tǒng)參數(shù)、對消息進行簽名生成簽名消息和驗證簽名的步驟,系統(tǒng)包括設(shè)定系統(tǒng)參數(shù)模塊、簽名模塊、驗證簽名模塊。
文檔編號G06Q30/00GK1877633SQ20061009023
公開日2006年12月13日 申請日期2006年7月7日 優(yōu)先權(quán)日2006年7月7日
發(fā)明者董曉蕾, 曹珍富, 鄭志彬, 位繼偉 申請人:上海交通大學(xué), 華為技術(shù)有限公司