描述
开 本: 16开纸 张: 胶版纸包 装: 平装-胶订是否套装: 否国际标准书号ISBN: 9787302525950
第1章绪论
1.1图像加密的研究进展
1.2准备工作
1.2.1常用的灰度图像
1.2.2MATLAB R2016a数学软件
1.2.3Eclipse C集成开发环境
1.2.4Visual Studio 2017集成开发环境
1.3本章小结
第2章数据加密标准
2.1DES算法
2.1.1DES加密算法
2.1.2DES解密算法
2.2TDES算法
2.2.1TDES图像密码系统
2.2.2TDES MATLAB程序
2.2.3TDES C程序
2.2.4TDES C#程序
2.3本章小结
第3章高级加密标准
3.1AES算法
3.1.1AES加密算法
3.1.2AES密钥扩展算法
3.1.3AES解密算法
3.2AES图像密码系统
3.2.1AES MATLAB程序
3.2.2AES图像加密MATLAB程序
3.2.3AES C#程序
3.3本章小结
第4章图像密码系统安全性能分析
4.1加密/解密速度
4.2密钥空间
4.3信息熵
4.4统计特性
4.4.1相关性分析
4.4.2直方图分析
4.5敏感性分析
4.5.1密钥敏感性分析
4.5.2明文敏感性分析
4.5.3密文敏感性分析
4.6本章小结
第5章明文关联的数字图像加密算法
5.1PRIC
5.2PRIC MATLAB程序
5.3PRIC C#程序
5.4PRIC性能分析
5.5本章小结
第6章加密算法与解密算法共享图像密码系统
6.1EADASIC系统
6.2EADASIC MATLAB程序
6.3EADASIC C#程序
6.4EADASIC系统性能分析
6.5本章小结
第7章融合公钥与私钥的数字图像密码算法
7.1PKPKCIC系统
7.2PKPKCIC MATLAB程序
7.3PKPKCIC C#程序
7.4PKPKCIC系统性能分析
7.5本章小结
附录程序代码与数据
参考文献
1977年,美国国家标准局,即现在的美国国家标准与技术研究院(NIST)发布了数据加密标准(DES),这是地球上第一个用于文本信息加密的标准(为美国政府服务)。由于DES的密钥长度仅为56位,20世纪末的个人计算机已经可以在有限的时间内借助穷举密钥方法破译DES。于是2002年,NIST发布了高级加密标准(AES)取代DES。AES的密钥长度可以取128位、192位或256位,至今仍然为文本信息的加密标准。
然而,在数字图像加密方面,全球仍然没有一个标准密码算法,同时也没有衡量图像密码算法优劣的一系列标准指标。有些学者认为基于文本数据的AES算法不适合于数字图像加密,由于数字图像具有数据量巨大、信息冗余度大、相邻像素点相关性强等特点,AES用于数字图像加密可能存在加密速度慢、加密效果差的缺点。事实上,这种观点忽视了AES的强大数据加密能力。本书首先从DES和AES算法的阐述开始,详细分析了这两种数据加密算法应用于图像加密时的性能特点; 然后以基于AES的图像密码算法的性能为比较基准,研究了3种基于混沌系统的图像密码算法。
全书内容共分为7章。
第1章首先回顾了图像密码技术的研究历程,按时间顺序,从Shannon关于保密通信的杰作开始,一直阐述到本书截稿时图像密码算法的最新研究成果; 然后展示了本书使用的灰度图像以及3个软件平台,即MATLAB、Eclipse C和Visual Studio。其中,Eclipse C用于C语言开发,第2章的DES使用了C语言; 而Visual Studio用于C#语言开发,全部章节的图像密码算法均使用了C#语言。
第2章首先详细介绍了DES算法结构及其实现方法,然后介绍了TDES(三重数据加密标准)算法及其在图像加密方面的应用技术,并给出了MATLAB、C语言和C#语言工程。一般地,由于MATLAB库函数丰富,所以MATLAB常用于图像密码算法快速实现,但是,MATLAB程序是解释执行的(MATLAB库函数除外),故MATLAB程序不能用于客观地评价图像密码算法的执行效率; C语言是比较图像密码算法执行速度的最佳语言,但是C语言程序调试复杂且图形界面设计难度大; C#语言的执行效率较C语言稍差,但是基于面向对象技术,程序健壮,本书借助C#语言评价图像密码算法效率。
第3章首先深入分析了AES算法的实现技术,并设计了其MATLAB和C#实现代码,接着,基于AES设计了两种图像密码系统,即AESS和AESD。AESS系统是基于CBC模式使用AES加密大数据的标准结构。AESD系统包含两个AESS系统,实现了图像分块的双向加密处理。此外,附录B介绍了优化的AES图像加密MATLAB代码。
第4章在第3章的基础上,即以基于AES的图像密码系统(AESS和AESD系统)为例,从图像加密/解密速度、密钥空间、信息熵、统计特性(包括相关性分析与直方图分析)和敏感性分析(包括密钥敏感性分析、明文敏感性分析和密文敏感性分析)等方面讨论图像密码系统的性能评价方法,并在本书使用的计算机配置下给出“优秀最低速度标准”和“合格最低速度标准”的定义方法及其数值,以衡量图像密码系统的加密/解密速度。
第5章研究了一种典型的明文关联的图像密码系统(PRIC),其由两个明文无关的扩散模块和一个明文关联的置乱模块组成,采用了“扩散—置乱—扩散”的系统结构。通过设计PRIC系统的MATLAB程序和C#程序,详细分析了PRIC的安全性能,并得出PRIC是一款优秀的图像密码系统的结论。
第6章研究了一种加密算法与解密算法共享的新型图像密码系统EADASIC。在EADASIC系统中,加密算法(含密码发生器)与解密算法(含密码发生器)完全相同,因此,EADASIC系统输入为明文图像和密钥时,输出为密文图像; 而输入为密文图像和密钥时,输出为还原后的明文图像。在详细介绍EADASIC系统结构和算法的基础上,设计了其MATLAB程序和C#程序,并详细分析了其安全性能。仿真结果表明,EADASIC系统(含密码发生器)的执行速度高于“优秀最低速度标准”,而EADASIC系统(不含密码发生器)的执行速度超过了30Mb/s。EADASIC系统是一种高速图像密码系统。
第7章介绍了一种重要的新型图像密码系统,即融合了公钥和私钥的新型图像密码系统PKPKCIC,现有的图像密码系统大都隶属于对称密码系统,即通信双方共享相同的私钥(即私密钥),加密处理和解密处理均由私钥出发生成密码矩阵,然后进行加密和解密处理。一般地,通信双方约定的私钥将在一定时间内持续使用,这使得已知/选择明文或已知/选择密文攻击成为可能。融合公钥与私钥的新型图像密码系统中,每次加密使用不同的公钥,公钥与密文一起通过公共信道发送到接收方,公钥借助私钥生成密码矩阵,密文图像对公钥极其敏感,从而可以挫败各种被动攻击,或者说,使得各种密码分析方法的效率与穷举密钥方法相当。在详细介绍PKPKCIC系统算法的基础上,设计了其实现的MATLAB程序和C#程序,详细分析了其安全性能(包括公钥敏感性分析),证实了PKPKCIC系统是一种优秀的图像密码系统。
本书是《混沌数字图像加密》(清华大学出版社,2016)的姊妹篇。在《混沌数字图像加密》中详细阐述了分级密钥图像密码算法、明文关联图像密码算法、明文关联置乱加密算法、加密与解密共享密码算法等,且算法均基于MATLAB语言实现。本书第5章基于《混沌数字图像加密》第5.3节的图像密码算法,并基于C#语言进行了算法实现。本书第6章和第7章是全新的图像密码算法。值得一提的是,本书使用的具体的混沌系统只是代表,可以选用任何能产生优秀伪随机序列的混沌系统替代本书中算法使用的混沌系统(密码发生器算法需要做相应的调整)。此外,书中的MATLAB程序、C语言工程和C#程序都是完整的代码呈现,本书使用巧妙的方法组织各个程序,使其成为一个层层独立可运行又逐层关联叠加完整的工程。
需要强调的是: 全书仿真使用的计算机配置为Intel Core i74720HQ四核处理器(主频为2.60GHz)、32GB DDR3L 1600MHz内存、128GB SSD固态硬盘、Windows 10(64位)操作系统,使用的软件包括Eclipse C/C (MinGW编译器)、Visual Studio 2017(社区版)、MATLAB R2016a(版本号: 9.0.0.341360,64位)、Mathematica 11、Word 2017、Visio 2017和福昕PDF阅读器等。书中的算法均由MATLAB和C#语言实现,针对DES密码算法设计了C语言的实现代码,由于篇幅所限,书中的C#项目仅包含算法的加密与解密处理部分(算法性能分析可参考MATLAB代码)。感谢这些优秀的数学软件、程序设计软件和文档编辑软件。数学家C.Moler的Experiments with MATLAB和程序设计大师P.Deitel、H.Deitel父子的Visual C# 2012 How to Program对作者也有很大的帮助。
本著作由国家自然科学基金(编号: 61762043,61562035,61702238)、江西省自然科学基金(编号: 20161BAB202058)和江西省教育厅科学技术研究项目(编号: GJJ160426)资助出版,特此真挚鸣谢。
特别感谢江西财经大学罗良清教授、江西财经大学钟元生教授、南昌大学周南润教授、华东交通大学汤鹏志教授、江西财经大学党建武教授、广东海洋大学叶国栋教授、湘潭大学李澄清教授,以及我的两位授业恩师洪时中教授与陈天麒教授,对我科研工作的指导和对本书出版的大力支持。我的两位授业恩师虽已退休多年,仍然时刻关注着科技发展和学术动态,是我从事科研工作的巨大精神支柱。感谢我的爱人贾晓天老师在烦琐的资料整理上为我节约了大量时间; 感谢同事廖汉程博士、胡冬萍博士、唐颖军博士和吴文华副教授等在科研工作上的共识、讨论与支持; 感谢清华大学出版社赵凯编辑的细致工作。
本书在回顾图像密码技术研究领域时引用了大量同行专家、学者的文献,这些参考文献均为该研究领域中颇有影响力且备受关注的研究成果,但是限于篇幅,相信仍有大量重要的文献资料被疏漏(特别是中文文献资料),敬请同行专家、学者谅解。
由于作者水平和能力有限,且该研究领域飞速发展,书中难免有不妥之处,恳请同行专家、学者和读者朋友批评指正。
张勇于江西财经大学枫林园
2019年1月
典型的基于混沌系统的数字图像密码系统如图51所示,包括加密系统与解密系统。对于加密系统而言,输入为密钥和明文图像,输出为密文图像; 对于解密系统而言,输入为密钥和密文图像,输出为明文图像。
图51典型的基于混沌系统的数字图像密码系统
由图51可知,典型的基于混沌系统的图像密码系统中,加密算法由“置乱—扩散”的循环结构组成。本章将研究基于“扩散—置乱—扩散”结构的新型图像密码算法,其结构如图52所示[121,127,130,134135]。
图52置乱算法与明文关联的图像密码系统
在图52所示的图像密码系统中,加密或解密过程包括混沌密码发生器、两个扩散算法和一个置乱算法,没有循环处理,且只有置乱算法与明文相关联。由于置乱算法与明文相关联,因此,这类系统称为明文关联的图像密码系统,记为PRIC(PlaintextRelated Image Cryptosystem)。
5.1PRIC
如图52所示,PRIC主要包括4部分,即混沌密码发生器、明文无关的扩散算法Ⅰ模块、明文关联的置乱算法模块和明文无关的扩散算法Ⅱ模块。
这里使用了分段线性混沌映射(PWLCM),如式(51)所示。
xi=f(xi-1,p)=xi-1p,0xi-1-p0.5-p,p≤xi-1<0.5
f(1-xi-1,p),0.5≤xi-1<1(51)
其中,p为PWLCM的参数,0这里使用了两个PWLCM,其中一个的初始值和参数记为x0和p,另一个的初始值和参数记为y0和q。这里,{x0,p,y0,q}属于密钥的一部分。
设P表示明文图像,大小为M×N。密钥用K表示,K={x0,p,y0,q,r1,r2,r3,r4},其中,x0与p和y0与q分别表示两个PWLCM的初始值与参数,r1、r2、r3和r4为4个8位的随机整数,取值区间为[0,255]。
PRIC的加密过程如下所示。
1. 混沌密码发生器
混沌密码发生器用于产生与明文图像大小相同的4个随机矩阵,记为X、Y、R和W,大小均为M×N。生成这4个随机矩阵的步骤如下所示。
Step 1. 将x0和p分别作为式(51)的初始值和参数,迭代PWLCM r1 r2次跳过过渡态,然后继续迭代MN次,得到长度为MN的状态变量序列,记为{xi},i=1,2,…,MN。
Step 2. 将y0和q分别作为式(51)的初始值和参数,迭代PWLCM r3 r4次跳过过渡态,然后继续迭代MN次,得到长度为MN的状态变量序列,记为{yi},i=1,2,…,MN。
Step 3. 由向量{xi}和{yi},i=1,2,…,MN按式(52)~式(55)得到矩阵X、Y、R和W。
X(u,v)=floorr1 1r1 r3 2x(u-1)×N v r3 1r1 r3 2y(u-1)×N v×1014mod 256(52)
Y(u,v)=floorr2 1r2 r4 2x(u-1)×N v r4 1r2 r4 2y(u-1)×N v×1013mod 256(53)
R(u,v)=floorr1 1r1 r4 2x(u-1)×N v r4 1r1 r4 2y(u-1)×N v×1012mod M(54)
W(u,v)=floorr2 1r2 r3 2x(u-1)×N v r3 1r2 r3 2y(u-1)×N v×1011mod N(55)
其中,floor(t)返回小于或等于数t的最大整数,u=1,2,…,M,v=1,2,…,N。
通过上述步骤计算得到的矩阵X用于前向扩散模块中,Y用于后向扩散模块中,R和W用于置乱模块中。
评论
还没有评论。