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