CN1281203A - 用于求解有限域上方程系统的设备和用于逆运算外延域元素的设备 - Google Patents
用于求解有限域上方程系统的设备和用于逆运算外延域元素的设备 Download PDFInfo
- Publication number
- CN1281203A CN1281203A CN00120117A CN00120117A CN1281203A CN 1281203 A CN1281203 A CN 1281203A CN 00120117 A CN00120117 A CN 00120117A CN 00120117 A CN00120117 A CN 00120117A CN 1281203 A CN1281203 A CN 1281203A
- Authority
- CN
- China
- Prior art keywords
- equation
- coefficient
- mould
- calculating
- contrary
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/60—Methods or arrangements for performing computations using a digital non-denominational number representation, i.e. number representation without radix; Computing devices using combinations of denominational and non-denominational quantity representations, e.g. using difunction pulse trains, STEELE computers, phase computers
- G06F7/72—Methods or arrangements for performing computations using a digital non-denominational number representation, i.e. number representation without radix; Computing devices using combinations of denominational and non-denominational quantity representations, e.g. using difunction pulse trains, STEELE computers, phase computers using residue arithmetic
- G06F7/724—Finite field arithmetic
- G06F7/726—Inversion; Reciprocal calculation; Division of elements of a finite field
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F17/00—Digital computing or data processing equipment or methods, specially adapted for specific functions
- G06F17/10—Complex mathematical operations
- G06F17/11—Complex mathematical operations for solving equations, e.g. nonlinear equations, general mathematical optimization problems
- G06F17/12—Simultaneous equations, e.g. systems of linear equations
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computational Mathematics (AREA)
- Mathematical Analysis (AREA)
- Mathematical Optimization (AREA)
- Mathematical Physics (AREA)
- Pure & Applied Mathematics (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Operations Research (AREA)
- Software Systems (AREA)
- Databases & Information Systems (AREA)
- Algebra (AREA)
- Computing Systems (AREA)
- Complex Calculations (AREA)
Abstract
一个方程转变单元三角变换矩阵M和向量v以产生用于有n个未知数的线性方程系统M′x=v′的矩阵M′和向量v′,该线性方程系统等价于有n个未知数的线性方程系统Mx=v,三角变换在转变矩阵M为上三角矩阵的同时不改变矩阵M的对角线元素为1。逆运算单元计算矩阵M′的对角线元素的逆运算。方程计算单元发现使用矩阵M′、向量v′的线性方程系统M′x=v′的解,并算出对角线元素的逆。逆计算单元计算在有限域GF(p)的外延域GF(q)中元素的逆Ⅰ。
Description
本申请基于在日本提出的11-203055和2000-140886号申请,在这里一并参考了其内容。
本发明涉及用于信息安全的加密和纠错技术,特别涉及用于外延域和方程系统的计算技术。
最近几年在数据通讯中加密通讯或数字签名技术已经越来越多的得到使用。
加密通讯技术允许执行通讯并不暴露通讯内容给第三方。其间,数字签名技术能让接受者鉴别通信内容是否有效或信息是否来自一定的发送者。这样的加密通讯或数字签名技术使用一种称做公共钥匙加密的加密系统。公共钥匙密码法提供了一个方便的方法来管理多个用户各自的密匙,这因而成为执行大量用户通讯的基本技术。
在公共钥匙加密法中,使用不同的钥匙来加密和解密,其中解密钥匙是秘密的,加密钥匙是公开的。这里,对于公共钥匙加密法的基本原理之一是所谓的离散对数问题。离散对数问题的代表性例子是基于有限域的问题和基于椭圆曲线的问题。这样的问题在Neal Koblitz(1987)“数论和密码学课程(A Course in Numberr Theory andCryptography),Springer-Verlag”中进行了详细的描述。
(椭圆曲线离散对数问题)
椭圆曲线离散对数问题如下。
令E是一个在有限域GF(q)(q=pn,p是素数,n是正整数)中定义的椭圆曲线,假定E的阶数能被一个大素数整除时,在椭圆曲线E上的点G被作为基点。这就是说,问题是发现整数x使得
Y=x*G
其中Y是在E上的给定点,如果这样的整数x存在的话。
在这个定义中,操作符*代表对椭圆曲线求幂,使得x*G意思是在E上把G自己加了x倍。GF(q)是一个有限域GF(P)的外延域。对于外延域的细节,看T.Okamoto & H.Yamaoto(1997)所著“现代加密,信息科学系列的数学(Modern Encryption,Mathematics ofInformation Sciences Series),Sangyo,Tosho”26~28页。
(先前技术1:使用椭圆曲线离散对数问题的ElGamal签名方案)
使用椭圆曲线离散对数问题的ElGamal签名方案在下面参考图9描述。
在图中,一个由用户A使用的器件310(后面称为“用户A310”),一个管理中心320,和一个由用户B使用的器件330(后面称为“用户B330”)通过网络进行连接。
令p是一个素数,q=pn,n是一个正整数,E是一个在有限域GF(q)上的椭圆曲线,其中G是E的一个基点,r是G的阶数。象上面说的,r是最小正整数并满足
r*G=0
其中0是在椭圆曲线E上在附加组中的零元素。
(1)由管理中心320进行的公共钥匙的产生
第一,管理中心320产生一个使用了预先知到的密匙XA的用
户A310的公共钥匙YA,根据方程
YA=xA *G(S1,S2)。
管理中心320作为系统参数通知了有限域GF(q)、椭圆曲线E和基点G,并公开用户A310的公共钥匙YA给用户B330(S3,S4)。
(2)由用户A310进行的签名发生
用户A310产生一个随机数k(S5),计算R1=(rx,ry)=k*G(S6),并发现s满足
s×k=m+rx×xAmodr (S7)
其中m是从用户A310到用户B330传送的信息。
用户A310传送信息m和信号(R1,s)到用户B330(S8)。
(3)由用户B330进行的签名校验
用户B330校验用户A310的真实性,通过判断是否s*R1=m*G+rx *YA为真(S9)来进行。
该方程从下面推出
s*R1=[((m+rx×xA)/k)×k]*G
=(m+rx×xA)*G
=m*G+(rx×rA)*G
=m*G+rx×YA
在这个使用了椭圆曲线离散对数问题的ElGamal数字签名方案中,椭圆曲线的求幂被重复执行以产生公共钥匙和签名并鉴别签名。
对于在椭圆曲线求幂上的细节,看在Miyaji,Ono & Cohen(1997),Advances in Cryptology-Proceedings of ICICS’97,LectureNotes in Comptuer Science,Springer-Verlag中82~290页上的文章“Emcient Elliptic Curve Exponentiation”(后面称为“文件1”)。
令一个椭圆曲线由方程形式定义
y2=x3+a×x+b
在椭圆曲线上的某些点P由称做仿射坐标的的2元坐标表示。
在2元坐标上的椭圆曲线的求幂已知包括在有限域GF(q)上的逆运算操作。
文件1作了所谓投射坐标的3元坐标的简要提示。2元坐标能被转变成对应的3元坐标如下所示
(x1,y1)→(x1,y1,1)
在3元坐标中的椭圆曲线的求幂包括在有限域GF(q)上的非逆运算操作。因为逆运算有限域元素通常花费大量的计算时间,3元坐标经常用在椭圆曲线求幂中。
然而,当转变3-元坐标成相应的2-元坐标时,如下所示(X,Y,Z)→(X/Z,Y/Z)
在有限域(q)上逆运算是必要的。
例如,在图9中步骤S6中,在2-元坐标被转变成3-元坐标后,椭圆曲线求幂在3-元坐标上执行,结果3-元坐标被转变成2-元坐标。
(先前技术2:在外延域中的转变)
在外延域GF(q)(q=pn,p是素数,n是正整数)上常规的逆运算操作按照下面的方式进行。
出于简单的目的,外延域GF(q)的生成程序多项式被设成f(g)=gn-β,它的根是α,在生成程序多项式中输入的GF(q)元素被设成
x=x0+x1×α+…+xn+1×αn-1
(1) 步骤1
基于GF(q)的元素x,一个对于Yi(i=0,1,…,n-1)的方程系统被形成。
x0Y0+βxn-1Y1+βxn-2Y2+…+βx1Yn-1=1
x1Y0+βx0Y1+βxn-1Y2+…+βx2Yn-1=0
x2Y0+βx1Y1+βx0Y2+…+βx3Yn-1=0
xn-2Y0+βxn-3Y1+βxn-4Y2+…+βxn-1Yn-1=0
xn-1Y0+βxn-2Y1+βxn-3Y2+…+βx0Yn-1=0
(2) 步骤2
寻找方程系统的解Yk(k=(0,1,…,n-1))。
(3) 步骤3
从结果Yk(k=(0,1,…,n-1)),逆运算
I=Y0+Y1α+…+Yn-1αn-1
因而获得在外延域GF(q)中的元素x的逆。
逆运算操作的有效性在下面示出。如果逆运算I和元素x满足关系
xI=1modf(g)
然后
xI=x0(y0+y1α+…+yn-1αn-1)
+x1α(y0+y1α+…+yn-1αn-1)
+x1α2(y0+y1α+…+yn-1αn-1)
_
+xn-1αn-1(y0+y1α+…+yn-1αn-1)
然后
αn=βmodf(g)
对应地,
xI=x0(y0+y1α+…+yn-1αn-1)
+x1(y0α+y1α2+…+yn-1β)
+x2(y0α2+y1α3+…+yn-1αβ)
+xn-1(y0(αn-1+y1β+…+yn-1αn-2β)其也可以α的升幂排列如下:
从这个方程和关系式xI=1,在步骤1中推出了方程系统。
因此,在外延域GF(q)中计算逆运算等价于在基本域GF(p)上求解方程系统。
虽然前面的例子出于简化的目的使用形式为gn-β的生成程序多项式,方程系统能由同样的过程形成普通形式的生成程序多项式。
(先前技术3:在基本域GF(p)上的方程系统的解)
用于求解在基本域GF(q)上的方程系统的常规方法在下面描述。这种方法称做高斯消去法。对于高斯消去法中的细节,看K.Mizugmi(1985),Mathematical Calculations by Computers,Intro-duction to Programming Series,Asakura Shoten,76~82页(后面称为“文件2”)。
一个对于xk(k=0,1,2,…,n-1)的方程系统
a11x0+a12x1+…+ainxn-1=b1
a21x0+a22x1+…+a2nxn-1=b2
_
an1x0+an2x1+…+annxn-1=bn
通过高斯消去法按照下面的模式求解。(步骤1)分别给出矩阵M和向量v
然后,把上面的方程系统能化简写做MX=v
矩阵M和向量v是三角变换,以便把阵M变成上三角形式,结果产生了矩阵M'和向量v'。这里,三角变换是这样的一种转变,将在矩阵的对角线元素下的所有元素改变为0,并把这样转变的矩阵称做上三角矩阵。
这种常规三角变换的过程在下面参考图10进行解释。
首先,令计数器j为1(S21)。接着,计算ajj的逆Ij(S22),分配1给ajj(S23),令j+1≤k≤n(S24),计算ajj=ajk×Ij和bj=bj×Ij。令计数器I等于i+1(S25)。
接着,分配0给ajj(S26),令j+1≤k≤n(S27),计算aik=aik-ajj×ajk,计算bi=bi-aij×bj(S28)。然后判断是否i=n(S29)。如果i≠n,计数器i增加1(S31)并过程返回到步骤S26。如果i=n,则判断是否j=n(S30)。如果j≠n,计数器j增加1并过程返回到步骤S22。如果j=n,过程结束。
结果,得到了矩阵M'和向量v'。矩阵M'的对角线元素都是1,其下的元素都是0。
方程系统M'X=v'和方程系统MX=v有同等关系。
令矩阵M′和向量v′分别写做
(步骤2)
通过使用产生的矩阵M′和向量v′以下面的方式求解方程系统M'X=v′。
依次把值n-1,…,1,0放到计数器c中。对于计数器c,当c=n-1时计算
Yc=dc+1
和当c=n-1时,计算
(具体例子)
一个应用现有技术3的具体例子在下面示出。
注意这个例子在这里提供的目的仅仅是为了容易理解三角变换,并不是一个在密码通讯或数字签名系统中实际使用的例子。
当素数p=31,生成程序多项式f(g)=g5-2和一个GF(q)的元素
x=5α4+29α3+6α2+19α+17被给出时,计算
x×α=5α5+29α4+6α3+19α2+17α
=29α4+6α3+19α2+17α+5×2
x×α2=29α5+6α4+19α3+17α2+10α
=6α4+19α3+17α2+10α+29×2
x×α3=6α5+19α4+17α3+10α2+27α
=19α4+17α3+10α2+27α+6×2
x×α4=19α5+17α4+10α3+27α2+12α
=17α4+10α3+27α2+12α+19×2
导致了在图11(a)中示出的方程系统,其中系数矩阵301由5行和5列组成,常向量302由5个元素组成。
在图11(a)的方程系统中,把线性方程
17x0+10x1+27x2+12x3+7x4=1
称做用于转变的中心(pivot of transformation)的关键方程,把其它的线性方程称做被转变的目标方程。
首先,执行逆运算操作
1/17mod31=11
然后计算
10×11mod31=17
27×11mod31=18
12×11mod31=8
7×11mod31=15
1×11mod31=11
结果,把方程系统如图11(b)中示出的进行转变,其中在系数矩阵311中第一列和第一行的元素变成1。在图11(b)中在系数矩阵311中方框围绕的元素和常向量312是已经从图11(a)系数矩阵301和常向量302转变过来的。同样的过程在图11的其余部分进行。
这里,以上的逆运算操作1/17mod31=11通过第一搜寻来执行,其中第一搜寻依靠外延的GCD(最大公约数)满足
a×17+b×31=1
并设定为逆运算结果。
通常,外延GCD具有相当大的计算复杂性,它包括重复的乘法和加法。对于在外延GCD中的细节,看H.Cohen(1996)”A Course inComputational Algebraic Number Theory”in Graduate Texts inMathematics 138,Springer-Verlag,16~19页。
下面,
17-17×19=4mod31
10-18×19=9mod31
27-8×19=30mod31
12-15×19=6mod31
0-11×19=8mod31
被计算用于将在系数矩阵311的第一列和第二行的元素转变为0,并以相似的方式把在系数矩阵311的第一列和三到五行的元素转变成0,因而把在图11(b)中的系数矩阵311转变成图11(c)中示出的系数矩阵321,结果获得在图11(c)中示出的方程系统。
接着,把系数矩阵321转变成系数矩阵331,使得在第二列和第二行的元素变成1,把常矢量322转变为常矢量332。由此获得图11(d)的方程系统。此外,把系数矩阵331转变成系数矩阵341,使得在第二列和第三到五行的元素变成0,且把常矢量332转变为常矢量342。由此获得图11(e)的方程系统。
同样,把图11(f)中系数矩阵351中第三行和第三列的元素转变为1,把图11(g)中系数矩阵361中第三到五行和第三列的元素转变为0。之后,把图11(h)中系数矩阵371中第四行和第四列的元素转变为1,把图11(i)中系数矩阵381中第五行和第四列的元素转变为0。最后,图11(j)中系数矩阵391的第五列和第五行的元素转变成1。
因而,把系数矩阵301转变成上三角矩阵391。
下面,计算
Y4=29
Y3=15-21×29
=26mod31
Y2=11-4×26-28×29
=25mod31
Y1=2-10×25-23×26-17×29
=25mod31
Y0=11-17×25-18×25-8×26-15×29
=12mod31
(计算的复杂性)
下面评价现有技术3的整个计算复杂性。这里,在基本域上的一个乘法的计算复杂性被度量为1Mul,在基本域上一个逆运算的计算复杂性被度量为1Inv。
在现有技术3的步骤1中,对于计数器j的值的计算复杂性能被分解成如下。
(a)步骤S22包括一个逆运算,因此计算复杂性是1Inv。
(b)步骤S24包括((n-(j+1)+1)+1)=(n-j+1)次乘法,因此计算复杂性是(n-j+1)Mul。
(c)对于计数器i的一个值,步骤S27包括(n-(j+1)+1)次乘法,使得计算复杂性是(n-j)Mul(c1),步骤S28包括一个乘法,因此计算复杂性是1Mul(c2)。因为计数器i从j+1
到n变化,(c1)和(c2)被重复了(n-(j+1)+1)=(n-j)次,使得对于计数器c的所有值的计算复杂性为((n-j)(n-j+1))Mul。
把(a)、(b)和(c)加在一起得到计算复杂性为((n-j+1)(n-j+1))Mul+1Inv。
因为计数器j从1到n变化,步骤1的整个计算复杂性是
在另一方面,在现有技术3中步骤2的计算复杂性如下。
对于计数器c的值,(n-(c+1)+1)=(n-c)次乘法是必要的,因此计算复杂性是(n-c)Mul。
因为计数器c从1到n变化,步骤2的整个计算复杂性是
因而,先前技术3的全部计算复杂性是
(1/6×n(n+1)(2n+1)+1/2×n(n-1))Mul+nInv
=1/3×n×(n2+3n-1)Mul+nInv
众所周知在通常用途的计算机中当n=5和|q|=160(|q|是q的位数)时,1Inv=40Mul。对应地,先前技术3的全部技术复杂性是265Mul。
如上面描述的,在外延域中元素的逆运算可以通过求解在有限域上的方程系统来计算。然而,假定在求解方程系统中所需的逆运算的计算复杂性很大的,所以依旧存在进一步减少在有限域上求解方程系统的计算复杂性的需要,因而减少了逆运算外延域元素的计算复杂性。
由于上述的需要,本发明的目的是提供用于以简化的计算复杂性来求解在有限域上的方程系统的一种装置、方法和存储程序的存储介质,用于以简化的计算复杂性来逆运算在外延域中的元素的一种装置、方法和存储程序的存储介质,和一种用于复制使用这些装置和方法的装置的通信系统和记录介质。
上面的目标能通过一种用于加密或解密的装置来获得,用来求解在有限域GF(p)上有n个未知数的线性方程系统Ax=b,其中p是素数,n是正整数,A是包括n行和n列元素的系数矩阵,x是包括n个元素的未知向量,b是包括n个元素的常向量,装置包括:一个用于存储系数矩阵A和常向量b的参数存储单元;一个用于从参数存储单元读取系数矩阵A和常向量b的三角变换单元,和转变读出的系数矩阵A和常向量b以产生用于有n个未知数的线性方程系统Cx=d的系数矩阵C和常向量d,该方程系统等价于线性方程系统Ax=b,系数矩阵C包括n行和n列元素,常向量d包括n个元素,其中系数矩阵A被三角变换成上三角形式的系数矩阵C同时没有把系数矩阵A的对角线元素转变成1;一个对角线元素逆运算单元,用于计算在有限域GF(p)上产生的系数矩阵C的对角线元素的逆;和一个方程计算单元,用于使用系数矩阵C、常向量d和系数矩阵C的对角线元素的逆求解线性方程系统Cx=d,从而求解线性方程系统Ax=b。
出于这种构想,能在具有简化计算复杂性的同时对线性方程系统进行求解。
这里,三角变换单元可以执行一个或多个连续的转变过程,以从线性方程系统Ax=b的系数矩阵A和常向量b产生线性方程系统Cx=d的系数矩阵C和常向量d,其中在每一个转变过程中三角变换单元转变有n个未知数的线性方程系统的系数矩阵和常向量成为等价于转变前的线性方程系统的有n个未知数的线性方程系统的系数矩阵和常向量,其中线性方程系统Ax=b从属于第一次转变过程,产生线性方程系统Cx=d作为上一次转变过程的结果,其中在每次转变过程中被转变的具有n个未知数的线性方程系统包括一个是线性方程的用作转变的轴(pivot)的关键方程(pivot function),和一个或多个是线性方程的将被转变的目标方程,且三角变换单元通过定义包括至少一个与关键方程相关的值的第一系数组和包括与关键方程相关的n+1个值的第二系数组、将在目标方程中的非零系数改变为0、将在目标方程中的每一个常数和n个系数与第一系数组中的值相乘、并分别从n+1个相乘结果中减去在第二系数组中的n+1个值,来将每个目标方程转变成为等价于目标方程的方程。
出于这种构想,不用把线性方程的系数矩阵的对角线元素转变成1就同时可以执行三角变换。
这里,对于转变单个的目标方程,每一个转变过程可以有子过程,其中在每一个转变子过程中三角变换单元(a)从关键方程中选择一个非零系数并设置被选的非零系数到第一系数组,(b)从目标方程中选择非零系数,相乘在关键方程中的每一个常数和n个系数与从目标方程中选择的非零系数,把通过乘法获得的n+1个值设置进入第二系数组,(c)转变在目标方程中的所选非零系数为0,和(d)相乘在目标方程中的每一个常数和n个系数与在第一系数组中的非零系数,并从n+1个相乘结果中分别减去在第二系数组中的n+1个值。
这里,每个转变过程可以有系数组计算过程和转变子过程,该子过程执行下面的系数组计算过程,每一个都转变各自的目标方程,其中在系数组计算过程中三角变换单元(a)通过从每个关键方程和目标方程中提取一个非零系数选择m个非零系数,将所选的非零系数的(m-1)个组合相乘,令m个相乘结果为第一系数组,m是不小于2的正整数,并(b)相乘在关键方程中的每个常量、n个系数和在第一系数组中的相乘结果,用于一个不包括从关键方程所选的非零系数的非零系数组合,并从n+1个相乘结果中分别减去在第二系数组中的n+1个值,且其中在系数组计算过程之后的每个变换子过程中三角变换单元(a)将从系数组计算过程的目标方程中选择的非零系数转变为目标方程中的0,(b)相乘在目标方程中的每个常量、n个系数与在第一系数组中的相乘结果,获得一个不包括从目标方程所选的非零系数的非零系数组合,并从n+1个相乘结果中分别减去在第二系数组中的n+1个值。
出于这种构想,等价的线性方程系统能通过三角变换变获得。
这里,当系数矩阵C的对角线元素被标记为mi(i=1,2,3,…,n)和在有限域GF(p)中对角线元素mi(i=1,2,3…n)的逆被标记为Ii(i=1,2,3,…,n)时,对角线元素逆运算单元包括(a)一个乘法单元,用于计算
和
(b)一个第一逆运算单元,用于运算
u=1/t mod p
和(c)一个第二逆运算单元,用于运算
Ii=u×ti mod p(i=1,2,…,n)
以发现逆Ii(i=1,2,3,…,n)。这里,乘法单元可以在所述的次序下计算
s1=m1×m2 模p
s2=s1×m3 模p
_
sn-3=sn-4×mn-2 模p
,在所述的次序下计算
值j是从一组正整数{1,2,…,n}中选择的。
出于这种构想,计算对角线元素的逆运算所需的逆运算操作数量可以减少。
结果,减少了用于在有限域上求解方程系统的装置的总体计算复杂性。这样的装置有高的实用价值,能进行高速加密或数字签名过程。
以上的目的也可以通过一种用于加密或解密的装置来获得,该装置用于计算在GF(q)上的元素y的逆I,该域是有限域GF(p)的外延域,其中p是素数,q=pn,n是正整数,装置包括:一个方程产生单元,用于使用元素y和根是α的GF(q)的生成程序多项式的所有系数来产生用于有n个未知数的线性方程系统Ax=b的系数矩阵A和常向量b;一个方程其解单元,用于发现线性方程系统Ax=b的解,方程求解单元包括上面的用于求解线性方程系统Ax=b的装置;和一个逆运算单元,用于使用根α和由方程求解单元发现的解计算逆I。
出于这种构想,外延域元素的逆能在简化的计算复杂性下进行计算。
上面的目的能通过用于计算的记录介质复制装置来获得,在基于安全考虑使用离散对数问题在GF(q)的椭圆曲线E上加密有版权的数字内容并记录在记录介质上时,在GF(q)上用来解密所加密数字内容的元素y的逆I记录在记录介质上,其中GF(q)是有限域GF(p)的外延域,p是素数,q=pn,n是正整数,G是椭圆曲线E的基点,记录介质复制装置包括:一个方程产生单元,用于使用根是α的GF(q)的生成程序多项式的和所有系数元素y产生用于有n个未知数的线性方程系统Ax=b的系数矩阵A和常向量b;一个方程求解单元,用于发现线性方程系统Ax=b的解,方程求解单元包括上面用于求解线性方程系统Ax=b的装置;和一个逆运算单元,用于根据根α和由方程求解单元发现的解计算逆I。
出于这种构想,记录介质复制装置能在简化计算复杂性下计算外延域元素的逆。
本发明的这些和其它的目的、优点和特性伴随着后面的描述联系图解发明的特定方案的附图将变得明显。在图中:
图1是一个框图示出了一个依照发明方案的逆运算装置100的结构;
图2是流程图示出了逆运算装置100的通常操作;
图3是一个流程图,示出了方程系统的系数矩阵通过在逆运算装置100中的方程转变单元102进行的三角变换操作。
图4是一个流程图,示出了在逆运算装置100中系数矩阵的对角线元素的逆运算操作。
图5是一个流程图,示出了在逆运算装置100中求解方程系统的操作;
图6表示了一个通过方程转变单元102进行的三角变换的例子;
图7是一个流程图,示出了作为发明的一个变化通过方程转变单元102a进行的三角变换系数矩阵的操作。
图8表示了一个通过方程转变单元102a进行的三角变换的例子;
图9是一个连续的视图,示出了常规ElGamal数字签名方案的过程;
图10是一个流程图,示出了系数矩阵的常规三角变换;和
图11表示了一个常规三角变换的例子。
1.实施方案
下面是依照本发明方案的逆运算装置100的描述。
1.1逆运算装置100的结构
逆运算装置100计算在GF(q)上的元素x的逆I(q=pn,p是素数,n是正整数),其中GF(q)是预定有限域GF(p)的外延域。在这个方案中,一个外延域GF(q)的生成程序多项式是gn-β,它的根是α,元素x是这样的,x=x0+x1a+…+xn-1an-1,其中α是GF(q)的元素,β,x0,x1,…,xn-1是GF(p)的元素。
如图1所示,逆运算装置100是大致由一个参数存储单元200、一个方程产生单元201、一个方程求解单元202、一个逆运算单元203和一个逆运算存储单元204构成。
特别地,逆运算装置100通过装备了微处理器、ROM、RAM、硬盘和类似物的计算机系统来实现。通过由微处理器执行的存储在硬盘上的计算机程序,实现了方程产生单元201、方程求解单元202、和逆运算单元203。
(1)参数存储单元200
参数存储单元200由硬盘来实现。把生成程序多项式的参数β、根α和元素x0,x1,…,xn-1预先存储在参数存储单元200中。
(2)方程生成单元201
方程生成单元201从参数存储单元200中读出β,α,x0,x1,…,xn-1,并使用读出的值产生下面的方程系统yi(i=0,1,2,…,n-1)的参数
x0y0+βxn-1y1+βxn-2y2+…+βx1yn-1=1
x1y0+x0y1+βxn-1y2+…+βx2yn-1=0
x2y0+x1y1+x0y2+…+βx3yn-1=0
_
xn-1y0+xn-2y1+xn-3y2+…+x0yn-1=0
这个方程系统能简单写成
AY=B
其中A是矩阵、Y和B是向量,使得
由方程产生单元201产生的方程系统的参数是矩阵A和向量B。方程产生单元201输出所产生的矩阵A和向量B到方程求解系统201。
方程产生单元201也输出从参数存储单元200读出的α到逆运算单元203。
(3)方程求解单元202
当给定有n个未知参数的下述线性方程系统对于在预定的有限域GF(p)上的xi(i=1,2,…,n)的参数aij(i,j=1,2,…,n)和bk(k=1,2,…,n)时,方程求解单元202求解在GF(p)上有n个未知数的线性方程系统。
a11x1+a12x2+…+a1nxn=b1
a21x1+a22x2+…+a2nxn=b2
_
an1x1+an2x2+…+annxn=bn
方程求解单元202包括一个常数存储单元101、一个方程转变单元102、一个逆运算单元103和一个方程计算单元104,示出在图1中。
(常数存储单元101)
常数存储单元101由RAM来实现。常数存储单元101从方程产生单元201接收矩阵M和向量v并存储他们。这里,矩阵M和向量v分别是
例如,矩阵M是矩阵A,向量v是向量B。
(方程转变单元102)
方程转变单元102从常数存储单元101中读出矩阵M和向量v并三角变换读出的矩阵M和向量v,以产生用于有n个未知数的线性方程系统M′x=v′的矩阵M′(一个包括n行和n列的系数矩阵)和向量ν′(一个包括n个元素的常向量),该方程系统等价于有n个未知数的线性方程系统Mx=v。
在三角变换中,方程转变单元102转变矩阵M为上三角矩阵同时不需改变矩阵M的每个对角线元素为1。
这样产生的矩阵M′和向量v′是
三角变换以下面的方式执行。
在三角变换中,执行一个或多个连续转变过程以从线性方程系统Mx=v产生线性方程系统M′x=v1的矩阵M′和向量v′。
在每个转变过程中,方程转变单元102从有n个未知数的线性方程系统产生用于有n个未知数的线性方程系统的系数矩阵和常向量,该线性方程系统等价于转变前的线性方程系统。在这个方案中,被初始转变过程处理的有n个未知数的线性方程系统是线性方程系统Mx=μ,因而获得的作为最后转变过程结果的有n个未知数的线性方程系统是线性方程系统M′x=v′。
在每个转变过程中,有n个未知数的线性方程系统在转变前包括一个作为关键方程的线性方程,该关键方程用做转变的轴,和一个或多个作为转变的目标方程的线性方程。
每个转变过程都有转变子过程,数目和在线性方程系统中的目标方程一样多,每个子过程用于转变各自的目标方程成为等价于目标方程的方程。在转变目标方程为等价方程之前,在每个转变子过程中定义一个第一系数组和第二系数组。
第一和第二系数组是这样的组,各自容纳至少一个涉及关键方程的值。为了更明确,方程转变单元102令关键方程的非零系数为第一系数组。同样,方程转变单元102将关键方程的每个常数、n个系数和目标方程的非零系数相乘,并令作为结果获得的n+1个值为第二系数组。
下面,方程转变单元102转变目标方程的非零系数为0。方程转变单元102然后相乘目标方程的每个常数、n个系数和在第一系数组中的值,并从n+1个相乘结果中分别减去在第二系数组中的n+1个值。这样做,使目标方程转变成等价的方程,其中它的非零系数变成0。
这种三角变换在后面将详细解释。
方程转变单元102输出产生的矩阵M′和向量v到方程计算单元104,并输出矩阵M′的对角线元素Cii(i=1,2,…n)到逆运算单元103。
如同上面的描述,当矩阵M转变为上三角形式时,方程转变单元102也转变向量v但没有改变线性方程系统Mx=v的解。其与常规三角变换的不同在于不转变矩阵M的对角线元素为1。
(逆运算单元103)
逆运算单元103从方程转变单元102接收矩阵M′的对角线元素Cii(i=1,2,…n)。
出于简化的目的,这里把矩阵M′的对角线元素Cii(i=1,2,…n)表示成Mi(i=1,2,…n)。
逆运算单元103求解
首先按以下的次序进行计算
逆运算单元103然后使用预定值k(从一组正整数{1,2,…,n}中选择)计算
t=tk×mk 模p
,因此求解了
逆运算单元103接下来计算
u=1/t模p
最后获得逆Ii(i=1,2,…,n),为
Ii=u×ti模p(i=1,2,…,n)
逆运算单元103输出逆Ii(i=1,2,…,n)到方程计算单元104。
因而,逆运算单元103在GF(p)上计算出矩阵M′的对角线元素cii(i=1,2,3,…,n)的逆Ii(i=1,2,3,…,n),该矩阵从方程转变单元102中给出。
(方程计算单元104)
方程计算单元104从方程转变单元102接收矩阵M′和向量v′,也从逆运算单元103接收逆Ii(i=1,2,3,…,n)。
方程计算单元104每次在计数器j中从值n-1,n-2,…,2,1,0中设定一个。对于计数器j,方程计算单元104使用矩阵M′、向量v′和逆Ii(i=1,2,3,…,n)当j=n-1时计算
Yj=Ij+1×dj+1 模p
当j≠-1,计算
然后方程计算单元104输出解Yj(j=0,1,2,…,n-1)到逆运算单元203。
有n个未知数的线性方程系统的解能被方程计算单元104发现的理由在下面示出。
因为从方程转变单元102接收到的矩阵M′是一个上三角矩阵,能把线性方程M′x=v′写做
C11x0+C12x1+C13x2+…+C1nxn-1=d1
c22x1+c23x2+…+C2nxn-1=d2
_
cnnxn-1=dn
具有矩阵M′的对角线元素cii(i=1,2,…,n)的逆是Ii(i=1,2,…,n)。相应地,xn-1的解Yn-1是
Yn-1=Indn-1 模p
xn-2的解Yn-2是
Yn-2=In-1(dn-1-Cn-1Yn-1) 模p
xj的解Yj(j=n-3,n-4,…,0) 是
(4)逆计算单元203
逆计算单元203在方程求解单元202中从方程计算单元104接收解Yj(j=0,1,2,…,n-1),并从方程产生单元201接收根α。逆计算单元203计算逆I,依照方程
I=Y0+Y1α+…+Yn-1αn-1
I=Y0+Y1α+…+Yn-1αn-1
使用接收到的解Yj(j=0,1,2,…,n-1)和根α。逆计算单元203把算出的逆I写入逆运算存储单元203。
因此获得了在外延域GF(q)中元素x的逆I。
(5)逆运算存储单元204
逆运算存储单元204通过硬盘来实现,并存储外延域GF(q)的元素x的逆I。
1.2逆运算装置100的操作
下面是关于上面建立的逆运算装置100的操作的描述。
(1)逆运算装置100的通常操作
逆运算装置100的通常操作在下面参考图2解释。
方程产生单元201从参数存储单元200读出参数β、根α和x0,x1,…,xn-1,并用它们产生作为有n个未知参数的对于Yj(j=0,1,2,…,n-1)的线性方程系统AY=B参数的矩阵A和向量B。方程产生单元201输出矩阵A和向量B到方程求解单元202中的常量存储单元101,并输出根α到逆计算单元203(S101)。
在方程求解系统202中的方程转变单元102从常量存储单元101读出矩阵M和向量v并三角变换读出的矩阵M和向量v,结果产生了用于有n个未知数的线性方程系统M′x=v′的矩阵M′和向量v′(S102),该方程系统等价于线性方程系统M。
在方程求解单元202中的逆运算单元103计算矩阵M′的对角线元素Cii(i=1,2,…,n)的逆Ii(i=1,2,…,n)(S103)。
方程求解单元202中的方程计算单元104通过使用矩阵M′、向量v′和逆Ii(i=1,2,…,n),寻找线性方程系统M′x=v′的解Yj(j=0,1,2,…,n-1),并输出解Yj(j=0,1,2,…,n-1)到逆计算单元203(S104)。
逆计算单元203从方程计算单元104接收解Yj(j=0,1,2,…,n-1),和从方程产生单元201接收根α,使用接收到的解和根在外延域GF(q)中发现元素x的逆I,并把逆I写入逆运算存储单元204(S105)。
(2)方程转变单元102进行的三角变换操作
方程转变单元102进行的三角变换操作参考图3进行解释。
方程转变单元102从常量存储单元101中读出矩阵M和向量v(S111),并令计数器j为1(S112)。
方程转变单元102从GF(p)上第j行到第n行搜索矩阵M的第j列元素中不为零的元素,并令第一次发现的非零元素的行号为k(S113)。这里,如果k≠j(S114),方程转变单元102改变在矩阵M中在第k行和第j行之间的位置(S115),并改变在向量v中在第k行和第j行之间的位置(S116)。
方程转变单元102令计数器i为j+1(S117),并进行如下的使用aij(在矩阵M的第j行和第j列的元素)和aij的设定:
aij=0
aik=ajjaik-aijajk j+1≤k≤n(k=j+1,j+2,…,n)
bi=ajjbi-aijbj
(S118)。
方程转变单元102然后判断是否i=n(S119)。如果i≠n,方程转变单元102把计数器i加1(S122)并返回到步骤S118。如果i=n,方程转变单元102判断是否j=n-1(S120)。如果j≠n-1,方程转变单元102把计数器j加1(S123)并返回到步骤S113。如果j=n-1,方程转变单元102令矩阵M作为矩阵M′、向量v作为向量v′,并完成操作。
如上所述,这种三角变换包括对应于计数器j的不同值的转变过程,每个转变过程包括对应于计数器i的不同值的转变子过程。
(Mx=v和M′x=v′之间等价的理由)
作为通过方程转变单元102进行的三角变换的结果产生的线性方程系统M′x=v′等价于线性方程系统Mx=v的理由在下面给出。
在三角变换的每个转变过程中,令Min和vin是转变前的矩阵和向量,Mout和vout是转变后的矩阵和向量,Li和Lj是矩阵Min的第i和第j行向量。
方程转变单元102计算
aji×Li-aij×Lj
并把得到的行向量作为矩阵Mout的第i行,计算
把它的输出作为向量vout的第i行。Mout的其它元素和vout的其它元素分别等于Min的其它元素和vin的其它元素。在这种情况下,线性方程系统
Min·x=vin
和线性方程
Mout·x=vout
有同样的解,如同在文件2中示例的。
同样,方程转变单元102定义aij=0对于每个i都满足j+1≤i≤n。从j=1到j=n重复这个过程使在矩阵的下三角中的元素变成0。因此,矩阵能进行三角变换同时不改变线性方程系统的解。
(3)逆运算单元103的操作
逆运算单元103的操作在下面参考图4进行详细描述。
逆运算单元103从方程转变单元102接收对角形元素
mi(i=1,2,…,n)(S141),并计算
(S142)。逆运算单元103然后使用了预定值k计算
t=tk×mk 模p
(S143),并同样计算
u=1/t 模p
(S144)。逆运算单元103最后发现逆
Ii=u×ti模p(i=1,2,…,n)
(S145),并输出逆Ii(i=1,2,…,n)到方程计算单元104(S146)。
(4)方程计算单元104的操作
方程计算单元104的操作在下面参考图5进行详细的解释。
方程计算单元104从方程转变单元102接收矩阵M′和向量v′,并从逆运算单元103接收逆Ii(i=1,2,…,n)(S161)。在令计数器j为n-1时(S162),方程计算单元104当j=n-1时计算
Yj=Ij+1×dj+1 模p
并当j≠n-1计算
(S163)。
方程计算单元104判断是否j=0(S164)。如果j=0,方程计算单元104输出解Yj(j=0,1,2,…,n-1)到逆计算单元203(S166)。否则,方程计算单元104把计数器j减1(S165)并返回到步骤S163。
1.3计算复杂性
方程求解单元202的计算复杂性在下面进行评价。
(1)方程求解单元102的计算复杂性
在方程求解单元102中,对于计数器j的一个值的计算复杂性(在图3)中步骤S113-S119如下。
首先,把计数器i的一个值的计算复杂性(步骤S118)按照下面示出的进行分解。
(a)在步骤S118,对于j+1≤k≤n(k=j+1,j+2,…,n),执行计算aik=ajj×aik-aij×ajk 。这意味着两个乘法被重复了(n-(j+1)+1)=(n-j)次,使得计算复杂性是2×(n-j)Mul。
(b)在步骤S118,计算bi=ajj×bi-aij×bj包括两个乘法,使得计算复杂性是2Mul。
因为计数器i从j+1到n变化,对于计数器j的一个值,步骤S113~S119的计算复杂性是
(2×(n-j))Mul×(n-(j+1)+1)
=(2×(n-j)×(n-j+1))Mul
在步骤S112~S120,计数器从1到n-1变化,使得方程转变单元102的全部计算复杂性是
=2Mul×(1/6×n(n-1)(2n-1)+1/2×n(n-1))
=2Mul×1/6×n(n-1)(2n-1+3)
=1/3Mul×n(n-1)(2n+2)
=(2/3×n(n-1)(n+1))Mul
(2)逆运算单元103的计算复杂性逆运算单元103的计算复杂性能分解如下。
(a) 发现s1~sn-3和tn需要n-2次乘法,使得计算复杂性是(n-2)Mul。
(b) 发现tn-1需要一次乘法,使得计算复杂性是1Mul。
(c) 发现sn和tn-2、sn-1和tn-3、…,和s4和t2需要2×(n-3)次乘法,使得计算复杂性为(2×(n-3))Mul。
(d) 发现t1需要一次乘法,使得计算复杂性是1Mul
(e) 发现t需要一次乘法,使得计算复杂性是1Mul。
(f)发现u=1/t模p需要一次逆运算,使得计算复杂性是1Inv。
(g)发现Ii=u×ti模p(i=1,2,…,n)需要n次乘法,使得计算复杂性是nMul。
这些计算复杂性和给出了逆运算单元103的整个复杂性如下((n-2)+1+2(n-3)+1+1+n)Mul+1Inv=(4n-5)Mul+1Inv
(3)方程计算单元104的计算复杂性
在方程计算单元104中,对于计数器j的一个值的计算复杂性(在图5中步骤S163~S165)如下。
当j=n-1时,计算
和当j≠n-1时
需要一次乘法和(n-(j+1)+1)次乘法,使计算复杂性为(n-j+1)Mul。
因为计数器j从1到n变化,方程计算单元104的计算复杂性是
(4)方程求解单元202的整个计算复杂性从前面的描述中,可以给出方程求解单元202的整个计算复杂 性是
(2/3×n(n-1)(n+1))Mul
+(4n-5)Mul+1次Inv
+(1/2×n(n+1))Mul
=(1/6(4n3+3n2+23n-30))Mul+1Inv假设在不同用途的计算机中1Inv=40Mul,当n=5和|q|=160时(|q|是q的位数),可以估计方程求解单元202的整个计算复杂性为150Mul。
因而,发明的方程求解单元202的计算复杂性比先前技术要小得多。这样的方程求解单元有巨大的使用价值,同时使一种装置在具有简化的计算复杂性的同时能求解在有限域上的方程系统。
同样,这样的求解单元使装置能计算在预定的有限域GF(p)的外延域GF(q)中元素x的逆I,同时具有简化的计算复杂性。
1.4具体例子
下面是一个方程求解单元202的操作的具体例子。
如先前技术3所述,给出一个素数p=31、一个程序生成多项式f(g)=g5-2,GF(q)的元素x=5α4+29α3+6α2+19α+17。要解决的方程系统与先前技术3中的是相同的,如图6(a)所示。
执行下面的计算:
a21=0
a22=17×17-19×10=6 mod 31
a23=17×10-19×27=29 mod 31
a24=17×27-19×12=14 mod 31
a25=17×12-19×7=9 mod 31
b2=17×0-19×1=12 mod 31
当i=1(i=2)时,转变方程系统如图6(b)所示。这里,在系数矩阵411中第一列和第二行的元素变成0。
对于j=1时转变过程的结果,方程系统变成图6(c)中所示,其中在系数矩阵421中的第一列和第三到第五行的元素是0。
对于j=2时转变过程的结果,方程系统变成图6(d)所示,其中在系数矩阵431中的第二列和第三到第五行的元素是0。
对于i=3时转变过程的结果,方程系统变成图6(e)所示,其中在系数矩阵441中的第三列和第四到第五行的元素是0。
对于j=4时转变过程的结果,方程系统变成图6(f)所示,其中在系数矩阵451中的第四列和第五行的元素是0。
接着,把在系数矩阵451中的对角线元素通过如下计算做逆运算
s1=m1×m2=17×6=9 模31
s2=s1×m3=9×17=29模31
t5=s2×m4=29×6=19模31
t4=s2×m5=29×30=2模31
s5=m4×m5=6×30=25模31
t3=s1×s5=9×25=8 模31
s4=m3×s5=17×25=22模31
t2=m1×s4=17×22=2模31
t1=m2×s4=6×22=8 模31
t=m1×t1=17×8=12模31
u=1/t=1/12=13模31
I1=u×t1=13×8=11模31
I2=u×t2=13×2=26模31
I3=u×t3=13×8=11模31
I4=u×t4=13×2=26模31
I5=u×t5=13×19=30模31注意u=1/t=1/12=13模31是这里唯一的逆运算操作。最后,按下面的方式求解方程系统:
Y4=I5×d5=30×2 模31
Y3=I4×(d4-c45×Y4 )
=26×(28-2×29)=26 模31
Y2=I3×(d3-c34×Y3-c35×Y4)
=11×(1-6×26-11×29)=25 模31
Y1=I2×(d2-c23×Y2-c24×Y3-c25×Y4)
=26×(12-29×25-14×26-9×29)
=25 模31
Y0=I1×(d1-c12×Y1-c13×Y2-c14×Y3-c15×Y4)
=11×(1-10×25-27×25-12×26-7×29)
=12 模31
1.5应用
在本发明对实际通讯系统应用中,例如加密通讯系统、数字签名通讯系统或纠错通讯系统,使用了例如下面的参数。对于素数p=231-1、q=pn、n=5、生成程序多项式f(g)=g5-g-8和GF(q)的元素x=x0+x1×α+x2×α2+x3×α3+x4×α4,把系统方程定义为
其中p,x0,…,x4和y0,…,y4每个都是31位长,q和x每个都是155位长。
2.改进
2.1变体
作为在方程求解单元202中方程转变单元102的变体,方程转变单元102a在下面进行解释。
方程转变单元102a中,每个转变过程有一个系数组计算过程和后续的与目标方程一样多的转变子过程,每个子过程用于转变一个不同的目标方程。
在系数组计算过程中,方程转变单元102a通过在由n行和n列组成的系数矩阵中从每个关键方程和目标方程中提取一个非零系数选择了m个非零系数,相乘所选的非零系数的(m-1)个组合的每一个,并令m个相乘结果进入第一系数组。方程转变单元102a然后将关键方程的每个常量和n个系数与在第一系数组中的相乘结果相乘,用于一个非零系数的组合,该组合不包括关键方程的非零系数,并令获得的n+1个值作为结果进入第二系数组。
下面,在每个转变子过程中,方程转变单元102a改变一个从目标方程选择的非零系数为0,相乘目标方程的每个常量和n个系数与在第一系数组中的相乘结果,用于一个非零系数的组合,该组合不包括目标方程的非零系数,并分别从n+1个相乘结果中减去在第二系数组中的n+1个值。
方程转变单元102a的操作在下面参考图7进行解释。在图7中的流程图包括步骤S118a~S118c,取代了在图3中的步骤S118。
因为在图3中其它步骤是相同的,下面的解释将集中在步骤S118a~S118c上。
在步骤s118a中,方程转变单元102a计算
每个k满足条件j≤k≤n(k=j,j+1,…,n)。在步骤S118b中,方程转变单元102a计算
wk=hj×ajk
e=hj×bj
每个k满足条件j+1≤k≤n(k=j+1,j+2,…,n)。在步骤S118c中,令aij=0,方程转变单元102a计算
aik=hi×aik-wk
bi=hi×bi-e
每个k满足j+1≤k≤n(k=j+1,j+2,…,n)
(具体例子)
一个方程转变单元102a操作的例子在下面示出。
如同先前技术3所述,给定素数p=31、生成程序多项式f(g)=g5-2和GF(q)的元素x=5α4+29α3+6α2+19α+17。所求解的方程系统与在先前技术3中的是相同的,如图8(a)所示。
当j=1时,方程转变单元102a计算
s1=a11×a21=17×19=13 模31
s2=s1×a31=13×6=16 模31
h5=s2×a41=16×29=30模31
h4=s2×a51=16×5=18 模31
s5=a41×a51=29×5=21 模31
h3=s1×s5=13×21=25 模31
s4=a31×s5=6×21=2 模31
h2=a11×s4=17×2=3 模31
h1=a21×s4=19×2=7 模31
然后计算
w2=h1×a12=1×10=8 模31
w3=h1×a13=7×27=3 模31
w4=h1×a14=7×12=22 模31
w5=h1×a15=7×7=18 模31
e=h1×b1=7×1=7 模31
当i=2(j=1)时,方程转变单元102a计算
a21=0
a22=h2×a22-w2=3×17-8=12 模31
a23=h2×a23-w3=3×10-3=27 模31
a24=h2×a24-w4=3×27-22=28 模31
a25=h2×a25-w5=3×12-18=18 模31
b2=h2×b2-e=3×0-7=24 模31
依照这种方法,仅仅需要一个乘法来发现aik而不象第一方案一样需要两次乘法,使得计算复杂性进一步减小。
通过上面的计算,转变方程系统如图8(b)所示,其中在系数矩阵511中的第一列和第二行中的元素变成0。
作为j=1时转变过程的结果,方程系统变成图8(c)所示,其中
在系数矩阵521中的第一列和第三到第五行中的元素变成0。
接着,当j=2时,方程转变单元102a计算
s1=a22×a32=12×2=24 模31
h5=s1×a42=24×7=13 模31
h4=s1×a52=24×25=11 模31
s4=a42×a52=7×25=20 模31
h3=a22×s4=12×20=23 模31
h2=a32×s4=2×20=9 模31
然后计算
w3=h2×a23=9×27=26 模31
w4=h2×a24=9×28=4 模31
w5=h2×a25=9×18=7 模31
e=h2×b2=9×24=30 模31
作为j=2时转变过程的结果,方程系统变成图8(d)所示,其中
在系数矩阵531中的第二列和第三到第五行中的元素变成0。
接着,当j=3时,方程转变单元102a计算
h5=a33×a43=8×14=19 模31
h4=a33×a53=8×12=3 模31
h3=a43×a53=14×12=13 模31
然后计算
w4=h3×a34=13×1=13 模31
w5=h3×a35=13×7=29 模31
e=h3×b3=13×26=28 模31
作为j=3时转变过程的结果,方程系统变成图8(e)所示,其中在系数矩阵541中的第三列和第四到第五行中的元素变成0。
接着,当j=4时,方程转变单元102a计算
h5=a44=16 模31
h4=a54=14 模31然后计算
w5=h4×a45=14×26=23 模31
e=h4×b4=14×23=12 模31
作为j=4时转变过程的结果,方程系统变成图8(f)所示,其中在系数矩阵551中的第四列和第五行中的元素变成0。
这里,令C=A和D=B,对对角线元素通过如下计算进行逆运算
s1=m1×m2=17×12=18 模31
s2=s1×m3=18×8=20 模31
t5=s2×m4=20×16=10 模31
t4=s2×m5=20×22=6 模31
s5=m4×m5=16×22=11 模31
t3=s1×s5=18×11=12 模31
t3=s1×s5=18×11=12 模31
s4=m3×s5=8×11=26 模31
t2=m1×s4=7×16=8 模31
t1=m2×s4=12×26=2 模31
t=m1×t1=17×2=3 模31
u=1/t=1/3=21 模31
I1=u×t1=21×2=11 模31
I2=u×t2=21×8=13 模31
I3=u×t3=21×12=4 模31
I4=u×t4=21×6=2 模31
I5=u×t5=21×10=24 模31
注意,在这里y=1/t=1/3=21模31是唯一的逆运算操作。最后,求解方程系统如下:
Y4=I5×d5=24×18=29 模31
Y3=I4×(d4-c45×Y4)
=2×(23-26×29)=26 模31
Y2=I3×(d3-c34×Y3-c35×Y4)
=4×(26-1×26-7×29)=25 模31
Y1=I2×(d2-c23×Y2-c24×Y3-c25×Y4)
=13×(24-27×25-28×26-18×29)
=25 模31
Y0=I1×(d1-c12×Y1-c13×Y2-c14×Y3-c15×Y4)
=11×(1-10×25-27×25-12×26-7×29)
=12 模31
(方程转变单元102a的计算复杂性)
对于计数器j的一个值方程转变单元102a的计算复杂性计算在下面计算。
在步骤S118a,需要(3×(n-j+1)-6)次乘法以发现hk(k=j,j+1,…,n),使得计算复杂性是(3×(n-j+1)-6)Mul。
在步骤S118b中,需要(n-(j+1)+1)次乘法以发现wk(k=j+1,…,n)和e,使得计算复杂性是(n-j+1)Mul。
在步骤S118c中,对于计数器i的一个值,计算复杂性如下。
(a)为了计算aik=hi×aik-wk,j+1≤k≤n(k=j+1,j+2,…,n),重复了(n-(j+1)+1)=(n-j)次乘法,使得计算复杂性是(n-j)Mul。
(b)为了计算bi=hi×bi-e,执行一次乘法,使得计算复杂性是1Mul。
因为计数器i从j+1到n变化,对于计数器i的所有值,步骤S118c的计算复杂性是
(n-j+1)Mul×(n-(j+1)+1)
=((n-j)×(n-j+1))Mul
相应地对于计数器j的一个值,步骤S118a~S118c的计算复杂性是
((3×(n-j+1)-6)+(n-j+1)+(n-j))n-j+1)Mul
=(4×(n-j+1)-6+(n-j)(n-j+1)Mul
=((n-j+4)(n-j+1)-6)Mul
因为计数器j从1到n-1变化,方程转变单元102a的整个计算复杂性是
=1Mul×(1/6×n(n-1)(2n-1)+5/2×n(n-1)-2(n-1))
=1Mul×(1/6×n(n-1)(2n-1+15)-2(n-1))
=1Mul×(1/6×n(n-1)(2n+14)-2(n-1))
=1Mul×(1/3×n(n-1)(n+7)-2(n-1))
=1Mul×(1/3×(n-1)(n2+7n-6))
=(1/3×n3+2n2-13/3×n+2)Mul
因此,具有方程转变单元102a的方程求解单元202的全部计算复杂性是
((1/3×n3+2n2-13/3×n+2)+(4n-5)+1/2×n(n-1)Mul+1Inv
=(1/3×n3+5/2n2+1/6×n-3)Mul+1Inv
假定1Inv=40Mul,当n=5时,估计出全部的计算复杂性为143Mul。
2.2其它修正
(1)在一个通讯系统中,例如加密通讯系统、数字签名通讯系统或纠错通讯系统,它们的安全基于在有限域GF(p)的外延域GF(q)上的椭圆曲线上的离散对数问题,其中p是素数,q=pn,n是正整数,G是E的基点,发明的方程求解单元和逆运算装置可以被用于计算在外延域GF(q)上的元素的逆运算。加密通讯系统的一个例子是在互连网上的e-mail系统,其中信息在传送前是加密的。数字签名通讯系统的一个例子是电子银行系统。纠错通讯系统的一个例子是e-mail系统,其中当部分传送信息由于通讯线路质量变坏而丢掉了,错误可以被检测和纠正。
同样,发明的方程求解单元和逆运算装置可用于在记录装置中加密,该装置使用椭圆曲线离散对数问题作为安全的基础加密版权数字内容,并记录加密的数字内容进入记录介质,例如DVD或半导体存储器,或在复制装置中加密,该装置在记录介质中解密所加密的数字内容以复制数字内容。
通过应用发明到这些系统,能进行外延域元素的逆运算的计算同时有小的计算复杂性。
在这样的应用中,能使用发明的方程求解单元和逆运算装置,例如,作为硬件存储在移动电话中或个人计算机装备的电路板中。
(2)虽然形式为gn-β的生成程序多项式已经使用在上面的方案中,对于有n阶的普通生成程序多项式例如
f(g)=βngn+βn-1gn-1+…+β2g2+β1g+β
在预定的有限域GF(p)的外延域GF(q)(q=pn,n是正整数)中的元素x的逆I能在相似的模式下计算。
令普通n阶的普通多项式f(g)是生成程序多项式,α是f(g)的根。
对于在外延域GF(q)中的一个元素x=x0+x1α+…+xn-1αn-1,当在(x×αi-1 模 f(α)中的系数αi-1被表示成aij时,能把有n个未知数的线性方程系统写做
a11Y0+a12Y1+a13Y2+…a1nYn-1=1
a21Y0+a22Y1+a23Y2+…a2nYn-1=0
_
an1Y0+an2Y1+an3Y2+…annYn-1=0
有n个未知数的线性方程系统能写做这种形式的原因在下面给出。
方程
x×I=x×Y0+x×Y1α+…+x×Yn-1αn-1
=1 模 f(α)
和
x×Y0+x×Y1α+…+x×Yn-1αn-1
=x×Y0+(x×α模 f(α))×Y1+…+(x×αn-1 模 f(α))×Yn-1
是有效的。系数αi-1由
ai1×Y0+ai2×Y1+…+ain×Yn-1
给出。
系数αi-1(i>2)都是0,系数α0(i=1)是1。因此推导出上面的有n个未知数的线性方程系统。
(3)本发明可以是用在上面描述的方程求解单元和逆运算装置中的方程求解方法和逆运算方法。发明也可以是用于完成这些方法的计算机程序,或用于执行计算机程序的数字信号。
同样,本发明可以是计算机可读的存储介质,例如软盘、硬盘、CD-R0M、MO、DVD、DVD-ROM、DVD-RAM或半导体存储器,该介质存储计算机程序或数字信号。同样地,发明可以是在这样的存储介质中存储的计算机程序或数字信号。
同样,本发明可以依靠在网络上载波传递计算机程序或数字信号来实现,例如电讯网络、无线电或有线通讯网络、或互连网。
进一步,本发明可以依靠分配存储在存储介质中的计算机程序或数字信号、或通过网络在载波上传递计算机程序或数字信号,使得它们能在其它的计算机系统中使用。
(4) 方案中不同组合和以上表述的修正是可能的。
虽然本发明已经作为例子参考附图进行了全面的描述,应当注意的是不同的变化和修正对在技术上熟练的人员来所是明显的。因而,除非这样的变化和修正偏离了本发明的范围,否则它们将被包括在这里的解释中。
Claims (32)
1.一种用于加密或解密的装置,用于求解在有限域GF(p)上有n个未知数的线性方程系统Ax=b,其中p是素数,n是正整数,A是包括n行和n列的系数矩阵,x是包括n个元素的未知向量,和b是包括n个元素的常向量,该装置包括:
用于存储系数矩阵A和常向量b的参数存储装置;
三角变换装置,用于从参数存储装置中读取系数矩阵A和常向量b的,和转变读出的系数矩阵A和常向量b以产生用于有n个未知数的线性方程系统Cx=d的系数矩阵C和常向量d,该方程系统Cx=d等价于线性方程系统Ax=b,系数矩阵C包括n行和n列,常向量d包括n个元素,其中系数矩阵A在被三角变换成上三角形式的系数矩阵C的同时不需改变系数矩阵A的对角形元素为1;
对角线元素逆运算装置,用于计算在有限域GF(p)上产生的系数矩阵C的对角线元素的逆;和
方程计算装置,用于使用系数矩阵C、常向量d和系数矩阵C的对角线元素的逆求解线性方程系统Cx=d,从而求解线性方程Ax=b。
2.权利要求1的装置,
其中三角变换装置执行一个或多个连续的转变过程以从线性方程系统Ax=b的系数矩阵A和常向量b产生线性方程系统Cx=d的系数矩阵C和常向量d,
其中在每个转变过程中三角变换装置转变有n个未知数的线性方程系统的系数矩阵和常向量,成为等价于转变前的线性方程系统的有n个未知数的线性方程系统的系数矩阵和常向量,其中线性方程系统Ax=b经受第一转变过程和线性方程系统Cx=d被产生作为最后转变过程的结果,
其中在每个转变过程中经受转变过程的有n个未知数的线性方程系统包括一个是线性方程的用于转变的轴的关键方程和一个或多个作为将被转变的线性方程的目标方程,和三角变换装置通过以下步骤转变每个目标方程为等价于目标方程的方程,
定义容纳至少一个涉及关键方程的值的第一系数组和容纳n+1个涉及关键方程的第二系数组,
改变在目标方程中的非零系数为0,和
用在第一系数组中的值乘以目标方程的每个常数和n个系数并从n+1个相乘结果中分别减去在第二系数组中的n+1个值。
3.权利要求2的装置,
其中每个转变过程有用于转变各目标方程的转变子过程,
其中在每个转变子过程中三角变换装置
(a) 从关键方程中选择非零系数并令所选的非零系数进入第一系数组,
(b) 从目标方程中选择非零系数,将从目标方程中选择的非零系数乘以在关键方程中的常量和n个系数,并令相乘获得的n+1个值进入第二系数组,
(c) 改变在目标方程中的所选非零系数为0,和
(d) 将在第一系数组中的非零系数乘以在目标方程中的常量和n个系数和,并从n+1个相乘结果中分别减去在第二系数组中的n+1个值
4.权利要求3的装置,
其中当系数矩阵C的对角线元素被表示成mi(i=1,2,…,n)和在有限域GF(p)中的对角线元素mi(i=1,2,…,n)的逆被表示成Ii(i=1,2,…,n)时,对角线元素逆运算装置包括
(a)一个乘法单元,用于计算
和
(b)一个第一逆运算单元,用于计算
u=1/t模p
和
(c)一个第二逆运算单元,用于计算
Ii=u×ti模p(i=1,2,…,n)
以发现逆Ii(i=1,2,…,n)。
5.权利要求4的装置,
其中乘法单元以下述的次序计算
s1=m1×m2模p
s2=s1×m3模p
sn-3=sn-4×mn-2模p
然后以下述的次序计算
tn=sn-3×mn-1模p
tn-1=sn-3×mn模p
sn=mn-1×mn模p
tn-2=sn-4×sn模p
sn-1=mn-2×sn模p
tn-3=sn-5×sn-1模p
sn-2=mn-3×sn-1模p
tn-4=sn-6×sn-2模p
s5=m4×s6模p
t3=s1×s5模p
s4=m3×s5模p
t2=m1×s4模p
t1=m2×s4模p
并最后计算
t=tj×mj
从一组正整数(1,2,…,n)中选择值j。
6.权利要求2的装置,
其中每个转变过程有一个系数组计算过程和转变子过程,并执行下面的系数组计算过程,每个转变过程用于转变各自的目标方程,
其中在系数组计算过程中三角转变装置
(a) 通过从每个关键方程和目标方程中提取一个非零系数选择m个非零系数,相乘所选非零系数的(m-1)个组合的每一个,并令m个相乘结果为第一系数组,m是不小于2的正整数,和
(b) 用第一系数组中的相乘结果乘以在关键方程中的每个常量、n个系数,用于不包括从关键方程中所选的非零系数的非零系数组合,并令通过乘法获得的n+1个值为第二系数 组,和
其中在跟随每个系数组计算过程的转变子过程中,三角变换装置
(a) 改变在系数组计算过程中从目标方程选择的非零系数为在目标方程中的0,和
(b) 用第一系数组中的相乘结果乘以在目标方程中的每个常量、n个系数,用于不包括从关键方程中所选的非零系数的非零系数的组合,并从n+1个相乘结果中分别减去第二系数组中的n+1个值。
8.权利要求7的装置,
其中乘法单元以如下次序计算
s1=m1×m2模p
s2=s1×m3模p
sn-3=sn-4×mn-2模p
然后以如下次序计算
tn=sn-3×mn-1 模p
tn-1=sn-3×mn 模p
sn =mn-1×mn 模p
tn-2=sn-4×sn 模p
sn-1=mn-2×sn 模p
tn-3=sn-5×sn-1 模p
sn-2=mn-3×sn-1 模p
tn-4=sn-6×sn-2 模p
_
s5=m4×s6 模p
t3=s1×s5 模p
s4=m3×s5 模p
t2=m1×s4 模p
t1=m2×s4 模p
最后计算
t=tj×mj
j值从一组正整数(1,2,…,n)中选择。
9.一种用于加密和解密的装置,用于计算在有限域GF(p)的外延域GF(q)上元素y的逆I,其中p是素数,q=pn,和n是正整数,该装置包括:
方程生成装置,用于使用根是α的生成程序多项式GF(q)的所有的系数和元素y,生成用于有n个未知数的线性方程系统Ax=b的系数矩阵A和常向量b;
方程求解装置,用于发现线性方程系统Ax=b的解,方程求解装置包括权利要求1的装置;和
逆计算装置,用于使用根α和由方程求解装置发现的解计算逆I。
10.一个用于加密和解密的装置,用于计算在有限域GF(p)的外延域GF(q)上元素y的逆I,其中p是素数,q=pn,和n是正整数,该装置包括:
方程生成装置,用于使用根是α的生成程序多项式GF(q)的所有的系数和元素y,生成用于有n个未知数的线性方程系统Ax=b的系数矩阵A和常向量b;
方程求解装置,用于发现线性方程系统Ax=b的解,方程求解装置包括权利要求2的装置;和
逆计算装置,使用根α和由方程求解装置发现的解计算逆I。
11.一种用于加密和解密的装置,用于计算在有限域GF(p)的外延域GF(q)上元素y的逆I,其中p是素数,q=pn,和n是正整数,该装置包括:
方程生成装置,用于使用根是α的生成程序多项式GF(q)的所有的系数和元素y,生成用于有n个未知数的线性方程系统Ax=b的系数矩阵A和常向量b;
方程求解装置,用于发现线性方程系统Ax=b的解,方程求解装置包括权利要求3的装置;和
逆计算装置,用于使用根α和由方程求解装置发现的解计算逆I。
12.一种用于加密和解密的装置,用于计算在有限域GF(p)的外延域GF(q)上元素y的逆I,其中p是素数,q=pn,和n是正整数,该装置包括:
方程生成装置,用于使用根是α的生成程序多项式GF(q)的所有的系数和元素y,生成用于有n个未知数的线性方程系统Ax=b的系数矩阵A和常向量b;
方程求解装置,用于发现线性方程系统Ax=b的解,方程求解装置包括权利要求4的装置;和
逆计算装置,用于使用根α和由方程求解装置发现的解计算逆I。
13.一种用于加密和解密的装置,用于计算在有限域GF(p)的外延域GF(q)上元素y的逆I,其中p是素数,q=pn,和n是正整数,该装置包括:
方程生成装置,用于使用根是α的生成程序多项式GF(q)的所有的系数和元素y,生成用于有n个未知数的线性方程系统Ax=b的系数矩阵A和常向量b;
方程求解装置,用于发现线性方程系统Ax=b的解,方程求解装置包括权利要求5的装置;和
逆计算装置,用于使用根α和由方程求解装置发现的解计算逆I。
14.一种用于加密和解密的装置,用于计算在有限域GF(p)的外延域GF(q)上元素y的逆I,其中p是素数,q=pn,和n是正整数,该装置包括:
方程生成装置,用于使用根是α的生成程序多项式GF(q)的所有的系数和元素y,生成用于有n个未知数的线性方程系统Ax=b的系数矩阵A和常向量b;
方程求解装置,用于发现线性方程系统Ax=b的解,方程求解装置包括权利要求6的装置;和
逆计算装置,用于使用根α和由方程求解装置发现的解计算逆I。
15.一种用于加密和解密的装置,用于计算在有限域GF(p)的外延域GF(q)上元素y的逆I,其中p是素数,q=pn,和n是正整数,该装置包括:
方程生成装置,用于使用根是α的生成程序多项式GF(q)的所有的系数和元素y,生成用于有n个未知数的线性方程系统Ax=b的系数矩阵A和常向量b;
方程求解装置,用于发现线性方程系统Ax=b的解,方程求解装置包括权利要求7的装置;和
逆计算装置,用于使用根α和由方程求解装置发现的解计算逆I。
16.一种用于加密和解密的装置,用于计算在有限域GF(p)的外延域GF(q)上元素y的逆I,其中p是素数,q=pn,和n是正整数,该装置包括:
方程生成装置,用于使用根是α的生成程序多项式GF(q)的所有的系数和元素y,生成用于有n个未知数的线性方程系统Ax=b的系数矩阵A和常向量b;
方程求解装置,用于发现线性方程系统Ax=b的解,方程求解装置包括权利要求8的装置;和
逆计算装置,用于使用根α和由方程求解装置发现的解计算逆I。
17.一个记录介质复制装置,用于当有版权的数字内容基于安全在GF(p)上的椭圆曲线E上使用离散对数问题进行加密并记录在介质上时,计算在GF(q)中的元素y的逆以解密记录在记录介质上的加密数字内容,其中GF(q)是有限域GF(p)的外延域,p是素数,q=pn,n是正整数,G是椭圆E的基点,该记录介质复制装置包括:
方程生成装置,用于使用根是α的生成程序多项式GF(q)的所有的系数和元素y,生成用于有n个未知数的线性方程系统Ax=b的系数矩阵A和常向量b;
方程求解装置,用于发现线性方程系统Ax=b的解,方程求解装置包括权利要求1的装置;和
逆计算装置,用于使用根α和由方程求解装置发现的解计算逆I。
18.一个记录介质复制装置,用于当有版权的数字内容基于安全在GF(p)上的椭圆曲线E上使用离散对数问题进行加密并记录在介质上时,计算在GF(q)中的元素y的逆以用于解密记录在记录介质上的加密数字内容,其中GF(q)是有限域GF(p)的外延域,p是素数,q=pn,n是正整数,G是椭圆E的基点,该记录介质复制装置包括:
方程生成装置,用于使用根是α的生成程序多项式GF(q)的所有的系数和元素y,生成用于有n个未知数的线性方程系统Ax=b的系数矩阵A和常向量b;
方程求解装置,用于发现线性方程系统Ax=b的解,方程求解装置包括权利要求2的装置;和
逆计算装置,用于使用根α和由方程求解装置发现的解计算逆I。
19.一个记录介质复制装置,用于当版权数字内容基于安全在GF(p)上的椭圆曲线E上使用离散对数问题进行加密并记录在介质上时,计算在GF(q)中的元素y的逆以用于解密记录在记录介质上的加密数字内容,其中GF(q)是有限域GF(p)的外延域,p是素数,q=pn,n是正整数,G是椭圆E的基点,该记录介质复制装置包括:
方程生成装置,用于使用根是α的生成程序多项式GF(q)的所有的系数和元素y,生成用于有n个未知数的线性方程系统Ax=b的系数矩阵A和常向量b;
方程求解装置,用于发现线性方程系统Ax=b的解,方程求解装置包括权利要求3的装置;和
逆计算装置,用于使用根α和由方程求解装置发现的解计算逆I。
20.一个记录介质复制装置,用于当版权数字内容基于安全在GF(p)上的椭圆曲线E上使用离散对数问题进行加密并记录在介质上时,计算在GF(q)中的元素y的逆以用于解密记录在记录介质上的加密数字内容,其中GF(q)是有限域GF(p)的外延域,p是素数,q=pn,n是正整数,G是椭圆E的基点,该记录介质复制装置包括:
方程生成装置,用于使用根是α的生成程序多项式GF(q)的所有的系数和元素y,生成用于有n个未知数的线性方程系统Ax=b的系数矩阵A和常向量b;
方程求解装置,用于发现线性方程系统Ax=b的解,方程求解装置包括权利要求4的装置;和
逆计算装置,用于使用根α和由方程求解装置发现的解计算逆I。
21.一个记录介质复制装置,用于当版权数字内容基于安全在GF(p)上的椭圆曲线E上使用离散对数问题进行加密并记录在介质上时,计算在GF(q)中的元素y的逆以用于解密记录在记录介质上的加密数字内容,其中GF(q)是有限域GF(p)的外延域,p是素数,q=pn,n是正整数,G是椭圆E的基点,记录介质复制装置包括:
方程生成装置,用于使用根是α的生成程序多项式GF(q)的所有的系数和元素y,生成用于有n个未知数的线性方程系统Ax=b的系数矩阵A和常向量b;
方程求解装置,用于发现线性方程系统Ax=b的解,方程求解装置包括权利要求5的装置;和
逆计算装置,用于使用根α和由方程求解装置发现的解计算逆I。
22.一个记录介质复制装置,用于当版权数字内容基于安全在GF(p)上的椭圆曲线E上使用离散对数问题进行加密并记录在介质上时,计算在GF(q)中的元素y的逆以用于解密记录在记录介质上的加密数字内容,其中GF(q)是有限域GF(p)的外延域,p是素数,q=pn,n是正整数,G是椭圆E的基点,该记录介质复制装置包括:
方程生成装置,用于使用根是α的生成程序多项式GF(q)的所有的系数和元素y,生成用于有n个未知数的线性方程系统Ax=b的系数矩阵A和常向量b;
方程求解装置,用于发现线性方程系统Ax=b的解,方程求解装置包括权利要求6的装置;和
逆计算装置,用于使用根α和由方程求解装置发现的解计算逆I。
23.一个记录介质复制装置,用于当版权数字内容基于安全在GF(p)上的椭圆曲线E上使用离散对数问题进行加密并记录在介质上时,计算在GF(q)中的元素y的逆以用于解密记录在记录介质上的加密数字内容,其中GF(q)是有限域GF(p)的外延域,p是素数,q=pn,n是正整数,G是椭圆E的基点,该记录介质复制装置包括:
方程生成装置,用于使用根是α的生成程序多项式GF(q)的所有的系数和元素y,生成用于有n个未知数的线性方程系统Ax=b的系数矩阵A和常向量b;
方程求解装置,用于发现线性方程系统Ax=b的解,方程求解装置包括权利要求7的装置;和
逆计算装置,用于使用根α和由方程求解装置发现的解计算逆I。
24.一个记录介质复制装置,用于当版权数字内容基于安全在GF(p)上的椭圆曲线E上使用离散对数问题进行加密并记录在介质上时,计算在GF(q)中的元素y的逆以用于解密记录在记录介质上的加密数字内容,其中GF(q)是有限域GF(p)的外延域,p是素数,q=pn,n是正整数,G是椭圆E的基点,该记录介质复制装置包括:
方程生成装置,用于使用根是α的生成程序多项式GF(q)的所有的系数和元素y,生成用于有n个未知数的线性方程系统Ax=b的系数矩阵A和常向量b;
方程求解装置,用于发现线性方程系统Ax=b的解,方程求解装置包括权利要求8的装置;和
逆计算装置,用于使用根α和由方程求解装置发现的解计算逆I。
25.一种用于求解在有限域GF(p)上有n个未知数的线性方程系统Ax=b的方法,其中p是素数,n是正整数,A是包括n行和n列元素的系数矩阵,x是包括n个元素的未知向量,b是包括n个元素的常向量,用于在装备了参数存储装置的装置中加密或解密,所述参数存储装置用于存储系数矩阵A和常向量b,该方法包括:
一个三角变换步骤,用于从参数存储装置中读取系数矩阵A,并转变读出的系数矩阵A和常向量b以产生用于有n个未知数的线性方程系统Cx=d的系数矩阵C和常向量d,其中该线性方程系统Cx=d等价于Ax=b,其中系数矩阵A在被三角变换成上三角形式的系数矩阵C的同时不把系数矩阵A的对角线元素变成1,
一个对角线元素逆运算步骤,用于计算在有限域GF(p)上生成的系数矩阵C的对角形元素的逆;和
一个方程计算步骤,用于使用系数矩阵C、矢量d和系数矩阵C的对角线元素的逆求解线性方程系统Cx=d,由此求解线性方程系统Ax=b。
26.权利要求25的方法,
其中三角变换步骤包括一个或多个连续的转变过程以从线性方程系统Ax=b的系数矩阵A和常向量b产生线性方程系统Cx=d的系数矩阵C和常向量d。
其中在每个转变过程中把有n个未知数的线性方程系统的系数矩阵和常向量转变成等价于转变前的线性方程系统的有n个未知数的线性方程系统的系数矩阵和常向量,其中线性方程系统Ax=b从属于第一转变过程和线性方程系统Cx=d作为最后转变过程的结果而产生,
其中在每个转变过程中经受转变过程的有n个未知数的线性方程系统包括一个是线性方程的用作转变的轴的关键方程和一个或多个作为将被转变的线性方程的目标方程,和每个目标方程通过以下步骤被转变为等价的目标方程,
定义容纳至少一个涉及关键方程的值的第一系数组和容纳n+1个涉及关键方程的值的第二系数组,
改变在目标方程中的非零系数为0,和
将在第一系组中的值乘以在目标方程中每个常数和n个系数,并从n+1个相乘结果中分别减去在第二系数组中的n+1个值。
27.权利要求26的方法,
其中每个转变过程有用于转变各目标方程的转变子过程,
其中在每个转变子过程中
(a) 从关键方程中选择非零系数并令所选的非零系数为第一系数组,
(b) 从目标方程中选择非零系数,在关键方程中的每个常量、n个系数乘以从目标方程中选择的非零系数,并令相乘获得的n+1个值为第二系数组,
(c) 改变在目标方程中的所选非零系数为0,和
(d) 在目标方程中的每个常量、n个系数乘以在第一系数组中的非零系数,并从n+1个相乘结果中分别减去在第二系数组中的n+1个值。
29.权利要求28的装置,
s1=m1×m2 模p
s2=s1×m3 模p
_
sn-3=sn-4×mn-2 模p
tn=sn-3×mn-1 模p
tn-1=sn-3×mn 模p
sn=mn-1×mn 模p
tn-2=sn-4×sn 模p
sn-1=mn-2×sn 模p
tn-3=sn-5×sn-1 模p
sn-2=mn-3×sn-1 模p
tn-4=sn-6×sn-2 模p
_
s5=m4×s6 模p
t3=s1×s5 模p
s4=m3×s5 模p
t2=m1×s4 模p
t1=m2×s4 模p
并最后计算
t=tj×mj
从一组正整数(1,2,…,n)中选择值j。
30.权利要求26的装置,
其中每个转变过程有一个系数组计算过程和转变子过程,在系数组计算过程之后执行,用于转变各自的目标方程,
其中在系数组计算过程中
(a)通过从每个关键方程和目标方程中提取一个非零系数选择m个非零系数,相乘所选非零系数的(m-1)个组合的每一个,并令m个相乘结果为第一系数组,m是不小于2的正整数,和
(b)将在关键方程中的每个常量和n个系数乘以在第一系数组中的相乘结果,用于获得不包括从关键方程中所选的非零系数的非零系数组合,并令通过乘法获得的n+1个值为第二系数组,
其中在每个系数组计算过程之后的转变子过程中
(a) 将在系数组计算过程中从目标方程选择的非零系数改变为目标方程中的0,和
(b) 将在目标方程中的每个常量和n个系数乘以在第一系数组中的相乘结果,用于获得不包括从关键方程中所选的非零系数的非零系数组合,并从n+1个相乘结果中分别减去第二系数组中的n+1个值。
32.权利要求31的装置,其中乘法子步骤以如下次序计算
s1=m1×m2 模p
s2=s1×m3 模p
_
sn-3=sn-4×mn-2 模p
然后以一定次序计算
最后计算
t=tj×mj
j值从一组正整数(1,2,…,n)中选择。
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP20305599 | 1999-07-16 | ||
JP203055/1999 | 1999-07-16 | ||
JP2000140886A JP4354609B2 (ja) | 1999-07-16 | 2000-05-12 | 有限体上の連立方程式求解装置及び逆元演算装置 |
JP140886/2000 | 2000-05-12 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN1281203A true CN1281203A (zh) | 2001-01-24 |
Family
ID=26513721
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN00120117A Pending CN1281203A (zh) | 1999-07-16 | 2000-07-17 | 用于求解有限域上方程系统的设备和用于逆运算外延域元素的设备 |
Country Status (5)
Country | Link |
---|---|
US (1) | US7092522B1 (zh) |
EP (1) | EP1069498B1 (zh) |
JP (1) | JP4354609B2 (zh) |
CN (1) | CN1281203A (zh) |
DE (1) | DE60037619T2 (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103946910A (zh) * | 2011-11-18 | 2014-07-23 | 三菱电机株式会社 | 密码处理系统、密码处理方法、密码处理程序以及密钥生成装置 |
Families Citing this family (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7170997B2 (en) | 2000-12-07 | 2007-01-30 | Cryptico A/S | Method of generating pseudo-random numbers in an electronic device, and a method of encrypting and decrypting electronic data |
WO2004038680A1 (en) * | 2002-10-26 | 2004-05-06 | The Additional Director (Ipr), Defence Research & Development Organisation | A method of elliptic curve encryption |
KR100564599B1 (ko) * | 2003-12-24 | 2006-03-29 | 삼성전자주식회사 | 역원 계산 회로, 역원계산 방법 및 상기 역원계산 방법을실행시키기 위한 프로그램을 기록한 컴퓨터로 읽을 수있는 기록매체 |
WO2006076800A1 (en) * | 2005-01-18 | 2006-07-27 | Certicom Corp. | Accelerated verification of digital signatures and public keys |
US7801307B2 (en) * | 2005-07-28 | 2010-09-21 | Alcatel-Lucent Usa Inc. | Method of symmetric key data encryption |
JP6059287B2 (ja) * | 2015-05-12 | 2017-01-11 | 日本電信電話株式会社 | 行列三角化装置およびプログラム |
SG11202108675SA (en) * | 2019-02-13 | 2021-09-29 | Agency Science Tech & Res | Method and system for determining an order of encrypted inputs |
EP3982350B1 (en) * | 2019-06-07 | 2023-12-13 | Nippon Telegraph And Telephone Corporation | Secret conjugate gradient method calculation system, secret calculation device, conjugate gradient method calculation device, secret conjugate gradient method calculation method, conjugate gradient method calculation method, and program |
US20220329408A1 (en) * | 2019-08-14 | 2022-10-13 | Nippon Telegraph And Telephone Corporation | Secure gradient descent computation method, secure deep learning method, secure gradient descent computation system, secure deep learning system, secure computation apparatus, and program |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
SE7714587L (sv) * | 1977-12-21 | 1979-06-22 | Brendstrom Hugo | System for meddelanden |
US5375170A (en) * | 1992-11-13 | 1994-12-20 | Yeda Research & Development Co., Ltd. | Efficient signature scheme based on birational permutations |
-
2000
- 2000-05-12 JP JP2000140886A patent/JP4354609B2/ja not_active Expired - Fee Related
- 2000-06-26 US US09/603,636 patent/US7092522B1/en not_active Expired - Lifetime
- 2000-06-27 DE DE60037619T patent/DE60037619T2/de not_active Expired - Fee Related
- 2000-06-27 EP EP00305405A patent/EP1069498B1/en not_active Expired - Lifetime
- 2000-07-17 CN CN00120117A patent/CN1281203A/zh active Pending
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103946910A (zh) * | 2011-11-18 | 2014-07-23 | 三菱电机株式会社 | 密码处理系统、密码处理方法、密码处理程序以及密钥生成装置 |
Also Published As
Publication number | Publication date |
---|---|
JP2001092807A (ja) | 2001-04-06 |
DE60037619D1 (de) | 2008-02-14 |
DE60037619T2 (de) | 2008-05-21 |
EP1069498B1 (en) | 2008-01-02 |
US7092522B1 (en) | 2006-08-15 |
EP1069498A3 (en) | 2005-04-13 |
JP4354609B2 (ja) | 2009-10-28 |
EP1069498A2 (en) | 2001-01-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN100535962C (zh) | 加密系统、加密装置、解密装置和集成电路 | |
WO2014035146A2 (ko) | 환 동형 사상을 이용한 동형 암호화 방법과 복호화 방법 및 이를 이용한 장치 | |
WO2018117651A1 (en) | Apparatus and method for channel encoding/decoding in communication or broadcasting system | |
WO2019117694A1 (ko) | 동형 암호화를 수행하는 단말 장치와 그 암호문을 처리하는 서버 장치 및 그 방법들 | |
WO2017111559A1 (en) | Apparatus and method for encoding and decoding channel in communication or broadcasting system | |
WO2015041475A1 (ko) | 송신 장치 및 그의 펑처링 방법 | |
WO2016195331A1 (en) | Receiver and signal processing method thereof | |
WO2009157715A2 (en) | Codebook design method for multiple input multiple output system and method for using the codebook | |
WO2014137159A1 (en) | Method and apparatus for applying secondary transforms on enhancement-layer residuals | |
WO2013005961A2 (en) | Mode-dependent transforms for residual coding with low latency | |
WO2018034503A1 (en) | Method and apparatus for constructing interleaving sequence in a wireless communication system | |
WO2016186241A1 (ko) | 데이터 암호화 장치 및 방법과 및 데이터 복호화 장치 및 방법 | |
CN1281203A (zh) | 用于求解有限域上方程系统的设备和用于逆运算外延域元素的设备 | |
WO2015139232A1 (zh) | 一种应用的推荐方法、系统及服务器 | |
CN105723648A (zh) | 一种密钥配置方法、系统和装置 | |
WO2021071012A1 (ko) | 무매체 신원 확인을 통한 상품 구매 서비스 제공 장치 및 방법 | |
WO2019031925A1 (ko) | 통신 또는 방송 시스템에서 채널 부호화/복호화 방법 및 장치 | |
WO2018182371A1 (en) | Apparatus and method for channel encoding/decoding in communication or broadcasting system | |
WO2018236173A1 (en) | METHOD AND APPARATUS FOR CHANNEL ENCODING AND DECODING IN A COMMUNICATION OR BROADCASTING SYSTEM | |
WO2017111362A1 (ko) | 임의의 길이를 가지는 폴라 코드를 이용한 harq 수행 방법 | |
WO2018203725A1 (en) | A method and apparatus for channel encoding and decoding in a communication or broadcasting system | |
WO2022158686A1 (ko) | 암호화된 정보에 기초하여, 인공지능 모델을 이용한 추론을 수행하는 전자 장치 및 그 동작 방법 | |
WO2023158121A1 (ko) | 글로벌 스마트 제조시스템 구축 및 국제 표준화를 위한 데이터 생성방법 | |
AU2018288953B2 (en) | Method and apparatus for channel encoding and decoding in communication or broadcasting system | |
EP3542481A1 (en) | Apparatus and method for channel encoding/decoding in communication or broadcasting system |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C12 | Rejection of a patent application after its publication | ||
RJ01 | Rejection of invention patent application after publication |