CN1488094A - 产生随机数据 - Google Patents

产生随机数据 Download PDF

Info

Publication number
CN1488094A
CN1488094A CNA028039351A CN02803935A CN1488094A CN 1488094 A CN1488094 A CN 1488094A CN A028039351 A CNA028039351 A CN A028039351A CN 02803935 A CN02803935 A CN 02803935A CN 1488094 A CN1488094 A CN 1488094A
Authority
CN
China
Prior art keywords
data
random number
oscillator
value
operations
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.)
Granted
Application number
CNA028039351A
Other languages
English (en)
Other versions
CN1278222C (zh
Inventor
ղķ˹���ϸ�ȡ������ء������
詹姆斯·迪格比·亚莱特·考理尔
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Qualcomm Technologies International Ltd
Original Assignee
Cambridge Silicon Radio Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Cambridge Silicon Radio Ltd filed Critical Cambridge Silicon Radio Ltd
Publication of CN1488094A publication Critical patent/CN1488094A/zh
Application granted granted Critical
Publication of CN1278222C publication Critical patent/CN1278222C/zh
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/58Random or pseudo-random number generators
    • G06F7/588Random number generators, i.e. based on natural stochastic processes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/58Random or pseudo-random number generators
    • G06F7/582Pseudo-random number generators

Landscapes

  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Engineering & Computer Science (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • General Engineering & Computer Science (AREA)
  • Computational Mathematics (AREA)
  • Mobile Radio Communication Systems (AREA)
  • Measuring Or Testing Involving Enzymes Or Micro-Organisms (AREA)
  • Slot Machines And Peripheral Devices (AREA)
  • Inspection Of Paper Currency And Valuable Securities (AREA)
  • Electrophonic Musical Instruments (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)
  • Storage Device Security (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)
  • Holo Graphy (AREA)

Abstract

一种产生随机数据的方法,该方法包括:重复地完成一系列操作;这一系列操作包括:处理籽值以产生结果值,该结果值用作随后一系列操作中的籽值,并产生输出随机数据;其中这一系列操作还包括:确定是否有预定数量新的真随机数据,和若有这种数据,则根据新的真随机数据至少修改产生的结果值。

Description

产生随机数据
技术领域
本发明涉及产生随机数据,例如,用在加密和验证系统中。
背景技术
多数加密和验证系统要求调用随机数,例如,用于产生验证期间的复杂问题。这种例子是DES和RSA。在提供典型的安全等级系统中,要求的随机数位长度约在50至150的范围内。形成这类真随机数的一种方法是数字化噪声模拟值,例如,电压电平,并利用数字化结果的最低有效位形成随机数。然而,这种方法需要一些时间收集足够多的位以形成典型加密系统所要求的这种长度随机数。所以,在大多数的情况下,取而代之的是利用产生伪随机数的算法。这种算法产生的数据不是真随机数据,而是确定性数据。因此,这种方法有这样一个缺点,若算法及其籽值是已知的,则可以预测伪随机数,使第三方能够解密或破译验证方案。
所以,需要一种能够快速产生随机数的方法,该随机数有这样的性质,不能根据以前的数据预测产生的下一个数据。
发明内容
按照本发明的一个方面,提供一种产生随机数据的方法,该方法包括:重复地完成一系列操作,这一系列操作包括:处理籽值以产生结果值,该结果值用作随后一系列操作中的籽值,并产生输出随机数据;其中这一系列操作还包括:确定是否有预定数量新的真随机数据;若有这种数据,则根据新的真随机数据至少修改产生的结果值。
按照本发明的第二方面,提供一种产生随机数据的装置,该装置包括:真随机数据的数据源;存储籽值的存储器;和处理装置,用于进行一系列操作;这一系列操作包括:处理籽值以产生存储器中存储的结果值,用作随后进行一系列操作中的籽值并产生输出随机数据;其中这一系列操作还包括:确定是否有预定数量新的真随机数据;若有这种数据,则根据新的真随机数据至少修改产生的结果值。
最好是,所述修改步骤包括:在产生结果值之前修改籽值。或者,修改步骤可以包括:修改另一个籽值,或修改结果值。所述修改步骤最好包括:对籽值中至少一些位与新的真随机数据对应位进行异或运算或加法运算。籽值可以是单个变量的修改或者从一个变量到另一个变量的变换。
输出随机数据最好是通过处理结果值产生的。
通过至少部分是在随机数发生器之外的随机过程测量,合适地产生真随机数据,例如,通过比较两个振荡器的速率。
最好是,仅仅一个振荡器是晶控振荡器。另一个振荡器是可以安装在集成电路上。最好是,与另一个振荡器比较,一个振荡器是更准确和/或更稳定和/或更不易受环境变化的影响。在另一个振荡器的预定振荡次数内,通过计数一个振荡器的振荡次数,可以产生真随机数据。最好是,所述另一个振荡器是两个振荡器中较慢的振荡器。
真随机数据可以是所述振荡次数最低有效位中的1位或多位。
附图说明
参照附图,借助于例子描述本发明,其中:
图1是包括随机数发生器的通信装置方框图;和
图2说明用于产生随机数的算法步骤。
具体实施方式
图1的装置包括:伪随机数发生器1。图示的随机数发生器包含处理器2,该处理器包括:通用处理硬件3;非易失性程序存储器4,用于存储处理硬件3的程序代码;和易失性临时存储存储器5,用于处理硬件进行处理操作。然而,可以利用包括硬线处理设备和混合硬件/软件实施例的任何合适数据处理装置。伪随机数发生器有输入端6,借助于输入端可以在输出端7请求输出随机数据。随机数发生器可以接入真随机数据的数据源8。在该图的实施例中,数据源8是在随机数发生器之外,而且在通信装置中有另一个功能。然而,数据源可以是在随机数发生器之内和/或可以具有形成随机数据的专用功能。
数据源8最好包括存储真随机位的存储器10,随机数发生器可以利用这些得到的真随机位。随机数发生器可以通过链路11接入该存储器,用于确定有多少个真随机位,读出得到的真随机位,和一旦利用其中的真随机位之后,复位该存储器。
当随机数发生器1在输入端6接收到随机数据调用时,处理装置2进行以下描述的一系列处理步骤以产生随机数。然后,随机数发生器在输出端7输出该随机数。当随机数发生器被调用时,处理装置安排成接入临时存储器5中存储的籽值,完成把籽值作为输入的算法,并基于该籽值产生随机数据和另一个籽值,存储这个籽值用于该算法的下一次迭代。作为该算法的一部分,处理装置确定是否能从数据源8得到新的真随机数据,这个新的真随机数据在算法前一次迭代中还没有使用过。若可以有这种数据,则根据新的真随机数据,处理装置修改本次迭代中原先采用的籽值,并利用修改的籽值作为本次迭代的基础;否则,利用原先采用的籽值作为本次迭代的基础。按照这种方法,在得到真随机数据时,利用这个随机数据使形成的随机数据更随机化,而不必等到真随机数据可用时形成数据。这种方法有一个重要的优点,在输出端7收集到足够数据可以预测下一个输出数据时,籽值按照不可预测的方法发生了变化。
现在描述可以利用的一个算法例子。
在执行该算法前,必须确定若干个常数值。在设计或构造随机数发生器时,即,在系统建立时,可以合适地确定这些常数值。这些常数值如以下所示:
N代表约为800的整数。
L是可以从数据源8得到的若干个真随机位。
K1和K2是小的费马素数,例如,3,17,257和65537(K1和K2可以相等)。
p1和p2是长度为N/2的不同素数。若“强-S-素数”定义为素数p,其中S是非负整数,则p-1的强-(S-1)-素数因子至少是p的位长度的3/4,强-0-素数就是素数;选取p1和p2为强-2-素数。
M是p1与p2的乘积。
一旦计算了M,p1和p2最好被不可恢复地丢弃或高度保密地存储。
在进行该算法时调用的这些常数值:L,K1,K2和M最好存储在非易失性存储器4中。
在算法的每次迭代中,籽值用作该算法的输入。算法修改这个籽值,修改的籽值作为该算法下一次迭代的籽值。用作下一次迭代的籽值存储在临时存储器5的特定位置9。算法需要的初始籽值是第一次迭代的输入,调用初始籽值产生随机数据。形成初始籽值的一种方法是,从数据源8中收集一系列随机位,并把这些随机位存储在特定位置9中相继位的位置。形成初始籽值的另一种方法是,在非易失性存储器4中存储另一个常数值;装入该常数值到特定的位置9;然后,完成该算法的多次迭代,在调用相继迭代时,利用数据源8中的随机数据修改籽值。当启动通信装置时(例如,在接通电源时),可以采用这些方法中任何一种方法,因此,随机数发生器做好使用的准备,它保持一个真随机籽值。
图2表示该算法的流程图。
在调用该算法以产生随机数时,得到特定位置9中存储的籽值(图2中步骤30)。从特定位置得到的籽值作为变量x进行存储。然后,检查存储器10以发现数据源8中是否有L个真随机位(步骤31)。
若有L个真随机位,则把这些随机位装入到变量z中并使存储器11复位。然后,根据这些真随机位,执行该算法的步骤32以修改变量x。变量x的修改是设置它等于:
(xz)mod M
其中符号代表x的L个预定位中每1位与z的对应位进行异或运算。异或运算的结果简约成模M,为了使它保持在该算法的算术界限内。在系统建立时可以规定x中哪些位与z中哪些位进行异或运算。
若没有真随机位,则不修改x。
然后,产生从随机数发生器输出的随机数据,并作为变量v进行存储。变量v设置成等于xK1模M(步骤35)。v的值作为在输出端7可以得到的随机位。
然后,在变量w中形成该算法下一次迭代的籽值,变量w设置成等于(x+1)K2模M(步骤33)。
最后,w的值存储到特定位置9用于代替以前的籽值,并允许它作为下一次迭代中x的初始值。
取代籽值与真随机位的的异或运算,也可以利用其他的方法。例如,在适当的算法中,可以根据随机数据修改输入籽值之外的另一个籽值。具体地说,在以上的算法中,可以修改输出籽值。可以利用异或运算以外的其他运算,例如,算术位移或加法运算。
可以有多种产生真随机数据的方法。这些例子包括:使装置中模拟传感器的噪声模拟值数字化,例如,温度传感器14中的电压电平;或用户在键盘16上各次按键之间的时间间隔。一种优选的方法是利用一对振荡器12,13,这两个振荡器有不同的短期准确度水平,即,抖动’,且最好有基本不同的速率。
图1的装置是无线电通信装置。振荡器12是相对快速,相对准确并有相对低抖动的振荡器。振荡器12用于射频调制传输信号,它的合适频率为几十兆赫芝,例如,GSM基系统的13或26MHz。振荡器13是较慢速,较不准确并有较大抖动的振荡器,该振荡器可用于快速振荡器关断时各个周期之间的间隔定时。振荡器13的频率可以是几千赫芝。高准确度振荡器12适合于来自晶体的定时,而低准确度振荡器13是基于简单的电阻和定容器电路,该电路可以是与处理器2相同的集成电路。因此,振荡器12与振荡器13的频率之间很可能发生漂移,例如,由于温度的变化和由于电阻器中热噪声的随机起状。
为了产生随机数据,计数器16计数快速振荡器在预定次数慢速振荡器周期内的翻转次数,这个预定次数最好是很小的数。所以,利用这些最低有效位中的1位或多位作为随机数据。例如,在快速振荡器的频率为16MHz和慢速振荡器的频率为1kHz时,在典型的条件下,可以利用这个计数的最低1位或2位作为随机数据。这个计数是周期性进行的,其结果位存储在存储器10中。因此,在完成计数之后,随机数发生器可以有新的数据。在随机数发生器上次调用之后还没有完成计数,则不能得到新的数据,在此情况下,随机数发生器仍然可以提供输出数据,因为它可以确定是否有新的真随机数据。
处理器可以是形成随机数的专用装置,或可以完成其他的功能。在后者的情况下,处理器产生的随机数可以在该处理器随后实施的其他操作中进行处理。
本发明可以包括此处暗示或明示公开的任何特征或这些特征的组合,或任何的推广,不管它是否与本申请的发明有关。鉴于以上的描述,显而易见,本领域专业人员在本发明的范围内可以作各种改动。

Claims (16)

1.一种产生随机数据的方法,该方法包括:重复地完成一系列操作;这一系列操作包括:处理籽值以产生结果值,该结果值用作随后一系列操作中的籽值,并产生输出随机数据;其中这一系列操作还包括:
确定是否有预定数量新的真随机数据;和
若有这种数据,则根据新的真随机数据至少修改产生的结果值。
2.按照权利要求1的方法,其中所述修改步骤包括:在产生结果值之前修改籽值。
3.按照权利要求2的方法,其中所述修改步骤包括:对籽值中至少一些位与新的真随机数据对应位进行异或运算。
4.按照以上权利要求中任一个的方法,其中输出随机数据是通过处理结果值产生的。
5.按照以上权利要求中任一个的方法,其中真随机数据是通过比较两个振荡器的速率产生的。
6.按照权利要求5的方法,其中仅仅一个振荡器是晶控振荡器。
7.按照权利要求5或6的方法,其中在另一个振荡器的预定振荡次数内,通过计数一个振荡器的振荡次数,产生真随机数据。
8.按照权利要求7的方法,其中真随机数据是所述振荡次数最低有效位中的1位或多位。
9.按照权利要求7或8的方法,包括:根据所述振荡次数最高有效位中的至少1位,调整一个振荡器的速率。
10.按照权利要求5至9中任一个的方法,其中一个振荡器的速率至少是另一个振荡器速率的100倍。
11.按照权利要求5至10中任一个的方法,其中一个振荡器产生用于射频调制或解调通信数据的信号。
12.按照权利要求11的方法,其中另一个振荡器产生用于空闲通信周期定时的信号。
13.一种产生随机数据的装置,该装置包括:
真随机数据的数据源;
存储籽值的存储器;和
处理装置,用于进行一系列操作,这一系列操作包括:处理籽值以产生存储器中存储的结果值,用作随后一系列操作中的籽值,并产生输出随机数据;其中这一系列操作还包括:
确定是否有预定数量新的真随机数据;和
若有这种数据,则根据新的真随机数据,至少修改产生的结果值。
14.一种包括权利要求13所述的装置的通信装置。
15.一种产生随机数据的方法,该方法基本上是参照附图所描述的方法。
16.一种产生随机数据的装置,该装置基本上是参照附图所描述的装置。
CNB028039351A 2001-02-05 2002-01-28 产生随机数据 Expired - Fee Related CN1278222C (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
GB0102840.6 2001-02-05
GBGB0102840.6A GB0102840D0 (en) 2001-02-05 2001-02-05 Generating random data

Publications (2)

Publication Number Publication Date
CN1488094A true CN1488094A (zh) 2004-04-07
CN1278222C CN1278222C (zh) 2006-10-04

Family

ID=9908142

Family Applications (1)

Application Number Title Priority Date Filing Date
CNB028039351A Expired - Fee Related CN1278222C (zh) 2001-02-05 2002-01-28 产生随机数据

Country Status (8)

Country Link
US (1) US7516169B2 (zh)
EP (1) EP1364279B9 (zh)
JP (1) JP3795456B2 (zh)
CN (1) CN1278222C (zh)
AT (1) ATE328321T1 (zh)
DE (1) DE60211860T2 (zh)
GB (1) GB0102840D0 (zh)
WO (1) WO2002063462A2 (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN100461088C (zh) * 2005-10-17 2009-02-11 浙江大学 高质量的真随机数产生器
CN103218202A (zh) * 2012-01-19 2013-07-24 株式会社牧田 随机数产生装置
CN107562409A (zh) * 2017-07-28 2018-01-09 深圳和而泰小家电智能科技有限公司 随机种子生成方法及装置

Families Citing this family (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7085993B2 (en) * 2002-07-29 2006-08-01 International Business Machine Corporation System and method for correcting timing signals in integrated circuits
US20040102242A1 (en) * 2002-11-21 2004-05-27 Poelmann Boudewijn Johannes Maria Systems and methods for establishing a verifiable random number
DE10330643A1 (de) 2003-07-07 2005-02-10 Siemens Ag Verfahren zur verschlüsselten Datenübertragung über ein Kommunikationsnetz
US7734969B2 (en) * 2007-10-30 2010-06-08 Infineon Technologies Ag Feedback shift register control
EP2695052B1 (en) * 2011-04-05 2014-11-26 Intrinsic ID B.V. Random number generating system based on memory start-up noise
WO2012159192A1 (en) * 2011-05-26 2012-11-29 Certicom Corp. Randomness for encryption operations
US9819727B2 (en) 2013-02-28 2017-11-14 Amazon Technologies, Inc. Computing infrastructure for configurable-quality random data
US9049232B2 (en) 2013-02-28 2015-06-02 Amazon Technologies, Inc. Configurable-quality random data service
JP6419614B2 (ja) * 2015-03-17 2018-11-07 株式会社東芝 データ生成装置および認証システム
US10116441B1 (en) * 2015-06-11 2018-10-30 Amazon Technologies, Inc. Enhanced-security random data
JP6587188B2 (ja) 2015-06-18 2019-10-09 パナソニックIpマネジメント株式会社 乱数処理装置、集積回路カード、および乱数処理方法
CN111176611B (zh) * 2019-12-31 2023-10-31 深圳远征技术有限公司 一种生成随机数据组的方法和装置
US11586418B2 (en) * 2020-01-17 2023-02-21 Macronix International Co., Ltd. Random number generator, random number generating circuit, and random number generating method

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4694412A (en) * 1982-09-22 1987-09-15 Intel Corporation Random number generator for use in an authenticated read-only memory
US4799259A (en) * 1986-04-10 1989-01-17 Rockwell International Corporation Monolithic random digital noise generator
US5383143A (en) * 1994-03-30 1995-01-17 Motorola, Inc. Self re-seeding linear feedback shift register (LFSR) data processing system for generating a pseudo-random test bit stream and method of operation
US5727063A (en) * 1995-11-27 1998-03-10 Bell Communications Research, Inc. Pseudo-random generator
GB2333652A (en) * 1998-01-24 1999-07-28 Motorola Ltd Random number generator with improved equiprobability
JP3518985B2 (ja) 1998-02-03 2004-04-12 日本電信電話株式会社 端末独立な乱数生成方法及び装置、端末独立な乱数生成プログラムを記録した記録媒体
EP1114363B1 (en) * 1998-09-14 2005-11-16 Igt Random number generator seeding method and apparatus
US6125378A (en) * 1999-01-13 2000-09-26 Barbano; Paolo Emilio Method and apparatus for generating families of code signals using multiscale shuffling
US6795837B1 (en) * 1999-03-31 2004-09-21 Intel Corporation Programmable random bit source
US6253223B1 (en) * 1999-06-08 2001-06-26 General Instrument Corporation Robust random number generator
JP2001005383A (ja) 1999-06-23 2001-01-12 Sony Corp 乱数発生装置および乱数発生方法、媒体、並びに暗号化装置および暗号化方法
US6792438B1 (en) * 2000-03-31 2004-09-14 Intel Corporation Secure hardware random number generator
TW469404B (en) * 2000-05-05 2001-12-21 Umax Data Systems Inc Method for generating serial numbers by random numbers
US6766312B2 (en) * 2001-01-31 2004-07-20 International Business Machines Corporation Method and system for a random number generator
US6691141B2 (en) * 2001-04-13 2004-02-10 Science Applications International Corp. Method and apparatus for generating random number generators

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN100461088C (zh) * 2005-10-17 2009-02-11 浙江大学 高质量的真随机数产生器
CN103218202A (zh) * 2012-01-19 2013-07-24 株式会社牧田 随机数产生装置
CN107562409A (zh) * 2017-07-28 2018-01-09 深圳和而泰小家电智能科技有限公司 随机种子生成方法及装置
CN107562409B (zh) * 2017-07-28 2021-02-26 深圳和而泰小家电智能科技有限公司 随机种子生成方法及装置

Also Published As

Publication number Publication date
CN1278222C (zh) 2006-10-04
JP2004519035A (ja) 2004-06-24
JP3795456B2 (ja) 2006-07-12
WO2002063462A2 (en) 2002-08-15
EP1364279B1 (en) 2006-05-31
EP1364279A2 (en) 2003-11-26
WO2002063462A3 (en) 2002-10-03
EP1364279B9 (en) 2007-10-17
DE60211860T2 (de) 2007-06-06
US20020107897A1 (en) 2002-08-08
GB0102840D0 (en) 2001-03-21
DE60211860D1 (de) 2006-07-06
ATE328321T1 (de) 2006-06-15
US7516169B2 (en) 2009-04-07

Similar Documents

Publication Publication Date Title
CN1278222C (zh) 产生随机数据
Zuckerman General weak random sources
Addabbo et al. A feedback strategy to improve the entropy of a chaos-based random bit generator
Seward On the performance of BWT sorting algorithms
JP3696209B2 (ja) シード生成回路、乱数生成回路、半導体集積回路、icカード及び情報端末機器
CN1534454A (zh) 伪随机数发生器
JP2000505214A (ja) 機密ナンバー発生方法
WO2003012628A2 (en) Method and apparatus for random bit-string generation utilizing environment sensors
Alaghi The logic of random pulses: Stochastic computing
CN1212592A (zh) Pn码发生装置及移动无线通信系统
JP4970287B2 (ja) 擬似ランダム・データ・シーケンスを発生するための方法、システム及び装置
CN103049242A (zh) 数字式真随机数发生器电路
EP1662375B1 (en) Random number generator and method for testing the generator
GB2333652A (en) Random number generator with improved equiprobability
Pareschi et al. Statistical testing of a chaos based CMOS true-random number generator
Ergün Modeling and analysis of chaos-modulated dual oscillator-based random number generators
US20150019605A1 (en) Method for assessing an output of a random number generator
Alioto et al. On the suitability of digital maps for integrated pseudo-RNGs
EP1081591A2 (en) Random number generator
CN1520546A (zh) 在具有至少一个用户的总线系统中形成时钟脉冲的方法和装置,总线系统和用户
TWI782540B (zh) 基於物理不可複製功能的真隨機數產生器以及用於產生真隨機數的方法
JP6386904B2 (ja) 乱数生成装置及び乱数生成方法
BS et al. A Low Power Dual-CLCG for Pseudorandom Bit Generation.
Chang et al. Binary de Bruijn Sequences via Zech's Logarithms
SU742910A1 (ru) Генератор псевдослучайных двоичных последовательностей

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
C17 Cessation of patent right
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20061004

Termination date: 20130128