CN105824602B - 输入-相依随机数产生装置及其方法 - Google Patents
输入-相依随机数产生装置及其方法 Download PDFInfo
- Publication number
- CN105824602B CN105824602B CN201510943028.3A CN201510943028A CN105824602B CN 105824602 B CN105824602 B CN 105824602B CN 201510943028 A CN201510943028 A CN 201510943028A CN 105824602 B CN105824602 B CN 105824602B
- Authority
- CN
- China
- Prior art keywords
- random number
- input
- hyte
- random
- interdependent
- 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
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/582—Pseudo-random number generators
-
- 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
-
- 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)
- Storage Device Security (AREA)
- Error Detection And Correction (AREA)
Abstract
本发明提供一种输入‑相依随机数产生装置及其方法。该输入‑相依随机数产生装置,包含:一输入电路;多个第一存储器阵列;一分配电路;多个第二存储器阵列;以及一输出电路。输入电路经配置用以分割一输入值为多个第一位组。多个第一存储器阵列经配置各自以多个第一随机数填充,经配置各自从该输入电路接收该多个第一位组的一相应第一位组,从该相应第一位组指示的一第一地址撷取和输出该多个第一随机数的其中一第一随机数。多个第二存储器阵列经配置各自以多个第二随机数填充,通过该分配电路从各该多个第一存储器阵列接收该多个第二位组的一相应的第二位组。
Description
技术领域
本发明一般而言是关于随机数产生,特别是关于利用存储器阵列产生随机数的方法和系统。
背景技术
随机数的产生使用于各式各样的应用。各种随机数产生技术为已知的现有技术。例如,美国专利申请案公开号2005/0097153,在此引述该内容并作为参考,该案描述一种虚拟随机数产生器,其包括具有非线性回馈特征的第一基本移位暂存器、第二基本移位暂存器和组合器,组合器用于组合在第一基本移位暂存器和第二基本移位暂存器的输出信号以获得代表一虚拟随机数的组合信号。
美国专利号6763363,其公告内容在此引述并作为参考,其描述了一种虚拟随机数产生器包括线性回馈移位暂存器(LFSR),线性回馈移位暂存器具有分割成M字位长度的w字位的N位二进制数据储存在N个储存元件中的一状态。至少两个源头提供二进制数据,具有为M的倍数的若干位的各源头。线性回馈移位暂存器还包括连接源头的线性回馈函数和提供从该源头提供的二进制数据的线性函数的临时值,例如按位互斥或运算。线性回馈移位暂存器的状态是由转移在储存元件中M位的倍数的二进制数据来推进,并且提供临时值填充储存元件否则在转移时会放空。
其他随机数产生架构如日本专利JP2567681B2所描述,或在德国专利申请案DE19921852A1,其公开内容在此引入并作为参考。
发明内容
本发明一实施例提供一种输入-相依随机数产生装置包含:一输入电路;多个第一存储器阵列;一分配电路;多个第二存储器阵列;以及一输出电路。输入电路经配置用以分割一输入值为多个第一位组。多个第一存储器阵列经配置各自以多个第一随机数填充,经配置各自从该输入电路接收该多个第一位组的一相应第一位组,从该相应第一位组指示的一第一地址撷取和输出该多个第一随机数的其中一第一随机数。分配电路经配置用以将该多个第一存储器阵列输出的各该多个第一随机数分割为多个第二位组,并且分配该多个第二位组。多个第二存储器阵列经配置各自以多个第二随机数填充,通过该分配电路从各该多个第一存储器阵列接收该多个第二位组的一相应的第二位组,用以串接所接收的该多个第二位组以便形成一地址指示码,并用以从该地址指示码所指示的一第二地址撷取和输出该多个第二随机数的其中一第二随机数。输出电路经配置用以至少将该多个第二存储器阵列输出的相应该多个第二随机数组合成为基于该输入值的一输出随机数。
在某些实施例中,该输出电路经配置通过对该多个第二随机数施行一可逆变换来组合该多个第二随机数。该可逆变换包括一个或多个按位互斥或(XOR)运算和有限场乘法(finite-field multiplication)。在一实施例中,各该多个第一存储器阵列中,该多个第一随机数没有重复且以随机顺序涵盖整个数值范围。在一实施例中,输入-相依随机数产生装置进一步包括一加密电路,经配置用以加密或通过对一数据字位施行一可逆变换来解密该数据字位。在一实施例中,该输入值是指示储存该数据字位的一存储地址。
根据本发明的一实施例提供一种输入-相依随机数产生方法,其包含:分割一输入值成为多个第一位组;在多个第一存储器阵列分别填充多个第一随机数,接收该输入值的该多个第一位组的一相应第一位组,并撷取和输出所接收的该相应第一位组指示的一第一地址中的该多个第一随机数的其中一第一随机数;分割由各该多个第一存储器阵列输出的各该多个第一随机数为多个第二位组;在多个第二存储器阵列分别填充多个第二随机数,接收来自各该多个第一存储器阵列的该多个第二位组的一相应第二位组,串联所接收的该多个第二位组以便形成一地址指示码,并撷取和输出该地址指示码指示的一第二地址中的该多个第二随机数的其中一第二随机数;以及组合由该多个第二存储器阵列输出的相应该多个第二随机数成为基于该输入值的一输出随机数。
根据本发明的一实施例提供一种输入-相依随机数产生装置,其包含:一输入电路,配置用以分割一输入值为多个第一位组;多个第一确定性随机数产生器(RNG)模块,经配置各自从该输入电路接收该多个第一位组的一相应第一位组,用以产生且输出基于所接收的该相应第一位组的一第一确定性随机数;一分配电路,配置用以将该多个第一确定性随机数产生器模块输出的各该些第一确定性随机数分割为多个第二位组,并且分配该多个第二位组;多个第二确定性随机数产生器模块,经配置通过该分配电路从各该多个第一确定性随机数产生器模块接收该多个第二位组的一相应第二位组,用以串接所接收的该多个第二位组以便形成一地址指示码,并用以产生基于该地址指示码的一第二确定性随机数;以及一输出电路,配置用以至少将该多个第二确定性随机数产生器模块输出的相应该些第二确定性随机数组合成为基于该输入值的一确定性输出随机数。
在一实施例中,至少一该多个第一或第二确定性随机数产生器模块包括以随机数填充的一存储器阵列。至少一该多个第一或第二确定性随机数产生器模块包括一有限场乘法器。
前文已颇为广泛地概述本发明的特征及技术优势以便可更好地理解随后的本发明的详细描述。本发明的额外特征及优势将在下文中加以描述,且形成本发明的权利要求的主题。本领域技术人员应了解,所揭示的概念及特定实施例可易于用作修改或设计其他结构或程序以用于进行本发明的同样目的的基础。本领域技术人员亦应认识到,此等等效构造并不脱离如随附权利要求中所阐明的本发明的精神及范畴。
附图说明
由以下详细说明与附随图式得以最佳了解本发明揭示内容的各方面。注意,根据产业的标准实施方式,各种特征并非依比例绘示。实际上,为了清楚讨论,可任意增大或缩小各种特征的尺寸。
图1A和图1B是根据本发明的一实施例示意性地说明安全存储器系统的方块图。
图2和图3是根据本发明的一实施例示意性地说明输入-相依随机数产生器的方块图。
附图标号
20 系统
24 输入-相依随机数产生器
28 数据/代码存储器
32 互斥或运算单元
36 输入-相依随机数产生器
38 输入电路
40 第一组
44A、44B 存储器阵列
46 分配电路
48 第二组
52A、52B 存储器阵列
56 输出电路
60 输入-相依随机数产生器
62 输入电路
64 第一组
68 存储器阵列
70 分配电路
72 第二组
76 存储器阵列
78 输出电路
80 互斥或电路
具体实施方式
在此描述的本发明实施例提供随机数产生的改进方法和装置。在所揭露的实施例中,一随机数产生器(Random Number Generator,RNG)产生对应于各自的输入值的随机数。该些随机数确定地与输入值呈现相依。然而,随机数同时具有随机统计特性,并且输入值无法由输出随机数来推演或是实施反向工程得知。这样的机制在此被称为“输入-相依的随机数产生”,并且适用于例如:储存于安全存储器中的数据或代码的串流加密和串流解密。
在某些实施例中,随机数产生器包含两组存储器阵列。第一组总共有n个存储器阵列,第二组总共有l个存储器阵列。两组内的各存储器阵列事先由随机数填充。
为了从一给定输入值产生一随机数,该输入值分成n组位(标示为位-组)。各位-组作为地址指示码提供给第一组的相应存储器阵列。第一组的各存储器阵列通过已接收的地址指示码所指示的地址中撷取一相应的随机数。
通过第一组的相应存储器阵列撷取并且输出的各随机数被分成l组位(标示为位-组),各位-组传送到第二组的一相应存储器阵列。因此,第二组的各存储器阵列接收到各来自于第一组的各存储器阵列的n组位。第二组的各存储器阵列串联从第一组的n个存储器阵列所接收的n组位,用以形成一地址指示码,并且通过已接收的地址指示码所指示的地址中撷取随机数。
由第二组的l个存储器阵列提供的随机数被组合并且产生确定地与给定输入值相依的一输出随机数,组合方式例如使用按位互斥或(XOR)运算或是有限场乘法运算。
本发明的随机数产生器组态容易实施,并且有低延迟时间与低功率耗损的功效。此外,通过在此描述将随机数产生架构分散到多个小存储器阵列中的方式,本发明的技术所需要的存储器空间远低于使用单一存储器阵列的同类型解决方案。
由此产生的随机数具有较高度随机的统计数据。此外,当本发明的随机数产生器从连续输入值的序列产生随机数序列时,所述序列中的随机数彼此是不相关的。
原则上有可能利用其他方法执行输入-相依的随机数产生,例如使用安全杂凑演算法SHA1、SHA2(Secure Hash Algorithm)或进阶加密标准散列函数(AdvancedEncryption Standard,AES;Harsh function散列函数,又称杂凑函数)。然而,这样的解决方案使用相较于本发明技术更少的种源,并且涉及更复杂的计算使得增加延迟时间和功耗耗损。
在一些实施例中,本文描述的随机数产生器组态用于串流加密或解密,在这种情况下,输入值包含递增计数值或存储地址。本发明的随机数产生器可以实现,例如,作为安全地储存数据和/或程序代码的存储器系统的接口的一部分。
图1A和图1B是根据本发明的一实施例示意性地说明一安全存储器系统20的方块图。系统20包括一数据/代码存储器28,例如一随机存取存储器(RAM)或是快闪存储器,用以储存数据。在本文中,“数据”指的是使用者数据、程序代码或其它适当的信息。
作为在系统20中安全措施的一部分,该数据以加密的形式储存在数据/代码存储器28,并且从数据/代码存储器28提取时解密。通过使用输入-相依随机数产生器24(RandomNumber Generator,RNG)产生的随机数来执行加密和解密。
图1A说明数据加密并将其储存在数据/代码存储器28的过程。在本实施例中,各数据字位储存在数据/代码存储器28中相应的地址。该地址也作为在储存之前用于加密数据字位所产生随机数的输入值。
典型地,对于储存在数据/代码存储器28中各数据字位,系统20的地址产生电路(未绘出)产生相应的地址值。除了作为储存在数据/代码存储器28中的一地址,相同的地址值也作为输入-相依随机数产生器24的输入值。输入-相依随机数产生器24根据地址值产生一随机数。系统20通过使用互斥或(XOR)运算单元32计算所述数据字位和确定地随机数之间的按位互斥或(XOR)函数来加密所述数据字位(在图中代表明文PLAINTEXT)。加密的数据字位(在图中代表密文CIPHERTEXT)储存在数据/代码存储器28中相应的地址。
上述加密处理的密码技术性质源自于互斥或(XOR)是可逆转换的事实。在一可逆转换中,当输入呈现对称时(即,如果输入彼此交换,转换输出不变化),如果一输入数据是随机的,则所述转换输出和另一输入数据之间没有相关性。可逆转换的另一个实例为有限场乘法运算,例如满足伽罗瓦场(Galois Field)的乘法运算。因此,在另一实施例中,互斥或运算单元32可以由有限场乘法器(例如,伽罗瓦场乘法器)所替换,或是由执行其它任何适当的可逆转换的加密电路所替换。
图1B说明从数据/代码存储器28撷取时的解密数据过程。当从某个地址撷取加密数据字位时,地址产生电路产生一适当的地址值。地址值提供给数据/代码存储器28,用以撷取所述加密数据字位,并且提供给输入-相依随机数产生器24。输入-相依随机数产生器24根据该地址值产生确定性随机数。所述加密数据字位通过使用加密数据字位和输入-相依随机数产生器24的输出之间的按位互斥或运算来进行解密。
在实施例中,互斥或运算单元32替换为一有限场乘法器,有限场的附加往复运算(A转化成A-1)应该在输入-相依随机数产生器24的输出和乘法器之间来实现。往复运算必须只在加密期间施行于输入-相依随机数产生器24的输出,或是只在解密期间施行(但不是同时在两期间施行)。
往复运算可以用任何适当的方式来实现,例如使用查找表或适当的逻辑电路。在一些实施例中,有限场乘法器可以使用两个或多个具有较小字位宽度的乘法器来实现。在这些实施例中,在乘法器之前,往复运算也可以分拆成具有较小字位宽度的两个或多个往复运算。这种解决方案是有利的,例如因为查找表需要相当小的整体存储器尺寸。
为了使加密和解密过程正确运行,用于加密一给定数据字位的随机数应该与随后将用于解密它的随机数相同。换句话说,通过输入-相依随机数产生器24产生的随机数应该确定地基于各自的输入值。同时,从随机数推导出输入值应该是不可能的,或者至少是不可行的。这种输入值和相应的随机数之间的关系在本文中称为“输入-相依随机数产生”。
以下的描述提供用于实现输入-相依随机数产生器的架构实例。这些架构可以用于实现系统20的输入-相依随机数产生器24。可替换地,所揭露的随机数产生器组态可以应用在含有确定性随机数产生的其他任何适当的主机系统或用途。
图2是根据本发明的一实施例示意性地说明一输入-相依随机数产生器36的方块图。输入-相依随机数产生器36的组态是用于论证所揭露技术的原理的简化组态。更复杂的和广义的组态如图3所示。
图2的输入-相依随机数产生器36包括输入电路38;第一组40包括两个存储器阵列44A和44B;分配电路46;第二组48包括两个存储器阵列52A和52B;以及输出电路56。在本实施例中,存储器阵列44A、44B、52A和52B包括并联的随机存取存储器(Random AccessMemory;RAM)元件。可替代地,然而,其它任何适当类型的存储器都可使用,例如快闪存储器;一次性编程(OTP)存储器或只读存储器(ROM)。
在本实施例中,存储器阵列44A和44B各包括一个256*8的存储器,例如,能保存256位数据的存储器。存储器阵列44A也标示为RAM(0,0)和存储器阵列44B也标示为RAM(0,1)。各存储器阵列44A和44B事先用随机数填充,亦即预载。各存储器阵列44A和44B利用从0(b00000000)到255(b11111111)二进制数值整个范围来填充,所述数值无遗漏且不重复,并且以随机顺序填充。(在存储器阵列44的任何重复值会降低输出的随机性。)
存储器阵列52A和52B各包括一个256*k的存储器,亦即,能保存256k-位数据字位的存储器。存储器阵列52A也标示为RAM(1,0)和存储器阵列52B也标示为RAM(1,l)。k代表输出随机数的字位宽度。各存储器阵列52A和52B事先用随机数填充,亦即预载。在本实施例中,各存储器阵列52A和52B由256k位的随机数以随机顺序来填充。
输入电路38接收来自于已确定地产生的相应随机数的输入值。如上所述,输入值可包括,例如,计数值或地址。在本实施例中,各输入值是一个16位的二进制数值。
输入电路38将输入值分割成2组各8位的位组,亦即,分成两个8位二进制数值。分割可以实施为,例如,通过将所述输入汇流排的16个数据线分成两组各8条线。一位组提供给存储器阵列44A,而另一位组提供给存储器阵列44B。
各存储器阵列44A和44B使用所接收的位组作为8位的地址指示码。各存储器阵列44A和44B撷取储存在所接收位组指向的地址中的8位随机数,并且输出该随机数给分配电路46。
分配电路46分割各8位随机数为2组各4位的位组,并分配4位的位组到第二组48的各存储器阵列52A和52B。因此,各存储器阵列52A和52B将所接收来自各存储器阵列44A和44B的两个4位的位组作为输入。
各存储器阵列52A和52B将所接收4位的位组串联成用于地址指示码的8位字位。各存储器阵列52A和52B撷取储存在此地址指示码指向的地址中的k位随机数,并且输出该k位随机数给分配电路56。
输出电路56将所接收的两个k位随机数组合起来成为单一的k位随机数,并提供所得的k位随机数作为该随机数产生器的输出。此架构使得输入-相依随机数产生器36能产生高达216k位的输出随机数。
在本实施例中,输出电路56包括一计算其两个k位输入的按位互斥或的互斥或(XOR)运算电路。可替代地,输出电路56可以包括一个有限场乘法器,例如一个伽罗瓦场GF(2K)乘法器。进一步可选择地,输出电路56可以包括执行其它适合转换的任何适当的电路,只要转换定义如上述是可逆的。所述转换不一定需要其输入具有对称性。
可以从输入-相依随机数产生器36的组态看出,输出随机数确定地基于个别输入值。同时,输出随机数确实随机的,并且不能用以重现原始输入值。
图3是根据本发明的另一实施例示意性地说明一输入-相依随机数产生器60的方块图。图3概括图2的架构到各自任何期望数量的两组存储器阵列。
输入-相依随机数产生器60包括输入电路62;第一组64包括n个存储器阵列68并标示为RAM(0,1)到RAM(0,n);分配电路70;第二组72包括l个存储器阵列76并标示为RAM(1,1)到RAM(1,l);以及输出电路78。如前一实施例中,图3的存储器阵列通过举例方式包括并联随机存取存储器(Random Access Memory;RAM)元件,然而其它任何适当类型的存储器都可使用,例如快闪存储器;只读存储器(ROM)或一次性编程(OTP)存储器。
在本实施例中,输入值的字位宽度(位数)标示为Width_in。存储器阵列68各包括2(Width_in/n)*Width_O个存储器,也就是说,能保存2(Width_in/n)个字位数据的存储器,每字位具有Width_O个位。各存储器阵列68事先用随机数填充,亦即预载。存储器阵列68各填充2(Width_in/n)个随机数。各随机数具有Width_O位,并且所述随机数以随机顺序且最少重复的方式储存在存储器阵列中。若是Width_O等于Width_in/n或Width_O小于Width_in/n时,则随机数没有重复。
第二组72的存储器阵列76各包括2((Width_O)n/l)*Width_out个存储器,也就是说,能保存2((Width_O)n/l)个字位数据的存储器,每字位具有Width_out个位。Width_out代表输出随机数的字位宽度(位数)。各存储器阵列76事先用随机数填充,亦即预载。存储器阵列76各填充2((Width_O)n/l)个随机数。各随机数具有Width_out位,并且所述随机数以随机顺序且无重复的方式储存在存储器阵列中。
输入电路62接收输入值,亦即,计数值或地址。如上所述,各输入值具有Width_in位。输入电路62将各输入值分拆成各自具有Width_in/n位的n个位组,亦即,通过分拆输入汇流排的字线成为n个组。如此的位组提供给第一组64的一相应存储器阵列68。
各存储器阵列68运用所接收的位组作为地址指示码。各存储器阵列68撷取储存在所接收位组指向的地址中的随机数,并且输出该随机数给分配电路70。
分配电路70分割各随机数为l个位组,各位组具有Width_O/l位。分配电路分配位组到第二组72的各存储器阵列76。因此,各存储器阵列76将所接收来自各存储器阵列68的n位组作为输入。
各存储器阵列76将所接收n位组串联为用于地址指示码的单一字位(具有Width_O*n/l的字位尺寸)。各存储器阵列76随后撷取储存在所地址指示码指向的地址中的随机数,并且输出该随机数给输出电路78。各该随机数的字位宽度为Width_out。
输出电路78将所接收的随机数结合起来成为Width_out位的单一随机数,并提供所得的随机数作为该随机数产生器的输出。此架构使输入-相依随机数产生器36能产生无重复且高达2Width_in输出随机数。
在本实施例中,输出电路78包括设置在一个树状结构的多个互斥或电路80。在树状结构中,由存储器阵列76所产生的成对随机数由按位互斥或电路80组合,成对的组合结果由按位互斥或电路80再次组合,依此类推,直到产生Width_out位的单一随机数。
可替代地,输出电路78可以包括多个有限场乘法器,例如,伽罗瓦场(GaloisField)乘法器。进一步可选择地,输出电路78可以包括互斥或电路和伽罗瓦场乘法器的组合。一般而言,输出电路78可以具有任何其他适合的组态,如上述定义,只要是通过输出电路78所执行的端到端转换整体上为可逆的。
从输入-相依随机数产生器60的组态可以理解,输出随机数确定地基于个别输入值。如果Width_O等于Width_in/n,并且l为n的除数(或其他方式n是l的除数并且Width_O/l≥1,然后数据重复不会发生且输出随机数不能用于重现原始输入值。否则,数据重复可能会发生,这可能成为大数值Width_out的问题。如果Width_out远小于Width_in,数据重复在统计学上为罕见,Width_O小于Width_in/n的解决方案可以提供充足的输入相依随机数据。
图1A和图1B的系统组态、图2和图3的随机数产生器组态纯粹是为了澄清概念的组态实例。在替代实施例,任何其他适当的系统和/或随机数产生器组态都可以使用。例如,第一组和第二组的存储器阵列可以具有任何期望数量的存储器阵列。两组存储器阵列的数目不一定是相同的。
在上述实例中,各存储器阵列是一个独立且单独的存储装置,但这种划分并不是强制性的。在一些实施例中,在第一组和/或第二组中的两个或多个存储器阵列可以利用缓冲器在相同的存储装置中实施。这样的实施方式可能产生额外的延迟时间,但是在许多实际实施方式中这种延迟时间是可以容忍的。
用于图2实施例的特定字位宽度纯粹是通过举例方式来选择。在替代实施例中,任何其他适当的字位宽度都可以使用。甚至更一般言之,在图2和图3的组态中,在一给定群组中不同的随机存取存储器可能具有不同字位宽度的运算。例如,输入电路可以分割输入值为不全然具有相同的位数的位组,因此在第一组中不同的存储器阵列可以储存具有不同字位宽度的随机数。类似地,分配电路可以分割第一组存储器阵列所提供的随机数为不全然具有相同的位数的位组。第一组中不同存储器阵列可以储存具有不同字位宽度的随机数。
在一些实施例中,在第二组中存储器阵列的数目(l)可能不是在第一组中存储器阵列的数目(n)的整数除数。此外或是替代地,l和/或n可能不是2的整数幂次。
在一些实施例中,在第一组或第二组中的一个或多个存储器阵列(例如,一个或多个存储器阵列44、52、68或76)可以由有限场乘法器代替,例如GF(2m)伽罗瓦场乘法器。在这样的实施方式中,乘法器的一输入端连接到阵列的输入端(存储器阵列的第一组的情况下的一位组,或存储器阵列的第二组的情况下位组的串联集合)。乘法器的第二输入端接收一定值,例如,有限场的常数元件。因此,在本发明中,一个有限场乘法器或一个存储器阵列在本文中称为经配置用于产生和输出基于提供给它的输入值的随机数的随机数产生器模块。
如此基于乘法器的随机数产生器模块的输入-输出的功能类似于不重复地以随机数字0……2m-1填充的尺寸2m的存储器阵列。然而,基于乘法器的解决方案的随机性水准可能低于基于存储器阵列的解决方案。
第一组和/或第二组的存储器阵列可以使用任何适合的方式以随机数预载。在一实施例中,一摘要函数如安全杂凑演算法SHA1、SHA2或进阶加密标准散列函数AES可以重复应用到随机种子,以便产生一系列用于填充存储器阵列的随机数。这种随机数产生通常是缓慢的,因此适合用于初始化或时间不敏感的设定目的。这样的随机数产生器可以用于设置载入到第一组中的存储器阵列地址的数字的顺序,或可直接载入随机数到第二组中的存储器阵列地址。在初始化期间,软件代码可以用来控制随机数数据产生的过程,并且控制数据的储存和在不同存储器阵列中数据的用法。
为理解本发明的原理,不必要的元件,例如各种接口、控制电路、地址电路、时序电路和除错电路,为清楚起见已经从图中省略。各种系统和随机数产生元件可以用硬件实现,例如使用一个或多个现场可程序栅阵列(Field-Programmable Gate Arrays)和/或特定用途集成电路(Application-Specific Integrated Circuits),或以软件实现,或使用硬件或软件元件的组合。
在一些实施例中,一些系统或随机数产生元件可使用软件已编程用来执行这里描述的功能的通用处理器来实现。该软件可以通过网络以电子形式下载到处理器,例如,替代地或附加地,可提供和/或储存在非过渡有形介质,例如磁、光或电子存储器。
虽然在此描述的实施例主要涉及用于安全数据储存的随机数,本文描述的方法和系统也可以运用在其他应用中,例如在椭圆曲线密码(ECC)或RSA密钥的产生,或在各种安全架构下用于对诘问/回应的随机串流产生。
前述内容概述一些实施方式的特征,因而本领域技术人员可更加理解本发明揭示内容的各方面。本领域技术人员应理解可轻易使用本发明揭示内容作为基础,用于设计或修饰其他工艺与结构而实现与本发明所述的实施方式具有相同目的与/或达到相同优点。本领域技术人员亦应理解此均等架构并不脱离本发明揭示内容的精神与范围,以及本领域技术人员可进行各种变化、取代与替换,而不脱离本发明揭示内容的精神与范围。
Claims (15)
1.一种输入-相依随机数产生装置,其特征在于,包含:
一输入电路,配置用以分割一输入值为多个第一位组,所述多个第一位组的位数的和等于所述输入值的位数;
多个第一存储器阵列,经配置各自以多个第一随机数填充,经配置各自从该输入电路接收该多个第一位组的一相应第一位组,从该相应第一位组指示的一第一地址撷取和输出该多个第一随机数的其中一第一随机数;
一分配电路,配置用以将该多个第一存储器阵列输出的各该多个第一随机数分割为多个第二位组,并且分配该多个第二位组;
多个第二存储器阵列,经配置各自以多个第二随机数填充,通过该分配电路接收该多个第二位组的一相应的第二位组,用以串接所接收的该多个第二位组以便形成一地址指示码,并用以从该地址指示码所指示的一第二地址撷取和输出该多个第二随机数的其中一第二随机数;以及
一输出电路,配置用以至少将该多个第二存储器阵列输出的相应该多个第二随机数组合成为基于该输入值的一输出随机数。
2.如权利要求1所述的输入-相依随机数产生装置,其特征在于,该输出电路经配置通过对该多个第二随机数施行一可逆变换来组合该多个第二随机数。
3.如权利要求2所述的输入-相依随机数产生装置,其特征在于,该可逆变换包括一个或多个按位互斥或运算和有限场乘法。
4.如权利要求1所述的输入-相依随机数产生装置,其特征在于,在各该多个第一存储器阵列中,该多个第一随机数没有重复且以随机顺序涵盖整个数值范围。
5.如权利要求1所述的输入-相依随机数产生装置,其特征在于,进一步包括一加密电路,经配置用以加密或通过对一数据字位施行一可逆变换来解密该数据字位。
6.如权利要求5所述的输入-相依随机数产生装置,其特征在于,该输入值是指示储存该数据字位的一存储地址。
7.一种输入-相依随机数产生方法,其特征在于,包含:
分割一输入值成为多个第一位组,所述多个第一位组的位数的和等于所述输入值的位数;
在多个第一存储器阵列分别填充多个第一随机数,接收该输入值的该多个第一位组的一相应第一位组,并撷取和输出所接收的该相应第一位组指示的一第一地址中的该多个第一随机数的其中一第一随机数;
分割由各该多个第一存储器阵列输出的各该多个第一随机数为多个第二位组;
在多个第二存储器阵列分别填充多个第二随机数,接收该多个第二位组的一相应第二位组,串联所接收的该多个第二位组以便形成一地址指示码,并撷取和输出该地址指示码指示的一第二地址中的该多个第二随机数的其中一第二随机数;以及
组合由该多个第二存储器阵列输出的相应该多个第二随机数成为基于该输入值的一输出随机数。
8.如权利要求7所述的输入-相依随机数产生方法,其特征在于,组合该多个第二随机数包括对该多个第二随机数施行可逆变换。
9.如权利要求8所述的输入-相依随机数产生方法,其特征在于,该可逆变换包括一个或多个按位互斥或运算和有限场乘法。
10.如权利要求7所述的输入-相依随机数产生方法,其特征在于,在各该多个第一存储器阵列中,该多个第一随机数没有重复且以随机顺序涵盖整个数值范围。
11.如权利要求7所述的输入-相依随机数产生方法,其特征在于,进一步包括,通过利用该输出随机值对一数据字位施行一可逆变换来加密和解密该数据字位。
12.如权利要求11所述的输入-相依随机数产生方法,其特征在于,该输入值是指示储存该数据字位的一存储地址。
13.一种输入-相依随机数产生装置,其特征在于,包含:
一输入电路,配置用以分割一输入值为多个第一位组,所述多个第一位组的位数的和等于所述输入值的位数;
多个第一确定性随机数产生器模块,经配置各自从该输入电路接收该多个第一位组的一相应第一位组,用以产生且输出基于所接收的该相应第一位组的一第一确定性随机数;
一分配电路,配置用以将该多个第一确定性随机数产生器模块输出的各所述第一确定性随机数分割为多个第二位组,并且分配该多个第二位组;
多个第二确定性随机数产生器模块,经配置通过该分配电路接收该多个第二位组的一相应第二位组,用以串接所接收的该多个第二位组以便形成一地址指示码,并用以产生基于该地址指示码的一第二确定性随机数;以及
一输出电路,配置用以至少将该多个第二确定性随机数产生器模块输出的相应所述第二确定性随机数组合成为基于该输入值的一确定性输出随机数。
14.如权利要求13所述的输入-相依随机数产生装置,其特征在于,至少一该多个第一或第二确定性随机数产生器模块包括以随机数填充的一存储器阵列。
15.如权利要求13所述的输入-相依随机数产生装置,其特征在于,至少一该多个第一或第二确定性随机数产生器模块包括一有限场乘法器。
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201462092281P | 2014-12-16 | 2014-12-16 | |
US62/092,281 | 2014-12-16 | ||
US14/938,861 US9696965B2 (en) | 2014-12-16 | 2015-11-12 | Input-dependent random number generation using memory arrays |
US14/938,861 | 2015-11-12 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105824602A CN105824602A (zh) | 2016-08-03 |
CN105824602B true CN105824602B (zh) | 2019-03-12 |
Family
ID=56111213
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510943028.3A Active CN105824602B (zh) | 2014-12-16 | 2015-12-16 | 输入-相依随机数产生装置及其方法 |
Country Status (3)
Country | Link |
---|---|
US (1) | US9696965B2 (zh) |
CN (1) | CN105824602B (zh) |
TW (1) | TWI546731B (zh) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI620119B (zh) * | 2017-02-21 | 2018-04-01 | 群聯電子股份有限公司 | 隨機資料產生電路、記憶體儲存裝置及隨機資料產生方法 |
CN108536423B (zh) * | 2017-03-03 | 2022-05-10 | 群联电子股份有限公司 | 随机数据产生电路、存储器存储装置及随机数据产生方法 |
US11294640B2 (en) | 2019-03-13 | 2022-04-05 | Ememory Technology Inc. | Random number generator |
CN112291056B (zh) * | 2019-07-25 | 2024-02-23 | 熵码科技股份有限公司 | 加密密钥生成器及传输系统 |
US11601120B2 (en) | 2021-02-03 | 2023-03-07 | Nuvoton Technology Corporation | Attack-resistant ring oscillators and random-number generators |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101675586A (zh) * | 2007-05-22 | 2010-03-17 | 爱特梅尔汽车股份有限公司 | 用于产生随机数的装置和方法 |
CN102063285A (zh) * | 2010-12-24 | 2011-05-18 | 倍奥锐(北京)科技有限公司 | 一种软件实现的真随机数产生方法 |
CN103456366A (zh) * | 2012-05-31 | 2013-12-18 | 爱思开海力士有限公司 | 具有自包含式测试单元的半导体存储器件及其测试方法 |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4161041A (en) * | 1978-10-06 | 1979-07-10 | The United States Of America As Represented By The Secretary Of The Air Force | Pseudo random number generator apparatus |
JP2567681B2 (ja) | 1988-09-30 | 1996-12-25 | 三洋電機株式会社 | 乱数発生装置 |
US5251165A (en) * | 1992-04-09 | 1993-10-05 | James Iii J Colin | Two phase random number generator |
DE19921852A1 (de) * | 1999-05-11 | 2000-11-16 | Bosch Gmbh Robert | Pseudozufallszahlgenerator |
US6763363B1 (en) | 1999-12-02 | 2004-07-13 | Honeywell International Inc. | Computer efficient linear feedback shift register |
DE10339999B4 (de) | 2003-08-29 | 2005-07-14 | Infineon Technologies Ag | Pseudozufallszahlengenerator |
US9542156B2 (en) * | 2013-05-15 | 2017-01-10 | Synopsys, Inc. | Automatic control system and method for a true random number generator |
US9424442B2 (en) * | 2013-11-27 | 2016-08-23 | Huawei Technologies Co., Ltd. | Nonvolatile memory and electronic device |
-
2015
- 2015-11-12 US US14/938,861 patent/US9696965B2/en active Active
- 2015-12-15 TW TW104142103A patent/TWI546731B/zh active
- 2015-12-16 CN CN201510943028.3A patent/CN105824602B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101675586A (zh) * | 2007-05-22 | 2010-03-17 | 爱特梅尔汽车股份有限公司 | 用于产生随机数的装置和方法 |
CN102063285A (zh) * | 2010-12-24 | 2011-05-18 | 倍奥锐(北京)科技有限公司 | 一种软件实现的真随机数产生方法 |
CN103456366A (zh) * | 2012-05-31 | 2013-12-18 | 爱思开海力士有限公司 | 具有自包含式测试单元的半导体存储器件及其测试方法 |
Also Published As
Publication number | Publication date |
---|---|
US9696965B2 (en) | 2017-07-04 |
TWI546731B (zh) | 2016-08-21 |
CN105824602A (zh) | 2016-08-03 |
TW201624268A (zh) | 2016-07-01 |
US20160170711A1 (en) | 2016-06-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105824602B (zh) | 输入-相依随机数产生装置及其方法 | |
CN104468089B (zh) | 数据保护装置及其方法 | |
JP5822970B2 (ja) | 擬似ランダム生成、データ暗号化、およびメッセージ暗号化ハッシングのための暗号化デバイス | |
JP4774509B2 (ja) | 擬似乱数発生システム | |
CN103444124B (zh) | 加密处理装置、加密处理方法 | |
US9575726B2 (en) | Bit sequence generator and apparatus for calculating a sub-rate transition matrix and a sub-rate initial state for a state machine of a plurality of state machines | |
CN110995411B (zh) | 加密、解密方法、装置、电子设备及存储介质 | |
CN106034021B (zh) | 轻量级双模兼容aes加解密模块及其方法 | |
Verma et al. | Enhancement of RC6 block cipher algorithm and comparison with RC5 & RC6 | |
JP5689826B2 (ja) | 秘密計算システム、暗号化装置、秘密計算装置及びその方法、プログラム | |
JP5207153B2 (ja) | 擬似乱数発生システム | |
WO2016128463A1 (en) | Method to generate high quality random mask from small entropy source | |
Ivanov et al. | Nonlinear transformations for the construction of the primitives of symmetric cryptoraphy | |
CN107040370A (zh) | 使用随机加法链的模幂运算 | |
KR101076747B1 (ko) | 스트림 모듈의 계층적 트리 구조를 통한 무작위 접근이 가능한 암호화/복호화 방법 및 장치 | |
CN102543182A (zh) | 随机化电路、存储器控制单元、存储器、通信系统及方法 | |
KR20020087331A (ko) | 부분 라운드간 파이프라인 기법을 이용한 AES Rijndael암호 및 복호 회로 | |
D’haeseleer | Hardware design for cryptanalysis | |
JP5268011B2 (ja) | 暗号化システム及び復号化システム | |
Nambiar et al. | Fpga implementation of multibit lfsr as key generator for aes encryption | |
Tyagi et al. | Enhancement Of RC6 (Rc6_En) Block Cipher Algorithm And Comparison With RC5 & RC6 | |
Praphul et al. | FPGA Implementation of Hybrid Cryptosystem | |
Lee et al. | Uniform random number generator using leap-ahead LFSR architecture | |
US11997200B2 (en) | Generating unique cryptographic keys from a pool of random elements | |
KR20130014003A (ko) | 인체 관심영역에 적합한 fcsr을 이용한 비선형 이진 난수 발생기 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |