掌桥专利:专业的专利平台
掌桥专利
首页

一种随机数发生器及发生方法

文献发布时间:2023-06-19 09:47:53


一种随机数发生器及发生方法

技术领域

本发明属于集成电路的信息安全技术领域,尤其涉及一种随机数发生器及发生方法。

背景技术

随着个人计算机和网络的普及,电子商务、电子政务有了飞速的发展,与此同时,电子商务、政务的信息安全问题也越来越受到人们的关注,安全芯片在信息社会的各个领域中应用广泛,其主要功能包括对用户关键数据的安全存储、加密、解密以及身份识别等。随着国家对信息安全产业的支持力度加大,安全芯片的安全性就需要等级保护。随机数发生器作为安全芯片中不可或缺的一部分,要求也越来越严格。随机数发生器是加密应用的基础,可用于产生指定安全要求的加密密钥、对抗侧信道攻击、生产初始向量、随机填充位等攻击。

由于伪随机数本身是可预测的,所以在信息加密应用中,必须采用完全不可预测的真随机数来保障信息的安全性。真随机数的不可预测性来源于一个本征的随机物理过程,如利用电阻热噪声产生真随机数等。随着非线性理论的发展和完善,混沌行为给真随机数发生器的设计提供了新的理论依据和实现方法。目前,考虑实现的可能性,通常选取分段性混沌表达式作为混沌映射函数,该映射函数的状态空间划分产生一个二进制的离散非记忆的信息源,从而在理论上保证了从该信息源产生的随机数是真随机数;混沌表达式如下所示,通过对X

X

X

然而,上述基于混沌表达式的随机数发生器,实现电路的稳定性差,对于系数A和B的取值存在约束,会存在X

发明内容

本发明针对上述基于混沌表达式的随机数发生器,实现电路的稳定性差,影响了序列的随机性,使得混沌系统进入了饱和,严重影响输出序列的随机性的问题,提出一种随机数发生器及发生方法,能够保证随机数发生器的稳定性和输出序列的随机性。

为了实现上述目的,本发明采用以下技术方案:

一种随机数发生器,包括:随机源产生电路和后处理电路;

所述随机源产生电路,用于通过多路混沌随机源产生多路初始随机源,并将多路初始随机源数字化后进行异或叠加生成初始随机数且输出至后处理电路;其中,每一路混沌随机源至少包括多个混沌映射单元,采用链式环形电路结构,且通过混沌映射单元中设置的二维混沌映射电路,获取一路初始随机源;

所述后处理电路,用于对初始随机数进行检测、运算与串并转换处理后,输出最终随机数序列;

所述二维混沌映射电路基于二维混沌随机数方程实现,所述二维混沌随机数方程为:

其中,X

进一步地,所述二维混沌映射电路包括:第一混沌自愈单元、第二混沌自愈单元、基准电路单元、第一加法器、第二加法器、决策电路和编码输出电路;

所述第一混沌自愈单元,用于对接收的模拟信号M进行自愈检测并输出模拟信号X;

所述第二混沌自愈单元,用于对接收的模拟信号O进行自愈检测并输出模拟信号Y;

所述基准电路单元,用于生成参考电源Vref1、Vref2,分别取值为A、B;

所述第一加法器,用于对所述模拟信号X和Y以及参考电源Vref1的取值A进行加法运算,得到新的模拟信号X=X+Y+A;

所述第二加法器,用于对所述模拟信号X和Y以及参考电源Vref2的取值B进行加法运算,得到新的模拟信号Y=X+Y+Y+B;

所述决策电路,用于对所述新的模拟信号X和Y进行比较;

所述编码输出电路,用于根据所述决策电路的比较结果,输出一随机数序列。

进一步地,所述二维混沌映射电路包括:第一混沌自愈单元、第二混沌自愈单元、基准电路单元、第一加法器、第二加法器、决策电路和编码输出电路;

所述第一混沌自愈单元,用于对接收的模拟信号M进行自愈检测并输出模拟信号X;

所述第二混沌自愈单元,用于对接收的模拟信号O进行自愈检测并输出模拟信号Y;

所述基准电路单元,用于生成参考电源Vref1、Vref2、Vref3,分别取值为A、B、C;

所述第一加法器,用于对所述模拟信号X和Y以及参考电源Vref1的取值A进行加法运算,得到新的模拟信号X=X+Y+A;

所述第二加法器,用于对所述模拟信号X和Y以及参考电源Vref2的取值B进行加法运算,得到新的模拟信号Y=X+Y+Y+B;

所述决策电路,用于将所述新的模拟信号X和Y分别与参考电源Vref3的取值C进行比较;

所述编码输出电路,用于根据所述决策电路的比较结果,输出一随机数序列。

进一步地,所述决策电路,具体用于:

判断二维坐标(X,Y)在映射平面中的位置,其中X、Y均为新的模拟信号,当新的模拟信号X大于Y时,输出1;当新的模拟信号X小于Y时,输出0。

进一步地,所述决策电路,具体用于:

判断二维坐标(X,Y)在映射平面中的位置,其中X、Y均为新的模拟信号,当新的模拟信号X和Y均小于C时,输出二进制00;当新的模拟信号X小于C且Y大于C时,输出二进制01;当新的模拟信号X大于C且Y小于C时,输出二进制10;当新的模拟信号X和Y均大于C时,输出二进制11。

一种随机数发生方法,包括:

随机源产生电路通过多路混沌随机源产生多路初始随机源,并将多路初始随机源数字化后进行异或叠加生成初始随机数且输出至后处理电路;其中,每一路混沌随机源至少包括多个混沌映射单元,采用链式环形电路结构,且通过混沌映射单元中设置的二维混沌映射电路,获取一路初始随机源;

后处理电路对初始随机数进行检测、运算与串并转换处理后,输出最终随机数序列;

所述二维混沌映射电路基于二维混沌随机数方程实现,所述二维混沌随机数方程为:

其中,X

进一步地,所述通过混沌映射单元中设置的二维混沌映射电路,获取一路初始随机源包括:

对接收的模拟信号M进行自愈检测并输出模拟信号X;

对接收的模拟信号O进行自愈检测并输出模拟信号Y;

生成参考电源Vref1、Vref2,分别取值为A、B;

对所述模拟信号X和Y以及参考电源Vref1的取值A进行加法运算,得到新的模拟信号X=X+Y+A;

对所述模拟信号X和Y以及参考电源Vref2的取值B进行加法运算,得到新的模拟信号Y=X+Y+Y+B;

对所述新的模拟信号X和Y进行比较;

根据比较结果输出一随机数序列。

进一步地,所述通过混沌映射单元中设置的二维混沌映射电路,获取一路初始随机源包括:

对接收的模拟信号M进行自愈检测并输出模拟信号X;

对接收的模拟信号O进行自愈检测并输出模拟信号Y;

生成参考电源Vref1、Vref2、Vref3,分别取值为A、B、C;

对所述模拟信号X和Y以及参考电源Vref1的取值A进行加法运算得到新的模拟信号X=X+Y+A;

对所述模拟信号X和Y以及Vref2的取值B进行加法运算得到新的模拟信号Y=X+Y+Y+B;

将所述新的模拟信号X和Y分别与C进行比较;

根据比较结果输出一随机数序列。

进一步地,对所述新的模拟信号X和Y进行比较,具体包括:

判断二维坐标(X,Y)在映射平面中的位置,其中X、Y均为新的模拟信号,当新的模拟信号X大于Y时,输出1;当新的模拟信号X小于Y时,输出0。

进一步地,将所述新的模拟信号X和Y分别与C进行比较,具体包括:

判断二维坐标(X,Y)在映射平面中的位置,其中X、Y均为新的模拟信号,当新的模拟信号X和Y均小于C时,输出二进制00;当新的模拟信号X小于C且Y大于C时,输出二进制01;当新的模拟信号X大于C且Y小于C时,输出二进制10;当新的模拟信号X和Y均大于C时,输出二进制11。

与现有技术相比,本发明具有的有益效果:

(1)本发明中二维混沌映射电路是基于二维混沌随机数方程实现,且当二维混沌映射电路包括:第一混沌自愈单元、第二混沌自愈单元、基准电路电源、第一加法器、第二加法器、决策电路和编码输出电路,不需要基准源来进行输出0,1的参与,直接将映射的平面分成两块,通过X和Y的值比对直接获得,保证随机数发生器的稳定性和输出序列的随机性,且随机数具备高速、高质量的特点;

(2)本发明中随机源产生电路通过多路混沌随机源产生多路初始随机源,并将多路初始随机源数字化后进行异或叠加生成初始随机数且输出至后处理电路,在实际的应用中,安全芯片将8路独立混沌随机源数字化后进行异或叠加输出,可以有效增加整体的信源熵;

(3)本发明在实际中用模拟电路实现二维混沌随机数方程时,因为工艺偏差,每片IC上的电路实现的混沌函数都存在差异,而且,在每片IC上电工作时的初始状态都会有差异,这两个因素都会导致每片IC输出的混沌序列各不相同,形成真随机数;

(4)本发明中混沌自愈单元具有混沌自愈机制,当混沌自愈单元检测到混沌随机源产生电路已经脱离混沌区域并不可逆转时,能够重置电路使电路重新进入混沌区域,从而防止超过噪声防护边界的偶然情况与恶意攻击带来的电路失效,提高了系统的抗干扰能力;

(5)本发明中混沌随机源采用链式环形电路结构,由多个混沌映射单元组成,并可根据需要调整混沌映射单元的数目,以提高随机数产生速率。

附图说明

图1为本发明实施例一种随机数发生器的结构原理图;

图2为本发明实施例一种随机数发生器中二维混沌映射电路的结构示意图之一;

图3为本发明实施例一种随机数发生器中二维混沌映射电路的结构示意图之二;

图4为本发明实施例一种随机数发生方法的每一路混沌随机源实现框图。

具体实施方式

下面结合附图和具体的实施例对本发明做进一步的解释说明:

如图1所示,一种随机数发生器,包括:随机源产生电路和后处理电路;

所述随机源产生电路,用于通过多路混沌随机源产生多路初始随机源,并将多路初始随机源数字化后进行异或叠加生成初始随机数且输出至后处理电路;其中,每一路混沌随机源至少包括多个混沌映射单元,采用链式环形电路结构,且通过混沌映射单元中设置的二维混沌映射电路,获取一路初始随机源;

所述后处理电路,用于对初始随机数进行检测、运算与串并转换处理后,输出最终随机数序列;

所述二维混沌映射电路基于二维混沌随机数方程实现,所述二维混沌随机数方程为:

其中,X

值得说明的是,A、B是可选的,在A、B为0时混沌随机数方程仍然成立。

作为一种可实施方式,在实际的应用中,有8路混沌随机源,每一路混沌随机源有四个混沌映射单元,四个混沌映射单元是异或运算将结果输出,最终8路混沌随机源也是异或运算输出,相当于32次异或运算输出,能够更好进行随机数生成,提高随机性,不可预知性。

进一步地,如图2所示,所述二维混沌映射电路包括:第一混沌自愈单元、第二混沌自愈单元、基准电路单元、第一加法器、第二加法器、决策电路和编码输出电路;

所述第一混沌自愈单元,用于对接收的模拟信号M进行自愈检测并输出模拟信号X;

所述第二混沌自愈单元,用于对接收的模拟信号O进行自愈检测并输出模拟信号Y;

所述基准电路单元,用于生成参考电源Vref1、Vref2,分别取值为A、B;

所述第一加法器,用于对所述模拟信号X和Y以及参考电源Vref1的取值A进行加法运算,得到新的模拟信号X=X+Y+A;

所述第二加法器,用于对所述模拟信号X和Y以及参考电源Vref2的取值B进行加法运算,得到新的模拟信号Y=X+Y+Y+B;

所述决策电路,用于对所述新的模拟信号X和Y进行比较;

所述编码输出电路,用于根据所述决策电路的比较结果,输出一随机数序列。

进一步地,所述决策电路用于对所述新的模拟信号X和Y进行比较,具体用于:

判断二维坐标(X,Y)在映射平面中的位置,其中X、Y均为新的模拟信号,当新的模拟信号X大于Y时,输出1;当新的模拟信号X小于Y时,输出0。

进一步地,如图3所示,所述二维混沌映射电路包括:第一混沌自愈单元、第二混沌自愈单元、基准电路单元、第一加法器、第二加法器、决策电路和编码输出电路;

所述第一混沌自愈单元,用于对接收的模拟信号M进行自愈检测并输出模拟信号X;

所述第二混沌自愈单元,用于对接收的模拟信号O进行自愈检测并输出模拟信号Y;

所述基准电路单元,用于生成参考电源Vref1、Vref2、Vref3,分别取值为A、B、C;

所述第一加法器,用于对所述模拟信号X和Y以及参考电源Vref1的取值A进行加法运算,得到新的模拟信号X=X+Y+A;

所述第二加法器,用于对所述模拟信号X和Y以及参考电源Vref2的取值B进行加法运算,得到新的模拟信号Y=X+Y+Y+B;

所述决策电路,用于将所述新的模拟信号X和Y分别与参考电源Vref3的取值C进行比较;

所述编码输出电路,用于根据所述决策电路的比较结果,输出一随机数序列。

进一步地,所述决策电路用于将所述新的模拟信号X和Y分别与参考电源Vref3的取值C进行比较,具体用于:

判断二维坐标(X,Y)在映射平面中的位置,其中X、Y均为新的模拟信号,当新的模拟信号X和Y均小于C时,输出二进制00;当新的模拟信号X小于C且Y大于C时,输出二进制01;当新的模拟信号X大于C且Y小于C时,输出二进制10;当新的模拟信号X和Y均大于C时,输出二进制11。

作为一种可实施方式,在实际应用中,后处理电路包括扑克自检单元、运算与串并转换电路、512B的FIFO存储器、接口电路。扑克自检单元用于检测随机源产生的随机数据是否合乎要求。在这里,我们取512比特的随机数做扑克检测。自检不通过时会设置相应状态位,向CPU发出告警。否则,只要FIFO不空,就产生随机数,并写入FIFO。运算与串并转换电路由8个独立随机数发生器,全部参与异或,生成随机数比特流,该随机数比特流送入扑克自检单元做检测,如果正确,则输入串进并出移位寄存器,并设置工作正常标志位;如果错误,则设置随机数异常标志位。为了提高效率,采用了512字节的FIFO做数据缓存。

在上述实施例的基础上,本发明还公开一种随机数发生方法,包括:

随机源产生电路通过多路混沌随机源产生多路初始随机源,并将多路初始随机源数字化后进行异或叠加生成初始随机数且输出至后处理电路;其中,每一路混沌随机源至少包括多个混沌映射单元,采用链式环形电路结构,且通过混沌映射单元中设置的二维混沌映射电路,获取一路初始随机源;

后处理电路对初始随机数进行检测、运算与串并转换处理后,输出最终随机数序列;

所述二维混沌映射电路基于二维混沌随机数方程实现,所述二维混沌随机数方程为:

其中,X

作为一种可实施方式,在实际的应用中,有8路混沌随机源,每一路混沌随机源实现框图如图4所示,采用链式环形电路结构,由混沌映射单元和混沌自愈单元组成,并可根据需要调整混沌映射单元的数目,以提高随机数产生速率。另外,由于形成了环状,每一路混沌随机源由四个映射单元、一个混沌自愈单元构成。值得说明的是,每一路混沌随机源中再加入混沌自愈单元相当于再多一层保障,对混沌映射单元输出的随机序列进行检测,也可以不设置,可根据实际情况进行选择。

进一步地,对所述新的模拟信号X和Y进行比较,具体包括:

判断二维坐标(X,Y)在映射平面中的位置,其中X、Y均为新的模拟信号,当新的模拟信号X大于Y时,输出1;当新的模拟信号X小于Y时,输出0。

进一步地,所述通过混沌映射单元中设置的二维混沌映射电路,获取一路初始随机源包括:

对接收的模拟信号M进行自愈检测并输出模拟信号X;

对接收的模拟信号O进行自愈检测并输出模拟信号Y;

生成参考电源Vref1、Vref2,分别取值为A、B;

对所述模拟信号X和Y以及参考电源Vref1的取值A进行加法运算,得到新的模拟信号X=X+Y+A;

对所述模拟信号X和Y以及参考电源Vref2的取值B进行加法运算,得到新的模拟信号Y=X+Y+Y+B;

对所述新的模拟信号X和Y进行比较;

根据比较结果输出一随机数序列。

进一步地,所述通过混沌映射单元中设置的二维混沌映射电路,获取一路初始随机源包括:

对接收的模拟信号M进行自愈检测并输出模拟信号X;

对接收的模拟信号O进行自愈检测并输出模拟信号Y;

生成参考电源Vref1、Vref2、Vref3,分别取值为A、B、C;

对所述模拟信号X和Y以及参考电源Vref1的取值A进行加法运算得到新的模拟信号X=X+Y+A;

对所述模拟信号X和Y以及Vref2的取值B进行加法运算得到新的模拟信号Y=X+Y+Y+B;

将所述新的模拟信号X和Y分别与C进行比较;

根据比较结果输出一随机数序列。

进一步地,将所述新的模拟信号X和Y分别与C进行比较,具体包括:

判断二维坐标(X,Y)在映射平面中的位置,其中X、Y均为新的模拟信号,当新的模拟信号X和Y均小于C时,输出二进制00;当新的模拟信号X小于C且Y大于C时,输出二进制01;当新的模拟信号X大于C且Y小于C时,输出二进制10;当新的模拟信号X和Y均大于C时,输出二进制11。

综上:

本发明中二维混沌映射电路是基于二维混沌随机数方程实现,且当二维混沌映射电路包括:第一混沌自愈单元、第二混沌自愈单元、基准电路电源、第一加法器、第二加法器、决策电路和编码输出电路,不需要基准源来进行输出0,1的参与,直接将映射的平面分成两块,通过X和Y的值比对直接获得,保证随机数发生器的稳定性和输出序列的随机性,且随机数具备高速、高质量的特点;

本发明中随机源产生电路通过多路混沌随机源产生多路初始随机源,并将多路初始随机源数字化后进行异或叠加生成初始随机数且输出至后处理电路,在实际的应用中,安全芯片将8路独立混沌随机源数字化后进行异或叠加输出,可以有效增加整体的信源熵;

本发明在实际中用模拟电路实现二维混沌随机数方程时,因为工艺偏差,每片IC上的电路实现的混沌函数都存在差异,而且,在每片IC上电工作时的初始状态都会有差异,这两个因素都会导致每片IC输出的混沌序列各不相同,形成真随机数;

本发明中混沌自愈单元具有混沌自愈机制,当混沌自愈单元检测到混沌随机源产生电路已经脱离混沌区域并不可逆转时,能够重置电路使电路重新进入混沌区域,从而防止超过噪声防护边界的偶然情况与恶意攻击带来的电路失效,提高了系统的抗干扰能力;

本发明中混沌随机源采用链式环形电路结构,由多个混沌映射单元组成,并可根据需要调整混沌映射单元的数目,以提高随机数产生速率。

以上所示仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。

相关技术
  • 随机数发生器、自检模块以及随机数发生器的自检方法
  • 随机数发生器、自检模块以及随机数发生器的自检方法
技术分类

06120112308151