460 likes | 668 Views
随机数发生器的生成方法分类 要求 : 1) 每种分类的原理 2) 每种分类的典型算法 - 以通过 NIST 测试为标准 3) 每种分类的典型应用 , 是否已有相关专利 , 产品 ? . 基于混沌的高速随机数发生器. 沈海斌, 赵梦恋, 李晓明, 俞俊, 潘雪增 (浙江大学计算机科学与技术学院, 浙江杭州310027) 2003 年l0月 电路与系统学报. 采用了离散时间的决定论混沌方法. 决定论混沌的一个本质特征是对初始值的敏感依赖性,初始值的任意小的偏差都会造成序列轨道充分大的分离, 显示出随机性质。用如下的混沌模型:
E N D
随机数发生器的生成方法分类 要求: 1)每种分类的原理 2)每种分类的典型算法-以通过NIST测试为标准 3)每种分类的典型应用,是否已有相关专利,产品? 随机数发生器的生成方法分类 要求: 1)每种分类的原理 2)每种分类的典型算法-以通过NIST测试为标准 3)每种分类的典型应用,是否已有相关专利,产品?
基于混沌的高速随机数发生器 沈海斌, 赵梦恋, 李晓明, 俞俊, 潘雪增 (浙江大学计算机科学与技术学院, 浙江杭州310027) 2003 年l0月 电路与系统学报
采用了离散时间的决定论混沌方法 决定论混沌的一个本质特征是对初始值的敏感依赖性,初始值的任意小的偏差都会造成序列轨道充分大的分离, 显示出随机性质。用如下的混沌模型: 定义符号0表示xn<0,符号1表示xn≥0。当0.5<k≤1,xn∈[-k,-k]时,上公式的输出具有混沌状态。
公式中的系数k越接近于1,冗余度就越小;但当k=1时,公式的混沌吸引子[1,1]与点吸引子1、-1邻接;若xn≥1,则xn+1的输出符号会持续为1,同样若X≤1, 则xn+1的输出符号会持续为0,即动力系统脱离混沌而进入稳定状态。即此时若k接近1,实际系统中微小的噪声、干扰的影响就可能会使随机数发生器输出序列固定,失去作用。最后选用k=0.95。此时混沌吸引子为[-0.95,0.95],点吸引子为1.05与-1.05间隔为0.1。
实现原理如图1所示 由8级符合公式2 的相同单元串接抗饱和电路而成,每级单元由一个比较器 (1位A/D)、开关电容电路组成,基本电路原理如图2 所示 实际取ci为300fF,cs为270fF
芯片在均匀度与相关性方面进行了测试,结果如表1所示。芯片在均匀度与相关性方面进行了测试,结果如表1所示。 高频脉冲干扰10MHz,0.1V ,0—1分布Frequency测试未能通过此时实际的0—1的比例范围为46%~54%,仍基本接近50% ,影响不大。因此,系统 可以抵御100mV左右的电磁干扰攻击。另外可以看到,在受到高频脉冲干扰时,Rank测试结果变好,意味着数据相关性反而减小。
一种新的混沌随机数生成器实现方案 • 胡涛,郭立,黄昊,刘军 • (中国科学技术大学电子科学与技术系,安徽合肥230027) 《电子技术应用》2006年第6期 • 提出了一种基于时钟相位抖动的混沌随机数产生器,并在Xilinx FPGA开发板上实现并进行了测试。测试结果表明,最高输出速率迭8Mbps,实现了设计要求。硬件结构简单,并且该RNG的输入源不受电路噪声源的影响,易于今后的IC实现。
混沌系统可以用基于下列迭代关系式描述的Bemouli移位映射:混沌系统可以用基于下列迭代关系式描述的Bemouli移位映射: • 式中,e(n)表示一个高斯噪声信号。这个迭代式表明由上式产生的序列是极为平滑和均一分布的。另外,与混沌相关的轨迹发散包含了噪声,上式产生的序列在一定范围内是不可预测的,从而使系统能被当作一个真随机比特源。离散时问混沌法不受其他噪声源影响。
在电路上实现Bemouli移位映射的关键在于实现一个抗干扰的高斯噪声信号。故提出用振荡器采样输出作为一个高斯噪声信号e(n)实现上式。在电路上实现Bemouli移位映射的关键在于实现一个抗干扰的高斯噪声信号。故提出用振荡器采样输出作为一个高斯噪声信号e(n)实现上式。
其中S/H(Shift/Hold)为一个移位保持电路,用来实现其中S/H(Shift/Hold)为一个移位保持电路,用来实现 2(x(n-1)+e(n))。低速时钟控制D触发器、寄存器和S/H。寄存器中残余信号作为初始输入信号,然后与振荡器采样输出信号进行模2加操作(异或),再通过S/H产生最后的输出x(n),x(n)被反馈到寄存器中进行下次操作。
其中Q和h分别是离散符号集的基数和相关信源的熵其中Q和h分别是离散符号集的基数和相关信源的熵
测试所用数据为慢速时钟-8kHz,高速时钟=100MHz,输出精度为8bit的输出值,测试长度为3 oo0 000个8位随机数的序列
混沌随机数发生器的设计与应用 冯海涛西南交大硕士论文 2006.1
混沌随机数发生器的可编程设计 • 根据logistic混沌映射Xn+1=rXn(1-Xn)的特点,参数r∈[3.5699,4]和混沌序列Xn∈(0,l)都是实数,在计算机仿真中其数据格式通常是单精度或双精度的浮点数,但是在FPGA实现中单精度或双精度浮点加法器、乘法器结构复杂,并且占用硬件资源多,不是理想的选择方案。但是,混沌参数r的取值又限制数据格式不能只用定点小数,因此都极力避免这种情形而选择r=4,最大的好处就是一个定点小数乘只需左移2位,使得混沌电路的结构相当简单,但是这是牺牲混沌的参数敏感性为代价的。能否将Logistic混沌运算的数据格式统一为定点小数,同时又不牺牲混沌原有的初值敏感性和参数敏感性等特性呢?这是考虑Logistic混沌的FPGA或者ASIC实现时的一个关键问题。
经过仔细分析Logistic混沌映射的特点,将其迭代式稍做变形经过仔细分析Logistic混沌映射的特点,将其迭代式稍做变形 其中,d=4-r∈[0,0.4301]
高 速伪随机数发生器的设计与实现 • 王新成孙宏 • (北京邮电大学信息安全中心,北京100876) • 2004.11 计算机工程与应用 • 高 速伪随机数发生器以LFSR的基本结构为基础设计实现的。
反馈移位寄存器 • 一个反馈移位寄存器(feedback shift register)由两部分组成:移位寄存器和反馈函数
高速伪随机数发生器DPFSR • DPFSR 的原理见图3。如图3所示,DPFSR是由置乱扰动源、多个线性反馈移位寄存器LFSR、逻辑控制器以及数据缓存器构成的。其中置乱扰动源采用的是物理噪声源芯片,主要起到两个作用:其一是初始化LFSR,在DPFSR工作之前给各个寄存器设定随机的初始状态;其二是在DPFSR工作的过程中动态地改变反馈值,使得输出的结果相关性最小。采用LFSR主要是为了方便硬件高速实现。LFSR的构成符合各抽头构成的多项式加1为GF(2)本原多项式,使得LFSR的周期在给定的阶数内达到最大。控制逻辑起到控制状态转换,并协调各个部件工作的作用。生成的随机数输入到数据缓存器暂时存储,为系统的调用做准备,数据缓存器能够实时自动更新其中的内容。除了置乱扰动源外,DPFSR的其余部分由FPGA集成实现
图3中的控制逻辑1用来将噪声源与各路LFSR中的某图3中的控制逻辑1用来将噪声源与各路LFSR中的某 些位进行异或运算。控制逻辑2可以由图4表示。其作用就是将各路移位寄存器的输出进一步置乱,增加攻击的难度。
(1)初始化阶段主要完成对各个LFSR的初始状态的设定。(1)初始化阶段主要完成对各个LFSR的初始状态的设定。 • 初始状态的设定也就是由物理噪声源产生的随机数填充LFSR的各个位。初始化是在系统上电和复位时进行的。
(2)在m个LFSR的初始状态都设定后,DPFSR进入正常工作状态。在DPFSR的正常工作状态,LFSR的工作与前面介绍的工作过程大致相同,只是在工作的过程中受噪声源的干扰。噪声源对LFSR的干扰主要是通过噪声源的输出与LFSR器的某一位进行异或运算,得到的值替代原来的位,其他的都保持不变。在这种情况下,噪声源的输出可以称为是随机扰动因子。笔者把受随机因子扰动的LFSR称为是DFSR(Dynamic Feedback Shift Register)。当然,在DPFSR 中,动态的意思不仅仅包含这层意思,还有动态置乱输出的含义,这点可以由图4说明。由于在同一时刻共有m路反馈移位寄存器并行工作,并且LFSR的内部状态是在外部的作用下随机动态改的,因此把这种伪随机数发生器称为是DPFSR。
由原理图可以看到,DPFSR的工作效率是单路LFSR的m倍,可以同时产生mbits。产生的随机数经过进一步的置乱处理后,按照FIFO的原则存入到数据缓存中。也就是说,每次产生的随机数按照先后次序在数据缓存器中从前往后依次排列,当缓冲器满时,丢弃最前面的随机数,并且后面的随机数顺序前移.由原理图可以看到,DPFSR的工作效率是单路LFSR的m倍,可以同时产生mbits。产生的随机数经过进一步的置乱处理后,按照FIFO的原则存入到数据缓存中。也就是说,每次产生的随机数按照先后次序在数据缓存器中从前往后依次排列,当缓冲器满时,丢弃最前面的随机数,并且后面的随机数顺序前移.
用抛物线映射产生随机数 • 在混沌动力学中,一个非线性动力学模型是逻辑斯谛映射,表达式1为 它是一种生态模型,描述了生物群体数目的变化.与上式等价的是满抛物线映射的表达式2
逻辑斯谛映射和满抛物线映射统称为抛物线映射.其中x是状态参量,a,μ是参数.逻辑斯谛映射和满抛物线映射统称为抛物线映射.其中x是状态参量,a,μ是参数. • 逻辑斯谛映射产生随机数:无论xn在(0,1)范围内以什么样的初值开始,1式经多次迭代后,将得到一个从(0,a/4)之间的随机数列.如果将参数a取为4,所得到的随机数实际上处于(0,1)范围内.如果单纯地采用逻辑斯谛映射的迭代值作为随机数,所得到的随机数序列并不是均匀的随机序列.这是因为1式的迭代值是以概率密度
分布在(0,1)之间的,在区间两端具有奇异性.为了在(0,1)区间内产生均匀分布的随机数序列,求出其分布函数为分布在(0,1)之间的,在区间两端具有奇异性.为了在(0,1)区间内产生均匀分布的随机数序列,求出其分布函数为 y(x)就是分布在(0,1)之间的均匀分布的随机数列 满抛物线映射产生随机数:2式中,μ=2时 其迭代值的概率密度
一种产生随机数新方法的研究与实现 • 理学硕士学位论文 • 冯艳 2002.5
线性同余发生器(LCG) • 它包括混合同余发生器和乘同余发生器。 其中M为模数,a为乘子,c为增量,且,xn,M,a,c均为非负整数。
显然由公式得到的xn(n=1,2,……)满足:0≤xn<M • 从而rn∈[0,1〕。应用递推公式rn=xn/M产生均匀随机数时,式中参数a,c,M,x0的选取十分关键。产生数列{xn}的周期T与a,b和M有关系。当参数a,b和M取得合适,周期T可达到最大值;若进一步要求{xn}的统计性质优是,也与参数a,b和M的选取有关。当C>0时,该方法称为混合同余发生器。下面介绍两个经前人检验认为是满意的混合式发生器:当L=35时,Coveyou和Macpherson给出了下面LCG: • 当L=31时,Kobayashi提出了下面的LCG:
混合式LCG并不是最佳发生器,更简单和易理解的积式LCG与混合式LCG具有同样的性能,更广泛的被应用。常见的统计软件包中均匀随机数发生器多数使用素数模积式LCG。当C=0时,该方法称为乘同余发生器,或称积式发生器。混合式LCG并不是最佳发生器,更简单和易理解的积式LCG与混合式LCG具有同样的性能,更广泛的被应用。常见的统计软件包中均匀随机数发生器多数使用素数模积式LCG。当C=0时,该方法称为乘同余发生器,或称积式发生器。
乘同余法产生(0,1)均匀分布随机数 • 乘同余法是用一常数A(K位数),和初值S0相乘后保留2K位数中的低K位数,即得到第一个随机数,然后再以A与得到的第一个随机数相乘,再次取低K位数,从而得到第二个随机数……重复此过程,得到一随机序列。 • 以上过程可用数论中的同余式方程描述,故称为乘同余法。 • 其公式为:Sn+1=ASn(modM) n=0,1,2…… (1) • S0----可取任意选取,最好取为奇数 • A----常数,应选得足够大,但应小于M,以确保序列有较好的随机性。 • S0与A均小于M的非负整数 • M是同余式的模,应取得足够大,以确保序列的周期较长。
密码学中随机序列发生器的研究 • 东北大学 硕士学位论文 朱和贵 • 2006年2月 • 基于Weierstrass函数产生的序列的随机性分析
waiersrtass函数是由waierstrass构造的处处不可微的连续函数(1):waiersrtass函数是由waierstrass构造的处处不可微的连续函数(1): 其中b是一个奇整数,0<a<1,且ab>1+3π/2,记(2): 接下来就对a,b,x的取值进行研究,分别讨论{xn}的随机性 由于文中已验证b≤1时得不到随机序列,就不再次赘述。
也就是说给定一个x1,就会有2个x2出现,从而会有4个x3出现,随着n的增大,这样的变化会以2的n次方增长,从而得到的序列{xn}会是一个不可预测杂乱无章的点的随机序列集合。由{xn,xn+1}产生的图像也是没有规律的点的集合,这就极大的扩展了密钥的空间,增加了破译的难度。也就是说给定一个x1,就会有2个x2出现,从而会有4个x3出现,随着n的增大,这样的变化会以2的n次方增长,从而得到的序列{xn}会是一个不可预测杂乱无章的点的随机序列集合。由{xn,xn+1}产生的图像也是没有规律的点的集合,这就极大的扩展了密钥的空间,增加了破译的难度。 • 通过分析,我们可以得到当b>1时,由(2)式得到的序列{xn}是不可预测的。
因此需要对它进行一些变换,使得到的点既保持它原先的杂乱无端,又能够扩散到整个平面,这样给密码分析者造成更大的困难。在本文中,我们通过变换: y=(1/π)*arccos(x); • 对(2)式变换得: • 根据此变形得到的新的随机序列分布如下图:
由此可得具体的算法: • 初始化:选取满足条件的b的值,a,x任取 • 利用变换y=(1/π)*arccos(x),得到(2)式的变换式 • 利用weierstrass函数,得到随机序列发生器: • 再用 • 就可以得到数字通信和加密解密的“0--1”序列
产生随机数的一般方法 • 利用随机数表 • 利用物理随机数发生器 • 利用数学方法. • 常见随机数发生器 • 线性同余发生器(LCG) • 反馈位移寄存器法(FSR). • 组合发生器 • 逆同余与非线性同余发生器 • 经典Fibonacci序列. • 进位加和借位减发生器. • 复合素数随机数发生器. • 混沌映射产生随机数
某些发生器中存在的规则性和缺陷 • 线性同余 稀疏网格,长周期相关.周期依赖机器字长(周期较短) • 移位寄存器 稀疏网格.随机性依赖于初始值,存在微妙相关 • Fibonacci序列不能容妨的不居中现象,显著的序列相关性 • 进位加/惜位减 稀疏网格,未能通过许多局部随机性检验 • 非线性及逆同余 长周期相关.周期依赖机器字长(周期较短),产生效率低