专利名称:伪随机数生成装置以及伪随机数生成程序的制作方法
技术领域:
本发明涉及,生成密码通信中所使用的伪随机数的伪随机数生成装置以及伪随机数生成程序。
背景技术:
现在,在电话或无线、因特网等的数据通信中,为防止第三者对所通信的数据进行窃听或篡改而进行数据的加密。在数据的发送端,使用加密密钥对发送的数据进行加密后发送,在接收端,当接收到该加密了的数据时,使用解密密钥进行解密来得到数据。如果此时,即使第三者监听数据,由于没有正确的解密密钥,也无法对加密了数据进行解密,另外也无法进行有预谋的数据篡改。
在这样的加密方式中,有公共密钥加密方式和公开密钥加密方式,有效利用各自的特征,根据所使用的条件进行选择。我们知道一种方法不论哪种方式,都通过加密密钥来保障所通信的数据的安全性,为了使该加密密钥不易被推测而使用伪随机数。
例如,在基于线性反馈移位寄存器的伪随机数的生成方法中,可以根据用于随机数生成的比较短的初始值,来生成数据长度较长的伪随机数序列,因此,当在多个装置中要生成相同的伪随机数时,仅共享初始值便可。另外已知,一般地,通过将以满足特定的条件的原始多项式作为特征多项式的多个线性反馈移位寄存器进行组合,可以实现所生成的伪随机数的预测困难的伪随机数生成装置。而且,即使不共享初始值,通过共享多个线性反馈移位寄存器的选择信息,也可以生成相同的伪随机数序列(例如,参照特开平10-91066号公报)。
但是,在使用线性反馈移位寄存器的伪随机数生成装置中,即使是例如组合了非线性处理的方法,也通过某种特定的算法生成伪随机数,因此,有可能根据初始值或生成的伪随机数序列的一部分,推测出此后生成的伪随机数。
另外,在从多个线性反馈移位寄存器中选择若干寄存器,生成伪随机数的情况下,生成的伪随机数序列的推测变得困难,然而当将以任意的系数作为特征多项式的线性反馈移位寄存器进行组合时,生成的伪随机数序列未必是M序列(Maximum length sequences),存在以较短的周期重复生成相同的伪随机数序列的问题,因此需要预先从大量准备好的多项式中选择满足特定条件的多项式并组合。这在实际的处理中,需要安装不总使用的线性反馈移位寄存器,效率不高。
发明内容
本发明的目的在于,提供伪随机数生成装置以及伪随机数生成程序,它们适用于,即使观测生成的伪随机数序列或收发的数据,也难以推测其后生成的伪随机数序列的密码通信。
为达到上述目的,第1形态的发明提供一种生成规定位长的伪随机数序列的伪随机数生成装置,其主旨是,具备第1线性反馈移位寄存器,其具有m段的移位寄存器,输出规定位长的位串;第2线性反馈移位寄存器,其具有n段的移位寄存器,输出规定位长的位串;初始值生成部,其按照规定条件,生成构成所述第1线性反馈移位寄存器以及所述第2线性反馈移位寄存器的各移位寄存器的初始值,将各个该初始值提供给所述第1线性反馈移位寄存器和所述第2线性反馈移位寄存器;多项式系数生成部,其按照规定的条件,生成所述第2线性反馈移位寄存器的特征多项式的系数,并提供给所述第2线性反馈移位寄存器;原始多项式存储部,作为所述第1线性反馈移位寄存器的特征多项式,将原始多项式和指定所述原始多项式的识别信息一起存储多个;原始多项式选择部,其按照规定的条件,选择一个所述原始多项式存储部中存储的原始多项式,将该原始多项式的系数作为特征多项式的系数,提供给所述第1线性反馈移位寄存器;伪随机数输出部,其根据从所述第1线性反馈移位寄存器输出的位串和从所述第2线性反馈移位寄存器输出的位串,通过各位的逻辑运算生成规定位长的伪随机数序列,并输出。
另外,第2形态的发明的主旨是,在第1形态的发明中,所述伪随机数生成装置具有通信部,其生成由通过所述原始多项式选择部所选择的所述原始多项式的识别信息、通过所述初始值生成部生成的构成所述第1线性反馈移位寄存器以及所述第2线性反馈移位寄存器的各移位寄存器的初始值、通过所述多项式系数生成部生成的所述特征多项式的系数来构成的原始数据,将该原始数据发送到其它伪随机数生成装置,当从其它伪随机数生成装置接收到该原始数据时,从该原始数据中提取出所述第1反馈移位寄存器以及所述第2反馈移位寄存器的各初始值,并提供给所述第1线性反馈移位寄存器和所述第2线性反馈移位寄存器,从该原始数据中提取出所述特征多项式的系数,并提供给所述第2线性反馈移位寄存器,从该原始数据中提取出所述原始多项式的识别信息,并提供给所述原始多项式选择部。所述原始多项式选择部根据通过所述通信部提取出的所述识别信息,选择一个在所述原始多项式存储部中存储的原始多项式,将该原始多项式的系数提供给所述第1线性反馈移位寄存器。
另外,为达到上述目的,第3形态的发明提供一种生成规定位长的伪随机数序列的、由计算机执行的伪随机数生成程序,其主旨是,该伪随机数生成程序使所述计算机行使以下单元的功能第1线性反馈移位寄存器,其具有m段的移位寄存器,输出规定位长的位串;第2线性反馈移位寄存器,其具有n段的移位寄存器,输出规定位长的位串;初始值生成单元,其按照规定条件,生成构成所述第1线性反馈移位寄存器以及所述第2线性反馈移位寄存器的各移位寄存器的初始值,将各个该初始值提供给所述第1线性反馈移位寄存器和所述第2线性反馈移位寄存器;多项式系数生成单元,其按照规定的条件,生成所述第2线性反馈移位寄存器的特征多项式的系数,并提供给所述第2线性反馈移位寄存器;原始多项式存储单元,作为所述第1线性反馈移位寄存器的特征多项式,将原始多项式和指定所述原始多项式的识别信息一起存储多个;原始多项式选择单元,其按照规定的条件,选择一个所述原始多项式存储单元中存储的原始多项式,将该原始多项式的系数作为特征多项式的系数,提供给所述第1线性反馈移位寄存器;伪随机数输出单元,其根据从所述第1线性移反馈位寄存器输出的位串和从所述第2线性反馈移位寄存器输出的位串,通过各位的逻辑运算生成规定位长的伪随机数序列,并输出。
另外,第4形态的发明的主旨是,在第3形态的发明中,所述伪随机数生成程序使所述计算机还作为以下这样的通信单元来行使功能生成由通过所述原始多项式选择单元所选择的所述原始多项式的识别信息、通过所述初始值生成单元所生成的构成所述第1线性反馈移位寄存器以及所述第2线性反馈移位寄存器的各移位寄存器的初始值、通过所述多项式系数生成单元所生成的所述特征多项式的系数来构成的原始数据,将该原始数据发送至其它伪随机数生成装置,当从其它伪随机数生成装置接收到该原始数据时,从该原始数据中提取出所述第1线性反馈移位寄存器以及所述第2线性反馈移位寄存器的各初始值,并提供给所述第1线性反馈移位寄存器和所述第2线性反馈移位寄存器,从该原始数据中提取出所述特征多项式的系数,并提供给所述第2线性反馈移位寄存器,从该原始数据中提取出所述原始多项式的识别信息,并提供给所述原始多项式选择单元。所述原始多项式选择单元根据通过所述通信单元提取出的所述识别信息,选择一个在所述原始多项式存储单元中存储的原始多项式,将该原始多项式的系数提供给所述第1线性反馈移位寄存器。
图1是表示第1实施方式中的伪随机数生成装置的功能结构的图。
图2是表示第1线性反馈移位寄存器的电路结构的图。
图3是表示第2线性反馈移位寄存器的电路结构的图。
图4是表示第1实施方式中的伪随机数生成的处理的流程图。
图5是表示第1线性反馈移位寄存器和第2线性反馈移位寄存器的值的迁移的图。
图6是表示第2实施方式中的伪随机数生成装置的功能结构的图。
图7是表示第2实施方式中的伪随机数生成的处理的流程图。
图8是表示第3实施方式中的伪随机数生成装置的功能结构的图。
图9是表示第3实施方式中的伪随机数生成的处理的流程图。
具体实施例方式
使用图1~图9,对本发明的实施方式进行说明。此外,设伪随机数生成装置1所生成的伪随机数的位长为h+1。
(第1实施方式)如图1所示,第1实施方式中的伪随机数生成装置1A具有第1线性反馈移位寄存器2、第2线性反馈移位寄存器3、初始值生成部4、多项式系数生成部5以及伪随机数输出部6。
第1线性反馈移位寄存器2是m次的线性反馈移位寄存器,具有m个触发电路(后面详细描述)。另外,第2线性反馈移位寄存器3是n次的线性反馈移位寄存器,具有n个触发电路(后面详细描述)。
初始值生成部4具有如下功能根据从外部输入的初始信息或预先确定的规定条件、例如使用日期时间信息那样的总是变化的信息或热噪声等物理现象而得到的条件,生成构成第1线性反馈移位寄存器2的各触发器的初始值ia(iam-1,iam-2,…,ia1,ia0),并提供给第1线性反馈移位寄存器2;生成构成第2线性反馈移位寄存器3的各触发器的初始值ib(ibn-1,ibn-2,…,ib1,ib0),并提供给第2线性反馈移位寄存器3。其中,为了使来自第1线性反馈移位寄存器2的输出不总是“0”,将初始值iam-1至ia0中的至少任意一个的值设为“1”,同样地,将初始值ibn-1至ib0中至少任意一个的值设为“1”。
另外,多项式系数生成部5具有如下功能根据从外部输入的初始信息或预定的规定条件、例如使用日期时间信息那样的总是变化的信息或热噪声等物理现象而得到的条件,生成第2线性反馈移位寄存器3的特征多项式的系数s(sn-1,sn-2,…,s2,s1),并提供给第2线性反馈移位寄存器3。
另外,伪随机数输出部6具有如下功能根据从第1线性反馈移位寄存器2顺次输出的位串ra(ra0,ra1,…,rah-1,rah)、从第2线性反馈移位寄存器3顺次输出的位串rb(rb0,rb1,…,rbh-1,rbh),求得各位的异或运算结果,生成规定的位长的伪随机数r(r0,r1,…,rh-1,rh)并输出。
如图2所示,第1线性反馈移位寄存器2由m个触发电路和AND电路、以及XOR电路构成。该第1线性反馈移位寄存器2的特征多项式,是预先确定的原始多项式amxm+am-1xm-1+am-2xm-2+…+a2x2+a1x+a0(其中,am=1且a0=1),分别在各AND电路中设定原始多项式的系数a(am-1,…,a1)。
因此,ai=0(0<i<m)时,与从触发器FAi-1(0<i<m)输出的值无关地,从AND电路输出“0”,ai=1(0<i<m)时,从触发器FAi-1(0<i<m)输出的值被输出。
如图3所示,第2线性反馈移位寄存器3由n个触发电路和AND电路、以及XOR电路构成。当设该第2线性反馈移位寄存器3的特征多项式为bnxn+bn-1xn-1+bn-2xn-2+…+b2x2+b1x+b0时,在各个AND电路中设定特征多项式的系数b(bn-1,…,b1=系数s)。
因此,bj=0(0<j<n)时,与从触发器FBj-1(0<j<n)输出的值无关地,从AND电路输出“0”,bj=1(0<j<n)时,从触发器FBj-1(0<j<n)输出的值被输出。
接下来,根据图4的流程图,对伪随机数生成装置1A的动作进行说明。
当伪随机数生成装置1A开始伪随机数生成的处理时,首先,初始值生成部4根据从外部输入的初始信息或预先确定的规定的条件,生成初始值ia(iam-1,iam-2,…,ia1,ia0)和初始值ib(ibn-1,ibn-2,…,ib1,ib0)(步骤S01),将各个初始值提供给第1线性反馈移位寄存器2和第2线性反馈移位寄存器3。
另外,多项式系数生成部5根据从外部输入的初始信息或预先确定的规定的条件,生成第2线性反馈移位寄存器3的特征多项式的系数s(sn-1,sn-2,…,s2,s1)(步骤S02),并提供给第2线性反馈移位寄存器3。
第1线性反馈移位寄存器2和第2线性反馈移位寄存器3,当从初始值生成部4和多项式系数生成部5提供各初始值和系数时,在各触发电路和AND电路中设定各初始值和系数,将对输出位数进行计数的计数器k的值设定为k=0(步骤S03)。在第1线性反馈移位寄存器2的各触发电路FAm-1,FAm-2,…,FA1,FA0中,设定初始值ia(iam-1,iam-2,…,ia1,ia0),在各AND电路中设定原始多项式的系数a(am-1,…,a1)。另外,在第2线性反馈移位寄存器3的各触发电路FBn-1,FBn-2,…,FB1,FB0中,设定初始值ib(ibn-1,ibn-2,…,ib1,ib0),在各AND电路中,设定特征多项式的系数s(sn-1,sn-2,…,s2,s1)。此外,虽然图3的第2线性反馈移位寄存器3中bn=1且b0=1,但对bn以及b0,也可以设置AND电路,以使和其它系数相同地设定任意值。
接下来,当将时钟信号输入第1线性反馈移位寄存器2时(步骤S04),第1线性反馈移位寄存器2进行运算,输出位rak(步骤S05)。同样地,当将时钟信号输入第2线性反馈移位寄存器3时(步骤S06),第2线性反馈移位寄存器3进行运算,输出位rbk(步骤S07)。
伪随机数输出部6,当从第1线性反馈移位寄存器2输出位rak、从第2线性反馈移位寄存器3输出位rbk时,求出两位值的异或值,生成位rk(步骤S08)。
接下来,第1线性反馈移位寄存器2和第2线性反馈移位寄存器3,将计数器k的值增加1(k←k+1)(步骤S09),判断计数器k的值是否超过h的值(步骤S10)。当计数器k的值小于等于h时,第1线性反馈移位寄存器2返回步骤S04,输出位rak+1,第2线性反馈移位寄存器3返回步骤S06,输出位rbk+1,伪随机数初始部6生成位rk+1。
在计数器k的值大于h的情况下,伪随机数生成装置1结束伪随机数生成处理,将至此生成的位r0,r1,…,rh-1,rh作为伪随机数r(r0,r1,…,rh-1,rh)输出(步骤S11)。
在此,使用图5进行具体说明。作为一例,设输出8位的伪随机数r,设第1线性反馈移位寄存器2的原始多项式为x7+x3+1,将第1线性反馈移位寄存器2的触发电路做成7段结构,设初始值ia(ia6,ia5,…,ia1,ia0)=(1,0,1,0,1,0,1),将第2线性反馈移位寄存器3的触发电路做成8段结构,设初始值ib(ib7,ib6,…,ib1,ib0)=(1,1,1,1,0,0,0,0),设第2线性反馈移位寄存器3的特征多项式的系数s(s7,s6,…,s2,s1)=(0,1,1,1,0,1,1)。
首先,当输入第1次的时钟信号时,在第1线性反馈移位寄存器2中,FA0→FA1、FA1→FA2、…、FA5→FA6这样地进行移位,成为(FA6,FA5,FA4,FA3,FA2,FA1)=(0,1,0,1,0,1)。由于第1线性反馈移位寄存器2的原始多项式为x7+x3+1,所以将FA6的位“1”与从FA2向FA3输出的位“1”的异或值“0”向FA0反馈,成为图5的+1的状态,第1线性反馈移位寄存器2将“0”作为ra0输出。
另外,当输入第1次的时钟信号时,在第2线性反馈移位寄存器3中,FB0→FB1、FB1→FB2、…、FB6→FB7这样地进行移位,成为(FB7,FB6,FB5,FB4,FB3,FB2,FB1)=(1,1,1,0,0,0,0)。根据特征多项式的系数s(s7,s6,…,s2,s1)=(0,1,1,1,0,1,1),特征多项式为x8+x6+x5+x4+x2+x+1,所以将从FB5向FB6输出的位“1”、和从FB3向FB4输出的位“0”、和从FB1向FB2输出的位“0”、和从FB0向FB1输出的位“0”的异或值“1”反馈到FB0,成为图5的+1的状态,第2线性反馈移位寄存器3将“1”作为rb0输出。
当输入第2次的时钟信号时,第1线性反馈移位寄存器2以及第2线性反馈移位寄存器3,同样地进行移位,根据原始多项式和特征多项式进行反馈,成为图5的+2的状态,分别输出ra1=0以及rb1=1。
通过这样重复运算,从第1线性反馈移位寄存器2输出(ra0,ra1,…,ra6,ra7)=(0,0,0,0,1,0,1,1),从第2线性反馈移位寄存器3输出(rb0,rb1,…,rb6,rb7)=(1,1,1,1,1,0,0,1),根据(ra0,ra1,…,ra6,ra7)=(0,0,0,0,1,0,1,1)和(rb0,rb1,…,rb6,rb7)=(1,1,1,1,1,0,0,1)的异或值,输出伪随机数r(r0,r1,…,r6,r7)=(1,1,1,1,0,0,1,0)。
(第2实施方式)如图6所示,第2实施方式中的伪随机数生成装置1B具有第1线性反馈移位寄存器2、第2线性反馈移位寄存器3、初始值生成部4、多项式系数生成部5、伪随机数输出部6、原始多项式选择部7以及原始多项式存储部8。此外,对于与第1实施方式相同的部分标记相同的号码,省略其详细说明。
原始多项式选择部7具有以下功能根据从外部输入的初始信息,选择一个在原始多项式存储部8中存储的原始多项式,作为特征多项式,将该原始多项式的系数a(am-1,…,a1)提供给第1线性反馈移位寄存器2。
原始多项式存储部8,将用于设定第1线性反馈移位寄存器2的各AND电路的原始多项式,和识别信息一起存储多个。此外,作为指定原始多项式的识别信息,可以使用号码。以下称为识别号码。通过该识别号码,可以通过比原始多项式的系数少的信息量设定各AND电路,例如,如图6所示,当位长为2位时,原始多项式存储部8存储识别号码No.“00”为x7+x3+1、识别号码No.“01”为x7+x3+x2+x+1、识别号码No.“10”为x7+x4+x3+x2+1、识别号码No.“11”为x7+x6+x5+x4+x2+x+1这样的原始多项式。
接下来,根据图7的流程图,对伪随机数生成装置1B的动作进行说明。
当伪随机数生成装置1B开始伪随机数生成的处理时,首先,原始多项式选择部7根据从外部输入的初始信息,从原始多项式存储部8选择一个原始多项式(步骤S21),将该选择了的原始多项式的系数作为特征多项式的系数a(am-1,…,a1),提供给第1线性反馈移位寄存器2。
另外,初始值生成部4根据从外部输入的初始信息、或预先确定的规定条件,生成初始值ia(iam-1,iam-2,…,ia1,ia0)和初始值ib(ibn-1,ibn-2,…,ib1,ib0)(步骤S22),将各个初始值提供给第1线性反馈移位寄存器2和第2线性反馈移位寄存器3。
另外,多项式系数生成部5根据从外部输入的初始信息、或预先确定的规定条件,生成第2线性反馈移位寄存器3的特征多项式的系数s(sn-1,sn-2,…,s2,s1)(步骤S23),提供给第2线性反馈移位寄存器3。
第1线性反馈移位寄存器2和第2线性反馈移位寄存器3,当从原始多项式选择部7、初始值生成部4、以及多项式系数生成部5提供各初始值和系数时,在各触发电路和AND电路中设定各初始值和系数,将对输出位数进行计数的计数器k的值设定为k=0(步骤S24)。在第1线性反馈移位寄存器2的各触发电路FAm-1,FAm-2,…,FA1,FA0中,设定初始值ia(iam-1,iam-2,…,ia1,ia0),在各AND电路中,设定由原始多项式选择部7提供的特征多项式的系数a(am-1,…,a1)。另外,在第2线性反馈移位寄存器3的各触发电路FBn-1,FBn-2,…,FB1,FB0中,设定初始值ib(ibn-1,ibn-2,…,ib1,ib0),在各AND电路中设定特征多项式的系数s(sn-1,sn-2,…,s2,s1)。此外,在图3的第2线性反馈移位寄存器3中,bn=1、b0=1,但是,也可以对于bn以及b0设置AND电路,以使和其它的系数同样地设定任意的值。
此后,进行和第1实施方式(步骤S04~步骤S11)相同的处理,输出伪随机数r(r0,r1,…,rh-1,rh)(步骤S25~步骤S32)。
(第3实施方式)作为第3实施方式,表示伪随机数生成装置1C在两个伪随机数生成装置、例如设置在发送装置侧的伪随机数生成装置1和设置在接收装置侧的伪随机数生成装置1中共享特征多项式的系数和初始值(原始数据),生成相同的伪随机数。
如图8所示,第3实施方式中的伪随机数生成装置1C具有第1线性反馈移位寄存器2、第2线性反馈移位寄存器3、初始值生成部4、多项式系数生成部5、伪随机数输出部6、原始多项式选择部7、原始多项式存储部8以及通信部9。此外,对于与第1实施方式以及第2实施方式相同的部分,标记相同的号码,省略其详细说明。另外,为方便起见,对原始数据发送端的伪随机数生成装置1的构成要件标记文字“t”,对原始数据接收端的伪随机数生成装置1的构成要件标记文字“r”。
通信部9具有以下功能根据原始多项式选择部7所选择的原始多项式的识别号码、初始值生成部4所生成的初始值ia(iam-1,iam-2,…,ia1,ia0)以及初始值ib(ibn-1,ibn-2,…,ib1,ib0)、多项式系数生成部5所生成的特征多项式的系数s(sn-1,sn-2,…,s2,s1),生成由原始多项式的识别号码、特征多项式的系数的初始值以及各初始值的各位串构成的原始数据;在和其它伪随机数生成装置1之间对该原始数据进行收发。
另外,通信部9具有以下功能在接收到原始数据的情况下,从原始数据中提取出初始值ib(ibn-1,ibn-2,…,ib1,ib0)和特征多项式的系数s(sn-1,sn-2,…,s2,s1),提供给第2线性反馈移位寄存器3;从原始数据中提取出初始值ia(iam-1,iam-2,…,ia1,ia0),提供给第1线性反馈移位寄存器2;从原始数据中提取出原始多项式的识别号码,提供给原始多项式选择部7。
接下来,根据图9的流程图,对两个伪随机数生成装置1C中,生成相同的伪随机数时的动作进行说明。
当伪随机数生成装置1Ct开始伪随机数生成的处理时,首先,原始多项式选择部7t根据从外部输入的初始信息,从原始多项式存储部8t选择一个原始多项式(步骤S41),将该选择的原始多项式的系数作为特征多项式的系数a(am-1,…,a1),提供给第1线性反馈移位寄存器2t,同时向通信部9t提供原始多项式的识别号码。
另外,初始值生成部4t根据从外部输入的初始信息或预先确定的规定的条件,生成初始值ia(iam-1,iam-2,…,ia1,ia0)和初始值ib(ibn-1,ibn-2,…,ib1,ib0)(步骤S42),将各个初始值提供给第1线性反馈移位寄存器2t,第2线性反馈移位寄存器3t以及通信部9t。
另外,多项式系数生成部5t根据从外部输入的初始信息或预先确定的规定条件,生成第2线性反馈移位寄存器3t的特征多项式的系数s(sn-1,sn-2,…,s2,s1)(步骤S43),提供给第2线性反馈移位寄存器3t和通信部9t。
第1线性反馈移位寄存器2t和第2线性反馈移位寄存器3t,当从原始多项式选择部7t、初始值生成部4t以及多项式系数生成部5t提供各初始值和系数时,在各触发电路和AND电路中设定各初始值和系数,将对输出位数进行计数的计数器k的值设定为k=0(步骤S44)。在第1线性反馈移位寄存器2t的各触发电路FAm-1,FAm-2,…,FA1,FA0中,设定初始值ia(iam-1,iam-2,…,ia1,ia0),在各AND电路中设定从原始多项式选择部7t提供的特征多项式的系数a(am-1,…,a1)。另外,在第2线性反馈移位寄存器3t的各触发电路FBn-1,FBn-2,…,FB1,FB0中,设定初始值ib(ibn-1,ibn-2,…,ib1,ib0)。在各AND电路中,设定特征多项式的系数s(sn-1,sn-2,…,s2,s1)。此外,在图3的第2线性反馈移位寄存器3t中,bn=1、b0=1,但是也可以对bn、b0设置AND电路,以使和其它系数相同地设定任意的值。
另外,通信部9t生成由原始多项式的识别号码、特征多项式的系数以及各初始值的各个位值构成的原始数据,发送到伪随机数生成装置1Cr(步骤S45)。此时,通信部9t也可以通过规定的加密方式对原始数据加密并发送。
例如,在原始多项式的识别号码为2位(“10”)、初始值ia为7位(“1010101”)、初始值ib为8位(“11110000”)、特征多项式的系数s为7位(“0111011”)的情况下,原始数据成为24位的数据序列(识别号码|初始值ia|初始值ib|系数s)=(101010101111100000111011)。
此后,伪随机数生成装置1Ct进行和第1实施方式(步骤S04~步骤S11)相同的处理,输出伪随机数r(r0,r1,…,rh-1,rh)(步骤S46~步骤S51)。
另一方面,伪随机数生成装置1Cr的通信部9r,当从伪随机数生成装置1Ct接收到原始数据时(步骤S52),从原始数据提取出初始值ib(ibn-1,ibn-2,…,ib1,ib0)和特征多项式的系数s(sn-1,sn-2,…,s2,s1),提供给第2线性反馈移位寄存器3r,从原始数据中提取出初始值ia(iam-1,iam-2,…,ia1,ia0),提供给第1线性反馈移位寄存器2r,从原始数据中提取出原始多项式的识别号码,提供给原始多项式选择部7r。此外,在接收到的原始数据已被加密的情况下,通信部9进行解密,得到原始数据。
原始多项式选择部7r,当提供原始多项式的识别号码时,从原始多项式存储部8r选择一个对应于该识别号码的原始多项式(步骤S53),将该选择了的原始多项式的系数作为特征多项式的系数a(am-1,…,a1),提供给第1线性反馈移位寄存器2r。
另外,第1线性反馈移位寄存器2r和第2线性反馈移位寄存器3r,当从原始多项式选择部7r以及通信部9r提供各初始值和各系数时,在各触发电路和AND电路中设定各初始值和系数,将对输出位数进行计数的计数器k的值设定为k=0(步骤S54)。
此后,伪随机数生成装置1Cr进行和第1实施方式(步骤S04~步骤S11)相同的处理,输出伪随机数r(r0,r1,…,rh-1,rh)(步骤S55~步骤S60)。
这样,通过在两个伪随机数生成装置1中共享原始数据,可以生成相同的伪随机数。
此外,伪随机数生成装置1,也可以通过使通用计算机执行记述了上述功能的伪随机数生成程序来实现。该伪随机数生成程序,可以从存储介质读取,并使通用计算机执行,也可以通过网络从外部传送并使通用计算机执行。
产业上的可应用性根据本发明,始终可以生成比规定的M序列长的周期的伪随机数序列,不仅可以任意设定初始值,还可以任意设定特征多项式的系数,因此,即使观测生成的伪随机数序列,也难以推测其后生成的伪随机数序列,可以确保生成的伪随机数序列的安全性,保障所通信的数据的安全性。若不知道识别信息和原始多项式的对应,则难以对所通信的数据进行译码。
另外,在作为第1线性反馈移位寄存器的特征多项式而设定的原始多项式的选择中,通过使用其识别信息,可以通过比收发系数更少的数据量实现。即,若将识别信息做成比原始多项式少的信息量,则可以减少信息量。
权利要求
1.一种伪随机数生成装置(1),其生成规定的位长的伪随机数序列,其特征在于,具备第1线性反馈移位寄存器(2),其具有m段的移位寄存器,输出规定的位长的位串;第2线性反馈移位寄存器(3),其具有n段的移位寄存器,输出规定的位长的位串;初始值生成部(4),其根据规定的条件,生成构成所述第1线性反馈移位寄存器(2)以及所述第2线性反馈移位寄存器(3)的各移位寄存器的初始值,将各个该初始值提供给所述第1线性反馈移位寄存器(2)以及所述第2线性反馈移位寄存器(3);多项式系数生成部(5),其根据规定的条件,生成所述第2线性反馈移位寄存器(3)的特征多项式的系数,并提供给所述第2线性反馈移位寄存器(3);原始多项式存储部(8),作为所述第1线性反馈移位寄存器(2)的特征多项式,将原始多项式和指定所述原始多项式的识别信息一起存储多个;原始多项式选择部(7),其根据规定的条件,选择一个在所述原始多项式存储部(8)中存储的原始多项式,将该原始多项式的系数作为特征多项式的系数,提供给所述第1线性反馈移位寄存器(2);伪随机数输出部(6),其根据从所述第1线性反馈移位寄存器(2)输出的位串、和从所述第2线性反馈移位寄存器(3)输出的位串,通过各位的逻辑运算生成规定的位长的伪随机数序列,并输出。
2.根据权利要求1所述的伪随机数生成装置,其特征在于,所述伪随机数生成装置(1C)具有通信部(9),其生成由通过所述原始多项式选择部(7)所选择的所述原始多项式的识别信息、通过所述初始值生成部(4)生成的构成所述第1线性反馈移位寄存器(2)以及所述第2线性反馈移位寄存器(3)的各移位寄存器的初始值、通过所述多项式系数生成部(5)生成的所述特征多项式的系数来构成的原始数据,将该原始数据发送到其它伪随机数生成装置(1C),当从其它伪随机数生成装置(1C)接收到该原始数据时,从该原始数据中提取出所述第1反馈移位寄存器(2)以及所述第2反馈移位寄存器(3)的各初始值,并提供给所述第1线性反馈移位寄存器(2)和所述第2线性反馈移位寄存器(3),从该原始数据中提取出所述特征多项式的系数,并提供给所述第2线性反馈移位寄存器(3),从该原始数据中提取出所述原始多项式的识别信息,并提供给所述原始多项式选择部(7);所述原始多项式选择部(7)根据通过所述通信部(9)提取出的所述识别信息,选择一个在所述原始多项式存储部(8)中存储的原始多项式,将该原始多项式的系数提供给所述第1线性反馈移位寄存器(2)。
3.一种生成规定的位长的伪随机数序列的、通过计算机来执行的伪随机数生成程序,其特征在于,该伪随机数生成程序使所述计算机行使以下单元的功能第1线性反馈移位寄存器,其具有m段的移位寄存器,输出规定的位长的位串;第2线性反馈移位寄存器,其具有n段的移位寄存器,输出规定的位长的位串;初始值生成单元,其根据规定的条件,生成构成所述第1线性反馈移位寄存器以及所述第2线性反馈移位寄存器的各移位寄存器的初始值,将各个该初始值提供给所述第1线性反馈移位寄存器和所述第2线性反馈移位寄存器;多项式系数生成单元,其根据规定的条件,生成所述第2线性反馈移位寄存器的特征多项式的系数,并提供给所述第2线性反馈移位寄存器;原始多项式存储单元,作为所述第1线性反馈移位寄存器的特征多项式,将原始多项式和指定所述原始多项式的识别信息一起存储多个;原始多项式选择单元,其根据规定的条件,选择一个存储在所述原始多项式存储单元中的原始多项式,将该原始多项式的系数作为特征多项式的系数,提供给所述第1线性反馈移位寄存器;伪随机数输出单元,其根据从所述第1线性反馈移位寄存器输出的位串和从所述第2线性反馈移位寄存器输出的位串,通过各位的逻辑运算生成规定的位长的伪随机数序列,并输出。
4.根据权利要求3所述的伪随机数生成程序,其特征在于,所述伪随机数生成程序使所述计算机行使下述通信单元的功能该通信单元,生成由通过所述原始多项式选择单元选择的所述原始多项式的识别信息、通过所述初始值生成单元生成的构成所述第1线性反馈移位寄存器以及所述第2线性反馈移位寄存器的各移位寄存器的初始值、通过所述多项式系数生成单元生成的所述特征多项式的系数来构成的原始数据,并将该原始数据发送到其它伪随机数生成装置,当从其它伪随机数生成装置接收到该原始数据时,从该原始数据中提取出所述第1反馈移位寄存器以及所述第2反馈移位寄存器的各初始值,并提供给所述第1线性反馈移位寄存器和所述第2线性反馈移位寄存器,从该原始数据中提取出所述特征多项式的系数,并提供给所述第2线性反馈移位寄存器,从该原始数据中提取出所述原始多项式的识别信息,并提供给所述原始多项式选择单元;所述原始多项式选择单元根据通过所述通信单元所提取出的所述识别信息,选择一个存储在所述原始多项式存储单元中的原始多项式,将该原始多项式的系数提供给所述第1线性反馈移位寄存器。
全文摘要
伪随机数生成装置(1)具有第1线性反馈移位寄存器(2)、第2线性反馈移位寄存器(3)、初始值生成部(4)、多项式系数生成部(5)以及伪随机数输出部(6)。初始值生成部(4)生成初始值并提供给第1线性反馈移位寄存器(2)和第2线性反馈移位寄存器(3)。多项式系数生成部(5)生成特征多项式的系数,并提供给第2线性反馈移位寄存器(3)。伪随机数输出部(6),基于从第1线性反馈移位寄存器(2)和第2线性反馈移位寄存器(3)顺次输出的位串,通过各位的异或运算生成伪随机数序列,并输出。
文档编号H03K3/00GK1914590SQ20058000353
公开日2007年2月14日 申请日期2005年1月28日 优先权日2004年1月30日
发明者猪羽涉, 日暮诚司 申请人:日本胜利株式会社