基于双重困难的数据加密方法

文档序号:9330334阅读:790来源:国知局
基于双重困难的数据加密方法
【技术领域】
[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日
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1