本发明涉及安全技术领域,具体涉及一种基于二维混沌双螺旋的真随机数发生器。
背景技术:
随着信息技术的普及,信息传输的安全性得到了越来越广泛的重视,信息安全离不开密码算法,传统的对称密钥密码算法如aes,非对称密钥密码算法如rsa,ecc都需要初始化一个密钥。其密钥通常采用随机数来生成,因此随机数的质量直接决定了整个安全体系安全性。
随机数是由随机数发生器来产生,根据产生的随机数的种类不同,随机数发生器分为真随机数发生器和伪随机数发生器,对于集成电路及安全芯片的设计,伪随机数由于其周期性的限制,通常不能满足安全性的要求,因此不能单独使用伪随机数发生器来产生随机数。(可以作为真随机数发生器的后处理模块使用)
真随机数发生器主要利用自然界的随机物理现象来产生随机数,比如基于热噪声的真随机数发生器,利用环形振荡器输出的随机抖动的真随机数发生器,利用亚稳态的真随机数发生器等。
基于混沌系统的真随机数发生器是通过设计电路结构构造出混沌现象,然后再采样得到真随机数的一种实现。混沌现象通常有混沌函数的输出表示,混沌函数包括帐篷映射,伯努利映射,逻辑映射,分段线性映射等。对比传统的真随机数发生器,基于混沌系统的真随机数发生器具有参数可控,仿真较为容易,输出信号偏置小,不易受周期性噪声信号干扰等特点。对比伪随机数发生器,又因为其本身混沌函数的计算复杂度大,而使攻击者无法通过观察等行为根据轨迹猜测混沌系统的构成,除此之外,对比计算机实现随机数发生器受限的精度问题,硬件设计保证了参数和变量精度的无穷大,由于混沌函数的李雅普诺夫常数大于0,因此初值的一点微小的不同都会导致后面轨迹较大的差异性,使得攻击者难以通过暴力穷举的方法找到混沌函数的初始值。
但是,目前的混沌系统的真随机数发生器在设计电路上存在的缺点是:电路结构复杂,成本高,适用性弱。
技术实现要素:
针对上述问题,本申请提供一种基于二维混沌双螺旋的真随机数发生器,包括混沌电路和采样电路;
混沌电路用于产生具有双螺旋混沌特性的第一电压信号和第二电压信号,混沌电路的状态方程为:
采样电路的输入端分别耦合至混沌电路的输出端,用于根据第一电压信号和第二电压信号产生具有随机特性的数字信号。
一种实施例中,混沌电路包括:第一电路、第二电路和第三电路;
第一电路的输出端分别耦合至第二电路的输入端和第三电路的输入端,所述第一电路的输入端分别耦合至自身电路的输出端、所述第二电路的输出端和第三电路的输出端,用于根据所述自身电路的输出、第二电路的输出和第三电路的输出产生所述第一电压信号;
第二电路的输出端耦合至所述第一电路的输入端,所述第二电路的输入端耦合至所述第一电路的输出端和第三电路的输出端,用于根据所述第二电路的输出和第三电路的输出产生所述第二电压信号;
第三电路的输出端分别耦合至所述第一电路的输入端和第二电路的输入端,所述第三电路的输入端耦合至所述第一电路的输出端,用于根据所述第一电路的输出产生所述扩展电压。
一种实施例中,第一电路包括第一加法器和第一积分器;
第一加法器为反相三输入加法器,第一加法器的输出端耦合至第一积分器的输入端,第一加法器的输入端分别耦合至第一积分器的输出端、第二电路的输出端和第三电路的输出端;
第一加法器根据所述第一积分器、第二电路和第三电路的输出获得第一电压信号的被积函数;
第一积分器对被积函数积分后获取第一电压信号。
一种实施例中,第二电路包括第二加法器和第二积分器;
第二加法器为同相两输入加法器,第二加法器的输出端耦合至第二积分器的输入端,第二加法器的输出入分别耦合至第一积分器的输出端和第三电路的输出端,第二积分器的输出端耦合至第一加法器的输入端;
第二加法器根据第一积分器和第三电路的输出获得第二电压信号的被积函数;
第二积分器对被积函数积分后获取第二电压信号。
一种实施例中,第三电路为滞回比较器。
一种实施例中,采样电路包括第一施密特触发器、第二施密特触发器和异或门;
第一施密特触发器的输入端与第一积分器的输出端耦合,第二施密特触发器的输入端与第二积分器的输出端耦合,第一施密特触发器和第二施密特触发器的输出端均耦合至异或门的输入端。
依据上述实施例的真随机数发生器,根据本申请的混沌电路的状态方程设计的电路结构简单,功耗低,便于在各种工艺下进行移植,比较容易加入到真随机数发生器电路中。
附图说明
图1为混沌电路结构图;
图2为滞回比较器输出关系图;
图3为采样电路结构图;
图4为参数a为最优值时的仿真图;
图5为参数a为另一值时的仿真图;
图6为参数a为另一值时的仿真图。
具体实施方式
下面通过具体实施方式结合附图对本发明作进一步详细说明。
本例通过设计模拟电路实现一个二维混沌双螺旋的动力系统,该动力系统由两个矩阵表达式表示的混沌系统s1、s2和一个切换状态,其中s1的表达式和s2的表达式分别如下:
s1:
当系统在s1状态下,当x1正向穿过x1=1时,启用动力系统s2,当系统在s2状态下,当x1负向穿过x1=-1时,启用动力系统s1。
基于上述的二维混沌双螺旋的动力系统,本例提供一种基于二维混沌双螺旋动力系统的真随机数发生器,包括混沌电路1和采样电路2,其中,混沌电路1用于产生具有双螺旋混沌特性的第一电压信号和第二电压信号,采集电路2根据采集的第一电压信号和第二电压信号产生具有随机特性的数字信号。
为了设计简单结构的混沌电路1,本例基于上述的二维混沌动力系统构建混沌电路1的状态方程:
根据上述的状态方程设计的混沌电路1的电路结构图如图1所示,包括第一电路11、第二电路12和第三电路13,其中,第三电路13为滞回比较器,所以,第三电路13的输出s(v1)是滞回比较器的输入输出函数,第三电路13的关系图如图2所示,当v1正向穿过1v时,s(v1)由1.5v变为-1.5v;当v1负向穿过-1v时,s(v1)由-1.5v变为1.5v。
其中,第一电路11的输出端分别耦合至第二电路12的输入端和第三电路13的输入端,第一电路11的输入端分别耦合至自身电路的输出端、第二电路12的输出端和第三电路13的输出端,用于根据自身电路的输出、第二电路12的输出和第三电路13的输出产生第一电压信号;第二电路12的输出端耦合至第一电路11的输入端,第二电路12的输入端耦合至第一电路11的输出端和第三电路13的输出端,用于根据第二电路12的输出和第三电路13的输出产生第二电压信号;第三电路13的输出端分别耦合至第一电路11的输入端和第二电路12的输入端,第三电路13的输入端耦合至第一电路11的输出端,用于根据第一电路11的输出产生扩展电压。
具体的,第一电路11包括第一加法器111和第一积分器112,第一加法器111为反相三输入加法器,第一加法器111的输出端耦合至第一积分器112的输入端,第一加法器111的三输入端分别通过第一电阻r1耦合至第一积分器112的输出端,通过第二电阻r2耦合至第二电路12的输出端,通过第三电阻r3耦合至第三电路13的输出端,进一步,第一加法器111于三输入端的耦合处通过第四电阻r4耦合至第一加法器111的输出端,其中,第一电阻r1、第二电阻r2、第三电阻r3和第四电阻r4的阻值根据a的取值而设定;第一积分器112的输出为第一电压信号v1,第二电路12的输出为第二电压信号v2,第三电路13的输出为扩展电压s(v1),根据第一加法器111的虚短特性,并将第一加法器111的输出作为第一电压信号的被积函数,因此,第一加法器111的运算结果为:
第二电路12包括第二加法器121和第二积分器122,第二加法器121为同相两输入加法器,第二加法器121的输出端耦合至第二积分器122的输入端,第二加法器121的两输出入端分别通过第五电阻r5耦合至第一积分器112的输出端,通过第六电阻r6耦合至第三电路13的输出端,并于两输入端的耦合处通过第七电阻r7耦合至第二积分器122的输入端,第二积分器122的输出端通过第二电阻r2耦合至第一加法器111的输入端,其中,第五电阻r5、第六电阻r6和第七电阻r7的阻值根据a的取值而设定;第一积分器112的输出为第一电压信号v1,第三电路13的输出为扩展电压s(v1),根据第二加法器121的虚短特性,并将第二加法器121的输出作为第二电压信号的被积函数,因此,第二加法器121的运算结果为:
如图3所示,采样电路2包括第一施密特触发器21、第二施密特触发器22和异或门23,第一施密特触发器21的输入端与第一积分器112的输出端耦合,第二施密特触发器22的输入端与第二积分器122的输出端耦合,第一施密特触发器21和第二施密特触发器22的输出端均耦合至异或门23的输入端,第一施密特触发器21和第二施密特触发器22的参考电压均为接地点电压,第一施密特触发器21和第二施密特触发器22分别将第一电压信号和第二电压信号整形为方波信号后输出至异或门23,异或门23将第一电压信号和第二电压信号异或的结果作为随机数字信号输出。
本例中的a值及各电阻值和电容值优选的参数是:a的取值为108时,第一积分器112和第二积分器122中电阻设置为1kω,电容设置为1pf,第一电阻值r1设置为10kω,第二电阻值设置为1kω,第三电阻值设置为15kω,第四电阻值设置为1kω,第五电阻值设置为1kω,第六电阻值设置为15kω,第七电阻值设置为1kω,则根据混沌电路1的电路设计,获得的第一电压信号的被积函数和第二电压信号的被积函数分别为:
如果将a设置为107,则电容值相应设置为100ff,同样每隔10-12s,并连续记录106个v1与v2电压值的仿真结果如图5所示;进一步,如果将a设置为106时,则仿真结果如图6所示;由图4、图5和图6可知:不当的a值选取,将造成随机数解空间的缩小,甚至无法形成二维双螺旋轨迹,因此产生的随机数相关性较强,安全性较低,易于被攻击。
因此,本申请设计的状态方程,需要根据实际需求设置合适的参数a,然后再根据参数a设置相应的电阻值和电容值,最终使得设计的电路能提高随机数发生器输出随机数序列的统计特性,同时,与根据其他混沌系统的设计的随机数发生器相比,该电路使用的元器件较少,功耗较低。
由于混沌系统自身的不确定性,因此对混沌电路输出电压采样后就能得到一个不确定的随机序列,而通过二维双螺旋混沌动力系统的matlab仿真图可知,本例的混沌电路统计特性良好,取值分布平均,适用于作为真随机数发生器的随机源模块,而且,本例的混沌电路结构简单,功耗低,便于在各种工艺下进行移植。
以上应用了具体个例对本发明进行阐述,只是用于帮助理解本发明,并不用以限制本发明。对于本发明所属技术领域的技术人员,依据本发明的思想,还可以做出若干简单推演、变形或替换。