一种随机数发生器电路的制作方法

文档序号:6576491阅读:349来源:国知局
专利名称:一种随机数发生器电路的制作方法
技术领域
本发明涉及数据加密技术,尤其涉及一种用于数据加密的随机数发生器电路。
背景技术
处于信息时代的今天,关于信息的安全问题成为信息产品很关键的部分。尤其对于安全 产品而言,加密模块是否具有良好的安全性能成为人们关注之重。而用于加密模块加密算法 输入的种子的随机性,正是加密模块实现其良好安全性能的重要指标,故需要生成具有良好 随机性的随机数作为原始的种子,是加密技术的关键技术。
利用软件产生的随机数,是基于在一个程序中运算的数学公式产生,但所产生的随机数 可以进行重现,故无法满足加密的要求。
利用自然界的物理现象诸如原子核的衰变现象,以及电气噪声等,原子核的衰变现象, 在普通的加密芯片中实现有一定的难度,另外通常实现的物理方法如由采集电气噪声源实 现的随机数,转化为0, 1时,会0, 1概率不是很均等不理想的现象。而且通过能量分析后, 容易被攻击成功。
在己发明的一些随机数发生器中,如法国RADJA等发明的"随机数生成器""专利公开
号WO 2007/110506 Al),其本质仅仅是一个n位的线性反馈移位寄存器(LFSR)电路; 产生机制单一,其随机特性并不很理想。再如Kabushiki Kaisha Toshiba公司的Minato-ku 等发明的"随机数发生器"(专利公开号EP 1975780 Al)中,由于采用了放大器去放大微 弱的随机物理信号,这样得到的物理随机数会受外部电场和磁场影响。故可通过外部控制去 随机数,降低了安全性。
因此,如何生成能满足一定安全需求的随机数,使得产品更具有安全性,成为急待解决 的问题。

发明内容
本发明的目的在于提供一种基于实时数据流和伪随机数的随机数发生器电路,可以生成 安全可靠,难以预测的随机数,提高产品的安全可靠性。
为解决本发明的技术问题,本发明公开一种基于实时数据流和伪随机数的随机数发生器
电路,包括
一个m位线性反馈移位寄存器电路(LFSR); —个n位细胞自动机移位寄存器电路 (CASR); —个随机计数器电路; 一个随机数据采集电路; 一个逻辑异或电路; 一个HSAH 扩散电路;
所述m位线性反馈移位寄存器电路、n位细胞自动机移位寄存器电路、随机计数器电路 和所述随机数据采集电路的输出均分别与逻辑异或电路的输入相连,所述逻辑异或电路的输 出与所述HSAH扩散电路的输入相连;
所述m位线性反馈移位寄存器电路、n位细胞自动机移位寄存器电路、随机计数器电路 和所述随机数据采集电路用于输出随机比特流,得到的随机比特流经所述逻辑异或电路处理 后生成随机比特流;所述HASH扩散电路,用于处理所述随机比特流,并形成不同位数的随机比特供密码 模块使用。
较优的,所述HASH扩散电路通过以下三种方式对所述随机比特流进行处理按32比 特为一组进行寄存;或受随机比特使能信号控制,按单比特输出;或将寄存的随机比特经过 Hash算法扩散,形成256位新的随机比特。
较优的,所述m位线性反馈移位寄存器电路和n位细胞自动机移位寄存器电路,分别 用于产生一个规定周期的伪随机数,采样时钟随机选取。
较优的,所述两个移位寄存器电路用来产生两个独立的原始伪随机比特,其生成方式并 不局限于线性反馈移位算法和细胞自动机移位算法。
较优的,所述随机计数器电路,用于采用选择性的计数方式,以常数a为单位赋值,或 以其它随机变量为单位进行赋值。
较优的,所述随机数据采集电路,用于捕获实时总线数据和接口数据,分别进行异步寄 存;捕获数据在异步采样过程中被随机改变。
较优的,所述m位线性反馈移位寄存器电路、n位细胞自动机移位寄存器电路、随机计 数器电路和所述随机数据采集电路,均包括品振时钟和系统时钟的随机选择时钟。
较优的,所述晶振时钟,是由一个与门和奇数个反相器构成的振荡电路,用于提供独立 的时钟信号。
较优的,所述逻辑异或电路,用于将两个以上的独立且不同机制的原始随机数经过逻辑 异或生成一个新的随机数。
较优的,所述逻辑异或电路,多个原始随机数之间是异步关系,新随机数在异步采样寄 存过程中将产生不规则的变化。
与现有技术相比,本发明具有如下有益效果-
1. 本发明生成的随机数由不同随机特性的伪随机数混合产生。
2. 本发明中引入总线数据流,参与到随机数的产生机制中。
3. 本发明中还引入接口数据流,也参与到随机数的产生机制中。
4. 本发明采用了 HASH扩散电路对初步产生的随机数进行随机扩散。
5. 本发明利用了电路逻辑的不确定性,如复位,异步,不同的采样时钟频率等,增 强了随机数发生器的随机特性。
因此可以生成安全可靠,难以预测的随机数,提高产品的安全可靠性。


图1为本发明一较佳实施方式的随机数发生器电路结构示意图; 图2为本发明实施例之63位线性反馈移位寄存器电路原理图; 图3为本发明实施例之37位细胞自动机移位寄存器电路采样时钟原理图; 图4为本发明实施例之随机计数器电路原理图; 图5为本发明实施例之随机数据采集电路原理图; 图6为本发明实施例之逻辑异或电路原理图; 图7为本发明实施例之随机数后处理示意图。 具体实施例
为更清楚说明本发明,下面结合附图进一步介绍此发明的具体实施方案。如图1所示,为本发明一较佳实施方式的随机数发生器电路结构示意图,该随机数发生 器可以包含一个63位线性反馈移位寄存器电路(RNG一LFSR) 10; —个37位细胞自动机移 位寄存器电路(RNG—CASR) 20; —个随机计数器电路(RNG_CNT) 30; —个随机数据采 集电路(RNG—RDD) 40。所述63位线性反馈移位寄存器电路10、所述37位细胞自动机移 位寄存器电路20、所述随机计数器电路30、所述随机数据釆集电路40产生的原始随机比特 经过逻辑异或电路50形成新的内部随机数。包含HASH扩散电路的随机数后处理电路60 对内部随机数处理后,形成不同位数的输出随机比特流供密码模块使用。
其中,所述63位线性反馈移位寄存器电路10也可以是一个m位线性反馈移位寄存器 电路(LFSR);所述37位细胞自动机移位寄存器电路(RNG—CASR) 20也可以是一个n位 细胞自动机移位寄存器电路(CASR)。
所述m位线性反馈移位寄存器电路10、 n位细胞自动机移位寄存器电路20、随机计数 器电路30和所述随机数据采集电路40的输出均分别与逻辑异或电路50的输入相连,所述 逻辑异或电路50的输出与所述HSAH扩散电路60的输入相连;
所述m位线性反馈移位寄存器电路10、 n位细胞自动机移位寄存器电路20、随机计数 器电路30和所述随机数据采集电路40用于产生原始随机比特流,得到的原始随机比特流经 所述逻辑异或电路50处理后生成内部随机比特流。
所述HASH扩散电路60,用于处理所述内部随机比特流,并形成不同位数的输出随机 比特供密码模块使用。
所述HASH扩散电路60通过以下三种方式对所述内部随机比特流进行处理按32比 特为一组进行寄存;或受随机比特使能信号控制,按单比特输出;或将寄存的随机比特经过 Hash算法扩散,形成256位新的随机比特。
所述m位线性反馈移位寄存器电路10,具体用于产生一个规定周期的伪随机数,采样 时钟随机选取。
所述n位细胞自动机移位寄存器电路20,具体用于产生一个具有随机特性的固定周期 伪随机数。
所述n位细胞自动机移位寄存器电路20,包括晶振时钟和系统时钟的随机选择时钟。 所述晶振时钟,是由一个与门和奇数个反相器构成的振荡电路,用于提供独立的时钟信号。
所述随机计数器电路30,用于采用选择性的计数方式,以常数a为单位赋值,或以其 它随机变量为单位进行赋值。所述随机计数器电路30,包括晶振时钟和系统时钟的随机选 择时钟,其中所述晶振时钟是由一个与门和奇数个反相器构成的振荡电路,用于提供独立的 时钟信号。
所述随机数据采集电路40,用于捕获实时数据,分别进行异步寄存。所述捕获实时数 据寄存,用于捕获总线数据流并异步寄存,捕获同比特的接口数据流并异步寄存,原捕获数 据在异步采样过程中被随机改变。
所述随机数据采集电路40,用于将所述寄存的数据经异或电路输出,并将输出反馈回 异或电路中去。
所述逻辑异或电路50,用于将两个以上所述的独立且不同机制的原始随机比特输出经 过逻辑异或生成一个新的内部随机比特。
所述逻辑异或电路50,用于将m位线性反馈移位寄存器10输出的伪随机序列和和n位细胞自动机移位寄存器20输出的伪随机序列进行异或后生成了一个更长周期新的伪随机序 列。
所述逻辑异或电路50,多个原始随机比特之间可以是异步关系,新随机比特在异步采 样寄存过程中将产生不规则的变化。
如图2所示,为本发明实施例之63位线性反馈移位寄存器电路电路原理图,如图2所 示,所述63位线性反馈移位寄存器电路10的最终输出和第62级输出经过异或门11,反馈 到第1级输入,时钟可随机选取。其中特征多项式为p(x"x63+x+l,最长序列周期 r = 263 — 1 。以32比特为单位进行采集输出out,输入到逻辑异或电路50中。
如图3所示,为本发明实施例之37位细胞自动机移位寄存器电路采样时钟原理图,该 37位细胞自动机移位寄存器可以包括晶振时钟70,选择器21和37位CASR。其中,所 述晶振时钟70进一步包括二输入与门71以及连接的奇数个反相器72、 73、 74。
如图3所示,第O,l......36比特,进行如下操作
bit28(t+l)=bit27(t)A bit28(t)八bit29(t)
biti(t+l)=biti-l(t) Abit i+l(t) i=l 27,29 36
bit0(t+l)=bit36(t) Abitl(t)
最长序列周期为r = 237 — 1 。将晶振时钟70和系统时钟经过选择器21进行选择时 钟。其中晶振时钟70的具体实现为高有效的晶振使能信号作为二输入与门71的一个输入, 二输入与门71的输出接奇数个反相器72、 73、 74,再将其输出反馈为此二输入与门71的 另一输入端,此内部晶振起振形成一个时钟信号,此信号频率由反相器自身延迟和个数决定。 将此37位细胞自动机移位寄存器电路的输出,输入到逻辑异或电路50中。
如图4所示,为本发明实施例之随机计数器电路原理图,在随机计数器电路中,实时读 取随机数据采集电路40的地址数据,写入数据,读出数据,将以上三种数据经过三输入的 异或门31,得到一组32位的随机数据,将此32比特随机总线数据与常数a通过二输入选 择器32,使能信号为低时选择a,使能信号为高时选择经异或后的32比特随机总线数据。 将选择器32输出的数据经过计数器电路的计数器33进行赋值。
计数器采样时钟为内部晶振时钟70或系统时钟,高有效的晶振使能信号作为二输入与 门71的一个输入,二输入与门71的输出接奇数个反相器72、 73、 74,再将其输出反馈为 此二输入与门71的另一输入端,此内部晶振起振形成一个时钟信号,此信号频率由反相器 自身延迟和个数决定。将此时钟信号与系统时钟信号输入到二输入的选择器34中,使能信 号为低时输出内部晶振时钟,使能信号为高时,输出系统时钟。将随机计数器的当前值按系 统时钟采样,输入到逻辑异或电路50中。
如图5所示,为本发明实施例之随机数据采集电路原理图,在随机数据采集电路中,实 时从总线数据流上捕获32比特的数据信号41;从不同接口数据流上捕获总长为32比特的 数据信号,异步寄存到32位的寄存器42中得到一组异步的32比特数据。
将寄存器42中的数据与总线数据流得到的32比特数据信号41经过二输入的异或门43 产生一组新的32比特随机数据,并将其异步寄存到32位的寄存器44中。并作为异或门45 的一个输入,并将异或门45的输出经过一位的移位寄存器46后与刚得到的寄存器44中的 数据经过二输入的异或门45输出。输入到逻辑异或电路50中。
如图6所示,为本发明实施例之逻辑异或电路原理图,在逻辑异或电路中,先将线性反
6馈移位寄存器电路10的输出,随机计数器电路30得到的随机数据,随机数据采集电路40 得到的随机数据进行特殊处理,例如以下的实施方案。
将线性反馈移位寄存器电路10的输出out作为逻辑异或电路50中一个四输入选择器端 口 4的输入;将线性反馈移位寄存器电路10的输出out与随机计数器电路30得到的随机数 据,随机数据采集电路40得到的随机数据经过三输入的异或门输出,此输出作为四输入选 择器端口 1的输入;将线性反馈移位寄存器电路10的输出out与随机计数器电路30得到的 随机数据经过二输入的异或门输出,此输出作为四输入选择器端口2的输入;将线性反馈移 位寄存器电路10的out与随机数据采集电路40得到的随机数据经过二输入的异或门输出, 此输出作为四输入选择器端口 3的输入。根据选择器的使能信号对输出进行控制选择使能 为00时,输出为输入端口l的数据;选择使能为01时,输出为输入端口2的数据;选择使 能为10时,输出为输入端口3的数据;选择使能为ll时,输出为输入端口4的数据。
再结合细胞自动机移位寄存器电路20的输出经过逻辑异或门51的输出,即可得到一个 长周期的伪随机序列。将异或门51的输出经过D触发器52输出,再经过D触发器53输出。 其中D触发器的时钟均采用系统时钟。
如图7所示,为本发明实施例之随机数后处理电路示意图,该随机数后处理电路60可 以包括反相器61, 二输入与门62,移位寄存器63,寄存器64, HASH扩散电路65和寄存 器66,其电路连接关系可以如下的工作过程所述。
在随机数的后处理电路60中,对随机数进行三种不同的处理。
其一经逻辑异或电路50后得到的输出与经过反相器61的高有效随机比特输出使能信 号输入到二输入与门62中,输出一位的随机比特。
其二将经过逻辑异或电路50后得到的输出,经过移位寄存器63后输出,以32比特 为单元存储到寄存器64中。
其三将经移位寄存器63后得到的输出经过HASH扩散电路65,形成256比特为单元 的随机数存储到寄存器66中。
其它模块需要随机数时,可根据加密需求,调用以上得到的随机数。
综上所述,本发明通过一个63位线性反馈移位寄存器电路,利用末尾两级寄存器进行 异或反馈作为第一级输入,形成能够产生伪随机比特的线性反馈移位寄存器电路。 一个37 位细胞自动机移位寄存器电路,利用类似于递归级的异或处理,形成能够产生为伪随机比特 的自动移位寄存器电路。 一个随机计数器电路,晶振产生的时钟和系统时钟之一为计数器的 工作时钟,其中晶振由一个与门和若干奇数个反相器连接而成,输出一个随机时钟;随机采 集的数据或常数a为单元进行计数,将此数值经过D触发器输出32比特的随机计数值。一 个随机数据采集电路,异步采集并寄存数据通道中独立的数据信息,经过异或电路进行数据 处理后输出,同时将输出数据再经移位寄存器后反馈回异或电路中。 一个逻辑异或电路,将 以上电路输出的随机比特进行一系列的异或处理后输出一个相当长周期的伪随机序列。一个 HASH扩散电路,对生成的随机比特进行扩散处理。
通过结合实际产品内部模块数据,并混合不同机制的伪随机数电路,生成能满足一定安 全需求的随机数,成为安全产品中更现实的加密实施方案。
权利要求
1、一种基于实时数据流和伪随机数的随机数发生器电路,其特征在于,包括一个m位线性反馈移位寄存器电路(LFSR);一个n位细胞自动机移位寄存器电路(CASR);一个随机计数器电路;一个随机数据采集电路;一个逻辑异或电路;一个HSAH扩散电路;所述m位线性反馈移位寄存器电路、n位细胞自动机移位寄存器电路、随机计数器电路和所述随机数据采集电路的输出均分别与逻辑异或电路的输入相连,所述逻辑异或电路的输出与所述HSAH扩散电路的输入相连;所述m位线性反馈移位寄存器电路、n位细胞自动机移位寄存器电路、随机计数器电路和所述随机数据采集电路用于输出随机比特流,得到的随机比特流经所述逻辑异或电路处理后生成随机比特流;所述HASH扩散电路,用于处理所述随机比特流,并形成不同位数的随机比特供密码模块使用。
2、 根据权利要求1所述的随机数发生器电路,其特征在于,所述HASH扩散电路通过 以下三种方式对所述随机比特流进行处理按32比特为一组进行寄存;或受随机比特使能 信号控制,按单比特输出;或将寄存的随机比特经过Hash算法扩散,形成256位新的随机 比特。
3、 根据权利要求1所述的随机数发生器电路,其特征在于,所述m位线性反馈移位寄 存器电路和n位细胞自动机移位寄存器电路,分别用于产生一个规定周期的伪随机数,采样 时钟随机选取。
4、 根据权利要求3所述的随机数发生器电路,其特征在于,所述两个移位寄存器电路 用来产生两个独立的原始伪随机比特,其生成方式并不局限于线性反馈移位算法和细胞自动 机移位算法。
5、 根据权利要求1所述的随机数发生器电路,其特征在于,所述随机计数器电路,用 于采用选择性的计数方式,以常数a为单位赋值,或以其它随机变量为单位进行赋值。
6、 根据权利要求1所述的随机数发生器电路,其特征在于,所述随机数据采集电路, 用于捕获实时总线数据和接口数据,分别进行异步寄存;捕获数据在异步采样过程中被随机 改变。
7、 根据权利要求1所述的随机数发生器电路,其特征在于所述m位线性反馈移位寄 存器电路、n位细胞自动机移位寄存器电路、随机计数器电路和所述随机数据采集电路,均 包括晶振时钟和系统时钟的随机选择时钟。
8、 根据权利要求7所述的随机数发生器电路,其特征在于,所述晶振时钟,是由一个 与门和奇数个反相器构成的振荡电路,用于提供独立的时钟信号。
9、 根据权利要求1所述的随机数发生器电路,其特征在于,所述逻辑异或电路,用于 将两个以上的独立且不同机制的原始随机数经过逻辑异或生成一个新的随机数。
10、 根据权利要求9所述的随机数发生器电路,其特征在于,所述逻辑异或电路,多个 原始随机数之间是异步关系,新随机数在异步采样寄存过程中将产生不规则的变化。
全文摘要
本发明公开一种基于实时数据流和伪随机数的随机数发生器电路,包括m位线性反馈移位寄存器电路、n位细胞自动机移位寄存器电路、随机计数器电路和随机数据采集电路输出随机比特流,得到的原始随机比特流经所述逻辑异或电路处理后生成内部随机比特流;HASH扩散电路处理所述内部随机比特流,形成不同位数的随机比特输出供密码模块使用。通过本发明,可以生成可靠,难以预测的随机数,提高产品的安全可靠性。
文档编号G06F7/58GK101620523SQ20091010914
公开日2010年1月6日 申请日期2009年7月29日 优先权日2009年7月29日
发明者浩 徐, 雄 李, 王良清 申请人:深圳国微技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1