随机数生成电路的制作方法

文档序号:2399369阅读:865来源:国知局
专利名称:随机数生成电路的制作方法
技术领域
本发明涉及一种生成用于数据加密等的随机数的随机数生成电路。
背景技术
近年,各种信息处理系统中,进行数据加密。在加密中,为了提高安全性,多使用随机数。作为这样的随机数有例如,使用线性反馈移位寄存器,可以生成的M序列(Maximum length code)等伪随机数。另外,作为M序列等伪随机数以外的随机数,众所周知,利用原子核衰变现象为随机事件和电气噪声等的自然现象的物理随机数,加密中也可以利用物理随机数(例如,专利文献1)。此外,通过组合由线性反馈移位寄存器生成的M序列等伪随机数和物理随机数,可以提高随机数的预测困难性(例如,专利文献2)。
专利文献1特开2000-66592号公报;专利文献2特开2004-157168号公报。
但是,M序列等伪随机数,由于是由一定的算术过程或者函数的组合生成的,如果赋予相同的初期条件,就会变为相同的值,预测随机数是可能的。因此,加密中使用M序列等伪随机数时,不能说安全性是充分的。
另外,使用晶体管噪音作为生成“0”和“1”的物理随机数时,通常,“0”的发生概率为45~55%的范围,“0”和“1”的发生频率差大,不能用作随机数。另外,由于通常物理随机数是微弱的信号,用于加密时,使用放大器放大到可以被加密利用的电平的很多。这样使用放大器放大的物理随机数有时受电场和磁场的影响。因此,有时通过由来自外部的影响,使电场和磁场变化,操纵随机数,降低了安全性。
另外,在专利文献2中公开的随机数生成装置中,事先规定M序列中的抽头位置,构成对应于线性反馈移位寄存器的抽头位置的位进行异或逻辑运算的电路。因此,构成随机数生成装置后,不能更改其抽头位置,不能说安全性是充分的。

发明内容
本发明是根据上述课题作出,其目的在于可以提供生成安全、预测困难的随机数的随机数生成电路。
为了实现上述目的,本发明的随机数生成电路可以具备生成伪随机数序列伪随机数的伪随机数生成电路;生成物理随机数的物理随机数生成电路;根据由上述伪随机数生成电路生成的伪随机数,变化输出由上述物理随机数生成电路生成的物理随机数的调制电路。
另外,本发明的随机数生成电路具备生成多个伪随机数序列伪随机数的伪随机数生成电路;和生成物理随机数的物理随机数生成电路,上述伪随机数生成电路可以根据由上述物理随机数生成电路生成的物理随机数,切换上述伪随机数生成电路生成的伪随机数序列。
另外,本发明的随机数生成电路可以具备生成伪随机数序列伪随机数的线性反馈移位寄存器;存储伪随机数序列中的抽头位置的寄存器;和根据存储在上述线性反馈移位寄存器中的数据,和存储在上述寄存器中的抽头位置,生成向上述线性反馈移位寄存器发出反馈信号的反馈信号生成电路。
另外,本发明的随机数生成电路可以具备生成伪随机数序列伪随机数的线性反馈移位寄存器;存储多个伪随机数序列中的每个抽头位置的多个寄存器;接收表示使用上述多个伪随机数序列中的哪个伪随机数序列的选择信号,根据该选择信号,选择上述多个寄存器中的哪一个的选择电路;以及根据存储在上述线性反馈移位寄存器中的数据,和存储在由上述选择电路选择的寄存器中的抽头位置,生成向上述线性反馈移位寄存器发出反馈信号的反馈信号生成电路。
可以生成安全、预测困难的随机数。


图1是表示作为使用本发明的随机数生成电路的一个实施方式的进行汽车锁的加锁、解锁的无钥匙进入系统的整体构成的图。
图2是表示数据处理电路构成的图。
图3是表示无钥匙进入系统的子机和主机之间中的通信过程的流程图。
图4是表示随机数生成电路构成的图。
图5是表示物理随机数生成电路70的构成的图。
图6是表示随机数生成电路中的时间图。
图7是表示物理随机数和伪随机数发生概率的图。
图中1-无钥匙进入系统,2-子机,3-主机,11-电池,12-操作开关,13、21-数据处理电路,14、22-接收发送电路,23-驱动电路,24-执行器,25-电池,51A、51B-CPU,52A、52B-RAM,53A、53B-EEPROM,54A、54B-随机数生成电路,55A、55B-加密处理电路,56A、56B-输入输出端口,61-分频电路,62-波特率发生器,63-计数器,64-移位寄存器,65-掩码A寄存器,66-掩码B寄存器,67-多路转接器,68-AND电路,69-奇偶发生器,70-物理随机数生成电路,71-OR电路,72-D型触发器,73-AND电路,74-OR电路,75-EXOR电路,76-多路转接器,77-移位寄存器,具体实施方式
图1是表示对作为使用本发明随机数生成电路的一个实施方式的汽车的锁进行加锁/解锁的无钥匙进入系统1的整体构成的图。无钥匙进入系统1包含携带型的子机2和装载在汽车等上的主机3而构成。子机2被设置在例如,插入汽车的门锁和舵轮锁的钥匙孔的钥匙的方向盘部等。另外,主机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向主机2的各部分21~23提供电力。
==数据处理电路的构成==图2是表示数据处理电路13构成的图。数据处理电路13具备CPU51A,RAM(Random Access Memory)52A,EEPROM(ElectricallyErasable Programmable Read-Only Memory)53A,随机数生成电路54A,加密处理电路55A,和输入输出端口56A。并且,各部分51A~56A由总线57A相互可以通信地连接。
CPU51A是控制数据处理电路13整体的部分。CPU51A使用的操作用数据等存储在RAM52A中。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向主机3发送存储在EEPROM53A中的车辆号码(车体号码)(S302)。主机3的数据处理电路21,等待由子机2发送来的车辆号码(S303),如果接收由子机2发送来的车辆号码,将该车辆号码与存储在EEPROM53B中的车辆号码比较(S304)。
车辆号码不一致时(S304NG),主机3的数据处理电路21,判断不同汽车的车辆号码被发送来,返回接收待机处理(S303)。如果车辆号码一致(S304OK),数据处理电路21,使用随机数生成电路54B,生成是64位随机数的暂时密匙R0(S305)。并且,数据处理电路21使用该暂时密匙R0,存储在EEPROM53B中的公匙K,由DES加密发送到子机2上(S306)。
子机2的数据处理电路13如果接收由主机3发送来的加密后的暂时密匙R0,用存储在EEPROM53A中的公匙K,解密暂时密匙R0(S307)。接着,数据处理电路13使用随机数生成电路54A生成是64位随机数的暂时密匙R1(S308)。并且,数据处理电路13,使用由主机13接收的该暂时密匙R1,由主机3接收暂时密匙R0,由DES加密发送到主机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产生的加密和解密的处理,提高安全强度。
==随机数生成电路的构成==本实施方式中,在用图3说明的加密和解密处理中的随机数生成处理中,使用了随机数生成电路54A、54B。由于随机数生成电路54A和随机数生成电路54B是一样的构成,下面,对随机数生成电路54A进行说明。
图4是表示随机数生成电路54A构成的图。随机数生成电路54A具备分频电路61,波特率发生器62,计数器63,移位寄存器64,掩码A寄存器65,掩码B寄存器66,多路转接器67,AND电路68,奇偶发生器69,物理随机数生成电路70,OR电路71,D型触发器(以后,称为”D-FF”)72,AND电路73,OR电路74,EXOR电路75,多路转接器76,和移位寄存器77。并且,移位寄存器64,掩码A寄存器65,掩码B寄存器66,和移位寄存器77连接在总线57A上。
分频电路61是将数据处理电路13中的例如6MHz的系统时钟(Sys clk)分频为4分之1的电路。另外,波特率发生器62是可以设定例如8位寄存器中分频值的电路。并且,通过计数器63,将由分频电路61输出的时钟,根据波特率发生器62中设定的分频值,进行计数,输出随机数生成电路54A的时钟脉冲频率(RCLK)。
移位寄存器64是例如32位(Q0~Q31)线性反馈移位寄存器,向时钟输入(C)输入时钟脉冲频率(RCLK),反馈信号(F)输入到第1位(Q0)的数据输入端子(D)。并且,移位寄存器64的初始值由CPU51A通过总线57A设定。
掩码A寄存器65是例如32位(AQ0~AQ31)寄存器,是存储在由移位寄存器64生成M序列伪随机数时的抽头位置的元件。例如,使用移位寄存器64,生成4位的M序列时,可以根据例如原始多项式X4+X+1,由下式(1)求出反馈信号(F)。
数1F=Q2Q3…(1)换句话说,此时,抽头位置是第3位和第4位,掩码A寄存器65的第3位(AQ2)和第4位(AQ3)被设定为例如“1”,掩码A寄存器65的其他位被设置为例如“0”。
同样,掩码B寄存器66是例如32位(BQ0~BQ31)寄存器,是存储和掩码A寄存器65不同的抽头位置的元件。例如,在使用移位寄存器64,生成与上述的不同的4位的M序列时,可以根据例如原始多项式X4+X3+1,由下式(2)求出反馈信号(F)。
数2F=Q0Q3…(2)换句话说,此时,抽头位置是第1位和第4位,掩码B寄存器66的第1位(BQ0)和第4位(BQ3)被设定为例如“1”,掩码B寄存器66的其他位被设置为例如“0”。并且,掩码A寄存器65和掩码B寄存器66的值,由CPU51A,通过总线57A设定。
掩码A寄存器65的值(AQ0~AQ31)和掩码B寄存器66的值(BQ0~BQ31)被输入到多路转接器67中,选择信号(SEL)为例如”0”时,输出A侧(AQ0~AQ31),选择信号(SEL)为例如”1”时,输出B侧(BQ0~BQ31)。
AND电路68(68-0~68-31)是对移位寄存器64的值(Q0~Q31),由多路转接器67输出的掩码A寄存器65的值(AQ0~AQ31)或者掩码B寄存器66的值(BQ0~BQ31)的,每一位进行逻辑或运算的电路。换句话说,由AND电路68,移位寄存器64的值(Q0~Q31)中,向对应抽头位置的位,输出存储在此位中的值,除此以外的位输出”0”。
奇偶发生器69是对由AND电路68输出的值进行异或逻辑运算的电路。换句话说,由多路转接器67输出掩码A寄存器65的值(AQ0~AQ31)时,如下式(3)所示,由奇偶发生器69输出的值成为,生成对应设定在掩码A寄存器65中的抽头位置的M序列情况中的,向移位寄存器64的反馈信号(F)。
数3F=Q0·AQ0Q1·AQ1…Q31·AQ31…(3)同样,由多路转接器67输出掩码B寄存器66的值(BQ0~BQ31)时,如下式(4)所示,由奇偶发生器69输出的值,成为生成对应设定在掩码B寄存器66中的抽头位置的M序列情况中的,向移位寄存器64的反馈信号(F)。
数4F=Q0·BQ0Q1·BQ1…Q31·BQ31…(4)另外,本实施方式中,由奇偶发生器69输出的反馈信号(F)作为M序列伪随机数(PSRPseudo random numbers)使用。
物理随机数生成电路70是生成物理随机数(PHRPhysical randomnumbers)的电路。图5表示物理随机数生成电路70的构成。物理随机数生成电路70具备物理随机数发生源81,放大电路82,和二进制编码电路83。物理随机数发生源81是根据自然现象能够产生随机变化信号的元件,也可以作为包含例如,如专利文献1所公开的,在包含连接的电流路中参数的噪声信号的半导体元件的。并且,不局限于此,也可以使用利用放射性物质的衰变等,作为该物理随机数发生源81。
由物理随机数发生源81生成的信号,在放大电路82中被放大,并在二进制编码电路83中进行二进制编码处理。二进制编码电路83,比较由放大电路输出的放大后的信号的振幅和规定的阈值,例如,放大后的信号的振幅比规定阈值高时,输出“1”,低时,输出“0”,作为物理随机数(PHRPhysical random numbers)。并且,设置二进制编码电路83中的阈值的电平,以使“1”和“0”的发生概率变为大约45~55%。
OR电路71是对由物理随机数生成电路70输出的物理随机数(PHR)和表示在随机数生成电路54A中是否使用物理随机数的选择信号(MODE1)进行逻辑或运算的电路。在本实施方式中,选择信号(MODE1)为“0”时称为计数器模式,为“1”时称为CPU模式。计数器模式时,由OR电路71输出的信号,变为由物理随机数生成电路70输出的物理随机数(PHR),在其他电路中,变为物理随机数(PHR)被使用。另一方面,CPU模式时,由于由OR电路71输出的信号总是“1”,在其他电路中,变为物理随机数(PHR)不被使用。
D-FF72的数据输入端子(D)输入由OR电路71输出的信号。换句话说,计数器模式时,变为向D-FF72的数据输入端子(D)输入物理随机数(PHR)。另外,向D-FF72的时钟输入端子(C)输入时钟脉冲频率(RCLK)。并且,输入到D~FF72的数据输入端子(D)的物理随机数(PHR),在时钟脉冲频率(RCLK)上升沿时,作为物理随机数(PHRQ),从数据输出端子(Q)输出。
AND电路73是对由D-FF72输出的物理随机数(PHRQ),和选择随机数生成电路54A中的工作模式的选择信号(MODE0)进行逻辑与运算,向多路转接器67输出选择信号(SEL)的电路。在本实施方式中,选择信号(MODE0)为“0”时,称为乘法模式,为“1”时称为跳跃模式。所谓乘法模式是根据M序列伪随机数,变化/输出物理随机数的模式,所谓跳跃模式是根据物理随机数,切换、输出M序列的模式。
乘法模式时,由AND电路73输出的选择信号(SEL)总是为“0”。换句话说,乘法模式时,多路转接器67输出掩码A寄存器65的值(AQ0~AQ31)。跳跃模式时,由AND电路73输出的选择信号(SEL),变为由D-FF72输出的物理随机数(PHRQ)。换句话说,跳跃模式时,多路转接器67根据物理随机数(PHRQ),输出掩码A寄存器65的值(AQ0~AQ31)或者掩码B寄存器66的值(BQ0~BQ31)。
OR电路74是对由D-FF72输出的物理随机数(PHRQ),和操作选择信号(MODE0)进行逻辑或运算的电路。换句话说,乘法模式时,由OR电路74输出的信号成为物理随机数(PHRQ),跳跃模式时,无论物理随机数(PHRQ)总是变为“1”。
EXOR电路75是对由奇偶发生器69输出的伪随机数(PSR),和由OR电路74输出的信号进行异或逻辑运算,输出随机数(R)的电路。
将时钟脉冲频率(RCLK)翻转后的时钟(/RCLK),和来自CPU51A的读出信号(CPU_RD)输入到多路转接器76。并且,多路转接器76,在选择信号(MODE1)为计数器模式时,输出时钟(/RCLK),在CPU模式时,输出读出信号(CPU_RD)。
移位寄存器77是例如8位的线性移位寄存器,由EXOR电路75输出的随机数(R)被输入到数据输入端子(D),由多路转接器76输出的时钟信号(/RCLK)或者读出信号(CPU_RD)被输入到时钟输入端子(C)。
并且,在本实施方式中,由移位寄存器64,掩码A寄存器65,掩码B寄存器66,多路转接器67,AND电路68,和奇偶发生器69构成本发明的伪随机数生成电路,由EXOR电路75构成调制电路。另外,在本实施方式中,由多路转接器67构成本发明的选择电路,由AND电路68和奇偶发生器69构成本发明的反馈信号生成电路。
==随机数生成电路的动作说明==下面,对随机数生成电路54A的动作进行说明。
(1)乘法模式首先,对计数器模式中,动作模式为乘法模式时的动作进行说明。乘法模式时,由AND电路73输出的选择信号(SEL)总是“0”,掩码A寄存器65的值(AQ0~AQ31)由多路转接器67输出。并且,对移位寄存器64的值(Q0~Q31),和掩码A寄存器65的值(AQ0~AQ31)进行逻辑与运算的结果由AND电路68输出,由奇偶发生器69进行其异或逻辑运算,生成对移位寄存器64的反馈信号(F)。另外,由奇偶发生器69输出的信号,作为伪随机数(PSR),输入到EXOR电路75。该伪随机数(PSR)成为对应设定在掩码A寄存器65中的抽头位置的M序列伪随机数。
EXOR电路75对伪随机数(PSR),和由OR电路74输出的物理随机数(PHRQ)进行异或逻辑运算,将随机数(R)输出到移位寄存器77。并且,通过多路转接器76,将时钟(/RCLK)输入到移位寄存器77的时钟输入端子(C)。
图6是表示各信号的输出时间的时间图。如图所示,在时钟脉冲频率(RCLK)的上升沿时(例如时刻t1),生成物理随机数(PHRQ),和伪随机数(PSR),此外,生成对它们进行异或逻辑运算的随机数(R)。并且,在时钟脉冲频率(RCLK)的下降沿时,换句话说,在时钟(/RCLK)的上升沿时(例如时刻t2),随机数(R)被放置于移位寄存器77中。
并且,移位寄存器77如果存储8位由EXOR电路75输出的随机数(R),向CPU51A发送插入信号。CPU51A如果接收到该插入信号,从移位寄存器77中读出8位随机数(R)。
图7是表示输入到EXOR电路75的物理随机数(PHRQ)和伪随机数(PSR)的组合,和其发生概率的图。如果物理随机数(PHRQ)变为“0”的概率为X(0≤X≤1),伪随机数(PSR)变为“0”的概率为Y(0≤Y≤1),在物理随机数(PHRQ)和伪随机数(PSR)同时变为“0”的概率变为XY,物理随机数(PHRQ)变为“0”,伪随机数(PSR)变为“1”的概率变为X(1-Y)。另外,物理随机数(PHRQ)变为“1”,伪随机数变为“0”的概率变为(1-X)Y,物理随机数(PHRQ)和伪随机数(PSR)同时变为“1”的概率变为(1-X)(1-Y)。
因此,随机数(R)变为“0”的概率P0,和变为“1”的概率P1可以由下式(5)、(6)求出。
数5P0=XY+(1-X)(1-Y)…(5)P1=X(1-Y)+(1-X)Y…(6)其中,例如,伪随机数(PSR)设为16位的M序列,在伪随机数(PSR)中,“0”发生32767次,“1”发生32768次,Y≈0.4999(49.99%)。并且,物理随机数(PHRQ)中的“0”的发生概率X如果设为例如,0.45(45%),P0和P1由式(5)、(6)求出,P0≈0.50001(50.001%),P1≈0.49999(49.999%)。另外,例如,物理随机数(PHRQ)中的“0”的发生概率X如果设为例如,0.55(55%),P0≈0.49999(49·999%),P1≈0.50001(50.001%)。因此,随机数(R)中的“0”的发生概率的范围变为49.999~50.001%程度,可以作为随机数使用。
(2)跳跃模式下面,对计数器模式中,动作模式为跳跃模式的动作进行说明。跳跃模式时,由AND电路73输出的选择信号(SEL)变为由D-FF72输出的物理随机数(PHRQ)。因此,多路转接器67,在物理随机数(PHRQ)为“0”时,输出掩码A寄存器65的值(AQ0~AQ31),为“1”时,输出掩码B寄存器66的值(BQ0~BQ31)。
物理随机数(PHRQ)为“0”时,对移位寄存器64的值(Q0~Q31),和掩码A寄存器65的值(AQ0~AQ31)进行逻辑与运算的结果由AND电路68输出,由奇偶发生器69对其进行异或逻辑运算,生成通向移位寄存器64的反馈信号(F)。另外,由奇偶发生器69输出的信号,作为伪随机数(PSR),输入到EXOR电路75。
并且,物理随机数(PHRQ)为“1”时,对移位寄存器64的值(Q0~Q31),和掩码B寄存器66的值(BQ0~BQ31)进行逻辑与运算的结果由AND电路68输出,由奇偶发生器69对其进行异或逻辑运算,生成通向移位寄存器64的反馈信号(F)。另外,由奇偶发生器69输出的信号,作为伪随机数(PSR)输入到EXOR电路75。
换句话说,伪随机数(PSR),在物理随机数(PHRQ)为“0”时,变为对应设定在掩码A寄存器65中的抽头位置的M序列伪随机数,物理随机数(PHRQ)为“1”时,变为对应设定在掩码寄存器B65中的抽头位置的M序列伪随机数。
跳跃模式时,由于OR电路74的输出总是为“1”,由EXOR电路75输出的随机数(R),变为翻转伪随机数(PSR)的结果。随机数(R)输入到移位寄存器77的数据输入端子(D),时钟(/RCLK)通过多路转接器76输入到时钟输入端子(C)。并且,和乘法模式时一样,在时钟(/RCLK)上升沿时,随机数(R)被置于移位寄存器77中。另外,移位寄存器77如果存储8位由EXOR电路75输出的随机数(R),向CPU51A发送插入信号。CPU51A接收该插入信号,从移位寄存器77中读出8位随机数(R)。
(3)CPU模式最后,对CPU模式的动作进行说明。CPU模式时,由D-FF72输出的信号(PHRQ)总是为“1”。因此,由AND电路73输出的选择信号(SEL),在乘法模式时,为“0”,在跳跃模式时,为“1”。换句话说,多路转接器67,在乘法模式时,输出掩码A寄存器65的值(AQ0~AQ31),在跳跃模式时,输出掩码B寄存器66的值(BQ0~BQ31)。
并且,对移位寄存器64的值(Q0~Q31),和掩码A寄存器65的值(AQ0~AQ31)或者掩码B寄存器66的值(BQ0~BQ31)进行逻辑与运算的结果由AND电路68输出,由奇偶发生器69进行其异或逻辑运算,生成对移位寄存器64的反馈信号(F)。另外,由奇偶发生器69输出的信号,作为伪随机数(PSR)输入到EXOR电路75。该伪随机数(PSR),成为对应设定在掩码A寄存器65或者掩码B寄存器66中的抽头位置的M序列伪随机数。
CPU模式时,由于OR电路74的输出总是为“1”,由EXOR电路75输出的随机数(R),成为翻转伪随机数(PSR)的数。随机数(R)被输入到移位寄存器77的数据输入端子(D),来自CPU51A读出信号(CPU_RD),通过多路转接器76,输入到时钟输入端子(C)。并且,在移位寄存器77中,每当输入读出信号(CPU_RD)时,随机数(R)被置位。另外,移位寄存器77存储8位由EXOR电路75输出的随机数(R),向CPU51A发送插入信号。CPU51A接受到该插入信号,从移位寄存器77中读出8位随机数(R)。
以上,对作为本发明一个实施方式的应用随机数生成电路54A、54B的无钥匙进入系统1进行说明。M序列伪随机数是0的发生次数只比1的发生次数少1,1和0是出现大致相同次数的随机数。因此,在乘法模式中,通过根据M序列伪随机数,变化/输出物理随机数,换句话说用物理随机数、M序列伪随机数进行调制,输出的1和0的发生频率和M序列伪随机数同样,可以满足作为随机数的性能。并且,输出的随机数是由于用M序列伪随机数调制物理随机数的,仅仅和M序列伪随机数不同,预测其输出模式变困难。另外,输出的随机数由于不是将物理随机数原封不动输出,即使通过来自外部的影响,操纵物理随机数,由于通过M序列伪随机数调制,与只使用物理随机数的情况相比,可以防止安全性的降低。
并且,按照上述的,可以通过对物理随机数和M序列伪随机数进行异或逻辑运算,进行物理随机数的调制。其中,例如,在M序列为16位时,输出的随机数中的“0”的发生概率的范围为49.999~50.001%程度,可以满足作为随机数的性能。
另外,在跳跃模式的情况中,通过使用物理随机数,切换M序列,预测随机数的输出模式变困难。另外,输出的随机数,由于不是原封不动输出物理随机数,即使通过来自外部的影响,操纵物理随机数,由于输出M序列伪随机数,与只使用物理随机数的情况相比,可以防止安全性的降低。并且,如上所述,例如,通过设置多个存储M序列的抽头位置的寄存器,可以根据物理随机数,切换M序列。
另外,在随机数生成电路54A中,乘法模式时,M序列中的抽头位置存储在掩码A寄存器65中,根据存储在线性反馈移位寄存器64中的数据(Q0~Q31),和存储在掩码A寄存器65中的数据(AQ0~AQ31),生成对性线性反馈移位寄存器64的反馈信号(F)。换句话说,通过设定掩码A寄存器65中要求的数据,可以自由更改M序列中的抽头位置。在这样的随机数生成电路54A中,由于抽头位置是可变的,通过线性反馈移位寄存器64,提高生成的伪随机数的预测困难性。并且,在可以生成多个M序列的随机数生成电路中,由于没有必要设置对应每个M序列的抽头位置的电路,可以缩小电路规模。
并且,使用这样生成的伪随机数,调制物理随机数,可以生成随机数(R)。换句话说,在通过用M序列伪随机数,调制物理随机数,提高随机数的预测困难性的情况中,可以自由更改M序列的抽头位置。因此,在可以提高随机数的预测困难性的同时,与事先由电路构成对应多个M序列的抽头位置的情况比较,可以缩小电路规模。
另外,在随机数生成电路54A中,将存储M序列抽头位置的寄存器设为掩码A寄存器65和掩码B寄存器66共2个。并且,根据线性反馈移位寄存器64中存储的数据(Q0~Q31),和存储在通过多路转接器67选择的一个寄存器中的数据(AQ0~AQ31或者BQ0~BQ31),生成通向线性反馈移位寄存器64的反馈信号(F)。换句话说,通过设定掩码A寄存器65和掩码B寄存器66中要求的数据,可以自由更改可以由选择信号(SEL)切换的2个M序列的抽头位置。在这样的随机数生成电路54A中,由于根据选择信号(SEL)切换M序列,加上,通过掩码A寄存器65和掩码B寄存器66的设定,能够自由更改抽头位置,能提高由线性反馈移位寄存器64生成的伪随机数的预测困难性。并且,由于没有必要设置对应每个M序列的抽头位置的电路,可以缩小电路规模。
并且,输入到多路转接器67的选择信号(SEL)可以作为物理随机数(PHRQ)。换句话说,通过根据物理随机数切换M序列,提高随机数的预测困难性的情况中,可以自由更改M序列的抽头位置。因此,在可以提高随机数的预测困难性的同时,与事先用电路构成对应多个M序列的抽头位置的情况比较,可以缩小电路规模。
并且,上述实施方式是用于使对本发明的理解变容易的,并不是用于限定解释本发明的。本发明不脱离其要点,可以更改,改良,同时,本发明也包含其等价物。
例如,在本实施方式的随机数生成电路54A中,将存储M序列的抽头位置的寄存器设为掩码A寄存器65和掩码B寄存器66共2个,也可以设置3个以上存储抽头位置的寄存器。设置3个以上存储抽头位置的寄存器时,也可以使用例如,双稳态多谐振荡器等,存储2位以上物理随机数,根据其值选择输出抽头位置的寄存器。
另外,在本实施方式中,使用M序列作为伪随机数序列,也可以使用例如Gold序列等其他的伪随机数序列。在使用Gold序列作为伪随机数序列的情况中,通过使用Gold序列伪随机数调制物理随机数,生成随机数,可以提高随机数的预测困难性。另外,在使用Gold序列的情况中,由于不原封不动输出物理随机数,即使通过来自外部的影响操纵物理随机数,由于输出Gold序列伪随机数,与只使用物理随机数的情况比较,可以防止安全性的降低。
另外,可以通过设置多个存储Gold序列中的抽头位置的寄存器,根据物理随机数选择输出抽头位置的寄存器,切换Gold序列。由此,提高随机数的预测困难性,并且,可以防止由来自外部的影响降低安全性。
另外,在本实施方式的随机数生成电路54A中,将存储M序列的抽头位置的寄存器设为掩码A寄存器65和掩码B寄存器66共2个,也可以设置3个以上存储抽头位置的寄存器。设置3个以上存储抽头位置的寄存器时,也可以使用例如,双稳多谐振荡器等,存储2位以上物理随机数,根据其值,选择输出抽头位置的寄存器。
另外,在使用Gold序列作为伪随机数序列的情况中,通过将其抽头位置存储到寄存器中的构成,可以自由更改抽头位置,另外,与事先构成对应多个抽头位置的电路的情况比较,可以缩小电路规模。
另外,在本实施方式中,将随机数生成电路54A用于无钥匙进入系统1中的加密,随机数生成电路54A,不局限于无钥匙进入系统1,可以应用于为了提高安全性,使用随机数的各种信息处理系统。这样,在各种信息处理系统中,通过应用随机数生成电路54A,预测困难,并且,通过得到防止来自外部影响产生的安全性降低的随机数,可以提高其信息处理系统的安全性。另外,在各种信息处理系统中,通过应用随机数生成电路54A,由于可以自由更改伪随机数序列的抽头位置,可以提高随机数的预测困难性,可以提高安全性。另外,由于没有必要事先构成对应多个伪随机数序列的抽头位置的电路,能缩小随机数生成电路的电路规模,可以使采用随机数生成电路的装置小型化。
权利要求
1.一种随机数生成电路,其特征在于,具备伪随机数生成电路,其生成伪随机数序列的伪随机数;物理随机数生成电路,其生成物理随机数;和调制电路,其根据由上述伪随机数生成电路生成的伪随机数,变化/输出由上述物理随机数生成电路生成的物理随机数。
2.根据权利要求1所述的随机数生成电路,其特征在于,上述调制电路具备对由上述物理随机数生成电路生成的物理随机数,和由上述伪随机数生成电路生成的伪随机数进行异或逻辑运算的电路。
3.一种随机数生成电路,其特征在于,具备伪随机数生成电路,其生成多个伪随机数序列的伪随机数;和物理随机数生成电路,其生成物理随机数,上述伪随机数生成电路,根据由上述物理随机数生成电路生成的物理随机数,切换上述伪随机数生成电路所生成的伪随机数序列。
4.根据权利要求3所述的随机数生成电路,其特征在于,上述伪随机数序列是M序列,上述伪随机数生成电路具备线性反馈移位寄存器;多个寄存器,其存储多个M序列中的各个抽头位置;选择电路,其根据由上述物理随机数生成电路生成的物理随机数,选择上述多个寄存器中的任一个;以及反馈信号生成电路,其根据存储在上述线性反馈移位寄存器中的数据,和存储在由上述选择电路选择的寄存器中的抽头位置,生成向上述线性反馈移位寄存器发出的反馈信号。
5.一种随机数生成电路,其特征在于,具备线性反馈移位寄存器,其生成伪随机数序列的伪随机数;寄存器,其存储伪随机数序列中的抽头位置;反馈信号生成电路,其根据存储在上述线性反馈移位寄存器中的数据,和存储在上述寄存器中的抽头位置,生成对上述线性反馈移位寄存器的反馈信号。
6.根据权利要求5所述的随机数生成电路,其特征在于,上述寄存器,以和上述线性反馈移位寄存器同样位数构成,在对应伪随机数序列的抽头位置的位中存储一个逻辑值,在对应抽头位置的位以外的位中存储其他的逻辑值,上述反馈信号生成电路具备对上述线性反馈移位寄存器的各位和上述寄存器的各位进行逻辑与运算的电路;和通过对由该逻辑与运算得到的数据的异或逻辑运算,生成上述反馈信号的电路。
7.根据权利要求5所述的随机数生成电路,其特征在于,还具备物理随机数生成电路,其生成物理随机数;和调制电路,其根据由上述线性反馈移位寄存器生成的伪随机数,变化并输出由上述物理随机数生成电路生成的物理随机数。
8.根据权利要求6所述的随机数生成电路,其特征在于,还具备物理随机数生成电路,其生成物理随机数;调制电路,其根据上述线性反馈移位寄存器生成的伪随机数,变化并输出由上述物理随机数生成电路生成的物理随机数。
9.一种随机数生成电路,其特征在于,具备线性反馈移位寄存器,其生成伪随机数序列的伪随机数;多个寄存器,其存储多个伪随机数序列中的各个抽头位置;选择电路,其接收表示使用上述多个伪随机数序列中的任一个伪随机数序列的选择信号,根据该选择信号,选择上述多个寄存器中的任一个,反馈信号生成电路,其根据存储在上述线性反馈移位寄存器中的数据和存储在由上述选择电路选择的寄存器中的抽头位置,生成对上述线性反馈移位寄存器的反馈信号。
10.根据权利要求9所述的随机数生成电路,其特征在于,上述寄存器,以与上述线性反馈移位寄存器同样位数构成,在对应伪随机数序列抽头位置的位中存储一个逻辑值,对应抽头位置的位以外的位中存储其他的逻辑值,上述反馈信号生成电路具备对上述线性反馈移位寄存器的各位和由上述选择电路选择的寄存器的各位进行逻辑与运算的电路;通过对由该逻辑与得到的数据进行异或逻辑运算,生成上述反馈信号的电路。
11.根据权利要求9所述的随机数生成电路,其特征在于,还具备生成物理随机数的物理随机数生成电路,上述选择信号是由上述物理随机数生成电路生成的物理随机数。
12.根据权利要求10所述的随机数生成电路,其特征在于,还具备生成物理随机数的物理随机数生成电路,上述选择信号是由上述物理随机数生成电路生成的物理随机数。
全文摘要
一种随机数生成电路,具备生成M序列伪随机数的伪随机数生成电路;生成物理随机数的物理随机数生成电路;以及使用由上述伪随机数生成电路生成的伪随机数,调制由上述物理随机数生成电路生成的物理随机数的调制电路。另外,上述伪随机数生成电路可以生成多个M序列伪随机数,根据由上述物理随机数生成电路生成的物理随机数,切换上述伪随机数生成电路生成的M序列。从而,生成安全、预测困难的随机数。
文档编号G09C1/00GK1815527SQ20061000450
公开日2006年8月9日 申请日期2006年1月25日 优先权日2005年2月3日
发明者池谷昭, 石村静, 千明一雅 申请人:三洋电机株式会社
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1