CN107797788B - 一种随机数发生装置、真随机数发生器及系统级芯片 - Google Patents
一种随机数发生装置、真随机数发生器及系统级芯片 Download PDFInfo
- Publication number
- CN107797788B CN107797788B CN201711071845.XA CN201711071845A CN107797788B CN 107797788 B CN107797788 B CN 107797788B CN 201711071845 A CN201711071845 A CN 201711071845A CN 107797788 B CN107797788 B CN 107797788B
- Authority
- CN
- China
- Prior art keywords
- random number
- clock signal
- frequency
- module
- clock signals
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/58—Random or pseudo-random number generators
- G06F7/588—Random number generators, i.e. based on natural stochastic processes
Landscapes
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computational Mathematics (AREA)
- Mathematical Analysis (AREA)
- Mathematical Optimization (AREA)
- Pure & Applied Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Stabilization Of Oscillater, Synchronisation, Frequency Synthesizers (AREA)
- Storage Device Security (AREA)
Abstract
本发明公开了一种随机数发生装置、真随机数发生器及系统级芯片,包括:时钟信号生成模块,用于生成频率相同且相位相反的两个低频的时钟信号;时钟信号处理模块,包括检测模块、分频模块和输出模块;检测模块,用于检测生成的两个时钟信号是否异常;分频模块,用于对来自时钟树的时钟信号进行分频,得到频率相同且相位相反的两个时钟信号;输出模块,用于在检测出生成的两个时钟信号未异常时,输出生成的两个时钟信号,在检测出生成的两个时钟信号异常时,输出分频得到的两个时钟信号;还包括:随机数生成模块,用于根据输出模块输出的两个时钟信号生成随机数。从本发明实施例可见,降低了产生的随机数是可预测性的概率。
Description
技术领域
本发明涉及加解密技术,尤指一种随机数发生装置、真随机数发生器及系统级芯片。
背景技术
随着科技的发展,数据安全越来越重要,可以使用密钥对数据加密来保证数据的安全。具体地,通过系统级芯片(System On Chip,SOC)中的随机数发生器产生随机数,将该随机数作为密钥对数据加密。随机数发生器产生的随机数的随机性越高,加密的数据就安全,因此随机数的随机性问题是随机数发生器在设计时主要考虑的问题。
在相关技术中,随机数发生器有两种,分别是伪随机数发生器和真随机数发生器。伪随机数发生器按照预先设置的算法产生随机数,但是,由于该算法是固定的,可以根据该算法预测到随机数,也就是说伪随机数产生的随机数是可以预测的。相比较伪随机数发生器,真随机数发生器的随机数发生装置包括时钟信号生成模块和随机数生成模块,时钟信号生成模块用于生成频率相同且相位相反的两个时钟信号,该两个时钟信号分别为随机数生成模块的工作时钟信号和采样时钟信号,随机数生成模块根据工作时钟信号和采样时钟信号生成随机数,真随机数发生器生成的随机数是不可预测的。但是,如果对时钟信号生成模块进行攻击,会使得时钟信号生成模块输出的两个时钟信号异常,从而导致随机数生成模块生成的随机数就是可以预测的。
发明内容
为了解决上述技术问题,本发明提供了一种随机数发生装置、真随机数发生器及系统级芯片,能够降低产生的随机数是可预测性的概率。
为了达到本发明目的,本发明提供了一种随机数发生装置,包括:
时钟信号生成模块,用于生成频率相同且相位相反的两个低频的时钟信号;
时钟信号处理模块,包括检测模块、分频模块和输出模块;其中,
检测模块,用于检测生成的两个时钟信号是否异常;
分频模块,用于对来自时钟树的时钟信号进行分频,得到频率相同且相位相反的两个时钟信号;
输出模块,用于在检测出生成的两个时钟信号未异常时,输出生成的两个时钟信号,在检测出生成的两个时钟信号异常时,输出分频得到的两个时钟信号;随机数发生装置还包括:
随机数生成模块,用于根据输出模块输出的两个时钟信号生成随机数。
进一步地,如果所述随机数生成模块的数量为两个或两个以上,还包括:
第一运算模块,用于通过预先设置的密码算法对两个或两个以上所述随机数生成模块生成的随机数进行加密运算。
进一步地,所述运算模块具体用于,
按照预先设置的规则将两个或两个以上所述随机数生成模块生成的随机数分成两份;
对于每一份中的两个或两个以上的随机数,将该两个或两个以上的随机数进行异或运算,使用异或运算得到的随机数替换该两个或两个以上的随机数;
将两份中的随机数分别作为密钥和待加密的数据,通过该密钥和所述预先设置的密码算法对该待加密的数据进行加密运算。
进一步地,还包括:
单比特频数检测模块,用于检测所述加密运算得到的随机数中0的总个数和1的总个数,计算检测出的0的总个数和1的总个数之间的差值,若计算出的差值小于或等于预先设置的第一阈值,则输出所述加密运算得到的随机数;若计算出的差值大于该第一阈值,则使所述随机数生成模块重新执行所述生成随机数的步骤。
进一步地,所述时钟信号生成模块的数量等于所述时钟信号处理模块的数量;
所述随机数生成模块的数量大于或等于所述时钟信号处理模块的数量。
进一步地,所述时钟信号生成模块包括:第一频率发生器和反相器;其中,
第一频率发生器的输出端与反相器的输入端相连,反相器的输出端与所述时钟信号处理模块的输入端相连;
第一频率发生器,用于生成时钟信号,作为所述生成的两个时钟信号中的一个时钟信号;
反相器,用于对第一频率发生器生成的时钟信号进行处理,得到与第一频率发生器生成的时钟信号频率相同且相位相反的时钟信号,作为所述生成的两个时钟信号中的另一个时钟信号。
进一步地,所述时钟信号生成模块还包括:
第二频率发生器,设置在所述第一频率发生器的预先设置的区域内,第二频率发生器用于生成用于诱导攻击者攻击第二频率发生器的时钟信号。
进一步地,所述时钟信号生成模块的数量为两个或两个以上,任两个所述时钟信号生成模块中的第一频率发生器的距离大于预先设置的第二阈值。
进一步地,所述第一频率发生器为用于生成抖动的低频时钟信号的振荡器。
进一步地,所述时钟信号处理模块具体用于,
检测所述生成的两个时钟信号的频率;
若该检测的时钟信号的频率等于0或者该检测的时钟信号的频率变化幅度大于预先设置的第三阈值,则检测出所述生成的两个时钟信号异常,若该检测的时钟信号的频率不等于0且该检测的时钟信号的频率变化幅度小于或等于预先设置的第三阈值,则检测出所述生成的两个时钟信号未异常。
本发明提供一种真随机数发生器,包括上述技术方案中任一项所述的随机数发生装置。
进一步地,如果所述随机数发生装置的数量为两个或两个以上,还包括:
第二运算模块,用于对两个或两个以上所述随机数发生装置输出的随机数进行异或运算。
本发明提供一种系统级芯片,包括上述技术方案中任一项所述的真随机数发生器。
本发明实施例至少包括:时钟信号生成模块,用于生成频率相同且相位相反的两个低频的时钟信号;时钟信号处理模块,包括检测模块、分频模块和输出模块;其中,检测模块,用于检测生成的两个时钟信号是否异常;分频模块,用于对来自时钟树的时钟信号进行分频,得到频率相同且相位相反的两个时钟信号;输出模块,用于在检测出生成的两个时钟信号未异常时,输出生成的两个时钟信号,在检测出生成的两个时钟信号异常时,输出分频得到的两个时钟信号;随机数发生装置还包括:随机数生成模块,用于根据输出模块输出的两个时钟信号生成随机数。从本发明实施例可见,如果时钟信号生成模块生成的两个时钟信号异常,说明该时钟信号生成模块被攻击,那么输出由时钟树上的时钟信号分频得到的两个时钟信号,而非输出该异常的两个时钟信号。由于时钟信号生成模块被攻击,时钟树并不是攻击目标,也就是说时钟树不会受到影响,即使攻击者对时钟树进行攻击,时钟树的各部分是分散分布的,不容易受到攻击,也就是说时钟树上的时钟信号是异常的概率比较小,因此,使用由时钟树上的时钟信号分频得到的两个时钟信号来生成随机数,降低了产生的随机数是可预测性的概率,从而保证了随机数发生装置产生的随机数的质量。
本发明的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本发明而了解。本发明的目的和其他优点可通过在说明书、权利要求书以及附图中所特别指出的结构来实现和获得。
附图说明
附图用来提供对本发明技术方案的进一步理解,并且构成说明书的一部分,与本申请的实施例一起用于解释本发明的技术方案,并不构成对本发明技术方案的限制。
图1为本发明实施例提供的一种随机数发生装置的结构示意图;
图2为本发明实施例提供的一种随机数生成模块的结构示意图;
图3为本发明实施例提供的另一种随机数发生装置的结构示意图;
图4为本发明实施例提供的一种时钟信号生成模块和时钟信号处理模块的结构示意图;
图5为本发明实施例提供的一种真随机数发生器的结构示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚明白,下文中将结合附图对本发明的实施例进行详细说明。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互任意组合。
在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行。并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
本发明实施例提供一种随机数发生装置,如图1所示,该随机数发生装置11包括:
时钟信号生成模块111,用于生成频率相同且相位相反的两个低频的时钟信号。
时钟信号处理模块112,包括检测模块、分频模块和输出模块;其中,检测模块,用于检测生成的两个时钟信号是否异常;分频模块,用于对来自时钟树的时钟信号(即图1中的CLK3)进行分频,得到频率相同且相位相反的两个时钟信号;输出模块,用于在检测出生成的两个时钟信号未异常时,输出生成的两个时钟信号,在检测出生成的两个时钟信号异常时,输出分频得到的两个时钟信号。
随机数发生装置11还包括:
随机数生成模块113,用于根据输出模块输出的两个时钟信号生成随机数。
由于时钟信号生成模块111生成的是低频的两个时钟信号,根据该低频的两个时钟信号生成的随机数的随机性比较好,而时钟树上的时钟信号不是低频信号,根据来自时钟树的时钟信号生成的随机数的随机性不好,因此,优先使用时钟信号生成模块111生成的时钟信号。其中时钟树不仅为随机数发生装置11提供用于生成随机数所需的时钟信号,还为其他模块(例如微处理器)提供时钟信号。如果检测模块检测出时钟信号生成模块111生成的两个时钟信号异常,说明时钟信号生成模块111被攻击,其生成的两个时钟信号不可靠,输出模块输出来自时钟树的时钟信号分频得到的两个时钟信号,从而利用该分频得到的两个时钟信号生成随机数。由于时钟信号生成模块111被攻击,而时钟树并不是攻击目标,也就是说时钟树不会受到影响,即使攻击者对时钟树进行攻击,时钟树的各部分是分散分布的,不容易受到攻击,也就是说时钟树上的时钟信号是异常的概率非常小,因此,使用由时钟树上的时钟信号分频得到的两个时钟信号来生成随机数,可以有效地降低生成的随机数是可预测的概率。本发明区别于相关技术中的直接使用时钟信号生成模块111生成的两个时钟信号生成随机数,也就是说相关技术中并未对时钟信号生成模块111生成的两个时钟信号进行异常检测。输出模块输出的是频率相同且相位相反的两个时钟信号,即图1中的CLK1和CLK2。可以理解的是,分频模块是数字分频器,数字分频器分频的实现可以采用相关技术中的方式实现,具体实现并不用于限定本发明的保护范围,这里不再赘述。
时钟信号处理模块112的输出模块输出的两个时钟信号分别是随机数生成模块113的工作时钟信号和采样时钟信号。对于随机数生成模块113,具体地,如图2所示,随机数生成模块113包括:真随机源1131、采样器1132、在线检测模块1133、数据选择器1134(multiplexer,简称MUX)、线性反馈移位寄存器1135(Linear Feedback Shift Register,简称LFSR)和寄存器组1136;其中,真随机源1131用于根据CLK1生成随机数;采样器1132用于根据CLK2对真随机源1131生成的随机数进行采样,具体通过CLK2对真随机源1131生成的随机数延迟一拍进行采样,该采样器1132为D触发器;在线检测模块1133用于对采样器1132采样到的随机数进行开方检测,以检测采样器1132采样到的随机数中连续的0的个数和连续的1的个数,如果连续的0的个数大于预先设置的数值或者连续的1的个数大于预先设置的数值,检测出采样器1132采样到的随机数不合格,真随机数源重新生成随机数,如果检测出连续的0的个数小于或等于预先设置的数值以及连续的1的个数小于或等于预先设置的数值,检测出采样器1132采样到的随机数合格,输出采样器1132采样到的随机数;数据选择器1134用于选择在线检测模块1133输出的随机数;线性反馈移位寄存器1135用于加载在线检测模块1133输出的随机数,即将该随机数放置到线性反馈移位寄存器1135中,将该随机数与预先设置的序列数进行异或运算,将异或运算的结果反馈到该采样到的随机数中,并对该采样到的随机数进行移位,得到新的随机数;寄存器组1136,用于将线性反馈移位寄存器1135移位得到的随机数传输到预先设置的时钟域中以供软件读取,最终得到一组随机数Trng_out。提供给寄存器组1136的时钟信号(即图2中的CLK4)是时钟树上的时钟信号。
进一步地,在图1对应实施例的基础上,如果随机数生成模块113的数量为两个或两个以上,本发明实施例提供另一种随机数发生装置,如图3所示,随机数发生装置11还包括:
第一运算模块114,用于通过预先设置的密码算法对两个或两个以上随机数生成模块113生成的随机数进行加密运算。
可以理解的是,随机数生成模块113的数量为一个、两个或两个以上,如果随机数生成模块113的数量为两个或两个以上,那么两个或两个以上随机数生成模块113总共生成了两个或两个以上的随机数。例如,如图3所示,随机数发生装置11包括两个随机数生成模块113、两个时钟信号生成模块111、两个时钟信号处理模块112和第一运算模块114,两个时钟信号处理模块112与两个随机数生成模块113一一对应,两个时钟信号生成模块111与两个时钟信号处理模块112一一对应。两个随机数生成模块113总共生成了两个随机数,分别是Trng_out1和Trng_out2,第一运算模块114对Trng_out1和Trng_out2进行加密运算,得到一组新的随机数,加密运算可以增强该随机数的混乱程度,进一步地保证该随机数的随机性。
进一步地,在图3对应实施例的基础上,第一运算模块114具体用于,
按照预先设置的规则将两个或两个以上随机数生成模块113生成的随机数分成两份;对于每一份中的两个或两个以上的随机数,将该两个或两个以上的随机数进行异或运算,使用异或运算得到的随机数替换该两个或两个以上的随机数;将两份中的随机数分别作为密钥和待加密的数据,通过该密钥和预先设置的密码算法对该待加密的数据进行加密运算。
具体地,预先设置的规则包括:如果随机数生成模块113的数量为偶数,说明随机数生成模块113生成的随机数的总数量为偶数,将该生成的随机数平均分成两份;如果随机数生成模块113的数量为奇数,说明随机数生成模块113生成的随机数的总数量为奇数,将该生成的随机数分成两份,例如分成A份和B份,A份中的随机数的数量比B份中的随机数的数量多一个。当然,预先设置的规则包括但不限于以上的规则,还可以包括:在生成的随机数中,任一个随机数作为一份,除该随机数之外的随机数作为另一份,从而将生成的随机数分成两份。通过对随机数进行异或运算,使得每一份中有一个随机数,将该两份中的随机数进行加密运算,提高了加密运算得到的随机数的随机性。
进一步地,如图3所示,随机数发生装置11还包括:
单比特频数检测模块115,用于检测加密运算得到的随机数中0的总个数和1的总个数,计算检测出的0的总个数和1的总个数之间的差值,若计算出的差值小于或等于预先设置的第一阈值,则输出加密运算得到的随机数;若计算出的差值大于该第一阈值,则使随机数生成模块113重新执行生成随机数的步骤。
通过对加密运算得到的随机数进行单比特频数检测,在加密运算得到的随机数中,如果检测出的0的总个数和1的总个数之间的差值小于或等于预先设置的第一阈值,说明加密运算得到的随机数中0和1的总个数相差不大,或者说0和1的总个数大致相同,加密运算得到的随机数的随机性比较好,该随机数的质量就比较好,输出加密运算得到的随机数,即图3中的random_data;检测出的0的总个数和1的总个数之间的差值大于预先设置的第一阈值,说明加密运算得到的随机数中0和1的总个数相差比较大,加密运算得到的随机数的随机性比较差,随机数生成模块113重新生成随机数。
进一步地,在图3对应实施例的基础上,时钟信号生成模块111的数量等于时钟信号处理模块112的数量,随机数生成模块113的数量大于或等于时钟信号处理模块112的数量。
换句话说,时钟信号生成模块111与时钟信号处理模块112是一一对应的;时钟信号处理模块112与随机数生成模块113可以是一一对应的,如图3所示,两个时钟信号处理模块112和两个随机数生成模块113是一一对应的,还可以是一个时钟信号处理模块112对应多个随机数生成模块113,即两个或两个以上的随机数生成模块113共用一个时钟信号处理模块112,例如,时钟信号处理模块112将CLK1和CLK2输出给随机数生成模块M,同时时钟信号处理模块112将CLK1和CLK2输出给随机数生成模块N。
进一步地,在图1对应实施例的基础上,本发明实施例提供又一种随机数发生装置,如图4所示,该随机数发生装置中的时钟信号生成模块111包括:
第一频率发生器1111和反相器1112;其中,第一频率发生器1111的输出端与反相器1112的输入端相连,反相器1112的输出端与时钟信号处理模块112的输入端相连;第一频率发生器1111,用于生成时钟信号,作为所述生成的两个时钟信号中的一个时钟信号;反相器1112,用于对第一频率发生器1111生成的时钟信号进行处理,得到与第一频率发生器1111生成的时钟信号频率相同且相位相反的时钟信号,作为所述生成的两个时钟信号中的另一个时钟信号。
具体地,第一频率发生器1111生成时钟信号clock1,反相器1112用于将clock1的相位反转180°,得到与clock1的频率相同且相位相反的时钟信号clock2,clock1和clock2就是频率相同且相位相反的两个低频的时钟信号。
进一步地,在图4对应实施例的基础上,时钟信号生成模块111还包括:
第二频率发生器,设置在第一频率发生器1111的预先设置的区域内,第二频率发生器用于生成用于诱导攻击者攻击第二频率发生器的时钟信号。
在实际应用中,在第一频率发生器1111的预先设置的区域内设置第二频率发生器,也就是说在第一频率发生器1111的周围设置第二频率发生器,该第二频率发生器用于生成时钟信号,这样攻击者想要攻击第一频率发生器1111时,实际上攻击到了第一频率发生器1111周围的第二频率发生器,并未攻击到第一频率发生器1111,降低了第一频率发生器1111被攻击到的概率,实现了保护第一频率发生器1111的目的,从而加大了第一频率发生器1111的攻击难度,保证了随机数发生装置11的可靠性。可以理解的是,一个第一频率发生器1111的周围设有两个或两个以上的第二频率发生器,进一步地加大第一频率发生器1111的攻击难度。
进一步地,在图4对应实施例的基础上,时钟信号生成模块111的数量为两个或两个以上,任两个时钟信号生成模块111中的第一频率发生器1111的距离大于预先设置的第二阈值。
由于在实际应用中,第一频率发生器1111设置的越集中,而越集中的第一频率发生器1111越大,说明第一频率发生器1111越容易被攻击,因此,如果时钟信号生成模块111的数量为两个或两个以上,任两个时钟信号生成模块111中的第一频率发生器1111的距离大于预先设置的第二阈值,说明任两个第一频率发生器1111之间的距离比较大,也就是说第一频率发生器1111在电路板上是分散设置的,避免了所有的第一频率发生器1111都受到攻击,降低了第一频率发生器1111的攻击难度。例如,在图4中,随机数发生装置11包括两个时钟信号生成模块111,每个时钟信号生成模块111包括一个第一频率发生器1111,图4中的两个第一频率发生器1111在电路板上的距离大于预先设置的第二阈值。
进一步地,在图4对应实施例的基础上,第一频率发生器1111为用于生成抖动的低频时钟信号的振荡器(oscillator,简称OSC)。
也就是说,第一频率发生器1111是带抖动的低频振荡器。通过生成抖动的低频时钟信号,加强了由该低频时钟信号生成的随机数的随机性。
进一步地,在图4对应实施例的基础上,时钟信号处理模块112具体用于,
检测生成的两个时钟信号中的任一个时钟信号的频率;若该检测的时钟信号的频率等于0或者该检测的时钟信号的频率变化幅度大于预先设置的第三阈值,则判断出生成的两个时钟信号异常,若该检测的时钟信号的频率不等于0且该检测的时钟信号的频率变化幅度小于或等于预先设置的第三阈值,则判断出生成的两个时钟信号未异常。
例如,如图4所示,由于第一频率发生器1111生成的clock1和经过反相器1112后的clock2的频率是相同的,因此,检测clock1和clock2中的一个时钟信号即可。图4包括第一频率发生器OSC1和第一频率发生器OSC2,对于第一频率发生器OSC1生成的clock1,时钟信号处理模块112检测该clock1经过反相器后的clock2的频率,具体通过一个固定时钟获取在一定时间内的待检测的时钟信号的时钟个数来检测该时钟信号的频率,若检测出的频率等于0或者频率变化幅度比较大,说明第一频率发生器OSC1受到攻击,clock1和clock2不可用。按照以上方案检测第一频率发生器OSC2生成的clock1经过反相器后的clock2的频率,如果该clock2异常,则说明两个第一频率发生器OSC1和OSC2生成的时钟信号都不可靠,通过对CLK3进行分频得到两个时钟信号。
根据本发明实施例的随机数发生装置,时钟信号生成模块,用于生成频率相同且相位相反的两个低频的时钟信号;时钟信号处理模块,包括检测模块、分频模块和输出模块;其中,检测模块,用于检测生成的两个时钟信号是否异常;分频模块,用于对来自时钟树的时钟信号进行分频,得到频率相同且相位相反的两个时钟信号;输出模块,用于在检测出生成的两个时钟信号未异常时,输出生成的两个时钟信号,在检测出生成的两个时钟信号异常时,输出分频得到的两个时钟信号;随机数发生装置还包括:随机数生成模块,用于根据输出模块输出的两个时钟信号生成随机数。从本发明实施例可见,如果时钟信号生成模块生成的两个时钟信号异常,说明该时钟信号生成模块被攻击,那么输出由时钟树上的时钟信号分频得到的两个时钟信号,而非输出该异常的两个时钟信号。由于时钟信号生成模块被攻击,时钟树并不是攻击目标,也就是说时钟树不会受到影响,即使攻击者对时钟树进行攻击,时钟树的各部分是分散分布的,不容易受到攻击,也就是说时钟树上的时钟信号是异常的概率比较小,因此,使用由时钟树上的时钟信号分频得到的两个时钟信号来生成随机数,降低了产生的随机数是可预测性的概率,从而保证了随机数发生装置产生的随机数的质量。
本发明实施例提供一种真随机数发生器,包括上述任一项技术方案所述的随机数发生装置,因此,该真随机数发生器具有和上述任一项技术方案所述的随机数发生装置相同的技术效果,在此不再赘述。
进一步地,如果随机数发生装置的数量为两个或两个以上,本发明实施例提供另一种真随机数发生器,如图5所示,该真随机数发生器1还包括:
第二运算模块12,用于对两个或两个以上随机数发生装置输出的随机数进行异或运算。
通过对两个或两个以上随机数发生装置11输出的随机数进行异或运算,进一步地加强了该异或运算得到的随机数的随机性。具体地,第二运算模块12包括一个异或门,该异或门的输入端的数量与随机数发生装置11的数量相同,即异或门的两个或两个以上输入端与两个或两个以上随机数发生装置11的输出端一一对应,该异或门进行异或运算的实现可以采用相关技术中的方式实现,具体实现并不用于限定本发明的保护范围,这里不再赘述。或者第二运算模块12包括两个或两个以上异或门,例如,真随机数发生器包括随机数发生装置a、随机数发生装置b、随机数发生装置c、随机数发生装置d、异或门x、异或门y和异或门z,随机数发生装置a和随机数发生装置b的输出端分别接异或门x的两个输入端,即异或门x将随机数发生装置a和随机数发生装置b输出的随机数进行异或运算,并输出该异或运算的结果,随机数发生装置c和随机数发生装置d的输出端分别接异或门y的两个输入端,即异或门y将随机数发生装置c和随机数发生装置d输出的随机数进行异或运算,并输出该异或运算的结果,异或门z的两个输入端分别接异或门x的输出端和异或门y的输出端,异或门z对以上两个的异或运算的结果再进行异或。真随机数发生器采用数字逻辑单元,电路实现容易,而且可以兼容不同的集成电路工艺特点,具有普遍的实用性。
本发明实施例提供一种系统级芯片,包括上述技术方案中任一项所述的真随机数发生器,因此,该系统级芯片具有和上述技术方案中任一项所述的真随机数发生器相同的技术效果,在此不再赘述。
虽然本发明所揭露的实施方式如上,但所述的内容仅为便于理解本发明而采用的实施方式,并非用以限定本发明。任何本发明所属领域内的技术人员,在不脱离本发明所揭露的精神和范围的前提下,可以在实施的形式及细节上进行任何的修改与变化,但本发明的专利保护范围,仍须以所附的权利要求书所界定的范围为准。
Claims (12)
1.一种随机数发生装置,其特征在于,包括:
时钟信号生成模块,用于生成频率相同且相位相反的两个低频的时钟信号;
时钟信号处理模块,包括检测模块、分频模块和输出模块;其中,
检测模块,用于检测生成的两个时钟信号是否异常;
分频模块,用于对来自时钟树的时钟信号进行分频,得到频率相同且相位相反的两个时钟信号;
输出模块,用于在检测出生成的两个时钟信号未异常时,输出生成的两个时钟信号,在检测出生成的两个时钟信号异常时,输出分频得到的两个时钟信号;随机数发生装置还包括:
随机数生成模块,用于根据输出模块输出的两个时钟信号生成随机数;
其中,所述时钟信号处理模块具体用于:
检测所述生成的两个时钟信号的频率;若该检测的时钟信号的频率等于0或者该检测的时钟信号的频率变化幅度大于预先设置的第三阈值,则检测出所述生成的两个时钟信号异常,若该检测的时钟信号的频率不等于0且该检测的时钟信号的频率变化幅度小于或等于预先设置的第三阈值,则检测出所述生成的两个时钟信号未异常。
2.根据权利要求1所述的随机数发生装置,其特征在于,如果所述随机数生成模块的数量为两个或两个以上,还包括:
第一运算模块,用于通过预先设置的密码算法对两个或两个以上所述随机数生成模块生成的随机数进行加密运算。
3.根据权利要求2所述的随机数发生装置,其特征在于,所述运算模块具体用于,
按照预先设置的规则将两个或两个以上所述随机数生成模块生成的随机数分成两份;
对于每一份中的两个或两个以上的随机数,将该两个或两个以上的随机数进行异或运算,使用异或运算得到的随机数替换该两个或两个以上的随机数;
将两份中的随机数分别作为密钥和待加密的数据,通过该密钥和所述预先设置的密码算法对该待加密的数据进行加密运算。
4.根据权利要求2所述的随机数发生装置,其特征在于,还包括:
单比特频数检测模块,用于检测所述加密运算得到的随机数中0的总个数和1的总个数,计算检测出的0的总个数和1的总个数之间的差值,若计算出的差值小于或等于预先设置的第一阈值,则输出所述加密运算得到的随机数;若计算出的差值大于该第一阈值,则使所述随机数生成模块重新执行所述生成随机数的步骤。
5.根据权利要求1所述的随机数发生装置,其特征在于,
所述时钟信号生成模块的数量等于所述时钟信号处理模块的数量;
所述随机数生成模块的数量大于或等于所述时钟信号处理模块的数量。
6.根据权利要求1至5中任一项所述的随机数发生装置,其特征在于,所述时钟信号生成模块包括:第一频率发生器和反相器;其中,
第一频率发生器的输出端与反相器的输入端相连,反相器的输出端与所述时钟信号处理模块的输入端相连;
第一频率发生器,用于生成时钟信号,作为所述生成的两个时钟信号中的一个时钟信号;
反相器,用于对第一频率发生器生成的时钟信号进行处理,得到与第一频率发生器生成的时钟信号频率相同且相位相反的时钟信号,作为所述生成的两个时钟信号中的另一个时钟信号。
7.根据权利要求6所述的随机数发生装置,其特征在于,所述时钟信号生成模块还包括:
第二频率发生器,设置在所述第一频率发生器的预先设置的区域内,第二频率发生器用于生成用于诱导攻击者攻击第二频率发生器的时钟信号。
8.根据权利要求6所述的随机数发生装置,其特征在于,所述时钟信号生成模块的数量为两个或两个以上,任两个所述时钟信号生成模块中的第一频率发生器的距离大于预先设置的第二阈值。
9.根据权利要求6所述的随机数发生装置,其特征在于,所述第一频率发生器为用于生成抖动的低频时钟信号的振荡器。
10.一种真随机数发生器,其特征在于,包括:如权利要求1至9中任一项所述的随机数发生装置。
11.根据权利要求10所述的真随机数发生器,其特征在于,如果所述随机数发生装置的数量为两个或两个以上,还包括:
第二运算模块,用于对两个或两个以上所述随机数发生装置输出的随机数进行异或运算。
12.一种系统级芯片,其特征在于,包括:如权利要求10或11所述的真随机数发生器。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711071845.XA CN107797788B (zh) | 2017-11-03 | 2017-11-03 | 一种随机数发生装置、真随机数发生器及系统级芯片 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711071845.XA CN107797788B (zh) | 2017-11-03 | 2017-11-03 | 一种随机数发生装置、真随机数发生器及系统级芯片 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107797788A CN107797788A (zh) | 2018-03-13 |
CN107797788B true CN107797788B (zh) | 2021-02-12 |
Family
ID=61549216
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201711071845.XA Active CN107797788B (zh) | 2017-11-03 | 2017-11-03 | 一种随机数发生装置、真随机数发生器及系统级芯片 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107797788B (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109583246B (zh) * | 2018-11-06 | 2020-10-20 | 大唐微电子技术有限公司 | 一种芯片物理安全检测装置及方法 |
CN111900958A (zh) * | 2020-06-19 | 2020-11-06 | 上海美仁半导体有限公司 | 随机数产生电路、芯片及家用电器 |
CN111969981B (zh) * | 2020-10-21 | 2021-01-12 | 鹏城实验室 | 一种时钟产生电路和随机数产生电路 |
CN113377337B (zh) * | 2021-07-07 | 2022-11-04 | 山东方寸微电子科技有限公司 | 一种真随机数发生器及芯片 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101542969A (zh) * | 2006-10-30 | 2009-09-23 | 夏普株式会社 | 加密装置 |
CN102622205A (zh) * | 2012-03-09 | 2012-08-01 | 无锡华大国奇科技有限公司 | 随机数发生器 |
CN102968290A (zh) * | 2012-11-20 | 2013-03-13 | 华中科技大学 | 一种异构轻量级的真随机数产生器 |
CN104461454A (zh) * | 2013-09-14 | 2015-03-25 | 安徽量子通信技术有限公司 | 一种高速真随机数发生装置 |
CN105005462A (zh) * | 2015-09-06 | 2015-10-28 | 电子科技大学 | 一种混合式随机数发生器及其产生随机数的方法 |
CN105894079A (zh) * | 2016-04-22 | 2016-08-24 | 上海东软载波微电子有限公司 | 时钟加扰电路 |
CN106775584A (zh) * | 2016-12-08 | 2017-05-31 | 上海爱信诺航芯电子科技有限公司 | 一种抵抗侵入式攻击的真随机数发生器 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20060010182A1 (en) * | 2004-07-06 | 2006-01-12 | Altepeter Joseph B | Quantum random number generator |
-
2017
- 2017-11-03 CN CN201711071845.XA patent/CN107797788B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101542969A (zh) * | 2006-10-30 | 2009-09-23 | 夏普株式会社 | 加密装置 |
CN102622205A (zh) * | 2012-03-09 | 2012-08-01 | 无锡华大国奇科技有限公司 | 随机数发生器 |
CN102968290A (zh) * | 2012-11-20 | 2013-03-13 | 华中科技大学 | 一种异构轻量级的真随机数产生器 |
CN104461454A (zh) * | 2013-09-14 | 2015-03-25 | 安徽量子通信技术有限公司 | 一种高速真随机数发生装置 |
CN105005462A (zh) * | 2015-09-06 | 2015-10-28 | 电子科技大学 | 一种混合式随机数发生器及其产生随机数的方法 |
CN105894079A (zh) * | 2016-04-22 | 2016-08-24 | 上海东软载波微电子有限公司 | 时钟加扰电路 |
CN106775584A (zh) * | 2016-12-08 | 2017-05-31 | 上海爱信诺航芯电子科技有限公司 | 一种抵抗侵入式攻击的真随机数发生器 |
Also Published As
Publication number | Publication date |
---|---|
CN107797788A (zh) | 2018-03-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107797788B (zh) | 一种随机数发生装置、真随机数发生器及系统级芯片 | |
Wang et al. | Design of pseudo-random bit generator based on chaotic maps | |
CN102970132B (zh) | 一种防止对分组算法进行功耗分析和电磁辐射分析的防护方法 | |
Dabal et al. | A chaos-based pseudo-random bit generator implemented in FPGA device | |
CA2733667C (en) | Method for detecting abnormalities in a cryptographic circuit protected by differential logic, and circuit for implementing said method | |
Jayasinghe et al. | RFTC: Runtime frequency tuning countermeasure using FPGA dynamic reconfiguration to mitigate power analysis attacks | |
CN101162998A (zh) | 真随机数发生器 | |
JP6533553B2 (ja) | 暗号化/復号装置及びその電力解析保護方法 | |
Hussain et al. | BIST-PUF: Online, hardware-based evaluation of physically unclonable circuit identifiers | |
Bedoui et al. | An improvement of both security and reliability for AES implementations | |
Han et al. | Unpredictable 16 bits LFSR-based true random number generator | |
Reddy et al. | BHARKS: Built-in hardware authentication using random key sequence | |
Sangeetha et al. | Authentication of symmetric cryptosystem using anti-aging controller-based true random number generator | |
AVAROĞLU et al. | A novel S-box-based postprocessing method for true random number generation | |
Mahmoud et al. | DFAulted: Analyzing and exploiting CPU software faults caused by FPGA-driven undervolting attacks | |
CN107016292B (zh) | 防止通过功率分析进行窃听的电子电路及防止窃听的方法 | |
Rudra et al. | Designing stealthy trojans with sequential logic: A stream cipher case study | |
Boke et al. | FPGA implementation of PUF based key generator for secure communication in IoT | |
Kasarabada et al. | Sled: Sequential logic encryption using dynamic keys | |
Bedoui et al. | An efficient fault detection method for elliptic curve scalar multiplication montgomery algorithm | |
Luo et al. | Faulty clock detection for crypto circuits against differential fault analysis attack | |
Cheng et al. | Neural network-based entropy: A new metric for evaluating side-channel attacks | |
Gupta et al. | Improved VLSI architecture of dual-CLCG for Pseudo-Random bit generator | |
Marghescu et al. | Adapting a ring oscillator-based true random number generator for Zynq system on chip embedded platform | |
US8781114B2 (en) | Apparatus and method for recognizing a failure of a cryptographic unit |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |