数据转换器的制作方法

文档序号:6497249阅读:228来源:国知局
专利名称:数据转换器的制作方法
技术领域
本发明涉及一种数据转换器及其方法,该数据转换器实现了用于认证系统的数据转换系统,特别涉及一种能够以特别小的实现规模来实现的、并具有高数据混淆度(confusion)的数据转换器及其方法。
背景技术
在作为一种用于检验通信另一方等等的合法性的方法的挑战应答(challenge-response)认证系统中,认证方和被认证方都需要秘密转换系统。作为对秘密转换系统的需求,不仅希望其具有高数据混淆性能(雪崩性能(avalanche performance)),还希望能以较低的成本使所述方法在设备上实现。
作为数据转换系统的一个传统的例子,存在一种使用密钥加密系统的系统。例如,在通过使用56位密钥长度的数据加密标准(DES)加密系统(关于DES加密系统的细节,请参考Menezes,Alfred J.等人的“HANDBOOK of APPLIED CRYPTOGRAPHY”,CRC Press,1997252-256)的数据转换系统实现的挑战应答认证系统中,认证方和被认证方都秘密地存储一个56位的DES加密系统的密钥,作为认证密钥。同样,DES加密系统的明文和密文被分别确定为所述数据转换系统的输入和输出。因此,DES加密方法可以用于认证所用的秘密数据转换系统(关于认证系统的细节,请参考Menezes,Alfred J.等人的“HANDBOOK of APPLIED CRYPTOGRAPHY”,CRC Press,1997400-403)。
但是,诸如DES加密系统的密钥加密系统的构造没有考虑与设备中的与加密电路一起装配的其它电路共享电路。所以,需要将其设置为独立于其它电路的电路。因此,在使用传统密钥加密系统的数据转换系统中,与其它电路相分离地将加密电路独立地设置在设备中,以至于设备中电路的总体规模变得很大。也就是说,为了以低成本实现一个设备,通常需要使设置在设备中的电路的总规模尽可能小。所以,希望在设备中设置的加密电路能与其它电路共享电路。但是,在传统结构中还没有实现。
考虑到上述问题,本发明旨在提供一种能够减小设备的实现规模的总体尺寸的数据转换器。

发明内容
本发明的数据转换器包括分割单元,用于将输入数据分割为多个数据块;转换执行单元,用于对所述多个数据块中的每一个进行转换,该转换是基于在以有限域GF(2n)(n是自然数)中的值为系数的多项式剩余类环中对预定指数的幂运算;以及输出数据生成单元,用于根据由转换执行单元转换的多个数据块生成输出数据,其中,所述预定指数是不等于2m的大于等于3的值,m是大于等于1的整数。
根据该结构,在求幂运算中,执行多项式剩余类环中的乘法。通过执行多项式剩余类环中的运算,即使如后所述改变输入数据的一部分,此改变也将影响输出数据的所有位。所以,可以提高数据混淆度。同样,当执行具有两个或更多变量的乘法时,如果变量中的任何一个为0,则不管其它变量的值是多少,乘法的结果都会变为0,不显示更好的数据混淆性能。另一方面,当执行输入数据的求幂运算时,可以提高数据混淆性能而不会导致这种问题。此外,在求幂运算中,执行以有限域GF(2n)(n是自然数)中的值为系数的多项式剩余类环中的运算。因此,可以与在诸如Reed-Solomon编码和Bose-Chaudhuri-Hocqenghem(BCH)编码的误差修正编码电路中使用的有限域GF(2n)中的运算电路共享电路。从而,可以减小设备的实现规模的总体尺寸并且可以实现以小型的电路规模(compact circuitscale)实现的设备。
将2003年10月14日提交的,包括说明书、附图和权力要求在内的日本专利申请No.2003-353439的公开包含在此,作为关于本申请的技术背景的另外的信息。


通过结合附图对本发明的具体实施例所进行的下列描述,本发明的这些以及其它目的、优点和特征将变得显而易见。图中图1是显示根据本发明的实施例的认证系统的框图;图2是显示根据本发明的实施例的数据转换器的结构的例子的框图;图3是显示根据本发明的实施例的有限域立方运算单元的结构的例子的框图;图4是显示根据本发明的实施例的有限域多项式乘法单元的结构的例子的框图;图5是显示根据本发明的实施例的第一转换器的结构的例子的框图;图6是显示根据本发明的实施例的第二转换器的结构的例子的框图;图7是显示根据本发明的实施例的有限域乘法单元的结构的例子的框图;图8是显示根据本发明的实施例的有限域加倍单元的结构的例子的框图;图9是显示将本发明的转换器应用于内容分发系统的例子中的系统结构的例子的框图;图10是误差修正/数据转换器的LSI的外观图;图11是显示误差修正/数据转换器的结构的例子的框图。
具体实施例方式
下面将参照

本发明的实施例。
(具有数据转换器的认证系统的结构)图1是显示根据本发明的实施例的认证系统的结构的框图。在该认证系统中,认证设备3通过挑战应答认证系统来认证被认证设备4。例如,作为本认证系统的具体例子,由用于汽车的无钥匙进入系统来代表认证系统,其中,认证设备3是用于控制车门的打开和关闭的车载设备,被认证设备4是用户持有的用于开关车门的便携终端。
认证设备3在随机数生成设备5中生成64位随机数据并将其作为挑战数据发送到被认证设备4。被认证设备4在数据转换器2中转换接收到的挑战数据并将作为转换结果的64位转换数据作为应答数据发送到认证设备3。当被认证设备4执行上述处理过程时,认证设备3在数据转换器1中转换随机数数据并生成作为转换结果的64位转换数据。然后认证设备3在数据比较装置6中将从被认证设备4接收的应答数据与转换数据进行比较,并且仅当两个数据一致时将被认证设备4认证为有效的。这里,认证设备3中的数据转换器1和被认证设备4中的数据转换器2执行相同的转换处理,并且在认证设备3和被认证设备4之间秘密地共享处理的内容。
(数据转换器1和2的结构)鉴于数据转换器1和2具有相同的结构,下面仅说明数据转换器1的内部结构。
图2是显示数据转换器1的内部结构的框图。数据转换器1是一种处理设备,其对64位的输入数据执行预定的秘密消息转换处理并生成64位输出数据。它包括有限域多项式立方运算单元10,数据结合单元11a~11d、12和13,第一转换器14,第二转换器15,数据分割单元16,以及数据结合单元17。下面将说明将64位输入数据输入到数据转换器1时的内部执行过程。
首先,数据分割单元16从高(high-ordered)位开始将64位输入数据分割为两个分别具有32位的数据块。这里,高32位数据块称为数据A,低32位数据块称为数据B。将数据A输入数据结合单元11a和11c,将数据B输入数据结合单元11b和11d。数据结合单元11a和11c分别利用固定的32位数据K1和K3对输入的32位数据A的每一位执行异或运算(XOR),并输出32位数据A0和A1。并且,数据结合单元11b和11d分别利用固定的32位数据K2和K4对32位数据B的每一位执行异或运算(XOR)并输出32位数据B0和B1。这里,32位数据K1到K4是在预定的值中确定的固定值。
然后,有限域多项式立方运算单元10在以有限域GF(28)中的值为系数的多项式剩余类环(将在后面描述)中对32位数据A0、B0、A1和B1中的每一个求立方,并分别计算出32位数据(A0)3、(B0)3、(A1)3以及(B1)3。将在后面说明有限域多项式立方运算单元10的处理细节。
然后,将32位数据(A0)3和(B0)3输入数据结合单元12,将32位数据(A1)3和(B1)3输入数据结合单元13。
数据结合单元12和数据结合单元13分别对两个输入的32位数据的每一位执行异或运算并输出32位数据(A0)3(+)(B0)3和(A1)3(+)(B1)3。这里“X(+)Y”表示在X和Y之间对每一位进行异或运算(XOR)。
然后第一转换器14基于有限域GF(28)中的运算(将在后面说明)对32位数据(A0)3(+)(B0)3执行预定的转换,并输出32位数据G0。同样,第二转换器15基于有限域GF(28)中的运算对(A1)3(+)(B1)3执行预定的转换并输出32位数据G1。
在上述处理之后,数据结合单元17将32位数据G0和32位数据G1连接并输出64位数据的结果,其中,将G0作为高32位并将G1作为低32位。该64位数据是数据转换器1的输出数据。接下来,将说明有限域多项式立方运算单元10的内部结构和行为。
(有限域多项式立方运算单元10的内部结构)图3是显示有限域多项式立方运算单元10的内部结构的例子的框图。有限域多项式立方运算单元10是在以有限域GF(28)中的值为系数的多项式剩余类环中求立方的处理单元。它包括输入控制单元101、有限域多项式乘法单元100以及输出控制单元102。
输入控制单元101执行控制以便输出两个输入数据块中的一个。有限域多项式乘法单元100在以有限域GF(28)中的值为系数的多项式剩余类环中将两个输入数据块相乘。输出控制单元102执行控制以便将输入数据输出到两个输出目的地中的一个。
以下,将说明当32位输入数据X被输入到有限域多项式立方运算单元10时的内部行为。将输入数据X输入到输入控制单元101和有限域多项式乘法单元100。输入控制单元101将输入数据X直接输入到有限域多项式乘法单元100。有限域多项式乘法单元100在以有限域GF(28)中的值为系数的多项式剩余类环中将从外部输入的32位数据X与从输入控制单元101输入的32位数据X相乘(将在后面详细说明),输出乘法结果X2,并将其输入到输出控制单元102。将在后面说明有限域多项式乘法单元100的处理细节。
输出控制单元102将输入数据X2直接输入到输入控制单元101。然后输入控制单元101将输入数据X2输入到有限域多项式乘法单元100。
有限域多项式乘法单元100将输入数据X2与输入数据X相乘并将乘积X3输入到输出控制单元102。这里的乘法是如上所述的多项式剩余类环中的乘法。
输出控制单元102输出输入数据X3作为有限域多项式立方运算单元10的输出数据。接下来,将说明有限域多项式乘法单元100的内部结构和行为。
(有限域多项式乘法单元100的内部结构)图4是显示有限域多项式乘法单元100的内部结构的例子的框图。有限域多项式乘法单元100在以有限域GF(28)中的值为系数的多项式剩余类环中将32位的第一输入数据X和32位的第二输入数据Y相乘,并输出32位输出数据D。这里的多项式剩余类环中的剩余多项式表示为L(X)=X4-1,有限域GF(28)的本原多项式m(x)表示为m(x)=x8+x4+x3+x+1。在说明有限域多项式乘法单元100的行为之前,将简要说明有限域GF(28)中的运算和多项式剩余类环中的运算。
首先,说明有限域GF(28)中的运算。对于有限域GF(28)中的运算,如果将8位数据A的每一位的值从高位开始表示为a7、a6、…、a0,考虑与这些值相关的七阶多项式a(x)=a7×x7+a6×x6+…+a1×x+a0。类似地,将8位数据B的每一位的值从高位开始表示为b7、b6、…、b0,考虑与这些值相关的七阶多项式b(x)=b7×x7+b6×x6+…+b1×x+b0。这里,在有限域GF(28)中的A和B的和C是将在有限域GF(2)中的计算c(x)=a(x)+b(x)的和c(x)转换为8位数据的结果,该转换是通过将8位数据与上述七阶多项式关联而进行的。也就是说,若c(x)=c7×x7+c6×x6+…+c1×x+c0,它以如下方式获得其c7=a7+b7c6=a6+b6………c1=a1+b1c0=a0+b0这里,1位数据和1位数据之间的加法“+”都是在有限域GF(2)中执行的。也就是说,0+0=1+1=0,并因此按照0+1=1+0=1进行计算。
根据上述内容,有限域GF(28)中的加法只不过是对每一位执行异或运算。也就是说,A和B求和的结果C表示为C=A(+)B。
接下来,将说明有限域GF(28)中的乘法。如上所述,当将8位数据A、B和C表示为七阶多项式a(x)、b(x)和c(x)时,将8位数据A和B相乘的结果C是通过下列使用相应的七阶多项式a(x)、b(x)和c(x)的等式而获得的。
c(x)=a(x)×b(x)mod m(x)这里,“f(x)mod g(x)”是取余计算f(x)模g(x)的取余计算结果,m(x)是如前所述的有限域GF(28)中的本原多项式m(x)=x8+x4+x3+x+1。同样,这里的多项式乘法,基于取余计算的系数的加法和乘法是在有限域GF(2)中计算的。有限域GF(2)中的加法如上所述,乘法由0×0=0×1=1×0=0,1×1=1给出。
将说明乘法的一个例子。给定A=57(十六进制数)和B=83(十六进制数),则a(x)=x6+x4+x2+x+1,b(x)=x7+x+1。那么,a(x)×b(x)=x13+x11+x9+x8+x6+x5+x4+x3+1,因此a(x)×b(x)mod m(x)=x7+x6+1。所以,A和B相乘的结果C是十六进制数C1。
接下来,将说明以有限域GF(28)中的值为系数的多项式剩余类环中的运算。在多项式剩余类环中的运算中,如果32位数据A的从高位字节开始的每一个字节被表示为A0、A1、A2和A3,则将1字节数据A0到A3的应用到三阶多项式A(X)=A0+A1×X+A2×x2+A3×X3。类似地,如果32位数据B和C的每一个字节分别表示为B0、B1、B2和B3,C0、C1、C2和C3,则分别将1字节数据B0到B3以及C0到C3应用到下列多项式B(X)=B0+B1×X+B2×x2+B3×X3以及C(X)=C0+C1×X+C2×x2+C3×X3。这里,通过C(X)=A(X)+B(X)得到多项式剩余类环中的加法。这里的多项式系数的加法是上面说明的有限域GF(28)中的加法。也就是说,只要对每一位执行异或运算就可以得到32位数据A和B的加法。
接下来,说明多项式剩余类环中的乘法。如上所述,使32位数据C作为32位数据A和B相乘的结果,如果将每个数据应用于三阶多项式A(X)、B(X)和C(X),则多项式剩余类环中的乘法被表示为下列多项式运算C(X)=A(X)×B(X)mod L(X)这里,如上所说明的,L(X)是L(X)=X4-1,在有限域GF(28)中计算多项式系数的加法和乘法。所以,上述等式计算如下C(X)=A0×B0+(A0×B1+A1×B0)×X+(A0×B2+A2×B0+A1×B1)×X2+(A0×B3+A1×B2+A2×B1+A3×B0)×X3+(A1×B3+A3×B1+A2×B2)×X4+(A2×B3+A3×B2)×X5+(A3×B3)×X6(mod X4-1)这里,X4=1(mod X4-1),所以上述等式可以进一步变形为C(X)=(A0×B0+A3×B1+A2×B2+A1×B3)+(A1×B0+A0×B1+A3×B2+A2×B3)×X+(A2×B0+A1×B1+A0×B2+A3×B3)×X2+(A3×B0+A2×B1+A1×B2+A0×B3)×X3所以,C可以如下计算C0=A0×B0+A3×B1+A2×B2+A1×B3
C1=A1×B0+A0×B1+A3×B2+A2×B3C2=A2×B0+A1×B1+A0×B2+A3×B3C3=A3×B0+A2×B1+A1×B2+A0×B3这里的加法“+”和乘法“×”是在有限域GF(28)中运算的。
于是对多项式剩余类环中和有限域GF(28)中的运算的说明结束。接下来,将说明有限域多项式乘法单元100的执行。
有限域多项式乘法单元100是在以有限域GF(28)中的值为系数的多项式剩余类环中将两个输入数据块相乘的处理单元。它包括有限域乘法单元110、数据分割单元111到112、数据加法单元113到115、数据结合单元116、以及运算控制单元117。
有限域乘法单元110在有限域GF(28)中执行乘法。每个数据分割单元111和112将32位输入数据分割为分别为8位的四块数据。每个数据加法单元113到115在有限域GF(28)中将两个输入数据相加。数据结合单元116将四块8位数据结合并将它们输出为32位数据。运算控制单元117对从数据分割单元111和数据分割单元112输入到有限域乘法单元110的被乘数和乘数执行输入控制,并对从有限域乘法单元110输出的数据执行输出目的地控制。下面,将说明有限域多项式乘法单元100的执行。
数据分割单元111将32位的第一输入数据从高位字节开始分割成四块分别为8位的数据。这里,从高位字节开始,将四个数据块表示为X0、X1、X2和X3。类似地,数据分割单元112将32位的第二输入数据从高位字节开始分割成四个分别为8位的数据块。这里,从高位字节开始,四块数据分别表示为Y0、Y1、Y2和Y3。然后,运算控制单元117根据需要控制输入和输出数据,并且有限域乘法单元110和数据加法单元113到115根据下列等式(1)到(4)计算位数据D0、D1、D2和D3。
D0=X0×Y0+X3×Y1+X2×Y2+X1×Y3…(1)D1=X1×Y0+X0×Y1+X3×Y2+X2×Y3…(2)D2=X2×Y0+X1×Y1+X0×Y2+X3×Y3…(3)D3=X3×Y0+X2×Y1+X1×Y2+X0×Y3…(4)
注意,所有的乘法“×”和加法“+”都在有限域GF(28)中进行运算。上述等式表示数据X和Y的乘积的原理见上面的说明。
现在只说明有限域多项式乘法单元100计算数据D0的过程。数据D1到D3是由相似的过程计算的。
运算控制单元117从数据X0到X3中选择X0并从8位数据Y0到Y3中选择Y0作为有限域乘法单元110的输入。有限域乘法单元110在有限域GF(28)中将数据X0和数据Y0相乘,并输出乘法的结果作为数据Z0。也就是说,计算Z0=X0×Y0。
然后,通过类似的执行过程,有限域乘法单元110在有限域GF(28)中将数据X3和Y1相乘并输出计算结果作为数据Z1。也就是说,计算Z1=X3×Y1类似地,计算Z2=X2×Y2Z3=X1×Y3。
输出Z0到Z3之后,数据加法单元113到115在有限域GF(28)中将数据Z0到Z3相加。也就是说,计算D0=Z0+Z1+Z2+Z3。
注意,有限域GF(28)中的加法正是对每一位本身的异或运算。所以,上述计算相当于对数据Z0到Z3的每个位的值执行异或运算。类似地,数据加法单元113到115通过计算下列等式得到D1到D3D1=X1×Y0+X0×Y1+X3×Y2+X2×Y3D2=X2×Y0+X1×Y1+X0×Y2+X3×Y3D3=X3×Y0+X2×Y1+X1×Y2+X0×Y3数据结合单元116从高位字节开始连接数据D0、D1、D2和D3,并输出32位数据D作为有限域多项式乘法单元100的输出数据。
接下来,将说明第一转换器14的内部结构和行为。
(第一转换器14的内部结构)图5是显示第一转换器14的内部结构的例子的框图。
第一转换器14是使用有限域GF(28)中的运算对32位输入数据X执行预定转换并输出32位输出数据Y的处理单元。它包括数据分割单元20、数据结合单元21、常数存储单元22以及有限域乘法单元210。数据分割单元20将32位输入数据分割为四块8位的数据。数据结合单元21结合四个8位数据块,并将他们作为32位数据输出。常数存储单元22存储四个8位常数C1到C4。有限域乘法单元210在有限域GF(28)中将两块8位的输入数据相乘,并输出8位的输出数据。下面,将说明第一转换器14的执行过程。
数据分割单元20从高位字节开始将32位输入数据分割为分别具有8位的数据块。这里,分割后的8位数据从高位字节开始表示为数据X0、X1、X2和X3。有限域乘法单元210在有限域GF(28)中将数据X0和存储在常数存储单元22中的8位常数C1相乘,并将结果输出作为输出数据Y0。类似地,有限域乘法单元210i)将数据X1和常数C2相乘并输出为数据Y1,ii)将数据X2和常数C3相乘并输出为数据Y2,iii)将数据X3和常数C4相乘并输出为数据Y3。根据这一系列执行过程计算出下列等式Y0=C1×X0Y1=C2×X1Y2=C3×X2Y3=C4×X3注意,所有的乘法“×”都是在有限域GF(28)中计算的。
处理之后,数据结合单元21从高位字节开始连接数据Y0、Y1、Y2和Y3,并输出32位数据Y作为第一转换器14的输出数据。
(第二转换器15的内部结构)如图6所示,对于第二转换器15的内部结构,在第一转换器14中的存储在常数存储单元32中的常数C1、C2、C3和C4分别改变为第二转换器15中的C5、C6、C7和C8。另外,第二转换器15的其它内部结构和执行过程与第一转换器14的相同。所以,不再对其细节重复说明。
接下来,将参照图7说明有限域乘法单元110、210和310的内部结构和执行过程。
(有限域乘法单元110、210和310的内部结构)有限域乘法单元110、210和310具有相同的内部结构并执行相同的行为。所以,这里只说明有限域乘法单元110的执行过程。鉴于有限域GF(28)中的乘法是如上面所说明的,所以这里说明在小型的电路中实现该计算的结构。
有限域乘法单元110是在有限域GF(28)中将第一8位输入数据X和第二8位输入数据Y相乘并输出8位输出数据Z的处理单元。它包括第一输入控制单元411、第二输入控制单元414、输出控制单元412、有限域加倍单元410、数据结合单元413、以及数据分割单元415。
第一输入控制单元411和第二输入控制单元414中的每一个都对选择两个输入数据块中的任何一个并输出所选择的数据块执行控制。有限域加倍单元410在有限域GF(28)中将输入数据加倍。数据结合单元413将两个输入数据结合。数据分割单元415将输入数据分割为多个数据。下面,将说明有限域乘法单元110的执行过程。
首先,数据分割单元415从高位开始将8位的第二输入数据Y分割为每个都为1位的数据,并且每个值表示为Y7、Y6、…、以及Y0。然后,按照i=7、6、5、4、3、2、1和0的顺序重复下列处理(1)到(5)。
(1)当i=7时,第一输入控制单元411将8位的初始值0输入有限域加倍单元410,当i≠7时,输入从输出控制单元412输出的8位数据。
(2)有限域加倍单元410在有限域GF(28)中将从第一输入控制单元411输入的8位数据加倍并将作为结果的8位数据输入到数据结合单元413。
(3)当Yi(i=7,6,…0)时,第二输入控制单元414将8位常数0输入数据结合单元413,否则输入第一输入数据X。
(4)数据结合单元413对从有限域加倍单元410输入的8位数据和从第二输入控制单元414输入的8位数据的每一位执行异或运算,并将运算产生的8位数据输入到输出控制单元412。
(5)当i≠0时,输出控制单元412将从数据结合单元413输入的8位数据输入到第一输入控制单元411。然后,i的值减1并且从处理(1)重新开始处理。当i=0时,输出控制单元412输出从数据结合单元413输入的8位数据作为有限域乘法单元110的输出数据。然后,处理块终止。
简要说明可以通过上述处理计算第一输入数据X和第二输入数据Y的乘法的原因。
假设每一位的值为Y7、Y6、…Y0,第二输入数据表示为Y=Y7×27+Y6×26+…+Yi×2i+…+Y0所以,X×Y=X×(Y7×27+Y6×26+…+Yi×2i+…+Y0)=(…(((((0+X×Y7)×2+X×Y6)×2+X×Y5)×2+X×Y4)×2+X×y3)…)×2+X×Y0该等式是上述处理的基础。
接下来,将说明有限域加倍单元410的内部结构和执行过程。
(有限域加倍单元410的内部结构)图8是显示有限域加倍单元410的内部结构的框图。
有限域加倍单元410在有限域GF(28)中将输入的8位数据加倍并输出8位数据Y作为结果。它包括数据分割单元511、数据结合单元512、以及数据结合单元513到515。
数据分割单元511将输入数据分割为各自为1位的数据。数据结合单元512将多个输入数据结合为单个数据并输出所结合的数据。每个数据结合单元513到515将两个输入数据块结合。下面将说明有限域加倍单元410的执行过程。
首先,数据分割单元511从高位开始将8位输入数据X分割为每个都为1位的数据并从高位开始输出为数据X7、X6、…、X0。接下来,数据结合单元513在数据X7和X3之间执行异或运算并输出结果作为数据Y4。数据结合单元514在数据X7和X2之间执行异或运算并输出结果作为数据Y3。数据结合单元515在数据X7和X0之间执行异或运算并输出结果作为数据Y1。同样,数据X6、X5、X4、X1和X7分别表示数据Y7、Y6、Y5、Y2和Y0。数据结合单元512输出从高位开始将数据Y7、Y6、Y5、…、Y0按照所述顺序结合得到的8位数据,作为有限域加倍单元410的输出数据。
对于组成8位输入数据X的每一位X7、X6、…、和X0,通过表示为Y7=X6Y6=X5Y5=X4Y4=X3(+)X7Y3=X2(+)X7Y2=X1Y1=X0(+)X7Y0=X7有限域加倍单元410计算组成8位输出数据Y的每一位的值Y7、Y6、…、以及Y0。这里的输出数据Y表示在有限域GF(28)中将输入数据X加倍的结果。
输入数据X由下列系数为有限域GF(2)中的值的α的多项式表示。
X7×α7+X6×α6+…+X1×α+X0这里,有限域GF(28)中的加倍意味着对上述多项式乘以α。所以得到,X7×α8+X6×α7+…+X1×α2+X0×α这里,本原多项式为x8+x4+x3+x+1,因此有α8=α4+α3+α+1。所以,上述多项式重构为X6×α7+X5×α6+X4×α5+(X3+X7)×α4+(X2+X7)×α3+X1×α+(X0+X7)该多项式相当于Y7×α7+Y5×α6+…+Y1×α+Y0因此,说明了有限域加倍单元410执行所述处理的原因。
数据转换器1和2在64位输入数据X上执行下列处理。
(1)将输入数据分割为高位的32位和低位的32位并分别表示为数据X0和X1。
(2)计算T0=(X0+K1)3+(X1+K2)3和T1=(X0+K3)3+(X1+K4)3。注意,这里的加法和乘法都是在以有限域GF(28)中的值作为系数的多项式剩余类环中计算的。
(3)从高位字节开始将32位数据T0分割为8位的数据。所分割的数据分别表示为数据a0、a1、a2和a3。同样,从高位字节开始将32位数据T1分割为每个都为8位的数据块。所分割的数据分别表示为数据b0、b1、b2和b3。
(4)计算G0=C1×a0‖C2×a1‖C3×a2‖C4×a3和G1=C5×b0‖C6×b1‖C7×b2‖C8×b3并输出G0‖G1作为输出数据。注意“‖”表示数据连接,上述乘法都是在有限域GF(28)中计算的。
从等式(1)到(4)中可以清楚地看到,在以有限域GF(28)中的值为系数的多项式剩余类环的乘法中,即使输入数据的一部分被改变,该改变也会影响到整个输入数据。例如,假设改变了等式(1)到(4)中的数据X0的值。数据X0用于所有的等式(1)到(4)。所以,此改变将影响所有的输出数据D0到D3。同样的情况也适用于其它值(X1到X3,Y0到Y3)。因此,在本实施例中,使用用于转换处理的上述乘法可以实现高可能性的数据混淆。其次,在本实施例中,用幂运算代替了两个或更多个变量的乘法(例如,X×Y,X×Y×Z)。这是因为,在两个或更多个变量相乘的情况下,如果任何一个变量的值为0,则乘法的结果就会始终是0,也就是说,输入变量的值的很多组合会导致乘法结果的值为0。因此,不会显示出好的混淆概率。另一方面,在幂运算的情况下,只有在输入变量的值为0时计算结果才是0。所以,如上所述,在不降低数据混淆的概率的情况下保证高的数据可能性。
此外,在本实施例中,使用三次幂的计算。这是因为下列原因。首先,假定例如Y=X2的使用平方计算的转换,则输入数据α的输出值为α2。其次,当对输入数据α加上一个差值Δ时的输出值为(α+Δ)2=α2+α×Δ+Δ×α+Δ2。这里,α×Δ=Δ×α并且α×Δ+Δ×α=0(根据有限域GF(28)中的计算方法都是显然的)。所以,(α+Δ)2=α2+Δ2。所以,通过对输入数据增加差值Δ输出值的改变值为Δ2。也就是说,不管输入值α为多少,输出值的改变值会变为常数的输出改变值Δ2,所以就数据混淆而言这不是可取的特征。因此,有必要使用至少为立方的或更高的幂运算。在本实施例中使用立方幂,这是因为指数的提高会导致幂运算增多,从而导致转换处理的负载增大。这里,(α+Δ)3=(α+Δ)×(α+Δ)×(α+Δ)=(α2+α×Δ+Δ×α+Δ2)×(α+Δ)=(α2+Δ2)×(α+Δ)=α3+Δ×α2+Δ2×α+Δ3所以,在立方运算的情况下,输出差值不会象平方运算一样不论输入值α为多少都为常数。注意,当幂运算的指数N为N=2k(k是大于等于1的整数)时,输出值为(α+Δ)^(2k)=α^(2k)+Δ^(2k),这是通过在作为数据转换处理的幂运算XN中将输入差值Δ加到输入值α而得到的。下面说明不论输入值为多少输出值都为常数的情况。这里“X^α”表示X的α次幂。
当k=1、指数=2时,根据以上说明输出值为(α+Δ)2=α2+Δ2。其次,当k=m、指数=2m时,如果有(α+Δ)^(2m)=α^(2m)+Δ^(2m),则(α+Δ)^(2m+1)={(α+Δ)^(2m)}2={α^(2m)+Δ^(2m)}2=α^(2m+1)+Δ^(2m+1)。所以,当k=m+1时上面的等式成立。因此,这表明,通过数学归纳法,对于任意大于等于1的整数k,等式(α+Δ)^(2k)=α^(2k)+Δ^(2k)成立。因此,这表明指数应该是不等于2k(k是大于等于1的整数)的值。也就是说,尽管在本实施例中将3用作指数,但是可以使用除2k(k是大于等于1的整数)以外的大于等于3的值作为指数值,除非不介意在数据转换器中的处理上花费时间,则。
同样,在本实施例中,在幂运算之前计算与常数k的加法(异或运算),例如(X+K)3。这里,通过改变常数K,会将很多变量加入数据转换器中的转换处理。例如,可以通过根据待认证的对象使用不同的常数K从而将不同的转换处理用于认证各个待认证的对象。
这里,仅当X=Y时(X+K)3的值为0。所以,通过使用上述幂运算,不会失去确保数据混淆的高概率的优点。
同样,在本实施例中,对四个数据块A0到A3执行相同的立方幂运算。但是,指数不必相同而是可以互相不同。
此外,根据本实施例的数据转换器使用有限域GF(28)中的运算处理作为数据混淆的核心处理。所以,可以与用于诸如Reed-Solomon编码和Bose chaudhuri-Hocquenghem(BCH)编码的误差修正编码电路的有限域GF(28)中的运算电路共享电路。因此,设备的整体实现尺寸可以减小并且可以实现小型电路中的设备实现。
注意,本发明的每个数据大小只是举例,可以超出所述的数据大小。同样,根据本实施例的本原多项式和剩余多项式也只是举例。所以,其大小不局限于此。
此外,本实施例描述了在认证系统中使用数据转换器的情况。但是,可以使用本实施例的数据转换器,除非使用秘密数据转换器。作为使用数据转换器的其它应用实例,例如,可以应用于如图9所示的内容分发系统。所述内容分发系统包括用于通过广播或网络分发加密内容的内容分发装置7,以及用于接收、解码以及再生所分发的加密内容的再生装置8。内容分发装置7在数据转换器70中转换秘钥种子数据(将作为用于生成内容密钥的种子的数据)并生成内容密钥。然后内容加密装置71加密明文的内容数据并生成加密的内容数据。上述处理之后,内容分发装置7将密钥种子数据和加密的内容数据发送到再生装置8。在数据转换器8中,接收到数据的再生装置8首先转换密钥种子数据并生成内容密钥。然后,内容解码单元81将加密的内容数据解码并获取明文的内容。通过为允许再生内容的再生装置安装与内容分发装置相同的数据转换器可以防止非法的再生装置再生内容。
同样,在本实施例中,尽管在数据结合单元11a到11d中用于结合数据的固定值K1到K4是预先固定的值,但是这些固定值可以从数据转换器的外部输入,从而使得用户能够自由地设置这些值。此外,常数C1到C4也是将被存储到常数存储单元22中的预先固定的值。但是,这些值也可以从数据转换器的外部输入从而使得用户能够自由地设置这些值。
此外,在本实施例中,尽管使用有限域GF(28)作为有限域,也可以应用其它的有限域。例如,可以是有限域GF(2n)(n是自然数)。
注意,框图(图2等)中的各个功能块典型地都被实现为集成电路LSI。可以分离地构建为一个芯片,或者可以构建为一个包括集成电路的一部分或整体的芯片。
图10是包含具有与图2所示的数据转换器类似的功能的数据转换器的误差修正/数据转换器的LSI的外部视图。图11是显示误差修正/数据转换器的LSI的结构的功能框图。
如图11所示,误差修正/数据转换器600是在对数据执行误差修正编码之后执行数据转换的设备。它包括Reed-Solomon误差修正编码单元601和数据转换器604。
Reed-Solomon误差修正编码单元601是对输入数据执行Reed-Solomon误差修正编码并输出编码数据的处理单元。它包括数据接收单元602和编码单元603。数据接收单元602是用于从外部接受将被输入的数据的处理单元。编码单元603是用于响应于数据接收单元602、通过对数据接收单元602所接收的数据执行有限域GF(2n)中的乘法来执行Reed-Solomon误差修正编码的处理单元。编码单元603包括对数据执行有限域GF(2n)中的乘法的有限域乘法单元110。有限域乘法单元110的结构如上所述。
虽然数据转换器604具有与数据转换器1(2)类似的结构,但是它使用有限域多项式乘法单元605代替有限域多项式乘法单元100,使用第一转换器606代替第一转换器14,以及使用第二转换器607代替第二转换器15。有限域多项式乘法单元605与有限域多项式乘法单元100的差别在于,它使用编码单元603中设置的有限域多项式乘法单元110执行有限域GF(2n)中的乘法。有限域多项式乘法单元605的其它配置与有限域多项式乘法单元110相同。第一转换器606与第一转换器14的差别在于,它使用编码单元603中设置的有限域乘法单元110来执行有限域GF(2n)中的乘法。第一转换器606的其它配置与第一转换器14相同。第二转换器607与第二转换器15的差别在于,它使用编码单元603中设置的有限域乘法单元110执行有限域GF(2n)中的乘法。第二转换器607的其它结构与第二转换器15相同。
因此,Reed-Solomon误差修正编码单元601和数据转换器604可以共享有限域乘法单元110。所以,LSI的电路规模可以减小。
这里,误差修正/数据转换器600由LSI实现。但是,根据集成密度的差别,可以称为IC、系统LSI、超级LSI(super LSI)以及超LSI(ultra LSI)。
另外,构造集成电路的方法不局限于LSI。它可以由专用电路或通用处理器实现。可以使用能够编程的现场可编程门阵列(FieldProgrammable Gate Array,FPGA)和能够在制造LSI之后重新配置LSI中的电路单元的连接和设置的可重新配置的处理器。
此外,随着半导体技术的发展如果提出了可以代替LSI的构造集成电路的技术和新型技术,自然可以使用新提出的技术来集成所述功能块。可以使用其它技术,可能是生物工程技术(biotechnology)等。
尽管上面只详细描述了本发明的一个典型实施例,但是本领域的技术人员可以容易地知道,在不实质上脱离本发明的新技术和优点的情况下,本典型实施例中的许多变形都是可能的。因此,所有这样的变形都应包括在本发明的范围中。
工业适用性根据本发明的数据转换器可以通过与误差修正编码电路共享数据转换来减小包含数据转换器的电路的整体规模。所以,例如,这对于具有通过通信信道认证通信伙伴的功能的设备是有用的。同样,不局限于这个例子,本发明可以应用于任何设备,除非他们需要装配任何种类的数据转换电路。
权利要求
1.一种数据转换器,包括分割单元,用于将输入数据分割为多个数据块;转换执行单元,用于对所述多个数据块中的每一个执行转换,所述转换基于在以有限域GF(2n)中的值为系数的多项式剩余类环中对预定指数的幂运算,其中,所述n是自然数;以及输出数据生成单元,用于基于由所述转换执行单元转换的所述多个数据块生成输出数据,其中,所述预定指数是除2m以外的大于等于3的值,所述m是大于等于1的整数。
2.如权利要求1所述的数据转换器,还包括有限域乘法单元,用于执行所述有限域GF(2n)中的乘法,其中,所述转换执行单元使用所述有限域乘法单元执行幂运算。
3.如权利要求1所述的数据转换器,其中,所述转换执行单元包括加法子单元,用于在所述多项式剩余类环中将预定的常数与由所述分割单元分割的所述多个数据块中的每一个进行相加,所述预定常数是相同的或者根据所述每个数据块而变化;以及转换执行子单元,用于对由所述加法子单元加上了所述常量的所述多个数据块中的所述每一个执行转换,所述转换基于在所述多项式剩余类环中对所述预定指数的所述幂运算。
4.如权利要求1所述的数据转换器,其中,所述输出数据生成单元包括加法子单元,用于对由所述转换执行单元转换的所述多个数据块执行所述多项式剩余类环中的加法;以及乘法子单元,用于在所述有限域GF(2n)中将由所述加法子单元执行的所述加法的结果与预定常数相乘。
5.如权利要求4所述的数据转换器,还包括有限域乘法单元,用于执行所述有限域GF(2n)中的乘法,其中,所述转换执行单元使用所述有限域乘法单元执行幂运算,以及所述乘法子单元使用所述有限域乘法单元执行乘法。
6.一种数据转换方法,包括将输入数据分割为多个数据块;对所述多个数据块中的每一个执行转换,所述转换基于在以有限域GF(2n)中的值为系数的多项式剩余类环中通过预定指数的幂运算,其中所述n是自然数;以及基于通过所述转换执行所转换的所述多个数据块生成输出数据,其中,所述预定指数是除2m以外的大于等于3的值,所述m是大于等于1的整数。
7.如权利要求6所述的数据转换方法,其中,在所述转换执行中,使用有限域乘法单元执行所述幂运算,所述有限域乘法单元用于执行所述有限域GF(2n)中的乘法。
8.如权利要求6所述的数据转换方法,其中,所述转换执行包括在所述多项式剩余类环中,将预定的常数与所述多个分割数据块中的每一个进行相加,所述预定常数是相同的或者根据所述每个数据块而变化;以及对通过所述加法加上了所述常量的所述多个数据块中的所述每一个执行转换,所述转换基于在所述多项式剩余类环中对预定指数的幂运算。
9.如权利要求6所述的数据转换方法,其中,所述输出数据生成包括对由所述转换执行所转换的所述多个数据块执行所述多项式剩余类环中的加法;以及在所述有限域GF(2n)中将所述加法的结果与预定常数相乘。
10.如权利要求9所述的数据转换方法,其中,在所述转换执行中,使用有限域乘法单元执行所述幂运算,所述有限域乘法单元用于执行所述有限域GF(2n)中的乘法;以及在所述乘法中,使用所述有限域乘法单元执行所述乘法,所述有限域乘法单元用于执行所述有限域GF(2n)中的乘法。
11.一种集成电路,包括有限域乘法单元,用于执行有限域GF(2n)中的乘法,所述n是自然数;误差修正编码单元,用于通过使用所述有限域乘法单元执行所述有限域GF(2n)中的乘法,从而对输入数据执行误差修正编码;分割单元,用于将所述输入数据分割为多个数据块;转换执行单元,用于对所述多个数据块中的每一个执行转换,所述转换基于在以所述有限域GF(2n)中的值为系数的多项式剩余类环中对预定指数的幂运算;以及生成输出数据单元,基于由所述转换执行单元转换的所述多个数据块;其中,所述预定指数是除2m以外的大于等于3的值,所述m是大于等于1的整数。
12.如权利要求11所述的集成电路,其中,所述转换执行单元包括加法子单元,用于在所述多项式剩余类环中,将预定的常数与由所述分割单元分割的所述多个数据块中的每一个进行相加,所述预定常数是相同的或者根据所述每个数据块而变化;以及转换执行子单元,用于使用所述有限域乘法单元对由所述加法子单元加上了所述常量的所述多个数据块中的所述每一个执行转换,所述转换基于在所述多项式剩余类环中对预定指数的所述幂运算。
13.如权利要求11所述的集成电路,其中,所述输出数据生成单元包括加法子单元,用于对由所述转换执行单元转换的所述多个数据块执行所述多项式剩余类环中的加法;以及乘法子单元,用于使用所述有限域乘法单元在所述有限域GF(2n)中将由所述加法子单元执行的所述加法的结果与预定常数相乘。
14.一种使计算机运行的程序将输入数据分割为多个数据块;使用有限域乘法单元对所述多个数据块中的每一个执行转换,所述有限域乘法单元用于执行有限域GF(2n)中的乘法,所述n是自然数,所述转换基于在以所述有限域GF(2n)中的值为系数的多项式剩余类环中对预定指数的幂运算;以及基于由所述转换执行所转换的所述多个数据块生成输出数据,其中,所述预定指数是除2m以外的大于等于3的值,所述m是大于等于1的整数。
15.如权利要求14所述的程序,其中,所述转换执行包括在所述多项式剩余类环中,将预定的常数与所述多个分割数据块中的每一个进行相加,所述预定常数是相同的或者根据所述每个数据块而变化;以及使用所述有限域乘法单元对通过所述加法被相加的所述多个数据块中的所述每一个执行转换,所述转换基于在所述多项式剩余类环中对预定指数的幂运算。
16.如权利要求14所述的程序,其中,所述输出数据生成包括对由所述转换执行所转换的所述多个数据块执行所述多项式剩余类环中的加法;以及使用所述有限域乘法单元在所述有限域GF(2n)中将所述加法的结果与预定常数相乘。
全文摘要
用于减小设备中的整体实现尺寸的数据转换器(1)是用于对64位输入数据执行预定的秘密转换处理的处理设备,所述数据转换器包括有限域多项式立方运算单元(10)、数据结合单元(11a)到(11d)、(12)和(13)、第一转换器(14)、第二转换器(15)、数据分割单元(16)、以及数据结合单元(17)。所述有限域多项式立方运算单元(10)在以有限域GF(28)中的值为系数的多项式剩余类环中对32位数据执行立方运算并相应地输出32位的数据。
文档编号G06F7/72GK1867889SQ20048003004
公开日2006年11月22日 申请日期2004年9月28日 优先权日2003年10月14日
发明者横田薰, 大森基司, 馆林诚, 臼井诚, 山道将人(已故) 申请人:松下电器产业株式会社
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1