CN101977109A - 线性混淆高次方程公钥密码算法 - Google Patents

线性混淆高次方程公钥密码算法 Download PDF

Info

Publication number
CN101977109A
CN101977109A CN2010105172203A CN201010517220A CN101977109A CN 101977109 A CN101977109 A CN 101977109A CN 2010105172203 A CN2010105172203 A CN 2010105172203A CN 201010517220 A CN201010517220 A CN 201010517220A CN 101977109 A CN101977109 A CN 101977109A
Authority
CN
China
Prior art keywords
equation group
equation
monomial
algorithm
pki
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.)
Pending
Application number
CN2010105172203A
Other languages
English (en)
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.)
Individual
Original Assignee
Individual
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 Individual filed Critical Individual
Priority to CN2010105172203A priority Critical patent/CN101977109A/zh
Publication of CN101977109A publication Critical patent/CN101977109A/zh
Pending legal-status Critical Current

Links

Landscapes

  • Complex Calculations (AREA)

Abstract

属于数据加密,数字签名,保密通信,网络和信息安全领域。本发明基于有限域上求解高次多变量多项式方程组的困难问题构造了一类单向陷门函数,并且给出了基于该单向陷门函数设计的公钥密码加密和解密算法。该算法具有运算速度快,安全性高等特点。

Description

线性混淆高次方程公钥密码算法
发明领域:
本发明涉及了一种单向陷门函数的构造以及利用这个单向陷门函数设计的公钥密码算法,是数据加密,数字签名,保密通信,计算机网络和信息安全领域的一种核心技术。
背景技术和现有相关技术:
本领域中现有的公钥密码算法有RSA密码算法,椭圆曲线密码算法(ECC),NTRU密码算法,隐含域方程密码算法(HFE)等,其中RSA的安全性基于大数分解问题的困难性,ECC的安全性基于求离散对数问题的困难性,NTRU的安全性基于寻找格上最短向量问题的困难性,HFE的安全性基于求解有限域上多元非线性方程组问题的困难性。
本发明设计的密码算法和HFE有相同的背景技术,都是基于求解有限域上多元非线性方程组这个困难问题而设计的。下面详细阐述这一技术背景。
设k是一个阶为q的有限域,fi(x1,x2,…xn)是k上的次数大于1的n元多项式,i=1,2,…n.令
Π = f 1 ( x 1 , x 2 , . . . , x n ) = y 1 f 2 ( x 1 , x 2 , . . . , x n ) = y 2 . . . f n ( x 1 , x 2 , . . . , x n ) = y n
由计算复杂性理论可知,求解方程组∏是一个NP-完全问题,也就是说任何求解方程组∏的算法的计算复杂度随着n的增大而指数的增大。那么当n足够大的时候,这个问题是无法求解的。
由方程组∏确定了一个是kn上的函数F
F(x1,x2,…xn)=(f1(x1,x2,…xn),f2(x1,x2,…xn),…fn(x1,x2,…xn))
求(y1,y2,…yn)=F(x1,x2,…xn)只需将变量(x1,x2,…xn)代入方程组∏,这是容易计算的,而求(x1,x2,…xn)=F-1(y1,y2,…yn),相当与求解方程组∏,当n足够大时,这是不可计算的。像这样的F就叫做单向函数。如果构造单向函数F的时候预留一定的陷门,使得当不知道该陷门的时候F是一个单向函数,其逆不可计算。但是当知道陷门的时候可以容易的计算F的逆,这样的函数叫做单向陷门函数。设计公钥密码算法的核心就是构造单向陷门函数。
HFE是与本发明最接近的且最广为人知的一类公钥密码算法,它与本发明都是基于求解有限域上多元非线性方程组这个困难问题而设计的,但是HFE与本发明的设计有本质的区别。下面介绍HFE的技术特征:
设k是一个阶为q的有限域,g(x)∈k[x]是k上的n次不可约多项式,K是k的n次扩域,且
Figure BSA00000315333200012
α是g(x)在K中的根。于是K中的的元素可以表示为x1+x2α+x3α2+…+xnαn-1,xi∈k.
设φ是从K到kn的标准线性映射,即
φ(x1+x2α+x3α2+…+xnαn-1)=(x1,x2,…,xn-1)
Figure BSA00000315333200021
是K上的一元多项式式函数,满足
Figure BSA00000315333200022
这里aij,bi,c∈K是随机选取的,θij
Figure BSA00000315333200023
ξi是正整数,且使得
Figure BSA00000315333200024
的次数不超过参数d。
令L1,L2是两个kn上的可逆仿射变换,令
Figure BSA00000315333200025
于是F是kn上的函数,即F(x1,x2,…xn)=(y1,y2,…yn)。
把F写成分量的形式就是:
F(x1,x2,…xn)=(f1(x1,x2,…xn),f2(x1,x2,…xn),…fn(x1,x2,…xn)),
F确定的方程组就是:
Π = f 1 ( x 1 , x 2 , . . . , x n ) = y 1 f 2 ( x 1 , x 2 , . . . , x n ) = y 2 . . . f n ( x 1 , x 2 , . . . , x n ) = y n
这里fi(x1,x2,…xn)是k上的n元二次多项式。
F或者∏就是HFE所构造的单向陷门函数,L1,L2是陷门。由背景技术的知识可知在不知道陷门的情况下,要求解方程组∏,当n足够大的时候是不可计算的,但是在知道陷门的情况下可以把对∏的求解转化为在有限域K上对一元多项式
Figure BSA00000315333200028
的求解,这个求解过程是可以计算的。具体转化过程如下:
设给定(y1,y2,…yn)∈kn,要求出一组(x1,x2,…xn)∈kn,使得F(x1,x2,…xn)=(y1,y2,…yn)。
首先令(y1′,y2′,…yn′)=L1 -1(y1,y2,…yn),然后用标准线性映射的逆映射将(y1′,y2′,…yn′)映射到扩域K上,即
Y′=φ-1(y1′,y2′,…yn′)=y1′+y2′α+y3′α2+…+yn′αn-1
然后在扩域K上解方程
Figure BSA00000315333200029
求解这个有限域上的一元多项式方程组有有效算法求解,比如BM算法。
设解出X′=x1′+x2′α+x3′α2+…+xn′αn-1,再利用标准线性映射把X′映射到kn上,即(x1′,x2′,…xn′)=φ(X′)
最后再令(x1,x2,…xn)=L2 -1(x1′,x2′,…xn′),则(x1,x2,…xn)就是所求的解。
HFE的核心特征可以归纳为:先在扩域K上构造一个容易求解的一元多项式函数
Figure BSA000003153332000210
然后用标准线性映射φ和两个可逆仿射变换L1,L2
Figure BSA000003153332000211
进行处理得到kn上的函数F,F的每个分量就是k上的n元多项式。把F或F的n个分量组成的方程组作为公钥方程组,把L1,L2
Figure BSA00000315333200031
作为私钥。由于HFE中对函数
Figure BSA00000315333200032
形式的限制,使得构造出来的公钥方程组的次数都不超过二次。
关于HFE的相关内容可以参考:
[1].Patarin,Jacques.Hidden Field Equations(HFE)and Isomorphism Polynomials(IP):Tow new families of asymmetric algorithms.Eurocrypt’96,volume 1070 of LNCS,pages 33-48.Springer.Extended Version:http://www.minrank.org/hfe.pdf.
[2].Jingtai Ding,Jason E.Gower and Dieter S.Schmidt.Multivariate Public Key Cryptosystems.Chapt 4,pages 96-108.Springer.
在HFE公钥密码算法提出之前,还有一个算法-MI公钥密码算法-也是基于求解有限域上的非线性多变量多项式方程组的困难问题而设计的,MI与HFE在构造单向陷门函数上的思想完全相同,区别仅在于在扩域K上选择不同的函数
Figure BSA00000315333200033
在HFE中,扩域K上的函数
Figure BSA00000315333200034
的形式为:
Figure BSA00000315333200035
而在MI中,扩域K上的函数
Figure BSA00000315333200036
的形式是:
F ~ ( X ) = X 1 + q θ
这里gcd(1+qθ,qn-1)=1。
MI中求
Figure BSA00000315333200038
逆的方法为:
找到一个整数t,使得t(1+qθ)≡1mod(qn-1),于是
F ~ - 1 ( X ) = X t
接下来由
Figure BSA000003153332000310
产生公钥方程组的方法完全相同,这里不再赘述。由于MI中对函数
Figure BSA000003153332000311
形式的限制,使得构造出来的公钥方程组的次数也都不超过二次。
关于MI的相关内容可以参考:
[1].Matsumoto Tsutomu,Imai Hideki.Public quadratic polynomial-tuples for efficient signature verification and message encryption.Advances in cryptology-Eurocrypt’88,volume 330 of LNCS,pages 419-453,Springer.
[2].Jingtai Ding,Jason E.Gower and Dieter S.Schmidt.Multivariate Public Key Cryptosystems.Chapt 1,pages 11-52.Springer.
然而,无论是MI还是HFE都是不安全的,目前对基本的MI和HFE的有效攻击算法有线性化方程方法,XL算法和快速计算Groboner基的算法F4和F5等。于是产生了许多对MI和HFE的改进,其中一种成功的改进就是在构造公钥方程组时加入“扰动”。即
Π = f 1 ( x 1 , x 2 , . . . , x n ) + f 1 * ( x 1 , x 2 , . . . , x n ) = y 1 f 2 ( x 1 , x 2 , . . . , x n ) + f 2 * ( x 1 , x 2 , . . . , x n ) = y 2 . . . f n ( x 1 , x 2 , . . . , x n ) + f n * ( x 1 , . . . , x 2 , . . . x n ) = y n
这里
Figure BSA00000315333200042
(x1,x2,…xn)是全次数为不超过2的多项式。对MI实施“扰动”后的变形叫做PMI,对HFE实施“扰动”后的变形叫做IPHFE。
关于PMI和IPHFE的相关内容可以参考:
[1].Ding,Jingtai.A new variant of the Matsumoto-Imai cryptosystem through perturbation.Public Key Cryptosystems,PKC 2004,volume 2947 of LNCS,pages 305-318,Springer
[2].Ding,Jingtai,Schmidt,Dieter.Cryptanalysis of HFEV and the internal perturbation of HFE.Public Key Cryptography:PKC 2005,January 23-26,2005,volume 3386 of LNCS,page 288-301,Springer.
另外2007年9月5日,索尼(中国)有限公司向中国国家知识产权局申请了一项名为多变量公钥加密方法和装置及其解密方法和装置的专利中(以下简称索尼公司专利),也涉及到了一种基于求解有限域上的非线性多变量多项式方程组的困难问题而设计的公钥密码算法,其技术特征如下:
与HFE中的代数结构类似,设k是一个阶为q的有限域,K是k的l次扩张,区别在于索尼公司专利规定q取值为2并且在扩域K上选取了三个二元多项式:
Y1=(X1 2X2)21(X1 2X2)
Y2=(X1X2)22(X1X2)
Y3=X1 2X2+X1X2
这里α1,α2∈K是随机选取的。然后每一个Yi经过标准线性映射φ和可逆仿射变换L1,L2的处理都可以获得l个k上的全次数为2的2l元多项式,总共可以获得3l个k上的全次数为2的2l元多项式。然后与PMI中加入“扰动”的方法类似,添加3l个k上的全次数不超过2的2l元多项式。于是得到了公钥方程组:
Π = f 1 ( x 1 , x 2 , . . . , x 2 l ) = y 1 f 2 ( x 1 , x 2 , . . . , x 2 l ) = y 2 . . . f 3 l ( x 1 , x 2 , . . . , x 2 l ) = y 3 l
加密过程就是直接把明文x1,x2,…x2l带入上述方程组得到y1,y2,…y3l。解密过程是先把y1,y2,…y3l还原为扩域K上的三个元素Y1,Y2,Y3,然后用索尼公司专利中的算法对上述三个二元多项式组成的方程组求解,把解得的X1,X2再转化为x1,x2,…x2l,这样就完成了解密过程。
索尼公司专利的技术特征可归纳为:在扩域K上选择容易求解的三个二元二次多项式方程,然后用标准线性映射φ和可逆仿射变换L1,L2把这三个二元二次多项式方程转化为基域k上的3l个2l元多项式,作为公钥方程组。由于索尼公司专利对这三个二元二次多项式方程形式的限制,使得公钥方程组中的多项式的全次数为2。
关于索尼公司专利的详细内容可以在中国国家知识产权局网上站检索中请号为200710149780.6,名称为多变量公钥加密方法和装置及其解密方法和装置的专利。
发明的目的及意义:
通过本发明的设计者对本领域背景技术和相关技术的研究,发现目前相关技术的特征都是在首先在扩域K上设计函数或者方程组,然后经过标准线性映射φ和可逆仿射变换L1,L2得到基域k上的多变元二次多项式方程组。这个转化过程是可逆的,因此公钥方程组完全由扩域上的函数决定。由于MI和HFE在扩域上选择具有特定形式的函数的,从而使得构造出来的公钥方程组的随机性受到限制。这也就是MI和HFE不能抵抗线性化方程方法,XL算法和快速计算Groboner基的算法F4和F5等算法攻击的原因。而加入“扰动”实质上是打破了扩域上的函数对公钥方程组的限制,增加了公钥方程组的随机性。所以PMI和IPHFE具有更高的安全性。但是上述公钥密码算法还是无法突破由扩域K上函数生成基域k上的多变元多项式公钥方程组这一技术特征。
另外,上述密码算法的另一个技术特征是它们构造出来的公钥方程组的次数都是二次的。虽然在计算复杂度理论上,求解有限域上的二次多元多项式方程组也是NP-完全问题,并且求解更高次数的多元多项式方程组的计算复杂度并不比求解二次多元多项式方程组的计算复杂度有实质性的提高。但是多项式的次数还决定这另外一个重要的参数,那就是多项式中所含单项式的个数。在一个多元多项式公钥方程组中如果含有的单项式的个数过少,则无法抵抗线性化方程等算法的攻击。
有限域GF(2)上二次n元单项式的个数为而所有n元单项式的个数为2n-1。如果只把公钥方程组中单项式的次数限制在二次的话,则所选择的可能行较少并且也没有充分利用剩余的大量高次单项式。本发明的设计者认为,随着计算能力的提高和各种攻击算法的发展,把公钥方程组的次数限制在二次,已经不能满足对多元公钥密码算法安全性进一步提高的需求了。
除了上述相关算法共有的技术特征给它们带来的限制以外,MI和索尼公司专利在本身的设计上也有一个的缺陷。MI在扩域K上设计函数
Figure BSA00000315333200052
的形式过于简单,并且对
Figure BSA00000315333200053
求逆需要做一个高次的模指数运算,解密效率不高。而索尼公司专利构造的公钥方程组包含3l个2l元多项式,这种超定方程组的结构,给解密带来了方便,但是也给攻击者提供了更多的机会,降低了算法的安全性。并且索尼公司专利设计的算法总是将一个2l比特明文加密成3l比特密文,显然加密编码的效率过低。
为了突破目前多变量公钥密码设计的局限,促进多变量公钥密码算法在安全和隐私保护领域的应用,打破国外算法对这一领域的垄断,本发明用新思想设计了一种更广泛,更安全的多变量公钥密码算法。
发明内容:
本发明放弃了在扩域上构造函数的思想,突破了把公钥方程组的次数限制在二次的局限,直接在基域上选取高次多元多项式方程组,在用可逆仿射变换对高次多元多项式方程组施加线性混淆,得到最终的公钥方程组。下面详细说明本发明的技术特征:
设k是一个阶为q的有限域,n是变量个数,且n≥q。则k上的所有单项式为:
x 1 , . . . , x n , x 1 2 , x 1 x 2 , . . . , x n 2 , . . . , x 1 i 1 x 2 i 2 . . . x n i n , . . .
这里0≤ij≤q-2。
规定x1,x2,…,xn的一个序>,比如x1>x2>…>xn。但是不限于此。
从上述(q-1)n-1个单项式中任意选取n个,记为:
m1(x1,x2,…,xn),m2(x1,x2,…,xn),…,mn(x1,x2,…,xn)
构造如下多元多项式方程组:
M = m 1 ( x 1 , x 2 , . . . , x n ) = y 1 m 2 ( x 1 , x 2 , . . . , x n ) = y 2 . . . m n ( x 1 , x 2 , . . . , x n ) = y n
因为M中的每一个多项式事实上只是一个单项式,所以我们把这样的方程组M叫做多元单项式方程组。
令F是方程组M对应的kn上的函数,即
F(x1,x2,…,xn)=(m1(x1,x2,…,xn),m2(x1,x2,…,xn),…,mn(x1,x2,…,xn))
                 =(y1,y2,…,yn)
再令G=L1оFоL2,这里L1,L2是kn上的两个可逆仿射变换。
G确定的方程组的为:
Π = g 1 ( x 1 , x 2 , . . . , x n ) = y 1 g 2 ( x 1 , x 2 , . . . , x n ) = y 2 . . . g n ( x 1 , x 2 , . . . , x n ) = y n
这里gi(x1,x2,…,xn)是k上的高次多元多项式,由于L1,L2是可逆仿射变换,故gi(x1,x2,…,xn)的次数与mi(x1,x2,…,xn)的次数相等。
上述构造的函数G就是本发明所构造单向陷门函数。令公钥为函数G或其方程形式∏,私钥为可逆仿射变换L1,L2和多元单项式方程组M。
加密过程为:
对任意的明文分组x1,x2,…,xn,代入方程组∏计算出y1,y2,…,yn,就是加密后的密文。
解密过程为:
对任意的密文分组y1,y2,…,yn,令(y1′,y2′,…yn′)=L1 -1(y1,y2,…yn),将y1′,y2′,…yn′带入方程M,解出x1′,x2′,…xn′,再令(x1,x2,…xn)=L2 -1(x1′,x2,…xn′),则x1,x2,…xn就是解密出的明文。
关于解密方法,本发明给出了解求解有限域上多元单项式方程组M的方法,其技术特征如下:
设M具有更一般的形式,即n个变量,l方程的方程组:
M = m 1 ( x 1 , x 2 , . . . , x n ) = y 1 m 2 ( x 1 , x 2 , . . . , x n ) = y 2 . . . m r ( x 1 , x 2 , . . . , x n ) = y r
首先令S={m1,m2,…,mr}这里mi=mi(x1,x2,…,xn)。
再令S1={mi|mi∈S,yi=mi(x1,x2,…,xn)≠0},S2={mi|mi∈S,yi=mi(x1,x2,…,xn)=0}
Figure BSA00000315333200072
为所有出现在S1中的单项式中的变量,在S2中的单项式中把出现在A中的变量直接消去,得到新的S2,令所有出现在新的S2中的单项式中的变量做成的集合为
Figure BSA00000315333200073
这里
Figure BSA00000315333200074
再令:
M ( 1 ) = m 1 ( 1 ) ( x 1 ( 1 ) , x 2 ( 1 ) , . . . , x s ( 1 ) ) = y 1 ( 1 ) m 2 ( 1 ) ( x 1 ( 1 ) , x 2 ( 1 ) , . . . , x s ( 1 ) ) = y 2 ( 1 ) . . . m u ( 1 ) ( x 1 ( 1 ) , x 2 ( 2 ) , . . . , x s ( 1 ) ) = y u ( 1 ) M ( 2 ) = m 1 ( 2 ) ( x 1 ( 2 ) , x 2 ( 2 ) , . . . , x t ( 2 ) ) = 0 m 2 ( 2 ) ( x 1 ( 2 ) , x 2 ( 2 ) , . . . , x t ( 2 ) ) = 0 . . . m v ( 2 ) ( x 1 ( 2 ) , x 2 ( 2 ) , . . . , x t ( 2 ) ) = 0
这里 m i ( 1 ) ∈ S 1 , m j ( 2 ) ∈ S 2 .
于是就把求解方程组M转化为求解M(1)和M(2),我们只需把M(1)和M(2)的解按照序>排列,就可得到方程组M的解。
对于M(2)的求解,本发明给出如下算法:
首先令
Figure BSA00000315333200079
这里
Figure BSA000003153332000710
再令
Figure BSA000003153332000711
即所有出现在只含有一个变量的单项式中的变量。于是方程组M的解就是
Figure BSA000003153332000712
为0,剩下的变量取k上的任意值,并且至少有一个取0。
对于M(1)的求解,本发明给出如下算法:
首先对方程组M(1)进行等价转化:
S ( 1 ) = { m 1 ( 1 ) , m 2 ( 1 ) , . . . , m u ( 1 ) } , m i ( 1 ) = m i ( 1 ) ( x 1 ( 1 ) , x 2 ( 1 ) , . . . , x s ( 1 ) ) ,
X ( 1 ) = { x 1 ( 1 ) , x 2 ( 1 ) , . . . , x s ( 1 ) } , x 1 ( 1 ) > x 2 ( 1 ) > . . . > x s ( 1 ) ,
Figure BSA000003153332000716
循环执行以下步骤,直到S(1)或X(1)中有一个为空集:
1:选取X(1)最大的变量
Figure BSA000003153332000717
Figure BSA000003153332000718
从X(1)除去。
2:选取S(1)中含有
Figure BSA00000315333200081
的,并且含有自变量个数最少的一个单项式
Figure BSA00000315333200082
Figure BSA00000315333200083
从S(1)除去,并添加
Figure BSA00000315333200084
Figure BSA00000315333200085
中。
3:设
Figure BSA00000315333200086
这里d是
Figure BSA00000315333200087
Figure BSA00000315333200088
中的次数,d>0且
Figure BSA00000315333200089
不包含
Figure BSA000003153332000811
中解出
Figure BSA000003153332000813
dt≡1mod(q-1)。
4:把代入S(1)中的每一个单项式中。
以上算法执行完后输出
Figure BSA000003153332000815
于是得到与方程组M(1)等价的方程组
M ‾ = m ‾ 1 ( x 1 ( 1 ) , x 2 ( 1 ) , . . . , x s ( 1 ) ) = y ‾ 1 m ‾ 2 ( x 1 ( 1 ) , x 2 ( 1 ) , . . . , x s ( 1 ) ) = y ‾ 2 . . . m ‾ n ( x 1 ( 1 ) , x 2 ( 1 ) , . . . , x s ( 1 ) ) = y ‾ u
由算法的过程可以看出中不含
Figure BSA000003153332000819
于是
Figure BSA000003153332000820
中只有n-u+1个变量,分别为
Figure BSA000003153332000821
我们选取
Figure BSA000003153332000822
为自由未知量解出
Figure BSA000003153332000823
再把
Figure BSA000003153332000824
代入
Figure BSA000003153332000825
解出
Figure BSA000003153332000826
以此类推,就解得
Figure BSA000003153332000827
关于
Figure BSA000003153332000828
的方程,当n-u不太大时,遍历
Figure BSA000003153332000829
的所有可能取值,就得到了方程组
Figure BSA000003153332000830
的所有解也就是方程组M(1)的所有解。
具体实施方式:
以下用一个例子来说明本发明所设计的单向陷门函数以及基于它的公钥加密和解密算法是如何工作的。
1.构造公钥和私钥:
令k是含有2个元素的有限域k=GF(2)={0,1},变量的个数n取4,实际应用中建议n>80。选取4个4元单项式:x2x4,x3x4,x1x3x4,x1x2x3x4,构造方程组:
M = x 2 x 4 = y 1 x 3 x 4 = y 2 x 1 x 3 x 4 = y 3 x 1 x 2 x 3 x 4 = y 4
令F(x1,x2,x3,x4)=(x1x2,x3x4,x2x3x4,x1x2x3x4)。
取GF(2)4上的两个可逆仿射变换L1,L2为:
L 1 ( a 1 , a 2 , a 3 , a 4 ) = 1 1 1 0 1 0 1 0 0 0 1 0 0 0 1 1 a 1 a 2 a 3 a 4 L 2 ( a 1 , a 2 , a 3 , a 4 ) = 1 0 0 1 0 1 0 1 0 0 1 1 0 0 0 1 a 1 a 2 a 3 a 4
这里(a1,a2,a3,a4)∈GF(2)4
令G=L1оFоL2,于是
G(x1,x2,x3,x4)=(x4+x1x4+x2x4+x1x3x4
x1x4+x2x4+x3x4+x1x3x4,x4+x1x4+x3x4+x1x3x4
x2x4+x1x2x4+x2x3x4+x1x2x3x4)
由G确定的方程组∏为:
Π = x 4 + x 1 x 4 + x 2 x 4 + x 1 x 3 x 4 = y 1 x 1 x 4 + x 2 x 4 + x 3 x 4 + x 1 x 3 x 4 = y 2 x 4 + x 1 x 4 + x 3 x 4 + x 1 x 3 x 4 = y 3 x 2 x 4 + x 1 x 2 x 4 + x 2 x 3 x 4 + x 1 x 2 x 3 x 4 = y 4
把∏作为公钥,把M,L1,L2作为私钥。
2.加密:设需要加密的明文比特为:1011010011…
把明文比特按n分组,这里n取4,明文分组为:(1,0,1,1),(0,1,0,0),…把(x1,x2,x3,x4)=(1,0,1,1)代入方程组∏计算出(y1,y2,y3,y4)=(1,1,0,0),于是明文分组1011加密后的密文就是1100,以此类推对所有明文分组进行加密。
3.解密:设需要解密的密文是1100,首先求出L1 -1(1,1,0,0)=(1,0,0,0),然后把(y1,y2,y3,y4)=(1,0,0,0)带入方程组M的右边,即
M = x 2 x 4 = 1 x 3 x 4 = 0 x 1 x 3 x 4 = 0 x 1 x 2 x 3 x 4 = 0
由x2x4=1知x2≠0,x4≠0,把等于0的方程中的x2,x4直接消去,于是把M转化为两个方程组
M(1)={x2x4=1 M ( 2 ) = x 3 = 0 x 1 x 3 = 0 x 1 x 3 = 0
解M(1)得x2=1,x4=1,解M(2)得x1=0,x2=0或x1=1,x2=0
于是得到方程组M的两个解(0,1,0,1),(1,1,0,1),再用L2 -1作用与这两组解,就得到
L2 -1(0,1,0,1)=(1,0,1,1),L2 -1(1,1,0,1)=(0,0,1,1)
在实际应用当中可以利用明文中的语义信息或者添加冗余的办法将不是明文的解0011排除掉,于是回复出了明文1011。
由于上述例子当中最后得到的方程组M(1)只有一个方程,没能演示本发明设计的求解有限域上的多元单项式方程组的算法是如何进行的,下面单独给出本发明所设计的求解有限域上的多元单项式方程组算法的例子:
设方程组M是有限域GF(3)上的4元单项式方程组:
M = x 1 x 2 x 4 = 1 x 1 x 2 x 3 = 2 x 1 x 3 x 4 = 1 x 2 x 3 x 4 = 2
根据本发明中设计的算法,解法如下:
S={x1x2x4,x1x2x3,x1x3x4,x2x3x4},X={x1,x2,x3,x4},
Figure BSA00000315333200102
取x1,x1x2x4,则X={x2,x3,x4},S={x1x2x3,x1x3x4,x2x3x4},
Figure BSA00000315333200103
由x1x2x4=1推出x1=x2x4,把x1=x2x4带入到S中的每一个单项式,得到S={x3x4,x2x3,x2x3x4}。
取x2,x2x3,则X={x3,x4},S={x3x4,x2x3x4},
Figure BSA00000315333200104
由x2x3=1推出x2=x3,把x2=x3带入到S中的每一个单项式,得到S={x3x4,x4}。
取x3,x3x4,则X={x4},S={x4}。
Figure BSA00000315333200105
由x3x4=2推出x3=2x4,带入中的每一个单项式,得到S={x4}。
取x4,x4,则
Figure BSA00000315333200106
Figure BSA00000315333200107
S ‾ = { x 1 x 2 x 4 , x 2 x 3 , x 3 x 4 , x 4 } .
于是就得到了与原方程组等价的方程组:
M ′ = x 1 x 2 x 4 = 1 x 2 x 3 = 1 x 3 x 4 = 2 x 4 = 2
由最后一个方程解出x4=2,带入前面的方程,得到x3=1,再把x4=2,x3=1代入前面的方程,解得x2=1,再把x4=2,x3=1,x2=1代入前面的方程,解得x1=2。于是原方程的解为(2,1,1,2)。

Claims (8)

1.一种基于求解有限域上多变量非线性多项式方程组的困难问题而设计的公钥密码算法,其特征在于:直接在基域k上构造公钥和私钥,加密和解密运算全部在基域上完成,所构造出的公钥方程组中多项式的次数可超过二次。
2.权利要求1中所述的在基域上构造公钥和私钥的方法,其特征在于:从所有有限域k上的n元单项式中随机选取n个,记为m1(x1,x2,…,xn),m2(x1,x2,…,xn),…,mn(x1,x2,…,xn),并构造多元单项式方程组
M = m 1 ( x 1 , x 2 , . . . , x n ) = y 1 m 2 ( x 1 , x 2 , . . . , x n ) = y 2 . . . m n ( x 1 , x 2 , . . . , x n ) = y n
和函数F(x1,x2,…,xn)=(m1(x1,x2,…,xn),m2(x1,x2,…,xn),…,mn(x1,x2,…,xn)),再用kn上的两个可逆仿射变换L1,L2将函数F混淆成G=(x1,x2,…,xn)=(g1(x1,x2,…,xn),g2(x1,x2,…,xn),…,gn(x1,x2,…,xn)),这里G=L1оFоL2,gi(x1,x2,…,xn)为高次多元多项式方程,其次数与mi(x1,x2,…,xn)的次数相同;于是得到方程组
Π = g 1 ( x 1 , x 2 , . . . , x n ) = y 1 g 2 ( x 1 , x 2 , . . . , x n ) = y 2 . . . g n ( x 1 , x 2 , . . . , x n ) = y n .
将∏或者G作为公钥,L1,L2,M作谓私钥。
3.权利要求1中所述的在基域上进行加密的运算,其特征在于:将明文序列按变元个数分组,并把每一组明文,记为x1,x2,…,xn直接带入权利要求2中所构造的公钥∏中或者G中,得到密文y1,y2,…,yn
4.权利要求1中所述在基域上进行解密的运算,其特征在于:将密文分组(y1,y2,…,yn)用权利要求2中所述的可逆仿射变换L2的逆变换L2 -1作用,得到(y1′,y2′,…yn′)=L1 -1(y1,y2,…yn),将y1′,y2′,…yn′带入权利要求2中所述的私钥方程组M的右边,解出x1′,x2′,…xn′,再用权利要求2中所述的可逆仿射变换L1的逆变换L1 -1作用得到(x1,x2,…xn)=L2 -1(x1′,x2′,…xn′),则x1,x2,…xn就是解密出的明文分组。
5.权利要求4中所述解密运算中求解有限域k上的n元单项式方程组M的算法,其特征在于:把M转化为两个维数更低的方程组M(1)和M(2),其中M(1)右边全不是零,M(2)右边全是零,然后分别求解。
6.权利要求5中所述将把M转化为两个维数更低的方程组M(1)和M(2)的方法,其特征在于:首先把出现在不为零的单项式中的变量做一个集合A,再在所有为零的单项式中把出现在集合A中的变量直接消去,最后所有右边不是零的方程组成M(1),所有右边是零的方程组成M(2)
7.权利要求5中所述的对右边全不是零的多变量单项式方程组M(1)的解法,其特征在于:把方程组M(1)规约为等价方程组
Figure FSA00000315333100021
按照自变量的一定顺序,比如x1>x2>…>xn
Figure FSA00000315333100022
中的每一个方程中出现自变量的最大下标严格小于前一个方程,其规约方法是:每次选取一个需要消去的自变量
Figure FSA00000315333100023
在原方程组中选取一个含有
Figure FSA00000315333100024
并且所含自变量个数最少的方程
Figure FSA00000315333100025
Figure FSA00000315333100026
从原方程组中删去,并添加到新的方程组中去,然后在
Figure FSA00000315333100027
中把看作未知的,其余变量看作已知的,把
Figure FSA00000315333100029
用其余变量表示为
Figure FSA000003153331000210
dt≡1mod(q-1),把
Figure FSA000003153331000211
代入到原方程组的每一个方程中消去
Figure FSA000003153331000212
如此循环进行下,最后得到等价的新的方程组。
8.一种基于以上公钥密码算法所设计数字签名方案,其特征在于:对需要签名的消息进行上述解密运算,得到的“明文”就是对该消息的签名,验证过程只需对签名进行上述加密运算,把得到的“密文”与消息比对,如果相同则确认这个签名。
CN2010105172203A 2010-10-21 2010-10-21 线性混淆高次方程公钥密码算法 Pending CN101977109A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN2010105172203A CN101977109A (zh) 2010-10-21 2010-10-21 线性混淆高次方程公钥密码算法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN2010105172203A CN101977109A (zh) 2010-10-21 2010-10-21 线性混淆高次方程公钥密码算法

Publications (1)

Publication Number Publication Date
CN101977109A true CN101977109A (zh) 2011-02-16

Family

ID=43576958

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2010105172203A Pending CN101977109A (zh) 2010-10-21 2010-10-21 线性混淆高次方程公钥密码算法

Country Status (1)

Country Link
CN (1) CN101977109A (zh)

Cited By (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102833265A (zh) * 2012-09-13 2012-12-19 北京航空航天大学 一种基于格理论的签名方案及其安全线性网络编码方法
CN103780383A (zh) * 2014-01-13 2014-05-07 华南理工大学 一种基于超球面的多变量公钥签名/验证系统及方法
WO2015039397A1 (zh) * 2013-09-17 2015-03-26 华南理工大学 一种多变量公钥加密/解密系统及加密/解密方法
CN105099693A (zh) * 2014-05-23 2015-11-25 华为技术有限公司 一种传输方法及传输装置
CN106100843A (zh) * 2016-06-17 2016-11-09 东南大学 多变量公钥生成、加密和解密方法
CN106788973A (zh) * 2016-12-19 2017-05-31 四川九洲电器集团有限责任公司 一种签名方法和发送设备
CN106936568A (zh) * 2017-02-16 2017-07-07 深圳大学 一种基于格的密码分析方法及装置
CN108510429A (zh) * 2018-03-20 2018-09-07 华南师范大学 一种基于gpu的多变量密码算法并行化加速方法
CN111586685A (zh) * 2020-04-26 2020-08-25 重庆邮电大学 一种基于格的匿名漫游认证方法
CN111917547A (zh) * 2020-07-24 2020-11-10 北京科技大学 基于陷门二元单向函数的广播加密方法及装置

Cited By (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102833265A (zh) * 2012-09-13 2012-12-19 北京航空航天大学 一种基于格理论的签名方案及其安全线性网络编码方法
CN102833265B (zh) * 2012-09-13 2015-01-07 北京航空航天大学 一种基于格理论的签名方案及其安全线性网络编码方法
WO2015039397A1 (zh) * 2013-09-17 2015-03-26 华南理工大学 一种多变量公钥加密/解密系统及加密/解密方法
CN103780383B (zh) * 2014-01-13 2017-05-31 华南理工大学 一种基于超球面的多变量公钥签名/验证系统及方法
US9948462B2 (en) 2014-01-13 2018-04-17 South China University Of Technology Hypersphere-based multivariable public key signature/verification system and method
WO2015103932A1 (zh) * 2014-01-13 2015-07-16 华南理工大学 一种基于超球面的多变量公钥签名/验证系统及方法
CN103780383A (zh) * 2014-01-13 2014-05-07 华南理工大学 一种基于超球面的多变量公钥签名/验证系统及方法
CN105099693A (zh) * 2014-05-23 2015-11-25 华为技术有限公司 一种传输方法及传输装置
CN105099693B (zh) * 2014-05-23 2018-10-19 华为技术有限公司 一种传输方法及传输装置
CN106100843A (zh) * 2016-06-17 2016-11-09 东南大学 多变量公钥生成、加密和解密方法
CN106788973A (zh) * 2016-12-19 2017-05-31 四川九洲电器集团有限责任公司 一种签名方法和发送设备
CN106936568A (zh) * 2017-02-16 2017-07-07 深圳大学 一种基于格的密码分析方法及装置
CN106936568B (zh) * 2017-02-16 2020-05-12 深圳大学 一种基于格的密码分析方法及装置
CN108510429A (zh) * 2018-03-20 2018-09-07 华南师范大学 一种基于gpu的多变量密码算法并行化加速方法
CN111586685A (zh) * 2020-04-26 2020-08-25 重庆邮电大学 一种基于格的匿名漫游认证方法
CN111586685B (zh) * 2020-04-26 2022-05-03 重庆邮电大学 一种基于格的匿名漫游认证方法
CN111917547A (zh) * 2020-07-24 2020-11-10 北京科技大学 基于陷门二元单向函数的广播加密方法及装置
CN111917547B (zh) * 2020-07-24 2021-06-01 北京科技大学 基于陷门二元单向函数的广播加密方法及装置

Similar Documents

Publication Publication Date Title
CN101977109A (zh) 线性混淆高次方程公钥密码算法
CN101834724B (zh) 一种公钥认证加密方法及数字签名方法
CN104038341B (zh) 一种基于身份的跨系统代理重加密方法
CN103200000B (zh) 一种量子计算环境下的共享密钥建立方法
CN101374043B (zh) 密钥协商的方法、加/解密的方法及签名/验证的方法
CN103023637B (zh) 一种云存储中可撤销的关键字搜索公钥加密及搜索方法
CN102523093B (zh) 一种带标签的基于证书密钥封装方法及系统
CN102396178A (zh) 信息生成装置、方法、程序以及其记录介质
CN103457726B (zh) 基于矩阵的多变量公钥加密方法
CN102263638A (zh) 认证设备、认证方法、程序和签名生成设备
CN103501227A (zh) 一种改进的多变量公钥密码加解密方案
Li et al. Fully secure identity-based signcryption scheme with shorter signcryptext in the standard model
CN104135473A (zh) 一种由密文策略的属性基加密实现身份基广播加密的方法
CN103780382A (zh) 一种基于超球面的多变量公钥加密/解密系统及方法
Shao et al. Unidirectional identity-based proxy re-signature
KR20150015518A (ko) 암호 시스템, 암호 방법, 암호 프로그램을 기록한 컴퓨터 판독가능한 기록 매체 및 복호 장치
CN105516340A (zh) 一种云存储数据可恢复性验证方法及系统
CN103490883A (zh) 一种多变量公钥加密/解密系统及加密/解密方法
CN102521785A (zh) 用于图像共享的基于EC-ElGamal算法的同态图像加密和解密方法
CN101783728B (zh) 隐藏域上遍历矩阵的公钥加密方法
Mittal et al. A quantum secure ID-based cryptographic encryption based on group rings
Bouchkaren et al. A fast cryptosystem using reversible cellular automata
Benhamouda et al. Easing Coppersmith methods using analytic combinatorics: Applications to public-key cryptography with weak pseudorandomness
CN101860796A (zh) 一种抗同谋攻击的网络组播信息加密方法
CN102006167B (zh) 基于代数的对消息匿名环签名的方法

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C02 Deemed withdrawal of patent application after publication (patent law 2001)
WD01 Invention patent application deemed withdrawn after publication

Application publication date: 20110216