CN103973439A - 一种多变量公钥加密方法 - Google Patents

一种多变量公钥加密方法 Download PDF

Info

Publication number
CN103973439A
CN103973439A CN201410192418.7A CN201410192418A CN103973439A CN 103973439 A CN103973439 A CN 103973439A CN 201410192418 A CN201410192418 A CN 201410192418A CN 103973439 A CN103973439 A CN 103973439A
Authority
CN
China
Prior art keywords
centerdot
sigma
mod
epsiv
public key
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN201410192418.7A
Other languages
English (en)
Other versions
CN103973439B (zh
Inventor
王祖喜
胡汉平
余百慕
邓涯双
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Huazhong University of Science and Technology
Original Assignee
Huazhong University of Science and Technology
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Huazhong University of Science and Technology filed Critical Huazhong University of Science and Technology
Priority to CN201410192418.7A priority Critical patent/CN103973439B/zh
Publication of CN103973439A publication Critical patent/CN103973439A/zh
Application granted granted Critical
Publication of CN103973439B publication Critical patent/CN103973439B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Mobile Radio Communication Systems (AREA)

Abstract

本发明公开了一种多变量公钥加密方法。在密钥生成过程中,采用迭代方法构造矩阵,大大缩短了密钥的长度,便于密钥管理;采用概率加密,在加密中引入随机参数,解密方必须通过解密过程求解出该随机参数,并参与明文的解密,只有知道随机参数的大小才能正确解密明文,增加了攻击者破解密文的难度,即使在公钥相同的情况下密文也是不同的,公钥能以类似电话号码的形式公布,提高了加密安全性;基于组合优化困难问题和多变量二次多项式问题,能抵抗量子计算机的攻击,加解密速度快,能够运用于移动终端,如手机等;基于有限域上的运算,简化了运算过程;具有加法同态和减法同态,在特殊条件下具有乘法同态,能应用于云计算等新兴领域。

Description

一种多变量公钥加密方法
技术领域
本发明属于信息安全技术领域,更具体地,涉及一种多变量公钥加密方法。
背景技术
随着计算机和网络的不断发展,人们对信息的完整性、安全性要求越来越高,因此,密码学应运而生。公钥密码学由于其加密密钥和解密密钥不一样,成为了解决网络安全和信息安全的某些安全问题的关键手段。但是随着信息技术的不断发展,人们对系统的性能要求越来越高,不仅要求信息的完整性、安全性,还要求传递信息过程的简便性和快速性。
目前,主流对称密码的密钥管理和传递过程较复杂,且公钥密码的运算效率偏低,已越来越不能满足人们日益增长的物质文化需要。其次,随着手机或无线移动终端应用的普及,无纸化办公概念的提出,以及物联网的发展,手机或无线移动终端在我们生活中扮演的角色越来越重要,然而手机或无线移动终端的运行速度和资源都还无法和计算机相比,因此,在手机或无线移动终端等这种资源环境受限的应用情况下,传统的加密方案不再适用。此外,随着量子计算的提出,传统的加密方案受到极大的威胁,一旦量子计算机的成功研发,人们常用的公钥密码RSA、ECC将不再安全。
抗量子计算机攻击的公钥加密方法主要有基于格问题的NTRU算法、基于Hash函数的签名算法、基于纠错码的公钥密码体制以及多变量二次多项式(简称MQ)公钥密码体制和OUT2000公钥密码体制等,这些算法的便捷性和安全性,非常适用于智能卡等移动终端。公开号为CN103200001A的中国专利申请公开了一种多变量公钥加密方法,具有实现效率高,抗量子计算机攻击的特点。尽管如此,上述方法均存在存储的密钥较长,不便于密钥管理的问题。因此,为了让公钥密码能够更好地发展,更好地运用到生活中,急需研究安全快速的公钥密码算法。
发明内容
针对现有技术的以上缺陷或改进需求,本发明提供了一种多变量公钥加密方法,大大缩短了密钥的长度,便于密钥管理,在加密中引入随机参数,是一种概率加密的方法,只有知道随机参数的大小才能正确解密明文,增加了攻击者破解密文的难度,能抵抗量子计算机的攻击,加解密速度快,能够运用于移动终端,如手机等。
为实现上述目的,本发明提供了一种多变量公钥加密方法,其特征在于,包括如下步骤:
(1)生成密钥,进一步包括如下步骤:
选取有限域Z及有限域Z中的k个整数p1,p2,…,pi,…,pk,其中,i为不大于k的正整数;在有限域Z上选取如下整数:(β1112),(β2122),…,(βi1i2),…,(βk1k2)和(x1,x2,…,xi,…,xk);构造与(β1112),(β2122),…,(βi1i2),…,(βk1k2)和p1,p2,…,pi,…,pk相关的两组参数a11,a21,…,ai1,…,ak1和a12,a22,…,ai2,…,ak2,使ai1和ai2的二进制长度相同;
构造k×n维满秩矩阵A=(aij),j=1,…,n,其中,j>2时, a ij = x i p i 2 a i ( j - 2 ) - p i a i ( j - 1 ) mod p i k ;
构造矩阵Kl×k和矩阵Dk×l,使其满足D·K=λ·Ek×k,且l≥k,其中,Ek×k是单位矩阵,λ为任意整数;
计算矩阵C=K·A=(cyj),y=1,...,l,选取正整数h,0<h<n,确定随机参数ε的取值范围[1,e],其中,t为任意正整数;
选取l个整数P1,...,Pl,满足不等式 ( &Sigma; j = 1 h c 1 j + &Sigma; j = h + 1 n c 1 j &CenterDot; e ) &CenterDot; &Pi; i = 1 k p i < P 1 &CenterDot; &CenterDot; &CenterDot; ( &Sigma; j = 1 h c lj + &Sigma; j = h + 1 n c lj &CenterDot; e ) &CenterDot; &Pi; i = 1 k p i < P l , 得到P1,...,Pl的最小公倍数N;
求解同余方程组 d j = c 1 j ( mod P 1 ) &CenterDot; &CenterDot; &CenterDot; d j = c lj ( mod P l ) , 得到向量d=(d1,d2,…,dj,…,dn);
将d和h一起作为公钥,或者将d、h和N一起作为公钥,对应的私钥至少包括(x1,x2,…,xi,…,xk)、p1,p2,…,pi,…,pk、P1,...,Pl、(β1112),(β2122),…,(βi1i2),…,(βk1k2)和D;
(2)用公钥加密,进一步包括如下步骤:
获取明文M=(m1,…,mn),选定随机参数ε;
用步骤(1)得到的公钥以概率加密的方式对明文进行加密,得到密文C;
(3)用私钥解密,进一步包括如下步骤:
求解同余方程组 C P 1 = C mod P 1 &CenterDot; &CenterDot; &CenterDot; C Pl = C mod P l ;
计算[SA1…SAk]T=D[CP1…CPl]T
通过解密方法或者同步方法获取随机参数ε;
通过(SA1,…,SAk)和随机参数ε求解得到明文M=(m1,…,mn)。
优选地,所述步骤(1)中,ai1=βi1pi
优选地,所述步骤(1)中,ai1=βi1,ai2=βi2pi
优选地,所述密文C由如下表达式中的任何一个得到:
C = &Sigma; i = 1 h d i m i + &Sigma; i = h + 1 n d i m i &epsiv; ,
C = &Sigma; i = 1 h d i m i + &Sigma; i = h + 1 n d i m i &epsiv; mod N ,
C = &Sigma; i = 1 h d i m i + &Sigma; i = h + 1 n d i m i &epsiv; + &epsiv;
C = &Sigma; i = 1 h d i m i + &Sigma; i = h + 1 n d i m i &epsiv; + &epsiv; mod N .
优选地,通过解密方法获取随机参数ε具体为:
计算同余方程组 &Sigma; y = 1 l d 1 y &CenterDot; &epsiv; = S A 1 mod | &lambda; | p 1 &Sigma; y = 1 l d 2 y &CenterDot; &epsiv; = S A 2 mod p 2 &CenterDot; &CenterDot; &CenterDot; &Sigma; y = 1 l d ky &CenterDot; &epsiv; = S Ak mod p k 得到随机参数ε,其中,|λ|表示整数λ的绝对值,为矩阵D的第i行所有元素之和。
总体而言,通过本发明所构思的以上技术方案与现有技术相比,具有以下有益效果:
(1)在密钥生成过程中,采用迭代方法构造矩阵,大大缩短了密钥的长度,便于密钥管理。
(2)采用概率加密,在加密中引入随机参数,解密方必须通过解密过程求解出该随机参数,并参与明文的解密,只有知道随机参数的大小才能正确解密明文,增加了解密或攻击者破解密文的难度,即使在公钥相同的情况下密文也是不同的,公钥能以类似电话号码的形式公布,提高了加密安全性。而普通的概率公钥中的随机参数是直接通过某种手段滤除,解密密文与此随机参数无关,使破解密文的难度降低。
(3)基于组合优化困难问题和多变量二次多项式(MQ)问题,能抵抗量子计算机的攻击,加解密速度快,能够运用于移动终端,如手机等。
(4)基于有限域上的运算,而不是基于多项式上的运算,简化了运算过程。
(5)具有加法同态和减法同态,在特殊条件下具有乘法同态,能应用于云计算等新兴领域。
附图说明
图1是公钥加密方法在通信中的应用原理示意图;
图2是本发明实施例的多变量公钥加密方法流程图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。此外,下面所描述的本发明各个实施方式中所涉及到的技术特征只要彼此之间未构成冲突就可以相互组合。
图1是公钥加密方法在通信中的应用原理示意图,如图1所示,用户通过密钥对生成器生成公私钥对,将公钥发送给可信第三方,由可信第三方制作成公钥密码本,并发送给每一个用户。这里的可信第三方可以是类似于移动、联通这种可信第三方。用户的处理器既可以是加密器也可以是解密器,当用户作为加密方、通信的发起方时,其对应的处理器用作加密器,当用户作为解密方、通信的接收方时,其对应的处理器用作解密器。判别处理器用作加密处理还是解密处理的方法是看其信息的输入方式,如果信息是从发送/接收器输入,则处理器用作解密器,如果信息是从其他渠道(如键盘等)输入,则处理器用作加密器。
当用户A要与用户B通信时,用户A通过查询公钥密码本,得到目标用户B的公钥密码——公钥B8;公钥B8、明文A6和随机数发生器A2产生的随机数作为输入,输入到用作加密器的处理器A1中。处理器A1通过加密得到密文C,输出的密文C通过发送/接收器A7和信道发送给用户B。用户B通过发送/接收器B7将密文C输入到处理器B1中,处理器B1用作解密器。处理器B1通过调用用户B的私钥——私钥B4进行解密,得到明文B6。当用户B要与用户A通信时,原理相同,此处就不赘述了。
如图2所示,本发明实施例的多变量公钥加密方法包括如下步骤:
(1)生成密钥,进一步包括如下步骤:
选取有限域Z及有限域Z中的k个整数p1,p2,…,pi,…,pk,其中,i为不大于k的正整数;在有限域Z上选取如下整数:(β1112),(β2122),…,(βi1i2),…,(βk1k2)和(x1,x2,…,xi,…,xk);构造与(β1112),(β2122),…,(βi1i2),…,(βk1k2)和p1,p2,…,pi,…,pk相关的两组参数a11,a21,…,ai1,…,ak1和a12,a22,…,ai2,…,ak2,使得ai1和ai2的二进制长度相同,具体地,ai1=βi1pi或者ai1=βi1,ai2=βi2pi
构造k×n维满秩矩阵A=(aij),j=1,…,n,其中,j>2时, a ij = x i p i 2 a i ( j - 2 ) - p i a i ( j - 1 ) mod p i k ;
构造矩阵Kl×k和矩阵Dk×l,使其满足D·K=λ·Ek×k,且l≥k,其中,Ek×k是单位矩阵,λ为任意整数;
计算矩阵C=K·A=(cyj),其中,y=1,...,l,选取正整数h,其中,0<h<n,确定随机参数ε的取值范围[1,e],其中,t为任意正整数;
选取l个整数P1,...,Pl,满足不等式 ( &Sigma; j = 1 h c 1 j + &Sigma; j = h + 1 n c 1 j &CenterDot; e ) &CenterDot; &Pi; i = 1 k p i < P 1 &CenterDot; &CenterDot; &CenterDot; ( &Sigma; j = 1 h c lj + &Sigma; j = h + 1 n c lj &CenterDot; e ) &CenterDot; &Pi; i = 1 k p i < P l , 得到P1,...,Pl的最小公倍数N;
求解同余方程组 d j = c 1 j ( mod P 1 ) &CenterDot; &CenterDot; &CenterDot; d j = c lj ( mod P l ) , 得到向量d=(d1,d2,…,dj,…,dn);具体地,如果P1,...,Pl两两互素,则可以通过中国剩余定理求解dj;如果P1,...,Pl不是两两互素,则可以通过其它方法计算dj
将d和h一起作为公钥kp,或者将d、h和N一起作为公钥kp,对应的私钥ks至少包括(x1,x2,…,xi,…,xk)、p1,p2,…,pi,…,pk、P1,...,Pl、(β1112),(β2122),…,(βi1i2),…,(βk1k2)和D;
(2)用公钥加密,进一步包括如下步骤:
获取明文M=(m1,…,mn),选定随机参数ε;
用步骤(1)得到的公钥以概率加密的方式对明文进行加密,得到密文C;具体地,C可以由如下表达式中的任何一个得到:
C = &Sigma; i = 1 h d i m i + &Sigma; i = h + 1 n d i m i &epsiv; - - - ( 1 )
C = &Sigma; i = 1 h d i m i + &Sigma; i = h + 1 n d i m i &epsiv; mod N - - - ( 2 )
C = &Sigma; i = 1 h d i m i + &Sigma; i = h + 1 n d i m i &epsiv; + &epsiv; - - - ( 3 )
C = &Sigma; i = 1 h d i m i + &Sigma; i = h + 1 n d i m i &epsiv; + &epsiv; mod N - - - ( 4 )
(3)用私钥解密,进一步包括如下步骤:
求解同余方程组 C P 1 = C mod P 1 &CenterDot; &CenterDot; &CenterDot; C Pl = C mod P l ;
计算[SA1…SAk]T=D[CP1…CPl]T
通过解密方法或者同步方法获取随机参数ε;具体地,如果采用式(1)或式(2)的加密方式,一般通过同步方法获取随机参数ε,如果采用式(3)或式(4)的加密方式,一般通过解密方法获取随机参数ε;通过解密方法获取随机参数ε具体为:
计算同余方程组 &Sigma; y = 1 l d 1 y &CenterDot; &epsiv; = S A 1 mod | &lambda; | p 1 &Sigma; y = 1 l d 2 y &CenterDot; &epsiv; = S A 2 mod p 2 &CenterDot; &CenterDot; &CenterDot; &Sigma; y = 1 l d ky &CenterDot; &epsiv; = S Ak mod p k 得到随机参数ε,其中,|λ|表示整数λ的绝对值,为矩阵D的第i行所有元素之和;
通过(SA1,…,SAk)和随机参数ε求解得到明文M=(m1,…,mn)。
为使本领域技术人员更好地理解本发明,下面结合具体实施例,对本发明的多变量公钥加密方法进行详细说明。应当说明的是,下述实施例仅为本发明方法的优选实施例,实施例中各步骤的实现顺序不应理解为对本发明的限制。
实施例1
通过解密方法获取随机参数ε,本方法包括如下步骤:
(1)生成密钥。进一步包括如下步骤:
(1-1)采用迭代方式构造k×n维满秩矩阵A。进一步包括如下步骤:
(1-1-1)确定k=2。
(1-1-2)选取有限域Z,及有限域Z中的2个整数p1,p2
(1-1-3)选取有限域Z上的如下整数:(β1112)、(β2122)和(x1,x2)。令a11=β11p1, a 12 = &beta; 12 p 1 2 , a21=β21p2, a 22 = &beta; 22 p 2 2 .
(1-1-4)构造矩阵A=(aij),其中,i=1,2,j=1,…,n,j>2时, a ij = x i p i 2 a i ( j - 2 ) - p i a i ( j - 1 ) mod p i k .
(1-2)通过混淆或扩散方式F得到向量d=(d1,d2,…,dj,…,dn),其中,dj通过如下方式求解:
(A1)选取整数t,s,γ,c,δ,h,使其同时满足以下3个条件:(a)γc-δ<max(s,t)<δ;(b)2.2<h<n-2;(c)gcd(R1,R3)=1。其中,R1=δ(X+Y)m+c,R3=1+γ(X+Y)m,m=p1p2-1,e=tp1p2-1。
其中, X = &Sigma; j = 1 h a 1 j + &Sigma; j = h + 1 n a 1 j e , Y = &Sigma; j = 1 h a 2 j + &Sigma; j = h + 1 n a 2 j e .
选取正整数R2,使R2|(R1-1),gcd(R2,R3)=1,且R2>c,构造矩阵K3×2和矩阵D2×3,选择任意正整数z1,z2
K = s s + t s + &gamma; R 1 - &delta; R 3 s + t + &gamma; R 1 - &delta; R 3 s + &gamma; R 1 s + t + &gamma; R 1
D = - &delta; R 3 z 1 s + t + &gamma; R 1 ( 1 + z 1 ) - s - t + ( &delta; R 3 - &gamma; R 1 ) ( 1 + z 1 ) - &delta; R 3 z 2 - s - &gamma; R 1 ( 1 - z 2 ) s - ( &delta; R 3 - &gamma; R 1 ) ( 1 - z 2 )
(A2)计算矩阵C=K·A=(cyj),y=1,2,3。
(A3)选取3个整数P1=R1,P2=R2R3,P3=R1R3
(A4)求解同余方程组 d j = c 1 j ( mod P 1 ) d j = c 2 j ( mod P 2 ) d j = c 3 j ( mod P 3 ) , 如果P1、P2和P3不是两两互
素,具体计算公式为:
dj=(s+γR1-R1R3δ)a1j+(s+t+γR1-R1R3δ)a2jmodN
(1-3)将d=(d1,...,dn),N=R1R2R3和h一起作为公钥,将β11122122,D,P1,P2,P3,p1,p2,x1,x2一起作为对应的私钥。
(2)用公钥加密。进一步包括如下步骤:
(2-1)获取明文M=(m1,m2,…,mj,…,mn),选定随机参数ε;
(2-2)用步骤(1)得到的公钥对明文进行加密,得到密文C为:
C = &Sigma; i = 1 h d i m i + &Sigma; i = h + 1 n d i m i &epsiv; + &epsiv; mod N
(3)用私钥解密。进一步包括如下步骤:
(3-1)求解同余方程组 C P 1 = C mod P 1 C P 2 = C mod P 2 C P 3 = C mod P 3 .
(3-2)计算 S A 1 S A 2 = D &CenterDot; C P 1 C P 2 C P 3 T .
(3-3)通过解密方法获取ε。
具体地,计算 &delta;R 3 &epsiv; = S A 1 mod &delta;R 3 tp 1 - &delta;R 3 &epsiv; = S A 2 mod p 2 , &epsiv; = S A 1 / &delta; R 3 mod tp 1 &epsiv; = - ( &delta;R 3 ) - 1 S A 2 mod p 2 , 得到ε为模tp1p2下的唯一解。
(3-4)通过SA1,SA2和ε求解得到明文M=(m1,m2,…,mj,…,mn)。进一步包括如下步骤:
(3-4-1)根据私钥β11122122,p1,p2,当j>2时,利用公式 &beta; 1 j = x 1 &beta; 1 ( j - 2 ) - &beta; 1 ( j - 1 ) &beta; 2 j = x 2 &beta; 2 ( j - 2 ) - &beta; 2 ( j - 1 ) , 计算参数(β13,…,β1n)以及(β23,…,β2n)。
(3-4-2)当j=1时,计算 s 11 = ( S A 1 - &delta;R 3 &epsiv; ) / ( - &delta;R 3 tp 1 ) s 21 = ( S A 2 + &delta;R 3 &epsiv; ) / ( - &delta;R 3 tp 2 ) m 1 = &beta; 11 - 1 s 11 mod p 1 m 1 = &beta; 21 - 1 s 21 mod p 2 , 得到m1为模p1p2下的唯一解。
(3-4-3)当j=2,...,h时,计算 s 1 j = ( s 1 ( j - 1 ) - &beta; 1 ( j - 1 ) m j - 1 ) / p 1 s 2 j = ( s 2 ( j - 1 ) - &beta; 2 ( j - 1 ) m j - 1 ) / p 2 m j = &beta; 1 j - 1 s 1 j mod p 1 m j = &beta; 2 j - 1 s 2 j mod p 2 , 得到mj为模p1p2下的唯一解。
(3-4-4)当j=h+1时,计算 s 1 ( h + 1 ) = ( s 1 h - &beta; 1 h m h ) / &epsiv; p 1 s 2 ( h + 1 ) = ( s 2 h - &beta; 2 h m h ) / &epsiv; p 2 m h + 1 = &beta; 1 ( h + 1 ) - 1 s 1 ( h + 1 ) mod p 1 m h + 1 = &beta; 2 ( h + 1 ) - 1 s 2 ( h + 1 ) mod p 2 , 得到mh+1为模p1p2下唯一解。
(3-4-5)当j=h+2,…,n时,计算 s 1 j = ( s 1 ( j - 1 ) - &beta; 1 ( j - 1 ) m j - 1 ) / p 1 s 2 j = ( s 2 ( j - 1 ) - &beta; 2 ( j - 1 ) m j - 1 ) / p 2 m j = &beta; 1 j - 1 s 1 j mod p 1 m j = &beta; 2 j - 1 s 2 j mod p 2 , 得到mj为模p1p2下的唯一解。
实施例2
通过同步方法获取随机参数ε,本方法包括如下步骤:
(1)生成密钥。进一步包括如下步骤:
(1-1)采用迭代方式构造k×n维满秩矩阵A。进一步包括如下步骤:
(1-1-1)确定k=2。
(1-1-2)选取有限域Z,及有限域Z中的2个整数p1,p2
(1-1-3)在有限域Z上选取如下整数:(β1112)、(β2122)和(x1,x2)。令a11=β11,a12=β12p1,a21=β21,a22=β22p2
(1-1-4)构造矩阵A=(aij),其中,i=1,2,j=1,…,n,j>2时, a ij = x i p i 2 a i ( j - 2 ) - p i a i ( j - 1 ) mod p i k .
(1-2)通过混淆或扩散方式F得到向量d=(d1,d2,…,dj,…,dn),其中,dj通过如下方式求解:
(A1)选取整数t,s,γ,c,δ,h,使其同时满足以下3个条件:(a)γc-δ<max(s,t)<δ;(b)2.2<h<n-2;(c)gcd(R1,R3)=1。其中,R1=δ(X+Y)m+c,R3=1+γ(X+Y)m,m=p1p2-1,e=tp1p2-1。
其中, X = &Sigma; j = 1 h a 1 j + &Sigma; j = h + 1 n a 1 j e , Y = &Sigma; j = 1 h a 2 j + &Sigma; j = h + 1 n a 2 j e .
选取正整数R2,使R2|(R1-1),gcd(R2,R3)=1,且R2>c,构造矩阵K3×2和矩阵D2×3,选择任意正整数z1,z2
K = s s + t s + &gamma; R 1 - &delta; R 3 s + t + &gamma; R 1 - &delta; R 3 s + &gamma; R 1 s + t + &gamma; R 1
D = - &delta; R 3 z 1 s + t + &gamma; R 1 ( 1 + z 1 ) - s - t + ( &delta; R 3 - &gamma; R 1 ) ( 1 + z 1 ) - &delta; R 3 z 2 - s - &gamma; R 1 ( 1 - z 2 ) s - ( &delta; R 3 - &gamma; R 1 ) ( 1 - z 2 )
(A2)计算矩阵C=K·A=(cyj),y=1,2,3。
(A3)选取3个整数P1=R1,P2=R2R3,P3=R1R3
(A4)求解同余方程组 d j = c 1 j ( mod P 1 ) d j = c 2 j ( mod P 2 ) d j = c 3 j ( mod P 3 ) , 如果P1、P2和P3不是两两互素,具体计算公式为:
dj=(s+γR1-R1R3δ)a1j+(s+t+γR1-R1R3δ)a2jmodN
(1-3)将d=(d1,...,dn)和h一起作为公钥,将β11122122,D,P1,P2,P3,p1,p2,x1,x2,t一起作为对应的私钥。
(2)用公钥加密。进一步包括如下步骤:
(2-1)获取明文M=(m1,m2,…,mj,…,mn),选定随机参数ε。
(2-2)用步骤(1)得到的公钥对明文进行加密,得到密文C为:
C = &Sigma; i = 1 h d i m i + &Sigma; i = h + 1 n d i m i &epsiv;
(3)用私钥解密。进一步包括如下步骤:
(3-1)求解同余方程组 C P 1 = C mod P 1 C P 2 = C mod P 2 C P 3 = C mod P 3 .
(3-2)计算 S A 1 S A 2 = D &CenterDot; C P 1 C P 2 C P 3 T .
(3-3)通过同步方法获取ε。
同步的方法有很多,如外同步等。通信双方在同步的情况下即可获取参数ε。
(3-4)通过SA1,SA2和ε求解得到明文M=(m1,m2,…,mj,…,mn)。进一步包括如下步骤:
(3-4-1)根据私钥β11122122,p1,p2,当j>2时,利用公式 &beta; 1 j = x 1 &beta; 1 ( j - 2 ) - &beta; 1 ( j - 1 ) &beta; 2 j = x 2 &beta; 2 ( j - 2 ) - &beta; 2 ( j - 1 ) , 计算参数(β13,…,β1n)以及(β23,…,β2n)。
(3-4-2)当j=1时,计算 s 11 = ( S A 1 &delta; ) / ( - &delta;R 3 tp 1 ) s 21 = ( S A 2 ) / ( - &delta;R 3 tp 2 ) m 1 = &beta; 11 - 1 s 11 mod p 1 m 1 = &beta; 21 - 1 s 21 mod p 2 , 得到m1为模p1p2下的唯一解。
(3-4-3)当j=2,...,h时,计算 s 1 j = ( s 1 ( j - 1 ) - &beta; 1 ( j - 1 ) m j - 1 ) / p 1 s 2 j = ( s 2 ( j - 1 ) - &beta; 2 ( j - 1 ) m j - 1 ) / p 2 m j = &beta; 1 j - 1 s 1 j mod p 1 m j = &beta; 2 j - 1 s 2 j mod p 2 , 得到mj为模p1p2下的唯一解。
(3-4-4)当j=h+1时,计算 s 1 ( h + 1 ) = ( s 1 h - &beta; 1 h m h ) / &epsiv; p 1 s 2 ( h + 1 ) = ( s 2 h - &beta; 2 h m h ) / &epsiv; p 2 m h + 1 = &beta; 1 ( h + 1 ) - 1 s 1 ( h + 1 ) mod p 1 m h + 1 = &beta; 2 ( h + 1 ) - 1 s 2 ( h + 1 ) mod p 2 , 得到mh+1为模p1p2下的唯一解。
(3-4-5)当j=h+2,…,n时,计算 s 1 j = ( s 1 ( j - 1 ) - &beta; 1 ( j - 1 ) m j - 1 ) / p 1 s 2 j = ( s 2 ( j - 1 ) - &beta; 2 ( j - 1 ) m j - 1 ) / p 2 m i = &beta; 1 i - 1 s 1 i mod p 1 m i = &beta; 2 i - 1 s 2 i mod p 2 , 得到mj为模p1p2下的唯一解。
实施例3
本方法包括如下步骤:
(1)生成密钥。进一步包括如下步骤:
(1-1)采用迭代方式构造k×n维满秩矩阵A。进一步包括如下步骤:
(1-1-1)确定k=2,n=4。
(1-1-2)选取有限域Z,及有限域Z中的2个整数数p1=3,p2=7。
(1-1-3)选取有限域Z上的如下整数:β11=28,β12=10,β21=345,β22=52,x1=5,x2=9。令a11=β11p1=84,a21=β21p2=2415, a 22 = &beta; 22 p 2 2 = 2548 .
(1-1-4)构造矩阵A=(aij),其中,i=1,2,j=1,…,4,j>2时, a ij = x i p i 2 a i ( j - 2 ) - p i a i ( j - 1 ) mod p i k .
A = 84 90 108 81 2415 2458 5145 2401
(1-2)通过混淆或扩散方式F得到向量d=(d1,d2,d3,d4),向量dj通过如下方式求解:
(A1)构造矩阵K3×2和矩阵D2×3
选取整数t=1,s=4,γ=3,δ=2,h=2,c=1。
R1=6393481,R2=2,R3=9590221。
K = 4 5 5 6 19180447 19180448 , D = - 19180442 38360891 - 7 - 38360884 19180439 3
(A2)计算矩阵C=K·A=(cyj),y=1,2,3。
C = K &CenterDot; A = 12411 13100 26157 12329 14910 15738 31410 14811 47931939468 50598021734 100754893236 47605871855 ;
(A3)选取3个整数P1=R1,P2=R2R3,P3=R1R3
P1=6393481,P2=19180442,P3=61314895749301。
(A4)计算 d j = c 1 j ( mod P 1 ) d j = c 2 j ( mod P 2 ) d j = c 3 j ( mod P 3 ) , 得到
d=[47931939468,50598021734,100754893236,47605871855]
(1-3)将d,N=122629791498602,h=2一起作为公钥,将β11=28,β12=10,β21=345,β22=52,D,P1=6393481,P2=19180442,P3=61314895749301,p1=3,p2=7,x1=5,x2=9,t=1作为对应的私钥。
(2)用公钥加密。进一步包括如下步骤:
(2-1)设给定明文M=[1,11,3,2],选定随机参数ε=3。
(2-2)用步骤(1)得到的公钥对明文进行加密,得到密文C为:
C = &Sigma; i = 1 h d i m i + &Sigma; i = h + 1 n d i m i &epsiv; + &epsiv; mod N = 1796939448799
(3)用私钥解密。进一步包括如下步骤:
(3-1)计算 C P 1 = C mod P 1 = 465901 C P 2 = C mod P 2 = 559587 C P 3 = C mod P 3 = 1796939448799 .
(3-2)计算 S A 1 S A 2 = D &CenterDot; C P 1 C P 2 C P 3 T = - 48507337818 - 1748431551394 .
(3-3)通过解密方法获取ε:
计算 s 1 = S A 1 / ( - &delta; R 3 ) = 2529 s 2 = S A 2 / ( - &delta;R 3 ) = 91157 , &epsiv; = - s 1 mod 3 &epsiv; = s 2 mod 7 , 得ε=3。
(3-4)通过SA1,SA2和ε求解得到明文M=(m1,m2,…,mj,…,mn)。进一步包括如下步骤:
(3-4-1)根据私钥β11122122,p1,p2,当j>2时,利用公式 &beta; 1 j = x 1 &beta; 1 ( j - 2 ) - &beta; 1 ( j - 1 ) &beta; 2 j = x 2 &beta; 2 ( j - 2 ) - &beta; 2 ( j - 1 ) , 计算参数 [ &beta; 11 , &CenterDot; &CenterDot; &CenterDot; , &beta; 14 ] = 28 10 4 1 [ &beta; 21 , &CenterDot; &CenterDot; &CenterDot; , &beta; 24 ] = 345 52 15 1 .
(3-4-2)当j=1时,计算 s 11 = ( s 1 + &epsiv; ) / tp 1 = 844 s 21 = ( s 2 - &epsiv; ) / tp 2 = 13022 m 1 = &beta; 11 - 1 s 11 mod p 1 m 1 = &beta; 21 - 1 s 21 mod p 2 , 得m1=1。
(3-4-3)当j=2时,计算 s 1 j = ( s 1 ( j - 1 ) - &beta; 1 ( j - 1 ) m j - 1 ) / p 1 = 272 s 2 j = ( s 2 ( j - 1 ) - &beta; 2 ( j - 1 ) m j - 1 ) / p 2 = 1811 m j = &beta; 1 j - 1 s 1 j mod p 1 m j = &beta; 2 j - 1 s 2 j mod p 2 , 得m2=11。
(3-4-4)当j=3时,计算 s 1 ( h + 1 ) = ( s 1 h - &beta; 1 h m h ) / &epsiv; p 1 = 18 s 2 ( h + 1 ) = ( s 2 h - &beta; 2 h m h ) / &epsiv; p 2 = 59 m h + 1 = &beta; 1 ( h + 1 ) - 1 s 1 ( h + 1 ) mod p 1 m h + 1 = &beta; 2 ( h + 1 ) - 1 s 2 ( h + 1 ) mod p 2 , 得m3=3。
(3-4-5)当j=4时,计算 s 1 j = ( s 1 ( j - 1 ) - &beta; 1 ( j - 1 ) m j - 1 ) / p 1 = 2 s 2 j = ( s 2 ( j - 1 ) - &beta; 2 ( j - 1 ) m j - 1 ) / p 2 = 2 m j = &beta; 1 j - 1 s 1 j mod p 1 m j = &beta; 2 j - 1 s 2 j mod p 2 , 得m4=2。
本领域的技术人员容易理解,以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。

Claims (5)

1.一种多变量公钥加密方法,其特征在于,包括如下步骤:
(1)生成密钥,进一步包括如下步骤:
选取有限域Z及有限域Z中的k个整数p1,p2,…,pi,…,pk,其中,i为不大于k的正整数;在有限域Z上选取如下整数:(β1112),(β2122),…,(βi1i2),…,(βk1k2)和(x1,x2,…,xi,…,xk);构造与(β1112),(β2122),…,(βi1i2),…,(βk1k2)和p1,p2,…,pi,…,pk相关的两组参数a11,a21,…,ai1,…,ak1和a12,a22,…,ai2,…,ak2,使ai1和ai2的二进制长度相同;
构造k×n维满秩矩阵A=(aij),j=1,…,n,其中,j>2时, a ij = x i p i 2 a i ( j - 2 ) - p i a i ( j - 1 ) mod p i k ;
构造矩阵Kl×k和矩阵Dk×l,使其满足D·K=λ·Ek×k,且l≥k,其中,Ek×k是单位矩阵,λ为任意整数;
计算矩阵C=K·A=(cyj),y=1,...,l,选取正整数h,0<h<n,确定随机参数ε的取值范围[1,e],其中,t为任意正整数;
选取l个整数P1,...,Pl,满足不等式 ( &Sigma; j = 1 h c 1 j + &Sigma; j = h + 1 n c 1 j &CenterDot; e ) &CenterDot; &Pi; i = 1 k p i < P 1 &CenterDot; &CenterDot; &CenterDot; ( &Sigma; j = 1 h c lj + &Sigma; j = h + 1 n c lj &CenterDot; e ) &CenterDot; &Pi; i = 1 k p i < P l , 得到P1,...,Pl的最小公倍数N;
求解同余方程组 d j = c 1 j ( mod P 1 ) &CenterDot; &CenterDot; &CenterDot; d j = c lj ( mod P l ) , 得到向量d=(d1,d2,…,dj,…,dn);
将d和h一起作为公钥,或者将d、h和N一起作为公钥,对应的私钥至少包括(x1,x2,…,xi,…,xk)、p1,p2,…,pi,…,pk、P1,...,Pl、(β1112),(β2122),…,(βi1i2),…,(βk1k2)和D;
(2)用公钥加密,进一步包括如下步骤:
获取明文M=(m1,…,mn),选定随机参数ε;
用步骤(1)得到的公钥以概率加密的方式对明文进行加密,得到密文C;
(3)用私钥解密,进一步包括如下步骤:
求解同余方程组 C P 1 = C mod P 1 &CenterDot; &CenterDot; &CenterDot; C Pl = C mod P l ;
计算[SA1…SAk]T=D[CP1…CPl]T
通过解密方法或者同步方法获取随机参数ε;
通过(SA1,…,SAk)和随机参数ε求解得到明文M=(m1,…,mn)。
2.如权利要求1所述的多变量公钥加密方法,其特征在于,所述步骤(1)中,ai1=βi1pi
3.如权利要求1所述的多变量公钥加密方法,其特征在于,所述步骤(1)中,ai1=βi1,ai2=βi2pi
4.如权利要求1至3中任一项所述的多变量公钥加密方法,其特征在于,所述密文C由如下表达式中的任何一个得到:
C = &Sigma; i = 1 h d i m i + &Sigma; i = h + 1 n d i m i &epsiv; ,
C = &Sigma; i = 1 h d i m i + &Sigma; i = h + 1 n d i m i &epsiv; mod N ,
C = &Sigma; i = 1 h d i m i + &Sigma; i = h + 1 n d i m i &epsiv; + &epsiv;
C = &Sigma; i = 1 h d i m i + &Sigma; i = h + 1 n d i m i &epsiv; + &epsiv; mod N .
5.如权利要求1至4中任一项所述的多变量公钥加密方法,其特征在于,通过解密方法获取随机参数ε具体为:
计算同余方程组 &Sigma; y = 1 l d 1 y &CenterDot; &epsiv; = S A 1 mod | &lambda; | p 1 &Sigma; y = 1 l d 2 y &CenterDot; &epsiv; = S A 2 mod p 2 &CenterDot; &CenterDot; &CenterDot; &Sigma; y = 1 l d ky &CenterDot; &epsiv; = S Ak mod p k 得到随机参数ε,其中,|λ|表示整数λ的绝对值,为矩阵D的第i行所有元素之和。
CN201410192418.7A 2014-05-08 2014-05-08 一种多变量公钥加密方法 Active CN103973439B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201410192418.7A CN103973439B (zh) 2014-05-08 2014-05-08 一种多变量公钥加密方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201410192418.7A CN103973439B (zh) 2014-05-08 2014-05-08 一种多变量公钥加密方法

Publications (2)

Publication Number Publication Date
CN103973439A true CN103973439A (zh) 2014-08-06
CN103973439B CN103973439B (zh) 2017-03-08

Family

ID=51242515

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201410192418.7A Active CN103973439B (zh) 2014-05-08 2014-05-08 一种多变量公钥加密方法

Country Status (1)

Country Link
CN (1) CN103973439B (zh)

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105162590A (zh) * 2015-06-18 2015-12-16 南京邮电大学 一种云计算环境中并行同态数据加密方法
CN106209898A (zh) * 2016-07-29 2016-12-07 西安电子科技大学 基于群加密的虚拟机文件注入方法
CN106611127A (zh) * 2016-04-29 2017-05-03 四川用联信息技术有限公司 云计算中一种信息存取的加密方法
CN109818743A (zh) * 2019-01-24 2019-05-28 中国科学院信息工程研究所 一种椭圆曲线公钥文本化传递方法及系统
CN110138752A (zh) * 2019-04-19 2019-08-16 北京信息科学技术研究院 一种基于格的公钥加密方法
CN110266481A (zh) * 2019-06-14 2019-09-20 深圳职业技术学院 基于矩阵的后量子加、解密方法与解密装置
WO2021129470A1 (zh) * 2019-12-23 2021-07-01 郑珂威 基于多项式完全同态的二进制数据加密系统及方法

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7787623B2 (en) * 2006-03-30 2010-08-31 Kabushiki Kaisha Toshiba Key generating apparatus, program, and method
CN103516526A (zh) * 2013-10-23 2014-01-15 西安电子科技大学 一种改进的tts方案

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7787623B2 (en) * 2006-03-30 2010-08-31 Kabushiki Kaisha Toshiba Key generating apparatus, program, and method
CN103516526A (zh) * 2013-10-23 2014-01-15 西安电子科技大学 一种改进的tts方案

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
丁斗博: "多变量公钥密码中TTS方案的分析与改进", 《中国优秀硕士学位论文全文数据库》 *

Cited By (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105162590A (zh) * 2015-06-18 2015-12-16 南京邮电大学 一种云计算环境中并行同态数据加密方法
CN105162590B (zh) * 2015-06-18 2018-02-23 南京邮电大学 一种云计算环境中并行同态数据加密方法
CN106611127A (zh) * 2016-04-29 2017-05-03 四川用联信息技术有限公司 云计算中一种信息存取的加密方法
CN106209898A (zh) * 2016-07-29 2016-12-07 西安电子科技大学 基于群加密的虚拟机文件注入方法
CN106209898B (zh) * 2016-07-29 2019-04-23 西安电子科技大学 基于群加密的虚拟机文件注入方法
CN109818743A (zh) * 2019-01-24 2019-05-28 中国科学院信息工程研究所 一种椭圆曲线公钥文本化传递方法及系统
CN109818743B (zh) * 2019-01-24 2020-08-28 中国科学院信息工程研究所 一种椭圆曲线公钥文本化传递方法及系统
CN110138752A (zh) * 2019-04-19 2019-08-16 北京信息科学技术研究院 一种基于格的公钥加密方法
CN110138752B (zh) * 2019-04-19 2021-08-13 北京信息科学技术研究院 一种基于格的公钥加密方法
CN110266481A (zh) * 2019-06-14 2019-09-20 深圳职业技术学院 基于矩阵的后量子加、解密方法与解密装置
CN110266481B (zh) * 2019-06-14 2022-05-20 深圳职业技术学院 基于矩阵的后量子加、解密方法与解密装置
WO2021129470A1 (zh) * 2019-12-23 2021-07-01 郑珂威 基于多项式完全同态的二进制数据加密系统及方法

Also Published As

Publication number Publication date
CN103973439B (zh) 2017-03-08

Similar Documents

Publication Publication Date Title
Lu et al. Raptor: a practical lattice-based (linkable) ring signature
Rodriguez-Henriquez et al. A brief introduction to modern cryptography
CN103973439A (zh) 一种多变量公钥加密方法
Kanso et al. A fast and efficient chaos-based keyed hash function
CN111492616B (zh) 用于基于晶格的密码学的可配置设备
Su et al. A public key cryptosystem based on three new provable problems
CN112446052B (zh) 一种适用于涉密信息系统的聚合签名方法及系统
Niederhagen et al. Practical post-quantum cryptography
Agrawal et al. Elliptic curve cryptography with hill cipher generation for secure text cryptosystem
Clarke et al. Cryptanalysis of the dragonfly key exchange protocol
CN114095170B (zh) 数据处理方法、装置、系统及计算机可读存储介质
Li et al. Research and Realization based on hybrid encryption algorithm of improved AES and ECC
Mohan et al. Security analysis and modification of classical encryption scheme
JunLi et al. Email encryption system based on hybrid AES and ECC
Hamamreh et al. Hash algorithm for data integrity based on matrix combination
WO2009115824A1 (en) Encryption method
US10700870B2 (en) Signature generation and verification system
Bhadada et al. Montgomery implantation of ECC over RSA on FPGA for public key cryptography application
JP6053983B2 (ja) 暗号システム、署名システム、暗号プログラム及び署名プログラム
Li et al. Privacy-preserving large-scale systems of linear equations in outsourcing storage and computation
CN114362912A (zh) 基于分布式密钥中心的标识密码生成方法、电子设备及介质
Souror et al. Security analysis for SCKHA algorithm: stream cipher algorithm based on key hashing technique
CN107483206B (zh) 一种快速的量子安全的非对称加密方法
Chauhan An implemented of hybrid cryptography using elliptic curve cryptosystem (ECC) and MD5
WO2022172041A1 (en) Asymmetric cryptographic schemes

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant