数据变换装置以及数据变换方法

文档序号:6657173阅读:240来源:国知局
专利名称:数据变换装置以及数据变换方法
技术领域
本发明涉及数据变换装置以及数据变换方法。
背景技术
专利文献1(特开2000-66585号公报(第7-13页、第4图))的加密装置以及解密装置,通过掩码a和掩码b对数据进行保密,并且在加密或者解密的运算后除去这些掩码的影响,由此得到不使用掩码的数据。这样通过使用掩码a和掩码b,就可防止预测内部数据,使利用电力分析的解读难以进行。
在如上述那样的现有的加密装置以及解密装置中,必须新发生掩码,需要使掩码发生的电路,所以招致电路的增大。另外,运算通过块单位的并列处理来进行,所以若块长变长,则同时使用的运算元件的数目就变多,电力就需要较多,其结果就有电力分析变得容易之类的课题。进而,在块长较长的情况下,各块内的每个位的运算延迟不同,由于该延迟而存在电力分析变得容易之类的课题。
图21是表示每个位的运算迟延的差异给电力消耗量带来的影响的例子的图。在图21中,输入位A、B的迟延之差对AND门的输出位带来影响。如该图那样,输入的迟延之差越大,电力变化就变得越易于表现,单位时间的电力消耗量就变得越大。

发明内容
本发明以例如使涉及数据的加密或者解密的运算的电力消耗量减小,使电力分析变得困难为其目的。
本发明的数据变换装置是一种通过多个位的运算组合对数据进行变换的数据变换装置,其特征在于
将可进行多个位的并行运算的处理用串行运算来进行处理,由此使每单位时间的电力消耗量比并行运算时的电力消耗量减小。
其特征在于,上述数据变换装置具备存储多个位并逐个位进行输出的第1存储部;存储其他的多个位并逐个位进行输出的第2存储部;以及对上述第1存储部输出的位和上述第2存储部输出的位进行运算,并使运算后的结果存储在上述第1存储部中的运算部。
其特征在于,上述数据变换装置还具备选择由上述运算部进行的运算种类的选择部。
其特征在于,上述第1存储部和上述第2存储部是移位寄存器。
其特征在于,上述数据变换装置将可进行m(m>1)位输入n(n>1)位输出的并行运算的处理用m位输入1位输出的串行运算来进行处理。
另外,本发明的数据变换装置是一种通过多个位的运算组合对数据进行变换的数据变换装置,其特征在于将可进行前后连结的运算的处理,用在前一运算与后一运算之间设置存储部并经过分离后的运算来进行处理,由此使每单位时间的电力消耗量比前后连结的运算时的电力消耗量减小。
其特征在于上述存储部在将前一运算的结果中所包含的全部位存储起来以后,将该全部位提供给后一运算。
其特征在于上述数据变换装置具备具有输入前一运算的结果的多个输入端口,并且通过该多个输入端口的输入来进行后一运算的运算部,上述存储部被设置在上述运算部的各输入端口之前。
本发明的数据变换方法是一种使用通过多个位的运算组合对数据进行变换的数据变换装置的数据变换方法,其特征在于将可进行多个位的并行运算的处理用串行运算来进行处理,由此使每单位时间的电力消耗量比并行运算时的电力消耗量减小。
其特征在于上述数据变换方法,
在第1存储部中存储多个位并逐个位进行输出,在第2存储部中存储其他的多个位并逐个位进行输出,对从上述第1存储部输出的位和从上述第2存储部输出的位进行运算,并将运算后的结果存储在上述第1存储部中。
其特征在于上述数据变换方法进一步,选择对从上述第1存储部输出的位和从上述第2存储部输出的位进行运算的运算种类。
其特征在于上述数据变换方法,将可进行m(m>1)位输入n(n>1)位输出的并行运算的处理用m位输入1位输出的串行运算来进行处理。
另外,本发明的数据变换方法是一种使用通过多个位的运算组合对数据进行变换的数据变换装置的数据变换方法,其特征在于将可进行前后连结的运算的处理,用在前一运算与后一运算之间设置存储部并经过分离后的运算来进行处理,由此使每单位时间的电力消耗量比前后连结的运算时的电力消耗量减小。
其特征在于在上述存储部中将前一运算的结果中所包含的全部位存储起来以后,将该全部位提供给后一运算。
其特征在于上述数据变换方法,使用具有将前一运算的结果输入的多个输入端口的运算部,通过该多个输入端口的输入来进行后一运算,将上述存储部设置在上述运算部的各输入端口之前。
根据本发明,在数据变换装置中,将可进行多个位的并行运算的处理用串行运算来进行处理,由此就可以使每单位时间的电力消耗量比并行运算时的电力消耗量减小,使电力分析变得困难。
另外,在数据变换装置中,第1存储部存储多个位并逐个位进行输出,第2存储部存储其他的多个位并逐个位进行输出,运算部将对第1存储部输出的位和第2存储部输出的位进行运算后的结果存储在第1存储部中,由此就可以高效率地利用第1存储部。
另外,在数据变换装置中,选择部选择由运算部进行的运算种类,由此就可以高效率地利用第1存储部和第2存储部。
另外,在数据变换装置中,第1存储部和第2存储部是移位寄存器,由此就可以使电力消耗的特异状态难以发生。
另外,在数据变换装置中,将可进行m(m>1)位输入n(n>1)位输出的并行运算的处理用m位输入1位输出的串行运算来进行处理,由此就可以对n位输出的各位的输出定时进行调整。
根据本发明,在数据变换装置中,将可进行前后连结的运算的处理,用在前一运算与后一运算之间设置存储部并经过分离后的运算来进行处理,由此就可以使每单位时间的电力消耗量比前后连结的运算时的电力消耗量减小,使电力分析变得困难。
另外,在数据变换装置中,存储部在将前一运算的结果中所包含的全部位存储起来以后,将该全部位提供给后一运算,由此就可以对存储部的输出定时进行调整。
另外,在数据变换装置中,运算部具有输入前一运算的结果的多个输入端口,并且通过该多个输入端口的输入来进行后一运算,存储部被设置在运算部的各输入端口之前,由此就可以使向后一运算的多个输入的定时一致。
根据本发明,在使用数据变换装置的数据变换方法中,将可进行多个位的并行运算的处理用串行运算来进行处理,由此就可以使每单位时间的电力消耗量比并行运算时的电力消耗量减小,使电力分析变得困难。
另外,在数据变换方法中,在数据变换装置具备的第1存储部中存储多个位并逐个位进行输出,在第2存储部中存储其他的多个位并逐个位进行输出,对从第1存储部输出的位与从第2存储部输出的位进行运算,并将运算后的结果存储在第1存储部中,由此就可以高效率地利用第1存储部。
另外,在数据变换方法中,选择对从第1存储部输出的位与从第2存储部输出的位进行运算的运算种类,由此就可以高效率的利用第1存储部与第2存储部。
另外,在数据变换方法中,将可进行m(m>1)位输入n(n>1)位输出的并行运算的处理用m位输入1位输出的串行运算来进行处理,由此就可以对n位输出的各位的输出定时进行调整。
根据本发明,在利用数据变换装置的数据变换方法中,将可进行前后连结的运算的处理,用在前一运算与后一运算之间设置存储部并经过分离后的运算来进行处理,由此就可以使每单位时间的电力消耗量比前后连结的运算时的电力消耗量减小,使电力分析变得困难。
另外,在数据变换方法中,在存储部中将前一运算的结果中所包含的全部位存储起来以后,将该全部位提供给后一运算,由此就可以对存储部的输出定时进行调整。
另外,在数据变换方法中,使用具有输入前一运算的结果的多个输入端口的运算部,通过该多个输入端口的输入来进行后一运算,将存储部设置在运算部的各输入端口之前,由此就可以使向后一运算的多个输入的定时一致。


图1是表示从实施方式1到5中的数据变换装置的外观的一个例子的图。
图2是表示从实施方式1到5中的数据变换装置的硬件构成的一个例子的图。
图3是表示成为DES运算之基本的圈的构造的图。
图4是表示混和函数(MF)的运算处理之细节的图。
图5是表示圈的密钥的生成处理的图。
图6是表示与实施方式1相关的数据变换算法的基本形式的图。
图7是表示与实施方式1相关的数据变换装置的构成的一个例子的图。
图8是表示与实施方式1相关的数据变换装置的动作的一个例子的流程图。
图9是表示与实施方式2相关的数据变换算法的基本形式的图。
图10是表示与实施方式2相关的数据变换装置的构成的一个例子的图。
图11是表示与实施方式2相关的数据变换装置的动作的一个例子的流程图。
图12是表示与实施方式3相关的数据变换装置的构成的一个例子的图。
图13是表示与实施方式3相关的数据变换装置的动作的一个例子的流程图。
图14是表示与实施方式4相关的数据变换算法的基本形式的图。
图15是表示与实施方式4相关的数据变换装置的构成的一个例子的图。
图16是表示与实施方式4相关的数据变换算法的基本形式的具体例的图。
图17是表示与实施方式4相关的数据变换算法的具体例的图。
图18是表示与实施方式4相关的数据变换装置的动作的一个例子的流程图。
图19是表示与实施方式5相关的数据变换算法的基本形式的图。
图20是表示与实施方式5相关的数据变换装置的构成的一个例子的图。
图21是表示每位的运算迟延的差异给电力消耗量带来影响的例子的图。
附图标记说明100数据变换装置、101,108输入寄存器、102密钥寄存器、103并行运算器、104,113输出寄存器、105,115输入移位寄存器、106密钥移位寄存器、107串行运算器、109第1密钥寄存器、110第1并行运算器、111第2密钥寄存器、112第2并行运算器、114暂时寄存器、116第1密钥移位寄存器、117第1串行运算器、118第2密钥移位寄存器、119第2串行运算器、120第1选择器、121第2选择器、122m×n查找表、123m×1查找表、124OR门、125AND门、126XOR门、127触发器、201混和函数、202,203异或运算、204S-Box、901CRT显示装置、902K/B、903鼠标、904FDD、905CDD、906打印机装置、907扫描仪装置、910系统单元、911CPU、912总线、913ROM、914RAM、915通信板、920磁盘装置、921OS、922窗口系统、923程序组、924文件组、931电话机、932FAX机、940因特网、941网关、942LAN。
具体实施例方式
以下,利用附图就本发明的实施方式进行说明。
图1是表示下述实施方式中的数据变换装置的外观的一个例子的图。
在图1中,数据变换装置100具备系统单元910、CRT(CathodeRay Tube)显示装置901、键盘(K/B)902、鼠标903、致密盘装置(CDD)905、打印机装置906、扫描仪装置907,它们用电缆连接起来。进而,数据变换装置100与FAX机932、电话机931用电缆进行连接,另外,还经由局域网(LAN)942、网关941连接到因特网940。
图2是表示下述实施方式中的数据变换装置的硬件构成的一个例子的图。
在图2中,数据变换装置100具有执行程序的CPU(CentralProcessing Unit)911。CPU911经由总线912与ROM913、RAM914、通信板915、CRT显示装置901、K/B902、鼠标903、FDD(FlexibleDisk Drive)904、磁盘装置920、CDD905、打印机装置906、扫描仪装置907连接起来。
RAM914是易失性存储器的一例。ROM913、FDD904、CDD905、磁盘装置920是非易失性存储器的一个例子。它们是存储装置或者存储部的一例。
通信板915被连接到FAX机932、电话机931、LAN942等。
例如,通信板915、K/B902、扫描仪装置907、FDD904等是输入部的一个例子。另外,例如,通信板915、CRT显示装置901等是输出部的一个例子。
这里,通信板915并不限于连接到LAN942,还可以直接连接到因特网940或者ISDN(Integrated Services Digital Network)等WAN(广域网)。在直接连接到因特网940或者ISDN等WAN的情况下,数据变换装置100被连接到因特网940或者ISDN等WAN,就不用网关941。
在磁盘装置920中存储着操作系统(OS)921、窗口系统922、程序组923、文件组924。程序组923通过CPU911、OS921、窗口系统922而得以执行。
在上述程序组923中存储着执行在以下将叙述的实施方式的说明中作为「~部」来说明的机能的程序。程序由CPU911读出执行。
在以下将叙述的实施方式的说明中,作为「~的判定结果」、「~的计算结果」、「~的处理结果」来说明的内容作为「~文件」被存储在文件组924中。
另外,在以下将叙述的实施方式的说明中进行说明的流程图的箭头部分主要表示数据的输入输出,为了该数据的输入输出,数据被记录在磁盘装置920、FD(Flexible Disk)、光盘、CD(致密盘)、MD(袖珍盘)、DVD(Digital Versatile Disk)等其他的记录介质中。或者,通过信号线和其他的传送介质来进行传送。
另外,在以下将叙述的实施方式的说明中作为「~部」来说明的部件也可以用ROM913中所存储的固件来实现。或者,还可以仅用软件、或者仅用硬件、或者软件与硬件的组合、进而与固件的组合来实施。
另外,实施以下将叙述的实施方式的程序也可以使用借助于磁盘装置920、FD(Flexible Disk)、光盘、CD(致密盘)、MD(袖珍盘)、DVD(Digital Versatile Disk)等其他的记录介质的记录装置来存储。
以下将叙述的实施方式能够应用于例如安装了块加密算法的装置、方法、程序。
这里,就作为块加密算法的一个例子的DES(Data EncryptionStandard)简单地进行说明。
图3是表示作为DES运算之基本的圈的构造的图。
DES将此圈反复16次,对64位的数据进行加密或者解密。圈的输入是64位的数据。此输入数据被分成高位32位和低位32位,分别被称之为L和R的块。图中,n是计数编号。
Rn-1是被称之为混和函数(MF)201的函数的输入。在混和函数201上还输入n圈的密钥(Kn)。若进行混和函数201的运算处理,就输出32位的数据。
接着,进行混和函数201的32位输出与Ln-1的异或运算202。其结果为32位的Rn。32位的Ln与32位的Rn-1相同。将这些Ln和Rn合起来的64位的数据作为n圈的输出得以输出。
圈的输出成为下一圈的输入,再次进行圈的运算。通过将此操作反复16次,DES的运算结束(准确地讲包含被称之为转置的运算处理,但省略说明)。
图4是表示混和函数(MF)的运算处理之细节的图。
在混和函数上输入32位的R。对该块的位允许重复每6位分成8个块。进行其与48位圈的密钥的异或运算203。通过此操作得到8个6位的块。对于此各块,用所规定的被称为S-Box204的6位输入4位输出的表来进行换字处理,由此得到8个4位的块。此32位的数据被改排(关于改排处理的细节省略说明),而成为混和函数的输出。
另外,圈的密钥(Kn)如图5那样得以生成。
在DES的64位的密钥之中,对除去奇偶校验的8位后的56位,进行所规定的改排,分成2个28位的R和L。将其中一方的块在图5中表示为「28-bitKey」。此「28-bitKey」的寄存器通过圈向左回转1位或者2位。将回转后的「28-bitKey」之中24位按照规则进行改排(P),而得到Kn一方的24位。Kn的另一方的24位也通过同样的处理而得到。在下一圈中,通过再次将「28-bitKey」左回转,进行改排,就能够求得Kn+1。
这样,块加密算法将异或、表处理、改排之类的单纯的运算元件组合起来而构成。
接着,就电力分析简单地进行说明。
块加密以HW(硬件)或SW(软件)的形式安装来使用。能够使用安装了块加密的装置、方法、程序来进行数据的保密。在作为HW或SW而安装的加密算法中,测定HW或SW动作中的瞬间的电力比较容易。例如,能够将对半导体芯片供给电力的模式切断,并在此插入适当的电阻,用示波器等测定该电阻两端的电位差。可知根据此测定出的电力能够抽取出各种各样的信息(关于细节参照因特网<http://www.cryptography.com/resources/whitepapers/DPA-technical.html>)。在仅安装了先前所述的DES的HW或SW中,通过预测MF内的S-Box的输出值,就可以通过上述文献的方法求出Kn。
实施方式1.
如前述那样,异或、表处理、改排之类的单纯的运算元件组合起来,构成块加密算法。在本实施方式中,用1位输出的元件构成这种运算进行安装。但是,本实施方式不仅可应用于块加密算法,还可以应用于其他加密算法等。
图6是表示涉及本实施方式的数据变换算法的基本形式的图,图7是表示涉及本实施方式的数据变换装置的构成的一个例子的图。
图6以及图7表示加密算法的一部分,图6的算法为基本形式。即,对32位的密钥与32位的输入数据的异或进行并行运算,而得到32位的输出数据。在此图中,32位的密钥被存储在密钥寄存器102中,32位的输入数据被存储在输入寄存器101中。32位的密钥与32位的输入数据的异或,由并行运算器103进行运算,运算结果被存储在输出寄存器104中。在本实施方式中,将此基本形式的算法如图7的算法那样安装并进行计算。将密钥保持于32位的密钥移位寄存器(第2存储部)106,将输入数据保持于32位的输入移位寄存器(第1存储部)105,将密钥与输入数据各自的1位作为对串行运算器(运算部)107的输入,并取异或1位,使之移位到输入移位寄存器105的左端。密钥移位寄存器106进行循环右移位。通过将其进行32次,32位的运算结束,最终结果被保持在输入移位寄存器105中。
图8是表示涉及本实施方式的数据变换装置的动作一例的流程图。图中、「+」是表示异或运算。
涉及本实施方式的数据变换装置,首先,对输入移位寄存器105输入32位的数据(步骤S101),对密钥移位寄存器106输入32位的密钥(步骤S102)。接着,将输入移位寄存器105向右移动1位(步骤S103),从输入移位寄存器105输出1位(步骤S104)。将从输入移位寄存器105输出的位设为i。接着,将密钥移位寄存器106向右移动1位(步骤S105),从密钥移位寄存器106输出1位(步骤S106)。将从密钥移位寄存器106输出的位设为k。然后,用串行运算器107进行i与k的异或运算(步骤S107),将运算结果输入到输入移位寄存器105(步骤S108)。在密钥移位寄存器106中输入k(步骤S109)。按32位相应地反复从步骤S103到步骤S109。
图8所示的数据变换装置的动作,一部分处理的顺序既可以替换,也可以将一部分处理与其他的处理并行执行。
这样,在本实施方式中,通过按顺序(顺次或者串行)地执行2位输入1位输出的异或,而完结32位的密钥与32位的输入数据的异或运算。
在本实施方式中,表示了“异或”(XOR)的例子,但利用“或”(OR)、“与”(AND)也能够同样地构成。另外,在算术加法运算、算术减法运算、算术乘积的情况下,以最小的运算单位来进行运算。具体而言,在算术加法运算中,对1位+1位以2位输出来处理,在算术减法运算中对2位-1位以1位输出来处理,在算术乘法运算中,对1位×1位以1位输出来处理。
若如这种构成那样,安装算法,则反复进行最小单位的运算,而具有能够减小瞬时电力之类的效果。另外,由于运算结果一边逐个位进行移位一边进行确定,所以就具有以下效果造出特征性的电力消耗状态的可能性变低,而不会使许多位一次发生状态变化。这种效果就使电力分析变得困难。
在本实施方式中,串行运算器107进行每1位的串行运算,但即便是每2位或3位的运算,也可以取得如上述那样的效果。
另外,在本实施方式中,借助于HW的构成来实现串行运算,但也可以例如创建进行每1位的串行运算的函数,并反复执行此函数,由此借助于SW的构成来实现串行运算。
另外,在本实施方式中,使用移位寄存器,使串行运算器107的运算结果存储在输入移位寄存器105中,但也可以使其存储在其他的寄存器中。在此情况下,输入移位寄存器105以及密钥移位寄存器106也可以是移位寄存器以外种类的寄存器。
另外,在本实施方式中,使用了32位的数据,还可以使用64位的数据等其他位数的数据。
如以上那样,利用本实施方式,在数据变换装置中,通过将可进行多个位的并行运算的处理用串行运算来进行处理,就可以使每单位时间的电力消耗量比并行运算时的电力消耗量减小,使电力分析变得困难。
另外,在数据变换装置中,第1存储部存储多个位并逐个位进行输出,第2存储部存储其他的多个位并逐个位进行输出,运算部使对第1存储部输出的位和第2存储部输出的位进行运算后的结果存储在第1存储部中,从而就可以高效率地利用第1存储部。
另外,在数据变换装置中,第1存储部和第2存储部是移位寄存器,由此就可以使其难以发生电力消耗的特异状态。
在本实施方式中,在使用数据变换装置的数据变换方法中,将可进行多个位的并行运算的处理用串行运算来进行处理,由此就可以使每单位时间的电力消耗量比并行运算时的电力消耗量减小,使电力分析变得困难。
另外,在数据变换方法中,在数据变换装置具备的第1存储部中存储多个位并逐个位进行输出,在第2存储部中存储其他的多个位并逐个位进行输出,对从第1存储部输出的位与从第2存储部输出的位进行运算,并将运算后的结果存储在第1存储部中,由此就可以高效率地利用第1存储部。
如以上那样,与本实施方式相关的装置,是一种安装加密算法并对输入数据进行加密、解密的装置,其中,在安装加密算法之际,将加密算法细分化,分解至1位输出的单位运算元件,设置保持这些元件的结果的机构,并按顺序使其动作而使运算完结。
实施方式2.
图9是表示与本实施方式相关的数据变换算法的基本形式的图,图10是表示与本实施方式相关的数据变换装置的构成的一个例子的图。
图9以及图10表示了加密算法的一部分,图9的算法为基本形式。即,对32位的输入数据与32位的密钥的“异或”进行并行运算,接着,对此运算所得到的数据与其他32位的密钥的“或”进行并行运算,输出32位的数据。在该图中,32位的输入数据被存储在输入寄存器108中,32位的密钥被存储在第1密钥寄存器109中,其他32位的密钥被存储在第2密钥寄存器111中。32位的输入数据与32位的密钥的“异或”通过第1并行运算器110来运算,其运算结果与其他32位的密钥的“或”通过第2并行运算器112来运算。此“或”运算结果被存储在输出寄存器113中。在这种算法的情况下,由于“异或”和“或”运算负荷较低,所以大多连续进行运算(前后连结的运算),但在本实施方式中如图10所示,在“异或”和“或”之间设置暂时寄存器114,一旦保持数据后,从前一运算转移到后一运算。
图11是表示与本实施方式相关的数据变换装置的动作的一个例子的流程图。图中,「+」表示异或运算,「|」表示或运算。
与本实施方式相关的数据变换装置,首先,在输入寄存器108上输入32位的数据(步骤S201)。将输入寄存器108上所输入的数据设为I。然后,在第1密钥寄存器109上输入32位的密钥(步骤S202)。将第1密钥寄存器109上所输入的密钥设为K。接着,从输入寄存器108输出I(步骤S203)。接着,从第1密钥寄存器109输出K(步骤S204)。然后,用第1并行运算器110进行I与K的“异或”运算(步骤S205),将运算结果输入到暂时寄存器114(步骤S206)。将被输入到暂时寄存器114的数据设为I′。
在第2密钥寄存器111上输入其他32位的密钥(步骤S207)。将第2密钥寄存器111上所输入的密钥设为K′。在暂时寄存器114将32位的运算结果I′全部的位存储起来以后,从暂时寄存器114输出I′(步骤S208)。接着,从第2密钥寄存器111输出K′(步骤S209)。然后,用第2并行运算器112进行I′与K′的或运算(步骤S210),将运算结果输入到输出寄存器113(步骤S211)。
图11所示的数据变换装置的动作,一部分处理的顺序既可以替换,也可以将一部分处理与其他的处理并行执行。另外,第1密钥寄存器与第2密钥寄存器上所输入的密钥还可以是同一密钥。
本实施方式中,表示了“异或”(XOR)和“或”(OR)的组合的例子,但包含“与”(AND)等其他运算的组合也能够同样地构成。
过进行这种安装,针对每个运算不同的处理时间的偏差就一次用寄存器接受,使定时恒定化。由此就具有防止定时的延迟向后级传播的效果。如果定时恒定化,就能够减小伴随运算的过渡状态(直到最终结果确定为止发生的不稳定的运算结果的状态),进一步,还具有减小电力的效果。这种效果就使电力分析变得困难。
在本实施方式中,使用了32位的数据,但也可以使用64位的数据等其他位数的数据。
如以上那样,利用本实施方式,在数据变换装置中,将可进行前后连结的运算的处理,用在前一运算与后一运算之间设置存储部并经过分离后的运算来进行处理,由此使每单位时间的电力消耗量比前后连结的运算时的电力消耗量减小,从而就可以使电力分析变得困难。
另外,在数据变换装置中,存储部在将前一运算的结果中所包含的全部位存储起来以后,将全部位提供给后一运算,由此就可以对存储部的输出定时进行调整。
在本实施方式中,在使用数据变换装置的数据变换方法中,将可进行前后连结的运算的处理,用在前一运算与后一运算之间设置存储部并经过分离后的运算来进行处理,由此使每单位时间的电力消耗量比前后连结的运算时的电力消耗量减小,从而就可以使电力分析变得困难。
另外,在数据变换方法中,在存储部中将前一运算的结果中所包含的全部位存储起来以后,将该全部位提供给后一运算,由此就可以对存储部的输出定时进行调整。
如以上那样,与本实施方式相关的装置是一种安装加密算法,并对输入数据进行加密、解密的装置,其中,在加密算法的一部分,基本运算连续进行的情况下,在连续进行的基本运算之间,设置保持运算结果的机构。
实施方式3.
在实施方式1的安装方式中,能够设置如在实施方式2中已说明的图10的暂时寄存器114那样的临时的寄存器。
图12是表示与本实施方式相关的数据变换装置的构成一例的图。
在图12中,输入数据被存储在32位的输入移位寄存器(第1存储部)115中,密钥被存储在32位的第1密钥移位寄存器(第2存储部)116和第2密钥移位寄存器(第2存储部)118中。第1串行运算器(运算部)117对密钥与输入数据各自的1位进行异或运算,第2串行运算器(运算部)119对密钥与输入数据各自的1位进行或运算。第1选择器(选择部)120选择第1串行运算器117与第2串行运算器119中的某一个,第2选择器(选择部)121选择第1密钥移位寄存器116与第2密钥移位寄存器118中的某一个。这样,在本实施方式中,按定时切换“异或”和“或”的输出,并输入到输入数据用的32位的移位寄存器。密钥则准备正与副的移位寄存器,并按定时进行切换,输入到密钥的正移位寄存器。
图13是表示与本实施方式相关的数据变换装置的动作的一个例子的流程图。图中,「+」表示异或运算,「|」表示或运算。
与本实施方式相关的数据变换装置,首先,在输入移位寄存器115上输入32位的数据(步骤S301),在第1密钥移位寄存器116上输入32位的密钥(步骤S302)。接着,用第1选择器120选择串行运算器(步骤S303)。在这里,设第1串行运算器117被选择。然后,用第2选择器121选择密钥移位寄存器(步骤S304)。在这里,设第1密钥移位寄存器116被选择。
接着,将输入移位寄存器115向右移动1位(步骤S305),从输入移位寄存器115输入1位(步骤S306)。将从输入移位寄存器115输出的位设为i。接着,将第1密钥移位寄存器116向右移动1位(步骤S307),从第1密钥移位寄存器116输出1位(步骤S308)。将从第1密钥移位寄存器116输出的位设为k。然后,用在步骤S303中所选择的在第1串行运算器117进行i与k的异或运算(步骤S309),将运算结果输入到输入移位寄存器115(步骤S310)。由于在步骤S304中第1密钥移位寄存器116被选择,所以在第1密钥移位寄存器116中输入k(步骤S313)。按32位相应地反复从步骤S305到步骤S313。当32位的异或的串行运算结束时,返回到步骤S303。
接着,再次用第1选择器120选择串行运算器(步骤S303)。在这里,设第2串行运算器119被选择。然后,用第2选择器121对密钥移位寄存器进行选择(步骤S304)。在这里,设第2密钥移位寄存器118被选择。
接着,将输入移位寄存器115向右移动1位(步骤S305),从输入移位寄存器115输出1位(步骤S306)。将从输入移位寄存器115输出的位设为i。接着,将第1密钥移位寄存器116向右移动1位(步骤S307),从第1密钥移位寄存器116输出1位(步骤S308)。将从第1密钥移位寄存器116输出的位设为k。然后,用在步骤S303中所选择的第2串行运算器119进行i与k的或运算(步骤S311),将运算结果输入到输入移位寄存器115(步骤S312)。由于在步骤S304中第2密钥移位寄存器118被选择,所以从第2密钥移位寄存器118输出1位(步骤S314)。将从第2密钥移位寄存器118输出的位设为k′。在第1密钥移位寄存器116中输入k′(步骤S315)。按32位相应地反复从步骤S305到步骤S315。
图13所示的数据变换装置的动作,一部分处理的顺序既可以替换,也可以将一部分处理与其他的处理并行执行。另外,在利用图12所示的构成的情况下,由于用第1选择器120选择来自串行运算器的「输出」,所以实际上步骤S309和步骤S311两方得以执行。另外,在利用图12所示的构成的情况下,在步骤S304中第2选择器121所选择的密钥移位寄存器保持的密钥并不是在紧跟其之后的运算中使用,而使首先被输入到第1密钥移位寄存器116,在下一32位的运算中使用。为取得与本实施方式同样的效果,也可以以第2选择器121选择从密钥移位寄存器向串行运算器的输出的方式来构成数据变换装置。
在本实施方式中,使用了32位的数据,但也可以使用64位的数据等其他位数的数据。
如以上那样,利用本实施方式,在数据变换装置中,选择部选择由运算部进行的运算种类,由此就可以高效率地利用第1存储部与第2存储部。
在本实施方式中,在使用数据变换装置的数据变换方法中,通过选择对从第1存储部输出的位与从第2存储部输出的位进行运算的运算种类,就可以高效率地利用第1存储部与第2存储部。
实施方式4.
图14是表示与本实施方式相关的数据变换算法的基本形式的图,图15是表示与本实施方式相关的数据变换装置的构成一例的图。
图14以及图15表示了加密算法的一部分,图14的算法为基本形式。图14的算法表示m位输入、n位输出的表处理。在该图中,m位的输入数据被输入到m×n查找表(m位输入n位输出并行运算器)122,并变换成n位的输出数据后一次输出。图中,LUT表示查找表。在本实施方式中,将此基本形式的算法如图15的算法那样进行安装。即,准备n个m位输入、1位输出的m×1查找表(m位输入1位输出串行运算器)123,使定时相互不同来进行n个表处理,并用未图示的寄存器保持其输出。
在图16以及图17的概念图中示出m=2、n=2时的例子。图16对应上述的图14,图17对应上述的图15。
在图16中,在m×n查找表122的输入为「00」的情况下,输出为「01」。同样,在输入为「01」、「10」、「11」的情况下,与各自的输入相对的输出顺次为「00」、「10」、「11」。与此相对,在图17中,在一方的m×1查找表123中,与输入「00」、「01」、「10」、「11」相对的输出顺次为「0」、「0」、「1」、「1」。而且,在另一方的m×1查找表123中,与输入「00」、「01」、「10」、「11」相对的输出顺次为「1」、「0」、「0」、「1」。这样,各自的m×1查找表123输出m×n查找表122输出的n位之中的某一位。
图18是表示与本实施方式相关的数据变换装置的动作的一个例子的流程图。
与本实施方式相关的数据变换装置,在m×1查找表123上输入m位的数据(步骤S401),输出1位(步骤S402)。将其反复n次,最后将全部的输出存储在n位的寄存器等中。
通过进行这种安装,在单位定时m位输入、1位输出的表处理就仅进行一次。由此,就具有防止n位输出的情况下的各位的定时偏差,使定时恒定化的效果。另外,由于为1位输出,所以能够抑制每单位时间的电力消耗,就具有造出特征性的电力消耗状态的可能性变低之类的效果。这种效果使电力分析变得困难。
在本实施方式中,既可以用存储器来进行表处理,也可以不使用存储器,而用以1位输出的方式构成的逻辑元件来进行。
如以上那样,利用本实施方式,在数据变换装置中,将可进行多个位的并行运算的处理用串行运算来进行处理,由此使每单位时间的电力消耗量比并行运算时的电力消耗量减小,从而就可以使电力分析变得困难。
另外,在数据变换装置中,将可以进行m(m>1)位输入n(n>1)位输出的并行运算用m位输入1位输出的串行运算来进行处理,由此就可以对n位输出的各位的输出定时进行调整。
在本实施方式中,在使用数据变换装置的数据变换方法中,将可进行多个位的并行运算的处理,用串行运算来进行处理,由此使每单位时间的电力消耗量比并行运算时的电力消耗量减小,从而就可以使电力分析变得困难。
另外,在数据变换方法中,将可以进行m(m>1)位输入n(n>1)位输出的并行运算的处理,用m位输入1位输出的串行运算来进行处理,由此就可以对n位输出的各位的输出定时进行调整。
如以上那样,与本实施方式相关的装置是一种安装加密算法,对输入数据进行加密、解密的装置,其中,在加密算法的一部分用表处理来进行的情况下,将表分成1位输出的多个小表,通过使定时相互不同进行多次与其相关的小表处理的安装方式,使表处理完结。
实施方式5.
图19是表示与本实施方式相关的数据变换算法的基本形式的图,图20是表示与本实施方式相关的数据变换装置的构成的一个例子的图。
图19以及图20表示安装了加密算法的一部分的电路,图19的算法为基本形式。如图19以及图20那样的电路是表处理等逻辑变复杂时的电路。在图19中,在6位的输入同时进入的情况下,在AND门(运算部)125a的输入中,向2个输入端口输入的定时错开。另外,AND门(运算部)125a的输出定时与OR门(运算部)124b的输出定时错开。因而,在图20中,在XOR门(运算部)126a的各输入端口之前设置触发器(存储部)127,对向XOR门(运算部)126a的各输入端口的输入定时进行调整。
图20所示的电路例如能够用作在实施方式4中所说明的图15的m×1查找表。在此情况下,还可以如图20那样,设置接受XOR门(运算部)126a的1位输出的触发器127c。
另外,为了调整向AND门125a的2个输入端口的输入定时,还可以将未图示的触发器设置在AND门125a的各输入端口之前。进而,还可以在全部的逻辑元件的各输入端口之前设置触发器。
通过进行这种安装,就可防止电路元件中的定时偏差,具有使定时恒定化的效果。另外,由于定时恒定化,所以能够减小伴随运算的过渡状态(直到最终结果确定为止发生的不稳定的运算结果的状态),进一步,还具有减小电力的效果。这种效果就使电力分析变得困难。
如以上那样,利用本实施方式,在数据变换装置中,将可进行前后连结的运算的处理,用在前一运算与后一运算之间设置存储部并经过分离后的运算来进行处理,由此使每单位时间的电力消耗量比前后连结的运算时的电力消耗量减小,就可以使电力分析变得困难。
另外,在数据变换装置中,运算部具有输入前一运算的结果的多个输入端口,并且通过该多个输入端口的输入来进行后一运算,存储部被设置在运算部的各输入端口之前,由此就可以使向后一运算的多个输入的定时一致。
在本实施方式中,在使用数据变换装置的数据变换方法,将可进行前后连结的运算的处理,用在前一运算与后一运算之间设置存储部并经过分离后的运算来进行处理,由此使每单位时间的电力消耗量比前后连结的运算时的电力消耗量减小,就可以使电力分析变得困难。
另外,在数据变换方法中,使用具有输入前一运算的结果的多个输入端口的运算部,通过该多个输入端口的输入来进行后一运算,将存储部设置在运算部的各输入端口之前,由此就可以使向后一运算的多个输入的定时一致。
如以上那样,与本实施方式相关的装置是一种安装加密算法,对输入数据进行加密、解密的装置,其中,在加密算法用一系列的逻辑元件构成的情况下,在所输入的信号的定时错开的逻辑元件的输出级设置保持输出的机构,并且,在与上述逻辑元件相同的定时相当的逻辑元件的输出级也设置保持输出的机构,进而,设置接受最终输出的1位输出的保持机构。
权利要求
1.一种通过多个位的运算组合对数据进行变换的数据变换装置,其特征在于通过将可进行多个位的并行运算的处理用串行运算来进行处理,使每单位时间的电力消耗量比并行运算时的电力消耗量减小。
2.按照权利要求1所述的数据变换装置,其特征在于上述数据变换装置具备第1存储部,存储多个位并逐位进行输出;第2存储部,存储其他的多个位并逐位进行输出;以及运算部,对上述第1存储部输出的位和上述第2存储部输出的位进行运算,并使运算后的结果存储在上述第1存储部中。
3.按照权利要求2所述的数据变换装置,其特征在于上述数据变换装置还具备选择部,选择由上述运算部进行的运算种类。
4.按照权利要求2所述的数据变换装置,其特征在于上述第1存储部和上述第2存储部是移位寄存器。
5.按照权利要求1所述的数据变换装置,其特征在于上述数据变换装置将可进行m位输入n位输出的并行运算的处理用m位输入1位输出的串行运算来进行处理,其中m>1,n>1。
6.一种通过多个位的运算组合对数据进行变换的数据变换装置,其特征在于将可进行前后连结的运算的处理,通过用在前一运算与后一运算之间设置存储部并经过分离后的运算来进行处理,使每单位时间的电力消耗量比前后连结的运算时的电力消耗量减小。
7.按照权利要求6所述的数据变换装置,其特征在于上述存储部在将前一运算的结果中所包含的全部位存储起来以后,将该全部位提供给后一运算。
8.按照权利要求6所述的数据变换装置,其特征在于上述数据变换装置具备运算部,具有输入前一运算的结果的多个输入端口,并且通过该多个输入端口的输入来进行后一运算,上述存储部被设置在上述运算部的各输入端口之前。
9.一种使用通过多个位的运算组合对数据进行变换的数据变换装置的数据变换方法,其特征在于通过将可进行多个位的并行运算的处理用串行运算来进行处理,使每单位时间的电力消耗量比并行运算时的电力消耗量减小。
10.按照权利要求9所述的数据变换方法,其特征在于上述数据变换方法,在第1存储部中存储多个位并逐位进行输出,在第2存储部中存储其他的多个位并逐位进行输出,对从上述第1存储部输出的位和从上述第2存储部输出的位进行运算,并将运算后的结果存储在上述第1存储部中。
11.按照权利要求10所述的数据变换方法,其特征在于上述数据变换方法进一步,选择对从上述第1存储部输出的位和从上述第2存储部输出的位进行运算的运算种类。
12.按照权利要求9所述的数据变换方法,其特征在于上述数据变换方法,将可进行m位输入n位输出的并行运算的处理用m位输入1位输出的串行运算来进行处理,其中m>1,n>1。
13.一种使用通过多个位的运算组合对数据进行变换的数据变换装置的数据变换方法,其特征在于将可进行前后连结的运算的处理,通过用在前一运算与后一运算之间设置存储部并经过分离后的运算来进行处理,使每单位时间的电力消耗量比前后连结的运算时的电力消耗量减小。
14.按照权利要求13所述的数据变换方法,其特征在于在上述存储部中将前一运算的结果中所包含的全部位存储起来以后,将该全部位提供给后一运算。
15.按照权利要求13所述的数据变换方法,其特征在于上述数据变换方法,使用具有将前一运算的结果输入的多个输入端口的运算部,通过该多个输入端口的输入来进行后一运算,将上述存储部设置在上述运算部的各输入端口之前。
全文摘要
本发明的目的例如是将与数据的加密或者解密有关的运算的电力消耗量减小,以使电力分析变得困难。在进行32位的输入数据与32位的密钥的异或运算,并得到32位的输出数据的情况下,分别将输入数据保持在32位的输入移位寄存器(105)中,将密钥保持在32位的密钥移位寄存器(106)中,并将输入数据与密钥各自的1位作为对串行运算器(107)的输入,取异或1位并使之移位到输入移位寄存器(105)的左端。密钥移位寄存器(106)进行循环右移位。通过将其进行32次,32位的运算结束,最终结果被保持在输入移位寄存器(105)中。
文档编号G06F7/00GK101044535SQ20058003622
公开日2007年9月26日 申请日期2005年3月16日 优先权日2005年3月16日
发明者佐藤恒夫, 山田敬喜 申请人:三菱电机株式会社
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1