一种数据位数可选的伪随机信号发生方法_3

文档序号:9417140阅读:来源:国知局
性反馈移位寄存器原理框图如图6所示。
[0082] 本发明提出了一种将一个并行结构最长线性反馈移位寄存器与一个以上并行结 构最长线性反馈移位寄存器相结合产生长序列周期伪随机数的方法,原理框图如图7所 不。
[0083] 如果基于并行结构最长线性反馈移位寄存器的Na位伪随机数发生器A,生成了 m 位的均匀分布伪随机数,记为A[k],以二进制表示为Ani i [k] Ani 2 [k]. . . A1 [k] A。[k]。基于并 行结构的Nb位最长线性反馈移位寄存器的伪随机数发生器B,生成了 m位的均匀分布伪随 机数,记为B [k],以二进制表示为Bni i [k] Bni 2 [k]. . . B1 [k] B。[k]。伪随机数A [k]与伪随机数 B [k]并联,生成2m位伪随机数D [k],以二进制表示为D2ni i [k] D2ni 2 [k]. . . D1 [k] D。[k]。要求 伪随机数发生器A生成的伪随机数A[k]与伪随机数发生器B生成的伪随机数B[k]不相关, 即伪随机数发生器A的本原多项式与伪随机数发生器B的本原多项式不能是镜像本原多项 式。由于伪随机数发生器A与伪随机数发生器B之间不相关,生成的伪随机数D [k]中的每 一位是均匀分布的,因此D [k]是2m位均匀分布伪随机数。
[0084] 当m为偶数时,并行结构伪随机数发生器A的序列周期为2Na_l,并行结构伪随机 数发生器B的序列周期为2 Nb-l。伪随机数D [k]的序列周期为伪随机数发生器A与B序列 周期的最小公倍数。因此伪随机数D[k]的序列周期得到了极大扩展。
[0085] 采用三组伪随机数发生器电路结构时,原理框图如图8所示。基于并行结构最 长线性反馈移位寄存器的N a位伪随机数发生器A,生成了 m位的均匀分布伪随机数,记为 A[k]。基于并行结构最长线性反馈移位寄存器的Nb位伪随机数发生器B,生成了 m位的均 匀分布伪随机数,记为B [k]。基于并行结构最长线性反馈移位寄存器的N。位伪随机数发生 器C,生成了 m位的均匀分布伪随机数,记为C[k]。A[k]与B[k]与C[k]并联,生成3m位的 均匀分布伪随机数D [k]。要求伪随机数发生器A与伪随机数发生器B与伪随机数发生器C 互不相关。
[0086] 当m为偶数时,并行结构伪随机数发生器A的序列周期为2Na_l,并行结构伪随机 数发生器B的序列周期为2 Nb-l,并行结构伪随机数发生器C的序列周期为2&-1。伪随机 数D[k]的序列周期为伪随机数发生器A与B与C序列周期的最小公倍数。因此伪随机数 D[k]的序列周期得到了极大扩展。
[0087] 可以设计有更多电路单元的伪随机数发生器。例如可以设计有四个并行结构最长 线性反馈移位寄存器的伪随机数发生器,将这四个伪随机数发生器的输出并联,生成有多 个数据位的均匀分布伪随机数。要求这四个伪随机数发生器互不相关。生成伪随机数的序 列周期为这四个伪随机数发生器序列周期的最小公倍数。
[0088] Hash类函数,能够把一个数据空间中的数据映射成另一数据空间中的数据。输出 数据对输入数据的变化非常敏感,输入数据哪怕一位的变化,输出数据也会极为不同。设 计良好的Hash函数能够把输入空间中的数据映射成输出空间中均匀分布的随机数。这个 Hash函数可以根据应用需求自行设计,也可以选用一种性能优良的Hash函数。安全哈希算 法SHA是Hash函数的一种,经SHA处理后的随机数具有很好的统计特性。SHA家族算法由 美国国家安全局(NSA)所设计,并由美国国家标准与技术研究院(NIST)发布。SHA-2包括 SHA-224, SHA-256, SHA-384和SHA-512四种。四种算法中,SHA-224运算复杂度相对较低, 运算速度最快。SHA-2算法输入最大长度不超过2 64位,输出为224位或者256位或者384位 或者512位。算法处理包括以下步骤:(1)附加填充比特;(2)附加长度值;(3)初始化缓存; (4)处理分组序列;(5)输出最后的数据摘要。SHA-2主要用到的逻辑运算有:移位、按位与 和按位异或,都可以简单地用数字电路实现,且SHA-2在硬件中的运算速度很快。SHA-2可 以很容易地实现对数据的压缩,采用数据输入输出比为1 :1时,输入位数与输出位数相同, 不减小数据输出速度。
[0089] 从信号发生的角度看,本文论述的方法,生成的均匀分布伪随机数的质量已经比 较好了。如果将本发明生成的伪随机数经过如图9所示编码电路处理后,可改善生成伪随 机数的质量。当此编码电路选用如图10所示Hash编码电路时,可生成极高质量的均匀分 布伪随机数,能够很好的满足各项随机性测试,可用于密码学等领域对随机数质量有严格 要求的场合。经过此编码电路处理后,输出伪随机数的序列周期跟输入伪随机数的序列周 期相同,但每一位的序列周期都扩展为跟多数据位伪随机数的序列周期相同,也就是说伪 随机数的熵值得到了改善。图10电路中输入的伪随机信号,经过数据位转换电路,将高速 率低位宽的伪随机信号串并转换成低速率高位宽的伪随机信号,经过Hash编码电路生成 相同速率的伪随机信号,再经数据位转换电路,将低速率高位宽的伪随机信号并串转换成 高速率低位宽的输出伪随机信号。多相时钟发生电路,将输入时钟信号分频,产生多路的低 频时钟信号,每路低频时钟信号的相位相差一个输入时钟周期,用于串并及并串转换电路。 输入时钟与低频时钟的频率比等于Hash编码信号与输入信号数据位宽的比值。输出时钟 与低频时钟的频率比等于Hash编码信号与输出信号数据位宽的比值。本发明有多组输出 数据位转换电路,可生成多种位宽的伪随机信号,通过一个多选一开关,选择其中的一组伪 随机信号输出。
[0090] 生成均勾分布的伪随机数后,就容易生成各种分布的伪随机噪声信号了。例如可 以产生均匀分布数字白噪声信号、高斯分布数字白噪声信号,也可以产生其它分布数字噪 声信号,其均值、方差、谱密度可调节。由均匀分布数字白噪声信号转换成其它分布伪随机 数字噪声信号的电路框图如图11所示。生成其它分布数字噪声信号时,均匀分布数字白噪 声信号经过查找表转换成所需分布的数字噪声信号。改变查找表中的数值,可以改变数字 噪声信号的分布、均值、方差。查找表的输入数据位数P、输出数据位数r越大,查找表消耗 的存储单元越多,生成伪随机数字噪声信号的精度越高。生成伪随机数字白噪声信号时,输 出的数字噪声信号带宽最高约为电路时钟频率的一半。
[0091] 以32位最长线性反馈移位寄存器生成8位伪随机数为例,说明本发明中用到的高 速伪随机数生成方法的具体实现。取本原多项式1+χ2+χ6+χ 7+χ32,当前时刻k的电路状态为 {Q [k]},其寄存器值为 Q31 [k]、Q3。[k].....Q1 [k]、Q。[k],Q32 [k]为
[0092] Q32 [k] = Q30 [k]十 Q26 [k]十 Q25 [k]十 Q0 [k]
[0093] 则递推式中k+8时刻的电路状态{Q[k+8]}为
[0094] Q0[k+8] = Q8[k]
[0095] Q1 [k+8] = Q9[k]
[0096]
[0097] Q23 [k+8] = Q31 [k]
[0098] Q24 [k+8] = Q32 [k] = Q30 [k] Θ Q26 [k] Θ Q25 [k] Θ Q0 [k]
[0099] Q25 [k+8] = Q32 [k+1] = Q30 [k+1] Θ Q26 [k+1] Θ Q25 [k+1] Θ Q0 [k+1]
[0100] = Q31 [k]十 Q27 [k]十 Q26 [k]十 Qjk]
[0101 ] Q26 [k+8] = Q32 [k+2] = Q30 [k+2] Θ Q26 [k+2] Θ Q25 [k+2] Θ Q0 [k+2]
[0102] = Q32 [k]十 Q28 [k]十 Q27 [k]十 Q2 [k]
[0103] = Q30 [k] Θ Q28 [k] Θ Q27 [k] Θ Q26 [k] Θ Q25 [k] Θ Q2 [k] Θ Q0 [k]
[0104] Q27 [k+8] = Q32 [k+3] = Q30 [k+3] Θ Q26 [k+3] Θ Q25 [k+3] Θ Q〇[k+3]
[0105] = Q32 [k+1] Θ Q29 [k] Θ Q28 [k] Θ Q3 [k]
[0106] = Q31 [k] Θ Q2g [k] Θ Q28 [k] Θ Q27 [k] Θ Q26 [k] Θ Q3 [k] Θ Q1 [k]
[0107] Q28 [k+8] = Q32 [k+4] = Q30 [k+4] Θ Q26 [k+4] Θ Q25 [k+4] Θ Q0 [k+4]
[0108] = Q32 [k+2]十 Q30 [k]十 Q29 [k]十 Q4 [k] = Q30 [k]十 Q28 [k]十 Q27 [k]
[0109] Θ Q26[k] Θ Q25[k] Θ Q2[k] Θ Q0[k] Θ Q30[k] Θ Q29[k] Θ Q4[k]
[0110] = Q29[k]十 Q28[k]十 Q27[k]十 Q26[k]十 Q25[k]十 Q4[k]十 Q2[k]十 Q〇[k]
[0111] Q29 [k+8] = Q32 [k+5] = Q30 [k+5] Θ Q26 [k+5] Θ Q25 [k+5] Θ Q0 [k+5]
[0112] = Q32 [k+3] Θ Q31 [k] Θ Q30 [k] Θ Q5 [k]
[0113] = Q30 [k] Θ Q29 [k] Θ Q28 [k] Θ Q27 [k] Θ Q26 [k] Θ Q5 [k] Θ Q3 [k] Θ Q1 [k]
[0114] Q30 [k+8] = Q32 [k+6] = Q30 [k+6] Θ Q26 [k+6] Θ Q25 [k+6] Θ Q〇[k+6]
[0115] = Q32 [k+4] Θ Q32 [k] Θ Q31 [k] Θ Q6 [k] = Q29 [k] Θ Q28 [
当前第3页1 2 3 4 5 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1