伪随机数产生电路及其在数据通信系统的应用 本发明涉及使用线性反馈移位寄存器(此后称为LFSR)的伪随机数产生电路以及此电路在数据通信系统的应用,特别涉及能产生无规则随机数周期的伪随机数产生电路以及此电路在数据通信系统的应用。
按照保密的观点,迄今已在数据通信系统中利用了使用随机数的密码规则系统。作为在密码规则系统中所用的随机数,由于伪随机数要比真随机数更易于掌握和更便于处理,因而更为经常的是和软件的方法简易地产生伪随机数。
至于用于产生伪随机数的伪随机产生电路,人所共知的是使用LFSR的电路。一个LFSR包括多个串连的寄存器和一个“异-或”电路。多个寄存器中有两个指定寄存器的输出信号被接至异-或电路地输入结点,而异或电路的输出信号则反馈至主导寄存器。并且,有一移位时钟向所有这些寄存器共同输入。借助这种结构,就有可能获得较长周期的伪随机数序列。
例如,由n个寄存器组成的LFSR所产生的伪随机数序列的周期等于n次幂最长线性循环序列(称为M序列),它是2n-1。要注意到这里所定义的周期并非表示的一段时间,而是表示路程数(或长度)的配额,在这些路程中可以认为产生有不同种数的伪随机数。换句话说,同一组的伪随机数将在每一周期中重复产生。
图8中示出用一有7级寄存器的LFSR作为常规伪随机数产生电路50的方框图。在伪随机数产生电路50的组配中第二级寄存器50-2的输出和最后一级寄存器50-7的输出,在串连的7级寄存器50-1至50-7之外与异-或电路52的输入结点相连,而异-或电路52的输出结点则向主导寄存器50-1反馈。有一移位时钟SCK向全部寄存器50-1至50-7共同输入,而LFSR则受SCK的响应驱动。取出寄存器各自的输出B1至B7形成一个伪随机数。
由于是在采用LFSR的伪随机数产生电路的情况下产生的M序列数位串,由7级寄存器组成的LFSR产生127(即27-1)路伪随机数。
然而,当用由伪随机数产生电路50产生的随机数序列作为种子,也就是作为密码本时,对于密码电路来说,就存在一个使码本比较易于译码的几率。例如,在流型密码术中,由二进制明码本序列的异-或运算产生一流码,并由伪随机数产生电路产生二进制伪随机数序列。然而,当伪随机数序列或是伪随机数序列产生逻辑被解译时,就很容易从所得到的密码本重新产生明码本。结果使电路不再有编码电路的功能。
因而就要求伪随机数产生电路要具有能够有效产生不可预料的伪随机数序列的重要功能,使得想用编码电路对所编的码本进行破译的企图难获成功。要产生难以适合简易数据分析的伪随机数序列的最简单方法莫过于增加M序列的次数n(寄存器的数目)。然而,这不过是增大了伪随机数序列的周期,因而不能考虑作为解决此问题的主要办法。于是,为了产生难以用现有方法进行分析的随机数序列,就必需采用非常大数量的寄存器,它导致电路规模的增大。
在日本专利公报平5-327427号中公开了一种用小量寄存器产生伪随机序列的伪随机数产生电路。然而,用这种电路产生的伪随机数序列只不过是有了一个显然增长的周期,而防备易被破译的措施则依然基本保留着未获解决。
因而本发明的一项目的是要提供一种能够产生基本上难以破译的伪随机序列的伪随机数产生电路。
本发明的另一项目的是要提供一种采用产生基本上难以破译的伪随机数序列的伪随机数产生电路的数据通信系统。
本发明的伪随机数产生电路装备有一个产生选择信号的选择信号产生电路、一个产生具有互不相同频率的多个时钟信号的时钟产生电路、一个对选择信号作出响应选择一个时钟信号的选择电路、一个包含有多个串连的第一寄存器电路并对由所述选择电路所选的选择时钟信号作出响应进行移位运行的第一移位寄存器电路、一个接收多个第一寄存器电路中的两个输出信号的第一异-或电路、将第一异-或电路的输出信号送往第一移位寄存器电路中的第一级的装置以及提取第一寄存器电路中至少一部分存数的装置。
此外,本发明的数据通信系统装备有分别产生第一和第二密码本的第一和第二密码本产生电路、一个根据第一密码本将原始数据编制成编码数据的编码电路以及一个根据第二密码本将编码数据破译成译码数据的译码电路,第一密码本产生电路包括一个产生第一伪随机数的第一伪随机数产生电路、一个根据第一伪随机数产生第一时钟信号的第一时钟产生器、一个对第一时钟信号响应产生第二伪随机数的第二伪随机数产生电路以及将第二伪随机数送至作为第一密码本的编码电路的装置,第二密码本产生电路包括一个产生第三伪随机数的第三伪随机数产生电路、一个根据第三伪随机数产生第二时钟信号的第二时钟产生器、一个对第二时钟信号响应产生第四伪随机数的第四伪随机数产生电路以及将第四伪随机数送至作为第二密码本的译码电路的装置。
从以下结合附图所作的说明将会更加明显见到本发明的上述以及其它目的、优点和特征,其中:
图1为表示本发明第一实施例的一幅伪随机数产生电路2的方框图;
图2为一幅表示利用图1中的伪随机数产生电路2的数据通信系统的方框图;
图3为表示伪随机数产生电路2的运行的时卡;
图4为表示本发明第二实施例的伪随机数产生电路30的一幅方框图;
图5为表示伪随机数产生电路30的运行的时卡;
图6为表示本发明第三实施例的伪随机数产生电路40的一幅方框图;
图7为表示伪随机数产生电路40的运行的时卡;以及
图8为表示常规伪随机数产生电路50的一幅方框图。
下面将参照附图对本发明的实施例进行描述。
现在参阅图1,本发明第一实施例的伪随机数产生电路2包括一个时钟产生电路4、一个选择电路6、一个选择信号产生电路8以及一个LFSR10。
时钟产生电路4通过接收一时钟信号CLKO产生频率互不相同的四种时钟信号CLK1至CLK4。这些时钟信号CLK1至CLK4的频率未予特别限定,但被设置成,譬如说,使CLK1的频率为CLK2频率的两倍,CLK2的频率为CLK3频率的两倍,而CLK3的频率则为CLK4频率的两倍。
选择电路6是一个接收时钟信号CLK1至CLK4以及选择信号b1和b2的电路,它根据选择信号b1和b2选择时钟信号CLK1至CLK4中的任一种,并将其作为移位时钟SCK输出。当选择信号b1和b2两者均为“0”(处于低电平)时选择电路6选择时钟信号CLK1,当选择信号b1为“0”而选择信号b2为“1”(处于高电平)时选择时钟信号CLK2,当选择信号b1为“1”,而选择信号b2为“0”时选择时钟信号CLK3,而当选择信号b1和b2两者均为“1”时则选择时钟信号CLK4。
选择信号产生电路8有一如图1中所示的LFSR结构,并由五级寄存器8-1至8-5和一异-或电路12组成。第三级寄存器8-3的输出信号和第五级(最末级)寄存器8-5的输出信号送至异-或电路12的输入结点,而异或电路12的输出信号则送至第一级寄存器8-1。时钟信号CLK4则作为移位时钟共同送至五级寄存器8-1至8-5。寄存器8-1至8-5对时钟信号CLK4作出响应进行移位运行。在该实施例中,选择信号产生电路8是用五级LFSR的结构,但本发明并不限于五级而它可以有,譬如说,七级的结构。而且,在该实施例中,将CLK4用作选择信号产生电路8的移位时钟,但本发明也不是仅限于这种情况,可以用另一时钟作为移位时钟。
LFSR10由七级寄存器10-1至10-7和一个异-或电路14组成。第二级寄存器10-2的输出和第七级(最末级)寄存器10-7的输出送至异-或电路14的输入结点,而异-或电路14的输出信号则送至第一级寄存器10-1。移位时钟SCK则被共同送至七级寄存器10-1至10-7。寄存器10-1至10-7对移位时钟SCK作为响应进行移位运行,而寄存器的输出B1至B7则作为一伪随机数向外输出。LFSR10的结构不受七级的限制,它可以是,譬如说,是九级的。此外,在LFSR10中,异-或电路14的输入端是与第二级寄存器10-2和第七级寄存器10-7的输出结点相连的,但本发明不仅限于这一情况,它可以与只要是产生M序列伪随机数的其它寄存器相连。
而且,有一重置RST共同送至寄存器8-1至8-5以及10-1至10-7。当重置信号RST进至“1”(高电平)时,每一个这些寄存器都起始至“1”(高电平)。起始值并不限于全是“1”的情形,只要无论8-1至8-5或是10-1至10-7的寄存器组不是全为“0”(低电平)的其它任何值均可。
接着,参照图3,将对伪随机数产生电路2的运行进行描述。首先,当重置信号RST处于高电平的期间,无论是选择信号产生电路8还是LFSR10均不进行移位运行,而它们的输出b1和b2,以及B1至B7则固定在它们的起始值(全为“1”)上。由于在此情况下选择信号b1和b2两者均有数值“1”,选择电路6选择时钟信号CLK4并将其作为移位时钟SCK输出。然而寄存器10-1至10-7被上述重置信号RST的高电平初始化,不论移位时钟SCK的情况如何输出B1至B7均保持在全“1”的状态。
随后,当重置信号RST改变成“0”(低电平)时,初始态被解除并启动移位运行。即,选择信号产生电路8对时钟信号CLK4作出响应进行移位运行,而LFSR则对移位时钟SCK作出响应进行移位运行。
作为移位运行的结果,当由选择信号产生电路8输出的选择信号b1和b2改变时,选择电路6的选择也被转换,而且变换了移位时钟SCK的频率。图3中示出了选择信号b1和b2从(1,1)变换到(0,1)的情形,由此使移位时钟SCK的频率从时钟信号CLK4的频率转换到时钟信号CLK2的频率。与此类似,当选择信号b1和b2改变成(1,0)时移位时钟SCK的频率到达时钟信号CLK3的频率,而当选择信号b1和b2改变成(0,0)时移位时钟SCK的频率则达到时钟信号CLK1的频率。
如上所述,在该实施例的伪随机数产生电路2中,取代用单一频率的时钟作为LFSR10的移位时钟,从具有互不相同的多种时钟信号CLK1至CLK4中用选择信号b1和b2进行选择,并根据所选择的时钟信号进行移位运行。由于按此方法移位时钟的频率一会儿就改变,要对根据所产生的伪随机数进行编码的数据进行破译就非常困难。而且,在本实施例的伪随机数产生电路2中,有一由五级LFSR组成的选择信号产生电路8用于产生选择信号b1和b2,这样选择信号自身就是伪随机数,因而选择电路6的选择转换配时本身就是随机地变动。按此方法,要对所产生的伪随机数B1-B7进行分析就更加困难,从而,要对根据这样的伪随机数B1-B7编成密码的数据进行破译是极端困难的。
此外,在该实施例的伪随机数产生电路中,所选择的时钟信号CLK1至CLK4假设为相互同步的信号,但这些信号也可以假设不同步。若是使它们不同步,则要破译所编密码数据就更为困难。
现将采用这种伪随机数产生电路2的数据通信系统示于图2中。数据通信系统包括一个密码编码电路16、一个密码译码电路18、以及伪随机数产生电路2。密码编码电路16将要由发送人发送的明码电文20编译成密码数据22。密码数据22通过电话线或是无线电波传送到密码译码电路18。密码数据22由密码译码电路18破译成译码数据24,送给接收人。译码数据24包含与原始明码电文完全相同的数据。
密码编码电路16和密码译码电路18根据与它们各自对应装配的伪随机数产生电路2所提供的伪随机数B1-B7进行密码的编码和译码。例如,若是明码电文20包括七位数据,密码编码电路16就为七位明码电文数据的每一位以及七位伪随机数B1-B7的每一位产生一异-或数据,并作为一密码的编码数据22将结果输出。在另一方面,密码译码电路18则为七位密码编码数据22的每一位以及七位伪随机数B1-B7的每一位产生一异-或数据,并作为一密码的译码数据将结果输出。
这里,若是为每个密码编码电路16和密码译码电路18所设的伪随机数产生电路2是用相同电路作成的,而且在同一时间解除重置信号RST,则所得到的伪随机数B1-B7就成为相同的,这样就能进行密码的编码和破译。如前所述,由伪随机数产生电路2产生的伪随机数B1-B7具有27-1的周期,但此周期并非单调地重复。也就是,由于第二次的伪随机数B1-B7是根据选择信号b1和b2产生的,它基本上是伪随机数,不仅是伪随机数B1-B7,而且甚至还有它们的配时也出现随机变动。从而,要想用通常的方法对密码数据22进行破译就会遇到极端困难的情形,这意味着数据通信的保密性是能得到保证的。
接着,参照图4,将对本发明第二实施例的伪随机数产生电路30进行描述。
该实施例的伪随机数产生电路30包括九级寄存器,并有一个对移位时钟SCK作出响应进行移位运行的LFSR,以及一个从由一未示出的时钟产生装置输出的时钟CLK1、CLK2、CLK3、和CLK4中选出一个作为移位时钟SCK输出的选择电路6。
LFSR包括与产生的伪随机数B-1-B7的位宽(该实施例中为七)相等数目串连成的寄存器30-3至30-9,余下的寄存器30-1和30-2串连在LFSR的上流一侧,它们的输出将不从外面读出,以及一个异-或电路32,它接收寄存器30-4和30-9的输出信号作为其输入信号并将其输出信号反馈至寄存器30-1作为那里的输入信号。寄存器30-1至30-8的每一输出信号均被连接到下一级寄存器的输入。
选择电路6对余下的寄存器30-1和30-2的输出信号b3和b4进行译码,并根据译码结果从时钟CLK1、CLK2、CLK3、和CLK4中选出一个。在该实施例中将假设为,当余下的寄存器30-1和30-2的输出信号b3和b4两者均为“0”时选出时钟CLK1,当它们为“0”和“1”时选出时钟CLK2,当它们为“1”和“0”时选出时钟CLK3,而当它们两者均为“1”时选出时钟CLK4。
而且,通过输入重置信号RST使各寄存器的每一输出信号均被初始化“1”。经初始化之后解除重置时,在移位时钟SCK的引导边定时进行移位运行。这里,重置信号RST是高度有效的,以致当它为“1”时就启动(重置),而当它为“0”时就截止(解除重置)。
按此方法,寄存器30-3至30-9的数值B1至B7作为七位宽度的伪随机数读出。为了避免当连续完成伪随机数的读出时读出同一数的情形,最好将时钟CLK1至CLK4的频率设置在最高读出频率值的两倍或者更高。
接着,将在表1中示出的余下的寄存器30-1和30-2以及寄存器30-3至30-9的时序改变。
表1 寄存器的输出值
寄 存 器时间 30-1 30-2 30-3 30-4 30-5 30-6 30-7 30-8 30-9t0 1 1 1 1 1 1 1 1 1t1 0 1 1 1 1 1 1 1 1t2 0 0 1 1 1 1 1 1 1t3 0 0 0 1 1 1 1 1 1t4 0 0 0 0 1 1 1 1 1t5 1 0 0 0 0 1 1 1 1
在上表中,t0为初始态的定时,这时重置信号RST处于启动状态,而t1至t5则如图5中所示是在解除重置之后移位时钟SCK上升的定时。
首先,随着输入电平“1”的重置信号RST,寄存器30-1至30-9中的每一个输出值均被初始化为“1”(定时t0)。
由于在此情况下余下的寄存器30-1和30-2的输出值b3和b4两者均为“1”,选择电路6选择时钟CLK4并如图5(f)中所示将其输出作为移位时钟。
接着,在重置停车RST达到截止状态之后,即达到“0”,余下的寄存器30-1和30-2以及寄存器30-3至30-9在移位时钟SCK的上升时间(定时t1)进行移位运行。
由于余下的寄存器30-1和30-2的输出分别达到“0”和“1”,选择电路6选择时钟CLK2并将其作为移位时钟SCK输出。
随后,在移位时钟SCK的上升时间(定时t2)寄存器30-1至30-9进行移位运行。结果使余下的寄存器两个输出值b3和b4均达到“0”,使选择电路6选择时钟CLK1并将其作为移位时钟SCK输出。
重复进行类似的运行,当在移位时钟上升时(定位t5)进行移位运行,余下的寄存器30-1和30-2的输出值分别达到“1”和“0”,使选择电路6选择时钟CLK3。此后,重复进行类似的运行。
若将本实施例的LFSR考虑为9位结构的LFSR,则此时伪随机数的最大周期将为29-1。因而,尽管事实上由伪随机数B1-B7所能取得的组合数是27-1,但周期将变为29-1。然而要注意,此周期在根据余下寄存器30-1和30-2的b3和b4输出值而无规则地变动中并非有规则的。而在另一方面,密码编码电路按照一固定的读出时钟进行正常的读出运行。于是,从读出电路所见到的伪随机数的表观周期要比由LFSR的位数所确定的周期29-1长。
在此实施例中,根据余下的寄存器30-1和30-2的输出值b3和b4移位时钟SCK从一个值变至另一个值。因而,即使有人想要说明随机数产生电路的结构,他将必须面对严重的困难。而且,由于不可能为选择移位时钟SCK而直接读出余下的寄存器30-1和30-2的输出值,使对电路结构的说明更加困难。
在此实施例中,将寄存器30-4的输出用作向异-或电路32的一个输入,但也不限于这种情况的选择。不过总希望使用其输出的寄存器是处于在向异-或电路32输入时能获最大周期的位置。
此实施例的伪随机产生电路32中所产生伪随机数的配时改变也以随机的方式出现,与第一实施例中伪随机数产生电路2的情形相类似。因而,用伪随机数产生电路32产生对密码文本的破译与第一实施例有相类似的困难,而与第一实施例相比尚有能用更简单的电路结构实现伪随机数产生电路的优点。
接着,参照图6和图7将对本发明第三实施例的伪随机数产生电路40进行描述。
该实施例的伪随机数产生电路40使用一比时钟CLK1至CLK4要快的时钟CLK5,并有一个使选择电路6的输出46和时钟CLK5相“与”的“与”电路44,并以其输出结果作为移位时钟,代替以选择电路6的自身输出作为移位时钟。与时钟CLK1、CLK2、CLK3以及CLK4相比,时钟CLK5最好有足够高的频率,并且最好频率至少高达它们的3到4倍。
而且,时钟CLK5不必与时钟CLK1至CLK4同步。在其与时钟CLK1至CLK4不相同步的情况下,进一步加强了移位时钟的不规则性,结果使伪随机数的无规则性得到更进一步提高。
余下的寄存器40-1和40-2、寄存器40-3至40-9以及异-或电路42的运行与第二实施例的伪随机数产生电路30中的情况相类似。但由选择电路6选择的时钟46并不直接用作LFSR的移位时钟,而是在“与”电路44(图7(h))中和高速时钟CLK5相“与”之后用作移位时钟SCK。换句话说,是在由选择电路6选择时钟CLK1至CLK4中的任一个为“1”的期间由时钟CLK5进行了LFSR的移位运行。
要注意提高了时钟CLK5的频率就增大了LFSR每单位时间的移位数。这意味着在伪随机数的周期性读出运行中读出同一数值的机率提高了,它意味着相对提高了随机性。
要注意到,根据所要求的伪随机数的位数、所容许的电路规模、伪随机数的周期长度以及类似情况可以任意设置输出伪随机数序列的位数、余下的寄存器的位数与位置以及时钟的种类,而不必在上述实施例中对其作出限定。例如,余下的寄存器的位数仅需一位或多于一,而余下的寄存器可以设置在任何位置,不必限定在LFSR的上流。