背景技术
随着全球信息化的飞速发展,我国大量建设的各种信息化系统已经成为国家关键基础设施,其中许多业务要与国际接轨,诸如通信、电子商务、金融网络等。同时在信息开放的今天,如何保障我国的政府、军事、商业和金融等等行业领域的信息安全,成为我国建设的重要课题。信息安全已成为影响国家全局和长远利益的急待解决的重大关键问题。
解决信息安全问题的关键技术之一是密码技术,密码技术主要包括加密技术、认证技术和密钥管理技术。密码学的研究已有几千年的历史,但直到1949年Shannon发表了题为“保密通信的信息理论”的论文后才真正成为一门科学。特别是在70年代中期,1976年Diffie和Hellman发表的题为“密码学的新方向”的论文是密码学更加完善和使用;1977年向全世界公布的美国数据加密标准(DES),DES在1998年7月在不到三天的时间内就被破译了。已被美国政府废止,1998年8月和1999年3月召开了会议,来自全世界的密码专家讨论了候选的算法,帮助把算法缩小到15个,最后到了5个:IBM的MARS算法,RSA实验室的RC6算法、Joan Daemen和Vincent Rijmen两人的Rijndael算法、Eli Baham和Lars Knudsen两人的Serpent算法以及Counterpane实验室的Twofish算法。2000年初,最后经过专家的研究,在五个候选密码算法中选定Rijndael算法为美国新一代用于21世纪的密码算法标准-AES算法(Advanced encryptionStandard)。
●加密算法
根据密钥特点,密码体制分为对称和非对称密码体制两种,即私钥密码体制和公钥密码体制,公钥如RSA体制,ElGamal体制等等。私钥如DES,RC5等体制。密码又可分为分组密码和序列密码(流密码)。密码学界认为,一个保密系统,应该是只有在密钥不知道,而密码算法公之于众的情况下,系统有好的抗破译能力,这才是一个好的保密系统,如DES,3DES等密码技术。
●混沌技术
混沌现象是20世纪60年代发现的,被认为是继牛顿定律和相对论之后的最重要发现,改变了人们对客观事务的认识方法。混沌至今还没有一个普遍被人们接受的定义。不同的定义从不同的角度看问题,尽管它们在逻辑上并不一定等价,但本质是一致的。混沌具有随机系统的特征,又具有很强的确定性和规律性,决非一片混乱,形似紊乱而实则有序。
混沌的典型特征包括以下几个方面
(1)非线性,线性系统不可能产生混沌。
(2)确定性,系统状态的演变必须遵循确定的准则。
(3)对初值敏感相依性,初始状态微小变化会导致系统轨道演变以指数速度分离。
(4)存在奇异吸引子,来自于轨道的无穷伸缩、折叠的奇异吸引子是轨道不稳定和耗散系统容积收缩两种系统内在性质同时发生的现象,存在于有限的区域内,空间结构十分复杂。
(5)长期不可预测性,由于系统对初值敏感相依性,导致系统的长期行为类似布朗运动,只能用概率论的方法对系统长期行为进行描述,而不能进行确定论的描述。
(6)自相似结构,混沌区中有周期窗口,窗口内细分有混沌区域,这种结构无穷次重复,并具有各态历经和层次分明的特性。同时,混沌运动具有各种尺度,而无特定尺度,这些统称为自相似结构。
(7)无序中的有序性,混沌运动中周期点集的稠密性,决定了系统内部高低频率成分竞争的有序性。
大量的实际和理论分析,混沌具有类随机性,但混沌又是一个确定的系统。它的这种确定的不确定性可以产生伪随机信号或类噪声信号,并能准确的控制。同时混沌序列还具有理论无周期性、初值敏感性、需要传递的参数少等特点。因此,在混沌在直接扩频通信、扩频调频通信、保密通信、联想记忆、优化设计、信号检测、模式识别等领域混沌已得到越来越广泛的应用。
●伪随机码序列
伪随机码在通信和密码中起着极为关键的作用,由于在实际中,纯随机码难以实现,因此人们采用各种易于实现的伪随机码方法,包括以m序列为代表的线性反馈移位寄存器(LFSR)伪随机码序列方案,如Gold、M、GMW、RS码序列等。由于近代电子对抗、保密通信和信息安全的发展,许多人士认为,LFSR序列的复杂度低,其安全性已难有保障。已知LFSR码序列线性复杂度的大小约为码长的一半,增大其复杂度就要增加码长、增加移位寄存器的数目,而这就会加大硬件实现的难度,这是第一个缺点。缺点之二是这类码的码源数量有限,这对伪随机序列是不利的。其三是因为复杂度低,这类码的抗破译能力差,不易对抗密码和保密通信的跟踪与干扰。而混沌伪随机序列可以替代LFSR序列。
●混沌保密通信
作为一种类随机的混沌现象在上世纪六十年代首先被气象学家E.N.洛仑兹发现,嗣后用非线性差分方程映射产生的混沌数字序列在物理学界被广泛地作过研究;用蔡氏电路产生的电模拟混沌信号亦首次在八十年代初见诸报导,这导致了混沌电子学的蓬勃发展。此后我们首先建议在工程中用Logistic映射产生的类随机序列来取代m序列,因为前者统计特性优良,产生容易而码源远大于后者。在九十年代初,美国海军实验室的Pecora和Carroll报导了有关混沌可以同步从而受控的结果,这就为混沌电子学理论研究跨入工程应用铺平了道路。混沌电子学的工程应用首先是实现了混沌保密通信,UC Berkeley的蔡少棠和MIT的Oppenheim在1992年差不多同时报导了用混沌同步机制实现保密通信的结果,此后国内外在混沌保密通信方向上出现了数以百计的期刊文献。混沌电子学的另一个引人注目的实际应用是在雷达目标识别方向上,S.Haykin教授和李晓波将海杂波生成的雷达反射波视为混沌信号,利用神经网络及混沌动力学重构的方法,成功地辨识了淹没在海杂波中的雷达探测目标此后混沌在雷达工程及电子对抗方面的应用研究亦相继出现。
在混沌保密通信的研究成果逐渐为世人公认的同时,混沌伪随机码的研究也逐步进入实用化阶段,国内外在这方面的研究自九十年代以来持续不断,无论是我们的研究或国外的报导,都已可断定:用混沌伪随机码取代常规的LFSR码是可行的。
●Rijndael密码技术
Rijndael密码算法是美国国家标准技术研究所(NIST)于2000年公布的AES算法。Rijndael密码算法的原形是Square算法,它的设计策略是宽轨迹策略(Wide Trail Strategy)。这种策略是针对差分分析和线性分析提出的。Rijndael算法是一个迭代分组密码,其分组长度和密钥长度都可变。分组长度和密钥长度可以独立地指定为128/192/256比特,相应的轮数r为10/12/14。我们采用的分组长度和密钥长度都选用128比特,而r=10。
加密过程:X是Rijndael密码的128比特输入,Y是128比特的输出,则Rijndael密码可用下式表示:
其中“o”表示置换的复合,K1,K2,…,Kr+1是r+1个子密钥,由种子密钥K通过密钥扩展程序产生,且种子密钥为128/192/256比特时,密钥扩展程序不同。
是一个置换,对 称Addroundkey变换
是一个置换,Shiftrow变换,X是T的输入,首先,把X分成16个字节,即
X=(X00,X01,X02,X03,X10,X11,X12,X13,
X20,X21,X22,X23,X30,X31,X32,X33)
输出
Y=T(X)=(X00,X01,X02,X03,X13,X10,X11,X12,
X22,X23,X20,X21,X31,X32,X33,X30)
是一个置换,称Mixcolumn变换,X是T的输入,首先,把X分成16个字节,即:
Y=∏(X)=(Y00,Y01,Y02,Y03,Y10,Y11,Y12,Y13,Y20,Y21,Y22,Y23,Y30,Y31,Y32,Y33)
其中
是一个置换,称Bytesub变换,称S它是由16个F2 8上的S-盒并置构成,S=LoF,F是有限域F2:上的乘法逆,即F(x)=X-1(约定F(0)=0),L是GF(2)域上的仿射变换,定义如下:
从Rijndael密码的加密过程来看,它其实是一个复杂的非线性变换,具体内容请参考文献。
本发明的目的是充分结合混沌密码技术和Rijndael密码算法的优点,设计出一种用于数据加密、保密通信和信息安全的混沌密码序列(ChaoticCipher Sequence,简称CCS)发生器,使其具有如下的特点:
(1)良好的随机性;
(2)系统的安全保密性强;
(3)密钥易于分配,保管,更换简单;
(4)有良好的汉明相关特性;
(5)有良好的序列点间隔特性
(6)可用序列多;
(7)有尽可能高的复杂度;
(8)序列线性不可预测性充分大。
(9)极强的抗破译和反跟踪能力
(10)产生简单、快速;
(11)便于同步,易于产生。
显然,它既不同于LFSR序列,只是作为一种一般的序列发生器,也不同于Rijndael算法,只是作为一种加密方法。而是集合了混沌技术、LFRS和Rijndael高强度的密码算法的优点,可广泛用于数据加密、保密通信和信息安全之中。
发明内容
本发明设计的混沌密码序列(CCS)发生器的原理框图如图1所示。
为了便于叙述,整个系统不妨分为前端和后端,前端为LFSR序列加扰有限精度实现混沌系统,后端为密码算法部分;密码系统采用输出-分组反馈基本工作模式(OFM)。前端作为后端的驱动部分,为后端提供了统计性能好的序列;后端作为前端输出的非线性组合部分,在不破坏前端序列性能的前提下,保证了输出的CCS的高复杂度,并且使前端的序列的周期增大。
反馈寄存器R提供作为密钥K所决定的分组加密算法E的输入,R在每次密码迭代中缓存分组算法的分组长度为Nb bits的0-1序列,初始比特I0无需保密,但需随消息更换,收发双方必须选用同一个I0,I0由下式描述:
I0={rand(7bits),zeros((Nb-7)bits)}
R每次缓存的比特由前端输出的序列按Nb分组和密码算法输出组反馈的Nb位数异或而成。在第n次迭代中,先计算EK(Rn-1),然后将输出组反馈的同时输出最低7位(用7sb(Ek(Rn))表示)作为第n次迭代输出的混沌密码序列CCS。整个序列流的生成中,反馈是在内部进行的,所以这一部分无误码。
输入:参数:Perturbm(CG)(chaotically generated的缩写);
密钥:分组密码的种子密钥K,CG的初始值a0也可选为为密钥。
反馈: 其中R0=I0;
输出:7sb(Ek(Rn)),n=1,2,
我们采用Logistic映射来产生混沌序列,但也可采用其它具有类似均匀概率密度的混沌序列如Tent-map等,Logistic映射由下式给出:
x∈(-1,1) (1-1)
轨道点的概率密度是
x∈(-1,1) (1-2)
将式(1-1)产生的实值混沌序列变换成GF(2)域中的二进制序列:
an=(sgn(xn)+1)/2,n=0,1,2,…,N-1 (1-3)
其中sgn(.)是符号函数。
对LFSR序列,我们采用m序列(也可采用Golden序列,M序列等等)
CCS发生器的实现硬件整体框图如图2所示:Logistic混沌序列的初始值由输入确定,同时输入确定其输出的起始位得到Logistic的输出序列,经过用m序列的加扰后输出到采用OFM方式的计算Rijndael的电路,并采用一定的密钥,从而最后输出CCS序列和时钟。
输入为:Logistic映射的初始值和起始位。
m序列移位寄存器的初值
反馈移位寄存器的初值
Rijndael的密钥(含变换层数)
时钟输入
输出为:输出时钟
CCS数据
对CCS发生器的Logistic映射混沌序列的实现,可采用电路实现与软件实现两种
其硬件实现框图如图3:先输入Logistic映射的初始值,同时输入时钟序列,经过乘法器和比较器,得到二进制或多进制的序列,该序列通过输入数据确定最终的输出起始位,从而得到混沌序列和时钟。
Logistic映射混沌序列采用软件实现的流程图如图4:输入Logistic映射的初始值和作为输出序列的起始位,计算Logistic函数并二进制,当满足输出起始位的要求时,从而可输出混沌序列。
对Rijndael算法,可采用PLD的可编程逻辑器件实现,其流程图如图5:输入密钥,Rijndael算法层数N和混沌序列an,在分别计算Bytesub变换、Shiftrow变换、Mixcolumn变换和Addroundkey变换N次,在分别计算Bytesub变换、Shiftrow变换和Addroundkey变换一次后输出。
而移位寄存器和异或运算无论硬件或软件实现都是公知技术,十分简单,这里不繁述。
这样,根据图1-图5,可实现完整的CCS发生器。
以下,就本发明---混沌密码序列发生器(CCS)的统计特性、不可预测、周期性、汉明相关性、复杂度和高保密抗破译等性能作出全面的论证和分析:
1.随机特性
目前,公认的衡量序列随机性的最主要的统计特性有三条标准,即Golomb提出的0-1序列的随机性三公设:
(1)一个周期中0与1的数目基本平衡。
(2)在长度为r的周期内,长度为c的游程个数占游程总数的1/2c,且相同长度的0-游程与1-游程的数目基本平衡。
(3)周期为r的自相关函数为二值函数。定义自相关函数
其中nτ表示序列{si}和其后移τ位所得序列{si+τ}相同位的数目,dτ表示不同位的数目。
针对CCS,下面进行分别讨论。
A.平衡特性
Logistic映射(1-1)生成的分割是以x=0为分界点的二进制分割,由式(1-3)产生的0-1序列是二元Bernoulli序列,这是因为Logistic映射的测度熵为log2 q=1(这里q=2)。那么CCS的平衡特性就要考虑后端的密码系统了。因为Rijndael密码的圈变换由三个不同的可逆一致变换组成,称之为层,不同层的选择是建立在宽轨迹策略的应用基础之上的。在宽轨迹策略中,每层有它自己的函数,其中线性混合层确保了多圈之上的高度扩散,非线性层确保了分散的非线性性质,这些正好是流/杂凑模式中对状态更新变换的要求。现在我们考察只有一个活动字节的一个Λ-集,我们将跟踪活动字节在经历9圈过程中的位置变化。第1圈的MixColumn将这一活动字节转变成一个整列的活动字节(因为MixColumn变换中多项式系数的选取使得枝数:minx≠0{weight(x)+weight(MixColumn(x))}达到上界为5),该列的4个活动字节通过第2圈的ShiftRow扩散到4个不同的列,第2圈的MixColumn接着将这一活动特性转变成只有活动字节的4列,这样把一个Λ-集保持到第3圈的MixColumn的输入,同理,依此类推,Λ-集可保持到第9圈的MixColumn的输入。
由于这一Λ-集(事实上任意Λ-集)的字节(记为a)会遍历所有可能的值,因此,a在该Λ-集上是平衡的,我们有:
因此,第10圈的输入时刻的所有字节是平衡的,这一平衡性一般因接下来的ByteSub(字节代替)的使用而受到破坏。
不失一般性,我们若取分组长度和密钥长度都为128bits,则第10圈就为最后一圈,因而,第10圈的每个输出字节只与第10圈的一个输入字节有关。令a是其输入,b是其输入以及k是第10圈的圈密钥,则我们有:
由于Rijndael密钥调度具有高的扩散性和非线性性质,因此在正确的密钥下,ai,j也是平衡的。故所得CCS应是均匀分布的。
B.游程分布
值得指出,CCS具有同真正的随机序列完全一致的游程分布期望值。
定理1在长为N的CCS中,长度为c的游程出现数占总游程数比例的数学期望为1/2c。
证明:由本小节第1段可知CCS在显著水平取0.05时均匀分布的假设成立,所以当N→∞时,“0”,“1”在序列中出现的概率均收敛于1/2。在序列中出现“1”的位置的后面再连续出现c-1个“1”的概率为1/2c-1。由于长度为c的1-游程的前后元素必为“0”,而出现“0”的概率也收敛于1/2,因此长度为c的1-游程出现数对序列的长度而言所占比例的数学期望为 同理,长度为c的0-游程出现数所占比例的数学期望也为1/2c+2。因此,长度为c游程出现数对序列的长度而言所占比例的数学期望为1/2c+1。而总游程数占序列长度比例的数学期望为 那么长度为c的游程占总游程数比例的数学期望为
注1:本定理证明时忽略了序列起始段的情况。
注2:本定理的证明过程也揭示出对于任意长度的序列,0-游程的个数和1-游程的个数基本平衡这一点。
C.相关性
在扩频等通信中,通常要求伪随机序列具有良好的自相关特性,即自相关峰值尖锐,在一些码分多址系统中,通常用长度相同的不同序列作为区分用户的地址码,这时,除要求伪随机序列具有良好的自相关特性外,还要求其互相关特性和部分相关特性好,即互相关和部分相关值接近于零,便于接收端准确地把信号检测出来,并减小检测差错。
给定一个序列
{xi}=(…x-2,x-1,x0,x1,x2ΛxK-1,xK,xK+1)
其中一个周期的序列为
(x0,x1,x2…xK-1)
序列的自相关函数为
给定两个长度相等的序列{xi}和{yi},互相关函数为
序列的部分相关函数是两个序列发生部分重叠,并在此重叠的范围内进行相关运算而得到的结果。如果两个序列是同一种序列则称为部分自相关;如果两个序列是不同的序列,则称为部分互相关。由于在实际通信中通常所用的是序列的一部分,且整体相关性好并不能表明部分相关性好,因此序列的部分相关性更为重要。我们在这一小节也只讨论二进制CCS序列的部分相关特性。序列的部分相关函数其实就是序列{xi}与{yi+τ}在长度为N内对应位相同的位数与对应位相异的位数之差的一个参数,因而它是序列随机性的一个指标。对于任一整数τ,0≤τ≤N-1,{xi}+{yi+τ}在长度为N内出现“0”的数目与出现“1”的数目之差,正好是序列{xi}与{yi+τ}在长度为N内对应位相同的位数与对应位相异的位数之差。
由于混沌的内在随机性和Rijndael密码在设计原则上确保了多圈之上的高度扩散,因此二进制CCS是二元Bernoulli序列,而且由混沌对初值的敏感依赖性和Rijndael密码对种子密钥的敏感性知,{xi}与{yi}也是相互独立的,因此{xi}+{yi+τ}在长度为N内出现“0”的次数与出现“1”的次数均服从二项分布,序列中“0”、“1”的出现概率均收敛于1/2。由著名的De Moivre-Laplace积分极限定理可知,当N充分大时,二项分布的极限分布服从N(Np,Npq)的正态分布,其中q=1-p,即有渐近公式
这里数学期望μ=Np,方差σ2=Npq,x为在长度为N的序列内出现“0”的次数或出现“1”的次数。
由以上分析可知{xi}+{yi+τ}在长度为N内出现“0”的次数与出现“1”的次数的期望均为N/2,因此二进制CCS的部分自相关旁瓣和部分互相关值接近于0。
2.概率意义上的不可预测性
我们在上节讨论了CCS满足Golomb提出的度量序列随机性的三条标准,然而,满足上述三条标准的周期序列还不能满足我们对CCS在安全方面的要求,这种安全性是寓于随机性之中的。一个二元随机序列a0,a1,a2,…可视作一个二元对称信源(BBS)的输出,它的随机性包含着当前输出位an对以前输出段a0,a1,…,an-1的完全独立性,即H(an|a0,a1,Λ,an-1)=H(an),对一切n≥1。故在已知a0,a1,Λ,an-1的条件下,an仍是不可预测的。对CCS,我们设a0,a1,Λ,an-1在序列中出现的概率为m,计算条件熵为
H(an|a0,a1,…,an-1)
=-{p(an=1|a0,a1,…,an-1)log2p(an=1|a0,a1,…,an-1)}
-{p(an=0|a0,a1,…,an-1)log2p(an=0|a0,a1,…,an-1)}
而
故
现在我们来计算熵
所以可得
H(an|a0,a1,…,an-1)=H(an)
熵(entropy)是度量不确定性的一个数学测度,这样我们从熵的角度说明了CCS的不可预测性。但是现在随着预测学的研究,我们所设计的CCS还须经受各种预测方法的检验。我们确实意识到不可能对不知道的事情作不经思索的断言。
3.序列点间隔
在某些工程应用中(如信道编码的交织器设计、跳扩频通信的跳频频隙等)要求在相邻的间隔大于某个给定的值。
定义1I如果序列X={x(i)}对于所有的i均满足
|x(i+1)-x(i)|≥d+1,
则称序列为宽间隔序列,间隔为d。
我们用CCS二元序列{xn}来产生间隔数为q的伪随机序列X=(X0,X1,,XN-1),其中N是任意的序列长度,Xn在整数集合{0,1,2,,q-1}中取值。该方法每隔log2q次迭代对CCS二元序列进行量化产生一个新的点。
定理3设{xn}是CCS二元序列,{Xn=Q(xδn)}是q-ary的间隔序列,q是2的幂,则当δ=log2 q时,{Xn}是Bernoulli随机序列。
证明:由{xn}的分布均匀性可知{Xn}在{0,1,2,…,q-1}上均匀分布。而Xn+1是将xδn迭代log2 q次量化得到的。由前面讨论的H(xn|x0,x1,Λ,xn-1)=H(xn)可知,Xn+1以1/q的概率等概地在集合{0,1,2,…,q-1}中取值,对k=2,3,…,N,且有
式中0≤i1≤…≤ik≤N-1,jk∈{0,1,2,…,q-1}。可见Xn,n=0,1,2,…,N-1是统计独立的,故{Xn}是Bernoulli随机序列。
设{Xn}的序列点间隔为d,当d=0时,点间隔的分布为 当1≤d≤q-1时,点间隔的分布为
于是点间隔的期望为
(1-5)
而点间隔小于某一规定值D的概率为
(1-6)
从(1-6)式可知增大q总可以使此概率减小。因此CCS的点间隔特性是比较好的。
4.汉明相关性
跳频通信系统中,用户之间的相互干扰发生在两个以上的用户同时使用同一个频率的时候,因此衡量跳频序列性能的最好测度是汉明相关性,定义如下:
定义2频隙集合GF(q)上长度为N的两个序列Su={su(j)}和Sv={sv(j)}
在
相对时延τ(0≤τ≤N-1)时的汉明相关函数为
式中,su(j),sv(j+τ)∈GF(q),j+τ以模N运算,且
特别,如果u=v,则称Hsusv(τ)为汉明自相关函数,否则称Hsusv(τ)为汉明互相关函数。
同时定义:
M(Su,Sv)=max{H(Su),H(Sv),H(Su,Sv)}。
汉明相关也称为击中次数、碰撞次数、重合次数等。
根据文献[11]关于给定频隙数目和序列长度条件下汉明相关的理论限,有如下引理
引理1对于GF(q)上长度为N=qM-1的任何两个序列Su和Sv,有
H(Su)≥qM-1-1,M(Su,Sv)≥qM-1
如果跳频序列族S的汉明自相关性能和互相关性能依等式达到上述两式,则称该跳频序列族具有最佳汉明相关性能。
由引理1可知,最佳汉明自相关和最佳汉明互相关的理论下限都约为[N/q]([.]表示取整数)。
定理4频隙集合GF(q)上长度为N的CCS,在相对时延τ(0≤τ≤N-1)时的汉明自相关和汉明互相关的期望值均为N/q,即
E(H(Su))=E(M(Su,Sv))=N/q
证明:文献[21]已证明,Rijndael密码不存在可预测的扩散率大于2-150的4圈和大于2-300的8圈差分轨迹,并且还不存在相关系数大于2-75的4圈线性轨迹以及大于2-150的8圈线性轨迹。此外,Rijndael密码的密钥调度具有高度的扩散性和非线性性。因此,当种子密钥在密钥空间遍历时,能导出任意指定的CCS{sn},其下一状态的取值是二项同分布的,而且它独立于{sn}及密钥,每一个频隙出现的的概率均收敛于1/q,因此CCS{sn}的汉明相关函数服从二项分布。由著名的De Moivre-Laplace积分极限定理可知,当N充分大时,二项分布的极限分布服从数学期望为Np的正态分布,由于p=1/q所以期望为Np=N/q,由此可得E(H(Su))=E(M(Su,Sv))=N/q。
可见,CCS的统计汉明自相关和互相关值达到了最佳汉明相关函数值的理论下限[N/q]([.]表示取整数)。
5.复杂度分析
随着研究的深入,人们不断找到破译不同伪随机序列的各种数学技巧,为了衡量不同伪随机序列抵抗各种破译技巧的能力,产生了复杂度的概念。可以说,统计特性描述了伪随机序列的表观随机性,而复杂度描述的是伪随机序列的内在随机性。下面我们分线性复杂度、非线性复杂度来分别讨论。
A.线性复杂度
序列的线性复杂度有两类:一类是整体线性复杂度,它是半无限周期序列的线性复杂度;另一类是局部线性复杂度,它是有限序列的线性复杂度。在实际应用中,所用伪随机序列总是有限长的,另一方面,大的整体线性复杂度并不能保证有大的局部线性复杂度。因此,局部线性复杂度比整体线性复杂度更为重要,这里我们介绍CCS的局部线性复杂度。
定义3F2上一个向量a(p)=(a1,a2,…,ap)(p为序列长度)的线性复杂度定义为
L(a(p))=min{n|存在F2上的n级LFSR生成a(p)}
如果a(p)=(a1,a2,…,ap)是二元随机向量,则相应的线性复杂度也是随机变量。由前面讨论可知,CCS二元跳频序列是独立等概的随机序列,可得其线性复杂度的数学期望值为
其中R2(p)=p(mod2)。
采用不同的混沌初值和不同的种子密钥,表5-1给出了用Berlekamp-Massey算法计算得到的CCS的线性复杂度,从表中数据结果来看,CCS的线性复杂度约为序列长度的一半。
B.非线性复杂度
非线性复杂度也是衡量跳频序列安全性的重要指标,主要侧重于序列的非线性性,也就是说要求跳频序列具有不可逆推性,它直接决定了跳频序列的抗破译能力。
设a(p)=(a1,a2,…,ap)是长度为p的二元序列,ai∈F2,对于映射 如果
ai=f(ai-m,ai-m+1,…,ai-1) i=m+1,m+2,…,p
则称f(x1,…,xm)生成a(p)。
定义a(p)的非线性复杂度为
NLC(a(p)=min{m:存在m元映射f(x1,…,xm)生成a(p)}
对于F2上的二元随机序列x(p)=(x1,x2,…,xp),当x(p)取不同的a(p)时, 将得到不同的非线性复杂度NLC(a(p),称
为随机序列x(p)平均非线性复杂度。
由于CCS二元跳频序列是独立等概的随机序列,则有
6.CCS的抗破译及反跟踪能力
CCS在保持了混沌序列的一些良好性能的前提下,还大大改善了抗破译能力,Rijndael密码的密钥长度为128/192/256比特,密钥空间最大为2256>1077个,破译序列难度极大。由于Rijndael算法的原形是Square算法,它的设计策略是宽轨迹策略,这种策略是针对差分分析和线性分析提出的,此外,文献[21]指出对于6圈或更多圈的Rijndael密码,截段差分攻击法不比穷举密钥攻击快,对于7圈或更多圈的Rijndael密码,Square攻击不比穷举密钥攻击快,并且Rijndael密码S-盒在GF(28)的复杂表达式防止了对2圈或3圈以上的插入攻击,Rijndael密码的密钥调度具有高的扩散性和非线性性,这使得相关密钥攻击不可能获得成功。总之,对Rijndael密码最有效的密钥恢复攻击是穷举密钥攻击,穷举密钥的期望尝试次数与密码密钥的长度有关,即使使用最小的密钥长度128比特,密钥空间为2128>3.4×1038个,要搜索一个密钥,也要执行2127次Rijndael密码。如果密钥搜索机的每个芯片每秒能测试108个密钥,那么一个由6000个芯片组成的计算框架昼夜工作来搜索一个Rijndael密码密钥,至少也得8.99×1018年才能完成,并且制造以上所假设的密钥搜索机耗资惊人。可见,即使在敌方已知Rijndael算法、混沌的初值、参数以及混沌模型的前提下,破译CCS也是几乎不能实现的。
鉴于时间序列预测、相空间重构等项技术的新近进展,已经有多种预测、跟踪混沌序列的方法见诸公开文献。经我们的研究,这些方法也可成功地用来跟踪用m序列加扰的混沌序列,但却不能跟踪我们的CCS。
从以上的证明和分析得出,CCS具有良好的随机性;系统的安全保密性强;密钥易于分配,保管,更换简单;有良好的汉明相关特性;有良好的序列点间隔特性;可用序列多;有高的复杂度;序列线性不可预测性充分大;产生简单、快速;便于同步,易于产生;有极强的抗破译、反跟踪的能力,因此,可广泛用于数据加密、信息安全和保密通信等领域。
由于CCS具有伪随机特性,因此又可以广泛引用于跳频通信和直扩通信中作为跳频码或扩频码使用,如跳频电台,3G和4G通信等等。也可作为伪随机序列用在信源编码,信道编码、信息调制等通信中的各个环节和其它需要随机序列并保密的地方。
CCS是密码序列,因此可广泛用于各种安全信息之中,如商业密码,电子商务,数字签名、数字认证、数字水印等。