一种基于混沌的伪随机信号发生方法及发生器
技术领域
本发明涉及伪随机数技术领域,具体涉及一种基于混沌的伪随机信号发生方法及发生器。
背景技术
伪随机信号,是一种具备某些随机特性的确定序列,它们由特定算法生成,却又具备某些随机特性。由于伪随机信号具备良好的随机特性及与白噪声比较接近的相关函数,再加上它们的预先可确定性和重复性,使得它们在密码学和扩频通信中得到广泛应用。
能够产生伪随机信号的算法称为伪随机信号发生器。在信息量领域,香农证明了“一次一密”的无条件安全性,而这种无条件安全的密码体制要求密钥量至少与明文量一样,因而寻找具有足够长周期的伪随机序列具有非常重要的意义。在密码学中,伪随机信号发生器用以产生统计特性与真随机序列尽量接近的确定性序列,常用于协议认证、信息加密等,减少破译者随机猜测的成功概率。
在过去的几十年里,大量具有好的相关性质的序列先后被构造出来。其中,m序列及其导出序列,如Gold序列、Kasami序列等都具有比较好的相关特性和高效的实现方法,因而它们是最具吸引力的序列。不足的是,它们的线性复杂度都比较低。
为了克服这一弱点,可以由一个或多个线性反馈移位寄存器(LFSR)和一个前向反馈函数生成一些新的序列,如GMW序列、级联的GMW序列、No序列和广义的No序列等,这些序列都具有较高的线性复杂度,而这些序列都属于一类更为一般的序列族,即d次型序列。使用迹函数构造d次型函数是一种常见并且相对容易的做法,目前在对这样构造的d次型序列的密码学性质的研究中,线性复杂度与相关特性等仍有一些尚未解决的问题。
此外,还有二元d次型序列、扩展d次型序列、割圆序列与广义割圆序列等伪随机信号。对于目前很多伪随机信号发生器的研究主要集中在相关性上,但是还很不完善,尽管有些伪随机信号发生器产生的序列都有很高的线性复杂度,但是很少有关于它们线性复杂度稳定性的研究,在互相关性质方面也需要进行更加深入的工作。另外,还有线性复杂度、循环矩阵结构等其它的指标尚待考查。
发明内容
有鉴于此,为了解决现有技术中存在的上述问题,本发明提出一种基于混沌的伪随机信号发生方法及发生器。
本发明通过以下技术手段解决上述问题:
一种基于混沌的伪随机信号发生方法,包括如下步骤:
S1、利用混沌系统产生混沌时间序列,混沌时间序列为浮点值模拟信号;
S2、对混沌时间序列进行量化处理生成伪随机信号,伪随机信号为实值符号序列的数字信号。
进一步地,步骤S1中,利用Lorenz流混沌系统产生混沌时间序列。
进一步地,步骤S1中,应用Runge-Kutta方法求解,生成浮点值模拟信号。
进一步地,步骤S2中,应用HEBQ算法对混沌时间序列进行量化处理。
进一步地,Lorenz流混沌系统应用Runge-Kutta方法产生混沌时间序列的具体过程如下:
采用Lorenz流混沌系统产生混沌时间序列:
其中,x、y、z是混沌序列的相分量,α、b、r是混沌序列的参量,取α=16,b=4,r=45.92,最终取x相分量生成混沌时间序列;
连续混沌系统进行混沌时间序列生成时,应用Runge-Kutta方法,令初值问题表述如下:
y'=f(t,y),y(t0)=y0;
其中,t是时间变量;
对于该问题的求解由如下方程给出:
其中,h是计算的时间间隔,各ki是估算的斜率:
k1=f(tn,yn)
k4=f(tn+h,yn+hk3)
k1是时间段开始时的斜率;k2是时间段中点的斜率,通过欧拉法采用斜率k1来决定y在点的值;k3也是中点的斜率,采用斜率k2决定y值;k4是时间段终点的斜率,其y值用k3决定;当四个斜率取平均时,中点的斜率有更大的权值,从而得到斜率平均值:
假设伪随机信号值域大小为q,混沌系统产生的混沌时间序列为X,
X={x'[0],x'[1],…,x'[L-1]},L是混沌时间序列的长度。
进一步地,应用HEBQ算法对混沌时间序列进行量化处理生成伪随机信号具体过程如下:
求取混沌时间序列X={x1,…,xi,…,xL}的最大值Max_X与最小值Min_X,取划分区间数p=m×q,q为值域大小,要求p远大于q,一般取m≥100;
记录划分区间数p时的区间X'={x'1,x'2,…x'p+1},同时统计序列X在p段中每段出现的频数;
从区间1到区间p对频数进行累加得到f_Num,当出现时,L是混沌时间序列的长度,记录X'i,并将其赋给量化区间Y={y1,…,yi,…,yp+1}中对应的位置j中(即yj=x'i),然后j=j+1,其中y1=Min_X,yq+1=Max_X,直到做完到所有区间的累加,便得到了量化区间Y={y1,…,yi,…,yp+1};
根据量化区间Y,对混沌时间序列X={x1,…,xk,…,xL}进行量化,即当yi≤Xk≤yi+1,取i存入F={f1,…,fk,…,fL}中对应的fk,所得到的F即为伪随机信号。
一种基于混沌的伪随机信号发生器,包括混沌系统、量化系统,所述混沌系统与所述量化系统连接;
所述混沌系统用于产生混沌时间序列,混沌时间序列为浮点值模拟信号;
所述量化系统用于对混沌时间序列进行量化处理生成伪随机信号,伪随机信号为实值符号序列的数字信号。
进一步地,所述混沌系统为Lorenz流混沌系统。
进一步地,所述混沌系统应用Runge-Kutta方法求解,生成浮点值模拟信号。
进一步地,所述量化系统应用HEBQ算法对混沌时间序列进行量化处理。
本发明中提出的HEBQ算法需要先用直方图均衡化法确定量化区间,所以该算法属于阈值量化法,方法简单易于工程实现;此外HEBQ量化算法得到的伪随机信号平衡性和互相关特性好,用于协议认证、信息加密能够增大破解难度,适合应用到实际的保密通信系统中。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明基于混沌的伪随机信号发生方法的流程图;
图2是本发明应用HEBQ算法对混沌时间序列进行量化处理的流程图;
图3是本发明基于混沌的伪随机信号发生器的结构示意图。
具体实施方式
为使本发明的上述目的、特征和优点能够更加明显易懂,下面将结合附图和具体的实施例对本发明的技术方案进行详细说明。需要指出的是,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例,基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
实施例1
如图1所示,本发明提供一种基于混沌的伪随机信号发生方法,包括如下步骤:
S1、利用混沌系统产生混沌时间序列,混沌时间序列为浮点值模拟信号。
本实施例中,利用Lorenz流混沌系统产生混沌时间序列,应用Runge-Kutta方法求解,生成浮点值模拟信号。
随机过程是随时间的推移作随机变化的过程,在系统的分析中,对噪声、信道的特性等描述通常使用随机过程建模。这种方法主要基于数学上的便利,难以说明深刻的物理根源。
混沌运动是一类极其特殊的运动形式,它遵循确定性动力机制,但表现内在的随机性,因而非常适合用于产生伪随机数。混沌信号兼有确定性信号和随机过程的特性,它一般具有不规则的波形,但由确定性机制产生。混沌信号处理可应用确定性系统解释高度不规则的非线性扰动。
当混沌映射及其输出函数满足特定的约束时,混沌轨道的粗粒化输出序列将成为严格的马尔可夫随机信息源,基于这一粗粒化过程构造的伪随机数发生器在理论上具有很高的安全性。
Lorenz流混沌系统应用Runge-Kutta方法产生混沌时间序列的具体过程如下:
本发明采用Lorenz流产生混沌时间序列:
其中,x、y、z是混沌序列的相分量,α、b、r是混沌序列的参量,可以取α=16,b=4,r=45.92,最终取x相分量生成混沌时间序列。
连续混沌系统进行混沌时间序列生成时,应用Runge-Kutta方法,令初值问题表述如下:
y'=f(t,y),y(t0)=y0;
其中,t是时间变量;
对于该问题的求解由如下方程给出:
其中,h是计算的时间间隔,各ki是估算的斜率:
k1=f(tn,yn)
k4=f(tn+h,yn+hk3)
k1是时间段开始时的斜率;k2是时间段中点的斜率,通过欧拉法采用斜率k1来决定y在点的值;k3也是中点的斜率,采用斜率k2决定y值;k4是时间段终点的斜率,其y值用k3决定,当四个斜率取平均时,中点的斜率有更大的权值,从而得到斜率平均值:
假设伪随机信号值域大小为q,混沌系统产生的混沌时间序列为X,X={x'[0],x'[1],…,x'[L-1]},L是混沌时间序列的长度。
S2、对混沌时间序列进行量化处理生成伪随机信号,伪随机信号为实值符号序列的数字信号。
本实施例中,应用HEBQ(Histogram Equalization Based Quantization,基于直方图均衡化量化)算法对混沌时间序列进行量化处理。
利用混沌时间序列构造伪随机信号所做的量化,就是将X'从原来的值域利用一定的处理方法将其改变为0~q-1值域。传统的量化算法主要有定点数位排序法、队列排序法和阈值量化法等。
定点数位排序法的理论对于连续的混沌系统其性能却较差,不具有普遍的适用性。而本发明中使用的是连续混沌系统,故而该方法未在本发明中应用于伪随机信号的生成中。
队列排序法生成方法虽然简单,但当序列长度较长甚至可能无限,该方法就不适用了。而且按此算法生只是简单的按照队列排序的方法对混沌时间序列进行排序,并没有从序列的伪随机特性、概率统计特性等方面考虑。
阈值量化法考虑序列的概率统计特性得到的平衡特性较优,但前提是必须先得到混沌方程的概率密度函数,然而这对于不知道概率密度函数或很难得到闭合概率密度函数解析式的连续混沌系统,则不容易选择量化区间,进而确定相应的量化方法。
本发明针对以上方法优缺点,提出一种HEBQ(Histogram Equalization BasedQuantization,基于直方图均衡化量化)算法。该方法从工程实用的角度来实现,其思想来源于图像处理中的直方图均衡化理论。将其应用在混沌时间序列的量化中,可以在不必知道混沌系统概率密度函数的情况下,直接生成平衡特性很好的伪随机信号。
如图2所示,本发明应用HEBQ算法对混沌时间序列进行量化处理生成伪随机信号具体过程如下:
下文中参数L为序列长度,q为值域大小:
求取混沌时间序列X={x1,…,xi,…,xL}的最大值Max_X与最小值Min_X。取划分区间数p=m×q,要求p远大于q,一般取m≥100;
记录划分区间数p时的区间X'={x'1,x'2,…x'p+1},同时统计序列X在p段中每段出现的频数;
从区间1到区间p对频数进行累加得到f_Num,当出现时,记录X'i,并将其赋给量化区间Y={y1,…,yi,…,yp+1}中对应的位置j中(即yj=x'i),然后j=j+1。其中y1=Min_X,yq+1=Max_X,直到做完到所有区间的累加,便得到了量化区间Y={y1,…,yi,…,yp+1};
根据量化区间Y,对混沌时间序列X={x1,…,xk,…,xL}进行量化,即当yi≤Xk≤yi+1,取i存入F={f1,…,fk,…,fL}中对应的fk,所得到的F即为伪随机信号。
实施例2
如图3所示,本发明还提供一种基于混沌的伪随机信号发生器,包括混沌系统、量化系统,所述混沌系统与所述量化系统连接;
所述混沌系统用于产生混沌时间序列,混沌时间序列为浮点值模拟信号;本实施例中,所述混沌系统为Lorenz流混沌系统,所述混沌系统应用Runge-Kutta方法求解,生成浮点值模拟信号。
所述量化系统用于对混沌时间序列进行量化处理生成伪随机信号,伪随机信号为实值符号序列的数字信号。
本实施例中,所述量化系统应用HEBQ算法对混沌时间序列进行量化处理。
本发明中提出的HEBQ算法需要先用直方图均衡化法确定量化区间,所以该算法属于阈值量化法,方法简单易于工程实现;此外HEBQ量化算法得到的伪随机信号平衡性和互相关特性好,用于协议认证、信息加密能够增大破解难度,适合应用到实际的保密通信系统中。
以上所述实施例仅表达了本发明的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。因此,本发明专利的保护范围应以所附权利要求为准。