一种全数字逻辑电路实现的真随机数发生器的制作方法

文档序号:12063319阅读:1567来源:国知局
一种全数字逻辑电路实现的真随机数发生器的制作方法与工艺

本发明主要涉及信息安全集成电路领域,特指一种真随机数发生器技术。



背景技术:

随着计算机、信息化技术及物联网的高速发展,信息成为一种极具价值的财富。信息安全及其保护措施成为一个重要的研究课题。信息安全以密码学理论为基础而展开,而随机数发生器(简称RNG)是密码学理论的一个不可缺少的重要组成部分,在加密,数字签名等多个环节都需要使用随机数。具体来讲,随机数发生器用于产生不可预测的随机数序列,为以密码学为基础的信息安全技术的实现提供基本组件。

随机数发生器一般分为两类:伪随机数发生器和真随机数发生器。伪随机数发生器是一种以确定的计算法则得到的确定的随机数序列,如果可以获取到伪随机数发生器的计算法则及其关键参数则可以预测将要产生的随机数。一般用于事先协商好伪随机数计算法则,点对点交换信息的加密场合。真随机数发生器则需要不可控,不可预测,不可复制的随机因素参与,产生完全不可预测的随机数序列;真随机数的应用更加广泛,是密码学的必要组成部分。

随着集成电路(Integrated Circuit,简称IC或芯片)技术的高速发展,集成于芯片内部的真随机数发生器成为研究热点。目前,基于集成于芯片内部实现的真随机数发生器方案的基本思路都是利用模拟电路实现的,例如直接放大噪声、模拟混沌算法,或者频率采样。这些方案存在以下不足:1,模拟电路实现需要人工设计仿真电路,人工手工布图,且完成后不利于多个项目的复用(特别是不同工艺的项目),因此设计成本相对较高;2,模拟电路实现方式只能被集成到芯片的一个局部位置,其随机噪声源相对集中,可能影响随机性;3,由于模拟版图在芯片中极易被辨识,很多针对信息安全芯片的攻击是找到随机数发生器的位置,利用各种手段破环随机数电路。例如利用FIB设备切断随机数的供电电源或者信号输出,导致安全性降低。

需要一种低成本、高安全的真随机数发生器。



技术实现要素:

本发明主要解决的技术问题是提供一种全数字逻辑单元实现的真随机数发生器,以极低的成本、极易实施的方式,实现一种具有较高抗攻击能力的真随机数序列产生装置。

本发明为解决技术背景中描述的问题,所采用的技术方案为:

一种全数字逻辑单元实现的真随机数发生器,如图1,包括:N路(N大于等于1)组合逻辑振荡环模块,异或逻辑模块以及采样处理逻辑模块。组合逻辑振荡环是由带有奇数次反向逻辑功能的组合逻辑单元串联而成,用于产生不规则的高频振荡信号;N路彼此不相关联的组合逻辑振荡环输出的高频信号经过异或逻辑模块两两异或后,合并产生一路不规则的高频振荡信号,之后送采样处理模块;采样处理模块是由从外部输入的采样时钟信号驱动的时序逻辑(触发器或锁存器)组成,用于采样异或逻辑模块产生的不规则高频信号,并对其进行随机性均衡及时序同步处理,之后输出。特点在于,所有功能模块都由数字集成电路标准逻辑单元搭建而成,其实现电路可以分散在集成电路数字逻辑版图之中,以此得到本发明的三大优势:1,全逻辑实现,成本极低;2,数字逻辑电路工作时产生的噪声会影响组合逻辑振荡环的输出特性,保证了较高的随机性;3,实现电路的每个标准单元可分散在芯片整体数字逻辑之中,很难被识别,大大提高了抗攻击能力,保证了较高的安全性。

所述的一种全数字逻辑单元实现的真随机数发生器,其中:

N路组合逻辑振荡环模块呈并联关系,其N路信号输出,皆送至异或逻辑模块,异或逻辑模块将N路信号以异或逻辑方式合并为一路信号输出,送采样处理模块。即N路组合逻辑振荡环模块并联后,与异或逻辑模块及采样处理模块呈串联关系。

N路组合逻辑振荡环皆由数字逻辑的标准门单元组成,包括但不限于,反相器单元INV、与非门单元NAND、或非门单元NOR等带逻辑反向功能的标准门单元,以及延时单元BUF、与门单元AND、或门单元OR、异或门单元XOR、复选器门单元MUX等。每路组合逻辑振荡环所包含的标准门单元类型、数量及其连接方式不尽相同。如图2示意,组合逻辑振荡环包含一个标准与门单元AND(21)、若干个标准反相器单元INV(22)以及一个复选器单元MUX(23)。其中,与门单元AND、反相器单元INV及复选器单元串联,且复选器的输出接到与门单元AND(21)的输入端,形成首尾相连的一个组合逻辑环。与门单元AND(21)的另外一路输入端与外部输入的使能信号相接。当使能控制信号为逻辑1时,组合逻辑环开始工作,并输出振荡信号,相反地,使能信号为逻辑0时,组合逻辑环不工作,输出恒定逻辑。复选器单元MUX(23)在其切换控制信号的控制下,用于改变组合逻辑环上串联的反相器INV的数目。反相器INV的数目需要满足条件:无论复选器选择哪一路,组合逻辑环上的标准门单元总共形成奇数次逻辑反向,且组合逻辑环上形成逻辑反向的次数须大于等于3次,为提高随机数质量,组合逻辑环上形成逻辑反向的次数为素数。

包含奇数个逻辑反向单元串联的组合逻辑振荡环会输出一定标称频率f0的振荡信号,信号频率f0由单元内组合逻辑环上标准门单元的延时之和t来决定,f0=2/t。通过选择合适的标准门单元的数目,使得t的范围应尽量小,振荡频率f0尽量高,t的微小变化,可引起f0的较大的变化。实际电路实现时,环路延时t受芯片工艺偏差、电路寄生、工作温度、工作电压、工作电流等因素影响而无规则变化;另外,由于形成延时的标准门单元被分散在数字逻辑之中,数字逻辑翻转形成的电路噪声会直接影响环路延时t。从而,每一路组合逻辑振荡环输出信号的实际频率f不是恒定的,而是在标称频率f0周围随机变化的;不同组合逻辑振荡环,由于所包含的标准单元类型、数量及连接方式的不同,所处的工作条件不同,输出信号的实际频率变化没有关联,相互独立。

如图3示意,将N路相互独立的组合逻辑振荡环输出的高频信号,经过异或逻辑模块进行两两异或处理,每两路异或后输出一路信号,再将这些输出信号进行两两异或处理,以此类推。最终,N路组合逻辑振荡环输出的信号经过异或逻辑模块后输出一路频率随机变化的信号。选择合适的N值,且每一路组合逻辑振荡环,设计合适的标称频率,使N路组合逻辑振荡环输出信号经过异或处理后,得到信号实际频率随机性较好。以上所述,异或逻辑模块,由数字逻辑标准门单元组成,包括但不限于,异或门单元XOR。

采样逻辑模块由数字逻辑标准门单元及标准D触发器组成,如图4所示,包括:一个用于采样的标准D触发器(41)、若干个标准D触发器组成的时序处理电路(42)、一个用于同步输出的标准D触发器(43),以及由数字逻辑标准门单元组成的逻辑处理电路(44,45)。外部输入的采样时钟信号驱动所有的标准D触发器的时钟端。

从异或逻辑模块输出的频率随机变化的高频信号被送入采样逻辑模块的采样D触发器(41)的数据端,采样D触发器的输出端输出的信号与时序处理电路(42)输出的一组信号经过逻辑处理(45,44)后反馈回时序处理电路(42)的D触发器组的数据端。时序处理电路输出信号经过逻辑处理电路(45)后产生一路信号送同步输出D触发器(43),同步输出D触发器的数据输出端,输出满足理想随机性分布的真随机数序列。

以上表述中,时序处理电路包含一个处理算法的电路实现,处理算法可以为,但不限于一种哈希算法(有名散列算法),例如MD5,SHA,SM3等,或者一种对称加密算法,例如DES,AES,SM4等,或者其它轻量级算法,例如LFSR,CRC等。

以上表述中,采样时钟频率fs与从组合逻辑振荡环输出的高频信号的实际频率f之间的关系满足以下关系:fs/f的百分比例值小于采样时钟频率精度的百分比例值。即如果采样时钟频率fs的精度为1%,则高频信号的平均值f必须大于100倍的fs。

本发明的优点在于:

1,本发明所述的真随机数发生器方案完全用数字集成电路逻辑标准单元在芯片内实现,可借助硬件描述语言以及数字后端处理EDA工具自动实现,成本极低;

2,方案实现所有电路组成部分都分散在芯片整体数字逻辑之中,数字逻辑电路工作时产生的噪声会导致组合逻辑振荡环路的输出频率随机抖动,保证了该方案较高的随机性;

3,方案实现所有电路组成部分都分散隐藏在芯片整体数字逻辑之中,极难被识别,大大提高了抗攻击能力,保证了较高的安全性。

附图说明:

图1为本发明所述一种全数字逻辑单元实现的真随机数发生器的原理方案

图2为本发明所述组合逻辑振荡环模块内部组成结构图

图3为本发明所述异或逻辑模块内部组成结构图

图4为本发明所述采样逻辑模块内部组成结构图

图5为本发明所述一种全数字逻辑单元实现的真随机数发生器的一种电路实现

具体实施:

为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图对本发明的具体实施方式做详细的说明。

本发明所述的一种全数字逻辑单元实现的真随机数发生器的一种电路实现参见图5。采用了两路组合逻辑振荡环,其中一路由标准与门单元(51)、7个标准反相器单元及一个复选器单元(54)串联且首尾相连组成;另一路由标准与门单元(55),13个标准反相器单元及一个复选器单元(58)串联且首尾相连组成。第一路组合逻辑振荡环中复选器单元(54)的切换控制端由第二路组合逻辑振荡环复选器单元(58)的输出端输出的信号控制,第二路组合逻辑振荡环中复选器单元(58)的切换控制端由第一路组合逻辑振荡环复选器单元(54)的输出端输出的信号控制。两路组合逻辑振荡环复用一个使能控制信号。

两路组合逻辑振荡环的输出信号送接到由一个标准异或门单元(59)组成的异或逻辑。

异或门输出端输出的信号接到由采样时钟驱动的采样触发器(60),采样触发器输出端输出信号送一个由采样时钟驱动的AES算法模块(61),AES算法模块输出信号送由采样时钟驱动的输出同步触发器(62)。同步触发器输出端输出信号即为随机数序列。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1