【技术实现步骤摘要】
一种基于混沌的计算机随机数生成系统及方法
本专利技术涉及信息安全领域,尤其是一种基于混沌的计算机随机数生成系统及方法。
技术介绍
伪随机数发生器(PRNG)广泛应用于系统仿真、安全等各个领域。基于可靠、高效的伪随机数发生器在系统仿真中真实地描述系统的运行、演变及其发展过程。在以密码学为基础的信息安全领域中,伪随机数发生器也扮演着重要的角色,密钥生成、数字签名、认证和鉴别以及各种安全通信协议都离不开高质量的随机数。从某种意义上讲,随机数的安全性决定了整个安全体系的安全性。在C语言<stdlib.h>中有四个常用的伪随机数生成函数:rand()、srand()、randomize()和random(num),但是以上四个函数都有明显的缺陷,且易用性较差。
技术实现思路
本专利技术的技术解决问题:克服现有技术的不足,提供一种基于混沌的计算机随机数生成系统及方法,用户可以根据自身要求设置序列的长度、上下界,提高通用性;通过调用精度更高的函数获取微秒级时间,有效防止c语言中获取秒级时间造成的伪随机数序列被攻击的问题;改进原有一维Logistic映射模型,获得随机性更强的混沌序列。本专利技术的技术解决方案为:一种基于混沌的计算机随机数生成系统,其特征在于:包括用户通用性设置模块,安全性加强模块以及随机数生成模块;用户通用性设置模块:用于提供外部接口,方便其他程序调用,通过输入相关函数参数获得需要的随机序列;所述外部接口以接口函数的方式提供,提供三种接口:分别实现生成整型伪随机数、浮 ...
【技术保护点】
1.一种基于混沌的计算机随机数生成系统,其特征在于:包括用户通用性设置模块,安全性加强模块以及随机数生成模块;/n用户通用性设置模块:用于提供外部接口,方便其他程序调用,通过输入相关函数参数获得需要的随机序列;所述外部接口以接口函数的方式提供,提供三种接口:分别实现生成整型伪随机数、浮点型伪随机数和字符型伪随机序列,对应的函数分别为:hdintrand函数、hddoublerand函数、hdcharrand函数;其中,函数参数包括:a[]接收随机数的数组,long序列长度,Key找回随机数的密钥,*p接收生成的密钥,hdintrand函数和hddoublerand函数还包括min取值范围的最小值,max取值范围的最大值,用于获取对序列的长度、上下界、找回随机序列;/n安全性加强模块:使用c中time.h中提供的minsec函数获取系统微秒级时间,并将年、月、日、时、分、秒、微秒相乘得到序列sk,如果日期中有‘0’的乘数项则将其默认置为‘1’,防止序列被置零,通过获取的是系统微妙级时间,能防止获取系统秒级时间而造成的伪随机数序列容易被攻击;/n随机数生成模块:采用改进的一维Logisti ...
【技术特征摘要】
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两个参数决定。
2.根据权利要求1所述的一种基于混沌的计算机随机数生成系统,其特征在于:
所述用户通用性设置模块对接口进行调用,生成整型伪随机数、浮点型伪随机数和字符型伪随机序列;对应调用的的函数分别为:hdintrand函数、hddoublerand函数、hdcharrand函数;
调用某一函数并设置参数,参数中包括接收随机数的数组,序列长度,取值范围的最大值和最小值,找回随机数的密钥和接收生成的密钥;
在字符型伪随机序列生成中,不包括取值范围的参数,供用户通用性设置模块调用。
3.根据权利要求1所述的一种基于混沌的计算机随机数生成系统,其特征在于:
所述安全性加强模块使用c中time.h中提供的minsec函数获取系统微秒级时间,并将年、月、日、时、分、秒、微秒相乘得到序列sk,如果日期中有‘0’的乘数项则将其默认置为‘1’,防止序列被置零,将所得序列sk规范化,同时获取四组固定十六进制参数,每次都依次使用四组参数中的一个进行迭代,防止只使用一个参数造成的随机性不达标,以此获得mk序列,将mk按需移位生成x,供安全性加强模块调用。
4.根据权利要求1所述的一种基于混沌的计算机随机数生成系统,其特征在于:
所述随机数生成模块将安全性加强模块调用生成获得的规范化的sk和x异或运算获得初始迭代x,然后进行n次预迭代,n为生成混沌序列之前为提高随机性预迭代的次数,通过提高迭代的次数,生成随机性更强的混沌序列,将预迭代后的x与系统参数μ根据移位Logistic映射迭代,最终规格化生成单个伪随机数,根据随机序列长度分组多次迭代后最终生成伪随机数序列。
5.一种基于混沌的计算机随机数生成方法,其特征在于,包括如下步骤:
步骤(1)、对接口进行调用,应...
【专利技术属性】
技术研发人员:李晓东,娄豪,金鑫,
申请(专利权)人:北京电子科技学院,
类型:发明
国别省市:北京;11
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。