【技术实现步骤摘要】
本专利技术属于信息安全领域,尤其涉及一种伪随机数生成方法,可用于网络信息加密。
技术介绍
随机数在密码学的应用中随处可见,如密钥、数字签名和身份认证。常见的随机数生成方法主要有两大类:真随机数生成器TRNG和伪随机数生成器PRNG。真随机数生成器TRNG具有很好的不可预测性,已有很多研究利用噪声作为外部随机源来构造发生器,如吴晓勇、王新亚的专利(专利公开号:CN103049243A)真随机数产生方法及装置,通过将模数转换和数模转换过程中的量化误差的放大过程,再与引入的热噪声求和放大来产生随机数;周昕杰、于宗光、罗静、王栋、田海燕的专利(专利公开号:CN203909778U)多源输入真随机数发生器电路架构,公开了一种通过中间变量对不同类型噪声产生电路进行选择作为噪声源,再用采样校正电路和随机数计数器对其处理得到真随机数的方法。但噪声具有不稳定性,易受到攻击者对外部噪声源的攻击,且真随机数生成器TRNG的生成方法大多数需要基于硬件来实现,生成速率相对较慢。伪随机数生成器PRNG生成随机数的速率快,易于在软硬件中实现,虽然不是真正的随机,但若周期足够大,其特性也足以在很多科学领域得到应用,如随机过程的仿真和电脑算法中的统计采样与性能评估。孙云刚、孙才、陈曦的专利(专利公开号:CN102314332B)伪随机数生成装置和方法,利用位移方向相反的两个线性反馈移位寄存器产生随机比特数;周旭、张飞的专利(专利公开号:CN103034473B)一种伪随机数生成器,通过m序列在数字逻辑电路中生成数字信号,再用数模转换将其转化为模拟信号来作为随机数源;金银军、李晓龙、宁振虎 ...
【技术保护点】
一种基于细胞神经网络的伪随机数生成方法,其特征在于,采用混沌映射方法进行,该混沌映射包括六维细胞神经网络和逻辑斯蒂映射,其实现步骤包括如下:(1)用六维细胞神经网络生成随机序列P,并将序列P中的数据按照从左到右、从上到下的顺序依次存入大小为6×6的第一矩阵p[i][j],其中i和j的取值范围均为[0,5];(2)用逻辑斯蒂映射生成随机序列X,并将序列X中的数据按照从上到下、从左到右的顺序依次存入大小为6×6的第二矩阵x[i][j];(3)对第一矩阵p[i][j]和第二矩阵x[i][j]中的数据进行整数化处理;(4)用处理后的第一矩阵p[i][j]和第二矩阵x[i][j]生成大小为6×6的二维数组r[i][j];(5)用二维数组r[i][j]生成64bits的伪随机数;(6)重复步骤(1)到(5),每次循环生成64bits的伪随机数,直到生成所需大小的伪随机数。
【技术特征摘要】
1.一种基于细胞神经网络的伪随机数生成方法,其特征在于,采用混沌映射方法进行,该混沌映射包括六维细胞神经网络和逻辑斯蒂映射,其实现步骤包括如下:(1)用六维细胞神经网络生成随机序列P,并将序列P中的数据按照从左到右、从上到下的顺序依次存入大小为6×6的第一矩阵p[i][j],其中i和j的取值范围均为[0,5];(2)用逻辑斯蒂映射生成随机序列X,并将序列X中的数据按照从上到下、从左到右的顺序依次存入大小为6×6的第二矩阵x[i][j];(3)对第一矩阵p[i][j]和第二矩阵x[i][j]中的数据进行整数化处理;(4)用处理后的第一矩阵p[i][j]和第二矩阵x[i][j]生成大小为6×6的二维数组r[i][j];(5)用二维数组r[i][j]生成64bits的伪随机数;(6)重复步骤(1)到(5),每次循环生成64bits的伪随机数,直到生成所需大小的伪随机数。2.根据权利要求1所述的基于细胞神经网络的伪随机数生成方法,其中步骤(1)用六维细胞神经网络生成随机序列P,按如下步骤进行:(1a)给定六维细胞神经网络的六个初始值,对其迭代得到新的六个初始值;(1b)用新的六个初始值迭代六维细胞神经网络,每次迭代生成六个数据,将迭代多次生成的数据设为随机序列P,其中,每次迭代前对上次迭代得到的六个数据作如下处理:将第一个数据更新为其与第二个数据的小数部位求和的平均值,将第二个数据更新为其与第三个数据的小数部位求和的平均值,将第三个数据更新为其与第四个数据的小数部位求和的平均值,将第四个数据更新为其与第五个数据的小数部位求和的平均值,将第五个数据更新为其与第六个数据的小数部位求和的平均值,将第六个数据更新为其与第一个数据的小数部位求和的平均值。3.根据权利要求1所述的基于细胞神经网络的伪随机数生成方法,其中步骤(2)用逻辑斯蒂映射生成随机序列X,按如下步骤进行:(2a)给定逻辑斯蒂映射一个初始值,对其迭代得到新的初始值;(2b)用新的初始值迭代逻辑斯蒂映射,每次迭代生成一个数据,将迭代多次生成的数据设为随机序列X。4.根据权利要求1所述的基于细胞神经网络的伪随机数生成方法,其中步骤(3)对第一矩阵p[i][j]和第二矩阵x[i][j]中的数据进行整数化处理,按如下步骤进行:(3a)将第一矩阵p[i][j]中的数据更新为:p'[i][j]=|p[i][j]|×215mod N;(3b)将第二矩阵x[i][j]中的数据更新为:x'[i][j]=x[i][j]×215mod N,其中N是一个正整数,|P[i][j]|代表对P[i][j]取绝对值。5.根据权利要求1所述的基于细胞神经网络的伪随机数生成方法,其中步骤(4)中用处理后的第一矩阵p[i][j]和第二矩阵x[i][j]生成大小为6×6的二维数组r[i][j],按如下步骤进行:(4a)设置二维数组r[i][j]中的初始值均为0,对其进行第一次更新: r ′ [ i ] [ j ] = p [ i ] [ j ] ⊕ x [ i ] [ j ] ⊕ K ⊕ r [ i ] [ j ] , ]]>其中代表异或运算;K是可变参数,其更新公式为:K'=(αK2+β)modN,α为第一更新参数,β为第二更新参数,这两个更新参数的初始值由密钥设置,每次循环后,将更新参数α更新为与二维数组r[i][j]中所有值的异或和,将更新参数β更新为与二维数组r[i][j]中所有值的异或和;(4b)重复(4a)共L次,即对二维数组r[i][j]进行L次更新,得到生成的二维数组r[i][j],其中1≤L≤4。6.根据权利要求1所述的基于细胞神经网络的伪随机数生成方法,其中步骤(5)中用二维数组r[i][j]生成64bits的伪随机数,按如下步骤进行:(5a)用二维数组r[i][j]生成八个8bits的数据,每个数据均为二维数组r[i][j]中若干数据的异或和,即:第一个8bits数据为:第二个8bits数据为:第三个8bits数据为:第四个8bits数据为:第五个8bits数据为:第六个8bits数据为:第七个8bits数据为:第八个8bits数据为:(5b)将生成的八个8bits数据依次输出,得到64bits的伪随机数。7.根据权利要求1所述的基于细胞神经网络的伪随机数生成方法,其特征在于:步骤(1)中的六维细胞神经网络,其公式表示如下: x 1 ′ = - ...
【专利技术属性】
技术研发人员:董丽华,药国莉,曾勇,胡予濮,张鑫,杨会,
申请(专利权)人:西安电子科技大学,
类型:发明
国别省市:陕西;61
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。