基于雙重困難的數據加密方法
【技術領域】
[0001] 本發明涉及數據加密保護技術領域,具體涉及一種基于雙重困難的可驗證加密方 法。特別是適用移動支付交易過程中數據的實時加密。 技術背景
[0002] 移動支付的安全問題是移動電子商務面臨的一個致命問題,移動支付過程中包含 了移動用戶發送給商家的信息和移動用戶發送給銀行的密碼之類的敏感數據,這些數據關 系到用戶的切身利益,要求較高的保密性。但移動網絡存在著許多不安全因素,例如有人會 利用假造信息或者監聽個人信息,所以需建立一個安全機制來保護我們的秘密信息,而這 機制稱為密碼學技術,它主要是讓數據在網絡上傳送時,能確保數據的安全性、隱秘性與完 整性。密碼學技術是將數據做加密動作,將數據經加密變成無意義的數據串,所以在網絡傳 送時,其他人是無法辨識真正的數據內容,只有合法的接受者才可以從這加密的數據中獲 取真正的內容。
[0003] 加密技術大致可分為兩種:第一種是對稱式密鑰加密技術,這種類型的加密技術 在加密與解密算法中利用同一把密鑰,優點是利用同一把密鑰可以加快加解密速度,但問 題是如何確保密鑰的傳送與管理;第二種是非對稱式密鑰加密技術,這種類型的系統在加 解密會使用兩把不同的密鑰,一把為公開密鑰,在公開網絡上當有人要傳送數據時,必須先 找尋接收者的公開密鑰,將數據進行加密發送給接受者,接受者收到密文后利用自己保留 的另一把私鑰進行解密,得到明文。這種技術的優點是比對稱式加密技術安全,缺點是加解 密速度較慢。
[0004] 1976年Diffie與Hellman兩位學者首先提出公開密鑰的概念,其后有很多學 者陸續提出許多公開密鑰加密算法,而這些算法設計大多都建立在某種計算時間上的困 難度假設,例如解離散對數的問題、分解因數或迷袋問題等等,這些系統都是多項式時間 上的安全,隨著科技進步,計算速度越來越快,基于計算時間上安全的密碼系統,將遭受到 威脅,所以有學者們提出一個密碼系統同時基于兩種困難度的數學假設,即分解因數與 Diffie-Hellman問題,也就是說如果要破解這類型的密碼系統需要同時具備破解兩個困難 的假設,本發明就是基于兩種困難度的公開密鑰加密方法。
【發明內容】
[0005] 本發明要克服現有技術的上述缺點,提出一個可驗證的公開密鑰加密方法,在安 全上,它同時具有雙重困難度的數學假設,分別為分解因數與Diffie-Hellman問題,換句 話說,如果要破解這加密方法,攻擊者必需同時解決這兩種計算上的數學難題。
[0006] 本發明所述的基于雙重困難的數據加密方法,包括如下步驟:
[0007] 步驟1,初始化;首先選擇一個安全參數L,將L位元的參數輸入生成函數F( ·)生 成函數F (〇產生Enc和Dec兩個算法,分別為加密算法與解密算法,所使用的參數生成方 式如下:
[0008] Stepll 令η 為一個WiIIiams 整數,n = pXq,其中 p = 3 mod 8,q = 7 mod 8,且 p = 2p' +l,q = 2q' +1,長度為其中p、q、p'和q'均為大質數,以|n|=k表示 η的位元長度;
[0009] St印12令G = < g >是乘法群Z以最大的循環子群,g為循環子群的生成元,G的 秩 λ (n) = lcm(p_l,q-1) = 2p' q'為 Carmichael' s 函數,Z$:i的定義如下;
[0010] Stepl3選擇一個整·
丨當密鑰,并計 算對應的公鑰y = gxmod n,0 < X < η ;
[0011] Stepl4 設置公開參數 r!、r2、r3、r4,令;T1= I e Z u,1}、r2= -I e Z (1}、r3 = 2 e Z( LD和 r 4 - _2 ε Z (l D,Z(lD、Z( L D、Z( LD、Zq, 1}為石;分成的四個等價類集,定義 如下:
[0012]
[0013]
[0014]
[0015]
[0016] Stepl5公開參數(n,IV r2, r3, r4)與公鑰y,保留密鑰X與參數(p,q);
[0017] 設加密算法里有一個Hash函數H1和一個生成函數H 2,定義如下:
[0018]
[0019]
[0020] 這里匕< k為一安全參數,接下來利用這些參數與兩個函數進行明文的加解密運 算;
[0021] 步驟2,加密;
[0022] Step21利用Jacobi符號來檢驗明文m的信息,分成四種情況討論并計算參數R的 值:
[0023]
[0024]
[0025]
[0026] Case4 如·
[0027] A、r2、r3、1*4為上述四個公開參數;
[0028] St印22隨機選取兩個數V與Z;;,|v|字串長度為k,|s|字串長度為k0(k0 < k),兩個數皆為安全參數;
[0029] Step23 計算參數 d = H1 (R| I s);
[0030] Step24 計算 a = gd mod n、b = yd · V mod,.得到密文 (a,b,c);
[0031] 步驟3,解密;
[0032] Step31利用密鑰x,計算隨機參數v = a xb mod η ;
[0033] St印32計算檢驗參婁
[0034] St印33驗證β = 是否成立;如果成立,取M的前k位元得到R值;否則,密 文(a,b,c)不合法;
[0035] Step34解二次剩余方程式Z2= r 1R mod n,參數r = ,得到四根Z1, Z2? z3? Z4;
[0036] Step35由參數r值來確定四根中的明文m。
[0037] 本發明方法給出一個公開密鑰加密方法,利用模組二次剩余的特性與部分單向暗 門函數所建構成的,這種加密方法同時基于兩種的困難度,分解因數與Diffie-Hellman問 題,若要從密文中取出明文,需在多項式時間內解決這兩種困難的數學假設,此外這種加密 方法具有抵抗選擇明文攻擊與選擇密文攻擊,具有良好的安全性。
[0038] 本發明的有益效果在于:
[0039] 能夠在確保數據傳輸的正確性與完整性的同時,基于雙重困難的加密方法,具有 良好的安全性和實際應用價值。
【附圖說明】
[0040] 圖1是本發明方法的流程圖。
[0041 ] 圖2是本發明的解密流程圖。
【具體實施方式】
[0042] 下面參照附圖,進一步說明本發明。
[0043] 本發明所述的基于雙重困難的數據加密方法,包括如下步驟:
[0044] 步驟1,初始化;首先選擇一個安全參數L,將L位元的參數輸入生成函數F( ·)生 成函數F (〇產生Enc和Dec兩個算法,分別為加密算法與解密算法,所使用的參數生成方 式如下:
[0045] Stepll 令 η 為一個 Williams 整數,n = pXq,其中 p = 3 mod 8, q = 7 mod 8,且 p = 2p' +l,q = 2q' +1,長度為警/jit,其中p、q、p'和q'均為大質數,以|n|=k表示 η的位元長度;
[0046] St印12令G = < g >是乘法群之I最大的循環子群,g為循環子群的生成元,G的 秩 λ (n) = lcm(p_l,q-1) = 2p' q'為 Carmichael' s 函數,的定義如下;
[0047] Stepl3選擇一個整數
當密鑰,并計 算對應的公鑰y = gxmod n,0 < X < η ;
[0048] Stepl4 設置公開參數 r!、r2、r3、r4,令;T1= I e Z u,1}、r2= -I e Z ( 1}、r3 =
2 e Z( 和 r 4 - -2 G Z (1> D, Z(ia) N Z( L D N Z( ia) N Z(1> 1}為分成的四個等價類集,定義 如下:
[0049]
[0050]
[0051]
[0052]
[0053] Stepl5公開參數(n,IV r2, r3, r4)與公鑰y,保留密鑰X與參數(p,q);
[0054] 設加密算法里有一個Hash函數H1和一個生成函數H 2,定義如下:
[0055]
[0056]
[0057] 這里匕< k為一安全參數,接下來利用這些參數與兩個函數進行明文的加解密運 算;
[0058] 步驟2,加密;
[0064] A、r2、r3、1*4為上述四個公開參數;[0065] St印22隨機選取兩個數V與s,V A? Z;;,|v|字串長度為k,|s|字串長度為k0(k。
[0059] Step21利用Jacobi符號來檢驗明文m的信息,分成四種情況討論并計算參數R的 值:
[0060]
[0061]
[0062]
[0063] < k),兩個數皆為安全參數;
[0066] Step23 計算參數 d = H1 (RI I s);
[0067] Step24 計算 a = gd mod n、b = yd · vmod ]
得到密文 (a,b,c);
[0068] 步驟3,解密;
[0069] Step31利用密鑰x,計算隨機參數v = a xb mod η ;
[0070] Step32計算檢驗參繳
[0071] St印33驗證α =沒馬⑷)是否成立;如果成立,取M的前k位元得到R值;否則,密 文(a,b,c)不合法;
[0072] Step34解二次剩余方程式Z2= r 1R mod n,參數r = ,得到四根Z1, Z2? z3? Z4;
[0073] Step35由參數r值來確定四根中的明文m。
[0074] 本說明書實施例所述的內容僅僅是對發明構思的實現形式的列舉,本發明的保護 范圍不應當被視為僅限于實施例所陳述的具體形式,本發明的保護范圍也及于本領域技術 人員根據本發明構思所能夠想到的等同技術手段。
【主權項】
1.基于雙重困難的數據加密方法,包括如下步驟: 步驟1,初始化;首先選擇一個安全參數L,將L位元的參數輸入生成函數F( ?)生成函 數F(It)產生Enc和Dec兩個算法,分別為加密算法與解密算法,所使用的參數生成方式如 下: Stepll令n為一個Williams整數,n=pXq,其中p= 3mod8,q= 7mod8,且p=位元長度; St印12令G= <g>是乘法群最大的循環子群,g為循環子群的生成元,G的秩A(n) =lcm(p-l,q_l) =2p'q'為Carmichael's函數,Z.A的定義如下; St印I3選擇一個整數X€及Z=二{0<尤<?1丨<9£^(>:,71) = 1〗當密鑰,并計算對應 的公鑰y=gxmodn,0 <X<n; Stepl4 設置公開參數 1)和r4 - -2GZ(1>D,Z(ia)NZ(hDNZ( ia)NZ(1> ^為之;;分成的四個等價類集,定義如下:這里匕<k為一安全參數,接下來利用這些參數與兩個函數進行明文的加解密運算; 步驟2,加密; Step21利用Jacobi符號來檢驗明文m的信息,分成四種情況討論并計算參數R的值:<k),兩個數皆為安全參數; Step23 計算參數d=H1(RIIs);步驟3,解密; Step31利用密鑰X,計算隨機參數V=axbmodn;St印33驗證Cl= 是否成立;如果成立,取M的前k位元得到R值;否則,密文 (a,b,c)不合法; Step34解二次剩余方程式Z2=r1Rmodn,參數r= {!^,!^,!^,!^,得到四根?"?;;, z3,Z4; Step35由參數r值來確定四根中的明文m。
【專利摘要】可驗證的公開密鑰加密方法,包括初始化、加密、解密的步驟。在安全上,它同時具有雙重困難度的數學假設,分別為分解因數與Diffie-Hellman問題,換句話說,如果要破解這種加密方法,攻擊者必需同時解決這兩種計算上的數學難題。這加密方法利用部分暗門單向函數的概念所設計出來的,它具有語意安全能抵抗選擇明文攻擊與選擇密文攻擊,具有良好的實用價值。
【IPC分類】H04L9/32, H04L9/08
【公開號】CN105049208
【申請號】CN201510331229
【發明人】趙毅, 潘紅濤, 劉東升, 郭飛鵬, 王蓓, 周怡
【申請人】浙江金大科技有限公司, 浙江工商大學
【公開日】2015年11月11日
【申請日】2015年6月15日