《基于LSB图像之加密信息隐藏应用实现.doc》由会员分享,可在线阅读,更多相关《基于LSB图像之加密信息隐藏应用实现.doc(53页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、北京理工大学珠海学院2020届本科生毕业论文基于LSB图像之加密信息隐藏应用实现学 院:专 业:姓 名:指导老师:计算机学院网络工程陈义海学 号:职 称:160205104720林开荣教授中国珠海二二年五月诚信承诺书本人郑重承诺:本人承诺呈交的毕业设计基于LSB图像之加密信息隐藏应用实现是在指导教师的指导下,独立开展研究取得的成果,文中引用他人的观点和材料,均在文后按顺序列出其参考文献,设计使用的数据真实可靠。本人签名: 日期: 年 月 日基于LSB图像之加密信息隐藏应用实现摘 要随着Internet的发展,人们越来越频繁的传递信息,在给人们带来便利的同时,也给人们的安全和隐私带来了隐患。从很
2、久以前,人们就开始了解如何保护自己的信息,发展到现在,信息安全主要分为两方面,密码学和信息隐藏。本文在密码学这块的研究主要是RSA算法、AES算法和3DES算法。RSA 是在1977年被提出来的,属于非对称加密算法,广泛用于公钥加密和电子商务中。而对于信息隐藏技术方面,本文主要研究LSB算法。LSB(LeastSignificant Bits)算法:一种常见的空间域数据隐藏算法,它替换了最低有效位以隐藏秘密信息。通过LSB算法隐藏的信息一般来说肉眼察觉不出来,能很好地的保护秘密信息。RSA算法可以将信息加密成密文,而LSB算法可以将加密后的密文隐藏到图片之中,人们的肉眼根本分辨不出来,将两者结
3、合起来,可以更有效的保护信息安全。关键词:加密,信息隐藏,LSB算法,RSA算法Implementation of encrypted information hiding based on LSB imageAbstractWith the development of the Internet, people are passing information more and more frequently, which brings convenience to people, but also brings hidden dangers to peoples security and p
4、rivacy. From a long time ago, people began to understand how to protect their own information. From now on, information security is mainly divided into two aspects, cryptography and information hiding. The research on cryptography in this article is mainly about RSA algorithm, AES algorithm and 3DES
5、 algorithm.RSA was introduced in 1977 and belongs to asymmetric encryption algorithm, which is widely used in public key encryption and e-commerce.As for the information hiding technology, this paper mainly studies the LSB algorithm.LSB (LeastSignificant Bits) algorithm: a common spatial data hiding
6、 algorithm, which replaces the least significant bit to hide secret information. The information hidden by the LSB algorithm is generally invisible to the naked eye, and can well protect secret information.The RSA algorithm can encrypt information into ciphertext, and the LSB algorithm can hide the
7、encrypted ciphertext in the picture, people cant distinguish it by the naked eye. Combining the two can effectively protect information security.Keywords: encryption, information hiding, LSB algorithm, RSA algorithm目录一、前言3(一)本设计的目的、意义及应达到的技术要求3(二)本设计在国内外的发展概况及存在的问题4(三) 主要研究目标和内容5(四)本设计应解决的主要问题5二、系统需
8、求分析6(一)用户需求分析6(二)功能需求分析6(三)性能需求分析7(四)可靠性需求分析7(五)安全性需求分析7三、可行性分析8(一)技术可行性分析8(二)经济可行性分析8(三)操作可行性分析9(四)性能可行性分析9(五)安全可行性分析9四、相关技术10(一)信息隐藏概述10(二)信息隐藏模型111嵌入对象112掩体对象123隐藏对象124密钥12(三)信息隐藏的分类12(四)信息隐藏的特点131透明性132不可检测性133鲁棒性134自恢复性145安全性146对称性147可纠错性14(五)信息隐藏技术与密码学技术14(六)LSB算法15(七)RSA算法151算法描述152.RSA的安全性18
9、3.RSA的优缺点18(八)AES算法181.AES简述182.AES的总体结构183.AES的详细结构20(九)3DES算法221.3DES算法简述222.3DES算法的安全性25五、系统设计26(一)研究的基本思路和方法26(二)总体设计26(三)加密隐藏功能模块26(四)提取解密功能模块27六、系统测试29(一)RSA加密和解密测试30(二)AES加密测试32(三)AES解密测试:34(四)3DES加密测试:35(五)3DES解密测试37(六)LSB算法隐藏测试38七、总结46参考文献47致 谢48附 录49 一、前言随着Internet时代的到来,人们接收信息的速度越来越快。人们在尽情
10、享受网络便利的同时,大量的隐私也随之暴露。近年来,因个人隐私的暴露而被不法分子乘虚而入的事件不断发生,所以我们对互联网的安全要保持一定的警惕性。信息的传递大部分都是以文字和图像为主,一小部分是音频和视频。有时候人们就是因为没有对这些信息进行一定的保护,结果被不法分子利用,最后造成严重后果。(一)本设计的目的、意义及应达到的技术要求随着时代的进步,科学技术飞速发展,信息的传递也越来越频繁,使得人们待在家里就能知道世界上任何地方发生的事情。但是科技在发展的同时,也给人们的安全带来了隐患。因为今天人们已经离不开互联网了,甚至网上有人调侃断网是现代“十大酷刑”之一,由此可见网络对于我们的重要性。可是人
11、们在使用网络的同时,大量的个人信息绑定在上面,如以一来,人们的信息就很容易被泄露。而且在网络时代中,信息的传递也是很频繁的,像发消息,晒朋友圈,这些信息的传递就很容易被某些“有心人”窃取,用做不法行为,就如之前有则新闻讲的就是有人根据某个明星发的朋友圈照片从而推断出了该明星的住处。仔细想想,如果被想对你不利的人知道了你的住处,后果不堪设想。如今互联网上的人鱼龙混杂,随着技术的发展,不法分子的手段也层出不穷。之前甚至出过一款AI换脸的技术软件,只要你想,你可以把照片上的人脸换成任何一个你想换的脸,大众在沉迷娱乐的同时,却没想过自己的信息早已被泄露。因为该软件在你使用之前会有一堆的保密协议,但是一
12、般人哪会仔细看这些密密麻麻的协议内容,其中一条就是当你使用该软件进行换脸后,那么你的照片肖像权也会同意授权给开发公司使用。由此可见,人们的大量原创照片就会被泄露,如果被用去诈骗或进行其他不法行为,必定会对社会的安定造行一定的影响。有些人有保护意识的话会在自己的照片上加上水印来维护自己照片版权。但是加上水印的话必定会对照片造成一定的美观影响,而且还会影响照片质量。而LSB隐藏算法可以很好地解决这些问题,它在帮人们加上商标的同时,不仅起到了保护版权的作用,而且肉眼一般分辨不出来,不会影响照片的观感。由换脸事件可以看出,人们对于个人信息和隐私的保护还不够重视,本设计就是希望能让人们对于自己平时传递的
13、文本信息进行一定的加密和隐藏,从而让人们知道信息的重要性,还可以增强人们保护其信息的意识。另外本设计的技术要求并不高,操作简单,只需要用户把自己需要传递的信息加密成密文,然后再运用LSB算法把加密后的信息隐藏到载体图片当中,这样一来就能实现信息加密和隐藏的双结合。(二)本设计在国内外的发展概况及存在的问题信息安全一直以来都是一个重要的安全问题,随着Internet的发展,网络上有很多信息。 如果无法保证网络安全,一旦被不法分子盗用和挪用安全信息,必定对社会的稳定产生一定影响,如果严重的话,可能还会威胁到国家的安全。因此,信息安全技术变得越来越重要重要,加强信息保护和改进加密技术是当务之急。信息
14、隐藏技术是当前信息安全中的重要技术,它可以将秘密信息隐藏在载体中,是一种使用价值和次数比较高的信息保护手段。而对于信息隐藏载体,数字图像是使用次数最多的。在本设计中,使用的信息隐藏算法是LSB算法,这是一种典型的空间域算法。其实无论是国内还是国外,都有着很多功能强大的加密软件,除了可以进行数据加密之外,还能对文件和磁盘进行加密,而且加密算法也是多种多样,相比之下,本设计的技术方面就显得比较低端。在如今的时代中,随着各种软件和热门应用的兴起,人们的生活越来越便利,衣食住行各种各样的软件应有尽有,但人们在使用这些软件的同时,大量的个人信息被上传到云端,加上国内人们对于自己信息的保护意识都比较薄弱,
15、因此信息泄露的风险很大。而且国内民用的加密软件很少,大多数是企业使用的居多。有些人会从网上下载一些简单的加密工具来使用,但是网上的软件大多数是捆绑软件居多,不仅安全性未知,有的甚至还捆绑着病毒。所以本设计就可以派上用场了,虽然技术层面不是很高,但是在安全方面有一定的保证,而且本设计是结合了加密和隐藏,可以更好地保护信息,防止信息泄露,造成人们的损失。(三) 主要研究目标和内容本设计的研究目标是运用加密算法实现对信息的加密,同时运用LSB算法对加密后的信息进行隐藏,为在网络中保护信息方面和解决目前网络中数据安全问题起到一定作用。本设计的主要研究内容是基于LSB算法实现信息加密图像隐藏应用,是基于
16、三种加密算法加上LSB算法用于实现信息的加密和隐藏,从而保护信息的安全。在加密过程中,有RSA、AES和3DES三种算法供用户选择,用户可以根据需要选择一种加密算法对需要传输的信息进行加密。加密完成后,用户还可以选择自己喜欢的载体图像用来隐藏加密后的信息。本设计中具备的功能如下:加密:用户首先选择自己需要的加密算法,然后输入密钥和要加密的信息,点击加密按钮即可完成加密。隐藏:用户可以选择自己喜欢的载体图像,然后把密文通过算法隐藏到图像中。提取:从载体图像中提取之前隐藏的密文。解密:选择加密时使用的算法,然后输入密钥即可将密文解密成明文。(四)本设计应解决的主要问题本设计是一个结合加密和隐藏的加
17、密系统。本设计中运用的三种加密算法:RSA、AES和3DES,都是安全度和复杂度都比较高的热门加密算法,所以在安全性上有一定的保证。而且本设计不仅仅是简单的对信息进行加密,还会运用LSB算法对加密后的进行隐藏。在隐藏过程中,用户可以选择自己喜欢的载体图像,而不是固定的载体图像,因此会有一定的灵活性。本设计中的最主要问题就是界面的设计,因为本设计的程序实现是使用Python语言来实现的,而Python语言在实现界面方面有很大的局限性。需要解决的另一个问题就是算法的程序实现。二、系统需求分析本设计中的系统需求分析主要有用户需求分析、功能需求分析、性能需求分析,可靠性需求分析和安全性需求分析,最后得
18、出本设计的系统框架。(一)用户需求分析在国内,人们对于信息保护的意识较差,而且民用的加密系统较少,因此本设计主要就是给普通民众使用,让人们在提高信息保护意识的同时,也让用户真正了解一下信息加密和解密的过程。况且对信息加密是日后发展的方向,即便是普通民众也要重视。因此民众需要一个能把信息进行加密的系统,而且还能把信息隐藏起来,从而不让他人知道,起到秘密传输信息的作用。(二)功能需求分析根据用户需求,本设计主要分为以下功能模块:功能选择界面:在这个界面,用户可以选择自己需要实现的功能,分别是加密隐藏和解密提取。加密隐藏功能模块:首先根据界面提示选择加密算法,接着输入需要加密的信息和密钥来进行信息加
19、密。最后选择载体图像实现信息隐藏。解密提取功能模块:用户根据界面提示先选择之前加密用到的加密算法,然后选择已经隐藏了加密信息的载体图片,来提取加密信息,最后把加密信息解密成明文。最终界面模块:用户在完成信息加密隐藏或者信息解密提取后的输出界面,以一种结果的方式呈现在用户面前。(三)性能需求分析本设计整体运用了Python语言来实现,只要用户可以成功运行Python3.6,然后再简单布置一下环境,就可以使用本设计了。因此原则上来说,普遍民众都可以使用本设计。一方面,本设计在实现功能时具有快速响应的特性,系统响应时间快。另一方面,本设计的用户界面简洁,操作简单,风格易学,且界面属于中文语言,适用于
20、国内普遍民众。综上所述,本设计符合整体性能要求。(四)可靠性需求分析本设计经过多次验证,且通过与其他加解密系统的结果进行对比,结果都是一样的,因此本设计的结果是可信的。本系统并不复杂,承载的信息量也不巨大,且适用范围较广,多次验证过程中没有出现故障事件,每次实现,系统都能正常运行,所以本设计是可靠的。(五)安全性需求分析本设计使用了多种加密算法,同时结合了信息加密和隐藏来保证安全性。在加密方法中,有RSA、AES和3DES,加密完成后还可以对密文进行隐藏。这样一来,即使被别人截取了载体图像,提取出来的也是密文。如果想要暴力破解的话也是不可能的,因为这三种加密算法中,RSA在公钥加密算法中是最有
21、影响力的,AES在密码学中属于高级加密标准,3DES是三重DES算法。无论是哪一种,破解起来都不是简单的事,因此安全性还是很高的。况且本设计的主要用户是普遍民众,因此不再需要更高级的加密标准,所以安全性有一定的保障。由上述的需求分析得知,本设计旨在用户在传输重要信息时能加强个人信息安全保护意识,为自己要传输的信息进行一定的加密后再进行传输。这样能保证信息的安全性。除了要保证安全性的同时,还要保证信息的隐藏性,此时,需要LSB隐藏算法将秘密信息隐藏到载体图像中。最后为了保证系统的完整性,有了加密隐藏功能,相对地就有了提取解密功能。三、可行性分析(一)技术可行性分析本设计中使用的语言是近年来兴起的
22、Python语言。它具有简单性、易读性和可扩展性,在国内或许还不是主流的编程语言,但它在国外是非常流行的。尤其是它的扩展性,使得它可以兼容大量的模块,而且它的库也是非常丰富的,无论是图形处理、文本处理、数学处理,还是数据库编程和网络编程,都可以通过它来完成。因此在本设计中的密码学操作和各个函数调用方法都是没问题的。所以这一块的RSA、AES和3DES的加密过程技术上是可行的。而对于LSB算法,它是一种典型的空间域隐藏算法,无论是传统的还是改进后的,互联网上都有很多关于它的例子和相关的研究。但是改进后的隐藏算法技术要求比较高,难以掌握,而且本设计中用传统的LSB隐藏算法就足以了,所以技术上是可行
23、的。(二)经济可行性分析一般来说,只要是能成功运行Python3.6版本的民用电脑就可以正常运行本设计,所以硬件设备上要求不高。另外隐藏需要的载体图像也是不限来源的,无论是自己的图像还是网络上下载的图像都可以使用。接着本设计中使用的语言是Python,而Python语言的源码和算法完全是开源的,不需要收费,所以对于普通民众来说,经济上是可行的。(三)操作可行性分析本设计采用Python自带的tkinter图形模块进行界面设计,界面简洁,操作起来也很方便,用户不需要了解系统其中的加密解密过程,只需根据界面的内容就可判定下一步的操作。系统根据面向大众的需求来设计,所以操作是大众化的。在使用本系统时
24、,用户只需输入需要加密的信息、密钥和载体图像就可以运行了,系统会根据用户提供的内容而为其进行下一步的操作,并把最终的结果呈现出来,所以操作上是可行的。 (四)性能可行性分析本设计主要用于文本信息加密,而文本信息的大小一般来说不会太大。另外进行信息隐藏时用到的是载体图像,在生活中载体图像的传输也不会太大。另外本系统的运行不需要用到其它的硬件设备,普通民众的电脑就可以了,所以整体来说本系统的性能不需要很高,性能上是可行的。(五)安全可行性分析本设计的主要用户是普通民众,所以设计之初是无需联网运行的,直接在用户电脑上就可以运行,这样一来就可以避免个人信息的泄露,别人也无法监查你的数据。系统中信息加密
25、的算法都是用的复杂的算法,想要暴力破解是不太可能的,所以安全性有很强的保障。四、相关技术(一)信息隐藏概述信息隐藏是在被称为载体的信息中以某种方式隐藏秘密信息,从而获得隐藏载体。除了隐藏者和接收者外,第三方不知道在该载体中隐藏了秘密信息,即使知道了秘密信息,也很难提取出来或删除掉。为了增强隐藏效果,可以将加密技术和信息隐藏结合起来,即首先对秘密信息进行加密,然后将其隐藏在载体中。这样一来,即使被人截取到了载体,也要先把它提取出来,之后还要考虑如何把秘密信息解密出来。信息隐藏与传统加密不同。 加密技术主要是关于如何以特殊方式对秘密信息进行编码以形成无法识别的密文进行传输。 而信息隐藏主要研究如何
26、在公共信息中隐藏机密信息,以及如何通过直接发送公共信息来传递机密信息。图4.1.1 信息隐藏的原理(二)信息隐藏模型提取密钥嵌入密钥掩护对象嵌入对象隐藏分析者掩护对象隐藏对象嵌入对象嵌入过程提取过程密钥生成器图4.2.1 信息隐藏基本模型1嵌入对象嵌入对象是隐藏在载体中的,它在载体被接收后将被提取出来,但是隐藏的对象可能在传输时遭受攻击,所以嵌入对象被提取后有可能会缺失。2掩体对象掩体对象是用于隐藏秘密信息的载体,一般信息隐藏系统的提取都需要掩体对象,它可用于在同一掩体对象中隐藏多个嵌入对象。这时,应考虑合谋攻击。合谋攻击是多个用户通过对于多个合法产品比对、分析,然后根据分析结果制作出无法进行
27、检测和追踪的非法拷贝的过程。3隐藏对象在嵌入对象隐藏在掩体对象后,嵌入过程输出的结果就是隐藏对象。隐藏对象需要具有与掩体对象相同的形式,而且为了保证隐藏效果,两者之间的差异非常小,甚至是难以察觉的。4密钥密钥是隐藏信息时附加的数据。在提取时一般需要用到和嵌入时相同的密钥,这样才能提取并恢复被嵌入的秘密信息。隐藏分析者:它在隐藏对象传输的信道上,它的目标是检测隐藏对象、查明嵌入对象、向第三方证明已嵌入秘密信息、删除阻拦被嵌入对象等。(三)信息隐藏的分类信息隐藏技术主要分为掩蔽信道、匿名技术、隐写术和数字水印四大类。而信息隐藏的载体又分为基于文本、基于图像、基于视频和基于音频。按照信息隐藏的目的来
28、分的话,有秘密信息隐藏和数字水印。隐蔽信道信息隐藏匿名信道隐蔽术版权标识基于语义的隐写术基于技术的隐写术稳健的版权标识脆弱的数字水印水印指纹不可见水印可见水印图4.3.1 信息隐藏技术的分类(四)信息隐藏的特点信息隐藏在不同的领域,具有着不同的特点。根据其用途和技术要求,存在以下特点:透明性、不可检测性、鲁棒性、自恢复性、安全性、对称性和可纠错性。1透明性在信息隐藏中,它的基本要求就是透明性,也叫隐蔽性。这是利用人类视觉和听觉的盲点,即使隐藏后,目标数据的质量也不会降低,并且无法用肉眼看到隐藏的数据,达到隐藏的效果。简单来说,隐蔽性越高,隐藏的数据越安全。2不可检测性不可检测性是指在秘密信息的
29、有效期内,非法者很难检测到秘密信息的存在并提取出来。一般来说,越复杂的隐藏算法不可检测性就越高。3鲁棒性鲁棒性是指在隐藏文件受到干扰后恢复隐藏信息的能力。即隐藏的信息不容易被破坏。比如一些文件在传输前需要进行有损压缩,或在传输过程中收到干扰时,隐藏的秘密信息不能轻易被损坏,需要保持信息完整性。4自恢复性自恢复性是指隐藏信息在有效期内能存在,并能完整的提取出来。5安全性安全性是指隐藏算法具有很强的抗攻击能力,也就是说,即使遭到攻击,也不会破坏隐藏信息。同时,隐藏的信息必须是安全的,并且在加密之后将其隐藏会更加安全。6对称性通常来说,信息的隐藏和信息的提取是对称的,包括编码和加密方法。具有对称性可
30、以降低存取难度。7可纠错性可纠错性是指隐藏的信息在经过一定的操作和转换后仍然可以恢复,因此它保持不变,通常采用编码方法。(五)信息隐藏技术与密码学技术信息安全的研究方向主要有两个:信息隐藏和信息加密。加密信息就是把原来的信息编码成看上去没有用处的乱码,使非法截取到信息的人无法读懂信息的内容,这样一来就保护了信息。而信息隐藏就是把秘密信息隐藏在载体信息中,使秘密信息无法被第三方发现,这样一来不但保护了秘密信息,而且保护了通信的本身。一般的信息加密流程如图4.5.1所示。图4.5.1 传统加密模型在实际应用中,可以将信息加密和信息隐藏结合起来,首先将要传输的秘密信息加密以形成密文,然后将其隐藏在载
31、体信息中。这样就实现了既保护信息内容又能隐藏存在的双重保护。如图4.5.2所示。秘密信息预处理加密算法嵌入算法隐秘信息信道隐密信息提取算法解密算法解预处理秘密信息密钥2密钥1覆盖信号密钥覆盖信号图4.5.2 加密信息隐藏原理框图在信息安全领域中,密码学技术和信息隐藏是两个不同的分支。虽然它们的特征和方法并不相同,但是它们的目的是相同的,就是确保信息安全。如今网络信息发展迅速,单纯的信息加密或信息隐藏已经无法满足要求,密码学技术和信息隐藏技术相结合是信息安全发展的必然趋势。(六)LSB算法LSB算法是最典型的空间域信息隐藏算法。它首先将载体图像中的像素值转换成二进制,接着将秘密信息的每一比特替换
32、到相对应的载体的最低有效位。然后再将替换好的数据转换成十进制像素值,最后获得已经隐藏好秘密信息的图像。LSB算法的优点是简单,易于实现,隐藏量大和不可见性好。(七)RSA算法 1算法描述RSA算法属于非对称加密算法,拥有一对密钥。一个用来加密,一个用来解密。这对密钥是随机产生的,具体的过程如图4.7.1.1所示。图4.7.1.1 RSA算法RSA的加解密需要对不同的分组块来进行加解密,当明文是一串字母时,每个字母对应一个两位数的十进制数字,并且4个十进制数字(即两个字母)组成明文的每个分组块。图7表示了RSA算法的加解密过程。图4.7.1.2 RSA算法的加解密2.RSA的安全性由于针对RSA
33、的攻击通常基于大数因数分解,因此RSA算法的安全性取决于大数因数分解。所以当所选的数足够大时,安全性有很大的保障。3.RSA的优缺点目前来说,当它的密钥长度达到1024位时,没有人能对它完成分解,所以RSA算法可以抗住各种攻击。但由于是非对称加密,所以它的加解密时间耗费较长。(八)AES算法1.AES简述AES是一个属于对称密钥分组的迭代算法。AES算法的密钥可以是128、192和256位,而且AES算法是128位(16字节)分组加密和解密数据的。而且它是最常见的对称加密算法。所谓对称加密算法就是加密和解密使用相同的密钥。2.AES的总体结构图4.8.2.1展示了AES加密过程的总体结构。其中
34、明文分组长度为128位,也就是16字节,密钥的长度可以是16字节(128位),24字节(192位)或32字节(256位)。图 4.8.2.1 AES的总体加密过程表4.8.2.1则表示了AES的参数表4.8.2.1 AES的参数密钥长度(字、字节、位)4/16/1286/24/1928/32/256明文分组长度(字、字节、位)4/16/1284/16/1284/16/128轮数101214每轮的密钥长度(字、字节、位)4/16/1284/16/1284/16/128扩展密钥长度(字、字节、位)44/17652/20860/2403.AES的详细结构图4.8.3.1更加详细地介绍了AES算法,指
35、明了每轮的变换顺序,并展示了相应的解密函数。图中加密的过程是沿着页面往下,而解密是沿着页面向上。图4.8.3.1 AES算法的加密和解密AES加密算法主要由4个阶段组成,字节替代(Substitute Bytes)、行移位(ShiftRows)、列混淆(MixColumns)和轮密钥加(AddRoundKey)。图4.8.3.2 AES的一轮加密过程(九)3DES算法1.3DES算法简述DES算法是一种分组对称加解密的算法,DES的明文和密钥长都为64位(实际上密钥是56位)。从图4.9.1.1的左半部分可知,明文的处理有3个阶段。64位的明文首先经历IP的初始排列,接着进行16轮的函数作用,
36、每轮都有置换和代替。输出的最后一轮是64位,并且是输入明文和密钥的函数。在结构中,预输出的产生是左半部分和右半部分互换的结果。最后预输出再与初始IP互逆的IP-1作用产生密文,密文是64位的,除了初始和末尾的置换。DES的结构如图4.9.1.1表示。图4.9.1.1 DES的结构图4.9.1.2的右半部分则是使用56位密钥的过程。密钥经历一轮的置换后,接着经历循环左移和一个置换,分别得到各轮的子秘钥Ki,Ki用于各轮的迭代。每轮的置换都一样,但是各轮的子秘钥互不相同,原因是密钥的循环移位。图4.9.1.2 DES算法概述3DES是改进后的DES算法,它是以DES算法为模块对数据进行3次加密,使
37、用的是64位的密钥。图4.9.1.3 三重加密假设给定明文P及密钥K1,K2,密文C,则加密式子是C=E(K1,D(K2,E(K1,P)P=D(K1,E(K2,D(K1,C)解密式子是C=E(K1,D(K1,E(K1,P)=E(K1,P)P=D(K1,E(K1,D(K1,C)=D(K1,C)2.3DES算法的安全性对于3DES的可行攻击方法,目前还不存在。Copper Smith分析后认为对3DES的穷举攻击的代价是2112=(5*1033)数据级的。如果用差分密码分析的方法进行攻击的话,代价是按指数增长的,与单DES比较超过1052。另外,如果你想挨个查看可能的明文,看哪一个明文的第一个中间
38、值,然后再使用中间相遇攻击来得到两个密钥。这种攻击方法的代价是256数量级的,但是它需要256个选择明密文对,显然也是不可能的。所以3DES算法的安全性是有保障的。五、系统设计(一)研究的基本思路和方法本次应用的实现是使用近几年兴起的语言Python语言。Python是一门易学和严谨的程序语言,用它编写出的代码更易读,而且更易维护。因此可以用它实现本次应用的功能。(二)总体设计由之前的可行性分析和用户需求分析可得出下图的系统设计框架。用户首先选择功能,分别是加密隐藏功能和解密提取功能,选择完之后就可以使用相对应的功能。加密隐藏功能就是需要将信息进行加密,然后选择载体图像就可以实现信息隐藏。解密
39、提取模块就是先将隐藏信息提取出来,接着就是把已加密的信息解密成原来的明文。功能选择加密隐藏解密提取加密算法选择加密结果输出隐藏加密信息提取加密信息选择加密算法输出解密结果图5.2.1 系统总体设计(三)加密隐藏功能模块加密隐藏功能模块加密算法选择RSA算法AES算法3DES算法输入密钥和明文输出加密结果选择载体图像生成隐藏图像图5.3.1 加密隐藏功能模块(四)提取解密功能模块提取解密功能模块选择隐藏图像输出加密信息选择解密算法输入密钥RSA算法AES算法3DES算法输出明文图5.4.1 提取解密功能模块六、系统测试系统启动时就会弹出窗口,并且居于屏幕正中央,这样可以方便用户在使用时有良好的体
40、验,一点击运行就会出现系统功能选择界面,如图6.1所示。图6.1 功能选择界面 首先我们先进行加密功能的测试,因此我们选择数据加密。进入后可以选择RSA算法、AES算法和3DES算法的加密方式。图6.2 加密方式选择(一)RSA加密和解密测试本次设计中RSA使用了随机函数来生成公钥和私钥,由于是随机生成的密钥,且密钥的长度为1024bit,所以不需要另外输入密钥即可完成加密,解密亦然。另外也找不到合适的软件或工具来进行对比,因此只能进行加密和解密之间的测试。图6.1.1是加密后的结果图。图6.1.1 RSA加密测试而下面的图6.1.2则是RSA的解密结果图6.1.2 RSA解密测试由两幅图对比
41、可知,加密和解密的结果一样,所以测试是成功的。另外 ,由于其加密速度较慢,所以建议使用于较短长度的加密。(二)AES加密测试AES的测试结果对比我们使用图6.2.1 在线AES加密结果由结果可知该工具加密后的结果为:b66dcebcde82f8b015cbde2764acfe177ced68b64f104a880ef2d5bfdbd074f0接下来我们测试一下本设计的AES加密结果图6.2.2 本设计AES加密结果本设计中的加密结果是B6 6D CE BC DE 82 F8 B0 15 CB DE 27 64 AC FE 17通过对比,我们发现前半部分是一样的,而本设计中缺少了后半部分,原因是
42、因为网上的加解密工具的AES算法是根据明文为32字节为一组进行加密的,如果明文不够32字节的话,它就会生成随机数以补充完整为32字节。而本设计中的AES算法的明文是根据16字节为一组进行加密的,所以通过对比前半部分,也就是16字节的话,我们发现结果是一样的,所以本设计的AES加密算法是成功的。(三)AES解密测试:经过上面的测试,本设计中的AES算法加密是可行的,接下来我们测试解密是否正常。依然使用上面的密钥和密文来进行测试,结果如图6.3.1所示。图6.3.1 本设计AES解密结果 从结果可以看出,解密出来的明文和加密前的明文是一样的,所以解密是正确的,也就是说本设计的AES解密是可行的。(
43、四)3DES加密测试:我们依然使用网上的加解密工具来进行对比。这次我们使用的明文为“12345678abcdefgh”,密钥为“12345678”,加密模式为ECB模式(电子密码本模式)。结果如图6.4.1所示。图6.4.1 在线3DES加密结果由图6.4.1可知,解密的结果“96d0028878d58c8994d4436bc3b5b6933d7595a98bff809d”现在我们使用同样的密钥来验证本设计中的3DES算法是否正确,结果如图6.4.2所示。图6.4.2 本设计3DES加密结果如图所示,本设计中的3DES加密后的结果是“96 D0 02 88 78 D5 8C 89 94 D4
44、43 6B C3 B5 B6 93”,通过对比我们可以发现和AES一样,依然是前面相同,后面缺少了一部分,因为本设计中的3DES算法依然是按16字节加密的,而对比工具是按192字节加密的,所以不足的部分依然是产生随机数来填充。所以本设计中3DES算法加密是可行的。(五)3DES解密测试接下来我们进行3DES的解密测试,使用和上面相同的密文和密钥来进行测试,结果如图6.5.1所示。图6.5.1 本设计3DES解密结果 从结果我们可以看出,解密出来的明文和加密时一样,所以3DES解密成功。(六)LSB算法隐藏测试从上面的加密和解密测试可以看出,三种算法的加密和解密都已测试成功,现在我们进行LSB算
45、法的测试,首先我们先选一种算法把它加密好,接着点击信息隐藏按钮则会出现选择图片画面,如图6.6.1所示。图6.6.1 图片选择界面我们选择文件名为“test”,格式为“png”的载体图片。接着则会出现已选择图片的提示,如图6.6.2所示。图6.6.2 图片已选择界面接着我们点击开始加密,就会进行信息隐藏,隐藏结束后则会出现如图6.6.3的提示框。图6.6.3 提示框界面然后我们就会在同一目录下发现了名为“res.png”的文件。图6.6.4现在我们对比一下两张图片,原图像如6.6.5所示。图6.6.5 原图隐藏后的结果图如图6.6.6所示。图6.6.6 结果图通过两张图的对比我们可以看出,肉眼是分辨不出来区别的,况且没有失真,所以