基于细胞神经网络的伪随机数生成方法技术

技术编号:14130927 阅读:72 留言:0更新日期:2016-12-09 19:34
本发明专利技术公开了一种基于细胞神经网络的伪随机数生成方法,主要解决现有技术中伪随机数的生成效率低和统计性能不够好的问题,其实现方案是:1)用六维细胞神经网络生成随机序列P,用逻辑映射生成随机序列X,以增强随机序列的随机性;2)将生成的随机序列P、X分别存入两个不同矩阵中,并对其数据做整数化处理,以提取其小数部位的随机性;3)用处理后的两个不同矩阵得到一个新矩阵,每次用新矩阵中的数据生成64bits的伪随机数。本发明专利技术提高了伪随机数的生成效率,且生成的伪随机数满足国际随机数检测标准NIST SP800‑22的要求,可用于保密通信。

【技术实现步骤摘要】

本专利技术属于信息安全领域,尤其涉及一种伪随机数生成方法,可用于网络信息加密。
技术介绍
随机数在密码学的应用中随处可见,如密钥、数字签名和身份认证。常见的随机数生成方法主要有两大类:真随机数生成器TRNG和伪随机数生成器PRNG。真随机数生成器TRNG具有很好的不可预测性,已有很多研究利用噪声作为外部随机源来构造发生器,如吴晓勇、王新亚的专利(专利公开号:CN103049243A)真随机数产生方法及装置,通过将模数转换和数模转换过程中的量化误差的放大过程,再与引入的热噪声求和放大来产生随机数;周昕杰、于宗光、罗静、王栋、田海燕的专利(专利公开号:CN203909778U)多源输入真随机数发生器电路架构,公开了一种通过中间变量对不同类型噪声产生电路进行选择作为噪声源,再用采样校正电路和随机数计数器对其处理得到真随机数的方法。但噪声具有不稳定性,易受到攻击者对外部噪声源的攻击,且真随机数生成器TRNG的生成方法大多数需要基于硬件来实现,生成速率相对较慢。伪随机数生成器PRNG生成随机数的速率快,易于在软硬件中实现,虽然不是真正的随机,但若周期足够大,其特性也足以在很多科学领域得到应用,如随机过程的仿真和电脑算法中的统计采样与性能评估。孙云刚、孙才、陈曦的专利(专利公开号:CN102314332B)伪随机数生成装置和方法,利用位移方向相反的两个线性反馈移位寄存器产生随机比特数;周旭、张飞的专利(专利公开号:CN103034473B)一种伪随机数生成器,通过m序列在数字逻辑电路中生成数字信号,再用数模转换将其转化为模拟信号来作为随机数源;金银军、李晓龙、宁振虎、周端阳、王博、喻贤成的专利(专利公开号:CN102520908B)一种伪随机数生成器及伪随机数生成方法,利用高曲平方算法高效的生成高质量的伪随机数。但这些方法生成的伪随机数序列的统计性能并不十分好,不能很好的应用到信息加密中。
技术实现思路
本专利技术的目的在于针对上述已有技术的不足,提出一种基于细胞神经网络的伪随机数生成方法,以避免随机数生成器的生成效率低和统计性能不够好的缺陷,提高信息加密的安全性。为实现上述目的,本专利技术包括:(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.本专利技术通过用六维细胞神经网络和逻辑斯蒂映射生成伪随机数,提高了伪随机序列的统计性能;2.本专利技术通过每次循环可生成64bits的伪随机数,提高了伪随机数的生成效率;3.本专利技术通过提高伪随机数的统计性能和生成效率,增强了信息加密的安全性。附图说明图1为本专利技术的实现流程图。具体实施方式以下参照附图,对本专利技术的技术方案和效果作进一步详细说明。参照图1,本专利技术的实现步骤如下:步骤1:用六维细胞神经网络生成随机序列P。六维细胞神经网络属于连续混沌系统,具有复杂的动力学特性和快速并行处理能力,当时间t趋于无穷时,该系统有两个大于零的李雅普诺夫指数,是一种超混沌系统,基于该系统生成的序列具有更好的随机性和安全性,可以很好地应用于随机数的生成方法中。本实例用六维细胞神经网络生成随机序列P的步骤如下:(1a)迭代六维细胞神经网络1000次消除瞬时效应,使其进入混沌状态,得到新的六个六维细胞神经网络的初始值: x 1 ′ = - x 3 - x 4 x 2 ′ = 2 x 2 + x 3 x 3 ′ = 14 x 1 - x 2 x 4 ′ = 100 x 1 - 100 x 4 + 100 ( | x 4 + 1 | - | x 4 本文档来自技高网
...
基于细胞神经网络的伪随机数生成方法

【技术保护点】
一种基于细胞神经网络的伪随机数生成方法,其特征在于,采用混沌映射方法进行,该混沌映射包括六维细胞神经网络和逻辑斯蒂映射,其实现步骤包括如下:(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

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1