① 如何实现matlab 中基于混沌序列的文本加密。。。谢谢
如何实现matlab 中基于混沌序列的文本加密。。。谢谢
x(1)=0.1;
for i = 2 : 1000
x(i)=4*x(i-1)*(1-x(i-1));
end
L=1000;
NFFT = 1024;
Y = fft(x,NFFT)/L;
f = 1/2*linspace(0,1,NFFT/2+1);
plot(f,2*abs(Y(1:NFFT/2+1)))
title('功率谱')
xlabel('Frequency (Hz)')
ylabel('|Y(f)|')
百世岁月当代好 千古江山今朝新 万象更新
② 基于混沌影射的文件加密器的设计
这个比较难 你先得了解密码学 密码算法 应用
我建议你去一些相关论坛看看下载些资料 或者你可以发邮件给我要 我这里有一些IDEA RSA HASH MD5 等一些源程序 感兴趣可以给我信息 我的邮箱[email protected]
比如这些代码
# Begin Project
# PROP AllowPerConfigDependencies 0
# PROP Scc_ProjName ""
# PROP Scc_LocalPath ""
CPP=cl.exe
RSC=rc.exe
!IF "$(CFG)" == "En Decrypt - Win32 Release"
# PROP BASE Use_MFC 0
# PROP BASE Use_Debug_Libraries 0
# PROP BASE Output_Dir "Release"
# PROP BASE Intermediate_Dir "Release"
# PROP BASE Target_Dir ""
# PROP Use_MFC 0
# PROP Use_Debug_Libraries 0
# PROP Output_Dir "Release"
# PROP Intermediate_Dir "Release"
# PROP Target_Dir ""
# ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /c
# ADD CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /c
# ADD BASE RSC /l 0x804 /d "NDEBUG"
# ADD RSC /l 0x804 /d "NDEBUG"
BSC32=bscmake.exe
# ADD BASE BSC32 /nologo
# ADD BSC32 /nologo
LINK32=link.exe
# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /machine:I386
# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /machine:I386
!ELSEIF "$(CFG)" == "En Decrypt - Win32 Debug"
# PROP BASE Use_MFC 0
# PROP BASE Use_Debug_Libraries 1
# PROP BASE Output_Dir "Debug"
# PROP BASE Intermediate_Dir "Debug"
# PROP BASE Target_Dir ""
# PROP Use_MFC 0
# PROP Use_Debug_Libraries 1
# PROP Output_Dir "Debug"
# PROP Intermediate_Dir "Debug"
# PROP Target_Dir ""
# ADD BASE CPP /nologo /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /GZ /c
# ADD CPP /nologo /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /GZ /c
# ADD BASE RSC /l 0x804 /d "_DEBUG"
# ADD RSC /l 0x804 /d "_DEBUG"
BSC32=bscmake.exe
# ADD BASE BSC32 /nologo
# ADD BSC32 /nologo
LINK32=link.exe
# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /debug /machine:I386 /pdbtype:sept
# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /debug /machine:I386 /pdbtype:sept
!ENDIF
# Begin Target
# Name "En Decrypt - Win32 Release"
# Name "En Decrypt - Win32 Debug"
# Begin Group "Source Files"
# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat"
# Begin Source File
SOURCE=.\des.cpp
# End Source File
# Begin Source File
SOURCE=".\Encrypt-Decrypt 01.cpp"
# End Source File
# Begin Source File
SOURCE=.\key.cpp
# End Source File
# Begin Source File
SOURCE=.\stdafx.cpp
# End Source File
# End Group
# Begin Group "Header Files"
# PROP Default_Filter "h;hpp;hxx;hm;inl"
# Begin Source File
SOURCE=.\des.h
# End Source File
# Begin Source File
SOURCE=.\global.h
# End Source File
# Begin Source File
SOURCE=.\stdafx.h
# End Source File
# End Group
# Begin Group "Resource Files"
# PROP Default_Filter "ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe"
# End Group
# End Target
# End Project
③ 忆阻器混沌加密系统什么时间被提出的
在如今的信息时代中,计算机已成为人们必不可少的工具,但随之产生而来的信息安全问题已成为一个重要的挑战性课题。混沌对参数和初始值的极度敏感性使其具有不可预测性,这使得它具有传统密码的优良特性,混沌密码学已成为一种极具潜力的新型密码设计方法。忆阻器是一个具有记忆特性的非线性电阻,除在非遗失性存储器、人工神经网络等领域有着重要的应用前景外,它还能构成性能优良的非线性振荡电路。基于以上背景,本文研究复杂混沌系统的设计方法,构造了忆阻器混沌振荡电路和含有自然指数项的混沌系统,并利用它们产生的良好伪随机序列,设计了一个可以对计算机以及与计算机相连接的移动硬盘、U盘等存储设备中的文件进行加密的密码系统。本文主要的研究内容如下。 (1)基于惠普实验室的TiO2忆阻器建立了磁控记忆电导的数学模型,尝试利用两个TiO2忆阻器设计实现了一种忆阻器混沌振荡电路,对其进行了动力学分析,包括平衡点及其稳定性、耗散性、李氏指数和分岔图,对其进行了MATLAB仿真和DSP数字化实现。为了产生复杂的混沌序列,还设计了一个含有双指数项的混沌系统,对其进行了分析、仿真和数字化实现,与单指数混沌系统相比它较具有更复杂的动力学特性。 (2)研究了连续混沌系统的离散量化方法,建立了连续混沌系统的离散数学模型,分别利用门限阈值法和位抽取法对构造的构造的TiO2忆阻器混沌系统和双指数混沌系统进行量化,获得了混沌数字伪随机序列
④ 怎么用MATLAB实现对文本的混沌加密呀基于logistic映射的,大虾们,亲们,帮帮我吧~~~~~~~~~~~~~
% x(n+1)=1-ux(n)^2 %混沌的迭代表达式
% u in (0,2];
% x in (-1,1);
clear all
u=linspace(0,2,200); %u在0到2之间均匀取200个点
for k=1:200 %循环控制,迭代200次
x0=0.42212; %对x0赋初值
for p=1:200 %嵌套循环200次
xn=1-u(k)*x0*x0; %迭代控制语句
if p<100 %迭代100次以前为0
plot(0,0)
else
hold on
plot(u(k),xn,'.','Markersize',2) %当迭代大于100次时,每迭代一次,在图上将迭代的x值画出
end
x0=xn; %迭代结果为下一次迭代赋初值
end
end
⑤ 用51单片机来实现语音混沌加密,求Logistic混沌密钥序列程序
这个范例你看看适不适用
http://arxiv.org/pdf/1112.5791.pdf
Visualizing the logistic map with a microcontroller
Juan D. Serna∗
School of Mathematical and Natural Sciences
University of Arkansas at Monticello, Monticello, AR 71656
Amitabh Joshi†
Department of Physics
Eastern Illinois University, Charleston, IL 61920
December 25, 2011
⑥ 混沌算法是什么
混沌算法是指混沌序列加密算法 。该算法首先用单向Hash函数把密钥散列为混沌映射的迭代初值 ,混沌序列经过数次迭代后才开始取用 ;然后将迭代生成的混沌序列值映射为ASCII码后与地图数据逐字节进行异或运算,考虑到实际计算中的有限精度效应 ,随步长改变混沌映射参数,采用实际的地图数据 。
⑦ 量子加密与混沌加密
混沌加密没有听说过,不过了解过混沌的概念,混沌和量子加密一丁点关系也没有。混沌是一种数学现象,而量子加密的基础量子力学中的量子纠缠态
⑧ 目前常用的加密解密算法有哪些
加密算法
加密技术是对信息进行编码和解码的技术,编码是把原来可读信息(又称明文)译成代码形式(又称密文),其逆过程就是解码(解密)。加密技术的要点是加密算法,加密算法可以分为对称加密、不对称加密和不可逆加密三类算法。
对称加密算法 对称加密算法是应用较早的加密算法,技术成熟。在对称加密算法中,数据发信方将明文(原始数据)和加密密钥一起经过特殊加密算法处理后,使其变成复杂的加密密文发送出去。收信方收到密文后,若想解读原文,则需要使用加密用过的密钥及相同算法的逆算法对密文进行解密,才能使其恢复成可读明文。在对称加密算法中,使用的密钥只有一个,发收信双方都使用这个密钥对数据进行加密和解密,这就要求解密方事先必须知道加密密钥。对称加密算法的特点是算法公开、计算量小、加密速度快、加密效率高。不足之处是,交易双方都使用同样钥匙,安全性得不到保证。此外,每对用户每次使用对称加密算法时,都需要使用其他人不知道的惟一钥匙,这会使得发收信双方所拥有的钥匙数量成几何级数增长,密钥管理成为用户的负担。对称加密算法在分布式网络系统上使用较为困难,主要是因为密钥管理困难,使用成本较高。在计算机专网系统中广泛使用的对称加密算法有DES和IDEA等。美国国家标准局倡导的AES即将作为新标准取代DES。
不对称加密算法不对称加密算法使用两把完全不同但又是完全匹配的一对钥匙—公钥和私钥。在使用不对称加密算法加密文件时,只有使用匹配的一对公钥和私钥,才能完成对明文的加密和解密过程。加密明文时采用公钥加密,解密密文时使用私钥才能完成,而且发信方(加密者)知道收信方的公钥,只有收信方(解密者)才是唯一知道自己私钥的人。不对称加密算法的基本原理是,如果发信方想发送只有收信方才能解读的加密信息,发信方必须首先知道收信方的公钥,然后利用收信方的公钥来加密原文;收信方收到加密密文后,使用自己的私钥才能解密密文。显然,采用不对称加密算法,收发信双方在通信之前,收信方必须将自己早已随机生成的公钥送给发信方,而自己保留私钥。由于不对称算法拥有两个密钥,因而特别适用于分布式系统中的数据加密。广泛应用的不对称加密算法有RSA算法和美国国家标准局提出的DSA。以不对称加密算法为基础的加密技术应用非常广泛。
不可逆加密算法 不可逆加密算法的特征是加密过程中不需要使用密钥,输入明文后由系统直接经过加密算法处理成密文,这种加密后的数据是无法被解密的,只有重新输入明文,并再次经过同样不可逆的加密算法处理,得到相同的加密密文并被系统重新识别后,才能真正解密。显然,在这类加密过程中,加密是自己,解密还得是自己,而所谓解密,实际上就是重新加一次密,所应用的“密码”也就是输入的明文。不可逆加密算法不存在密钥保管和分发问题,非常适合在分布式网络系统上使用,但因加密计算复杂,工作量相当繁重,通常只在数据量有限的情形下使用,如广泛应用在计算机系统中的口令加密,利用的就是不可逆加密算法。近年来,随着计算机系统性能的不断提高,不可逆加密的应用领域正在逐渐增大。在计算机网络中应用较多不可逆加密算法的有RSA公司发明的MD5算法和由美国国家标准局建议的不可逆加密标准SHS(Secure Hash Standard:安全杂乱信息标准)等。
加密技术
加密算法是加密技术的基础,任何一种成熟的加密技术都是建立多种加密算法组合,或者加密算法和其他应用软件有机结合的基础之上的。下面我们介绍几种在计算机网络应用领域广泛应用的加密技术。
非否认(Non-repudiation)技术 该技术的核心是不对称加密算法的公钥技术,通过产生一个与用户认证数据有关的数字签名来完成。当用户执行某一交易时,这种签名能够保证用户今后无法否认该交易发生的事实。由于非否认技术的操作过程简单,而且直接包含在用户的某类正常的电子交易中,因而成为当前用户进行电子商务、取得商务信任的重要保证。
PGP(Pretty Good Privacy)技术 PGP技术是一个基于不对称加密算法RSA公钥体系的邮件加密技术,也是一种操作简单、使用方便、普及程度较高的加密软件。PGP技术不但可以对电子邮件加密,防止非授权者阅读信件;还能对电子邮件附加数字签名,使收信人能明确了解发信人的真实身份;也可以在不需要通过任何保密渠道传递密钥的情况下,使人们安全地进行保密通信。PGP技术创造性地把RSA不对称加密算法的方便性和传统加密体系结合起来,在数字签名和密钥认证管理机制方面采用了无缝结合的巧妙设计,使其几乎成为最为流行的公钥加密软件包。
数字签名(Digital Signature)技术 数字签名技术是不对称加密算法的典型应用。数字签名的应用过程是,数据源发送方使用自己的私钥对数据校验和或其他与数据内容有关的变量进行加密处理,完成对数据的合法“签名”,数据接收方则利用对方的公钥来解读收到的“数字签名”,并将解读结果用于对数据完整性的检验,以确认签名的合法性。数字签名技术是在网络系统虚拟环境中确认身份的重要技术,完全可以代替现实过程中的“亲笔签字”,在技术和法律上有保证。在公钥与私钥管理方面,数字签名应用与加密邮件PGP技术正好相反。在数字签名应用中,发送者的公钥可以很方便地得到,但他的私钥则需要严格保密。
PKI(Public Key Infrastructure)技术 PKI技术是一种以不对称加密技术为核心、可以为网络提供安全服务的公钥基础设施。PKI技术最初主要应用在Internet环境中,为复杂的互联网系统提供统一的身份认证、数据加密和完整性保障机制。由于PKI技术在网络安全领域所表现出的巨大优势,因而受到银行、证券、政府等核心应用系统的青睐。PKI技术既是信息安全技术的核心,也是电子商务的关键和基础技术。由于通过网络进行的电子商务、电子政务等活动缺少物理接触,因而使得利用电子方式验证信任关系变得至关重要,PKI技术恰好能够有效解决电子商务应用中的机密性、真实性、完整性、不可否认性和存取控制等安全问题。一个实用的PKI体系还必须充分考虑互操作性和可扩展性。PKI体系所包含的认证中心(CA)、注册中心(RA)、策略管理、密钥与证书管理、密钥备份与恢复、撤销系统等功能模块应该有机地结合在一起。
加密的未来趋势
尽管双钥密码体制比单钥密码体制更为可靠,但由于计算过于复杂,双钥密码体制在进行大信息量通信时,加密速率仅为单钥体制的1/100,甚至是 1/1000。正是由于不同体制的加密算法各有所长,所以在今后相当长的一段时期内,各类加密体制将会共同发展。而在由IBM等公司于1996年联合推出的用于电子商务的协议标准SET(Secure Electronic Transaction)中和1992年由多国联合开发的PGP技术中,均采用了包含单钥密码、双钥密码、单向杂凑算法和随机数生成算法在内的混合密码系统的动向来看,这似乎从一个侧面展示了今后密码技术应用的未来。
在单钥密码领域,一次一密被认为是最为可靠的机制,但是由于流密码体制中的密钥流生成器在算法上未能突破有限循环,故一直未被广泛应用。如果找到一个在算法上接近无限循环的密钥流生成器,该体制将会有一个质的飞跃。近年来,混沌学理论的研究给在这一方向产生突破带来了曙光。此外,充满生气的量子密码被认为是一个潜在的发展方向,因为它是基于光学和量子力学理论的。该理论对于在光纤通信中加强信息安全、对付拥有量子计算能力的破译无疑是一种理想的解决方法。
由于电子商务等民用系统的应用需求,认证加密算法也将有较大发展。此外,在传统密码体制中,还将会产生类似于IDEA这样的新成员,新成员的一个主要特征就是在算法上有创新和突破,而不仅仅是对传统算法进行修正或改进。密码学是一个正在不断发展的年轻学科,任何未被认识的加/解密机制都有可能在其中占有一席之地。
目前,对信息系统或电子邮件的安全问题,还没有一个非常有效的解决方案,其主要原因是由于互联网固有的异构性,没有一个单一的信任机构可以满足互联网全程异构性的所有需要,也没有一个单一的协议能够适用于互联网全程异构性的所有情况。解决的办法只有依靠软件代理了,即采用软件代理来自动管理用户所持有的证书(即用户所属的信任结构)以及用户所有的行为。每当用户要发送一则消息或一封电子邮件时,代理就会自动与对方的代理协商,找出一个共同信任的机构或一个通用协议来进行通信。在互联网环境中,下一代的安全信息系统会自动为用户发送加密邮件,同样当用户要向某人发送电子邮件时,用户的本地代理首先将与对方的代理交互,协商一个适合双方的认证机构。当然,电子邮件也需要不同的技术支持,因为电子邮件不是端到端的通信,而是通过多个中间机构把电子邮件分程传递到各自的通信机器上,最后到达目的地。
⑨ 混沌密码学的分类和特征
混沌流密码研究
胡汉平1 董占球2
(华中科技大学图像识别与人工智能研究所/图像信息处理与智能控制教育部重点实验室
中国科学院研究生院,)
摘要:在数字化混沌系统和基于混沌同步的保密通信系统的研究中存在一些亟待解决的重要问题:数字化混沌的特性退化,混沌时间序列分析对混沌系统安全性的威胁等,已严重影响着混沌流密码系统的实用化进程。为此,提出了通过变换的误差补偿方法克服数字混沌的特性退化问题;构建混沌编码模型完成对混沌序列的编码、采样,由此得到满足均匀、独立分布的驱动序列;引入非线性变换,以抵抗对混沌流密码系统安全性的威胁。
关键词:混沌流密码系统;特性退化;非线性变换;混沌时间序列分析
1. 引言
随着以计算机技术和网络通信技术为代表的信息技术的不断发展和迅速普及,通信保密问题日益突出。信息安全问题已经成为阻碍经济持续稳定发展和威胁国家安全的一个重要问题。众所周知,密码是信息安全的核心,设计具有自主知识产权的新型高性能的密码体制是目前最亟待解决的重要问题。
混沌是确定性系统中的一种貌似随机的运动。混沌系统都具有如下基本特性:确定性、有界性、对初始条件的敏感性、拓扑传递性和混合性、宽带性、快速衰减的自相关性、长期不可预测性和伪随机性[1],正是因为混沌系统所具有的这些基本特性恰好能够满足保密通信及密码学的基本要求:混沌动力学方程的确定性保证了通信双方在收发过程或加解密过程中的可靠性;混沌轨道的发散特性及对初始条件的敏感性正好满足Shannon提出的密码系统设计的第一个基本原则――扩散原则;混沌吸引子的拓扑传递性与混合性,以及对系统参数的敏感性正好满足Shannon提出的密码系统设计的第二个基本原则――混淆原则;混沌输出信号的宽带功率谱和快速衰减的自相关特性是对抗频谱分析和相关分析的有利保障,而混沌行为的长期不可预测性是混沌保密通信安全性的根本保障等。因此,自1989年R.Mathews, D.Wheeler, L.M.Pecora和Carroll等人首次把混沌理论使用到序列密码及保密通信理论以来,数字化混沌密码系统和基于混沌同步的保密通信系统的研究已引起了相关学者的高度关注[2]。虽然这些年的研究取得了许多可喜的进展,但仍存在一些重要的基本问题尚待解决。
1.1 数字混沌的特性退化问题
在数字化的混沌密码系统的研究方向上,国内外学者已经提出了一些比较好的数字混沌密码系统及其相应的密码分析方法:文献[3]提出基于帐篷映射的加解密算法;文献[4]1998年Fridrich通过定义一种改进的二维螺旋或方形混沌映射来构造一种新的密码算法;文献[5,6]提出把混沌吸引域划分为不同的子域,每一子域与明文一一对应,把混沌轨道进入明文所对应的混沌吸引域子域的迭代次数作为其密文;在文献[7]中,作者把一个字节的不同比特与不同的混沌吸引子联系起来实现加/解密;文献[8]较为详细地讨论了通过混沌构造S盒来设计分组密码算法的方法;文献[9,10]给出了混沌伪随机数产生的产生方法;英国的SafeChaos公司将混沌用于公钥密码体制,推出了CHAOS+Public Key (v4.23)系统[11];等等。但是,这些数字混沌系统一般都是在计算机或其它有限精度的器件上实现的,由此可以将混沌序列生成器归结为有限自动机来描述,在这种条件下所生成的混沌序列会出现特性退化:短周期、强相关以及小线性复杂度等[12-15],即数字混沌系统与理想的实值混沌系统在动力学特性上存在相当大的差异。它所带来的混沌密码系统安全的不稳定性是困扰混沌密码系统进入实用的重要原因[16]。尽管有人指出增加精度可以减小这一问题所造成的后果,但其代价显然是非常大的。
1.2 对混沌流密码系统的相空间重构分析
目前,对混沌保密通信系统的分析工作才刚刚起步,主要方法有:统计分析(如周期及概率分布分析和相关分析等)、频谱分析(包括傅立叶变换和小波变换等)和混沌时间序列分析[17]。前两者都是传统的信号分析手段,在此就不再赘述,而混沌时间序列是近20年来发展的一门扎根于非线性动力学和数值计算的新兴学科方向。
从时间序列出发研究混沌系统,始于Packard等人于1980年提出的相空间重构(Phase Space Reconstruction)理论。众所周知,对于决定混沌系统长期演化的任一变量的时间演化,均包含了混沌系统所有变量长期演化的信息(亦称为全息性),这是由混沌系统的非线性特点决定的,这也是混沌系统难以分解和分析的主要原因。因此,理论上可以通过决定混沌系统长期演化的任一单变量的时间序列来研究混沌系统的动力学行为,这就是混沌时间序列分析的基本思想。
混沌时间序列分析的目的是通过对混沌系统产生的时间序列进行相空间重构分析,利用数值计算估计出混沌系统的宏观特征量,从而为进一步的非线性预测[18](包括基于神经网络或模糊理论的预测模型)提供模型参数,这基本上也就是目前对混沌保密通信系统进行分析或评价的主要思路。描述混沌吸引子的宏观特征量主要有:Lyapunov指数(系统的特征指数)、Kolmogorov熵(动力系统的混沌水平)和关联维(系统复杂度的估计)等[17]。而这些混沌特征量的估计和Poincare截面法都是以相空间重构以及F.Takens的嵌入定理为基础的,由此可见相空间重构理论在混沌时间序列分析中的重大意义。
1.3 对混沌流密码系统的符号动力学分析
我们在以往的实验分析工作中都是针对混沌密码系统的统计学特性进行研究的,如周期性、平衡性、线性相关性、线性复杂度、混淆和扩散特性等,即使涉及到非线性也是从混沌时间序列分析(如相图分析或分数维估计等)的角度出发进行研究的。然而,符号动力学分析表明,混沌密码系统的非线性动力学分析同样非常主要,基于实用符号动力学的分析可能会很快暴露出混沌编码模型的动力学特性。基于Gray码序数和单峰映射的符号动力学之间的关系,文献[20]提出了一种不依赖单峰映射的初始条件而直接从单峰映射产生的二值符号序列来进行参数估计的方法。分析结果表明,基于一般混沌编码模型的密码系统并不如人们想象的那么安全,通过对其产生的一段符号序列进行分析,甚至能以较高的精度很快的估计出其根密钥(系统参数或初始条件)。
上述结论虽然是针对以单峰映射为主的混沌编码模型进行的分析,但是,混沌流密码方案的安全性不应该取决于其中采用的混沌系统,而应该取决于方案本身,而且单峰映射的低计算复杂度对于实际应用仍是非常有吸引力的。因此,我们认为,如果希望利用混沌编码模型来设计更为安全的密码系统,必须在混沌编码模型产生的符号序列作为伪随机序列输出(如用作密钥流或扩频码)之前引入某种扰乱策略,这种扰乱策略实质上相当于密码系统中的非线性变换。
该非线性变换不应影响混沌系统本身的特性,因为向混沌系统的内部注入扰动会将原自治混沌系统变为了非自治混沌系统,但当自治混沌系统变为非自治混沌系统之后,这些良好特性可能会随之发生较大的变化,且不为设计者所控制。这样有可能引入原本没有的安全隐患,甚至会为分析者大开方便之门。
上述非线性变换还应该能被混沌编码模型产生的符号序列所改变。否则,分析者很容易通过输出的伪随机序列恢复出原符号序列,并利用符号动力学分析方法估计出混沌编码模型的系统参数和初始条件。因此,非线性变换的构造就成了设计高安全性数字混沌密码系统的关键之一。
2. 混沌流密码系统的总体方案
为克服上述问题,我们提出了如下的混沌流密码系统的总体方案,如图1所示:
在该方案中,首先利用一个混沌映射f产生混沌序列xi,再通过编码C产生符号序列ai,将所得符号序列作为驱动序列ai通过一个动态变化的置换Bi以得到密钥流ki,然后据此对置换进行动态变换T。最后,将密钥流(即密钥序列)与明文信息流异或即可产生相应的密文输出(即输出部分)。图1中的初始化过程包括对混沌系统的初始条件、迭代次数,用于组合编码的顺序表以及非线性变换进行初始化,初始化过程实质上是对工作密钥的输入。
在图1所示的混沌编码模型中,我们对实数模式下的混沌系统的输出进行了编码、采样。以Logistic为例,首先,以有限群论为基本原理对驱动序列进行非线性变换,然后,根据有限群上的随机行走理论,使非线性变换被混沌编码模型产生的驱动序列所改变。可以从理论上证明,我们对非线性变换采用的变换操作是对称群的一个生成系,所以,这里所使用的非线性变换的状态空间足够大(一共有256!种)。
3. 克服数字混沌特性退化的方法
增加精度可以在某些方面减小有限精度所造成的影响,但效果与其实现的代价相比显然是不适宜的。为此,周红等人在文献[22]中提出将m序列的输出值作为扰动加到数字混沌映射系统中,用于扩展数字混沌序列的周期;王宏霞等人在文献[23]中提出用LFSR的输出值控制数字混沌序列输出,从而改善混沌序列的性质;李汇州等人在文献[24]中提出用双分辨率的方法解决离散混沌映射系统的满映射问题。上述方法又带来新的问题:使用m序列和LFSR方法,混沌序列的性质由外加的m序列的性质决定;使用双分辨率时,由于输入的分辨率高于输出的分辨率,其效果与实现的代价相比仍然没有得到明显的改善。
为此,我们提出了一种基于Lyapunov数的变参数补偿方法。由于Lyapunov数是混沌映射在迭代点处斜率绝对值的几何平均值,所以,可以将它与中值定理结合对数字混沌进行补偿。以一维混沌映射为例,该补偿方法的迭代式为:
(1)
式中, 为Lyapunov数,ki是可变参数。
参数ki的选择需要满足下面几个条件:
(1)ki的选取应使混沌的迭代在有限精度下达到满映射;
(2)ki的选取应使混沌序列的分布近似地等于实值混沌的分布;
(3)ki的选取应使混沌序列的周期尽可能的长。
根据上述几个条件,我们已经选取了合适的80个参数,并且以Logistic为例对该变参数补偿方法输出的混沌序列进行了分析。在精度为32位的条件下,我们计算了混沌序列的周期,其结果如下:
除周期外,我们还对复杂度、相关性和序列分布进行了检测。从结果可知,该变参数补偿方法,使得在不降低混沌的复杂度基础上,增长其周期,减弱相关性,使其逼近实值混沌系统。该方法不仅非常明显地减小了有限精度所造成的影响,使数字混沌序列的密度分布逼近实值混沌序列的理论密度分布,改善数字混沌伪随机序列的密码学性质,而且极大地降低实现其方法的代价。
4. 非线性变换
为克服符号动力学分析对混沌密码系统的威胁,我们根据有限群上的随机行走理论提出了一种非线性变换方法,并对引入了非线性变换的混沌密码系统进行了符号动力学分析,分析结果表明,引入了非线性变换的模型相对一般混沌编码模型而言,在符号动力学分析下具有较高的安全性。以二区间划分的模型为例,我们选用Logistic映射作为图1中的混沌映射f,并根据符号动力学分析中的Gray码序数[20,21]定义二进制码序数,见2式。
(2)
二值符号序列S的二进制码序数W(S)∈(0, 1)。注意,这里的Wr(xi)并不是单值的,因为同样的状态xi可能对应不同的置换Bi。
图2 在2区间划分下产生的二值符号序列的Wr(xi)分析
图2中的Wr(xi)为参数r控制下从当前状态xi出发产生的二值符号序列的二进制码序数。图2(a)是未进行非线性变换时的情形,可以看出,其它三种进行非线性变换时的情形都较图2(a)中的分形结构更为复杂。由此可见,引入了非线性变换的混沌模型相对一般混沌编码模型而言,在符号动力学分析下具有较高的安全性。
5. 混沌流密码系统的理论分析和数值分析结果
5.1 理论分析结果
密钥流的性质直接关系到整个流密码系统的安全性,是一个极为重要的指标。我们对密钥流的均匀、独立分布性质和密钥流的周期性质给出了证明,其结果如下:
(1)密钥留在0,1,…,255上均匀分布。
(2)密钥流各元素之间相互独立。
(3)密钥流出现周期的概率趋向于零。
(4)有关密钥流性质的证明过程并不涉及改变非线性变换的具体操作,也不涉及具体的驱动序列产生算法,仅仅要求驱动序列服从独立、均匀分布,并且驱动序列和非线性变换之间满足一定的条件,这为该密码系统,特别是系统驱动部分的设计和改进留下余地。
总之,该密码系统可扩展,可改进,性能良好且稳定。
5.2 数值分析结果
目前,基本密码分析原理有:代替和线性逼近、分别征服攻击、统计分析等,为了阻止基于这些基本原理的密码分析,人们对密码流生成器提出了下列设计准则:周期准则、线性复杂度准则、统计准则、混淆准则、扩散准则和函数非线性准则。
我们主要根据以上准则,对本密码系统的密钥流性质进行保密性分析,以证明其安全性。分析表明:混沌流密码系统符合所有的安全性设计准则,产生的密钥序列具有串分布均匀、随机统计特性良好、相邻密钥相关性小、周期长、线性复杂度高、混淆扩散性好、相空间无结构出现等特点;该密码系统的工作密钥空间巨大,足以抵抗穷举密钥攻击。并且,由于我们采用了非线性变换,所以该密码系统可以抵抗符号动力学分析。
6. 应用情况简介
该混沌流密码系统既有效的降低了计算复杂度,又极大的提高了密码的安全强度,从而为混沌密码学及其实现技术的研究提供了一条新的途径。该系统已于2002年10月30日获得一项发明专利:“一种用于信息安全的加解密系统”(00131287.1),并于2005年4月获得国家密码管理局的批准,命名为“SSF46”算法,现已纳入国家商用密码管理。该算法保密性强,加解密速度快,适合于流媒体加密,可在银行、证券、网络通信、电信、移动通信等需要保密的领域和行业得到推广。该加密算法被应用在基于手机令牌的身份认证系统中,并且我们正在与华为公司合作将加密算法应用于3G的安全通信之中。
参考文献
[1] Kocarev L, Jakimoski G, Stojanovski T, Parlitz U, From chaotic maps to encryption schemes, In Proc. IEEE Int. Sym. CAS. 1998, 4: 514-517
[2] Kocarev L, Chaos-based cryptography: A brief overview, IEEE Circuits and Systems, 2001, 1(3): 6-21
[3] Habutsu T, Nishio Y, Sasase I, Mori S, A secret key cryptosystem by iterating a chaotic map, in Proc. Advances in Cryptology-EUROCRYPT’91, Springer, Berlin, 1991, 127-140
[4] Fridrich J, Symmetric ciphers based on two-dimensional chaotic maps, Int. J. Bifurcation Chaos, vol.8, no.6, 1998, 1259-1284
[5] Baptista M S, Cryptography with chaos, Phys. Lett. A., 1998, 240: 50-54
[6] Wai-kit W, Lap-piu L, Kwok-wo W, A modified chaotic cryptographic method, Computer Physics Communications, 2001, 138:234-236
[7] Alvarez E, Fernandez A, Garcia P, Jimenez J, et al, New approach to chaotic encryption, Phys. Lett. A, 1999, 263: 373-375
[8] Jakimoski G, Kocarev L, Chaos and cryptography: Block encryption ciphers based on chaotic maps, IEEE Tran. CAS-I, 2001, 48: 163-169
[9] Stojanovski T, Kocarev L, Chaos-based random number generators—Part I: Analysis, IEEE Tran. CAS-I, 2001, 48(3):281-288
[10] Stojanovski T, Pihl J, Kocarev L, Chaos-based random number generators—Part II: Practical Realization, IEEE Tran. CAS-I, 2001, 48(3):382-385
[11] http://www.safechaos.com/chpk.htm
[12] 王育民,信息安全理论与技术的几个进展情况,中国科学基金,2003,2,76-81
[13] Borcherds P.H., Mccauley G.P., The digital tent map and the trapezoidal map, Chaos, Solitons & Fractal, 1993, 3(4): 451-466
[14] Palmore L, et al, Computer arithmetic, chaos and fractals, Physica, 1990, D42:99-110
[15] Shujun L, Qi L, Wenmin L, Xuanqin M and Yuanlong C, Statistical properties of digital piecewise linear chaotic maps and their roles in cryptography and pseudo-random coding, Cryptography and Coding, 8th IMA International Conference Proceedings, LNCS, vol.2260, pp.205-221, Springer-Verlag, Berlin, 2001
[16] 王育民,混沌序列密码实用化问题,西安电子科技大学学报,1997,24(4):560-562
[17] 吕金虎,陆君安,陈士华,混沌时间序列分析及其应用,武汉大学出版社,2002
[18] 冯登国 着,密码分析学,北京:清华大学出版社,2000
[19] B.Schneier着,吴世忠等译,应用密码学-协议、算法与C原程序,北京:机械工业出版社,2000
[20] Xiaogang Wu, Hanping Hu, Baoliang Zhang, Parameter estimation only from the symbolic sequences generated by chaos system, Chaos, Solitons & Fractals, 2004, 22(2):359-366
[21] Hanping Hu, Xiaogang Wu, Zuxi Wang, Synchronizing chaotic map from two-valued symbolic sequences, Chaos, Solitons & Fractals, 2005, 24(4):1059-1064
[22] Zhou H., Ling X.T., Realizing finite precision chaotic systems via perturbation of m-sequences, Acta Electron. Sin, 1997, vol.25, no.7, 95-97
[23] 王宏霞,虞厥邦,Logistic-map混沌扩频序列的有限精度实现新方法,系统工程与电子技术,2002,vol.24, no.2
[24] Zhou L.H., Feng Z.J., A new idea of using one-dimensional PWL map in digital secure communications—al resolution approach, IEEE Tran. On Circuits and Systems—II: Analog and Digital Signal Proceedings, 2000, vol.47, no.10, Oct.