具体实施方式
1.内部扰动—加方法(IPP)
1.1 IPP的基本思想
内部扰动—加是给本申请发明的方法中的第一类方法的名字。现在阐述IPP的基本思想,后续子节将显示IPP应用的某些特定例子,如应用于Matsumoto-Imai密码系统以产生所谓的内部扰动Matsumoto-Imai-Plus密码系统(PMI+)。
“扰动”一词用在这里的原因很类似扰动的物理意义,意指有意地给系统“改变”或增加一个小规模的“噪声”来看系统是怎样变化、因而导出系统本身的新的信息。关键之处是必须以可控制的方式进行扰动,以使系统本身没有根本性地改变。我们的方法的确是给密码系统“增加”随机的“小”的“噪声”,以使得系统的破解变难很多。扰动的方法包含在本发明人2003年11月提交的美国专利申请(20030215093),参见[D]。新的IPP是以前的扰动方法的进一步提升,使得系统能够抵抗新的差分攻击[FGS][DG]。
假设有一个多变量公钥密码系统。该系统的公钥由一个q个元素的有限域(或环)k和一组(m个)k上的低次(d次)n元多项式(f1(x1,...,xn),...,fm(x1,...,xn))组成。任何人可以知道公钥。用来加密消息或验证签名或认证信息的合法性的公开变换是对于k上n维向量表示的一个给定的值X=(x1,...,xn),计算(f1(x1,...,xn),...,fm(x1,...,xn))=(y1,...,ym)=Y;对签名和消息认证,还需要验证这个Y是否的确就是所给的签名或认证码(它是有限域或环k上一个m维向量Y′),如果是,接受签名或认证信息的合法性,否则拒绝接受。
秘密变换或计算是对任意给定的有限域或环k上一个m维向量Y=(y1,...,ym),找到使得(f1(x1,...,xn),...,fm(x1,...,xn))=(y1,...,ym)的n维向量X=(x1,...,xn)的过程。这需要使得(f1(x1,...,xn),...,fm(x1,...,xn))可以被分解为三个变换的复合(f1(x1,...,xn),...,fm(x1,...,xn))=L2о
FоL1(x1,...,xn)的秘密密钥的知识,这里ο表示变换的复合,L1,L2分别是k上n个和m个元素的组成的向量空间的可逆仿射线性变换,F(x1,...,xn)=(
f1(x1,...,xn),...,
fm(x1,...,xn))是另一个多项式变换,有快速算法有效地计算它的逆
F-1,或等价地,存在一个快速算法,对任意Y=(y1,...,ym),可以有效地计算一个满足
F(x1,...,xn)=(y1,...,ym)的值X=(x1,...,xn)。仅有合法用户可以得到某个给定的秘密密钥。秘密变换或计算过程要么用来解密一个消息,要么用来产生一个可公开验证的合法签名或认证码。
对r和α的每个参数,IPP方法可产生新的多变量公钥密码系统。这里r和α是两个正整数。
对一个固定的r和α,新的多变量公钥密码系统实例如下。
这个新的多变量公钥密码系统有一个新的公钥:与原始MPKC相同的k的域或(环)结构,和一组新的同样低次数(d次)k上多项式:(f1 +(x1,...,xn),...,f+ m+α(x1,...,xn))。用于加密或验证的公开变换或计算变成计算公开多项式(f1 +(x1,...,xn),...,f+ m+α(x1,...,xn))=(y1,...,ym+α)的值的过程。
现在新的秘密计算需要新的秘密密钥即
其中
L
1分别是k上m+α个和n个元素的组成的向量空间上随机或特定选择的可逆仿射线性变换,
是随机或特定选择的,z1,L,zr的线性部分作为xi的线性函数是线性无关的,gi(z1,L,zr),i=1,L,n是随机或特别选择的、以z1,L,zr为变量、次数小于等于(d)的多项式,pi(x1,L,xn),i=1,L,α同样也是随机或特别选择的以x1,L,xn为变量的次数小于等于(d)的多项式。
用于解密和生成合法签名或认证码的新的秘密变换或计算变成了这样一个过程:对于任意给定的Y+=(y1,...,ym+α),寻找满足(f1 +(x1,...,xn),...,f+ m+α(x1,...,xn))=Y+=(y1,...,ym+α)的那个(或一个)值X=(x1,...,xn)。
这个过程由合法用户通过以下步骤完成。
首先合法用户计算
得到中间值Y′+=(y′1,...,y′m+α)。然后逐个地选择所有可能的zi,i=1,..,r(总共qr种可能),使用原密码系统中的算法计算F-1(y′1-g1(z1,..,zr),...,y′m-gm(z1,..,zr))=(x″1,...,x″n)=X″+。
对于每个X″+,合法用户计算((p1(x″1,...,x″n),..,pα(x″1,...,x″n)),检查是否有((p1(x″1,...,x″n),..,pα(x″1,...,x″n))=(y′m+1,…,y′m+α),若满足,则保留该X″+,否则抛弃。
对于上一步骤保留下来的(x″1,...,x″n),合法用户计算L1 -1(x″1,...,x″n)。这样得到的值(x1,...,xn)就可能是解密后的消息、有效的签名或有效的认证码。
这里,多项式gi(z1,...,zr),i=1,..,n,可以被认为是添加到系统的“噪声”。多项式pi(x1,...,xn),i=1,..,α,可以被认为是来源于Patarin等人提出的已知方法[CGP1]的“加”多项式。
1.2扰动的Matsumoto-Imai-Plus密码系统的一个例子:IPP方法在Matsumoto-lmai密码系统中的应用
这基于发明者的工作[DG]。
1.2.1首先我们给出Matsumoto-Imai MPKC[MI]。
这里我们设k是一个q个元素的有限域,q=2k,因此k是一个特征2的有限域。我们选定多项式环k[x]中的一个n次不可约多项式,由此可得到域k的一个n次扩域K,K=k[x]/g(x)。K中的每一个元素都可以唯一表示为一个次数小于n的多项式。在K与k上n个元素组成的向量空间之间存在一个双射Φ,定义为Φ(a0+a1x+...+an-1xn-1)=(a0,a1,...,an-1)。
找到0与n之间的一个正整数θ使得GCD(qθ+1,qn-1)=1,定义K上一个新的变换
是一个可逆变换,而且
其中t(q
θ+1)=1 mod q
n-1。令F(x
1,...,x
n)是k
n到k
n的映射,定义为
这里
f
i(x
1,...,x
n),i=1,..,n,是以x
1,...,x
n为变量的的二次(d=2)多项式。令L
1,L
2为k
n上两个随机选择的可逆仿射线性变换,定义为:F(x
1,...,x
n)=(f
1(x
1,...,x
n),...,f
n(x
1,...,x
n))=L
1ο
FοL
2(x
1,...,x
n)。
这里每一个多项式都是二次的(d=2)。
Matsumoto-Imai密码系统的加密过程如下。若Bob想要建立他自己的Matsumoto-Imai MPKC,则他应该有任何人都易于得到的“公钥”,包括1)有加法和乘法结构的域k;2)n个二次多项式f1(x1,...,xn),...,fn(x1,...,xn)。若任何人,比如Alice,希望发送一个以向量X=(x1,...,xn)给出的秘密消息给Bob,则她将首先获得公钥,再计算值(f1(x1,...,xn),...,fn(x1,...,xn))=(y1,...,yn),(y1,...,yn)即为加密后的消息。
Bob需要保密的“私钥”包括两个仿射线性变换L1,L2。
参数θ既可以作为公钥的一部分,也可以作为私钥的一部分,因为猜测它并不难(只有n种选择,而n不会太大)。
现在Bob收到Alice发来的消息后,利用私钥,需要执行以下步骤进行解密:I)计算(
y
1,...,
y
n)=L
1 -1(y
1,...,y
n);II)计算
III)计算
至此得到秘密消息。
该MPKC已经由Patarin利用线性化方法攻破[P],因此没有了实际价值。
1.2.2 现在我们将使用IPP方法来得到新的安全的密码系统[DG]。下面给出这个新的多变量公钥密码系统的一个实例,其中r和α是固定的整数。固定小整数r,随机或特定地选择r个仿射线性函数z1,...,zr,
z1,L,zr的线性部分作为xi的线性函数是线性无关的。
这里定义映射Z kn→kr:Z(x1,...,xn)=(z1,...zr)。随机或特定地选择n个以z1,L,zr为变量的次数小于等于d的多项式gi(z1,L,zr),i=1,L,n,同样随机或特定地选择α个以x1,L,xn为变量的次数小于等于(d)的多项式pi(x1,L,xn),i=1,L,α。
我们称这个新的多变量公钥密码系统为扰动的Matsumoto-Imai-Plus(PMI+)。它有一个新的公钥,包括:与原Matsumoto-Imai MPKC一样的k的域(或环)结构;k上一组新的同样低次(二次)的公钥多项式:(f1 +(x1,...,xn),...,f+ m+α(x1,...,xn))。用于加密或验证的公开计算变为计算这一组多项式的值。
现在新的秘密计算需要新的秘密密钥即
其中
L
1分别是k上m+α个和n个元素的组成的向量空间上的、随机或特定地选择的可逆仿射线性变换,
p1(x1,L,xn),L,pα(x1,L,xn))。
PMI+的加密过程如下。公开可取的“公钥”包括:1)域k以及其中的加法和乘法结构;2)n+α个二次多项式(f1 +(x1,...,xn),...,f+ m+α(x1,...,xn))。
为加密以向量X=(x1,...,xn)给出的消息,应事先得到公钥,再计算值(f1 +(x1,...,xn),...,f+ m+α(x1,...,xn))=(y1,...,ym+α),(y1,...,ym+α)即为加密后的消息。
仅为合法用户得到的“秘密密钥”包括:1)
和L1;2)线性函数
3)二次函数gi(z1,...,zr),i=1,..,n;4)二次函数pi(x1,...,xn),i=1,..,α。
为了解密,新的秘密计算变成了这样一个过程:对于任意给定的Y
+=(y
1,...,y
m+α),寻找满足(f
1 +(x
1,...,x
n),...,f
+ m+α(x
1,...,x
n))=Y
+=(y
1,...,y
m+α)的值X=(x
1,...,x
n)。该过程由合法用户通过执行下列步骤实现:1)首先合法用户计算
得到中间值Y′
+=(y′
1,...,y′
m+α);2)逐个地选择所有可能的z
i,i=1,..,r(总共q
r种可能),使用原Matsumoto-Imai的算法计算
;3)对于每个X″
+,合法用户计算((p
1(x″
1,...,x″
n),..,p
α(x″
1,...,x″
n)),检查是否有((p
1(x″
1,...,x″
n),..,p
α(x″
1,...,x″
n))=(y′
m+1,...,y′
m+α),若满足,则保留该X″
+,否则抛弃;4)对于上一步骤保留下来的(x″
1,...,x″
n),合法用户计算L
1 -1(x″
1,...,x″
n),由此得到的值(x
1,...,x
n)即为解密后的消息。这儿必须小心选择整数r和α,确保它们比较大足以抵挡最近提出的差分攻击。
这儿我们要求r和α都不能太大。当α太大时,系统将变得不安全,尤其是面对Grbner基类型的攻击,如XL和F4,F5算法。当r太大时,系统的效率变得太低。
2.强化的内部扰动方法(EIP)
2.1 EIP的基本思想
我们将给出第二种方法,这种方法称为强化的内部扰动(EIP)。首先我们将给出EIP的基本思想以及EIP应用的一个例子,即将EIP用于HFE密码系统得到所谓的内部扰动的HFE密码系统(IPHFE)[DS3]。
这同样是使用扰动的思想。不过不同于第一种方法的是:第一种方法可认为是直接扰动,它仅仅是将新的多项式作为“噪声”加入原系统,强化的扰动则更进一步,它不仅仅是添加多项式而且它还将“噪声”多项式混合进原系统。
假设有一个多变量公钥密码系统作为一种密码通信过程。
这个公钥密码系统的公钥包括一个q元有限域(或环)的结构和任何人都可以得到的m个k上次数为d的n元多项式(f1(x1,...,xn),...,fm(x1,...,xn))。
这个公开变换既可以用于加密消息,也可以在签名和认证中用来验证真实性。该公开变换为:对于表示为有限域或环k上的n维向量的值X=(x1,...,xn),计算(f1(x1,...,xn),...,fm(x1,...,xn))=(y1,...,ym)=Y。对签名和消息认证,还需要验证这个Y是否的确就是所给的签名或认证码(它是有限域或环k上一个m维向量Y′),如果是,接受签名或认证信息的合法性,否则拒绝接受。
秘密变换或计算是这样一个过程:对于有限域或环k上的m维向量Y=(y1,...,ym),寻找满足(f1(x1,...,xn),...,fm(x1,...,xn))=(y1,...,ym)的n维向量X=(x1,...,xn)。这需要将(f1(x1,...,xn),...,fm(x1,...,xn))分解为三个变换的复合(f1(x1,...,xn),...,fm(x1,...,xn))=L2о
FоL1(x1,...,xn)的秘密密钥的知识,这里ο表示变换的复合,L1,L2分别是k上n个和m个元素的组成的向量空间的可逆仿射线性变换。F(x1,...,xn)=(
f1(x1,...,xn),...,
fm(x1,...,xn))是另一个多项式变换,有快速算法有效地计算它的逆
F-1,或等价地,存在一个快速算法,对任意Y=(y1,...,ym),可以有效地计算一个满足
F(x1,...,xn)=(y1,...,yn)的值X=(x1,...,xn)。仅有合法用户可以得到某个给定的秘密密钥。秘密变换或计算过程要么用来解密一个消息,要么用来产生一个可公开验证的合法签名或认证码。
EIP的第二种方法产生新的多变量公钥密码系统。作为这个新的非对称密码通信处理的一个实例,它有一组新的公开多项式(f
1 e(x
1,...,x
n),...,f
e m(x
1,...,x
n))。这组新的多项式有新的密钥,即
其中
由
F(x
1,..,x
n)添加随机或特定地选择的、z
1,...,z
r的次数小于等于d的多项式,同时将z
1,...,z
r的低次多项式与
F(x
1,...,x
n)的低次项相乘进行混合得到的。对于d=2,也就是二次多项式的情形,
如下得到
是随机或特定地选择的,作为xi的函数是线性无关的;gi(z1,...,zr),i=1,..,n,是随机或特定地选择的、以z1,...,zr为变量、次数小于等于d的多项式;qij(z1,...,zr),i=1,...,m;j=1,...,n,是随机或特定地选择的、以z1,...,zr为变量、次数小于等于d-1的多项式;αij是随机或特定地选择的;
fl 2(x1,..,xn)仅由
fl(x1,..,xn);的二次部分和常数部分组成。
这个新的MPKC有一个新的带有新的公开变换的密码通信过程,即将有限域或环k上的n维向量X=(x1,...,xn)通过k上的一组新的多变量多项式(f1 e(x1,...,xn),...,fe m(x1,...,xn))表示成为k上另一m维向量Y。
这个新的MPKC有一个新的带有新的秘密变换的密码通信过程,即由秘密知识
来逆转变换
(f1 e(x1,...,xn),...,fe m(x1,...,xn)),从而由值Y得到确定的(或一个)值X。这可由知道秘密密钥或密码密钥的合法用户执行以下步骤实现。
1)合法用户计算L2 -1(Y)得到中间值Y′=(y′1,...,y′m),2)然后逐个地选择所有可能的zi,i=1,..,r(总共qr种可能),并计算 其中
而且我们也要求计算
F(z1,..,zr)(x1,...,xn)的逆和计算F(x1,...,xn)的逆一样容易;3)最后一步是计算L1 -1(x″1,...,x″n),从而得到一个值(x1,...,xn)。
2.2 EIP应用于HFE密码系统的一个实例:内部扰动的HFE密码系统(IPHFE)
HFE密码系统是由Patarin提出的已经取得专利权的MPKC。该项专利1995年于法国收录归档,在美国于1996年收录归档(美国专利号:5,790,675)。
HFE[P1]密码系统依赖于一个特殊参数D。然而Kipnis、Shamir、Courtois和Faugere[C][KS][FJ]最近的工作表明D不能太小。但是随着D的增长,系统将变得很慢。作为EIP应用于HFE的一个实例,IPHFE能够得到一个新的效率更高的密码系统[DS3]。
2.2.1 HFE密码系统。
隐藏域方程密码系统也是由Patarin提出的[P1],他认为这个构造是最强的。该系统十分类似于Matsumoto-Imai密码系统。
这里假设k是q元有限域,其特征不必为2。我们选定一个k上多项式环k[x]中的一个n次不可约多项式g(x)。由此我们可以得到k的一个n次扩域K=k[x]/g(x)。K中的每一个元素都可以唯一表示为一个次数小于n的多项式。在K与k上n个元素组成的向量空间之间存在一个双射Φ,定义为Φ(a0+a1x+…+an-1xn-1)=(a0,a1,...,an-1)。我们定义K上的函数:
其中多项式的系数是随机选择的,最高次数D不能太大。
虽然一般来说,
不再是双射,但是我们可以找到
的逆,也就是说对于一个常数Y′,我们可以利用Berlekamp算法来解多项式方程
出于对Berlekamp算法的复杂度考虑,这儿的次数D不能太大,否则
的计算将变得不可能。
令
F(x1,...,xn)是kn到kn的映射,定义为这儿fi(x1,...,xn),i=1,..,n,是以x1,...,xn为变量的的二次(d=2)多项式。令L1,L2为kn上两个随机选择的可逆仿射线性变换,定义F(x1,...,xn)=(f1(x1,...,xn),...,fn(x1,...,xn))=L1о
FоL2(x1,...,xn)。
HFE密码系统的加密过程如下。公钥包括:1)域k及其上的加法和乘法结构;2)n个二次多项式f1(x1,..,xn),...,fn(x1,...,xn)。
加密一个以向量X=(x1,...,xn)给出的消息,需要先获得公钥,再计算值(f1(x1,...,xn),...,fn(x1,...,xn))=(y1,...,yn)。(y1,...,yn)即为加密后的消息。
密码学上的秘密,即私钥,包括两个仿射线性映射L
1,L
2,函数
以及大域K。
解密过程有以下几个步骤组成。合法用户收到加密的消息后可按如下步骤解密:I)计算(
y
1,...,
y
n)=L
1 -1(y
1,...,y
n);II)使用Berlekamp算法计算
III)计算
由此得到秘密消息。
注意在II)中,,有可能会获得多个解。这可以通过“加”方法来处理,即添加一些随机选择的多项式混合到系统中,用来辨别真正的解,还可以用其他技术如杂凑函数来处理。
2.2.2新的IPHFE密码系统
现在我们将EIP应用于HFE来生成一族新的公钥密码系统,这依赖于一个小的正整数参数r[DS3]。
作为这个新的非对称密码通信过程的一个实例,当我们固定r,新的公钥多项式变为(f
1 e(x
1,...,x
n),...,f
e m(x
1,...,x
n))。这组新的多项式有新的密码密钥,即
其中
由
F(x
1,..,x
n)添加随机或特顶选择的、z
1,...,z
r的次数小于等于d的多项式,同时将z
1,...,z
r的低次多项式与F(x
1,..,x
n)的低次项相乘进行混合得到的:
是随机或特定选择的,作为x
i的函数是线性无关的;g
i(z
1,...,z
r),i=1,..,n,是随机或特定选择的以z
1,...,z
r为变量、次数小于等于d的多项式:q
ij(z
1,...,z
r),i=1,...,m;j=1,...,n,是随机或特定选择的以z
1,...,z
r为变量、次数小于等于d-1的多项式:
f
1 2(x
1,..,x
n)仅由
f
1(x
1,..,x
n)的二次部分和常数部分组成,而且
其中系数是随机选择的,ΦоZоΦ
-1(x
1,...,x
n)=(z
1,..,z
r,0,..,0)。这个新的MPKC对于加密和解密是一个新的密码通信处理过程。
公钥包括:1)域k的结构;2)一组(n个)公钥多项式(f
1 e(x
1,...,x
n),...,f
e n(x
1,...,x
n))。要加密一条消息X=(x
1,...,x
n),需要得到这组新的公开多项式并计算(f
1 e(x
1,...,x
n),...,f
e n(x
1,...,x
n))=(y
1,...,y
n)。新的秘密密钥包括
L
1,L
2和域K的结构。
合法用户执行以下步骤来解密Y=(y1,...,yn):1)合法用户计算L2 -1(Y)得到中间值Y′=(y′1,...,y′m),2)然后逐个地选择所有可能的zi,i=1,..,r(总共qr种可能),并计算 其中
对于任意固定值z
1,...,z
r,我们再次使用Berlekamp算法求
的逆,当D不太大时,这个计算是很容易实现的;3)最后一步是计算L
1 -1(x″
1,...,x″
n),从而得到一个值(x
1,...,x
n)。注意在2)中,,有可能会获得多个解。对于HFE,这通过应用“加”方法或使用其他技术如杂凑函数很容易解决。
2.3 我们可以结合IPP和EIP方法应用于HFE,这样就可以得到内部扰动的HFE-加密码系统,即IPHFE+。
3.多层油—醋构造方法(MOVC)
3.1 MOVC的基本思想
第三种方法称为多层油—醋构造。我们将结合这种方法的一个应用例子,所谓的彩虹签名系统,来阐述这种方法。我们将首先给出基本思想,然后给出例子,这个例子也可在发明者的工作[DS4]中找到。
多层油—醋构造方法(MOVC)可用来将多变量公钥密码系统的不同或相同类型的构造通过油—醋构造来“粘”合在一起,来构造新的多变量公钥密码系统——非对称密码通信处理过程。
再次设有一个多变量公钥密码系统作为密码通信处理过程。
这个多变量公钥密码系统的公钥由一个有限域(或环)k的结构和一组(m个)k上的低次(d次)n元多项式(f1(x1,...,xn),...,fm(x1,...,xn))组成。任何人可以知道公钥。用来加密消息或验证签名或一个文件的认证码的真实性的公开变换或计算是,对于k上n维向量表示的一个给定的值X=(x1,...,xn),计算(f1(x1,...,xn),...,fm(x1,...,xn))=(y1,...,ym)=Y;对签名和消息认证,还需要验证这个Y是否的确就是所给的签名或认证码(它是有限域或环k上一个m维向量Y′),如果是,接受签名或认证信息的合法性,否则拒绝接受。
秘密变换或计算是对有限域或环k上任意给定的一个m维向量Y=(y1,...,ym),找到使得(f1(x1,...,xn),...,fm(x1,...,xn))=(y1,...,ym)的n维向量X=(x1,...,xn)的过程。这需要使得(f1(x1,...,xn),...,fm(x1,...,xn))可以被分解为三个变换的复合(f1(x1,...,xn),...,fm(x1,...,xn))=L2о
FоL1(x1,...,xn)的秘密密钥的知识,这里о表示变换的复合,L1,L2分别是k上n个和m个元素的组成的向量空间的可逆仿射线性变换,F(x1,...,xn)=(
f1(x1,...,xn),...,
fm(x1,...,xn))是另一个多项式变换,有快速算法有效地计算它的逆
F-1,或等价地,存在一个快速算法,对任意Y=(y1,...,ym),可以有效地计算一个满足
F(x1,...,xn)=(y1,...,yn)的值X=(x1,...,xn)。仅有合法用户可以得到某个给定的秘密密钥。秘密变换或计算过程要么用来解密一个消息,要么用来产生一个可公开验证的合法签名或认证码。
我们说一个如上描述的多变量密码系统是来自油—醋构造的,如果除了变换F(x1,...,xn)=(
f1(x1,...,xn),...,
fm(x1,...,xn))定义如下外,它和上面阐述的过程一样。变量x1,...,xn分为两组,第一组x1,...,xv称为油变量,第二组xv+1,...,xn称为醋变量。这些变量满足以下条件:如果我们给定或能够猜测醋变量的值,那么我们能找到
F的逆变换,或等价地,有一个快速算法可以解方程
F(x1,...,xn)=(y1,...,ym)(找到该方程一个解或全部解)。
用MOVC方法构造新的MPKC。一个新的多变量公钥密码系统及新的非对称密码通信处理过程描述如下。新的公开多项式集合变为(f
1 =(x
1,...,x
N),...,f
= M(x
1,...,x
N)),该集合有一个新的密码密钥即
其中
L
1,
L
2分别是k上N个和M个元素组成的向量空间上的随机选择的可逆仿射线性变换,
由
F
i(x
vi,...,x
N),i=1,..,1;1=v
1<v
2...<v
l<N连接而成:
而且每一个
F
i(x
v1..,x
N),i=1,..,1-1,都来自于油—醋构造。我们称
F
i为第i层油—醋构造,它将k上(N-v
l+1)个元素组成的向量变换为u
i个元素组成的向量,其中x
vi,...,x
vi+1-1作为油变量而x
vi+1,...,x
N作为醋变量。F
l(x
vl,...,x
N)不必非得是(但可以是)一个油—醋构造,它将k上(N-v
l+1)个元素组成的向量变换为u
l个元素组成的向量;M=u
1+u
2+...+u
l。
这个新的密码通信处理包括两部分。1)一个公开变换,即一个通过有限域或环k上一组(M个)新的多变量多项式(f1 =(x1,...,xN),...,f= M(x1,...,xN))将表示为k上N维向量的值
X,
X=(x1,L,xN),变换为k上M维向量
Y的过程;2)一个秘密变换,即这样一个过程:逆转由密码密钥
定义的变换(f1 =(x1,...,xN),...,f= M(x1,...,xN)),从而由
Y得到这个(或一个)值
X。这个过程由以下几步完成。首先对
Y应用
L2 -1得到中间值Y′=(y′1,...,y′M)。对(y′M-ui+1,...,y′M),应用
Fl -1得到值xvi,...,xN,我们用(x″vi,...,x″N)来表示。对于第(l-1)油—醋构造,在方程 中用(x″v1,...,x″N)替代醋变量xvi,...,xN并解方程得到油变量xvi-1,...,xvi-1的解。
对第1-2层油—醋构造应用相同的处理过程,并结合使用上一步得到的油变量得到油变量xvi-2,...,xvi-1-1。接下来逐层重复这些处理过程直到最后一层
F1,由此得到所有的x1,...,xN值,我们用x″1,...,x″N来表示。计算
L1 -1(x″1,...,x″N),最终得到值
X=(x1,...,xN)。
这个公开变换既可以用来加密消息,也可以用来验证一份文件的签名或认证码是否真正合法。秘密变换既可以用来解密消息,也可以用来生成一份文件的签名或认证码。
3.2 MOVC对油—醋签名体制的应用
我们将通过一个例子来演示MOVC方法。这个例子是我们将MOVC应用于油—醋签名体制,从而构造出的一族新的签名体制,即彩虹[DS4]。
3.2.1 油—醋构造
油—醋构造方法是由Patarin等人提出的[P2][KPG]。他们用它来构造了平衡和不平衡油—醋签名体制。平衡的油—醋签名体制最早由Patarin[P2]提出,但是它被Kipnis andShamir[KS1]攻破。不平衡族是由Patarin、Kipnis和Goubin提出的,是对平衡情形的改进[KPG]。
同样,我们假设有一个有限域k,在本节(3.2节)的剩余部分中,我们的工作都将在这个有限域k中进行。
设o和v是两个正整数。x1,...,xo这一组变量,称为油变量,x′1,...,x′v这一组变量称为醋变量。对于这一组油变量和醋变量,有以下形式的多项式f(x1,...,xo,x′1,...,x′v)我们称之为油—醋多项式:
设
F是ko+v到ko的变换,满足F(x1,...,xo,x′1,...,x′v)=(
f1(x1,...,xo,x′1,...,x′v),...,
fo(x1,...,xo,x′1,...,x′v)),其中每个fi(x1,L,xo,x′1,L,x′v),i=1,..,o,是随机的或特定选择的油—醋多项式,x1,...,xo为一组油变量,x′1,...,x′v是一组醋变量。
对于每一个ko中的值Y=(y1,...,yo),都可以很容易找到Y在变换
F下的原像,或者等价地,我们能够找到方程F(x1,...,xo,x′1,...,x′v)=(
f1(x1,...,xo,x′1,...,x′v),...,
fo(x1,...,xo,x′1,...,x′v))=Y的解,或者等价地,我们可以很容易计算F的逆。这可以如下实现:首先猜测所有的醋变量的值,这样就可使得上述方程变为所有油变量的一组(o个)线性方程组。若这组方程有解,我们可以很容易得到它的解;如果方程组无解,我们可以重复几次上述过程直到获得一个解,这经过少量的几次尝试就可以保证[P2][KPG1]。
对于油—醋签名体制,其公开多项式由F(x1,...,xo+v)=
FоL1(x1,...,xo+v)给出,其中L1是随机或特定选择的可逆仿射线性变换。注意,若我们刻意地选择
F或许我们需要在前面添加可逆仿射因子L2。若我们随机选择
F则我们不需要L2。
油—醋签名方案的建立如下。假设Bob要建立自己的油—醋签名体制。首先他选择如上所述的o,v,
F和L1,然后得到F(x1,...,xo+v)=
FоL1(x1,...,xo+v)。对于Bob的这个MPKC,其公钥包括:1)域k的结构;2)一组多项式F(x1,...,xo+v)。Bob要公开它的公钥,比如放在他的可公开访问的网页上。令Y=(y1,...,yo),它可以是文件本身也可以是文件的杂凑值,它可以看作是文件的某种集合。这儿要求杂凑过程是安全的并且是可公开得到的。为了给出文件Y的合法签名,Bob使用它的私钥
F和L1。然后他将找到一个值X″=(x″1,...,x″o+v)使得F(x″1,...,x″o+v)=Y。运用的秘密计算过程如下。Bob首先将
F-1应用于上述的Y来得到一个中间值,我们用(x′1,...,x′o+v)来表示。然后将L1 -1应用于(x′1,...,x′o+v),计算出L1 -1(x′1,...,x′o+v)。我们用(x″1,...,x″o+v)表示这个结果,这就是Bob想要的签名。然后Bob将签名(x″1,...,x″o+v)附加到文件Y或Y的杂凑值之后,并要指明他使用了哪一个杂凑函数。对于Alice,一个看到并接收到文件签名对的人,她将使用以下步骤来实现公开计算以验证文件的真实性。首先她得到F和杂凑值(如果需要的话)。然后计算F(x″1,...,x″o+v)来检验它是否真正地与Y相同,这个Y是她拥有的或是通过使用与Bob同样的杂凑来得到的。如果它们相同,那么这确实是一份Bob签署过的文件,否则就认为是伪造的予以拒绝。平衡情形指的是o=v的情形,它已经被Kipnis和Shamir[KS1]攻破,因此已经失去实际价值。不平衡的情形指的是v≥o的情形,目前是安全的,它要求qv-o很大。这意味着签名(o+v)至少是文件大小(o)的两倍。因此效率是非常低的。
3.2.2 彩虹和多层油—醋签名体制
设S为集合{1,2,3,...,n}。设v1,...,vu为满足0<v1<v2<???<vu=n的u个整数,定义整数集合S1={1,2,...,v1},1=1,...,u,使得我们有S1S2...Su=S。Si中元素个数为vi。令oi=vi+1-vi,i=1,...,u-1。令Oi为集合Oi=Si+1-Si,i=1,...,u-1。令P1是下列形式的多项式张成的二次多项式的线性空间:
这些都是油和醋类型的多项式,其中xi,i∈O1是油变量,xi,i∈S1是醋变量。我们称xi,i∈Oi为第1层油变量,xi,i∈S1为第1层醋变量。我们用P1表示所有的1层油和醋多项式集合。显然有Pi∈Pj,i<j。通过这种方式每个P1,1=1,...,u-1都是一个油和醋多项式。P1中每一个多项式都以xi,i∈O1为它的油变量,xi,i∈S1为它的醋变量。Pi中的油和醋多项式都可以定义为以xi,i∈Oi为油变量,以xi,i∈Si为醋变量。这可由事实Si+1=Si∪Oi,Si∩Oi=来说明。
接下来我们定义彩虹签名体制的变换
F。这是一个从kn到kn-v1的变换
F满足:
每个
由Pi中随机选择的oi二次多项式组成。
F实际上有u-1层油醋构造,一层覆盖一层。第一层由o1个多项式
f1,...,fo1组成,满足xj,j∈O1是油变量,xj,j∈S1是醋变量。第i层由oi个多项式
fvi+1,...,
fvi+1组成,满足xi,j∈Oi是油变量,xj,j∈Si是醋变量。由由此我们构造出了我们的变量的一个彩虹:
[x1,...,xv1];{xv1+1,...,xv2}
[x1,...,xv1,xv1+1,...,xv2];{xv2+1,...,xv3}
[x1,...,xv1,xv1+1,...,xv2,xv2+1,...,xv3];{xv3+1,...,xv4}
...;...
[x1,...,...,...,...,...,...,...,...,...,...,xvu-1];{xvu-1+1,...,xn}
上面的每一行代表彩虹的一层。对于上面的第1层,[]中的是醋变量,{}中的是油变量,并且每一层的醋变量都包含它之前所有层的醋变量。我们称
F是有u-1层的彩虹多项式映射。设L1,L2是两个随机选择的可逆仿射线性映射,L2作用在kn-v1上,L1作用在kn上。设F(x1,...,xn)=L2о
FоL1(x1,...,xn),它由n-v1个n元二次多项式组成。
假设Bob想要建立自己的彩虹签名体制。首先他选择如上所述的
F和L1,L2,并得到F(x1,...,xn)=L2о
FоL1(x1,...,xn)。对于Bob这个MPKC,其公钥包括:1)域k的结构;2)多项式集合F(x1,...,xn)。Bob公开他的公钥,例如可以放在他的可公开访问的网页上。
令Y=(y1,...,yn),它可以是文件本身,也可以是文件的杂凑值,它可以看作是文件的某种集合。这儿要求杂凑过程是安全的并且是可公开得到的。为了给出文件Y的合法签名,Bob使用他的私钥。私钥由
F和L1,L2组成。然后他将找到一个值X″=(x″1,...,x″o+v)使得F(x″1,...,x″n)=Y。运用的秘密计算过程如下。Bob首先将上述的L2 -1应用于Y并得到一个值,我们将这个值表示为(y′1,...,y′n-v1)。
接下来Bob需要求
F-1。这里,Bob需要解方程
F(x1,...,xn)=(y′1,...,y′n-v1).。为了解方程,Bob先随机选择值x1,...,xv1并且将这些值代入由
F1(x1,...,xv1)=(y′1,...,y′o1)给出的第一层的o1个方程中。这样得到了以o1个变量xo1+1,...,xv2为变量的一组(o1)线性方程组,解这个方程组就可得到值xo1+1,...,xv2。这仅仅是重复上面3.2.1节关于油—醋签名体制的求
F的逆的过程。
然后Bob得到所有的xi,i ∈S2。此后将这些值代入到第二层的多项式中又可得到o2个线性方程组,这是我们得到所有的xi,i∈S3。重复这个过程直到我们找到一个解。
任何时候只要有一个线性方程组无解,都将从头开始选择另一组值x1,...,xv1。持续下去直到找到一个解。若层数不太多,Bob有很高的概率能够成功。
我们将Bob找到的解表示为(x′1,...,x′n)。
然后将L1 -1应用于(x′1,...,x′o+v),计算出L1 -1(x′1,...,x′o+v),得到的结果(x″1,...,x″n)就是Bob想要的签名。然后Bob将签名(x″1,...,x″n)附加到文件Y或它的杂凑值之后,并要指明他所使用的杂凑函数。
对于Alice,一个看到并接收到文件/签名对的人,她将使用以下步骤来实现公开计算以验证文件的真实性。
首先她得到F和杂凑值(如果需要的话)。然后计算F(x″1,...,x″n)来检验它是否真正地与Y相同,这个Y是她得到的或是通过使用与Bob同样的杂凑函数得到的。如果它们相同,那么这确实是一份Bob签署过的文件,否则就认为是伪造的予以拒绝。在彩虹体制中,文件的长度是n-v1,签名的长度是n并且我们可使v1比n小很多。因此彩虹体制比[KPG]中提出的不平衡的油—醋签名体制效率更高。
4)方法的组合。我们可以组合任意两个方法一起来构造新的MPKC。例如,我们可以将IPP和MOVC结合起来,构造一个仅有二层的MPKC,第一层就使用PMI+,它的变量作为醋变量用于下一层的油—醋构造中。类似地,我们可以将EIP与MOVC结合起来。
我们也可以将三种方法一起结合起来。
5)一种构造我们方法的变体的方式是在我们的方法中选择特殊类型的多项式,如稀疏多项式,其中绝大多数项都为零。[YC1]和[WHLCY]中的MPKC就属于彩虹的这样一个例子。
1.[ACDG]Mehdi-Laurent Akkar,Nicolas T.Courtois,Romain Duteuil,Louis Goubin AFast and Secure Implementation of Sflash,Volume 2567,pp 267-278Lecture Notes inComputer Science.
2.[CM]Chen,J.,Moh,T.On the Goubin-Courtois Attack on TTM,Cryptology ePrintArchive(2001/72).
3.[CYP]Chen,J.,Yang,B.,Peng,B.Tame Transformation Signatures with Topsy-YurvyHashes IWAP′02.
4.[C]Nicolas T.Courtois,The Security of Hidden Field Equations(HFE),Progress incryptology,CT-RSA,LNCS,Vol.2020,(C.Naccache ed.),Springer,2001,Pages266-281.
5.[CG]Goubin,L.,Courtois,N.,Cryptanalysis of the TTM cryptosystem,Asiacrypt2000,LNCS 1976,44-57.
6.[CGP]Nicolas Courtois,Louis Goubin,Jacques Patarin FLASH,a Fast MultivariateSignature Algorithm Volume 2020,pp 0298 Lecture Notes in Computer Science.
7.[CGP1]Jacques Patarin,Louis Goubin,Nicolas Courtois,C-+* and HM:Variations aroundTwo Schemes of T.Matsumoto and H.Imai,ASIACRYPT′98,LNCS,Vol.1514,(K.Ohta and D.Pei ed.)Springer,1998,Page 35-50.
8.[CGP2]Jacques Patarin,Nicolas Courtois,Louis Goubin QUARTZ,128-Bit Long DigitalSignatures,Volume 2020,pp 0282Lecture Notes in Computer Science.
9.[DF]Fell,Harriet;Diffie,Whitfield,Analysis of a public key approach based on polynomialsubstitution.Advances in cryptology---CRYPTO′85(Santa Barbara,Calif.,1985),340--349,Lecture Notes in Comput.Sci.,218,Springer,Berlin,1986.
10.[D]Ding,Jintai,A New Variant of the Matsumoto-Imai Cryptosystem throughPerturbation},PKC′04,Lecture Notes in Computer Science 2947,Springer-VerlagHeidelberg.
11.[DG]Jintai Ding,Jason Gower.Inoculating Multivariate Schemes Against DifferentialAttacks.IACR eprint:2005/255.http://eprint.iacr.org.
12.[DS1]Jintai Ding and Dieter Schmidt,A Defect of the Implementation Schemes of the TTMCryptosystem,Technical Track,ACNS′03,http://eprint.iacr.org.
13.[DS2]Jintai Ding and Dieter Schmidt,The new TTM schemes are not secure Coding,Cryptography and Combinatorics 2003(K.Q.Feng,H.Niederreiter and C.P.Xing,eds.),Birkhauser,Basel.
14.[DS3]Jintai Ding and Dieter Schmidt,Cryptanalysis of HFEv and the Internal Perturbationof HFE cryptosystems},In Serge Vaudenay,editors Public Key Cryptosystems,PKC-2005,Lecture Notes in Computer Sciences,volume 3386,pages 288-301 Springer,2005.
15.[DS4]Jintai Ding,Dieter Schmidt.Rainbow,a new multivariable public key signaturescheme,the Third International Conference of Applied Cryptography and NetworkSecurity(ACNS 2005),New York,June 7-10,2005,Lecture Notes in Computer Science3531,Page 164-175,Springer,2005.
16.[DY],Jintai Ding,Zhijun Yin.Cryptanalysis of TTS and Tame-Like MultivariableSignature Schemes,presented and published in the Third International Workshop inApplied Public-key Infrastructure,pages 14-25,2004(IWAP′04).
17.[FJ]Jean-Charles Faug`ere and Antoine Joux,Algebraic cryptanalysis of hidden fieldequation(HFE)cryptosystems using Gr¨obner bases,In Dan Boneh,editor,Advances incryptology-CRYPTO 2003,LNCS,volume 2729,pages 44-60.Springer 2003.
18.[FGS]Pierre-Alain Fouque and Louis Granboulan and Jacques Stern,DifferentialCryptanalysis for Multivariate Schemes,Advances in Cryptology-UROCRYPT 2005,LNCS 3494,2005,Springer-Verlag GmbH,341-353.
19.[KPG]Aviad Kipnis,Jacques Patarin,Louis Goubin,Unbalanced Oil and VinegarSignature Schemes,Eurocrypt’99,LNCS,volume 1592,pages 206--222.Springer,1999.
20.[KS]Aviad Kipnis,Adi Shamir,Cryptanalysis of the HFE Public Key Cryptosystem byRelinearization,In M.Wiener,editor,Advances in cryptology-Crypto’99,LNCS,volume 1666,pages 19-30.Springer,1999.
21.[KS1]Aviad Kipnis,Adi Shamir,Cryptanalysis of the Oil & Vinegar Signature Scheme,Crypto′98,Lecture Notes in Computer Science,V.1462,Springer-Verlag Heidelberg.
22.[MI]Matsumoto,T.,Imai,H,Public quadratic polynomial-tuples for efficient signatureverification and message encryption,Advances in cryptology--EURO-CRYPT′88(Davos,1988),419--453,Lecture Notes in Comput.Sci.,330,Springer,Berlin,1988.
23.[M]Moh,T.T.,A fast public Key System with Signature and Master key functions,LectureNotes at EE department of Stanford University.(May 1999),http://www.usdsi.com/ttm.html.
24.[MCY]T.Moh,J.M.Chen and Boyin Yang,Building Instances of TTM Immune to theGoubin-Courtois Attack and the Ding-Schmidt Attack,IACR eprint:2004/168.http://eprint.iacr.org.
25.[P]Patarin,J.,Cryptanalysis of the Matsumoto and Imai public key scheme of Eurocrypt′88,Advances in Cryptology--Crypto′95,LNCS,Vol.963,(D.Coppersmith,ed.)Springer-Verlag,1995,Page 248-261.
26.[P1]Patarin,J.,Hidden field equations and isomorphism of polynomials,Eurocrypto′96,1996.33-48,LNCS,Spinger.
27.[P2]Patarin,J.,The oil and Vinegar signature scheme,The Dagstuhl Workshop onCryptography,September 1997.
28.[Sh]Shamir,Adi,Efficient signature schemes based on birational permutations,Advances incryptology--CRYPTO′93(Santa Barbara,CA,1998),257--266,Lecture Notes inComput.Sci.,1462,Springer,Berlin,1993.
29.[Sp]Shor,Peter,Polynomial-time algorithms for prime factorization and discrete logarithmson a quantum computer,SIAM Rev.41(1999),no.2,303--332.
30.[WHLCY]Lih-Chung Wang,Yuh-Hua Hu,Feipei Lai,Chun-yen Chou,Bo-Yin Yang,Tractable Rational Map Signature,Public Key Cryptography 2005.LNCS V.3386,244-257,Springer.
31.[WYHL]Lih-Chung Wang and Bo-Yin Yang,Yu-hua HU,Peipei Lai,A″Medium-Field″Multivariate Public-Key Encryption Scheme,Accepted for the RSA-CT 2006 and toappear in LNCS.
32.[YC]B.Yang,J.Chen,A More Secure and Efficacious TTS Signature Scheme,ICISC′03and http://eprint.iacr.org.
33.[YC1]Bo-Yin Yang,Jiun-Ming Chen,Building Secure Tame-like MultivariatePublic-Key Cryptosystems:The New TTS.ACISP 2005,LNCS V.3574,518-531,Springer.
34.[YCC]Bo-Yin Yang,Jiun-Ming Chen,Yen-Hung Chen,TTS:High-Speed Signatures ona Low-Cost Smart Card,CHES 2004,LNCS.V.3156,371-385,Springer。