CN111142843B - 一种基于混沌的计算机随机数生成系统及方法 - Google Patents

一种基于混沌的计算机随机数生成系统及方法 Download PDF

Info

Publication number
CN111142843B
CN111142843B CN201911290124.7A CN201911290124A CN111142843B CN 111142843 B CN111142843 B CN 111142843B CN 201911290124 A CN201911290124 A CN 201911290124A CN 111142843 B CN111142843 B CN 111142843B
Authority
CN
China
Prior art keywords
sequence
random number
function
parameters
pseudo
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
Application number
CN201911290124.7A
Other languages
English (en)
Other versions
CN111142843A (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.)
BEIJING ELECTRONIC SCIENCE AND TECHNOLOGY INSTITUTE
Original Assignee
BEIJING ELECTRONIC SCIENCE AND TECHNOLOGY INSTITUTE
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 BEIJING ELECTRONIC SCIENCE AND TECHNOLOGY INSTITUTE filed Critical BEIJING ELECTRONIC SCIENCE AND TECHNOLOGY INSTITUTE
Priority to CN201911290124.7A priority Critical patent/CN111142843B/zh
Publication of CN111142843A publication Critical patent/CN111142843A/zh
Application granted granted Critical
Publication of CN111142843B publication Critical patent/CN111142843B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

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/582Pseudo-random number generators
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/10Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
    • G06F21/12Protecting executable software
    • G06F21/14Protecting executable software against software analysis or reverse engineering, e.g. by obfuscation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/448Execution paradigms, e.g. implementations of programming paradigms
    • G06F9/4488Object-oriented
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N7/00Computing arrangements based on specific mathematical models
    • G06N7/08Computing arrangements based on specific mathematical models using chaos models or non-linear system models
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/001Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using chaotic signals
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0861Generation of secret information including derivation or calculation of cryptographic keys or passwords
    • H04L9/0869Generation of secret information including derivation or calculation of cryptographic keys or passwords involving random numbers or seeds

Abstract

本发明公开了一种基于混沌的计算机随机数生成系统及方法,其对计算机系统中常用的伪随机数生成函数进行了改进。该方法包括3个接口:hdintrand函数、hddoublerand函数和hdcharrand函数,分别实现生成整型伪随机数、浮点型伪随机数和字符型伪随机序列。该方法采用基于改进的一维Logistic混沌映射的随机数生成方法,与基于同余式的随机数生成相比,具有密码学意义上的安全性,可满足信息安全场合的随机数需求。通过接口指定类型和范围来获得所需要的随机数,并提供了密钥找回随机数的功能,保持原有计算机系统随机数生成函数的随机性和效率,同时安全性和通用性的提高使其具有了更高的实用价值。

Description

一种基于混沌的计算机随机数生成系统及方法
技术领域
本发明涉及信息安全领域,尤其是一种基于混沌的计算机随机数生成系统及方法。
背景技术
伪随机数发生器(PRNG)广泛应用于系统仿真、安全等各个领域。基于可靠、高效的伪随机数发生器在系统仿真中真实地描述系统的运行、演变及其发展过程。在以密码学为基础的信息安全领域中,伪随机数发生器也扮演着重要的角色,密钥生成、数字签名、认证和鉴别以及各种安全通信协议都离不开高质量的随机数。从某种意义上讲,随机数的安全性决定了整个安全体系的安全性。在C语言<stdlib.h>中有四个常用的伪随机数生成函数:rand()、srand()、randomize()和random(num),但是以上四个函数都有明显的缺陷,且易用性较差。
发明内容
本发明的技术解决问题:克服现有技术的不足,提供一种基于混沌的计算机随机数生成系统及方法,用户可以根据自身要求设置序列的长度、上下界,提高通用性;通过调用精度更高的函数获取微秒级时间,有效防止c语言中获取秒级时间造成的伪随机数序列被攻击的问题;改进原有一维Logistic映射模型,获得随机性更强的混沌序列。
本发明的技术解决方案为:一种基于混沌的计算机随机数生成系统,其特征在于:包括用户通用性设置模块,安全性加强模块以及随机数生成模块;
用户通用性设置模块:用于提供外部接口,方便其他程序调用,通过输入相关函数参数获得需要的随机序列;所述外部接口以接口函数的方式提供,提供三种接口:分别实现生成整型伪随机数、浮点型伪随机数和字符型伪随机序列,对应的函数分别为:hdintrand函数、hddoublerand函数、hdcharrand函数;其中,函数参数包括:a[]接收随机数的数组,long序列长度,Key找回随机数的密钥,*p接收生成的密钥,hdintrand函数和hddoublerand函数还包括min取值范围的最小值,max取值范围的最大值,用于获取对序列的长度、上下界、找回随机序列;
安全性加强模块:使用c中time.h中提供的minsec函数获取系统微秒级时间,并将年、月、日、时、分、秒、微秒相乘得到序列sk,如果日期中有‘0’的乘数项则将其默认置为‘1’,防止序列被置零,通过获取的是系统微妙级时间,能防止获取系统秒级时间而造成的伪随机数序列容易被攻击;
随机数生成模块:采用改进的一维Logistic映射模型,通过分组迭代方式,每次只生成单个的伪随机数,从而提高一维逻辑映射函数的随机性;同时,该改进的一维Logistic映射模型的两个参数μ和X0由多个因素共同决定:使用四组参数迭代作为系统的系数μ;混沌序列初值X0由固定十六进制参数mk和微秒级时间序列积sk两个参数决定。
进一步的,所述用户通用性设置模块对接口进行调用,生成整型伪随机数、浮点型伪随机数和字符型伪随机序列;对应调用的的函数分别为:hdintrand函数、hddoublerand函数、hdcharrand函数;
调用某一函数并设置参数,参数中包括接收随机数的数组,序列长度,取值范围的最大值和最小值,找回随机数的密钥和接收生成的密钥;
在字符型伪随机序列生成中,不包括取值范围的参数,供用户通用性设置模块调用。
进一步的,所述安全性加强模块使用c中time.h中提供的minsec函数获取系统微秒级时间,并将年、月、日、时、分、秒、微秒相乘得到序列sk,如果日期中有‘0’的乘数项则将其默认置为‘1’,防止序列被置零,将所得序列sk规范化,同时获取四组固定十六进制参数,每次都依次使用四组参数中的一个进行迭代,防止只使用一个参数造成的随机性不达标,以此获得mk序列,将mk按需移位生成x,供安全性加强模块调用。
进一步的,所述随机数生成模块将安全性加强模块调用生成获得的规范化的sk和x异或运算获得初始迭代x,然后进行n次预迭代,n为生成混沌序列之前为提高随机性预迭代的次数,通过提高迭代的次数,生成随机性更强的混沌序列,将预迭代后的x与系统参数μ根据移位Logistic映射迭代,最终规格化生成单个伪随机数,根据随机序列长度分组多次迭代后最终生成伪随机数序列。
本发明还提出一种基于混沌的计算机随机数生成方法,包括如下步骤:
步骤(1)、对接口进行调用,应用生成整型伪随机数、浮点型伪随机数和字符型伪随机序列,调用随机数生成函数并设置函数参数,函数参数中应包括接收随机数的数组,序列长度,取值范围的最大值和最小值,找回随机数的密钥和接收生成的密钥;在字符型伪随机序列生成中,不包括取值范围的参数,供用户通用性设置模块调用;
步骤(2),随机数生成数函数使用c中time.h中提供的minsec函数获取系统微秒级时间,并将年、月、日、时、分、秒、微秒相乘得到序列sk,如果日期中有‘0’的乘数项则将其默认置为‘1’,防止序列被置零,将所得序列sk规范化,同时获取四组固定十六进制参数,每次都会依次使用四组参数中的一个进行迭代,防止只使用一个参数造成的随机性不达标,以此获得mk序列,将mk按需移位生成x;
步骤(3)、将所得规范化的sk和x异或运算获得初始迭代x,然后进行n次预迭代,n为生成混沌序列之前为提高随机性预迭代的次数,通过提高迭代的次数,可以生成随机性更强的混沌序列,将预迭代后的x与系统参数μ根据移位Logistic映射迭代,最终规格化生成单个伪随机数,根据随机序列长度分组多次迭代后最终生成伪随机数序列。
进一步的,所述步骤(1)具体包括:
(1.1)创建存储参数的变量;
(1.1.1)创建接long int型收生成密钥的变量参数key;
(1.1.2)创建存储随机数序列或字符序列的数组a[];
(1.2)设置参数;
(1.2.1)设置接受随机数序列或字符序列的数组a[];
(1.2.2)设置序列长度为300*300;
(1.2.3)设置序列范围为[0,255];
(1.2.4)设置随机数找回密钥为0;
(1.2.5)设置接受生成的密钥指针为&key;
(1.3)进入步骤(2)。
进一步的,所述步骤(2)具体包括:
(2.1)获取参数;
(2.1.1)调用time.h中的minsec()函数,获取y(年)m(月)d(日)h(时)min(分)s(秒)us(微秒)时间参数;
(2.1.2)将(2.1.1)中参数为0的改成1;
(2.1.3)将(2.1.2)中参数值相乘获得sk并规范化;
(2.1.4)获取四组固定十六进制参数;
(2.1.5)每次迭代使用一个参数作为mk;
(2.1.6)根据一维Logistic模型中x取值范围[0,1],将mk进行按需移位;
(2.2)将sk与x进行按位异或生成初始化x。
进一步的,所述步骤(3)具体包括:
(3.1)获取由步骤2生成的初始化参数x;
(3.1.1)生成随机数γ,令γ与迭代初值x进行预迭代n次,即x=x*γn生成迭代值x,n值设为[0,100];
(3.1.2)随机生成四组参数μ1、μ2、μ3和μ4,每一轮次迭代作为系数μ,如第一轮μ=μ1,第二轮μ=μ2,第三轮μ=μ3,第四轮μ=μ4,依次循环;
(3.2)输入一维Logistic映射公式f(x)=μx(1-x),x∈[0,1]迭代运行并规格化;
(3.3)生成随机数序列。
本发明与现有技术相比的优点在于:
(1)本发明提出基于一维Logistic混沌映射的通用伪随机数生成方法,可以调用不同随机数类型的接口,并提供了密钥找回随机数的功能,实现了C语言的随机数生成函数,用户可根据自身需要设置生成不同长度、不同范围的伪随机数。
(2)本发明改进原有一维Logistic映射模型,提出不直接生成整个伪随机数混沌序列,而是通过分组迭代等方式,每次只生成单个伪随机数,有效提高随机性。同时,该映射函数的两个参数x和μ由多个因素共同决定,保证获得随机性更强的混沌序列。
(3)本发明采用精度更高的minsec函数获取微秒级时间,抗破解能力强,有效防止获取秒级时间造成的伪随机数序列被攻击的问题。
(4)本发明在生成伪随机序列后产生一个密钥串,用于找回该伪随机数序列,能有效防止伪随机数丢失造成的安全风险。有效提高随机数生成的随机性、密钥敏感性和兼容性。
附图说明
图1为本发明的框架图;
图2为本发明的用户通用性设置模块执行的流程;
图3为本发明的安全性加强模块执行的流程;
图4为本发明的随机数生成模块执行的流程。
具体实施方式
为了更好地理解本发明,先对一些基本概念进行一下解释说明。
伪随机数:伪随机数是用确定性的算法计算出来自[0,1]均匀分布的随机数序列。并不真正的随机,但具有类似于随机数的统计特征,如均匀性、独立性等,一般采用伪随机数代替真正的随机数。
混沌系统:混沌是非线性动力系统固有的特性,在非线性系统中是普遍存在的现象。在非线性动力系统中混沌现象是一个确定性、类随机的过程,这种过程是非周期且不收敛的,并且对于初始值具有非常敏感的依赖性。一个确定性系统中,存在这样类随机的不规则运动,而且它的行为表现出不确定性的、不可重复的、不可预测的混沌现象,这就是一个混沌系统。
一维Logistic映射:从数学形式上来看是一个非常简单的差分方程,最早来描述生物学中种群的变化。此系统具有极其复杂的动力学行为,现在在保密通信领域的应用十分广泛,其数学表达公式如下:
f(x)=μx(1-x),x∈[0,1]
其中,μ∈[0,4]被称为Logistic参数。研究表明,当x∈[0,1]时,Logistic映射工作处于混沌状态。本发明中使用四组参数迭代作为系统的系数μ,x的初始值由mk和sk参数决定。sk表示从年到微秒级时间各单位的乘积,mk为四组固定十六进制参数。
根据一个实施例,参见图1,本发明所提出的一种基于混沌的通用伪随机数系统,包括用户通用性设置模块,安全性加强模块以及随机数生成模块;
具体如下:
用户通用性设置模块:用于提供外部接口,方便其他程序调用,通过输入相关参数即可获得需要的随机序列;接口功能以接口函数的方式提供,提供三种接口:分别实现生成整型伪随机数、浮点型伪随机数和字符型伪随机序列,对应的函数分别为:hdintrand函数、hddoublerand函数、hdcharrand函数;其中,函数参数包括a[]接收随机数的数组,long序列长度,Key找回随机数的密钥,*p接收生成的密钥,hdintrand函数和hddoublerand函数还包括min取值范围的最小值,max取值范围的最大值,可以满足需求者对序列的长度、上下界、找回随机序列等要求;
所述的用户通用性设置模块避免C语言<stdlib.h>中常用的四个伪随机生成函数rand(),srand(),randomize()和random(num)的参数易用性不足,满足需求者对序列的长度、上下界的要求;
安全性加强模块:使用c中time.h中提供的minsec函数获取系统微秒级时间,并将年、月、日、时、分、秒、微秒相乘得到序列sk,如果日期中有‘0’的乘数项则将其默认置为‘1’,防止序列被置零,由于获取的是系统微妙级时间,能有效防止类似C中srand((unsigned)(time(NULL))获取系统秒级时间而造成的伪随机数序列容易被攻击的问题,同时也避免采用每次初始化随机种子的方法;所述安全性加强模块在该生成器解决了四个伪随机生成函数rand(),srand(),randomize()和random(num)获取系统时间时精度仅在秒级别和随机种子必须初始化的不足;
随机数生成模块:采用改进的一维Logistic映射模型,通过不直接生成整个伪随机数混沌序列,而是通过分组迭代等方式,每次只生成单个的伪随机数,从而有效提高一维逻辑映射函数的随机性。同时,该改进的一维Logistic映射模型的两个参数μ和X0由多个因素共同决定:本系统使用四组参数迭代作为系统的系数μ。混沌序列初值X0由mk和sk两个参数决定。随机数生成模块通过改进一维Logistic映射实现随机序列良好的混沌性质;
本发明整个实现过程如下:
(1)对接口进行调用,应用生成整型伪随机数、浮点型伪随机数和字符型伪随机序列,对应的函数分别为:hdintrand函数、hddoublerand函数、hdcharrand函数,调用某一函数并设置参数,参数中应包括接收随机数的数组,序列长度,取值范围的最大值和最小值,找回随机数的密钥和接收生成的密钥,在字符型伪随机序列生成中,不包括取值范围的参数,供用户通用性设置模块调用;
(2)使用c中time.h中提供的minsec函数获取系统微秒级时间,并将年、月、日、时、分、秒、微秒相乘得到序列sk,如果日期中有‘0’的乘数项则将其默认置为‘1’,防止序列被置零,将所得序列sk规范化,同时获取四组固定十六进制参数,每次都会依次使用四组参数中的一个进行迭代,防止只使用一个参数造成的随机性不达标,以此获得mk序列,将mk按需移位生成x,供安全性加强模块调用;
(3)将所得规范化的sk和x异或运算获得初始迭代x,然后进行n次预迭代,n为生成混沌序列之前为提高随机性预迭代的次数,通过提高迭代的次数,可以生成随机性更强的混沌序列,将预迭代后的x与系统参数μ根据移位Logistic映射迭代,最终规格化生成单个伪随机数,根据随机序列长度分组多次迭代后最终生成伪随机数序列,供随机数生成模块调用。
上述各模块的具体实现过程如下:
1.用户通用性设置模块流程
该模块实现的流程的实现过程如图2所示:
(1.1)创建存储参数的变量;
(1.1.1)创建接long int型收生成密钥的变量参数key;
(1.1.2)创建存储随机数序列或字符序列的数组a[];
(1.2)设置参数;
(1.2.1)设置接受随机数序列或字符序列的数组a[];
(1.2.2)设置序列长度为300*300;
(1.2.3)设置序列范围为[0,255];
(1.2.4)设置随机数找回密钥为0;
(1.2.5)设置接受生成的密钥指针为&key;
(1.3)进入安全性加强模块;
2.安全性加强模块流程
该模块实现的流程如图3所示:
(2.1)获取参数;
(2.1.1)调用time.h中的minsec()函数,获取y(年)m(月)d(日)h(时)min(分)s(秒)us(微秒)时间参数,如2019年11月22日21时03分0秒12563微秒;
(2.1.2)将(2.1.1)中参数为0的改成1,时间参数改为2019年11月22日21时03分1秒12563微秒;
(2.1.3)将(2.1.2)中参数值相乘获得sk并规范化,sk=3860710170462,规范化后为sk=111000001011100100010000100001111101011110;
(2.1.4)获取四组固定十六进制参数;
(2.1.5)每次迭代使用一个参数作为mk;
(2.1.6)根据一维Logistic模型中x取值范围[0,1]将mk进行按需移位,如mk=0x00bf0fcf,按需求移位后x=0.101111110000111111001111;
(2.2)将sk与x进行按位异或生成初始化x=0.01011111101101101101101111;
3.随机数生成模块流程
该模块实现的流程如图4所示:
(3.1)获取由模块2生成的初始化参数x;
(3.1.1)生成随机数γ,令γ与迭代初值x进行预迭代n次,即x=x*γn生成迭代值x,n值可设为[0,100];
(3.1.2)随机生成四组参数μ1、μ2、μ3和μ4,每一轮次迭代作为系数μ,如第一轮μ=μ1,第二轮μ=μ2,第三轮μ=μ3,第四轮μ=μ4,依次循环;
(3.2)输入一维Logistic映射公式f(x)=μx(1-x),x∈[0,1]迭代运行并规格化;
(3.3)生成随机数序列。
尽管上面对本发明说明性的具体实施方式进行了描述,以便于本技术领域的技术人员理解本发明,且应该清楚,本发明不限于具体实施方式的范围,对本技术领域的普通技术人员来讲,只要各种变化在所附的权利要求限定和确定的本发明的精神和范围内,这些变化是显而易见的,一切利用本发明构思的发明创造均在保护之列。

Claims (7)

1.一种基于混沌的计算机随机数生成系统,其特征在于:包括用户通用性设置模块,安全性加强模块以及随机数生成模块;
用户通用性设置模块:用于提供外部接口,方便其他程序调用,通过输入相关函数参数获得需要的随机序列;所述外部接口以接口函数的方式提供,提供三种接口:分别实现生成整型伪随机数、浮点型伪随机数和字符型伪随机序列,对应的函数分别为:hdintrand函数、hddoublerand函数、hdcharrand函数;其中,函数参数包括:a[]接收随机数的数组,long序列长度,Key找回随机数的密钥,*p接收生成的密钥,hdintrand函数和hddoublerand函数还包括min取值范围的最小值,max取值范围的最大值,用于获取对序列的长度、上下界、找回随机序列;
安全性加强模块:使用c中time.h中提供的minsec函数获取系统微秒级时间,并将年、月、日、时、分、秒、微秒相乘得到序列sk,如果日期中有‘0’的乘数项则将其默认置为‘1’,防止序列被置零,通过获取的是系统微妙级时间,能防止获取系统秒级时间而造成的伪随机数序列容易被攻击;
随机数生成模块:采用改进的一维Logistic映射模型,通过分组迭代方式,每次只生成单个的伪随机数,从而提高一维逻辑映射函数的随机性;同时,该改进的一维Logistic映射模型的两个参数μ和X0由多个因素共同决定:使用四组参数迭代作为系统的系数μ;混沌序列初值X0由固定十六进制参数mk和微秒级时间序列积sk两个参数决定;
所述随机数生成模块将安全性加强模块调用生成获得的规范化的sk和x异或运算获得初始迭代x,然后进行n次预迭代,n为生成混沌序列之前为提高随机性预迭代的次数,通过提高迭代的次数,生成随机性更强的混沌序列,将预迭代后的x与系统参数μ根据移位Logistic映射迭代,最终规格化生成单个伪随机数,根据随机序列长度分组多次迭代后最终生成伪随机数序列。
2.根据权利要求1所述的一种基于混沌的计算机随机数生成系统,其特征在于:
所述用户通用性设置模块对接口进行调用,生成整型伪随机数、浮点型伪随机数和字符型伪随机序列;对应调用的的函数分别为:hdintrand函数、hddoublerand函数、hdcharrand函数;
调用某一函数并设置参数,参数中包括接收随机数的数组,序列长度,取值范围的最大值和最小值,找回随机数的密钥和接收生成的密钥;
在字符型伪随机序列生成中,不包括取值范围的参数,供用户通用性设置模块调用。
3.根据权利要求1所述的一种基于混沌的计算机随机数生成系统,其特征在于:
所述安全性加强模块使用c中time.h中提供的minsec函数获取系统微秒级时间,并将年、月、日、时、分、秒、微秒相乘得到序列sk,如果日期中有‘0’的乘数项则将其默认置为‘1’,防止序列被置零,将所得序列sk规范化,同时获取四组固定十六进制参数,每次都依次使用四组参数中的一个进行迭代,防止只使用一个参数造成的随机性不达标,以此获得mk序列,将mk按需移位生成x,供安全性加强模块调用。
4.一种基于混沌的计算机随机数生成方法,其特征在于,包括如下步骤:
步骤(1)、对接口进行调用,应用生成整型伪随机数、浮点型伪随机数和字符型伪随机序列,调用随机数生成函数并设置函数参数,函数参数中应包括接收随机数的数组,序列长度,取值范围的最大值和最小值,找回随机数的密钥和接收生成的密钥;在字符型伪随机序列生成中,不包括取值范围的参数,供用户通用性设置模块调用;
步骤(2),随机数生成数函数使用c中time.h中提供的minsec函数获取系统微秒级时间,并将年、月、日、时、分、秒、微秒相乘得到序列sk,如果日期中有‘0’的乘数项则将其默认置为‘1’,防止序列被置零,将所得序列sk规范化,同时获取四组固定十六进制参数,每次都会依次使用四组参数中的一个进行迭代,防止只使用一个参数造成的随机性不达标,以此获得mk序列,将mk按需移位生成x;
步骤(3)、将所得规范化的sk和x异或运算获得初始迭代x,然后进行n次预迭代, n为生成混沌序列之前为提高随机性预迭代的次数,通过提高迭代的次数,可以生成随机性更强的混沌序列,将预迭代后的x与系统参数μ根据移位Logistic映射迭代,最终规格化生成单个伪随机数,根据随机序列长度分组多次迭代后最终生成伪随机数序列。
5.根据权利要求4所述的一种基于混沌的计算机随机数生成方法,其特征在于,所述步骤(1)具体包括:
(1.1)创建存储参数的变量;
(1.1.1)创建接longint型收生成密钥的变量参数key;
(1.1.2)创建存储随机数序列或字符序列的数组a[];
(1.2)设置参数;
(1.2.1)设置接受随机数序列或字符序列的数组a[];
(1.2.2)设置序列长度为300*300;
(1.2.3)设置序列范围为[0,255];
(1.2.4)设置随机数找回密钥为0;
(1.2.5)设置接受生成的密钥指针为&key;
(1.3)进入步骤(2)。
6.根据权利要求4所述的一种基于混沌的计算机随机数生成方法,其特征在于,所述步骤(2)具体包括:
(2.1)获取参数;
(2.1.1)调用time.h中的minsec()函数,获取y(年)m(月)d(日)h(时)min(分)s(秒)us(微秒)时间参数;
(2.1.2)将(2.1.1)中参数为0的改成1;
(2.1.3)将(2.1.2)中参数值相乘获得sk并规范化;
(2.1.4)获取四组固定十六进制参数;
(2.1.5)每次迭代使用一个参数作为mk;
(2.1.6)根据一维Logistic模型中x取值范围[0,1],将mk进行按需移位;
(2.2)将sk与x进行按位异或生成初始化x。
7.根据权利要求4所述的一种基于混沌的计算机随机数生成方法,其特征在于,所述步骤(3)具体包括:
(3.1)获取由步骤2生成的初始化参数x;
(3.1.1)生成随机数γ,令γ与迭代初值x进行预迭代n次,即x=x*γn生成迭代值x,n值设为[0,100];
(3.1.2)随机生成四组参数μ1、μ2、μ3和μ4,每一轮次迭代作为系数μ,如第一轮μ=μ1,第二轮μ=μ2,第三轮μ=μ3,第四轮μ=μ4,依次循环;
(3.2)输入一维Logistic映射公式f(x)=μx(1-x),x∈[0,1]迭代运行并规格化;
(3.3)生成随机数序列。
CN201911290124.7A 2019-12-16 2019-12-16 一种基于混沌的计算机随机数生成系统及方法 Active CN111142843B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201911290124.7A CN111142843B (zh) 2019-12-16 2019-12-16 一种基于混沌的计算机随机数生成系统及方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201911290124.7A CN111142843B (zh) 2019-12-16 2019-12-16 一种基于混沌的计算机随机数生成系统及方法

Publications (2)

Publication Number Publication Date
CN111142843A CN111142843A (zh) 2020-05-12
CN111142843B true CN111142843B (zh) 2021-10-29

Family

ID=70518341

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201911290124.7A Active CN111142843B (zh) 2019-12-16 2019-12-16 一种基于混沌的计算机随机数生成系统及方法

Country Status (1)

Country Link
CN (1) CN111142843B (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113504894B (zh) * 2021-09-09 2021-12-17 华控清交信息科技(北京)有限公司 一种随机数产生器、生成伪随机数的方法和一种芯片
CN117234460B (zh) * 2023-08-31 2024-04-02 常州大学 基于三维mhm的超混沌伪随机数生成方法及装置

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109511105A (zh) * 2018-12-21 2019-03-22 大连大学 随机数均匀化处理方法及射频识减少碰撞时隙数量的方法和应用
CN109583187A (zh) * 2018-11-16 2019-04-05 中共中央办公厅电子科技学院 一种增强现实验证码方法及应用
CN110537191A (zh) * 2017-03-22 2019-12-03 维萨国际服务协会 隐私保护机器学习

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110537191A (zh) * 2017-03-22 2019-12-03 维萨国际服务协会 隐私保护机器学习
CN109583187A (zh) * 2018-11-16 2019-04-05 中共中央办公厅电子科技学院 一种增强现实验证码方法及应用
CN109511105A (zh) * 2018-12-21 2019-03-22 大连大学 随机数均匀化处理方法及射频识减少碰撞时隙数量的方法和应用

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
基于随机子图表示的云环境人脸图像隐秘检测;袁鹏,金鑫,李晓东等;《系统仿真学报》;20160915;2195-2200 *

Also Published As

Publication number Publication date
CN111142843A (zh) 2020-05-12

Similar Documents

Publication Publication Date Title
EP2000901B1 (en) Galois field number generator
US8320557B2 (en) Cryptographic system including a mixed radix number generator with chosen statistical artifacts
US7970809B2 (en) Mixed radix conversion with a priori defined statistical artifacts
EP2962185B1 (en) Random number generator and stream cipher
US8363830B2 (en) Cryptographic system configured to perform a mixed radix conversion with a priori defined statistical artifacts
EP2000900B1 (en) Extending a repetition period of a random sequence
US8180055B2 (en) Cryptographic system incorporating a digitally generated chaotic numerical sequence
Abd‐El‐Hafiz et al. A fractal‐based image encryption system
CN111142843B (zh) 一种基于混沌的计算机随机数生成系统及方法
CN107017981B (zh) 硬件辅助快速伪随机数生成
CN106941407B (zh) 一种平台数据动态加密的方法和装置
Rohith et al. Image encryption and decryption using chaotic key sequence generated by sequence of logistic map and sequence of states of Linear Feedback Shift Register
Ozkaynak A novel random number generator based on fractional order chaotic Chua system
Ye et al. Spatial image encryption algorithm based on chaotic map and pixel frequency
Kaur et al. Fourier–Mellin moment-based intertwining map for image encryption
AU2020202883B1 (en) Systems and computer-implemented methods for generating pseudo random numbers
DeVos et al. Simple affine extractors using dimension expansion
CN110232284B (zh) 一种图像加密方法及装置
Bhattacharjee et al. Random number generation using decimal cellular automata
Das et al. Diffusion and encryption of digital image using genetic algorithm
CN114063981A (zh) 高质量伪随机数的获取方法
Dasgupta et al. Colour image encryption based on multiple fractional order chaotic systems
Dutang et al. A note on random number generation
Kocak et al. Modifications of knuth randomness tests for integer and binary sequences
Origines et al. A Novel Pseudo-random number generator algorithm based on entropy source epoch timestamp

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