伪随机数发生器的制作方法

文档序号:6397319阅读:284来源:国知局
专利名称:伪随机数发生器的制作方法
技术领域
本发明涉及一种伪随机数发生器,其运用一个线性反馈移位寄存器(以下简称“LFSR”)来产生伪随机数。
背景技术
尽管随机数在传统上被用于加密算法等,但比随机数更容易产生的伪随机数往往被更频繁地使用,因为它们很容易操作和处理。
用于产生伪随机数的伪随机数发生器通常采用LFSR来产生具有长周期的随机数。该LFSR包括多个串连寄存器,和一个异或逻辑电路(以下称为XOR电路),其中,预定寄存器的输出数据通过该XOR电路被反馈到第一个寄存器。由于在反馈路径中提供所述XOR电路,所述LFSR产生具有较长周期的随机数。
例如,包含n个寄存器的LFSR产生随机数,这些随机数的周期是n阶线性最大循环序列(称为M-序列)2n-1。应当注意,由LFSR提供的随机数是重复产生的M序列的随机数,且LFSR的周期所指的不是时间周期,而是所述M序列的长度。
在使用伪随机数产生密码的加密电路等中,如果显示伪随机数序列或伪随机逻辑,则可以从一个所获得的密码还原一个原始的明码,从而使得有效地产生不可预测的随机数序列非常重要。
尽管LFSR的阶数n(寄存器的个数)越大,由其产生的随机数的位数越大,伪随机数序列或伪随机数发生逻辑就越难以破解,但有些情况下,由于诸如电路规模等的限制,只能使用具有少数位的LFSR。为了解决这一问题,已经研究了各种技术来提高由低阶LFSR产生的伪随机数的随机性。例如,日本专利No.2937919描述了一种伪随机数发生器,包括不同频率的多个时钟,并利用LFSR的一个预定输出切换为LFSR中的每个寄存器提供的一个操作时钟(移位时钟)。
当固定一个移位时钟时,该LFSR以预定周期从一个预定的初始值(种籽(SEED))重复产生相同的随机数序列。另一方面,在上述日本专利No.2937919中描述的伪随机数发生器使用LFSR的预定输出切换移位时钟,以便引起移位操作的定时变化,结果使得视在周期比由LFSR的阶数确定的周期更长。
但是,尽管上述配置依赖于移位操作中的变化,以改变产生随机数的定时,但SEED和由此产生的随机数序列与那些用固定移位时钟产生的相同。具体地,如图1所示,尽管随机数是以随机时间间隔产生的(但是请注意,从某个短周期来看,它们是以恒定间隔连续产生(分布)的),但它们不会打乱用固定移位时钟产生的随机数的顺序。因此,尽管在日本专利No.2937919中描述的伪随机数发生器比具有固定移位时钟的配置提高了随机性,但它仍然不能提供足够高的随机性,因为对所述伪随机数序列或伪随机数发生逻辑的识别具有很高的易受攻击性。

发明内容
因此,本发明的一个目的是提供一种伪随机数发生器,其能够实现高度随机性,并使得从其产生的随机数序列分析其电路结构更加困难。
为了实现上述目的,根据本发明的伪随机数发生器具有一个LFSR,该LFSR包括第一逻辑运算电路,用于输出从预定寄存器输出的数据的逻辑运算结果;和第二逻辑运算电路,用于输出从外部提供的输入数据和第一逻辑运算电路的输出信号的逻辑运算结果,给LFSR的任一个寄存器。在上述结构中,给一个寄存器反馈从外部提供的输入数据的逻辑运算结果和从预定寄存器输出的数据的逻辑运算结果,使得所述线性反馈寄存器产生更不规则的随机数序列以提高随机性。
此外,当所述伪随机数发生器通电时,在振荡器的振荡稳定之前所产生的,因此也是频率不稳定的一个时钟被提供给所述线性反馈寄存器作为移位时钟,以产生原种籽(Pre-SEED),根据该Pre-SEED为所述线性反馈寄存器产生一个初始值(SEED)。这样构成的伪随机数发生器可以提高Pre-SEED和在Pre-SEED的基础上产生的SEED的随机性。
此外,所述伪随机数发生器可以将从外部输入的任意数据与线性反馈寄存器的输出数据的逻辑运算结果写入该线性反馈寄存器的每个寄存器。该结构可进一步提高由线性反馈寄存器产生的SEED的随机性。
因此,所得到的本发明的随机数发生器电路提供高度的随机性,从所产生的随机数序列分析电路结构更加困难。
根据以下参考描述本发明实例的附图所进行的说明,本发明的上述和其它目的、特征、和优点将变得更清楚。


图1示出由传统的伪随机数发生器产生的随机数序列的示意图;图2示出根据本发明的伪随机数发生器的结构的框图,与其正常运行关联;图3示出图2所示伪随机数发生器的结构的框图,与其复位时间关联;图4示出由本发明的伪随机数发生器产生的随机数序列的示意图;图5示出图2所示信号发生器中所包含的用于产生输入数据的电路的示例结构的电路图;图6是表示图5所示电路的操作的时序图;图7示出图2所示信号发生器中所包含的用于产生移位时钟的电路的示例结构的电路图;图8是表示图7所示电路的操作的时序图;图9示出图2所示访问控制器的示例电路结构的电路图;图10是表示图9所示电路的操作的时序图;图11是表示图2所示访问控制器的操作的示意图。
具体实施例方式
如图2所示,根据本发明的伪随机数发生器包括LFSR1;信号发生器2,用于产生操作LFSR1的移位时钟(LFSR时钟)和预定输入数据(datain);访问控制器3,用于控制由LFSR1产生的随机数的读取;和写入电路4,用于将从外部提供的数据写入LFSR1的每个寄存器。此外,根据本发明的伪随机数发生器还包括Pre-SEED电路5,用于产生Pre-SEED,根据该Pre-SEED来在通电之后紧接着的复位时间定义LFSR 1的初始值(SEED),如图3所示。
图2和3用两部分示出根据本发明的伪随机数发生器的结构,以便于解释其操作,这在下面描述,其中,图2示出与正常操作关联的结构,图3示出与伪随机数发生器通电后紧接着的复位时间关联的结构。本发明的伪随机数发生器可以包括图2和3中所示的全部或部分组件。当该伪随机数发生器包括图2和3中所示的全部组件时,可以根据正常操作或复位时间切换LFSR1的输入,或者可选地,可以在所有时间给LFSR1提供信号发生器2的输出信号和Pre-SEED电路5的输出信号,只要该电路的操作不受这些信号的影响即可。
如图2所示供给信号发生器2的第一时钟CLK1是由环形振荡器等产生的恒定周期时钟。第二时钟CLK2是利用触发器等与第一时钟CLK1同步的时钟,由图中未示出的振荡器提供或从外部提供,该振荡器可以包括石英振荡器等。
另一方面,如图3所示,供给Pre-SEED电路5的第三时钟CLK3是由振荡器6如环形振荡器按照类似于第一时钟CLK1的方式产生的恒定周期时钟。第四时钟CLK4是与第一时钟CLK1异步的时钟,由图中未示出的振荡器提供或从外部提供,该振荡器可以包括石英振荡器等。
对于第三时钟CLK3,由包括环形振荡器等的振荡器6产生的时钟用于提高Pre-SEED的随机性,这将在下面说明。第一时钟CLK1没有这样的限制,因此,第一时钟CLK1可以是由如图中所示应用的振荡器6产生的时钟,或者是通过例如一个用于控制时钟的传递/停止的电路(未示出)的时钟。
如图2和3所示,LFSR1包括多个串联寄存器;用于对预定寄存器的输出进行异或运算来传递逻辑运算结果的第一XOR电路(XOR1);用于将从信号发生器2提供的输入数据与第一XOR电路的输出数据的异或结果提供给LFSR1的第一寄存器的第二XOR电路(XOR2)。这样,在本发明的伪随机数发生器中,从第一XOR电路提供并反馈回LFSR1的第一个寄存器的数据被通过第二XOR电路从外部提供的输入数据改变,从而LFSR1产生更随机的数据序列,从而提高随机性,如图4所示。所述第一XOR电路和第二XOR电路可以是异或非(exclusive NOR)逻辑电路、与(AND)逻辑电路、与非(NAND)逻辑电路、或(OR)逻辑电路、或非(NOR)逻辑电路的逻辑运算电路或由其组成的电路等。第二XOR电路可以提供给LFSR1的任一个寄存器。
此外,本发明的伪随机数发生器运用LFSR1,该LFSR1的阶数大于由其产生的随机数的位数。例如,当产生16位伪随机数时,使用26位LFSR1。这是因为这样的LFSR1产生的伪随机数的随机性与利用16位LFSR1产生的伪随机数相比更高,如上所述。
此外,在本发明的伪随机数发生器中,信号发生器2产生多个不同频率的移位时钟,从而提供给LFSR1的移位时钟的频率以预定间隔切换。具体地,信号发生器2从第一时钟CLK1(全频率)产生一半频率的分频时钟(半频率),并以预定间隔切换第一时钟CLK1和分频时钟,以便传递给LFSR1作为移位时钟。分频时钟不一定要是第一时钟CLK1的频率的一半,而可以是任何频率,例如第一时钟CLK1的频率的1/4、1/8、1/16等。
此外,在本发明的伪随机数发生器中,由LFSR1产生的随机数在访问控制器3的控制下被以预定间隔读取。具体地,在正常操作中,每次给LFSR1提供一个移位时钟时,它就产生一个随机数,但访问控制器3不是按照移位时钟的定时读取LFSR1产生的随机数,而是按照不同周期的时钟的定时读取。
提供写入电路4,供用户给LFSR1的每个寄存器写入任意数据,以便进一步提高LFSR1的初始值(SEED)的随机性。该写入电路4包括多个XOR电路,用于对LFSR1的输出数据和写入信号进行异或运算,所述写入信号是由用户写入的数据,以便产生逻辑运算的结果。写入电路4可以包括例如等于所产生初始值位数的多个XOR电路。每个XOR电路的输出数据通过一个选择器等(重写装置)被写入LFSR1的预定寄存器。图2示出由一个XOR电路构成的写入电路4的结构,但写入电路4的XOR电路的个数可以是两个或更多。在该情况下,每个XOR电路的输出数据可以被写入LFSR的任一寄存器。写入电路4的XOR电路可以是异或非(exclusive NOR)逻辑电路、与(AND)逻辑电路、与非(NAND)逻辑电路、或(OR)逻辑电路、或非(NOR)逻辑电路的逻辑运算电路或由其组成的电路等。
如图3所示,Pre-SEED电路5包括一个XOR电路,该XOR电路接收第三时钟CLK3和第四时钟CLK4,并将该两个时钟的异或运算结果提供给LFSR1作为移位时钟。在通电后紧接着的复位时间内,给LFSR1提供第四时钟CLK4作为输入数据。Pre-SEED电路5的XOR电路可以是异或非(exclusiveNOR)逻辑电路、与(AND)逻辑电路、与非(NAND)逻辑电路、或(OR)逻辑电路、或非(NOR)逻辑电路的逻辑运算电路或由其组成的电路等。
下面将参考图2、3和5-11描述本发明的伪随机数发生器的操作。
本发明的伪随机数发生器在通电后紧接着的复位时间内和正常状态下呈现不同的操作。首先参考图3描述复位时间内的操作。
如上所述,在复位时间内所用的第三时钟CLK3与包含一个环形振荡器等的振荡器6产生的时钟相同。因为复位时间紧跟在伪随机数发生器通电之后,所以环形振荡器的操作还不稳定,导致第三时钟CLK3的频率变化。
在本发明中,为LFSR1提供一个移位时钟,该移位时钟是从这样的不稳定第三时钟CLK3和与第三时钟CLK3异步的第四时钟CLK4获得的异或运算结果。因此,可以给LFSR1提供具有更高随机性的Pre-SEED。
下面将参考图5-11以及图2描述本发明的伪随机数发生器在正常状态的操作。
图5是阐明图2所示信号发生器2中包括的用于产生输入数据的电路的典型结构的电路图。图6是表示图5所示电路的操作的时序图。图7是阐明图2所示信号发生器2中包括的用于产生移位时钟的电路的典型结构的电路图。图8是表示图7所示电路的操作的时序图。图9是阐明图2所示访问控制器3的典型结构的电路图。图10是表示图9所示电路的操作的时序图。图11是表示图2所示访问控制器3的操作的原理图。
在本发明的伪随机数发生器中,一旦复位时间终止,LFSR1首先根据在复位时间内产生的Pre-SEED生成随机数的初始值(SEED)。
此外,因为本发明的伪随机数发生器包括写入电路4供用户从外部将任意数据写入LFSR1的每个寄存器中,如上所述,所以由用户输入的数据(写入信号)与LFSR1生成的初始值进行异或运算的结果可以写入LFSR1的每个寄存器。这一功能的应用使得LFSR1能够产生具有更高随机性的初始值(SEED)。生成初始值(SEED)后,LFSR1接着从SEED开始产生随机数。在该情况下,信号发生器2利用图5和7所示电路以预定间隔切换提供给LFSR1的移位时钟的频率。
图5示出用于产生控制用于改变输入数据(data in)和提供给LFSR1的移位时钟的定时的时钟速度控制信号(speed cont sig.)的典型电路。
在图5所示电路中,第二时钟CLK2首先根据第一时钟CLK1被锁存到一个触发器中(如图6中的A所示),第二时钟CLK2的上升沿和下降沿分别被相关的逻辑门检测到(图6中到B和C)。然后,电路产生输入数据(图6中的data in),该输入数据在第二时钟CLK2的上升沿从“1”过渡到“0”,或从“0”过渡到“1”,还产生时钟速度控制信号(图6中的speed contsig.),该信号在第二时钟CLK2的下降沿从“1”过渡到“0”,或从“0”过渡到“1”。
由图5所示电路产生的时钟速度控制信号(speed cont sig.)被提供给图7所示电路,该电路产生一个时钟使能信号(CLK enable),用于控制改变所示移位时钟的定时。如图7所示,时钟使能信号(CLK enable)可以通过锁存一个4值选择器(MUX)的输出来产生,其中所述时钟速度控制信号(speed cont sig.)用作所述4值选择器的切换信号。具体地,当时钟速度控制信号(speed cont sig.)为“0”时,用于锁存所述4值选择器(MUX)的输出的锁存电路(F/F)在第一时钟CLK1的上升时刻输出馈送到端子D的在先值的翻转值,并用2除第一时钟CLK1,以产生结果信号作为时钟使能信号(CLK enable)。
另一方面,当时钟速度控制信号(speed cont sig.)为“1”时,用于锁存所述4值选择器(MUX)的输出的锁存电路(F/F)产生一个固定的“1”作为时钟使能信号(CLK enable),因为输入端子D上的输入数据固定为“1”。
移位时钟例如由一个门电路产生,该门电路接收所述时钟使能信号和第一时钟CLK1。在该情况下,所述门电路在时钟使能信号为“1”时原封不动地传递第一时钟CLK1,而当时钟使能信号为“0”时,传递频率为第一时钟CLK1的一半的移位时钟。
当伪随机数发生器被测试时,图5和图7所示电路中的每一个都可以利用一个测试切换信号被切换到用于测试的输入信号,其中第二时钟CLK2、输入数据(data in)、以及时钟速度控制信号(speed cont sig.)分别可以被切换到通过相关的选择器(NUX)提供的测试时钟、测试数据、和测试控制信号。当测试切换信号有效时(为“1”),图7所示测试初始值信号的值变为有效。
产生用于读取由LFSR1以预定间隔产生的随机数的定时信号的访问控制器3包括例如利用一个3位LFSR的计数器电路,如图9所示。
为了从本发明的伪随机数发生器读取随机数,将一个读取控制信号(req sampling)送到所述伪随机数发生器。如图10所示,在接收到该读取控制信号后,访问控制器3开始操作3位LFSR1,并在计数器电路计了预定个数的第一时钟CLK1后(在图9所示结构中是6个),传递一个随机数读取使能信号(ack sampling)。这样传递的随机数读取使能信号导致传递此时由LFSR1产生并存储在一个寄存器(未示出)中的随机数。在对第一时钟CLK1的组数计数的计数器电路中可以设定任何数。随机数读取周期可以通过改变接收器电路的结构来改变。
图11简化示出如何每16个时钟读取一个随机数。
根据按照本发明配置的伪随机数发生器,LFSR1包括一个第一XOR电路,用于将从预定寄存器输出的数据进行异或运算并将结果输出;和第二XOR电路,用于将从信号发生器2提供的输入数据与第一XOR电路的输出信号进行异或运算,将其结果提供给LFSR1的第一寄存器,从而将来自预定寄存器的输出与来自外部的输入数据的异或运算结果反馈给第一寄存器,从而从LFSR1产生更加不规则的随机数序列,提高随机性。
此外,当伪随机数发生器通电时,在振荡器的振荡还不稳定时产生的,因而频率不稳定的第三时钟CLK3被提供给LFSR1作为移位时钟,以产生Pre-SEED,根据该Pre-SEED产生LFSR1的初始值(SEED),从而有可能提高Pre-SEED的随机性和根据该Pre-SEED产生的SEED的随机性。
通过将从外部通过写入电路4输入的任意数据与LFSR1的输出数据进行异或的结果写入一个寄存器,可以进一步提高SEED的随机性。
从LFSR1输出的数据的随机性与现有技术相比明显提高,这种提高是由信号发生器2带来的,该信号发生器2以预定间隔切换第一时钟CLK1和通过分频第一时钟CLK1产生的分频时钟,并将其中任一个提供给LFSR1作为移位时钟。此外,还为LFSR1提供多个寄存器,这些寄存器的数量大于由其产生的随机数的位数,从而与现有技术相比,从LFSR1产生的数据的随机性显著提高。
因此,本发明的随机数发生器电路提供了高随机性,从其所产生的随机数序列分析电路结构更加困难。
尽管利用特定例子描述了本发明的优选实施例,但这样的说明只是为了示例目的,应当理解,在不背离下面的权利要求的精神和范围的条件下,可以进行各种变化和修改。
权利要求
1.一种伪随机数发生器,包括线性反馈寄存器,其包括多个串联连接的寄存器;第一逻辑运算电路,用于对从预定寄存器输出的数据进行逻辑运算,以产生逻辑运算的结果;和第二逻辑运算电路,用于对从外部提供的输入数据和所述第一逻辑运算电路的输出数据进行逻辑运算,以便给所述多个寄存器中的任一个提供该逻辑运算的结果,所述线性反馈寄存器从所述多个寄存器产生伪随机数;和信号发生器,用于产生操作所述线性反馈寄存器的移位时钟,和用于利用恒定周期的第一时钟和与该第一时钟同步的第二时钟产生所述输入数据。
2.根据权利要求1所述的伪随机数发生器,进一步包括振荡器,用于产生频率不稳定的第三时钟,和原种籽(Pre-SEED)发生器电路,用于给所述线性反馈寄存器提供所述移位时钟,该移位时钟是通过对所述第三时钟和与该第三时钟异步的第四时钟进行逻辑运算而产生的,还用于给所述线性反馈寄存器提供包含所述第四时钟的所述输入数据。
3.根据权利要求1所述的伪随机数发生器,其中所述信号发生器传递所述移位时钟,该移位时钟是所述第一时钟和通过对该第一时钟分频而产生的时钟中的一个,所述第一时钟和所述分频时钟以预定间隔切换。
4.根据权利要求1所述的伪随机数发生器,进一步包括访问控制器,用于读取由所述线性反馈寄存器以不同于所述移位时钟的周期产生的随机数。
5.根据权利要求1所述的伪随机数发生器,进一步包括写入电路,用于提供从所述线性反馈寄存器输出的数据和从外部输入的任意数据的逻辑运算;其中所述线性反馈寄存器利用从所述写入电路传递的数据将一个初始值重新写入所述寄存器。
6.根据权利要求1所述的伪随机数发生器,其中所述线性反馈寄存器包括多个寄存器,这些寄存器的数量大于所述随机数的位数。
全文摘要
一种伪随机数发生器包括一个线性反馈寄存器,用于产生伪随机数;一个信号发生器,用于产生操作一个线性反馈寄存器和预定输入数据。所述线性反馈寄存器具有多个串联连接的寄存器,用于对从预定寄存器输出的数据进行逻辑运算以传递其结果的第一逻辑运算电路,和用于对从外部提供的输入数据和第一逻辑运算电路的输出数据进行逻辑运算并将运算结果提供给任一个寄存器的第二逻辑运算电路。
文档编号G06F7/58GK1534454SQ20041003324
公开日2004年10月6日 申请日期2004年3月31日 优先权日2003年3月31日
发明者岛崎真也 申请人:恩益禧电子股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1