基于可扩展精度混沌类遗传性的软件序列码生成方法

文档序号:10665836阅读:260来源:国知局
基于可扩展精度混沌类遗传性的软件序列码生成方法【专利摘要】本发明公开了一种基于可扩展精度混沌类遗传性的软件序列码生成方法,可扩展精度混沌的轨道的基本结构包括根基因位,通用基因位和独立基因位,其步骤为:第一步,确定输出软件序列码的长度,批量序列码的数量,确定根基因位和通用基因位,并转化为小数作为Logistic方程的x0初始值,确定控制参数的数值;第二步,利用低位迭代法进行计算,在没有达到指定精度之前,一直进行迭代;当达到指定精度之后,输出低位迭代法得到的序列;第三步,将相应的输出序列写入软件数据文件中,作为软件序列码,重复第二步,直到满足所指定的批量序列码的数量。本发明利用了独立基因位的稳定周期和随机多样性的特点,适合于保护计算机软件的合法使用。【专利说明】基于可扩展精度混沌类遗传性的软件序列码生成方法
技术领域
[0001]本发明属于计算机软件
技术领域
,具体地说是利用可扩展精度混沌的类基因遗传特性生成软件序列码保护软件的合法使用的方法。【
背景技术
】[0002]本发明涉及混沌理论中可扩展精度混沌的类基因遗传的特性和计算机软件
技术领域
中软件序列码两个方面,因此,下文从这两个方面来说明其技术背景。[0003](一)可扩展精度混沌的类基因遗传的特性混沌现象广泛分布于自然界中。混沌理论也是物理学、数学、气象学、生物学和信息科学的研究分支之一。[0004]混沌的研究从轨道空间上可以分为连续域上的混沌和离散空间的混沌两类。连续域上的混沌可以描述为混沌动力方程在实空间中连续运动的轨迹。离散空间的混沌是利用计算机等计算设备在有限的数字空间中模拟混沌动力方程运动的轨迹。[0005]连续域上的混沌轨道是由混沌动力方程在无限大的精度下由其真实的计算数值组成的,即混沌轨道是由实空间中的连续点组成的;其代表了混沌的真实的本质特点。离散空间的混沌在计算机的有限计算精度下计算混沌动力方程的迭代值,其轨道空间退化为有限状态机。[0006]在混沌轨道的研究中,诸多的方法和理论被用于揭示混沌轨道的特征和混沌的真实本质,主要的方法和理论可以概括为:混沌吸引子中的不稳定的周期轨道(Unstableper1dicorbit),阴影引理(Shadowinglemma),统计分析的方法,数论的方法等。[0007]阴影引理在一定程度上建立了真实轨道与伪随机轨道之间的桥梁,在有限的空间可以连续地观察到真实轨道。但是,其理论的验证还存在着很大的难度。2005年,我国学者李树钧等发表了一维线性混沌映射中动态特性分析的研究报告;其中,阐述了阴影理论的局限性,并首次对一维线性混沌映射的动态特性退化问题进行了系统的、理论的分析。[0008]不稳定的周期轨道以及其变化莫测的离散周期在很大程度上受到计算精度和量化误差的影响,特别是量化误差的不可控性和随机特性很大程度上影响着混沌轨道。统计分析的方法对于确定计算精度与量化误差对混沌动态特性的影响上是一种有效的方法。2007年,欧特奥(Oteo)等人在双精度浮点运算误差的条件下进行了Logistic映射的统计分析和动态特点的研究。[0009]随机分布的量化误差与混沌的不稳定的周期轨道,以及混沌特性的退化问题具有紧密的联系。然而,计算机中的计算精度对于量化误差的影响具有极大的不确定性。目前,还没有关于计算精度与量化误差的系统的、理论的分析理论。因此,为了减少量化误差对混沌的动力学特性的影响,增加计算精度无疑是最有效的观察混沌本质特征的方法之一。[0010]2010年,可扩展精度混沌在国内首次被提出。2011年,可扩展精度混沌的计算方法对混沌函数进行分步计算,利用动态数组保存计算结果。可扩展精度混沌的分步计算进一步降低了量化误差对混沌动态特性的影响,因此,可以使得到的混沌接近于理想的混沌状态。而动态数组的设计可以使计算精度进一步扩大,为进一步观察混沌真实轨道的这一特殊现象奠定了基础。2012年,Liu等首次提出低位迭代法,该方法为进一步揭示混沌的真实本质奠定了一定的基础。[0011]对于不稳定的周期轨道的短周期的扰动,S卩加入噪声的方法在一定程度上破坏了短周期的出现。2013年,Song等进一步报道了混沌动力系统的短周期现象,其中,由于计算误差的存在,使得混沌的轨道偏离了原来的轨道在无法预测的状态。[0012]Logistic方程的定义如下:x?+i=xn),η=O,I,...(I)参数a为控制参数,且O〈a〈4。参数1?为混纯方程的第λ次的迭代值,X。为1?初始迭代值,且O〈〈1[0013]给定Logistic方程的X。=0.1和a=3.9。假设计算精度设定为2。以传统的计算机浮点运算方法进行迭代,Logistic方程的轨道中的点如下所示。[0014]0.35->0.88->0.41->0.94->0.21->0.64->0.89->0.38->0.91->0.31->0.83->0.55->0.96->0.14->0.46->0.96在计算精度为2和传统的计算机浮点运算方法下,Logistic方程的轨道首先经历了一个过渡周期由0.35->…->0.55,然后,迅速进入了一个短周期,即0.96->0.14->0.46,在迭代值0.96,Logistic方程进入了短周期循环状态。[0015]在相同的控制参数的情况下,即a=3.9,初始值设定为X。=0.960167,设定精度为6,以传统的计算机浮点运算方法进行迭代,Logistic方程的轨道中的点如下所示:0.960167->0.149160->0.494954->0.974900->0.095432->0.336666->0.870955->0.438330->0.960167从上面的迭代结果可以看出,该轨道没有过渡周期,在初始迭代点直接进入了循环状??τO[0016]量化误差的难以确定,也进一步加剧了研究真实轨道与伪随机轨道的难度。也正是这个原因,使得混沌真实轨道的特性难以进行观测,恰恰是量化误差隐藏和掩盖了混沌的类遗传的特性。[0017]低位迭代法是有效观察混沌真实轨道的方法之一,以下对低位迭代法和传统的计算机浮点运算方法做进一步比较。[0018]通常的计算机的浮点运算方法采用的是IEEE754的标准,该标准包括三种运算模式:单精度(32-bit),双精度(64-bit)和扩展精度(80-bit)。计算机的浮点运算方法的基本原理是:在计算机的内存中保存着指定精度的数值,即所能表示的最大有效的精度。当计算的数值超过了计算机指定的精度时,该计算数值的高位部分被保留,而超过最大有效精度的低位部分作为计算机的量化误差被舍弃。[0019]在混纯方程计算的过程中,每经过一次迭代,真实轨道中的连续点的真值的计算精度会随之增加。当混沌方程的计算精度超过了计算机所能提供的最大有效精度时,混沌方程迭代的数值解的低位将被舍弃,因此,数值解的低位是无法得到的。[0020]以下例子是为了对比真实轨道与伪随机轨道的区别。[0021]在Logistic方程中,设定初始迭代值X。=0.5和控制参数a=3.85的迭代初始条件,Logistic方程在连续域的实空间中真实轨道中的连续点如下。[0022]x0=0.5X1=0.9625x2=0.1389609375x3=0.4606555620941162109375x4=0.9565402585425997111462927423417568206787109375如果把真实轨道的连续点的真值的末位的数字位写成如下的形式,更利于观察到真实轨道的这一特殊的现象。[0023]0.50.96250.13896093750.…1093750.…7109375从迭代值X2开始在后续的迭代值中,其低位均出现共同的数字位“09375”,在进一步的迭代中,迭代值4和X4中均具有共同的数位“1”,即,共同的低位数字位“109375”。[0024]根据遗传学的基本知识,类似地可以推出从^开始的所有后续迭代,即X2的后代子孙,均具有共同遗传基因“09375”,该基因被完全复制,换句话说,该轨道的连续点在演化的过程中均具有这一家族的基本特征。[0025]我们再看另外的一个例子。以计算机浮点运算为基础,假设最大的有效精度为3,在Logistic方程中设定初始迭代值X。=0.5和控制参数a=3.85的初始条件,Logistic方程在计算机的离散空间的轨道变化如下。[0026]X0=0.5X1=X0*(1_X0)=3.85*0.5木(1-0.5)=0.9625。[0027]由于计算机内设定的有效计算精度为3,换句话说,计算机能够表示的最小的小数为0.001,即小数点后的第三位。因此,超过该数字位的小数部分将被舍掉。[0028]因此,在有限精度3的情况下,X1=0.962,数值解的低位0.0005将被舍掉。[0029]在第二次迭代中,计算机将使用X1=0.962进行迭代,计算过程如下。[0030]X2=3.85*0.962*(1-0.962)=0.1407406。与前述类似,计算机将舍弃该数值解的低位部分,而使用截尾后的数值0.140进行下一次的迭代。[0031]在连续域上的真实轨道的连续点真值X2=0.1389609375,显然伪随机轨道已经偏离了真实轨道的连续点,此外,计算机在有限计算精度下的量化误差破坏了真实混沌轨道的连续点的真值的低位部分。而隐藏在低位部分的混沌的类似遗传基因的特性被量化误差所破坏。[0032]混沌真实轨道的连续点在实空间上的计算不能包含任何的计算误差,换句话说,真实轨道的连续点的真值是在绝对精度下计算的。任何的计算误差都将导致数值解的低位数字位的丢失。[0033]从混沌轨道的计算过程中可以发现,真实轨道的连续点的低位数值的获得只有在计算过程中不能包含任何计算误差的时候才能够获得。换句话说,任何的计算误差都会破坏低位的这种规律,而使轨道跳转到其他的轨道。[0034]为了研究混沌真实轨道的连续点的低位的规律需要满足如下的条件:Condit1n_l:真实混纯轨道的连续点的计算需要绝对精度的计算;Condit1n_2:计算系统能够满足精度不断扩展。[0035]Condit1n_l保证了真实轨道的连续点的真值的低位的数字位的获得,否则,量化误差将破坏低位的数字位。Condit1n_2保证了能够连续地观察到真实轨道的连续点的真值的特点,换句话说,该特点是真实轨道在整个空间上的特点,而不是有限空间的特点。然而,在目前的计算机计算系统中,Condit1n_l在一定程度上是可以满足的,即在给定的有效计算精度内,只要所需计算的数值的精度不超过计算机的最大有效精度,可以保证绝对精度的计算。[0036]此夕卜,Condit1n_2在现有的任何的计算系统中都难以满足。给定Logistic方程的初始迭代值X。和控制参数a的初始条件的精度均为1,例如:X。=0.1和a=3.9进行迭代。在一次迭代后七的精度为3。经过二次迭代,七的精度为7。经过10次迭代,X1。的精度为2047;经过20次迭代,X2。的精度为2097151。经过约10次迭代后,迭代值的精度扩大了近1000倍。以目前传统的计算机中使用的IEEE754双精度浮点运算的所能表示的对应十进制的最大精度为15位左右,即表示的最小的实数为10150因此,任何的计算系统都难以满足该迭代过程精度的扩展。[0037]综上所述,Condit1n_2是实现观察混纯真实轨道的连续点的低位规律的一道屏障。主要的限制是,目前的任何计算系统均在有限的精度下计算,换句话说,计算机内存的有限的空间所提供的计算精度不能满足混沌真实轨道的连续点的精度的无限扩展的要求。[0038]为了观察混沌真实轨道的连续点的低位的规律,必须解决计算机的有限计算精度和迭代精度无限扩展之间矛盾。换句话说,具体的问题是:利用计算机的有限计算精度观察真实轨道的连续点的低位的规律。[0039]显然,传统的计算方法难以解决这个问题。主要的原因可以归结为:(I)已知的计算方法均采取了保留计算结果的高位,即数值计算中近似值的获取是舍弃计算数值的低位部分。目前计算机系统中的数值计算方法也均采取了这样的计算方法。[0040](2)传统的计算方法均设定在自动保留精度的方式,即运算的过程中,不对计算的精度进行控制。具体地说,当一个迭代过程在执行过程中,计算系统不会提示或者提供当前运算的数值的精度,除非用户自行设计提供精度的过程。自动保留精度的方式很大程度上限制了计算过程中的绝对精度的计算;因为如果不知道当前的计算数值的精度是否超过计算机所提供的最大精度,就不能保证计算数值的正确性,即不能保证绝对精度的计算。[0041]通过上述分析,传统的计算方法是难以解决观察混沌真实轨道的这一特性的问题的。[0042]为了解决利用计算机的有限计算精度观察真实轨道的连续点的低位的规律的问题,必须解决如下的基本问题:(I)该计算系统的计算过程必须能够进行精度控制,即能够获得目前所做的计算的数值解的精度。这样做的目的是实现在计算机中的有限精度下的绝对精度的计算。[0043](2)该计算系统的数值计算中必须能够保留所计算数值的低位数字位。混沌的真实轨道的这一特点隐藏在低位的数字位中。[0044]在上述框架下,可以采用低位迭代法研究混沌真实轨道的连续点的类似遗传基因的特点。[0045]在描述低位迭代法之前,本文给出了一些定义,以便更好地阐述低位迭代法的基本原理。[0046]任意的一个小数X,且0〈X〈1,可以表示为X=0.…其中数字位A属于集合{0,1,2,3,4,5,6,7,8,9}。[0047]定义1:在小数X中,定义为X的最高数字位,定义为X的最低数字位。[0048]该定义实现在低位迭代法中区分计算数值的所取数字位的位置。[0049]定义2:当不等于O时,λ定义为χ的精度。[0050]定义3:Logistic方程的迭代值X1;0.Aiv"iy"r?2r?xr?,/w为一个非O的正整数,迭代值X,的低/W数字位定义为0.rpnk—rpn2rpnxrpn,即数字位rpnk—rpn2rpnxrpn,由最低位^?开始的连续的/w个数字位组成。[0051]该定义主要用于在混沌方程的迭代过程中,计算数值超过指定的最低位/W时,保留计算数值的低/W位。并且把该低/W位转换为对应的小数形式,以便于在下一次迭代中使用该小数进行迭代。在传统的计算机浮点运算中,与低位迭代法相反的是,舍弃超过计算精度的低位。定义3明确地定义了低/W位在计算数值中的位置和转换的方法。[0052]定义4:绝对精度计算定义为计算过程中不包含任何的计算误差,所获数值解的精度为该数值的真实精度。[0053]该定义是在计算系统的有限的计算精度内实现的绝对精度的计算,即绝对精度计算的最大精度不能超过计算系统的指定的计算精度。[0054]可扩展精度混沌的Logistic方程的真实轨道的连续点的低位迭代法的具体计算过程定义如下:Step_l:以绝对精度计算Logistic方程的第一步7=於(1_1);Step_2:以绝对精度计算Logistic方程的第二步z=s^y.,Step_3:当获得的迭代值z的精度小于或者等于给定的/W的值时,所得迭代值z的全部数字位均保留,作为下一步的迭代输入值;否则,把所得迭代值z的低/W位转变为小数0.…rp?2rp?回作为进行下一次迭代的输入值。[0055]低位迭代法对混沌方程进行分步计算,可以消除由于计算过程中精度的限制导致的计算误差,既满足Condit1n_l实现真实轨道的连续点的绝对精度的计算;此外,利用可扩展精度混沌的精度与迭代次数的关系表达式能够预测本次计算所获得的精度,实现精度的控制。[0056]低位迭代法与传统的迭代法之间的区别也在于:在出现指定的计算精度与计算的当前数值出现冲突的时候,低位迭代法需要舍弃获得数值的高位而保留从最低位开始的数字位。传统的迭代方法与此相反,在出现这一情况时,舍弃低位而保留高位。此外,传统的迭代法一般不要求计算的精度,即绝对精度的计算。[0057]为了进一步解释低位迭代法,本文采用一个例子来演示低位迭代法的具体过程。[0058]假设Logistic方程中设定初始值χ。=0.2和控制参数a=3.3的初始条件,为了观察Logistic方程在连续域的实空间中真实轨道中的连续点的真值的低/W位的特点,即设定=7,计算机所使用的计算系统的有效精度设定为20,低位迭代法具体的计算过程如下。[0059]X0=0.2o[0060]X1=3.3*0.2*(1-0.2)=0.528,经过一次迭代获得的迭代值七的精度为3,指定的/W=7,在Skp_3中,因为X1的精度小于指定的/W的值,因此,迭代值X1全部的数字位被保留,进行下一次的迭代。[0061]X2=3.3*0.528*(1-0.528)=0.8224128,所获得的迭代值^的精度为7,指定的pn=7,在Step_3中,因为X2的精度等于指定的/w的值,因此,迭代值X2全部的数字位被保留,进行下一次的迭代。[0062]X3=3.3*0.8224128*(1-0.8224128)=0.481964955107328,所获得的佚代倌X。的精度为15,在Step_3中,指定的pn二rJ,因为X3的精度大于指定的/w的值,因此,所得迭代值X3的低7位被转换为小数0.5107328进行下一次的迭代,即使用X3=0.5107328进行下一次迭代。[0063]X4=3.3*0.5107328*(1-0.5107328)=0.824619863113728,所获得的佚代倌χ的精度为15,该情况与前一次迭代类似,X4的精度大于指定的/W的值,因此,所得迭代值X4的低7位被转换为小数0.3113728进行下一次的迭代,即使用X4=0.3113728进行下一次迭代。[0064]值得注意的是在混沌真实轨道中连续点14的真值为X4=0.8239266326138737085064023113728其真值的精度为31,计算机所使用的计算系统的有效精度为20,低位迭代法在有限的20位计算精度下获得了混沌真实轨道中连续点的真值的所需观察低位的数值。[0065]X5=3.3*0.3113728*(1-0.3113728)=0.707585272086528,与前沭佚代类似,所得迭代值X5的低7位被转换为小数0.2086528进行下一次的迭代,即使用X5=0.2086528进行下一次迭代。[0066]为了进一步验证这一方法的可行性,混沌真实轨道中连续点^的真值为(省略了中间的一些数字位):X5=0.4787360710…902862072086528X5精度为63,低位迭代法在有限的计算精度下获得了混沌真实轨道中连续点的真值的低7位的数值,而除低/W位外的其它高位的数字位的值具有很大的差异。[0067]综上所述,可以看出低位迭代法在有限的计算精度下能够克服混沌真实轨道的连续点的真值的精度的扩展问题,能够进行连续的观察混沌真实轨道低位的这一特性。[0068]利用低位迭代法可以对混沌真实轨道的连续点低位的规律进行有效的观察,也为揭示混纯的本质奠定了一定的基础。[0069]真实的混沌轨道是没有周期的。因为在真实混沌轨道中连续点的精度在不断地扩展,随着迭代次数的增加,迭代值的精度越来越大,迭代值是不可能相同的。但是,在计算机所模拟的离散的数字混沌轨道中,由于有限状态导致了混沌动态方程最终进入循环。[0070]混沌轨道通常包含两个部分:Part1:X1,x2,…,XdPart2:Xdlrl,Xd^…,Xltrc其中,PartI称为轨道的延迟部分,Part2称为轨道的循环部分。c是轨道循环部分的周期。可以看出,真实轨道低位的规律发生在循环部分。[0071]在Logistic方程中设定初始值X。=0.2和控制参数a=3.3的初始条件为例,利用低位迭代法对连续域的实空间中真实轨道中的连续点的低位进行观察。首先,设定=3,即观察真实混沌轨道的连续点真值的低3位的特点。[0072]利用低位迭代法获得的混沌轨道如下:x0=0.2xl=0.528x2=0.128x3=0.328x4=0.728x5=0.528x6=0.128x7=0.328x8=0.728当/w=3时,混沌轨道的低位具有明显的结构性。混沌轨道在初始点X。经过了一个延迟部分,从X1开始进入了有规律的循环。循环的周期长度等于4。值得注意的是,该轨道的循环部分的每个连续点均具有共同的低2位的数字位“28”。[0073]为了更好地揭示混沌轨道的低位的这一特点,本文给出了一些定义,以便更好地阐述可扩展精度混沌的真实轨道的基本结构。[0074]定义5:根基因位是指在真实轨道的循环部分(Part2),轨道的连续点的真值的低位中的一些数字位在迭代的过程中保持不变,这样的位称为根基因位,即RGP(RootGenePosit1n)。[0075]根基因位在混沌真实轨道的连续变化中一直保持不变。根据根基因位可以鉴别一个真实轨道。其特点非常类似于基因的遗传,父亲从祖父那里遗传了家族的一些基因,而儿子也会从父亲继承该家族的这些基因。例如:某种程度上祖父、父亲和儿子的外貌都有很类似的地方,该特性符合基因自身复制的特点。根据这些基因可以确定家族的基本特点。[0076]混沌真实轨道的这一特点也非常明显。虽然在继续的迭代中,每个连续点都具有不同的真值,但是,其真值的低位却保留了这一轨道的基本的特征,在进一步的演化中把该特征遗传给下一个值,循环往复。[0077]Logistic方程中设定初始值X。=0.1和控制参数a=3.9的初始条件为例,设定pn=2,利用低位迭代法观察混沌轨道的连续点的低2位的特点,如下所示:x0=0.1xl=0.51x2=0.61x3=0.81x4=0.21x5=0.01x6=0.61x7=0.81x8=0.21x9=0.01当/w=2时,混沌轨道在x。和X1经过了一个延迟部分,从七开始进入了有规律的循环。循环的周期可以看出等于4。该混沌轨道的特点是根基因位只有I个数字位,其值等于1[0078]表1.当X。=0.2,a=3.9和/W=4时,相同通用基因位的独立基因位CGP=“36”CGP=“56”CGP=“96”CGP=“76”x2=0.0336x3=0.7056x4=0.1696x5=0.9776x6=0.3136x7=0.4656x8=0.4896x9=0.8176xl0=0.7936xll=0.6256xl2=0.6096xl3=0.2576xl4=0.4736xl5=0.1856xl6=0.5296xl7=0.2976xl8=0.3536xl9=0.1456x20=0.2496x21=0.9376x22=0.4336x23=0.5056x24=0.7696x25=0.1776x26=0.7136x27=0.2656x28=0.0896x29=0.0176x30=0.1936x31=0.4256x32=0.2096x33=0.4576x34=0.8736x35=0.9856x36=0.1296x37=0.4976x38=0.7536x39=0.9456x40=0.8496x41=0.1376x42=0.8336x43=0.3056x44=0.3696x45=0.3776x46=0.1136x47=0.0656x48=0.6896x49=0.2176x50=0.5936x51=0.2256x52=0.8096x53=0.6576x54=0.2736x55=0.7856x56=0.7296x57=0.6976x58=0.1536x59=0.7456x60=0.4496x61=0.3376x62=0.2336x63=0.1056x64=0.9696x65=0.5776x66=0.5136x67=0.8656x68=0.2896x69=0.4176x70=0.9936x71=0.0256x72=0.4096x73=0.8576x74=0.6736x75=0.5856x76=0.3296x77=0.8976x78=0.5536x79=0.5456x80=0.0496x81=0.5376x82=0.6336x83=0.9056x84=0.5696x85=0.7776x86=0.9136x87=0.6656x88=0.8896x89=0.6176x90=0.3936x91=0.8256x92=0.0096x93=0.0576x94=0.0736x95=0.3856x96=0.9296x97=0.0976x98=0.9536x99=0.3456xlOO=0.6496xlOl=0.7376xl02=0.0336xl03=0.7056xl04=0.1696xl05=0.9776定义6:通用基因位是指在真实轨道的循环部分,当轨道的低位的周期等于4时,这样的基因位称为通用基因位,即CGP(CommonGenePosit1n)。[0079]定义7:独立基因位是指在真实轨道的循环部分,与通用基因位相结合表现随机性特点的数字位称为独立基因位,即IGP(IndividualGenePosit1n)。[0080]表2.Logistic方程的真实轨道中真值的独立基因位的随机性rl/r201234567890X92X29X71X2x80x93x47x94x28x971X63X46X36X41X19X58x4x25x15x302X32X49X51X62X20X13x27x54x68x173X43X6X76X61X99X18x44x45x95x904X72X69X31X22X60X33x7x14x8x375X23X66X16X81X79X78x84x65x75x506X12X89X11X82X100x53x87x74x48x577X3X26X56X101x59x38x24x85x55x108X52X9X91X42x40x73x67x34x88x779X83X86X96X21x39x98x64x5x35x70假设Logistic方程的迭代初始条件为x。=0.2和a=3.9,给定pn=4,其迭代值可以表示为X,=表I给出了混沌真实轨道中相同通用基因位的独立基因位。数字位了3和r4为通用基因位,r4为根基因位。通用基因位(CGP)分别等于“36”,“56”,“96”和“76”。[0081]表I的第I列表示带有通用基因位“36”的独立基因位的迭代解,类似第I列,第2列给出了带有通用基因位“56”的独立基因位的迭代解,以此类推。其中,数字位A和r2为独立基因位。[0082]表2展示了独立基因位11和r2的分布情况。从表2可以看出,独立基因位!^和r2的排列和组合为00至99。换句话说,独立基因位遍历了精度为2的实空间,即从O至0.99的所有数值。独立基因位在很大程度上决定着混沌的随机的特性。[0083]在图1中显示了可扩展精度Logistic混沌的真实轨道的连续点的低位的基本结构。图1中树的主干为根基因位(RGP);其4个主分支为通用基因位(CGP)。在进一步的演化中,在主分支的基础上独立基因位出现,其代表了随机性的出现。[0084]在表I中,例如:x2=0.0336,在分支“336”的第一子分支(最低处)“O”可以获得该迭代值0.0336,即x2。以此类推,可以获得在分支“336”的其它迭代值,第二个子分支“4”的X22=0.4336,第三个子分支“8”的X42=0.8336,等等。此外,类似的规律也出现在其它分支中。[0085]综上所述,Logistic方程的混纯的真实轨道的连续点的基本结构可以分为根基因位(RGP),通用基因位(CGP)和独立基因位(IGP)。该基本结构是混沌动力系统的本质特点,其不依赖于量化误差,即该类似遗传基因的特性独立于量化误差。[0086]可扩展精度混沌的真实轨道的基本结构能够进一步观察混沌的本质特点。[0087]从图1可以看出,每一个真实轨道的循环部分的根基因位是相同的。在后续的迭代过程中,其真实轨道的连续点保持了这一类似遗传基因的特性,即自我复制和进行变异的特性。[0088]遗传学(Genetics)是研究生物的遗传与变异的科学,研究基因的结构、功能,以及其在遗传中是如何进行传递的,在不同的后代中是如何变异的。[0089]基因或者遗传因子是遗传变异的主要物质。基因有两个主要的特点,一是能够完全地复制自身,以保持生物的基本特征;二是在遗传的过程中,基因表现出了变异的特性,具有生物多样性的特点或者可以简单描述为随机多样性。[0090]一个典型的例子是,即使是双胞胎或者多胞胎,虽然遗传了父母的很多基本特征,看起来非常相像;但是,也不会完全相同,也就是说,个体之间保持了一种差异性。或许在全世界找不出两个人具有完全相同的指纹。遗传中体现出来的多样性具有非常重要的意义。[0091]而可扩展精度混沌的真实轨道的低位的这一特性与遗传学的基因的特点非常类似。在混沌方程的演化过程中,后续的迭代继承了该轨道的基本的特征,即根基因位,其代表了这一轨道的基本的特征;其迭代的后代完全复制了这一信息。此外,独立基因位表现了混沌方程的生物多样性,即随机多样性。[0092]遗传学中的一个基本问题就是基因测序。本文对根基因位进行了初步测序的工作。[0093]当给定的初始值(X。)和控制参数(a)的最后一位数字位属于整数集合Setl={l,2,3,4,6,7,8,9}或者Set2={5}时,混沌方程均具有精度扩展的特性。显然,当混沌方程定义在Setl上时显示更加丰富的基因位的多样性和轨道的规律性,因此,本文着重阐述混沌方程的初始迭代条件定义在Setl上的一些特性。[0094]在测试分析中,选定的初始值(X。)和控制参数(a)的精度均为I,即初始值(4)取自集合Set00=10.1,0.2,0.3,0.4,0.6,0.7,0.8,0.9},控制参数(a)的数值取自集合Set(a)={3.1,3.2,3.3,3.4,3.6,3.7,3.8,3.9}。[0095]混沌方程的真实轨道的初始迭代条件可以描述为初始值和控制参数的组合值,其可以表示为U。,a),即(0.1,3.1),(0.1,3.2),…,(0.9,3.9)等。[0096]初始条件为(0.1,3.1)和(0.9,3.1)的迭代值在X1之后的值是相同的。[0097]当I。=0.1时,I1=a*x0*(1-x0)=3.1*0.1*(1-0.1)=0.279。[0098]当I。=0.9时,X1=a*x0*(1-X0)=3.1*0.9*(1-0.9)=0.279。[0099]因此,初始条件为(0.1,3.1)和(0.9,3.1)在第一次迭代后进入相同的轨道。为了区别不同的轨道,初始条件(0.1,3.1)和(0.9,3.1)仅给出(0.1,3.1),省略了(0.9,3.1)。类似的情况还有(0.2,a)和(0.8,a),(0.3,a)和(0.7,a),(0.4,a)和(0.6,a)等。[0100]对根基因的测序结果,按照根基因位的长度,分组如下所示。[0101]第一分组的根基因位长度为3,集合如下:Group_l={(0.2,3.1),(0.3,3.7)}.表3.Group_l的根基因位图谱初始迭代条件RGP(0.2,3.1)504(0.3,3.7)027表3显示的是GroupJ的根基因位图谱。例如:取初始的迭代条件(0.3,3.7),设定低位的精度值为6,即pn=6。该混纯真实轨道的连续点的真值的低6位如下所示:X1=3.7*0.3*(1-0.3)=0.777。[0102]X2=3.7*0.777*(1-0.777)=0.6411027,取低6位的数字位,即I2=0.411027。[0103]I3=3.7*0.411027*(1-0.411027)=0.8957100795027,取低6位的数字位。[0104]因此I3=0.795027。[0105]I4=0.563027。[0106]X5=0.099027ο[0107]X6=0.171027。[0108]X7=0.315027ο[0109]為=0.603027。[0110]I9=0.179027。[0111]根基因位是低3位,即RGP=027。通用基因位是“1027”,“5027”,“3027”,“9027”。从X6开始进入了循环状态,周期长度为4.第二分组的根基因位长度为2,集合如下:Group_2={(0.1,3.1),(0.4,3.2),(0.1,3.3),(0.2,3.3),(0.3,3.4),(0.3,3.8)}.表4.Group_2的根基因位图谱初始迭代条件RGP(0.1,3.1)29(0.4,3.2)32(0.1,3.3)03(0.2,3.3)28(0.3,3.4)36(0.3,3.8)48表4显示的是GroUp_2的根基因位图谱。例如:取初始的迭代条件(0.2,3.3),设定低位的精度值为5,即pn=5。该混纯真实轨道的连续点的真值的低5位如下所示:X1=3.3*0.2*(1—0.2)=0.528。[0112]X2=3.3*0.528*(1-0.528)=0.8224128,取低5位的数字位,即X2=0.24128。[0113]X3=3.3*0.24128*(1-0.24128)=0.60411107328,取低5位的数字位。[0114]因此X3=0.07328。[0115]X4=0.13728ο[0116]X5=0.86528ο[0117]X6=0.72128ο[0118]ι7=0.03328。[0119]χ8=0.05728。[0120]根基因位是低2位,即RGP=28。通用基因位是“128”,“328”,“728”,“528”,周期长度为4。[0121]表5.Group_3的根基因位图谱初始迭代条件RGP(0.1,3.9),(0.3,3.9)I(0.1,3.2),(0.2,3.2),(0.2,3.7),(0.3,3.2),(0.4,3.7)2(0.3,3.3)3(0.1,3.6),(0.2,3.6),(0.3,3.6),(0.4,3.1),(0.4,3.6)4(0.1,3.4),(0.2,3.4),(0.2,3.9),(0.4,3.4),(0.4,3.9)6(0.1,3.7)7(0.1,3.8),(0.2,3.8),(0.4,3.3),(0.4,3.8)8(0.3,3.1)9第三分组的根基因位长度为1,集合如下:Group_3={(0.1,3.2),(0.1,3.4),(0.1,3.6),(0.1,3.7),(0.1,3.8),(0.1,3.9),(0.2,3.2),(0.2,3.4),(0.2,3.6),(0.2,3.7),(0.2,3.8),(0.2,3.9),(0.3,3.1),(0.3,3.2),(0.3,3.3),(0.3,3.6),(0.3,3.9),(0.4,3.1),(0.4,3.3),(0.4,3.4),(0.4,3.6),(0.4,3.7),(0.4,3.8),(0.4,3.9)}表5显示的是GroUp_3的根基因位图谱。例如:取初始的迭代条件(0.1,3.8),设定低位的精度值为4。该混沌真实轨道的连续点的真值的低4位如下所示:xl=0.342x2=0.1368x3=0.5888x4=0.5328x5=0.1808x6=0.3168x7=0.3488x8=0.6528取初始的迭代条件(0.2,3.8),设定低位的精度值为4。该混沌真实轨道的连续点的真值的低4位如下所示:xl=0.608x2=0.6768x3=0.8688x4=0.8928x5=0.1008x6=0.9568x7=0.8288x8=0.4128取初始的迭代条件(0.4,3.3),设定低位的精度值为4。该混沌真实轨道的连续点的真值的低4位如下所示:xl=0.792x2=0.6288x3=0.4848x4=0.7568x5=0.7408x6=0.0688x7=0.9648x8=0.1168初始的迭代条件(0.1,3.8),(0.2,3.8)和(0.4,3.3)具有相同的根基因位,即RGP=8。换句话说,在上述初始的迭代条件下,真实轨道的真值的最低位都是8。但是,初始的迭代条件(0.1,3.8)和(0.2,3.8)具有相同的通用基因位“68”,“28”,“88”和“08”。而初始的迭代条件(0.4,3.3)的通用基因位为“88”,“48”,“68”和“08”。[0122]显然,在具有相同的根基因的真实轨道中,由于初始条件的不同,轨道中存在着不同的通用基因位的组合。[0123]通过根基因位,可以分析给定条件内的轨道的数量。由表3,4和5可以推出,精度为I的初始迭代条件的根基因的图谱可以分为3组,在连续域的实空间中共有16个相同根基因的真实混沌轨道,其中,根基因长度为3的为2个轨道,根基因长度为2的为6个轨道,根基因长度为I的为8个轨道。此外,在相同的根基因的轨道内可以通过通用基因位来分析相近轨道的特征,即同根轨道的基本特征。[0124]为了进一步了解独立基因位的特性,本文比较了在传统的计算机浮点运算下的不稳定周期轨道与基于低位迭代法的混沌真实轨道的低位的周期的特点。表6给出了在两种方法下轨道周期的对比分析。[0125]表6.混沌轨道周期对比分析精度IEEE双精度浮点运算的轨道周期低位迭代法的周期长度过渡周期长度循环周期长度104I520177500834511658625001039279393581562500116550423603781250012272046867839062500146697982312164976562500表6为在初始的迭代条件为(0.1,3.9),利用IEEE的双精度浮点运算和低位迭代法对Logistic方程的轨道周期进行的对比。在计算机中利用IEEE双精度浮点运算计算混沌轨道的周期。本文对比了利用低位迭代法获得的真实轨道的连续点的低位在不同精度下的周期长度。[0126]在低位迭代法下,真实轨道的连续点的低位的周期是由独立基因位决定的,即独立基因位代表了混沌真实轨道的随机多样性的特点。从表6可以明显看出,在精度为I时,低位迭代法获得的是根基因位,因此周期为I。当精度达到5时,在低位迭代法的作用下,低位的数字位中已经出现了独立基因位。混沌真实轨道的连续点的低位随着精度的增加,即随着低位的数字位的增加,其周期明显呈现增加的趋势。[0127]在IEEE双精度浮点运算的轨道中,周期受到量化误差的影响出现波动。例如:在精度为10时循环周期长度为39358,与精度在11时的循环周期23603相比出现了不稳定的现象。虽然可扩展精度混沌的分步计算可以降低量化误差对轨道的影响,接近理想的混沌;但是,量化误差依然对其周期具有不确定的影响。[0128]对比低位迭代法下的混沌轨道周期,可以明显看出,其具有稳定的周期增加的趋势。主要的原因是低位迭代法不受量化误差的影响,使用绝对精度计算,保留着混沌轨道的低位的基本结构特征。在相同的精度的条件下,例如:当精度等于10时,在低位迭代法下的轨道周期(1562500)是IEEE双精度浮点运算的轨道周期(循环周期长度39358)的近39倍。在精度达到14时,达到了近422倍。[0129]因此,在低位迭代法下混沌轨道最大限度地保留了混沌的基本的特征,即随机多样性的特点。[0130]在低位迭代法的基础上,进行连续地观察混纯真实轨道的连续点的低位的特点,可以发现在混沌真实轨道中存在的基本的结构,其基本结构包括根基因位,通用基因位和独立基因位。混沌的真实轨道在该基本结构下显示了类似遗传基因的特性,在真实轨道的连续点中,其后续的迭代均继承了共同的低位,类似于基因中的自我复制的特点,其后续的连续点均具有该特性。对初始条件的精度为I的轨道进行了测序,并分析了根基因位的图谱,以及同根基因轨道的通用基因位的特点。这可以进一步确定在一定的条件下,混沌轨道的基本的特点,以及混沌轨道的偏移等特性。[0131](二)软件序列码软件序列码是计算机软件制作者授权给合法的用户使用其软件的唯一标识码,一般是一定长度的随机数列。用户在输入正确的软件序列码后,可以使用和安装该软件,并获得软件制作者提供的技术支持服务等,保障自己的合法权益。软件序列码可以避免软件的重复注册和盗版行为,是一种保护知识产权的有效方法。[0132]目前使用的软件序列码主要是通过随机数发生器产生一个随机数列,由于随机数发生器的自身的缺陷,很容易导致序列码的重复,产生用户重复注册而使用盗版的假象。在一些混沌随机数发生器中,存在着大量的不稳定的周期轨道,其所包含的短周期很容易使随机数列频繁出现,而导致序列码的大量重复。【
发明内容】[0133](一)要解决的技术问题本发明的目的是提出一种基于可扩展精度混沌类遗传性的软件序列码生成方法,使软件随机数列发生器产生稳定周期的序列码,保证软件的安全。[0134](二)技术方案为了解决上述技术问题,本发明提供了一种利用可扩展精度混沌的类遗传的特性产生软件序列码的方法,包括:第一步,确定输出序列码的长度(/W),以及批量序列码的数量,即输出序列码的数量。确定根基因位和通用基因位,并转化为小数作为Logistic方程的X。初始值。确定控制参数a的数值。[0135]第二步,利用低位迭代法进行计算。[0136]在没有达到指定精度之前,一直进行迭代。当达到指定精度之后,输出低位迭代法得到的序列。[0137]低位迭代法描述如下:Step_l:以绝对精度计算Logistic方程的第一步7=;Step_2:以绝对精度计算Logistic方程的第二步z=s^y.,Step_3:当获得的迭代值z的精度小于或者等于给定的/W的值时,所得迭代值z的全部数字位均保留,作为下一步的迭代输入值;否则,把所得迭代值z的低/W位转变为小数0.…rp?2rp?回作为进行下一次迭代的输入值。[0138]第三步,将相应的输出序列写入软件数据文件中,作为软件序列码。重复第二步,直到满足所指定的批量序列码的数量。[0139](三)有益效果本发明的有益效果是:充分利用了可扩展精度混沌的类遗传基因的特性,在指定的空间中生成具有稳定周期的随机数列,并把该序列作为软件的序列号。在低位迭代法的作用下,可扩展精度混沌的独立基因位具有随机多样性的特点。与现有的技术相比,独立基因位具有稳定的周期的特点,避免了不稳定周期轨道对随机数列产生的影响,因此,可以有效保证软件序列码的随机性和唯一性。【附图说明】[0140]图1是可扩展精度Logistic混沌的真实轨道的连续点的低位的基本结构。【具体实施方式】[0141]本例自动批量生成2个软件序列码,每个软件序列码10位,并将这些注册信息包含到该软件一个动态链接库DLL文件中,这样软件制作者可以将DLL文件同应用程序一并发行,并在应用程序的相关模块中调用DLL文件中提供的序列码进行比对,核实用户的合法性。[0142]第一步,确定输出序列码的长度为10,以及批量序列码的数量为2,即输出序列码的数量。给定的根基因位为28,通用基因位为528,确定根基因位和通用基因位,并转化为小数0.528,作为Logistic方程的X。初始值。确定控制参数a=3.3的数值。[0143]第二步,利用低位迭代法进行计算。[0144]X1=3.3*0.528*(1-0.528)=0.8224128,取低全部的数字位,即I1=0.8224128。因所得的混沌数列没有达到指定的精度(抑=10),因此,继续进行迭代。[0145]X2=3.3*0.8224128*(1-0.8224128)=0.481964955107328,取低10位的数字位,转化为小数,因此X2=0.4955107328。因输出的混沌数列达到指定的精度,因此,输出该序列码。[0146]第三步,把4955107328写入该软件的DLL文件作为该软件的序列码。继续进行下一个软件的数据文件的操作。[0147]转到上述第二步。[0148]x3=3.3*0.4955107328*(1-0.4955107328)=0.824933493384023113728ο[0149]取低10位的数字位,转化为小数,因此X3=0.4023113728。其情形与上述类似。[0150]第三步,把4023113728写入该软件的DLL文件作为该软件的序列码。满足所指定的批量序列码的数量。本过程结束。[0151]最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。【主权项】1.一种基于可扩展精度混沌类遗传性的软件序列码生成方法,其特征是:Logistic方程的定义如下x?+i=xn),η=O,I,…参数a为控制参数,且O〈a〈4,参数1?为混纯方程的第λ次的迭代值,X。为χ?初始迭代值,且O〈〈I;其真实轨道的基本结构包括:根基因位,通用基因位和独立基因位;第一步,确定输出序列码的长度(/W),以及批量序列码的数量,确定根基因位和通用基因位,并转化为小数作为Logistic方程的X。初始值,确定控制参数a的数值;第二步,利用低位迭代法进行计算,在没有达到指定精度(/w)之前,一直进行迭代,当达到指定精度之后,输出低位迭代法得到的序列;低位迭代法原理如下:Step_l:以绝对精度计算Logistic方程的第一步7=;Step_2:以绝对精度计算Logistic方程的第二步z=s^y.,Step_3:当获得的迭代值z的精度小于等于给定的/W的值时,所得迭代值z的全部数字位均保留,作为下一步的迭代输入值;否则,把所得迭代值^的低/W位转变为小数返回作为进行下一次迭代的输入值;第三步,将相应的输出序列写入软件数据文件中,作为软件序列码,重复第二步,直到满足所指定的批量序列码的数量。【文档编号】G06N3/12GK106033504SQ201510104571【公开日】2016年10月19日【申请日】2015年3月11日【发明人】刘嘉辉,宋大华,罗智勇,李方洲【申请人】哈尔滨理工大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1