CN107391084A - 一种高效可重复随机数产生装置及方法 - Google Patents
一种高效可重复随机数产生装置及方法 Download PDFInfo
- Publication number
- CN107391084A CN107391084A CN201710607980.5A CN201710607980A CN107391084A CN 107391084 A CN107391084 A CN 107391084A CN 201710607980 A CN201710607980 A CN 201710607980A CN 107391084 A CN107391084 A CN 107391084A
- Authority
- CN
- China
- Prior art keywords
- sequence
- random number
- generation module
- random
- module
- 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.)
- Pending
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/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)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本发明公开一种高效可重复随机数产生装置及方法,包括基础序列生成模块、随机数生成模块、元素删除模块、重复执行模块以及目标序列随机数生成模块。本发明采用SHA1PRNG算法,产生可重复随机数,作为数列的位置,而不是最终随机数;采用逐步递减的方法,使得每次产生的随机数,一定能在被选序列中有一个数字对应,不随随机数个数增加而增加计算量,效率高。
Description
技术领域
本发明涉及计算机领域,尤其涉及一种高效可重复随机数产生装置及方法。
背景技术
在以密码学为基础的信息安全领域中,随机数扮演着重要的角色:密钥的生成、数字签名、认证和鉴别以及各种安全通信协议都离不开高质量的随机数。从某种意义上讲,随机数的安全性确定了整个安全体系的安全性。密码学领域对随机数的要求很高,从安全的角度来说,真正意义上的随机数是最可靠的。真正的随机数是完全不可预测的,任何一个随机数都不可能由其他的数推测得到。随机数广泛地应用于通信系统、安全及加密、模拟及游戏中以及其它应用中。目前通用可重复随机数产生方法是采用SHA1PRNG算法,使用相同的种子(SEED),可以生成固定长度的随机数序列,但是,随机数序列中的随机数是重复的,采用通用的去重方法,会导致计算次数成指数递增,例如10个需计算30次;100个需计算500次,1000个需要计算700次,1万个需要计算10万次,效率不高。
发明内容
本发明的目的在于通过一种高效可重复随机数产生装置及方法,来解决以上背景技术部分提到的问题。
为达此目的,本发明采用以下技术方案:
一种高效可重复随机数产生装置,其包括基础序列生成模块、随机数生成模块、元素删除模块、重复执行模块以及目标序列随机数生成模块;所述基础序列生成模块用于生成一个固定长度为N的顺序序列L1;所述随机数生成模块用于采用SHA1PRNG算法产生序列L1长度的随机数R1,并从序列L1中取出L1[R1]的数字放入随机序列L2中,其中,L2[L2.length-1]=L1[R1];所述元素删除模块用于删除L1[R1]的元素;所述重复执行模块用于重复从序列L1中取数字并放入随机序列L2中;所述目标序列随机数生成模块用于从序列L1中取数字并放入随机序列L2中,并重复N次,获得目标序列随机数。
特别地,所述基础序列生成模块具体用于采用SHA1PRNG算法,使用固定种子生成一个固定长度为N的顺序序列L1。
特别地,所述固定长度为N的顺序序列L1为固定长度为N的自递增序列L1。
基于上述高效可重复随机数产生装置,本发明还公开了一种高效可重复随机数产生方法,其包括如下步骤:
S101、基础序列生成模块生成一个固定长度为N的顺序序列L1;
S102、随机数生成模块采用SHA1PRNG算法产生序列L1长度的随机数R1,并从序列L1中取出L1[R1]的数字放入随机序列L2中,其中,L2[L2.length-1]=L1[R1];
S103、元素删除模块删除L1[R1]的元素;
S104、重复执行模块重复从序列L1中取数字并放入随机序列L2中;
S105、目标序列随机数生成模块从序列L1中取数字并放入随机序列L2中,并重复N次,获得目标序列随机数。
特别地,所述步骤S101具体包括:基础序列生成模块采用SHA1PRNG算法,使用固定种子生成一个固定长度为N的顺序序列L1。
特别地,所述固定长度为N的顺序序列L1为固定长度为N的自递增序列L1。
本发明提出的高效可重复随机数产生装置及方法采用SHA1PRNG算法,产生可重复随机数,作为数列的位置,而不是最终随机数;采用逐步递减的方法,使得每次产生的随机数,一定能在被选序列中有一个数字对应,不随随机数个数增加而增加计算量,效率高。
附图说明
图1为本发明实施例提供的高效可重复随机数产生装置结构示意图;
图2为本发明实施例提供的高效可重复随机数产生方法流程图。
具体实施方式
下面结合附图和实施例对本发明作进一步说明。可以理解的是,此处所描述的具体实施例仅仅用于解释本发明,而非对本发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本发明相关的部分而非全部内容。除非另有定义,本文所使用的所有的技术和科学术语与属于本发明的技术领域的技术人员通常理解的含义相同。本文中在本发明的说明书中所使用的术语只是为了描述具体的实施例的目的,不是旨在于限制本发明。本文所使用的术语“及/或”包括一个或多个相关的所列项目的任意的和所有的组合。
请参照图1所示,图1为本发明实施例提供的高效可重复随机数产生装置结构示意图;
本实施例中高效可重复随机数产生装置100具体包括基础序列生成模块101、随机数生成模块102、元素删除模块103、重复执行模块104以及目标序列随机数生成模块105。所述基础序列生成模块101用于生成一个固定长度为N的顺序序列L1;所述随机数生成模块102用于采用SHA1PRNG算法产生序列L1长度的随机数R1,并从序列L1中取出L1[R1]的数字放入随机序列L2中,其中,L2[L2.length-1]=L1[R1];所述元素删除模块103用于删除L1[R1]的元素;所述重复执行模块104用于重复从序列L1中取数字并放入随机序列L2中;所述目标序列随机数生成模块105用于从序列L1中取数字并放入随机序列L2中,并重复N次,随机序列L2中的序列即为目标序列,最终获得目标序列随机数。
在本实施例中所述基础序列生成模块101具体用于采用SHA1PRNG算法,使用固定种子生成一个固定长度为N的顺序序列L1。所述固定长度为N的顺序序列L1为固定长度为N的自递增序列L1。
如图2所示,图2为本发明实施例提供的高效可重复随机数产生方法流程图。基于上述高效可重复随机数产生装置100,本实施例还公开了一种高效可重复随机数产生方法,该方法包括如下步骤:
S201、基础序列生成模块101生成一个固定长度为N的顺序序列L1。基础序列生成模块101采用SHA1PRNG算法,使用固定种子生成一个固定长度为N的顺序序列L1,其中,所述固定长度为N的顺序序列L1为固定长度为N的自递增序列L1。
S202、随机数生成模块102采用SHA1PRNG算法产生序列L1长度的随机数R1,并从序列L1中取出L1[R1]的数字放入随机序列L2中,其中,L2[L2.length-1]=L1[R1]。
S203、元素删除模块103删除L1[R1]的元素。
S204、重复执行模块104重复从序列L1中取数字并放入随机序列L2中。
S205、目标序列随机数生成模块105从序列L1中取数字并放入随机序列L2中,重复N次,随机序列L2中的序列即为目标序列,最终获得目标序列随机数。
本发明提出技术方案采用SHA1PRNG算法,产生可重复随机数,作为数列的位置,而不是最终随机数;采用逐步递减的方法,使每次产生的随机数,一定能在被选序列中有一个数字对应,不随随机数个数增加而增加计算量,效率高。
本领域普通技术人员可以理解实现上述实施例中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory,ROM)或随机存储记忆体(Random AccessMemory,RAM)等。
注意,上述仅为本发明的较佳实施例及所运用技术原理。本领域技术人员会理解,本发明不限于这里所述的特定实施例,对本领域技术人员来说能够进行各种明显的变化、重新调整和替代而不会脱离本发明的保护范围。因此,虽然通过以上实施例对本发明进行了较为详细的说明,但是本发明不仅仅限于以上实施例,在不脱离本发明构思的情况下,还可以包括更多其他等效实施例,而本发明的范围由所附的权利要求范围决定。
Claims (6)
1.一种高效可重复随机数产生装置,其特征在于,包括基础序列生成模块、随机数生成模块、元素删除模块、重复执行模块以及目标序列随机数生成模块;所述基础序列生成模块用于生成一个固定长度为N的顺序序列L1;所述随机数生成模块用于采用SHA1PRNG算法产生序列L1长度的随机数R1,并从序列L1中取出L1[R1]的数字放入随机序列L2中,其中,L2[L2.length-1]=L1[R1];所述元素删除模块用于删除L1[R1]的元素;所述重复执行模块用于重复从序列L1中取数字并放入随机序列L2中;所述目标序列随机数生成模块用于从序列L1中取数字并放入随机序列L2中,并重复N次,获得目标序列随机数。
2.根据权利要求1所述的高效可重复随机数产生装置,其特征在于,所述基础序列生成模块具体用于采用SHA1PRNG算法,使用固定种子生成一个固定长度为N的顺序序列L1。
3.根据权利要求1或2任一项所述的高效可重复随机数产生装置,其特征在于,所述固定长度为N的顺序序列L1为固定长度为N的自递增序列L1。
4.一种高效可重复随机数产生方法,其特征在于,包括如下步骤:
S101、基础序列生成模块生成一个固定长度为N的顺序序列L1;
S102、随机数生成模块采用SHA1PRNG算法产生序列L1长度的随机数R1,并从序列L1中取出L1[R1]的数字放入随机序列L2中,其中,L2[L2.length-1]=L1[R1];
S103、元素删除模块删除L1[R1]的元素;
S104、重复执行模块重复从序列L1中取数字并放入随机序列L2中;
S105、目标序列随机数生成模块从序列L1中取数字并放入随机序列L2中,并重复N次,获得目标序列随机数。
5.根据权利要求4所述的高效可重复随机数产生方法,其特征在于,所述步骤S101具体包括:基础序列生成模块采用SHA1PRNG算法,使用固定种子生成一个固定长度为N的顺序序列L1。
6.根据权利要求4或5任一项所述的高效可重复随机数产生装置,其特征在于,所述固定长度为N的顺序序列L1为固定长度为N的自递增序列L1。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710607980.5A CN107391084A (zh) | 2017-07-24 | 2017-07-24 | 一种高效可重复随机数产生装置及方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710607980.5A CN107391084A (zh) | 2017-07-24 | 2017-07-24 | 一种高效可重复随机数产生装置及方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN107391084A true CN107391084A (zh) | 2017-11-24 |
Family
ID=60336746
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710607980.5A Pending CN107391084A (zh) | 2017-07-24 | 2017-07-24 | 一种高效可重复随机数产生装置及方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107391084A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110069242A (zh) * | 2019-04-26 | 2019-07-30 | 迅付信息科技有限公司 | 一种随机数发生器及电子券、动态支付码的生成方法 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101793115A (zh) * | 2009-12-20 | 2010-08-04 | 姜君凯 | 电子锁和钥匙及工作流程控制 |
US8363834B1 (en) * | 2008-07-22 | 2013-01-29 | Tara Chand Singhal | Systems and methods for complex encryption keys |
CN103034471A (zh) * | 2012-12-10 | 2013-04-10 | 杜海洋 | 一种随机数的生成方法及系统 |
CN103399726A (zh) * | 2013-07-15 | 2013-11-20 | 哈尔滨工程大学 | 一种流水线化的组合式伪随机数发生器 |
CN105808207A (zh) * | 2016-03-22 | 2016-07-27 | 中国科学院半导体研究所 | 混沌伪随机数发生器、采用其的电路及片上系统 |
CN106681689A (zh) * | 2017-01-13 | 2017-05-17 | 西南大学 | 伪随机序列产生方法及装置 |
-
2017
- 2017-07-24 CN CN201710607980.5A patent/CN107391084A/zh active Pending
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8363834B1 (en) * | 2008-07-22 | 2013-01-29 | Tara Chand Singhal | Systems and methods for complex encryption keys |
CN101793115A (zh) * | 2009-12-20 | 2010-08-04 | 姜君凯 | 电子锁和钥匙及工作流程控制 |
CN103034471A (zh) * | 2012-12-10 | 2013-04-10 | 杜海洋 | 一种随机数的生成方法及系统 |
CN103399726A (zh) * | 2013-07-15 | 2013-11-20 | 哈尔滨工程大学 | 一种流水线化的组合式伪随机数发生器 |
CN105808207A (zh) * | 2016-03-22 | 2016-07-27 | 中国科学院半导体研究所 | 混沌伪随机数发生器、采用其的电路及片上系统 |
CN106681689A (zh) * | 2017-01-13 | 2017-05-17 | 西南大学 | 伪随机序列产生方法及装置 |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110069242A (zh) * | 2019-04-26 | 2019-07-30 | 迅付信息科技有限公司 | 一种随机数发生器及电子券、动态支付码的生成方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP2368338B1 (en) | Non-networked rfid-puf authentication | |
US8306217B2 (en) | Cryptographic processing apparatus and cryptographic processing method, and computer program | |
US8782396B2 (en) | Authentication with physical unclonable functions | |
JP4308840B2 (ja) | Sha演算方法およびsha演算装置 | |
US8861725B2 (en) | Random bit stream generator with enhanced backward secrecy | |
US20100262840A1 (en) | Method and devices for protecting a microcircuit from attacks for obtaining secret data | |
US8879733B2 (en) | Random bit stream generator with guaranteed minimum period | |
EP1886432A2 (en) | Strengthening secure hash functions | |
CN112787971B (zh) | 侧信道攻击模型的构建方法、密码攻击设备及计算机存储介质 | |
KR20160111789A (ko) | 비밀 정보 기반의 상호 인증 방법 및 장치 | |
CN112260818B (zh) | 侧信道曲线的增强方法、侧信道攻击方法及装置 | |
US20170365191A1 (en) | Iterative encryption and random generation and serialization of cryptographic functions | |
EP3300293A1 (fr) | Procédé de chiffrement ou de déchiffrement symétrique par bloc | |
CN116488794B (zh) | 基于fpga的高速sm4密码模组实现方法及装置 | |
JP6445570B2 (ja) | デバイス固有情報の誤り率制御方法とデバイス固有情報の誤り率制御プログラム | |
US9049004B2 (en) | Low-power encryption apparatus and method | |
CN107391084A (zh) | 一种高效可重复随机数产生装置及方法 | |
CN109218008A (zh) | 一种针对sm4密钥扩展算法的模板攻击方法 | |
Perusheska et al. | Deep learning-based cryptanalysis of different AES modes of operation | |
CN107016292A (zh) | 防止通过功率分析进行窃听的电子电路及防止窃听的方法 | |
Rührmair | Towards secret-free security | |
Jawad et al. | A novel dynamic secret key generation for an efficient image encryption algorithm | |
JP2006338045A (ja) | カオス・ニューラルネットワークを用いた乱数生成システム | |
Cianfriglia et al. | A Novel GPU-Based Implementation of the Cube Attack: Preliminary Results Against Trivium | |
CN107659411A (zh) | 加密货币中条件可追踪用户签名的方法和系统 |
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 | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20171124 |