首页> 中国专利> 真随机数产生器与真随机数产生方法

真随机数产生器与真随机数产生方法

摘要

本发明揭露了一种真随机数产生器与真随机数产生方法。该真随机数产生器包含一采样电路与一随机数产生电路。该采样电路用来依据一时钟信号采样N个电容所决定的N个电压,以产生N个采样值,其中该N为正整数。该随机数产生电路用来依据该N个采样值的至少一部分产生一随机数。

著录项

  • 公开/公告号CN112230885A

    专利类型发明专利

  • 公开/公告日2021-01-15

    原文格式PDF

  • 申请/专利权人 瑞昱半导体股份有限公司;

    申请/专利号CN201910637803.0

  • 申请日2019-07-15

  • 分类号G06F7/58(20060101);

  • 代理机构11240 北京康信知识产权代理有限责任公司;

  • 代理人刘彬

  • 地址 中国台湾新竹

  • 入库时间 2023-06-19 09:33:52

说明书

技术领域

本发明涉及随机数产生器与随机数产生方法,尤其是涉及真随机数产生器与真随机数产生方法。

背景技术

随机数的应用在统计、工业、科学以及生活等领域都非常重要。随机数可由随机数产生器产生;随机数产生器分为伪随机数产生器(PRNG,Pseudo-Random NumberGenerator),以及真随机数产生器(TRNG,True-Random Number Generator)。伪随机数产生器采用算法产生伪随机数序列,但此法无法保证该伪随机数序列具有足够的不确定性,因此不适用于对安全性要求较高的领域。真随机数产生器是利用物理和工艺过程中的随机源来产生真随机数,通常用于对安全性要求很高的领域。

目前,多数移动智能设备和嵌入式装置使用由算法产生的伪随机数,这无法保证安全性。而真随机数的产生通常需要额外的外围硬件电路,因此成本、电路面积、与功耗会增加;另外,真随机数的产生由于实现方式复杂(例如:基于雷射相位波动的超高速量子技术)而难以被采用。对电子装置(例如:物联网(IOT)装置或消费性电子装置)而言,硬件成本的降低、电路面积的减少、功耗的降低等已成为共识,因此,如何在成本可控的前提下,提供一种实现方式简单、没有/很少额外的硬件开销、可靠、快速的真随机数产生器,对本领域而言相当重要。

发明内容

本发明的一目的在于提供一种真随机数产生器与真随机数产生方法,以避免先前技术的问题。

本发明揭露了一种真随机数产生器,其一实施例包含一采样电路与一随机数产生电路。该采样电路用来依据一时钟信号采样N个电容所决定的N个电压,以产生N个采样值,其中该N为正整数。该随机数产生电路用来依据该N个采样值的至少一部分产生一随机数。由于该N个电容的值会随着环境与噪声等因素而随机地变化,因此本实施例的真随机数产生器利用了该N个电容的值来产生该随机数。

本发明还揭露一种真随机数产生方法,其一实施例包含下列步骤:依据一时钟信号采样N个电容所决定的N个电压,以产生N个采样值,其中该N为正整数;以及依据该N个采样值的至少一部分产生一随机数。由于该N个电容的值会随着环境与噪声等因素而随机地变化,因此本实施例的真随机数产生方法利用了该N个电容的值来产生该随机数。

有关本发明的特征、实际操作与效果,配合图式做优选实施例详细说明如下。

附图说明

图1显示本发明的真随机数产生器的一实施例;

图2显示图1的采样电路的流水线作业;

图3a显示图1的采样电路的一实施例;

图3b显示图1的采样电路依序取样N个电容的一实施例的示意图;

图4显示随机数产生电路的一实施例;

图5显示随机数产生电路的另一实施例;

图6显示随机数产生电路的又一实施例;

图7显示本发明的真随机数产生器的另一实施例;

图8显示本发明的真随机数产生方法的一实施例的流程图;以及

图9显示本发明的真随机数产生方法的另一实施例的流程图。

具体实施方式

本发明揭露一种真随机数产生器与方法。由于芯片引脚(pin)及芯片引脚所连接的PCB线路中存在着寄生电容,而这些寄生电容的值会随着温度、湿度、噪声等因素而随机地变化,故本发明的真随机数产生器与方法利用这些寄生电容的值来产生随机数。值得注意的是,在实施为可能的前提下,本发明可利用其它寄生电容来产生随机数;此外,若一非寄生电容与芯片引脚相连,本发明也可利用该非寄生电容的电容值来产生随机数。

图1显示本发明的真随机数产生器的一实施例。图1的真随机数产生器100耦接N个电容12(C

请参阅图1。在意实际操作范例中,采样电路110以流水线(pipeline)的方式进行采样。详言之,如图2所示,在采样电路110依据一采样致能信号而被致能的期间内,对该时钟信号CLK的每个时钟周期而言,当该时钟信号CLK为一第一电平(例如:高电平)时,采样电路110充电N个电容12的至少其中之一;在该时钟信号CLK的一电平转变期间内(例如:该时钟信号的下降沿),采样电路110采样被充电电容的电压以产生至少一采样值(例如:数字值);在该时钟信号CLK为一第二电平(例如:低电平)时,采样电路110放电被充电电容。通过上述流水线作业,该至少一采样值可反映环境和噪声因素对被充电电容的影响。采样电路110可依序对N个电容12进行上述流水线式的采样,以输出N个数字值给随机数产生电路120,从而随机数产生电路120可依据该N个数字值的至少一部分产生随机数。值得注意的是,流水线作业所对应的充放电波形并无特定限制。

图3a显示采样电路110的一实施例,包含一电流源310(例如:可调电流源)以及一模拟至数字转换器(ADC,analog-to-digital converter)(例如:单信道或多信道ADC)320。电流源310用来提供至少一采样电流以直接地或间接地(例如:通过ADC 320)充电/放电N个电容12。ADC 320用来将N个电容12的电压转换为N个采样值。另外,采样电路110可进一步包含或连接一稳压电路(未显示于图),以提供一稳定电压给ADC 320。值得注意的是,由于噪声与环境因素的影响,该N个采样值是真随机数;举例而言,若ADC 320为一12位ADC,在环境变化缓慢、无强噪声且无恶意干扰的情形下,该N个采样值的每一个与一基线电容值(亦即:在一预定条件下的电容值,例如是各电容在该预定条件下的首次采样值)之间的差值的变化范围可能介于±10至±30之间,上述变化范围的背景条件例如是5μA充电电流及10pF基线电容值。另外值得注意的是,采样电路110可依序采样N个电容12的电压;举例而言,如图3b所示,采样电路110在ADC 320被致能的期间内依序采样电容C

图4显示随机数产生电路120的一实施例,包含一缓冲电路410(例如:先进先出缓冲器(FIFO))与一数据处理电路420。缓冲电路410用来暂存该N个采样值的至少一部分。数据处理电路420用来依据一默认算法处理缓冲电路410所储存的采样值的至少一部分,以产生该随机数。举例而言,采样电路110采样N个电容12的电压,并将该N个采样值储存至缓冲电路410(在此为FIFO 410)中,当FIFO 410的空间满了,FIFO 410内最旧的采样值会被最新的采样值取代,因此,基于FIFO 410的存取原理,FIFO 410中的X笔数据可能是N个电容12中不连续的X个电容的X个采样值的部分或全部数据;接着,数据处理电路420从FIFO 410中取得该X笔数据,并取得各笔数据的Y个位(例如:连续或不连续的Y个位),数据处理电路420再利用所取得的数据依据该默认算法产生一新数字值,该新数字值作为该随机数。在一实际操作范例中,该默认算法用来将各笔数据的Y个位以至少一种默认方式(例如:顺序、逆序、交叉)拼接,以合成出该新数字值;然而此并非本发明的实施限制。在一实际操作范例中,前述X为介于3与33之间的整数(3

图5显示随机数产生电路120的另一实施例。相较于图4,图5进一步包含一噪声监测电路510与一异常检测电路520,其可接收缓冲电路410的数据,并可选择性地与数据处理电路420协同运作。噪声监测电路510用来监测环境温度、湿度、电磁干扰、电源噪声等对N个电容12的基线电容值的影响,以依据至少一噪声阈值与N个电容12的基线电容值(例如:储存缓冲电路410或图7的储存电路710的基线电容值)来判断缓冲电路410中的N个采样值是否有效。举例而言,该至少一噪声阈值包含一正向噪声阈值与一负向噪声阈值,当一电容的采样值大于/小于该电容的基线电容值时(或说两者之间的差值的极性为1/0时),若该差值小于该正向/负向噪声阈值,噪声监测电路510判断该电容的采样值有效,反之则判断该采样值无效并丢弃该采样值。异常检测电路520用来依据一预设条件来判断该N个采样值是否处于一正常状态。举例而言,异常检测电路520依据一电容的采样值或依据该采样值与ADC320的采样极限来判断是否有异常强干扰或者恶意攻击;当异常检测电路520检测到该电容的采样值持续处于该ADC 320的采样极限附近、或持续等于该采样极限(最大或最小采样极限)、或持续为定值时,异常检测电路520直接地或间接地(例如:通过图7的控制电路720)调整电流源310的采样电流,以试着将该电容的采样值稳定于该电容的基线电容值附近以处于随机变化状态;在该采样电流被调整了预定次数后,若该电容的采样值依然异常,异常检测电路520直接地或间接地(例如:通过图7的控制电路720)令该电容被停用;若所有电容或超过一预定数量比例的电容被停用,随机数产生电路120停止产生随机数,并发出警示(例如:给前述主机的警示)。

图6显示随机数产生电路120的又一实施例。相较于图5,图6进一步包含一自校准电路610。自校准电路610用来依据一当前电容的当前采样值与该当前电容的基线电容值,判断是否更新该当前电容的基线电容值(例如:储存于图7的储存电路710的基线电容值)。举例而言,自校准电路610包含固定或可调的自校准阶梯与自校准因子;自校准电路610获取缓冲电路410的一当前采样值,当该当前采样值有效,自校准电路610依据一自校准算法和当前的自校准参数设定,对该当前采样值与一当前基线电容值之间的一当前差值执行一预设处理(例如:数据加权处理)以得到一处理差值;当该处理差值大于该自校准因子时,自校准电路610依据该自校准阶梯更新该当前基线电容值(例如:该当前的基线电容值加上/减去一个自校准阶梯的值);当该处理差值小于该自校准因子时,自校准电路610记录该当前差值,且不更新该当前基线电容值,之后自校准电路610会依据被记录的差值与最新取得的差值执行该预设处理。由于实际的环境因素的变化通常是缓慢的,通过上述做法,自校准电路610可以有效地依据缓慢的环境因素变化调整一电容的基线电容值,以避免将该缓冲变化所导致的累积噪声误判为恶意干扰;此外,该做法不会因脉冲式、持续且严重的噪声干扰而对基线电容值进行大幅校准,从而该异常干扰可被准确地判断为恶意攻击。值得注意的是,自校准电路610可周期地/非周期地执行校准;举例而言,自校准电路610依据采样电路110的采样周期执行校准。

图7显示本发明的真随机数产生器的另一实施例。相较于图1,图7的真随机数产生器700进一步包含一时钟信号产生电路705、一储存电路710、一控制电路720、以及一仲裁电路(arbitration circuit)730。时钟信号产生电路705用来产生前述时钟信号CLK。储存电路710用来提供至少一参数的初始值或当前值给真随机数产生器700中需要参数的电路(例如:采样电路110与随机数产生电路120);举例而言,该至少一参数包含采样参数、随机数合成参数、噪声监测参数、异常检测参数等,其中采样参数包括采样电流的设定、采样笔数、休眠周期等,随机数合成参数包括前述X与Y的值以及前述数据合成方式等,噪声监测参数包含前述至少一噪声阈值与各电容的基线电容值等,异常检测参数包含前述采样极限或预设条件等。控制电路720用来控制真随机数产生器700中的电路(例如:采样电路110、随机数产生电路120、时钟信号产生电路705、储存电路710、以及仲裁电路730)的运作;举例而言,控制电路720控制时钟信号CLK的频率及/或输出、控制采样电路110采样特定电容、控制各电路的处理时序以及各电路的致能/禁能、以及控制各电路的参数的加载、更新及/或储存。仲裁电路730电性连接于采样电路110与随机数产生电路120之间,用来输出该N个采样值至随机数产生电路120与一外部电路(未显示于图)的至少其中之一,因此,在无需产生随机数时,采样电路110可移作他用。在一替代实施例中,本发明的真随机数产生器借助外部时钟信号产生电路、外部储存电路与外部控制电路的至少其中之一来运作。

图8显示本发明的真随机数产生方法的一实施例的流程图,包含:

步骤S810:上电复位(power on and reset)。

步骤S820:加载采样参数与随机数合成参数。

步骤S830:致能采样功能与随机数产生功能。

步骤S840:判断是否收到随机数请求。

步骤S842:读取X笔数据。

步骤S844:读取各采样值的Y个位。

步骤S846:产生随机数。

步骤S850:采样当前电容以取得采样值。

步骤S860:将采样值存入储存电路。

步骤S870:判断当前电容是否为最后一个电容。

步骤S880:采样下一电容。

步骤S890:休眠直到下一采样周期开始或直接开始下一采样周期。

值得注意的是,步骤S840至S846可在随机数产生功能被致能后,不管步骤S850至S890而循环执行;步骤S850至S890可在采样功能被致能后,不管步骤S840至S846而循环执行。

图9显示本发明的真随机数产生方法的另一实施例的流程图。相较于图8,图9结合了智能防护方法。进一步包含:

步骤S910:判断采样值与基线电容值间的差值是否为正(极性为1)且小于正向噪声阈值,或者该差值是否为负(极性为0)且小于负向噪声阈值。

步骤S920:基线电容值自校准。

步骤S930:判断采样值是否恒定或者逼近/等于采样极限。

步骤S940:丢弃采样值。

步骤S942:未被停用的电容的循环开关以供采样。

步骤S950:采样电流调整以及调整次数加1。

步骤S960:判断调整次数是否大于预定次数(例如:A次,A为正整数)。

步骤S970:判断是否所有电容都被停用。

步骤S980:停用当前电容。

步骤S990:停止产生随机数。

值得注意的是,步骤S840至S846可在随机数产生功能被致能后,不管步骤S850至S990而循环执行;步骤S850至S990可在采样功能被致能后,不管步骤S840至S846而循环执行。

由于本领域具有通常知识者可参考前示装置实施例的说明来了解图8至图9的方法实施例的细节与变化,重复及冗余的说明在此省略。

请注意,在实施为可能的前提下,本技术领域具有通常知识者可选择性地实施前述任一实施例中部分或全部技术特征,或选择性地实施前述多个实施例中部分或全部技术特征的组合,由此增加本发明实施时的弹性。

综上所述,本发明的真随机数产生器与方法的实现方式简单、没有/很少额外的硬件开销、可靠、且快速。

虽然本发明的实施例如上所述,然而这些实施例并非用来限定本发明,本技术领域具有通常知识者可依据本发明的明示或隐含的内容对本发明的技术特征施以变化,凡此种种变化均可能属于本发明所寻求的权利要求保护范畴,换言之,本发明的权利要求保护范围须视本说明书的权利要求范围所界定者为准。

【符号说明】

100 真随机数产生器

110 采样电路

120 随机数产生电路

12 N个电容(C

CLK 时钟信号

310 电流源

320 ADC(模拟至数字转换器)

410 缓冲电路

420 数据处理电路

510 噪声监测电路

520 异常检测电路

610 自校准电路

700 真随机数产生器

705 CLK产生电路(时钟信号产生电路)

710 储存电路

720 控制电路

730 仲裁电路

S810至S890 步骤

S910至S990 步骤。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号