专利名称:密钥处理电路的制作方法
技术领域:
本发明涉及公共密钥块加密方式所采用的密钥处理电路。
背景技术:
近年来,像无钥匙进入系统那样通过无线电等通信机构收发数据的技术在广泛实行。在无钥匙进入系统的情况下,以数据不会被第三者非法解读的方式,对数据进行加密后进行收发。
虽然数据的加密方式多种多样,但是希望采用DES(Data EncryptionStandard)或AES(Advanced Edncryption Standard)等标准规格。在这些标准规格的加密方式的情况下,非法解读的风险的计算容易,是因为可以基于该风险来计算非法解读的情况下的保险金。相反,在采用标准规格以外的独特规格等的加密方式的情况下,难以计算非法解读的风险,一般多为保险金变高。
在这样的DES或AES等公共密钥块加密方式中,将数据分割为几个块,按每个块进行转置或替换等处理。该转置或替换的处理,通过将表示输入数据和输出数据的对应之对应表预先存储在存储器中,基于对应表求出与所提供的输入数据对应的输出数据便可以实现。
专利文献1特开2004-120307号公报然而,在由软件实现转置或替换的情况下,由于重复进行存储在存储器中的对应表的参照等,故处理负荷高,消耗功率大。因此,若在无钥匙进入系统中采用由软件实现转置或替换的公共密钥块加密方式,则存在以下问题使用者进行上锁·开锁的操作的子机的电池消耗加快。并且,在无钥匙进入系统中,为了使对于上锁或开锁的操作的响应(response)良好,需要使加密以及解密的处理速度提高。
发明内容
本发明就是鉴于上述问题而进行的,其目的在于提供一种以低消耗功率且高速地进行公共密钥块加密方式中的加密以及解密的处理的密钥处理电路。
为了实现上述目的,本发明的密钥处理电路,是一种进行基于每位的对应规则重新排列多位输入数据后输出的、公共密钥块加密方式的转置处理的密钥处理电路,其中可以具备数据输入部,其接收上述多位输入数据,并具有将所接收的上述多位输入数据并列输出的输出端口;数据输出部,其具有并列输入多位数据的输入端口,并将向上述输入端口输入的上述多位数据输出;和转置部,其基于上述每位的对应规则,将上述输出端口和上述输入端口连接。
另外,本发明的密钥处理电路,是一种进行基于对应规则将多位输入数据变换后输出的、公共密钥块加密方式的替换处理的密钥处理电路,其中可以具备数据输入部,其接收上述多位输入数据,并具有将所接收的上述多位输入数据并列输出的输出端口;替换部,其是基于上述对应规则、将从上述数据输入部并列输出的上述多位输入数据变换后输出的逻辑电路;和输出数据部,其具有将从上述替换部输出的多位数据并列输入的输入端口,并将向上述输入端口输入的上述多位数据输出。
另外,本发明的密钥处理电路,是一种进行将多位输入数据变换后输出的、公共密钥块加密方式的替换处理的密钥处理电路,其是接收上述输入数据、和指示上述输入数据的重新排列的选择数据,并将基于上述选择数据重新排列上述输入数据后的数据,基于规定的对应规则变换后输出。
在进行公共密钥块加密方式的替换处理的密钥处理电路中,不修正硬件,便可对替换处理中的输入数据和输出数据的对应规则进行变更,故可以提高安全性。
图1为表示作为采用本发明的密钥处理电路的一实施方式的、进行汽车锁的上锁·开锁的无钥匙进入系统的整体构成的图。
图2为表示数据处理电路的构成的图。
图3为表示无钥匙进入系统的子机和母机之间的通信顺序的流程图。
图4为表示DES的加密处理的流程的流程图。
图5为表示F函数(F(R,K))的处理流程的流程图。
图6为表示DES的解密处理的流程的流程图。
图7为表示密钥处理电路的构成的图。
图8为表示初始转置(Initial Permutation)中每位的对应规则的图。
图9为表示初始转置部的构成的图。
图10为表示最终转置(Inverse Initial Permutation)中每位的对应规则的图。
图11为表示最终转置部的构成的图。
图12为表示放大型转置中每位的对应规则的图。
图13为表示放大型转置部的构成的图。
图14为表示S-BOX部的构成的图。
图15为表示S-BOX(S1)中的对应规则的图。
图16为表示S-BOX部的S1的构成的图。
图17为表示P转置中每位的对应规则的图。
图18为表示P转置部的构成的图。
图19为表示PC1(Permuted Choice1)转置(即第1缩减型转置)中每位的对应规则的图。
图20为表示PC1转置部的构成的图。
图21为表示旋转移动中的旋转数的图。
图22为旋转移动部的构成的图。
图23为表示PC2(Permuted Choice2)转置(即第2缩减型转置)中每位的对应规则的图。
图24为表示PC2转置部的构成的图。
图中1-无钥匙进入系统,2-子机,3-母机,11-电池,12-操作开关,13、21-数据处理电路,14、22-收发电路,23-驱动电路,24-执行元件(actuator),25-蓄电池,51A、51B-CPU,52A、52B-RAM,53A、53B、53B-EEPROM,54A、54B-随机数生成电路,55A、55B-密钥处理电路,56A、56B-输入输出端口,61-输入寄存器,62-转置·替换部,63-输出缓冲器,64-选择寄存器,65、66-多路复用器(multiplexer),67-地址译码器,71-初始转置部,72-最终转置部,73-放大型转置部,74-S-BOX部,75-P转置部,76-PC1转置部,77-旋转移动部,78-PC2转置部,95-选择器,96-置换电路,97-选择电路,98-选择寄存器。
具体实施例方式
===整体构成===图1为表示作为采用本发明的密钥处理电路的一实施方式的、进行汽车锁的上锁·开锁的无钥匙进入系统1的整体构成的图。无钥匙进入系统1构成为包含便携式的子机2和搭载在汽车等上的母机3。子机2被设置在例如插入汽车的门锁或转向锁(steering lock)的钥匙孔中的钥匙的方向盘部等中。并且,母机3被设置在汽车侧。
子机2备有电池11、操作开关12、数据处理电路13以及收发电路14。电池11,用于向子机2的各部分的动作供给需要的功率。操作开关12为接收来自使用者的上锁·开锁的指示的开关。数据处理电路13进行上锁·开锁之际所需要的认证用的数据的生成等。收发电路14是将从数据处理电路13输出的数字数据变换成模拟数据,对其进行放大后作为电磁波送出的电路。并且,收发电路14还可以接收从母机3送出的电磁波,将其变换成数字数据后向数据处理电路13输入。另外,作为电磁波,采用电波或红外线。
母机3备有数据处理电路21、收发电路22以及驱动电路23。数据处理电路21基于从子机2接收的认证用的数据进行认证处理等。收发电路22是接收从子机2送出的电磁波,将其变换成数字数据后向数据处理电路22输入的电路。并且,收发电路22还可以将从数据处理电路21输出的数字数据变换成模拟数据,对其进行放大后作为电磁波送出。驱动电路23是向使汽车的锁上锁·开锁的锁机构动作的执行元件24发送驱动信号的电路。另外,从汽车的蓄电池25向母机3的各部分21~23供给功率。
===数据处理电路的构成====图2为表示数据处理电路13的构成的图。数据处理电路13备有CPU51A、RAM(Random Access Memory,随机存取存储器)52A、EEPROM(Electrically Erasable Programmable Memory,电可擦可编程只读存储器)53A、随机数生成电路54A、密钥处理电路55A以及输入输出端口56A。并且,各个部分51A~56A通过总线57A可相互通信地连接。
CPU51A对数据处理电路13的整体进行控制。在RAM52A中,存储CPU51A使用的作业用数据等。EEPROM53A是可改写的非易失性存储器,存储着程序或保存用的数据等。随机数生成电路54A是生成加密处理中采用的伪随机数或者物理随机数的电路。密钥处理电路55A是进行在公共密钥块加密方式中的转置或者替换的处理的电路。输入输出端口56A是用于与存在于数据处理电路13外部的操作开关12或收发电路14等进行数据的收发的接口。
另外,在本实施方式中,采用DES(Data Encryption Standard)来作为公共密钥块加密方式。在这样的数据处理电路13中,通过程序的执行或密钥处理电路55A的控制等,进行DES的加密或解密的处理。而且,数据处理电路21也是同样的构成,备有CPU51B、RAM52B、EEPROM53B、随机数生成电路54B、密钥处理电路55B、输入输出端口56B以及使各部分51B~56B可相互通信地连接的总线57B。
===通信顺序===图3为表示无钥匙进入系统1的子机2和母机3之间的通信顺序的流程图。首先,通过子机2的操作开关12的操作等起动发送处理(S301)。子机2的数据处理电路13,将存储在EEPROM53A中的车号(车身号码)发送给母机3(S302)。母机3的数据处理电路21,待机从子机2发送来车号(S303),一旦接收从子机2发送来的车号,则将该车号与存储在EEPROM53B中的车号进行比较(S304)。
在车号不一致的情况下(S304不行(NG)),母机3的数据处理电路21判断发送了不同的汽车车号,返回接收待机处理(S303)。若车号一致(S304是(OK)),则数据处理电路21采用随机数生成电路54B,生成64位的临时密钥R0(S305)。并且,数据处理电路21采用存储在EEPROM53B中的公共密钥K,以DES对该临时密钥R0进行加密后发送给子机2(S306)。
子机2的数据处理电路13,一旦接收从母机3发送来的加密后的临时密钥R0,则采用存储在EEPROM53A中的公共密钥K对临时密钥R0进行解密(S307)。接着,数据处理电路13采用随机数生成电路54A生成64位的临时密钥R1(S308)。并且,数据处理电路13采用从母机3接收的临时密钥R0,以DES对该临时密钥R1进行加密后发送给母机3(S309)。母机3的数据处理电路21,一旦接收从子机2发送来的加密后的临时密钥R1,则采用临时密钥R0对临时密钥R1进行解密(S310)。
其后,子机2的数据处理电路13,采用临时密钥R1,以DES对上锁·开锁指示等信息数据进行加密后发送给母机3(S311)。母机3的数据处理电路21,一旦接收从子机2发送来的加密后的信息数据,则采用临时密钥R1对信息数据进行解密(S312)。并且,数据处理电路21,基于信息数据,例如经由驱动电路23向执行元件24发送上锁·开锁指示信号。
于是,在无钥匙进入系统1中,通过在子机2以及母机3中采用随机数生成电路54A、54B来生成临时密钥,DES重复加密以及解密的处理,从而使安全强度提高。
===DES的加密·解密的处理===图4为表示DES的加密处理的流程的流程图。DES的加密处理由第1段至第16段为止的处理构成。首先,通过初始转置(Initial Permutation),对成为加密对象的64位的明文进行重新排列,生成成为第1段的输入数据的左侧的32位(L0)以及右侧的32位(R0)(S401)。并且,通过下式(1、2)求出成为第2段的输入数据的L1以及R1。
L1=R0(1)R1=L0F(R0,K1)(2)在此,K1为由64位公共密钥生成的密钥。首先,通过缩减型转置(Permuted Choice1以后称作“PC1转置”)将64位的公共密钥变换成56位,生成左侧的28位(C0)以及右侧的28位(D0)(S402)。进而,对于C0以及D0进行左旋转移动,生成C1以及D1(S403,S404)。并且,通过缩减型转置(Permuted Choice2以后称作“PC2转置”)将C1以及D1变换成48位,从而得到K1(S405)。并且,通过使C1以及D1进一步左旋转移动,并进行PC2转置,从而可以生成在第2段以后采用的密钥K2~K16。
如此求出的L1以及R1成为第2段的输入数据,重复执行处理直到第16段为止。即,Ln以及Rn由下式(3,4)求出。
Ln=Rn-1(3)R0=Ln-1F(Rn-1,Kn-1)(4)并且,通过对于作为第16段的输出数据的L16以及R16进行最终转置(Inverse Initial Permutation),从而可以得到将明文加密后的加密文(S406)。
图5为表示F函数(F(R,K))的处理的流程的图。首先,通过放大型转置将32位的数据R变换成48位,生成R’(S501)。接着,将通过按每位对R’与48位的密钥K进行异或而得到的48位的数据,按每6位进行分割,向S1~S8的S-BOX输入。并且,通过对从各S-BOX输出的4位进行合并而构成的32位的数据进行转置而重新排列后的数据变成F函数的输出数据(S502)。
图6为表示DES的解密的处理的流程的流程图。DES的解密处理与加密处理同样由第1段至第16段为止的处理构成。首先,通过初始转置对成为解密对象的64位的加密文进行重新排列,生成成为第1段的输入数据的左侧的32位(R16)以及右侧的32位(L16)(S601)。并且,通过下式(5)以及(6)求出成为第2段的输入数据的R15以及L15。
R15=L16(5)L15=R16F(L16,K16)(6)在此,K16是由64位的公共密钥生成的密钥,首先,通过PC1转置将64位的公共密钥变换成56位,生成左侧的28位(C16)以及右侧的28位(D16)(S602)。并且,通过PC2转置将C16以及D16变换成48位,得到K16(S603)。通过将C16以及D16右旋转移动,并进行PC2转置,从而可以生成第2段以后采用的密钥K15~K1。
如此求出的R15以及L15变成第2段的输入数据,重复执行处理直到第16段为止。即Rn以及Ln,成为通过下式(7)以及(8)而被求出。
Rn-1=Ln(7)Ln-1=RnF(Ln,Kn)(8)
并且,通过对作为第16段的输出数据的R0以及L0进行最终转置,从而可以得到对加密文进行解密后的明文(S604)。另外,解密处理中的Ln、Rn、Cn、Dn、Kn,与加密处理中的Ln、Rn、Cn、Dn、Kn相同。并且,C0=C16、D0=D16。
===密钥处理电路的构成===在本实施方式中,图4~图6所说明的加密以及解密处理中的转置·替换处理采用密钥处理电路55A、55B来实现。密钥处理电路55A以及密钥处理电路55B是同样的构成。以后,针对密钥处理电路55A进行说明。图7为表示密钥处理电路55A的构成的图。密钥处理电路55A备有输入寄存器(数据输入部)61、转置·替换部62、输出缓冲器(数据输出部)63、选择寄存器64、多路复用器65、66以及地址译码器67。
输入寄存器61是采用多个D型触发器(以后称作“D-FF”)而构成的64位的寄存器,D-FF的输入端子D,与总线57A的数据总线连接,D-FF的输出端子Q(输出端口)经由多路复用器65与转置·替换部62连接。并且,向构成输入寄存器61的D-FF的时钟输入端子,输入写入信号(WRITE)。而且,例如在数据总线为8位的情况下,输入寄存器61可以设为采用8个8位的寄存器的构成。
转置·替换部62备有初始转置部71、最终转置部72、放大型转置部73、S-BOX部74、P转置部75、PC1转置部76、旋转移动部77以及PC2转置部78的8个模块。转置·替换部62的各模块71~78,对从输入寄存器61输入的数据进行转置或者替换处理,经由多路复用器66向输出缓冲器63输出。
另外,S-BOX部74相当于本发明的替换部,其它的各个部分71、72、73、75、76、77、78相当于本发明的转置部。并且,选择寄存器64、多路复用器65以及多路复用器66相当于本发明的选择部。
输出缓冲器63是64位的三态缓冲器,在该64位的输入端子(输入端口)上经由多路复用器66而连接有转置·替换部62,输出端子与总线57A的数据总线连接。另外,例如在数据总线为8位的情况下,输出缓冲器63可以设为采用8个8位的三态缓冲器的构成。
选择寄存器64是采用多个D-FF而构成的、例如8位的寄存器,D-FF的输入端子D与总线57A的数据总线连接,D-FF的输出端子Q与多路复用器65、66连接。并且,向构成选择寄存器64的D-FF的时钟输入端子输入写入信号(WRITE)。向选择寄存器64中写入表示选择转置·替换部62中的哪个模块的选择数据。多路复用器65,基于从选择寄存器64中输出的选择数据,将从输入寄存器61输出的数据向该模块输出。另外,多路复用器66,基于从选择寄存器64输出的选择数据,将从该模块输出的数据向输出缓冲器63输出。
地址译码器67与总线57A的地址总线连接,选择与由地址总线指定的地址相符合的电路。另外,在本实施方式中,向输入寄存器61写入的地址、和从输出缓存器63读出的地址相同。
下面针对在数据处理电路13中、采用密钥处理电路55A进行转置或者替换处理的流程进行说明。首先,CPU51A向地址总线输出选择寄存器64的地址,向数据总线输出表示转置·替换部62的所希望模块的选择数据,通过输出写入信号(WRITE),从而向选择寄存器中写入选择数据。接着,CPU51A向地址总线输出输入寄存器61的地址,向数据总线输出转置或者替换处理的输入数据,通过输出写入信号(WRITE),从而将该输入数据写入输入寄存器61。这样,输入到输入寄存器61的数据经由多路复用器65而向所希望的模块输入,转置或者替换处理的结果经由多路复用器66向输出缓冲器63输出。
之后,CPU51A将作为与输入寄存器61相同的地址的输出缓冲器63的地址向地址总线输出,向输出缓冲器63输入读出信号(READ)。这样,对输入数据进行了转置或者替换处理后的数据便从输出缓冲器63向数据总线输出。如此,CPU51A仅通过将数据写入输入寄存器61,从输出缓冲器63读出数据,便可以进行转置或者替换处理。
===转置·替换部的构成===接着,对转置替换部的各模块71~78的构成进行说明。
(1)初始转置图8为表示初始转置中每位的对应规则91的图。该对应规则91表示例如向初始转置71输入的64位的输入数据的第58位成为输出数据的第1位,输入数据的第50位成为输出数据的第2位那样的、64位的输入数据与64位的输出数据的每位的对应。
图9为表示处理转置部71的构成的图。如图所示,初始转置部71的输入侧和输出侧,基于对应规则91而被接线。例如,按照输入侧的第58位成为输出侧的第1位的方式被接线,按照输入侧的第50位成为输出侧的第2位的方式被接线。即,初始转置部71经由多路复用器65、66,将输入寄存器61的输出端子Q与输出缓冲器63的输入端子基于对应规则91连接。
(2)最终转置图10为表示最终转置中每位的对应规则92的图。该对应规则92表示例如向最终转置部72输入的64位的输入数据的第40位成为输出数据的第1位,输入数据的第8位成为输出数据的第2位那样的、64位的输入数据与64位的输出数据的每位的对应。
图11为表示最终转置部72的构成的图。如图所示,最终转置部72的输入侧和输出侧,基于对应规则92而被接线。例如,按照输入侧的第40位成为输出侧的第1位的方式而被接线,按照输入侧的第8位成为输出侧的第2位的方式而被接线。即,最终转置部72经由多路复用器65、66,将输入寄存器61的输出端子Q与输出缓冲器63的输入端子基于对应规则92连接。
(3)放大型转置图12为表示放大型转置中每位的对应规则93的图。该对应规则93表示例如向放大型转置部73输入的32位的输入数据的第32位成为输出数据的第1位,输入数据的第1位成为输出数据的第2位这样的、32位的输入数据与48位的输出数据的每位的对应。而且,在放大型转置中,由于将32位的输入数据放大成48位的输出数据,因此输入数据中的16位,被输出到输出数据的2位。例如,输入数据的每1位,被输出到输出数据的第2位以及第48位的2位。
图13为表示放大型转置部73的构成的图。如图所示,放大型转置部73的输入侧和输出侧,基于对应规则93而被接线。例如,按照输入侧的第32位成为输出侧的第1位的方式而被接线,按照输入侧的第1位成为输出侧的第2位的方式而被接线。即,放大型转置部73经由多路复用器65、66,将输入寄存器61的输出端子Q与输出缓冲器63的输入端子基于对应规则93连接。
(4)S-BOX图14为表示S-BOX部74的构成的图。如图所示,S-BOX部74由S1~S8构成,自48位的输入数据的开头起,每隔6位而分割的数据被输入到S1~S8。并且,例如在S1中,基于对应规则将6位的输入数据变换成4位后输出。同样地,即使在S2~S8中,基于各自的对应规则也能将6位的输入数据变换成4位后输出。
图15为表示S-BOX(S1)的对应规则94的图。在该对应规则94中,向S1输入的6位的输入数据的第1行与第6行(B1·B6)成为行,输入数据的第2位至第5位(B2~B5)成为列,在其交差处存在的数据成为输出数据。例如,输入数据“110000”被输入到S1。这种情况下,B1·B6成为“10”,第3行被选择。并且,B2~B5成为“1000”,将其由十进制表示后的第8列被选择。这样,处于第3行第8列的十进制的“15”由二进制表示后的“1111”被输出。同样地,对于S2~S8也制定对应规则。
图16为表示S-BOX部74的S1的构成的图。如图所示,S1备有选择器95、置换电路96以及选择电路97。并且,设置S1~S8公共采用的选择寄存器98。而且,选择器95以及置换电路96相当于本发明的替换电路。
经由选择电路97向选择器95输入B1以及B6。依据该输入,将表示对应规则94的哪行被选择的信号向置换电路96输出。在置换电路96中,构成将B2~B5变换成对应规则94的各行的值的逻辑电路,基于来自选择器95的信号对B2~B5进行变换后输出。
选择寄存器98是采用多个D-FF而构成的、例如8位的寄存器,D-FF的输入端子D与总线57A的数据总线连接,D-FF的输出端子Q与选择电路97连接。并且,选择电路97,依据从选择寄存器98输出的选择数据,可以重新排列向选择器95输出的B1和B6。例如,在从选择寄存器98输出选择数据“0”时,选择电路97从第1位97a输出B1,从第2位97b输出B6。并且,在从选择寄存器98输出选择数据“1”时,选择电路97从第1位97a输出B6,从第2位97b输出B1。
即,在上述输入数据“110000”的情况下,从选择寄存器98输出选择数据“1”时,从选择电路97向选择器95输入的数据成为“01”,第2行被选择,第2行第8列的十进制的“10”由二进制表示后的“1010”被输出。如此,通过使向选择寄存器98写入的选择数据改变,从而可以使S1的对应规则94改变。
另外,即便关于S2~S8,也与S1同样地构成。即,由S1~S8构成的S-BOX部74可以叫做逻辑电路,其经由多路复用器65、66,基于S1~S8的对应规则,对从输入寄存器61的输出端子Q并列输出的输入数据进行变换后向输出缓冲器63的输入端子输出。
并且,在本实施方式中,虽然为由选择电路97对最高位和最低位的2位进行重新排列后向选择器95输入,剩余的4位向置换电路96输入的构成,然而S-BOX部74的构成并非限于此,只要是将基于选择数据对所输入的6位(B1~B6)重新排列后的数据,基于对应规则变换成4位的逻辑电路即可。
(P转置)图17为表示P转置中每位的对应规则101的图。该对应规则101表示例如向最终转置部75输入的32位的输入数据的第16位成为输出数据的第1位,输入数据的第7位成为输出数据的第2位这样的、32位的输入数据与32位的输出数据的每位的对应。
图18为表示P转置部75的构成的图。如图所示,P转置部75的输入侧和输出侧,基于对应规则101而被接线。例如,按照输入侧的第16位成为输出侧的第1位的方式被接线,按照输入侧的第7位成为输出侧的第2位的方式被接线。即,P转置部75经由多路复用器65、66,将输入寄存器61的输出端子Q与输出缓冲器63的输入端子基于对应规则101连接。
(6)PC1转置图19为表示PC1转置中每位的对应规则102的图。该对应规则102表示,例如向PC1转置部76输入的64位的输入数据的第57位成为输出数据的第1位,输入数据的第49位成为输出数据的第2位这样的、64位的输入数据与59位的输出数据的每位的对应。并且,在PC1转置中,由于将64位的输入数据缩减为56位的输出数据,因此输入数据中的8位不会被输出到输出数据中。
图20为表示PC1转置部76的构成的图。如图所示,PC1转置部76的输入侧和输出侧,基于对应规则102而被接线。例如,按照输入侧的第57位成为输出侧的第1位的方式而被接线,按照输入侧的第49位成为输出侧的第2位的方式而被接线。即,PC1转置部76经由多路复用器65、66,将输入寄存器61的输出端子Q与输出缓冲器63的输入端子基于对应规则102连接。
(7)旋转移动图21为表示旋转移动中的输入数据和输出数据的对应规则103的图。即,对应规则103表示通过将28位的C0以及28位的D0左旋转移动1位而得到28位的C1以及28位的D1,通过将C1以及D1左旋转移动1位而得到C2以及D2,通过将C2以及D2左旋转移动2位而得到C3以及D3。如此,在对应规则103中,表示C1~C16以及D1~D16为止的旋转数。并且,左旋转移动的处理为输入数据的各位与输出数据的各位1对1对应,与其它转置同样可以叫做每位的对应规则。
图22为表示旋转移动部77的构成的图。该图表示旋转移动部77中、由C0以及D0生成C1以及D1的部分,按照将输入侧的C0以及D0分别左旋转移动1位作为C1以及D1并向输出侧输出的方式接线。并且,即使对于由C0以及D0生成C2~C16以及D2~D16的部分,也同样地构成。即,旋转移动部77经由多路复用器65、66,将输入寄存器61的输出端子Q与输出缓冲器63的输入端子基于对应规则103连接。
另外,虽然将生成C1~C16以及D1~D16的旋转移动部77,也可按照例如生成C1以及D1的电路、生成C2以及D2的电路的方式各自分别构成,但是还可将它们统一而构成。即,旋转移动部77还可以按照根据从输入寄存器61输出的C0以及D0,一次生成C1~C16以及D1~D16,向输出缓冲器63输出。这时,输出缓冲器63需要将56位(7个字节)16倍后的112个字节以上的容量。如此,由于通过一次生成C1~C16以及D1~D16,从而由一次处理便可以实行用于生成密钥K1~K16的旋转移动,故可以使加密以及解密处理的处理速度提高。
(8)PC2转置图23为表示PC2转置中每位的对应规则104的图。该对应规则104表示,例如按照向PC2转置部78输入的56位的输入数据的第14位成为输出数据的第1位,输入数据的第17位成为输出数据的第2位这样的、56位的输入数据与48位的输出数据的每位的对应。并且,在PC2转置中,由于将56位的输入数据缩减为48位的输出数据,因此输入数据中的8位不会被输出到输出数据中。
图24为表示PC2转置部78的构成的图。如图所示,PC2的转置部78的输入侧和输出侧,基于对应规则104被接线。例如,按照输入侧的第14位成为输出侧的第1位的方式被接线,按照输入侧的第17位成为输出侧的第2位的方式被接线。即,PC2转置部78经由多路复用器65、66,将输入寄存器61的输出端子Q与输出缓冲器63的输入端子基于对应规则104连接。
以上,针对应用作为本发明的一实施方式的密钥处理电路55A、55B的无钥匙进入系统1作了说明。如上所述,密钥处理电路55A、55B是进行作为公共密钥块加密方式的DES的转置处理的电路,仅通过将需要转置的输入数据写入输入寄存器61中,便可以通过转置·替换部62从基于对应规则连接的输出缓冲器63中得到转置后的结果的数据。即,在该密钥处理电路55A、55B中,未进行基于软件的对应表的参照等处理,便可以转置,能够以低消耗功率且高速化执行加密以及解密。
并且,在密钥处理电路55A、55B中,设置有进行DES的转置处理的初始转置部71、最终转置部72、放大型转置部73、P转置部75、PC1转置部76、旋转移动部77以及PC2转置部78,能够以低消耗功率且高速进行由这些各个部分执行的转置处理。
另外,在密钥处理电路55A、55B中,输入寄存器61在进行转置处理的各模块71、72、73、75、76、77、78中被共用,通过选择寄存器64以及多路复用器65,向所希望的模块输入数据。如此,通过共用输入寄存器61,从而与按每个模块设置输入寄存器的情况相比较,可以削减部件数量,可以削减电路整体的消耗功率。
此外,密钥处理电路55A、55B还具备S-BOX部74,其进行作为DES的替换处理的S-BOX的处理,仅通过将需要替换的输入数据写入输入寄存器61,便可以基于对应规则得到替换后的结果的数据。即,在该密钥处理电路55A、55B中,未进行基于软件的对应表的参照等处理,便可进行替换,且能够以低消耗功率且高速进行加密以及解密。
并且,在本实施方式的密钥处理电路55A、55B中,具备进行转置或者替换的多个模块71~78,虽然使用选择寄存器64以及多路复用器65、66,对所采用的模块71~78进行切,但也可以单独构成各模块71~78。例如,还可构成仅进行初始转置的密钥处理电路。
另外,在密钥处理电路55A、55B中,采用多路复用器65,以作为将来自输入寄存器61的输出数据分配给转置·替换部62的电路。作为对数据进行分配的电路,除多路复用器65之外还可采用三态缓冲器。但是,一般与三态缓冲器相比,多路复用器一方从接收输出的指示至对象数据被输出为止的时间短。因此,通过在密钥处理电路55A、55B中采用比三态缓冲器动作快的多路复用器65,从而可以使加密以及解密的处理速度提高。
另外,在密钥处理电路55A、55B中,通过由多个D-FF构成的输入缓冲器61来实现数据输入部,通过由三态缓冲器构成的输出缓冲器63来实现数据输出部,除此以外,数据输入部中还可以使用预先存储所写入的数据的存储器等。但是,在使用存储器的情况下,需要将所写入的数据读出到转置·替换部62的各模块的动作(时钟)。因此,通过采用本实施方式的密钥处理电路55A、55B的构成,从而可与向输入寄存器61写入数据同时,将转置或者替换后的结果的数据向输出缓冲器63输入,从输出缓冲器63读出该数据。即,能够削减转置·替换所需要的时钟数,以低消耗功率且高速进行加密以及解密。
另外,在密钥处理电路55A、55B中,向输入寄存器61写入的地址和从输出缓冲器63读出的地址是相同的。这样,在进行转置或者替换之际,由于只要向某地址写入数据,从该地址读出数据即可,因此在程序中不需要进行地址变换等的处理,可以削减处理步骤。因此,降低加密以及解密处理中的消耗功率,且使处理速度提高。
如此,通过将降低消耗功率、且使处理速度提高的密钥处理电路55A、55B应用于无钥匙进入系统1中,从而可以抑制子机2的电池11的消耗或母机3的蓄电池25的消耗。并且,因加密以及解密的处理是高速进行的,从而可以使上锁或开锁等的操作相对的响应提高。
另外,密钥处理电路55A、55B的S-BOX部74,将基于从选择寄存器98输出的选择数据对向S1~S8的各S-BOX输入的6位数据进行重新排列后的数据,基于规定的对应规则变换后输出。即,在该密钥处理电路55A、55B中,未进行基于软件的处理便可进行替换,能够以低消耗功能且高速进行加密以及解密。另外,虽然在特开2004-178507号公报中,提出了一种通过软件来实现公共密钥块加密方式中的替换处理等的方法,然而是将输入数据与输出数据的对应规则固定化了的构成。因此,在这样的构成中,在通过差分攻击法或者线形攻击法等分析其对应规则时等,若不修正硬件则无法对替换处理中的对应规则进行变更,安全性不足。另一方面,在密钥处理电路55A、55B的S-BOX部74中,通过对存储在选择寄存器中的选择数据进行改写,从而未对硬件进行修正便可对S-BOX中的输入数据与输出数据的对应规则进行变更,使安全性提高。尤其,在本实施方式密钥处理电路55A、55B的S-BOX部74中,通过基于选择数据,对6位的输入数据的最高位的位以及最低位的位进行重新排列,从而因未对硬件进行修正便可对例如S1中的对应规则94中所选择的行进行变更,因此使安全性提高。
而且,在本实施方式中,虽然就将本发明的密钥处理电路应用于作为公共密钥块加密方式的一种的DES的例子作了说明,然而公共密钥块加密方式并非限于DES,即使在三重DES或AES(Advanced EncryptionStandard)等的公共密钥块加密方式中,也可根据同样的构成,未使硬件修正便可对替换处理中的输入数据与输出数据的对应规则进行变更,能够使安全性提高。
另外,在本实施方式中,作为密钥处理电路55A、55B的应用例,列举了无钥匙进入系统1,然而并非限于无钥匙进入系统1,还可应用于例如采用IC卡的自动检票系统或出入室管理系统等、需要数据加密的各种系统中。
并且,上述实施方式是用于容易理解本发明的,并非用于对本发明进行限定解释的。本发明在未脱离其主旨的前提下,可进行变更、改良,同时本发明还包含其等效物。
权利要求
1.一种密钥处理电路,其进行基于每位的对应规则对多位输入数据进行重新排列后输出的、公共密钥块加密方式的转置处理,其特征在于,具备数据输入部,其接收所述多位输入数据,并具有将所接收的所述多位输入数据并列输出的输出端口;数据输出部,其具有将多位数据并列输入的输入端口,并将向所述输入端口输入的所述多位数据输出;和转置部,其基于所述每位的对应规则,对所述输出端口和输入端口进行连接。
2.根据权利要求1所述的密钥处理电路,其特征在于,所述公共密钥块加密方式为DES,所述输入数据为初始转置中的输入数据,所述每位的对应规则,为所述初始转置中每位的对应规则。
3.根据权利要求1所述的密钥处理电路,其特征在于,所述公共密钥块加密方式为DES,所述输入数据,为最终转置中的输入数据,所述每位的对应规则,为所述最终转置中每位的对应规则。
4.根据权利要求1所述的密钥处理电路,其特征在于,所述公共密钥块加密方式为DES,所述输入数据为F函数的放大型转置中的输入数据,所述每位的对应规则,为所述F函数的放大型转置中每位的对应规则。
5.根据权利要求1所述的密钥处理电路,其特征在于,所述公共密钥块加密方式为DES,所述输入数据,为从F函数的S-BOX输出的数据,所述每位的对应规则为所述F函数的将该输入数据输入的转置中每位的对应规则。
6.根据权利要求1所述的密钥处理电路,其特征在于,所述公共密钥块加密万式为DES,所述输入数据为向第1缩减型转置输入的公共密钥,所述每位的对应规则,为所述缩减型转置中每位的对应规则。
7.根据权利要求1所述的密钥处理电路,其特征在于,所述公共密钥块加密方式为DES,所述输入数据为第2缩减型转置中的输入数据,所述每位的对应规则,为所述缩减型转置中每位的对应规则。
8.根据权利要求1所述的密钥处理电路,其特征在于,所述公共密钥块加密方式为DES,所述输入数据,为通过第1缩减型转置对公共密钥进行转置而得到的数据,所述每位的对应规则,为该输入数据、与向第2缩减型转置输入的数据的、每位的对应规则。
9.根据权利要求1所述的密钥处理电路,其特征在于,具备多个所述每位的对应规则不同的所述转置部,还具备选择部,其接收表示采用所述多个转置部中的哪个转置部的选择数据,将从所述数据输入部输出的所述输入数据向由所述选择数据所表示的所述转置部输入。
10.根据权利要求9所述的密钥处理电路,其特征在于,所述公共密钥块加密方式为DES,所述多个转置部的所述每位的对应规则,分别为以下当中的某一个初始转置中每位的对应规则、最终转置中每位的对应规则、F函数的放大型转置中每位的对应规则、将从F函数的S-BOX输出的数据输入的转置中每位的对应规则、第1缩减型转置中每位的对应规则、第2缩减型转置中每位的对应规则、从所述第1缩减型转置输出的数据、与向所述第2缩减型转置输入的数据的、每位的对应规则。
11.根据权利要求9所述的密钥处理电路,其特征在于,还具备替换部,其是基于对应规则对从所述数据输入部并列输出的所述多位输入数据进行变换后向所述数据输出部的所述输入端口并列输出的逻辑电路,所述选择数据,为表示采用所述多个转置部或者所述替换部中的哪个的数据,所述选择部,其将从所述数据输入部输出的所述输入数据向由所述选择数据所表示的所述转置部或者所述替换部输入。
12.根据权利要求11所述的密钥处理电路,其特征在于,所述公共密钥块加密方式为DES,所述多个转置部的所述每位的对应规则,分别为以下对应规则中的某一个初始转置中每位的对应规则、最终转置中每位的对应规则、F函数的放大型转置中每位的对应规则、将从F函数的S-BOX输出的数据输入的转置中每位的对应规则、第1缩减型转置中每位的对应规则、第2缩减型转置中每位的对应规则、从所述第1缩减型转置输出的数据、与向所述第2缩减型转置输入的数据的、每位的对应规则,所述替换部的所述对应规则,为向所述S-BOX输入的数据、和从所述S-BOX输出的数据的、对应规则。
13.根据权利要求9所述的密钥处理电路,其特征在于,所述选择部为多路复用器。
14.一种密钥处理电路,其进行基于对应规则将多位输入数据变换后输出的公共密钥块加密方式的替换处理,其特征在于,具备数据输入部,其接收所述多位输入数据,并具有将所接收的所述多位输入数据并列输出的输出端口;替换部,其是基于所述对应规则、将从所述数据输入部并列输出的所述多位输入数据变换后输出的逻辑电路;和数据输出部,其具有将从所述替换部输出的多位数据并列输入的输入端口,并将向所述输入端口输入的所述多位数据输出。
15.根据权利要求14所述的密钥处理电路,其特征在于,所述公共密钥块加密方式为DES,所述输入数据,为向F函数的S-BOX输入的数据,所述对应规则,为所述输入数据与从所述S-BOX输出的数据的对应规则。
16.根据权利要求1所述的密钥处理电路,其特征在于,所述数据输入部由多个D型触发器构成,所述输出端口为该多个D型触发器的输出端子,所述数据输出部为三态缓冲器。
17.根据权利要求1所述的密钥处理电路,其特征在于,向所述数据输入部写入的地址与从所述数据输出部读出的地址是相同的。
18.一种密钥处理电路,其进行对多位输入数据进行变换后输出的公共密钥块加密方式的替换处理,其特征在于,该密钥处理电路是逻辑电路,其接收所述输入数据、和指示所述输入数据的重新排列的选择数据,并将基于所述选择数据而对所述输入数据进行重新排列后的数据,基于规定的对应规则进行变换后输出。
19.根据权利要求18所述的密钥处理电路,其特征在于,所述公共密钥块加密方式为DES,所述规定的对应规则,为向DES的S-BOX输入的数据与从所述S-BOX输出的数据的对应规则。
20.根据权利要求19所述的密钥处理电路,其特征在于,所述逻辑电路,具备选择电路,其基于所述选择数据,将向所述S-BOX输入的所述多位输入数据的最高位的位以及最低位的位重新排列后输出;和替换电路,其基于所述规定的对应规则,对从所述选择电路输出的所述多位输入数据的最高位的位以及最低位的位、与所述多位输入数据的最高位的位以及最低位以外的位进行变换后输出。
全文摘要
本发明提供一种密钥处理电路,其进行基于每位的对应规则对多位输入数据进行重新排列后输出的、公共密钥块加密方式的转置处理,其中具备数据输入部,其接收所述输入数据,并具有将所接收的所述多位输入数据并列输出的输出端口;数据输出部,其具有将多位数据并列输入的输入端口,并将向所述输入端口输入的所述数据输出;和转置部,其基于所述每位的对应规则,对所述输出端口和输入端口进行连接。这样,便能够以低消耗功率且高速进行公共密钥块加密方式中的加密以及解密处理。
文档编号G09C1/00GK1815528SQ200610006999
公开日2006年8月9日 申请日期2006年1月25日 优先权日2005年2月3日
发明者池谷昭, 石村静, 千明一雅 申请人:三洋电机株式会社