可扩展精度Logistic混沌序列的并行计算方法

文档序号:7746595阅读:206来源:国知局

专利名称::可扩展精度Logistic混沌序列的并行计算方法
技术领域
:本发明属于数据安全、网络安全
技术领域
,具体地说是利用并行计算技术实现基于可扩展精度获得混沌随机数列的方法。
背景技术
:自从EdwardLorenz于1963年在大气科学的研究中首先提出了混沌的概念后,混沌在各个领域都得到了不同程度的应用。混沌运动是指在确定性系统中局限于有限空间的高度不稳定的运动;混沌是由确定性方程产生的,只要方程参数和初值确定就可以重现混沌现象。混沌系统的最大特点在于系统的演化对初始条件十分敏感,从长期意义上讲系统的未来行为是不可预测的。信息论的奠基人,美国数学家Shannon指出若能以某种方式产生一随机序列,这一序列由密钥所确定,任何的输入值的一个微小变化对输出都具有相当大的影响,则利用这样的序列就可以进行加密。混沌系统恰恰符合这种要求。混沌系统具有对初值的敏感性,即任何微小的变化都可以使后来的混沌序列产生无法预测的变化;因此,混沌加密的实质是用难以预测的序列而不是用难以猜测的数加密。混沌在密码学领域的研究起源于1989年,英国数学家Matthews首先提出应用离散混沌动力系统在密码学中,之后混沌加密越来越被人们所关注,并得到了迅速的发展。1996年,Feldmarm等人提出安全混沌通信的通用模型。1997年,Zhou等提出了在有限精度下的分段线性混沌映射(PiecewiseLinearChaoticMap)的混沌模型。1998年,Fridrich提出了二维混沌映射的混沌模型。之后,混沌模型的研究又出现了多维、混合等模型。1976年,RobertMay应用Logistic方程(Logisticequation)研究生态系统中的人口模型;也有人引用为Logistic映射(Logisticmap),它被广泛的使用于生态学,经济学等学科中。Logistic映射的混沌模型以其产生简单,快速,有利于计算机的实现等特点被普遍使用在信息加密领域。混沌模型被广泛应用在加密图形图像、语音、视频等多媒体信息。目前,利用混沌映射进行图像加密的大部分算法是先选择一种混沌模型,利用混沌映射生成混沌序列,然后将混沌序列作量化处理,利用新产生的序列与原始图像进行一定处理。因此,混沌序列的良好随机性保证了信息的安全。2003年Li等验证了Zhou的分段线性混沌映射从严格混沌的角度并不是足够安全的,并指出在有限计算精度(FiniteComputingPrecision)的条件下,混沌系统的动力学特性将严重衰退。退化为周期序列的混沌,已经失去了混沌系统特有的随机特性;因此,不能保证加密数据的安全。为了克服在有限精度下混沌序列的退化问题,采用置乱、扰动的方法和多维混沌映射可以降低混沌序列退化的速度,增加了在特定条件下的序列周期长度;但是,并不能从根本上解决问题。基于可扩展精度的混沌模型解决了混沌序列的精度的限制,满足不同用户对精度的要求,既不同的加密请求。特别是对于要求快速,实时的网络多媒体数据的传输,既可以保证传输的速度,也可以保证加密数据的安全。然而,基于可扩展精度的混沌模型需要面对的是大规模计算问题,而大规模计算问题最好的解决办法是采用并行计算技术。并行计算技术的发展需要强大的资金和专业技术人员,原因在于并行计算的超级计算机或者机群的价格远高于普通的计算机,而并行环境下的编程模型也只有受过专业训练的程序员才能编写。这些因素限制了并行计算技术的普及。然而,多核处理器的出现为并行计算的发展带来了转机。多内核是指在一枚处理器中集成两个或多个完整的计算引擎(内核)。自2005年以来,随着双核处理器的出现;四核处理器则于2006年推出,以及近几年来多核技术被普遍使用在个人电脑中,个人电脑处理数据的能力有了很大的提高。处理器不断发展,由纯粹的频率提升逐渐转到多核运算及并行执行的方向上。多核处理器的使用,提高了计算机处理数据的能力,因此,充分利用多核计算机的特性,开发具有并行性的软件产品是今后的软件发展方向。并行加密技术是为了适应目前的并行化的趋势,对传统的加密技术的改进。开发并行加密算法具有一定的难度,它的并行实现需要程序员熟悉并行系统的环境及并行程序设计的编程方法,并行编程的难度远大于传统的顺序程序设计。在多核、SMP计算节点上适合做基于共享存储(线程)的程序设计,而在节点之间更适合采用消息传递的程序设计。如使用MPI和OpenMP的混合编程模式,这种混合编程模式会使本来已经十分复杂的并行算法设计任务变得更加困难,而且要求并行程序的设计者对这两种编程模型都很熟悉。这就极大地增加了并行程序设计的难度,提高了对并行程序设计者的要求。如何将这两者的优点很好地结合在一起,并且尽量避免混合编程模式所带来的并行程序开发的难度。如何在多核环境下更好地发挥处理器的性能优势,满足并行环境下的数据加密的应用的需求就成了当前面临的主要问题。目前,我国也在不断的加强并行数据加密等方面的研究,但该领域的研究和产业化正处于一个向上发展的初始阶段。
发明内容本发明的目的在于利用混沌系统的良好的伪随机特性,在可扩展精度的前提下,运用并行计算技术获得理想的混沌伪随机数列。本发明提供一种可扩展精度Logistic混沌序列的并行计算方法,其步骤如下ULogistic方程的初始参数Xtl,μ整数量化保存到一维数组中,设定要求达到的精度或者指定迭代的次数;2、并行计算算法第一部分X=xX(1-x),利用矩阵保存计算中间结果,修改动态数组X的长度,保存计算结果在动态数组X中;3、并行计算算法第二部分χ=μXx,利用矩阵保存计算中间结果,修改动态数组X的长度,保存计算结果在动态数组X中;4、如果精度或者迭代次数达到要求的值,动态数组X中即为得到混沌序列,计算结束;否则,转到步骤2。在上述步骤1中,设初始参数Xtl的值为x,x可以表示为<formula>formulaseeoriginaldocumentpage6</formula>η为参数值χ小数点后的有效位数,即精度。设初始参数μ的值记为<formula>formulaseeoriginaldocumentpage6</formula>行向量X=Is1,s2,...,sn}保存在动态数组X中,动态数组X的第一个元素保存S1,即X=S1,X[l]=s2,...以此类推。行向量X的元素总数,即动态数组X的长度记为Lx。行向量U=Iu1,U2,···,uj保存在数组U中,数组U的第一个元素保存U1,即UW]=ui;U[l]=u2,...以此类推。在上述步骤2中,设y=l-xn=l_x,则有ηy=gr,.xD'1,r,G{0,1,…,9},“=1,2,…_JD-5,当=时;"{(£)-1)-5,当时.行向量Y={ri,r2,...,rn}被保存在动态数组Y中,动态数组Y的第一个元素保存即YW]=ri;Y[l]=r2,...以此类推。设行向量Mi=rn_i+1XX,l<i彡n,且Mi有如下形式<formula>formulaseeoriginaldocumentpage6</formula>矩阵M保存xX(1-x)的中间计算结果,具有如下形式<formula>formulaseeoriginaldocumentpage6</formula>在矩阵M的每行中,除了行向量Mi的元素外其他元素均为零。记M为<formula>formulaseeoriginaldocumentpage6</formula>初始化矩阵M为零矩阵mik=0,1彡i彡n,1彡k彡2η。存储行向量Mi于矩阵M中,即保存xX(1-x)的中间计算结果<formula>formulaseeoriginaldocumentpage6</formula>计算本次结果<formula>formulaseeoriginaldocumentpage6</formula><formula>formulaseeoriginaldocumentpage6</formula>dH=int[(ηi+di)/D],1彡i彡2n;函数int[]为取计算结果的整数部分,设d2n=0。行向量Mi可以作为独立的计算部分在并行环境下的不同的处理器中并行计算。假设并行系统中有Npras个从处理机可以使用,第i个处理机对应编号Pi,基于消息传递模型的并行算法如下(1)当Npras彡Lx时,主处理机传送行向量X和A到从处理机Pi的接收缓存中,即行向量Mi在处理机Pi中计算;从处理机计算完成后传送计算结果给主处理机。(2)当Npras<Lx时,在并行系统中,由于行向量Mi的总数超过从处理机总数,因此,某些处理机需要计算2个或者2个以上的行向量Mi。行向量Mi与处理机的编号有如下关系Pi=(i-1)(modNpros)+l(i=1,2,···;Pi=1,2,...,Npros).i为行向量Mi的编号。从处理机计算完成行向量Mi后传送计算结果给主处理机,直到所有的行向量Mi计算完成。xX(1-x)的计算结果保存在行向量T中,形式如下T={αj,α2,...αn,αn+1,...α2J.行向量T保存在动态数组Temp中,动态数组Temp的长度为2η。为了进行下一个部分的计算,扩大动态数组X的长度为2η,拷贝动态数组Temp中的数据元素到动态数组X中,释放动态数组Temp。在上述步骤3中,并行计算χ=μXx的过程除部分参数、矩阵及数组长度不同外,计算方法与算法第一部分相同。在上述步骤4中,设参数Xn的精度为Ln,初始参数μ的精度为Lu,则迭代次数与精度有如下关系Ln+1=2XLn+Lu;Ln,Lu乒0;n=0,1,··.当本次迭代获得精度大于用户设定的精度时,可以采取截尾的方法处理,即舍去剩余的有效位数。本发明的特点1、利用动态数组保存混沌方程计算结果,克服了有限精度下混沌序列的短周期现象,基于可扩展精度的混沌方程增加了映射空间,使产生的混沌序列更加接近于理想状态,能够充分利用混沌系统的特性。2、本发明基于并行计算技术,充分利用目前的逐渐普及的多核处理器的优势,实现快速、高效的产生混沌序列,能够为并行环境下的数据安全提供有效的解决方案。图1是Logistic方程的算法图;图2a是精度等于1时迭代波形图;图2b是精度等于2时迭代波形图;图2c是精度等于4时迭代波形图;图3a是精度等于6时迭代200次波形图;图3b是精度为200、误差为0.000001时的有效位波形图3c是精度为50,1000和10000时的概率统计图;图4是基于消息传递接口(MPI)和模块化设计的框图;图5a是Lena原图;图5b是Lena原图的像素点分布曲线图;图5c是加密图像;图5d是加密图像的像素点分布曲线图。具体实施例方式以下结合附图和实施例对本发明做进一步的详细说明,但本发明的实施方式并不限于此。混沌系统的特性有混沌系统对初始状态极度敏感性;初始值的微小变化对随后的产生的值具有很大的影响。混沌系统具有自相似性。局部选取的混沌形态与整体完全相似,理论上,混沌序列在整个空间上是混沌的;因此,在某局部空间选取的子序列也是混沌的。确定的随机性。混沌系统的动力学行为极其复杂,不符合概率统计学原理;因此,难以重构和预测。当3.5699...<μ彡4时,Logistic方程进入混沌状态;但是,由于计算的有限精度问题,往往得到的序列变成了周期的序列。假设Xtl=0.1,μ=3.9;给定精度分别为1、2和4时的迭代波形图见图2a,图2b和图2c。在有限精度的情况下,Logistic映射经过一定的迭代次数后出现了周期。混沌虽然具有良好的伪随机性,但是,在有限精度下所产生的随机数列退化为周期序列。假设χ。=0.1,μ=3.9;Logistic方程的最大精度与迭代次数的关系见表1。表1Logistic映射的迭代次数与最大精度关系迭代次数I最大精度I迭代次数I最大精度~3Π4095~~2712^91~~3151316383~311432767~~5631565535~~612716131071~~~725517262143~~~851118524287~<table>tableseeoriginaldocumentpage9</column></row><table>经过一次迭代,最大精度为3;经过10次迭代,最大精度为2047。理论上,混沌序列在整个空间上是无周期,不可预测的。显然,随着精度的提高,映射空间扩大,计算的复杂度增加。采用传统的计算方法是无法满足大规模计算任务的,因此,设计并行计算Logistic方程的算法可以解决扩大映射空间的问题,也可以提高效率。与此同时,基于可扩展精度的Logistic方程,可以产生理想的混沌随机数列。混沌运动的自相关近似为δ函数,由两个不同的初值产生的混沌序列互相关为0,其特性接近于白噪声。图3a中Logistic方程的精度等于6,μ=3.98765。当X(1=0.1时,A={αα2,…αJ,Cii代表第i次迭代的值。当χ。=0.100001时,B={ββ2,··.βη}。经过200次迭代,可以看出,在两组初始值相差0.000001时,混沌系统对初始状态极度敏感性;但是,在初始的几次迭代中,两组值的差在0.000003附近,因此,初始的迭代值不能作为随机数列来使用。图3b中精度为200,经过100次迭代;当Xtl=0.1时,获得混沌序列I^iX0=0.100001时,获得混沌序列ξ2,由此可见,混沌序列具有良好的伪随机特性。在产生的混沌序列中Sie{0,1,...9}.0,1,...,9出现的概率记为P(0),P(1),···,P(9),理论上,P(O)=P(I)=···=P(9)=1/D。假设μ=3.98765,X0=0.12345,精度分别为50(Si),1000(S2)和10000(S3),经过50次迭代,0,1,...,9出现的概率分布图见图3c。可以看出,随着精度的增加,即映射空间的扩大,将获得理想的混沌随机数列。实例1基于消息传递接口(MPI)和模块化设计的实现。基于消息传递接口(MPI)和模块化设计的实现的步骤如图4中所示1、Logistic方程的初始参数Χ(ι,μ整数量化保存到一维数组中,设定要求达到的精度或者指定迭代的次数;并行系统获得当前能够使用的从处理机的信息,或者指定并行系统中从处理机的个数。使用MPI_Init()函数进行MPI初始化后,可以使用MPI_Comm_rank()函数获得处理机在并行系统中的编号,即Pi。可以使用MPI_Comm_Size()函数获得系统中处理机个数。2、并行计算算法第一部分X=xX(1-x),利用矩阵保存计算中间结果,修改动态数组X的长度,保存计算结果在动态数组X中。并行计算函数是基于模块化设计的并行计算算法第一部分和第二部分的主要函数,它有两个参数算法的计算部分和执行并行计算的从处理机的编号。当Npras彡Lx时,主处理机传送行向量X和A到从处理机Pi的接收缓存中,即行向量Mi在处理机Pi中计算;从处理机计算完成后传送计算结果给主处理机。当Npras<Lx时,在并行系统中,由于行向量Mi的总数超过从处理机总数,因此,某些处理机需要计算2个或者2个以上的行向量Mi。行向量Mi与处理机的编号有如下关系Pi=(i-1)(modNpros)+l(i=1,2,...;Pi=1,2,...,Npros).i为行向量Mi的编号。从处理机计算完成行向量Mi后传送计算结果给主处理机,直到所有的行向量Mi计算完成。主处理机等待所有的行向量Mi计算完成,即进程同步,可以使用函数MPI_BarrierO实现。然后,主处理机计算χX(l_x)的结果保存在行向量T中,行向量T保存在动态数组Temp中,动态数组Temp的长度为2LX。为了进行下一个部分的计算,扩大动态数组X的长度为2LX,拷贝动态数组Temp中的数据元素到动态数组X中。3、并行计算算法第二部分Χ=μXx,利用矩阵保存计算中间结果,修改动态数组X的长度,保存计算结果在动态数组X中。并行计算函数此时计算的是算法的第二部分,计算方法与计算第一个部分相同。主处理机使用函数MPLBarrierO等待所有的行向量Mi计算完成,然后,主处理机计算μXx的结果保存在行向量τ中,行向量T保存在动态数组Temp中,动态数组Temp的长度为Lx+Lu。扩大动态数组X的长度为Lx+Lu,拷贝动态数组Temp中的数据元素到动态数组X中。4、如果精度或者迭代次数达到要求的值,动态数组X中即为得到混沌序列,计算结束;否则,转到步骤2。基于消息传递接口(MPI)和模块化设计的实现使用函数MPI_Send()和MPI_RecvO在多处理机间接收和发送消息,传送的数据作为消息传递。实例2实现对图像的加密。基于可扩展精度的混沌随机数列加密图像的算法的基本思想是把图像分割成几个部分(数据片),假定数据片的长度等于所生成的混沌随机数列能够生成的密钥数,对数据片实行字节加密,具体的步骤如下1、Logistic方程的初始参数Xtl,μ,数据分片的个数等可以作为用户输入的密码部分。初始参数κ,μ整数量化保存到一维数组中。2、并行计算算法第一部分X=xX(I-X);3、并行计算算法第二部分χ=μXx;4、如果精度达到生成密钥数,转到步骤5;否则,转到步骤2;5、获得的混沌序列需要进行组合成为密钥,组合的办法可以为如下方法把相邻的η个元素Sl,s2,...,Sn作为一个密钥KK=(n∑i=1siXDi-1mod256),D=10,si∈{0,1,...,9},n=1,2,.--6、用生成的密钥加密当前数据片;7、如果所有的数据片加密完成,则本算法结束;否则,转到步骤2。图5a和图5b中展示的是Iena原图和它的像素点分布曲线图,经过加密处理得到图5c。图5d展示的是加密图像的像素点分布曲线图。该方法生成的密钥空间大,使得加密后的图像安全性更高,且加密效果均勻,不易被破解。实例3网络加密通信模型。混沌加密算法是对称加密算法,即在发送端和接收端使用同样的算法进行加密/解密。发送端和接收端首先确定Logistic方程的初始参数Xq,μ,以及精度或者迭代次数,他们可以作为用户输入的密码部分。发送端可以把需要传送的信息进行加密处理,然后通过网络传输给对方,接收端在接收到信息后进行解密处理,恢复信息。权利要求可扩展精度Logistic混沌序列的并行计算方法,其特征是(1)Logistic方程的初始参数x0,μ整数量化保存到一维数组中,设定要求达到的精度或者指定迭代的次数;(2)并行计算算法第一部分x=x×(1-x),利用矩阵保存计算中间结果,修改动态数组X的长度,保存计算结果在动态数组X中;(3)并行计算算法第二部分x=μ×x,利用矩阵保存计算中间结果,修改动态数组X的长度,保存计算结果在动态数组X中;(4)如果精度或者迭代次数达到要求的值,动态数组X中即为得到混沌序列,计算结束;否则,转到(2)。2.根据权利要求1所述的可扩展精度Logistic混沌序列的并行计算方法,其特征是在上述步骤1中,Logistic方程具有如下形式<formula>formulaseeoriginaldocumentpage2</formula>设初始参数Xo的值为X,X可以表示为n为参数值x小数点后的有效位数,即精度;设初始参数P的值记为<formula>formulaseeoriginaldocumentpage2</formula>行向量X={si,s2,…,sn}保存在动态数组X中,动态数组X的第一个元素保存Sl,即X=Sl,X[l]=s2,…以此类推;行向量X的元素总数,即动态数组X的长度记为Lx;行向量U={ui,u2,…,uj保存在数组U中。3.根据权利要求1所述的可扩展精度Logistic混沌序列的并行计算方法,其特征是在上述步骤2中,设y=l_xn=1-x,则有<formula>formulaseeoriginaldocumentpage2</formula>fD-st当时;{(D~l)-Si当时;行向量Y={ri,r2,…,rn}被保存在动态数组Y中;设行向量Mi=rn_i+1XX,l彡i彡n,且Mi有如下形式Mi={mi^mi^...mij;矩阵M保存xX(l_x)的中间计算结果,具有如下形式<formula>formulaseeoriginaldocumentpage2</formula>在矩阵M的每行中,除了行向量Mi的元素外其他元素均为零;记M为<formula>formulaseeoriginaldocumentpage3</formula>初始化矩阵M为零矩阵mik=;存储行向量Mi于矩阵M中,即保存xX(1-x)的中间计算结果;<formula>formulaseeoriginaldocumentpage3</formula>;计算本次结果<formula>formulaseeoriginaldocumentpage3</formula>;函数int[]为取计算结果的整数部分,设d2n=0;行向量Mi可以作为独立的计算部分在并行环境下的不同的处理器中并行计算;假设并行系统中有Npras个从处理机可以使用,第i个处理机对应编号Pi,基于消息传递模型的并行算法如下(1)当Npras彡Lx时,主处理机传送行向量X和巧到从处理机Pi的接收缓存中,即行向量Mi在处理机?1中计算;从处理机计算完成后传送计算结果给主处理机;(2)当Npras<Lx时,行向量Mi与处理机的编号有如下关系Pi=(i-1)(modNpros)+l(i=1,2,...;=1,2,...,Npros);i为行向量Mi的编号;从处理机计算完成行向量Mi后传送计算结果给主处理机,直到所有的行向量Mi计算完成;xX(l-x)的计算结果保存在行向量T中,形式如下T={ai,a2,an,an+1,…a2n};行向量T保存在动态数组Temp中,动态数组Temp的长度为2n;为了进行下一个部分的计算,扩大动态数组X的长度为2n,拷贝动态数组Temp中的数据元素到动态数组X中,释放动态数组Temp。4.根据权利要求1所述的可扩展精度Logistic混沌序列的并行计算方法,其特征是在上述步骤3中,并行计算x=uXx的过程除部分参数、矩阵及数组长度不同外,计算方法与算法第一部分相同。5.根据权利要求1所述的可扩展精度Logistic混沌序列的并行计算方法,其特征是在上述步骤4中,设参数xn的精度为Ln,初始参数y的精度为Lu,则迭代次数与精度有如下关系Ln+1=2XLn+Lu;Ln,Lu乒0;n=0,1,...当本次迭代获得精度大于用户设定的精度时,可以采取截尾的方法处理,即舍去剩余的有效位数。全文摘要本发明公开了一种可扩展精度Logistic混沌序列的并行计算方法,其步骤为(1)初始参数x0、μ整数量化保存到一维数组中,设定要求达到的精度或者指定迭代的次数;(2)并行计算算法第一部分x=x×(1-x),利用矩阵保存计算中间结果,修改动态数组的长度,保存计算结果在动态数组中;(3)并行计算算法第二部分x=μ×x,保存计算结果在动态数组中;(4)如果精度或者迭代次数达到要求的值,动态数组中即为得到混沌序列,计算结束;否则,转到(2)。本发明充分利用了混沌系统的特性,提供更加扩大的映射空间的混沌序列。可用于保密通信、信息安全等领域,特别适合于图形图像、多媒体等信息的加密存储和网络传输。文档编号H04L9/00GK101834717SQ20101015245公开日2010年9月15日申请日期2010年4月22日优先权日2010年4月22日发明者乔佩利,刘嘉辉,宋大华,李岩,王卫兵,陈德运申请人:哈尔滨理工大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1