版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、分类号:TP309.2 U D C:D10621-408-(2007)5776-0密 级:公 开 编 号:2003032028成都信息工程学院学位论文信息加密与隐藏工具的设计与实现论文作者姓名: 张磊申请学位专业: 网络工程申请学位类别: 工学学士指导教师姓名(职称):韩斌(副教授)论文提交日期:2007年06月10日信息加密与隐藏工具的设计与实现摘 要当今时代,随着电脑的普及应用和互联网的快速发展,网络中露出的安全问题引起普遍关注,网络的安全,主要是网络信息安全,需要采取相应的保护措施,提供适合的安全服务,加密机制和信息隐藏技术作为保障网络信息安全的手段,可以保证信息的完整性、可鉴别性和不可
2、否认性。在一些应用中,它只需要让指定接受人来验证,以确保信息的秘密性。本文主要研究了信息加密与隐藏技术,介绍信息安全的应用前景,通过掌握的知识来实现一个简单信息加密与隐藏工具,包含加密和信息隐藏的功能,处理的对象主要是针对文本和图片两种文件格式,使用简单的对称加密算法对文本进行加密,而在图片中隐藏另外一张图片信息。该设计旨在理解信息加密与隐藏技术在实际生活中的应用,从总体上阐述了它们的原理。另外,本设计成果可用于教学实验中。关键词:安全;加密;信息;隐藏The Design and Implementation of an Information Encryption and Hiding T
3、oolAbstractIn modern times, with the universal application of computers and rapid development of the Internet, more people have paid attention to the security issues in the Internet. The security issues mainly refer to network information security, so it needs some protection measures and provides a
4、ppropriate security services. As the protection measures of information security, the encryption and information hiding technology provides the functions of integration, authentication, and non-repudiation for the signing message. In some applications, it only needs to be verified by some recipients
5、 while keeping the message secret from public. This paper mainly researches the information encryption and hiding technology and introduces the application prospects of the information security. Based on the acquired knowledge, a simple information encryption and hiding tool is designed, and it prov
6、ides the functions of encryption and information hiding, and the handing object refers to the text and picture. The symmetric encryption algorithm is applied into the text encryption while a picture is hidden in another picture. The purpose of this design is to make the application of information en
7、cryption and hiding in real life understood, as well as to describe the principles of the technology on the whole. In addition, the designing result can be applied into the teaching and experiments.Key words: security; encryption; information; hiding目 录论文总页数:23页1引言11.1课题背景11.2本课题研究意义12信息隐藏技术12.1信息隐藏
8、简介12.2信息隐藏技术的分类22.3信息隐藏关键技术32.4信息隐藏的应用领域33加解密相关技术43.1密码学知识43.1.1密钥和算法43.1.2对称密钥算法43.1.3非对称密钥算法54实现一个信息加密与隐藏工具64.1设计思路64.1.1界面设计思路64.1.2信息加密设计思路64.1.3信息隐藏设计思路64.2设计流程64.2.1信息加密流程64.2.2信息隐藏流程74.2.3信息解密流程74.2.4隐藏信息提取流程74.3设计前言84.3.1设计工具84.3.2已有设计条件84.3.3设计目的84.4信息加密与隐藏设计过程分析84.4.1信息加密84.4.2信息隐藏114.5解密与
9、隐藏信息提取设计过程分析154.5.1文本信息的解密154.5.2隐藏信息的提取164.6实例运行与测试184.6.1信息加密与隐藏过程184.6.2解密与隐藏信息提取过程19结 论21参考文献21致 谢22声 明231 引言1.1 课题背景当今时代,随着电脑的普及应用和互联网的快速发展,网络已经融入人们的生活之中,网络中露出的安全问题引起普遍关注,网络的开放性与共享性也导致了网络的安全性受到严重影响,在开放的Internet平台上,社会生活中传统的犯罪和不道德行为将变得更加隐蔽和难以控制。人们从面对面的交易和作业,变成网上互不见面的操作、没有国界、没有时间限制,就产生了更大的安全隐患。如何保
10、证网上传输的数据的安全和对方的身份确认,对网络提出了挑战。1.2 本课题研究意义加密与信息隐藏技术成为保障网络信息安全的手段。这种机制可以保证信息传输的保密性、数据交换的完整性,发送信息的不可否认性,身份的确定性。随着网络技术和软件技术的飞速发展,信息革命带来了全球范围市场竞争的日益加剧,同时对传统的办公和生活方式也产生了巨大冲击。在计算机通信系统中,维护电子文档的安全成为至关重要和非常敏感的问题,保证重要信息在传输过程中的安全性在电子商务、电子政务等领域发挥着越来越大的作用。信息隐藏与信息加密是不尽相同的,信息加密是隐藏信息的内容,而信息隐藏是隐藏信息的存在性,信息隐藏比信息加密更为安全,因
11、为它不容易引起攻击者的注意。本文主要介绍信息加密与隐藏的实现。2 信息隐藏技术2.1 信息隐藏简介信息隐藏(Information Hiding),也称作数据隐藏(Data Hiding)。简单来讲,信息隐藏是指将某一信号(一般称之为签字信号,Signature Signal)嵌入(embedding)另一信号(一般称之为主信号,Host Signal,或称之为掩护媒体,cover-media)的过程,掩护媒体经嵌入信息后变成一个伪装媒体(stegano-media)。这一嵌入过程需要满足下列条件:1签字信号的不可感知性(Imperceptibility)。换句话讲,签字信号嵌入后,主信号的感
12、知特性没有明显的改变,签字信号被主信号“隐藏”了起来。2签字信号的鲁棒性(Robustness)。签字信号对主信号的各种失真变换,如失真信号压缩、仿射变换、加噪、A/D或D/A转换等,以及各种恶意性攻击(Malicious Attack),都应体现出一定的鲁棒性。除非主信号的感知特性被明显的破坏,签字信号将很难被去除。3一般来讲,签字信号的嵌入不增加主信号的存储空间和传输带宽。也就是说,签字信号嵌入后,“表面”上很难觉察到信息的改变。信息隐藏的发展历史可以一直追溯到“匿形术(Steganography)”的使用。“匿形术”一词来源于古希腊文中“隐藏的”和“图形”两个词语的组合。虽然“匿形术”与
13、“密码术(Cryptography)”都是致力于信息的保密技术,但是,两者的设计思想却完全不同。“密码术”主要通过设计加密技术,使保密信息不可读,但是对于非授权者来讲,虽然他无法获知保密信息的具体内容,却能意识到保密信息的存在。而“匿形术”则致力于通过设计精妙的方法,使得非授权者根本无从得知保密信息的存在与否。相对于现代密码学来讲,信息隐藏的最大优势在于它并不限制对主信号的存取和访问,而是致力于签字信号的安全保密性。2.2 信息隐藏技术的分类根据应用背景的不同,信息隐藏技术大致可分为三类:1版权保护(Copyright Protection)到目前为止,信息隐藏技术的绝大部分研究成果都是在这一
14、应用领域中取得的。信息隐藏技术在应用于版权保护时,所嵌入的签字信号通常被称作“数字水印(Digital Watermark)”。版权保护所需嵌入的数据量最小,但对签字信号的安全性和鲁棒性要求也最高,甚至是十分苛刻的。为明确起见,应用于版权保护的信息隐藏技术一般称作“鲁棒型水印技术”,而所嵌入的签字信号则相应的称作“鲁棒型水印(Robust Watermark)”,从而与下文将要提到的脆弱型水印区别开来。而一般所提到的“数字水印”则多指鲁棒型水印。2数据完整性鉴定(Integrity Authentication)数据完整性鉴定,又称作数据篡改验证(Tamper Proof),是指对某一信号的真
15、伪或完整性的判别,并进一步需要指出该信号与原始真实信号的差别,即提供有关证据指明真实信号可能经历的篡改操作。更形式化的讲,假定接收到一多媒体信号g(图像、音频或视频信号),初步判断它很可能是某一原始真实信号f的修改版本。数据篡改验证的任务就是在对原始信号f的具体内容不可知的情况下,以最大的可能判断是否g=f。3扩充数据的嵌入(Augmentation Data Embedding)扩充数据包括对主信号的描述或参考信息、控制信息以及其它媒体信号等等。描述信息可以是特征定位信息、标题或内容注释信息等,而控制信息的嵌入则可实现对主信号的存取控制和监测。例如,一方面针对不同所有权级别的用户,可以分别授
16、予不同的存取权限。另一方面,也可通过嵌入一类通常被称作“时间印章(Time Stamp)”的信息,以跟踪某一特定内容对象的创建、行为以及被修改的历史。这样,利用信息隐藏技术可实现对这一对象历史使用操作信息的记录,而无需在原信号上附加头文件或历史文件,因为使用附加文件,一来容易被改动或丢失,二来需要更多的传输带宽和存储空间。2.3 信息隐藏关键技术信息隐藏技术的关键在于如何处理签字信号的鲁棒性、不可感知性、以及所嵌入的数据量这三者之间的关系。判断信息隐藏算法优劣的一般衡量准则为:1对于主信号发生的部分失真,签字信号是否具备一定的鲁棒性。2对于有意或无意的窃取、干扰或去除操作,签字信号是否具备一定
17、的抵抗能力,从而保证隐藏信息的安全可靠和完整性。3签字信号的嵌入是否严重降低了主信号的感知效果。4数据嵌入量的大小。对于某一特定的信息隐藏算法来讲,它不可能在上述的衡量准则下同时达到最优。显然,数据的嵌入量越大,签字信号对原始主信号感知效果的影响也会越大;而签字信号的鲁棒性越好,其不可感知性也会就随之降低,反之亦然。由于信息隐藏的应用领域十分宽广,不同的应用背景对其技术要求也不尽相同。因此,有必要从不同的应用背景出发对信息隐藏技术进行分类,进而分别研究它们的技术需求。 2.4 信息隐藏的应用领域随着信息隐藏技术的发展,它的应用领域也得到了扩展,信息隐藏的基本应用领域是版权保护、隐藏标识、认证和
18、安全不可见通信。 当应用于版权保护时,潜在的应用市场在于电子商务、在线或离线地分发多媒体内容以及大规模的广播服务。信息隐藏用于隐藏标识时,可在医学、制图、数字成像、数字图像监控、多媒体索引和基于内容的检索等领域得到应用。信息隐藏的认证方面主要ID卡、信用卡、ATM卡等上面信息的安全不可见通信将在国防和情报部门得到广泛的应用。 多媒体技术的飞速发展和Internet的普及带来了一系列政治、经济、军事和文化问题,产生了许多新的研究热点,以下几个引起普遍关注的问题构成了信息隐藏的研究背景。国内目前在证件防伪领域面临巨大的商机,由于缺少有效的措施,使得“造假”、“买假”、“用假”成风,已经严重地干扰了
19、正常的经济秩序,对国家的形象也有不良影响。通过信息隐藏技术可以确认该证件的真伪,使得该证件无法仿制。数字作品(如电脑美术、扫描图像、数字音乐、视频、三维动画)的版权保护是当前的热点问题。由于数字作品的拷贝、修改非常容易,而且可以做到与原作完全相同,所以原创者不得不采用一些严重损害作品质量的办法来加上版权标志,而这种明显可见的标志很容易被篡改。目前市场上的信息隐藏产品在技术上还不成熟,很容易被破坏或破解,距离真正的实用还有很长的路要走。3 加解密相关技术3.1 密码学知识 3.1.1 密钥和算法密码算法也叫密码,是用于加密和解密的数学函数。(通常情况下,有两个相关的函数:一个用作加密,另一个用作
20、解密)如果算法的保密性是基于保持算法的秘密,这种算法称为受限制的算法。受限制的算法具有历史意义,但按现在的标准,它们的保密性已远远不够。大的或经常变换的用户组织不能使用它们,因为每有一个用户离开这个组织,其它的用户就必须改换另外不同的算法。如果有人无意暴露了这个秘密,所有人都必须改变他们的算法。现代密码学用密钥解决了这个问题,密钥用K表示。K可以是很多数值里的任意值。密钥K的可能值的范围叫做密钥空间。加密和解密运算都使用这个密钥(即运算都依赖于密钥,并用K作为下标表示),这样,加解密函数现在变成:EK(M)=CDK(C)=M这些函数具有下面的特性:DK(EK(M)=M有些算法使用不同的加密密钥
21、和解密密钥,也就是说加密密钥K1与相应的解密密钥K2不同,在这种情况下:EK1(M)=CDK2(C)=MDK2(EK1(M)=M所有这些算法的安全性都基于密钥的安全性;而不是基于算法的细节的安全性。这就意味着算法可以公开,也可以被分析,可以大量生产使用算法的产品,即使偷听者知道你的算法也没有关系;如果他不知道你使用的具体密钥,他就不可能阅读你的消息。总之,密码系统由算法、以及所有可能的明文、密文和密钥组成的。3.1.2 对称密钥算法对称算法有时又叫传统密码算法,就是加密密钥能够从解密密钥中推算出来,反过来也成立。在大多数对称算法中,加解密密钥是相同的。这些算法也叫秘密密钥算法或单密钥算法,它要
22、求发送者和接收者在安全通信之前,商定一个密钥。对称算法的安全性依赖于密钥,泄漏密钥就意味着任何人都能对消息进行加解密。只要通信需要保密,密钥就必须保密。对称算法的加密和解密表示为:EK(M)=CDK(C)=M对称算法可分为两类。一次只对明文中的单个比特(有时对字节)运算的算法称为序列算法或序列密码。另一类算法是对明文的一组比特亚行运算,这些比特组称为分组,相应的算法称为分组算法或分组密码。对称加密的缺点在于密钥的管理过于复杂。如果任何一对发送方和接收方都有他们各自商议的密钥的话,那么很明显,假设有N个用户进行对称加密通信,如果按照上述方法,则他们要产生N(N-1)把密钥,每一个用户要记住或保留
23、N-1把密钥,当N很大时,记住是不可能的,而保留起来又会引起密钥泄漏可能性的增加。常用的对称加密算法有DES,DEA等。 3.1.3 非对称密钥算法公开密钥算法(也叫非对称算法)是这样设计的:用作加密的密钥不同于用作解密的密钥,而且解密密钥不能根据加密密钥计算出来(至少在合理假定的长时间内)。之所以叫做公开密钥算法,是因为加密密钥能够公开,即陌生者能用加密密钥加密信息,但只有用相应的解密密钥才能解密信息。在这些系统中,加密密钥叫做公开密钥(简称公钥),解密密钥叫做私人密钥(简称私钥)。私人密钥有时也叫秘密密钥。为了避免与对称算法混淆,此处不用秘密密钥这个名字。用公开密钥K加密表示为:EK(M)
24、 =C虽然公开密钥和私人密钥是不同的,但用相应的私人密钥解密可表示为:DK(C)=M有时消息用私人密钥加密而用公开密钥解密,尽管可能产生混淆,但这些运算可分别表示为:EK(M)=CDK(C)=M当前的公开密码算法的速度,比起对称密码算法,要慢的多,这使得公开密码算法在大数据量的加密中应用有限。非对称加密的优点在于用户不必记忆大量的提前商定好的密钥,因为发送方和接收方事先根本不必商定密钥,发放方只要可以得到可靠的接收方的公开密钥就可以给他发送信息了,而且即使双方根本互不相识。但为了保证可靠性,非对称加密算法需要一种与之相配合使用的公开密钥管理机制,这种公开密钥管理机制还要解决其他一些公开密钥所带
25、来的问题。常用的非对称加密算法有RSA等。4 实现一个信息加密与隐藏工具4.1 设计思路4.1.1 界面设计思路本设计根据前面理论的分析,从信息加密与隐藏两个主要方面着手,将两大块分开进行独立设计,做成不同的功能界面,每部分功能又都分别包括了对文本文件和图片文件的操作。为了方便操作与演示,因此在界面设计上不用很复杂,只需要用有限的几个控件来实现不同的功能,通过某个控件选择不同的文件,再通过相应的按钮对所选文件进行不同操作。4.1.2 信息加密设计思路在实现对文本文件的加密与解密时,将文件内容固定为非中文字符,即常用的ASCII字符,并采用对称加密算法来实现,算法选择用自己编写的简单的位操作算法
26、,且将密钥固定为已知值。4.1.3 信息隐藏设计思路在实现对图片文件的信息隐藏与提取时,采用基于数字水印的技术,图片格式固定为.BMP格式的文件,隐藏的过程就是通过在所选的图片中嵌入其他的图片,并在图片中加入特殊的信息,而验证的过程就是对图片中的特殊信息进行提取,如果包含有特殊信息,则说明已对文件进行信息隐藏,验证成功后将隐藏在载体文件中的图片信息显示出来。4.2 设计流程4.2.1 信息加密流程文本文件的内容是由可见ASCII字符组成,每个ASCII字符都有对应的字符值,在对其进行加密时,可采用对称加密算法,对每个字符值进行某一范围内的规律变换,变换后字符显示会与原先的字符不一样,如此循环的
27、对每个字符进行相同操作,就可将明文信息变换成密文信息,最后将密文信息附加到明文信息结尾部分,生成一个新的文本文件,接着再次将整个文本文件进行加密,为的是在信息的传输中,保护信息。详细的步骤如下:1选择所要加密的文本文件;2用对称加密算法对文本文件进行加密,生成附加信息;3将已经生成的附加信息添加到原明文文件后,重新生成一个新的文本文件;4再次对新的文本文件进行加密;5将整个加密文件保存保存;4.2.2 信息隐藏流程 本设计中的信息隐藏主要是针对图片文件,即在一张图片中隐藏另外一张图片信息,图片文件的格式为.BMP格式,图片文件的度量单位是由像素点构成,许多不同颜色值的像素点组合在一起就可以构成
28、一张图片,在对图片文件进行操作时就是以像素点为基本单位进行操作,将图片信息隐藏在像素点中,像素点是由8位二进制值组成,只要将信息隐藏到二进制中就可以,最后为了使验证方便,在对前几个像素点的值进行规律变化,而对整张图片的显示无大的影响。详细的步骤如下:1选择所要隐藏的图片文件;2提取每个像素点的信息值;3获取信息图片的像素点信息值,并将其隐藏的载体图片中;4生成新的图片,将前几个像素点进行变换;5保存整个图片文件;4.2.3 信息解密流程 加密后的文本文件是由两部分组成的,一是原明文信息,二是消息摘要,并且两部分组合在一起加密后构成加密文件,在进行解密时,需要将两部现分开,这就先要解密,由于消息
29、摘要的长度和明文信息的长度是相同的,这就便于提取,之后将获取到的明文信息值用相同的加密算法进行加密,加密后的信息于消息摘要进行比较,如果相同,则说明解密成功。详细的步骤如下:1选择所要解密的文本文件;2对文件解密,从中提取明文信息和附加信息;3对明文信息加密,得到另一附加信息;4将两个附加信息进行比较;5相同,则说明信息在传输中没有被改变,否则不然;4.2.4 隐藏信息提取流程 对图片文件的信息提取如同对其进行隐藏一样,只需要涉及到对像素点值的操作,首先要对图片的前几个像素点进行提取,验证其是否按照隐藏时的规律排列,如是,则说明有隐藏信息,接着,将隐藏到载体图片像素点中的信息通过位操作变换出来
30、,使其为显示图片的像素点。详细步骤如下:1选择所要提取隐藏信息的图片文件;2提取前几个像素点,验证其是否按照隐藏规律排列;3验证成功时,变换图片的每个像素点值;4将隐藏的图片信息显示出来;4.3 设计前言4.3.1 设计工具本次设计采用的是微软的.NET 2003开发平台,用VB.NET语言进行设计,由于VB.NET是可视化的开发工具,且又是面向对象的语言,对于界面的设计相当方便和上手,而且语言中封装的函数可提供所需的功能作用,使得本次设计在程序结构上清晰而且规范。4.3.2 已有设计条件首先对VB.NET有系统的学习过,熟悉其语法规则,了解该程序语言的特点,在平时的学习中,曾经设计过简单的应
31、用软件,具有一定的开发经验,因此,在本次毕业设计中,能够按照规范的软件设计流程,参照已有知识,根据要求设计出符合目标的成果出来。另外,在设计中,对存在的问题,可在指导老师的指点下,对问题进行分析,并且提出可行的解决方案,及时修改程序的问题,对程序进行测试,尽可能的完善本设计。4.3.3 设计目的本文描述了一个信息加密与隐藏工具的设计和实现,先从理论上进行总体阐述,接着对功能的实现进行具体的分析和设计,从安全性的角度来说,本设计成果不适合用于实际生活中,但从教学的角度来考虑,通过课堂上的演示,可使学生更好理解这方面的知识原理,增强教学效果。4.4 信息加密与隐藏设计过程分析4.4.1 信息加密本
32、功能的设计是用对称加密算法件来实现对文本文件的加密,文本文件是指TXT格式的文件,由于算法上的限制,文件的内容除去了中文字符,操作的是ASCII字符,每个字符只占用一个字节的空间,这样便于处理。首先,选择文件格式,并选择所操作的文件,相应的代码实现如下: OpenFileDialog1.Filter = 所有文件(*.*)|*.*|文本文件(*.text)|(*.text) Result = OpenFileDialog1.ShowDialog() If Result = DialogResult.OK And Len (OpenFileDialog1.FileName) 0 Then Tex
33、tBox1.Text = OpenFileDialog1.FileName str = TextBox1.Text If RadioButton1.Checked = True Then RichTextBox1.Enabled = True RichTextBox1.Visible = True PictureBox2.Visible = False GroupBox3.Text = 文本 FileOpen (1,str,OpenMode.Input) text = LineInput (1) PictureBox1.Visible = False RichTextBox1.Text = t
34、ext mstr = text FileClose (1) ElseIf RadioButton2.Checked = True Then RichTextBox1.Visible = False GroupBox3.Text = 隐藏图片 PictureBox2.Visible = True PictureBox1.Visible = True RichTextBox1.Text = RichTextBox1.Enabled = False PictureBox1.Image = Image.FromFile (str) Else : MsgBox(请选择文件格式) End If End I
35、f文件选定后,文件的内容就可以一通过LineInput()函数提取出来并显示到控见上,然后再惦记加密按扭,实现对文件的加密,这个过程包括了生成消息文摘,并将消息文摘附加到原文件之后,组成一个新的文件,为了不让外界看到文件的具体内容,必须对新组合的文件再进行依次加密。工作完成之后,系统会提示用户进行接下来的操作。加密时用的加密算法与生成消息摘要的算法使用同一算法,在使用算法之前,为了是字符变换之后不超出可视ASCII字符集,首先要定义几个数值,用于恢复,如下:Const MIN_ASC = 32 Space.Const MAX_ASC = 126 .Const NUM_ASC = MAX_ASC
36、 - MIN_ASC + 1加密算法主要实现代码为:Public Function strEncrypt(ByVal from_text As String,ByVal password As String) As String Dim i As Integer Dim ch As Integer offset = NumericPassword(password) Rnd(-1) Randomize(offset) str_len = Len(from_text) For i = 1 To str_len ch = Asc(Mid$(from_text,i,1) If ch = MIN_AS
37、C And ch 4P3(x,y)相或图2 图片信息隐藏过程如图2所示,P1(x,y),P2(x,y),P3(x,y)的运算关系如下:P3(x,y)=(P1(x,y)&11110000)|(P2(x,y)4)图片象素点的排列类似于矩阵的格式,如图3: P1(x,y) Pn(x,y)图3 像素排列矩阵因此,必须在一个循环体中从左到右,从上至下,对每个象素点,从P1(x,y)到 Pn(x,y)进行上述位运算操作。经过以上步骤之后,图片信息已经隐藏在载体图片之中,P1(x,y)值已经变为P3(x,y),但为了是验证时成功,还必须在P3(x,y)中取几个象素点,来存放一些特殊的信息,用于验证,在这里,
38、取前8个象素点,并在每个象素点的低四位中按顺序存放0至7这八个数字信息,这样虽然改变了原来的低四位值,但只是有限的几个象素点被改变,所以并不会影响显示效果。具体的实现如下:P(x,y)= (P(x,y)&11110000)| I (I是从0到7的十进制数字)详细算法为:Private Sub Button2_Click(ByVal sender As System.Object,ByVal e As System.EventArgs) Handles Button2.Click If RadioButton2.Checked = True Then x = PictureBox1.Image.
39、Width y = PictureBox1.Image.Height pic1 = Me.PictureBox1.Image pic2 = Me.PictureBox2.Image For j = 0 To x -1 For i = 0 To y -1 c1 = pic1.GetPixel (j,i) c2 = pic2.GetPixel (j,i) a = c1.A rr = CInt(CByte(c1.R) And CByte(240) Or CByte(c2.R) 4) gg = CInt(CByte(c1.G) And CByte(240) Or CByte(c2.G) 4) bb =
40、 CInt(CByte(c1.B) And CByte(240) Or CByte(c2.B) 4) If rr 255 Then rr = 255 If gg 255 Then gg = 255 If bb 255 Then bb = 255 c1 = c1.FromArgb (a,rr,gg,bb) pic1.SetPixel (j,i,c1) Next PictureBox1.Refresh () Next For j = 0 To 7 c1 = pic1.GetPixel (j,0) a = c1.A rr = CInt(CByte(c1.R) And CByte(240) Or CB
41、yte(j + 1) gg = CInt(CByte(c1.G) And CByte(240) Or CByte(j + 1) bb = CInt(CByte(c1.B) And CByte(240) Or CByte(j + 1) c1 = c1.FromArgb (a,rr,gg,bb) pic1.SetPixel (j,0,c1) Next MsgBox(图片信息隐藏成功) End If If RadioButton1.Checked = True Then RichTextBox1.Text = strEncrypt (RichTextBox1.Text,123456) MsgBox(
42、文本加密成功) End If End Sub在这之后,就已经完成了对图片的信息隐藏工作。4.5 解密与隐藏信息提取设计过程分析4.5.1 文本信息的解密在完成对文本文件的加密后,加密文件被保存下来,由于该文件是由原文件明文信息和Hash信息附加到尾部组合成,因此文件的长度是明文的两倍,当验证的时候,需要将两部分信息分开,并分别对两部分信息进行相应的操作。首先,由于整个加密文件已经加过密,应通过DeStrEncrypt()进行一次解密,因为是对称加密算法,密钥与加密时相同,都是“123456”,解密过程与加密过程进行相反操作,加密时需要对每个字符加一个位移量,则在解密时需要减去同样减去相同的位移
43、量,该位移量同样是由函数Numeric Password()计算获得。关键性代码为: For i = 1 To str_len ch = Asc(Mid$(from. text,i,1) If ch = MIN_ASC And ch = MAX_ASC Then ch = ch - MIN_ASC offset = Int(NUM_ASC + 1) * Rnd) ch = (ch - offset) Mod NUM_ASC) If ch 0 Then ch = ch + NUM_ASC ch = ch + MIN_ASC DeStrEncrypt = DeStrEncrypt & Chr$(c
44、h) End IfNext i主要计算公式如下:ch = (ch - offset) Mod NUM_ASC)当ch进行如上操作时,可能回超出规定的ASCII字符的范围,因此需要加如下的条件:If ch 0 Then ch = ch + NUM_ASC当超出范围时,通过加一个NUM_ASC使其处在规定的ASCII字符的范围内,此时,经过该步骤之后,获得了解密后的加密文件,假设表示为Msg1,它由明文MsgA和消息摘要MsgB组成,它们之间的关系如下:Msg1=MsgA+ MsgB分离之后,用消息摘要算法对MsgA进行同样运算,可得到另一个消息摘要MsgB,运算关系如下:MsgB= strEncrypt (MsgA,123456)运算之后,将MsgB与MsgB进行比较,当两者完全相同时,则说明验证成功,否则会提示文件非法。主要代码为:If RadioButton1.Checked = True
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 突破学习困境教育视角下的学生生涯规划优化策略
- 科技教育中的德育元素与素质教育
- 小学英语课《This is my home》教学设计与反思
- 个人股权委托代持合同
- 个人自建房质押贷款合同
- 临时劳动合同安全免责约定
- 个人房产转让合同A
- 事业单位临时工劳动合同
- 2025年城市公共交通燃油供应合同
- 上海销售合同范本
- 屋面细石混凝土保护层施工方案及方法
- 2024年1月山西省高三年级适应性调研测试(一模)理科综合试卷(含答案)
- 110kv各类型变压器的计算单
- 双减政策之下老师如何打造高效课堂
- 5A+Chapter+1+Changes+at+home+课件(新思维小学英语)
- 安徽省2023年中考数学试卷(附答案)
- 护工(陪护)培训教材(完整版)资料
- 机械加工生产计划排程表
- 女性生殖系统解剖与生理 生殖系统的血管淋巴和神经
- 易制毒化学品安全管理制度汇编
- GB/T 35506-2017三氟乙酸乙酯(ETFA)
评论
0/150
提交评论