浅析信息加密与隐藏的方法_第1页
浅析信息加密与隐藏的方法_第2页
浅析信息加密与隐藏的方法_第3页
浅析信息加密与隐藏的方法_第4页
浅析信息加密与隐藏的方法_第5页
已阅读5页,还剩15页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

浅析信息加密与隐藏的方法摘要当今时代,随着电脑的普及应用和互联网的快速开展,网络中露出的平安问题引起普遍关注,网络的平安,主要是网络信息平安,需要采取相应的保护措施,提供适合的平安效劳,加密机制和信息隐藏技术作为保障网络信息平安的手段,可以保证信息的完整性、可鉴别性和不可否认性。在一些应用中,它只需要让指定接受人来验证,以确保信息的秘密性。本文主要研究了信息加密与隐藏技术,介绍信息平安的应用前景,通过掌握的知识来实现一个简单信息加密与隐藏工具,包含加密和信息隐藏的功能,处理的对象主要是针对文本和图片两种文件格式,使用简单的对称加密算法对文本进行加密,而在图片中隐藏另外一张图片信息。该设计旨在理解信息加密与隐藏技术在实际生活中的应用,从总体上阐述了它们的原理。另外,本设计成果可用于教学实验中。关键词:平安;加密;信息;隐藏TheDesignandImplementationofanInformationEncryptionandHidingToolAbstractInmoderntimes,withtheuniversalapplicationofcomputersandrapiddevelopmentoftheInternet,morepeoplehavepaidattentiontothesecurityissuesintheInternet.Thesecurityissuesmainlyrefertonetworkinformationsecurity,soitneedssomeprotectionmeasuresandprovidesappropriatesecurityservices.Astheprotectionmeasuresofinformationsecurity,theencryptionandinformationhidingtechnologyprovidesthefunctionsofintegration,authentication,andnon-repudiationforthesigningmessage.Insomeapplications,itonlyneedstobeverifiedbysomerecipientswhilekeepingthemessagesecretfrompublic.Thispapermainlyresearchestheinformationencryptionandhidingtechnologyandintroducestheapplicationprospectsoftheinformationsecurity.Basedontheacquiredknowledge,asimpleinformationencryptionandhidingtoolisdesigned,anditprovidesthefunctionsofencryptionandinformationhiding,andthehandingobjectreferstothetextandpicture.Thesymmetricencryptionalgorithmisappliedintothetextencryptionwhileapictureishiddeninanotherpicture.Thepurposeofthisdesignistomaketheapplicationofinformationencryptionandhidinginreallifeunderstood,aswellastodescribetheprinciplesofthetechnologyonthewhole.Inaddition,thedesigningresultcanbeappliedintotheteachingandexperiments.Keywords:security;encryption;information;hiding目录论文总页数:23页1引言11.1课题背景11.2本课题研究意义12信息隐藏技术12.1信息隐藏简介12.2信息隐藏技术的分类22.3信息隐藏关键技术32.4信息隐藏的应用领域33加解密相关技术43.1密码学知识4密钥和算法4对称密钥算法4非对称密钥算法54实现一个信息加密与隐藏工具64.1设计思路6界面设计思路6信息加密设计思路6信息隐藏设计思路64.2设计流程6信息加密流程6信息隐藏流程7信息解密流程7隐藏信息提取流程74.3设计前言8设计工具8已有设计条件8设计目的84.4信息加密与隐藏设计过程分析8信息加密8信息隐藏114.5解密与隐藏信息提取设计过程分析15文本信息的解密15隐藏信息的提取164.6实例运行与测试18信息加密与隐藏过程18解密与隐藏信息提取过程19结论21参考文献21引言课题背景当今时代,随着电脑的普及应用和互联网的快速开展,网络已经融入人们的生活之中,网络中露出的平安问题引起普遍关注,网络的开放性与共享性也导致了网络的平安性受到严重影响,在开放的Internet平台上,社会生活中传统的犯罪和不道德行为将变得更加隐蔽和难以控制。人们从面对面的交易和作业,变成网上互不见面的操作、没有国界、没有时间限制,就产生了更大的平安隐患。如何保证网上传输的数据的平安和对方的身份确认,对网络提出了挑战。本课题研究意义加密与信息隐藏技术成为保障网络信息平安的手段。这种机制可以保证信息传输的保密性、数据交换的完整性,发送信息的不可否认性,身份确实定性。随着网络技术和软件技术的飞速开展,信息革命带来了全球范围市场竞争的日益加剧,同时对传统的办公和生活方式也产生了巨大冲击。在计算机通信系统中,维护电子文档的平安成为至关重要和非常敏感的问题,保证重要信息在传输过程中的平安性在电子商务、电子政务等领域发挥着越来越大的作用。信息隐藏与信息加密是不尽相同的,信息加密是隐藏信息的内容,而信息隐藏是隐藏信息的存在性,信息隐藏比信息加密更为平安,因为它不容易引起攻击者的注意。本文主要介绍信息加密与隐藏的实现。信息隐藏技术信息隐藏简介信息隐藏〔InformationHiding〕,也称作数据隐藏〔DataHiding〕。简单来讲,信息隐藏是指将某一信号〔一般称之为签字信号,SignatureSignal〕嵌入〔embedding〕另一信号〔一般称之为主信号,HostSignal,或称之为掩护媒体,cover-media〕的过程,掩护媒体经嵌入信息后变成一个伪装媒体〔stegano-media〕。这一嵌入过程需要满足以下条件:1.签字信号的不可感知性〔Imperceptibility〕。换句话讲,签字信号嵌入后,主信号的感知特性没有明显的改变,签字信号被主信号“隐藏”了起来。2.签字信号的鲁棒性〔Robustness〕。签字信号对主信号的各种失真变换,如失真信号压缩、仿射变换、加噪、A/D或D/A转换等,以及各种恶意性攻击〔MaliciousAttack〕,都应表达出一定的鲁棒性。除非主信号的感知特性被明显的破坏,签字信号将很难被去除。3.一般来讲,签字信号的嵌入不增加主信号的存储空间和传输带宽。也就是说,签字信号嵌入后,“外表”上很难觉察到信息的改变。信息隐藏的开展历史可以一直追溯到“匿形术〔Steganography〕”的使用。“匿形术”一词来源于古希腊文中“隐藏的”和“图形”两个词语的组合。虽然“匿形术”与“密码术〔Cryptography〕”都是致力于信息的保密技术,但是,两者的设计思想却完全不同。“密码术”主要通过设计加密技术,使保密信息不可读,但是对于非授权者来讲,虽然他无法获知保密信息的具体内容,却能意识到保密信息的存在。而“匿形术”那么致力于通过设计精妙的方法,使得非授权者根本无从得知保密信息的存在与否。相对于现代密码学来讲,信息隐藏的最大优势在于它并不限制对主信号的存取和访问,而是致力于签字信号的平安保密性。信息隐藏技术的分类根据应用背景的不同,信息隐藏技术大致可分为三类:1.版权保护〔CopyrightProtection〕到目前为止,信息隐藏技术的绝大局部研究成果都是在这一应用领域中取得的。信息隐藏技术在应用于版权保护时,所嵌入的签字信号通常被称作“数字水印〔DigitalWatermark〕”。版权保护所需嵌入的数据量最小,但对签字信号的平安性和鲁棒性要求也最高,甚至是十分苛刻的。为明确起见,应用于版权保护的信息隐藏技术一般称作“鲁棒型水印技术”,而所嵌入的签字信号那么相应的称作“鲁棒型水印〔RobustWatermark〕”,从而与下文将要提到的"脆弱型水印"区别开来。而一般所提到的“数字水印”那么多指鲁棒型水印。2.数据完整性鉴定〔IntegrityAuthentication〕数据完整性鉴定,又称作数据篡改验证〔TamperProof〕,是指对某一信号的真伪或完整性的判别,并进一步需要指出该信号与原始真实信号的差异,即提供有关证据指明真实信号可能经历的篡改操作。更形式化的讲,假定接收到一多媒体信号g〔图像、音频或视频信号〕,初步判断它很可能是某一原始真实信号f的修改版本。数据篡改验证的任务就是在对原始信号f的具体内容不可知的情况下,以最大的可能判断是否g=f。3.扩充数据的嵌入〔AugmentationDataEmbedding〕扩充数据包括对主信号的描述或参考信息、控制信息以及其它媒体信号等等。描述信息可以是特征定位信息、标题或内容注释信息等,而控制信息的嵌入那么可实现对主信号的存取控制和监测。例如,一方面针对不同所有权级别的用户,可以分别授予不同的存取权限。另一方面,也可通过嵌入一类通常被称作“时间印章〔TimeStamp〕”的信息,以跟踪某一特定内容对象的创立、行为以及被修改的历史。这样,利用信息隐藏技术可实现对这一对象历史使用操作信息的记录,而无需在原信号上附加头文件或历史文件,因为使用附加文件,一来容易被改动或丧失,二来需要更多的传输带宽和存储空间。信息隐藏关键技术信息隐藏技术的关键在于如何处理签字信号的鲁棒性、不可感知性、以及所嵌入的数据量这三者之间的关系。判断信息隐藏算法优劣的一般衡量准那么为:1.对于主信号发生的局部失真,签字信号是否具备一定的鲁棒性。2.对于有意或无意的窃取、干扰或去除操作,签字信号是否具备一定的"抵抗"能力,从而保证隐藏信息的平安可靠和完整性。3.签字信号的嵌入是否严重降低了主信号的感知效果。4.数据嵌入量的大小。对于某一特定的信息隐藏算法来讲,它不可能在上述的衡量准那么下同时到达最优。显然,数据的嵌入量越大,签字信号对原始主信号感知效果的影响也会越大;而签字信号的鲁棒性越好,其不可感知性也会就随之降低,反之亦然。由于信息隐藏的应用领域十分宽广,不同的应用背景对其技术要求也不尽相同。因此,有必要从不同的应用背景出发对信息隐藏技术进行分类,进而分别研究它们的技术需求。信息隐藏的应用领域随着信息隐藏技术的开展,它的应用领域也得到了扩展,信息隐藏的根本应用领域是版权保护、隐藏标识、认证和平安不可见通信。当应用于版权保护时,潜在的应用市场在于电子商务、在线或离线地分发多媒体内容以及大规模的播送效劳。信息隐藏用于隐藏标识时,可在医学、制图、数字成像、数字图像监控、多媒体索引和基于内容的检索等领域得到应用。信息隐藏的认证方面主要ID卡、信用卡、ATM卡等上面信息的平安不可见通信将在国防和情报部门得到广泛的应用。多媒体技术的飞速开展和Internet的普及带来了一系列政治、经济、军事和文化问题,产生了许多新的研究热点,以下几个引起普遍关注的问题构成了信息隐藏的研究背景。国内目前在证件防伪领域面临巨大的商机,由于缺少有效的措施,使得“造假”、“买假”、“用假”成风,已经严重地干扰了正常的经济秩序,对国家的形象也有不良影响。通过信息隐藏技术可以确认该证件的真伪,使得该证件无法仿制。数字作品〔如电脑美术、扫描图像、数字音乐、视频、三维动画〕的版权保护是当前的热点问题。由于数字作品的拷贝、修改非常容易,而且可以做到与原作完全相同,所以原创者不得不采用一些严重损害作品质量的方法来加上版权标志,而这种明显可见的标志很容易被篡改。目前市场上的信息隐藏产品在技术上还不成熟,很容易被破坏或破解,距离真正的实用还有很长的路要走。加解密相关技术密码学知识密钥和算法密码算法也叫密码,是用于加密和解密的数学函数。〔通常情况下,有两个相关的函数:一个用作加密,另一个用作解密〕如果算法的保密性是基于保持算法的秘密,这种算法称为受限制的算法。受限制的算法具有历史意义,但按现在的标准,它们的保密性已远远不够。大的或经常变换的用户组织不能使用它们,因为每有一个用户离开这个组织,其它的用户就必须改换另外不同的算法。如果有人无意暴露了这个秘密,所有人都必须改变他们的算法。现代密码学用密钥解决了这个问题,密钥用K表示。K可以是很多数值里的任意值。密钥K的可能值的范围叫做密钥空间。加密和解密运算都使用这个密钥〔即运算都依赖于密钥,并用K作为下标表示〕,这样,加解密函数现在变成:EK(M)=CDK(C)=M这些函数具有下面的特性:DK(EK(M))=M有些算法使用不同的加密密钥和解密密钥,也就是说加密密钥K1与相应的解密密钥K2不同,在这种情况下:EK1(M)=CDK2(C)=MDK2(EK1(M))=M所有这些算法的平安性都基于密钥的平安性;而不是基于算法的细节的平安性。这就意味着算法可以公开,也可以被分析,可以大量生产使用算法的产品,即使偷听者知道你的算法也没有关系;如果他不知道你使用的具体密钥,他就不可能阅读你的消息。总之,密码系统由算法、以及所有可能的明文、密文和密钥组成的。对称密钥算法对称算法有时又叫传统密码算法,就是加密密钥能够从解密密钥中推算出来,反过来也成立。在大多数对称算法中,加解密密钥是相同的。这些算法也叫秘密密钥算法或单密钥算法,它要求发送者和接收者在平安通信之前,商定一个密钥。对称算法的平安性依赖于密钥,泄漏密钥就意味着任何人都能对消息进行加解密。只要通信需要保密,密钥就必须保密。对称算法的加密和解密表示为:EK(M)=CDK(C)=M对称算法可分为两类。一次只对明文中的单个比特〔有时对字节〕运算的算法称为序列算法或序列密码。另一类算法是对明文的一组比特亚行运算,这些比特组称为分组,相应的算法称为分组算法或分组密码。对称加密的缺点在于密钥的管理过于复杂。如果任何一对发送方和接收方都有他们各自商议的密钥的话,那么很明显,假设有N个用户进行对称加密通信,如果按照上述方法,那么他们要产生N(N-1)把密钥,每一个用户要记住或保存N-1把密钥,当N很大时,记住是不可能的,而保存起来又会引起密钥泄漏可能性的增加。常用的对称加密算法有DES,DEA等。非对称密钥算法公开密钥算法〔也叫非对称算法〕是这样设计的:用作加密的密钥不同于用作解密的密钥,而且解密密钥不能根据加密密钥计算出来〔至少在合理假定的长时间内〕。之所以叫做公开密钥算法,是因为加密密钥能够公开,即陌生者能用加密密钥加密信息,但只有用相应的解密密钥才能解密信息。在这些系统中,加密密钥叫做公开密钥〔简称公钥〕,解密密钥叫做私人密钥〔简称私钥〕。私人密钥有时也叫秘密密钥。为了防止与对称算法混淆,此处不用秘密密钥这个名字。用公开密钥K加密表示为:EK(M)=C虽然公开密钥和私人密钥是不同的,但用相应的私人密钥解密可表示为:DK(C)=M有时消息用私人密钥加密而用公开密钥解密,尽管可能产生混淆,但这些运算可分别表示为:EK(M)=CDK(C)=M当前的公开密码算法的速度,比起对称密码算法,要慢的多,这使得公开密码算法在大数据量的加密中应用有限。非对称加密的优点在于用户不必记忆大量的提前商定好的密钥,因为发送方和接收方事先根本不必商定密钥,发放方只要可以得到可靠的接收方的公开密钥就可以给他发送信息了,而且即使双方根本互不相识。但为了保证可靠性,非对称加密算法需要一种与之相配合使用的公开密钥管理机制,这种公开密钥管理机制还要解决其他一些公开密钥所带来的问题。常用的非对称加密算法有RSA等。实现一个信息加密与隐藏工具设计思路界面设计思路本设计根据前面理论的分析,从信息加密与隐藏两个主要方面着手,将两大块分开进行独立设计,做成不同的功能界面,每局部功能又都分别包括了对文本文件和图片文件的操作。为了方便操作与演示,因此在界面设计上不用很复杂,只需要用有限的几个控件来实现不同的功能,通过某个控件选择不同的文件,再通过相应的按钮对所选文件进行不同操作。信息加密设计思路在实现对文本文件的加密与解密时,将文件内容固定为非中文字符,即常用的ASCII字符,并采用对称加密算法来实现,算法选择用自己编写的简单的位操作算法,且将密钥固定为值。信息隐藏设计思路在实现对图片文件的信息隐藏与提取时,采用基于数字水印的技术,图片格式固定为.BMP格式的文件,隐藏的过程就是通过在所选的图片中嵌入其他的图片,并在图片中参加特殊的信息,而验证的过程就是对图片中的特殊信息进行提取,如果包含有特殊信息,那么说明已对文件进行信息隐藏,验证成功后将隐藏在载体文件中的图片信息显示出来。设计流程信息加密流程文本文件的内容是由可见ASCII字符组成,每个ASCII字符都有对应的字符值,在对其进行加密时,可采用对称加密算法,对每个字符值进行某一范围内的规律变换,变换后字符显示会与原先的字符不一样,如此循环的对每个字符进行相同操作,就可将明文信息变换成密文信息,最后将密文信息附加到明文信息结尾局部,生成一个新的文本文件,接着再次将整个文本文件进行加密,为的是在信息的传输中,保护信息。详细的步骤如下:1.选择所要加密的文本文件;2.用对称加密算法对文本文件进行加密,生成附加信息;3.将已经生成的附加信息添加到原明文文件后,重新生成一个新的文本文件;4.再次对新的文本文件进行加密;5.将整个加密文件保存保存;信息隐藏流程本设计中的信息隐藏主要是针对图片文件,即在一张图片中隐藏另外一张图片信息,图片文件的格式为.BMP格式,图片文件的度量单位是由像素点构成,许多不同颜色值的像素点组合在一起就可以构成一张图片,在对图片文件进行操作时就是以像素点为根本单位进行操作,将图片信息隐藏在像素点中,像素点是由8位二进制值组成,只要将信息隐藏到二进制中就可以,最后为了使验证方便,在对前几个像素点的值进行规律变化,而对整张图片的显示无大的影响。详细的步骤如下:1.选择所要隐藏的图片文件;2.提取每个像素点的信息值;3.获取信息图片的像素点信息值,并将其隐藏的载体图片中;4.生成新的图片,将前几个像素点进行变换;5.保存整个图片文件;信息解密流程加密后的文本文件是由两局部组成的,一是原明文信息,二是消息摘要,并且两局部组合在一起加密后构成加密文件,在进行解密时,需要将两部现分开,这就先要解密,由于消息摘要的长度和明文信息的长度是相同的,这就便于提取,之后将获取到的明文信息值用相同的加密算法进行加密,加密后的信息于消息摘要进行比拟,如果相同,那么说明解密成功。详细的步骤如下:1.选择所要解密的文本文件;2.对文件解密,从中提取明文信息和附加信息;3.对明文信息加密,得到另一附加信息;4.将两个附加信息进行比拟;5.相同,那么说明信息在传输中没有被改变,否那么不然;隐藏信息提取流程对图片文件的信息提取如同对其进行隐藏一样,只需要涉及到对像素点值的操作,首先要对图片的前几个像素点进行提取,验证其是否按照隐藏时的规律排列,如是,那么说明有隐藏信息,接着,将隐藏到载体图片像素点中的信息通过位操作变换出来,使其为显示图片的像素点。详细步骤如下:1.选择所要提取隐藏信息的图片文件;2.提取前几个像素点,验证其是否按照隐藏规律排列;3.验证成功时,变换图片的每个像素点值;4.将隐藏的图片信息显示出来;设计前言设计工具本次设计采用的是微软的.NET2003开发平台,用VB.NET语言进行设计,由于VB.NET是可视化的开发工具,且又是面向对象的语言,对于界面的设计相当方便和上手,而且语言中封装的函数可提供所需的功能作用,使得本次设计在程序结构上清晰而且标准。已有设计条件首先对VB.NET有系统的学习过,熟悉其语法规那么,了解该程序语言的特点,在平时的学习中,曾经设计过简单的应用软件,具有一定的开发经验,因此,在本次毕业设计中,能够按照标准的软件设计流程,参照已有知识,根据要求设计出符合目标的成果出来。另外,在设计中,对存在的问题,可在指导老师的指点下,对问题进行分析,并且提出可行的解决方案,及时修改程序的问题,对程序进行测试,尽可能的完善本设计。设计目的本文描述了一个信息加密与隐藏工具的设计和实现,先从理论上进行总体阐述,接着对功能的实现进行具体的分析和设计,从平安性的角度来说,本设计成果不适合用于实际生活中,但从教学的角度来考虑,通过课堂上的演示,可使学生更好理解这方面的知识原理,增强教学效果。信息加密与隐藏设计过程分析信息加密本功能的设计是用对称加密算法件来实现对文本文件的加密,文本文件是指TXT格式的文件,由于算法上的限制,文件的内容除去了中文字符,操作的是ASCII字符,每个字符只占用一个字节的空间,这样便于处理。首先,选择文件格式,并选择所操作的文件,相应的代码实现如下:OpenFileDialog1.Filter="所有文件(*.*)|*.*|文本文件(*.text)|(*.text)"Result=OpenFileDialog1.ShowDialog()IfResult=DialogResult.OKAndLen(OpenFileDialog1.FileName)>0ThenTextBox1.Text=OpenFileDialog1.FileNamestr=TextBox1.TextIfRadioButton1.Checked=TrueThenRichTextBox1.Enabled=TrueRichTextBox1.Visible=TruePictureBox2.Visible=FalseGroupBox3.Text="文本"FileOpen(1,str,OpenMode.Input)text=LineInput(1)PictureBox1.Visible=FalseRichTextBox1.Text=textmstr=textFileClose(1)ElseIfRadioButton2.Checked=TrueThenRichTextBox1.Visible=FalseGroupBox3.Text="隐藏图片"PictureBox2.Visible=TruePictureBox1.Visible=TrueRichTextBox1.Text=""RichTextBox1.Enabled=FalsePictureBox1.Image=Image.FromFile(str)Else:MsgBox("请选择文件格式")EndIfEndIf文件选定后,文件的内容就可以一通过LineInput()函数提取出来并显示到控见上,然后再惦记加密按扭,实现对文件的加密,这个过程包括了生成消息文摘,并将消息文摘附加到原文件之后,组成一个新的文件,为了不让外界看到文件的具体内容,必须对新组合的文件再进行依次加密。工作完成之后,系统会提示用户进行接下来的操作。加密时用的加密算法与生成消息摘要的算法使用同一算法,在使用算法之前,为了是字符变换之后不超出可视ASCII字符集,首先要定义几个数值,用于恢复,如下:ConstMIN_ASC=32'Space.ConstMAX_ASC=126'~.ConstNUM_ASC=MAX_ASC-MIN_ASC+1加密算法主要实现代码为:PublicFunctionstrEncrypt(ByValfrom_textAsString,ByValpasswordAsString)AsStringDimiAsIntegerDimchAsIntegeroffset=NumericPassword(password)Rnd(-1)Randomize(offset)str_len=Len(from_text)Fori=1Tostr_lench=Asc(Mid$(from_text,i,1))Ifch>=MIN_ASCAndch<=MAX_ASCThench=ch-MIN_ASCOffset=Int((NUM_ASC+1)*Rnd())ch=((ch+offset)ModNUM_ASC)ch=ch+MIN_ASCstrEncrypt=strEncrypt&Chr(ch)EndIfNextiEndFunctionPublicFunctionNumericPassword(ByValpasswordAsString)AsLongDimvalueAsLongDimchAsLongDimshift1AsLongstr_len=Len(password)Fori=1Tostr_lench=Asc(Mid$(password,i,1))value=valueXor(ch*2^shift1)value=valueXor(ch*2^shift2)shift1=(shift1+7)Mod19shift2=(shift2+13)Mod23NextiNumericPassword=valueEndFunction在以上的算法中用到了随即生成位移量值的函数NumericPassword()。其中password为程序中指定的密钥“123456”。经过上述运算之后,生成加密文件,它的内容会显示在控件中,此时的内容在外界看来是无法获取到真实内容的,而且文件的长度是原明文文件长度的两倍,因为该算法只是改变字符的ASCII值,并不会增加文件的长度。为了在解密验证时使用,必须将加密文件的内容保存下来,点击保存按扭,文件回保存到默认的盘符下。加密算法的流程如以下图1:开始开始附加消息新文件加密文件将明文与附加消息合并将明文文件加密加密图1文本信息加密过程上述对文本文件加密时,用的是对称加密算法,而实际中多用的是非对称加密算法,用发送方的公钥进行加密,验证解密时用的是私钥,这样做平安性会更高,且实际应用价值更广。信息隐藏图片文件由于不同于文本文件,对其进行信息隐藏可参考数字水印技术,数字水印〔DigitalWatermark〕技术是将与多媒体内容相关或不相关的一些标示信息直接嵌入多媒体内容当中,但不影响原内容的使用价值,并不容易被人的知觉系统觉察或注意到。通过这些隐藏在多媒体内容中的信息,可以到达确认内容创立者,或者是否真实完整。基于数字水印的这种特性,可以很好的将其应用到对图片的信息隐藏中,因为对图片的处理是将信息图片的内容隐藏到载体图片中,而且图片的内容又是由像素点构成,图片的信息隐藏技术可以用像素来隐藏信息。图片文件有不同的格式,在这里只研究Bmp格式的文件,Bmp是Windows位图,它可用于任何颜色深度〔从黑白到24位颜色〕,图片内容是保存在被称为象素的单位中,象素中包含有三种颜色值,分别是红(R),绿(G),蓝(B),三种颜色值的不同组合可形成不同的颜色,每种颜色值占一个字节,即8位二进制位。根据二进制到十进制的转换规那么,高位值代表的十进制数比低位值要大,因此可以将颜色值的每位二进制位划分为不同的位平面,越高位对图片的显示效果影响越大,而较低位的变化影响较小。上述特点说明图片颜色值的高位在效果显示上奉献最大,低几位的变化对显示效果的影响从肉眼上很难分辨出来。因此,在对图片处理时,可以将得数信息隐藏在图片象素的低几位中,经过实验,可取4位值来隐藏信息位。现将图片信息隐藏算法如下设计:假设原载体图片和隐藏图片的尺寸的大小相同;P1(x,y)表示为原载体图像象素点;P2(x,y)表示为相应载体图像位置的隐藏图像象素点;P3(x,y)表示为添加了隐藏信息后相对应载体图像位置的图像象素点;x,y是逻辑坐标系中的坐标轴,单位是象素;为了将信息隐藏在图片中,需对相同位置的象素点进行位操作,由于只能存取4位信息,那么应当将隐藏图片的高4位隐藏在载体图片的低4位中,这样既不会影响显示效果,有可以在验证时将隐藏图片显示出来。首先,将P1(x,y)的低4位清空,这样做是为了不影响隐藏图片的象素值,其次,应将P2(x,y)的高4位移动到低4位,使得原来的高4位清空。P1(xP1(x,y)P1(x,y)&240P2(x,y)P2(x,y)>>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:PP1〔x,y〕Pn(x,y)图3像素排列矩阵因此,必须在一个循环体中从左到右,从上至下,对每个象素点,从P1(x,y)到Pn(x,y)进行上述位运算操作。经过以上步骤之后,图片信息已经隐藏在载体图片之中,P1(x,y)值已经变为P3(x,y),但为了是验证时成功,还必须在P3(x,y)中取几个象素点,来存放一些特殊的信息,用于验证,在这里,取前8个象素点,并在每个象素点的低四位中按顺序存放0至7这八个数字信息,这样虽然改变了原来的低四位值,但只是有限的几个象素点被改变,所以并不会影响显示效果。具体的实现如下:P(x,y)=(P(x,y)&11110000)||I(I是从0到7的十进制数字)详细算法为:PrivateSubButton2_Click(ByValsenderAsSystem.Object,ByValeAsSystem.EventArgs)HandlesButton2.ClickIfRadioButton2.Checked=TrueThenx=PictureBox1.Image.Widthy=PictureBox1.Image.Heightpic1=Me.PictureBox1.Imagepic2=Me.PictureBox2.ImageForj=0Tox-1Fori=0Toy-1c1=pic1.GetPixel(j,i)c2=pic2.GetPixel(j,i)a=c1.Arr=CInt((CByte(c1.R)AndCByte(240))OrCByte(c2.R)>>4)gg=CInt((CByte(c1.G)AndCByte(240))OrCByte(c2.G)>>4)bb=CInt((CByte(c1.B)AndCByte(240))OrCByte(c2.B)>>4)Ifrr<0Thenrr=0Ifrr>255Thenrr=255Ifgg<0Thengg=0Ifgg>255Thengg=255Ifbb<0Thenbb=0Ifbb>255Thenbb=255c1=c1.FromArgb(a,rr,gg,bb)pic1.SetPixel(j,i,c1)NextPictureBox1.Refresh()NextForj=0To7c1=pic1.GetPixel(j,0)a=c1.Arr=CInt((CByte(c1.R)AndCByte(240))OrCByte(j+1))gg=CInt((CByte(c1.G)AndCByte(240))OrCByte(j+1))bb=CInt((CByte(c1.B)AndCByte(240))OrCByte(j+1))c1=c1.FromArgb(a,rr,gg,bb)pic1.SetPixel(j,0,c1)NextMsgBox("图片信息隐藏成功")EndIfIfRadioButton1.Checked=TrueThenRichTextBox1.Text=strEncrypt(RichTextBox1.Text,"123456")MsgBox("文本加密成功")EndIfEndSub在这之后,就已经完成了对图片的信息隐藏工作。解密与隐藏信息提取设计过程分析文本信息的解密在完成对文本文件的加密后,加密文件被保存下来,由于该文件是由原文件明文信息和Hash信息附加到尾部组合成,因此文件的长度是明文的两倍,当验证的时候,需要将两局部信息分开,并分别对两局部信息进行相应的操作。首先,由于整个加密文件已经加过密,应通过DeStrEncrypt()进行一次解密,因为是对称加密算法,密钥与加密时相同,都是“123456”,解密过程与加密过程进行相反操作,加密时需要对每个字符加一个位移量,那么在解密时需要减去同样减去相同的位移量,该位移量同样是由函数NumericPassword()计算获得。关键性代码为:Fori=1Tostr_lench=Asc(Mid$(from.text,i,1))Ifch>=MIN_ASCAndch<=MAX_ASCThench=ch-MIN_ASCoffset=Int((NUM_ASC+1)*Rnd)ch=((ch-offset)ModNUM_ASC)Ifch<0Thench=ch+NUM_ASCch=ch+MIN_ASCDeStrEncrypt=DeStrEncrypt&Chr$(ch)EndIfNexti主要计算公式如下:ch=((ch-offset)ModNUM_ASC)当ch进行如上操作时,可能回超出规定的ASCII字符的范围,因此需要加如下的条件:Ifch<0Thench=ch+NUM_ASC当超出范围时,通过加一个NUM_ASC使其处在规定的ASCII字符的范围内,此时,经过该步骤之后,获得了解密后的加密文件,假设表示为Msg1,它由明文MsgA和消息摘要MsgB组成,它们之间的关系如下:Msg1=MsgA+MsgB别离之后,用消息摘要算法对MsgA进行同样运算,可得到另一个消息摘要MsgB’,运算关系如下:MsgB’=strEncrypt(MsgA,"123456")运算之后,将MsgB与MsgB’进行比拟,当两者完全相同时,那么说明验证成功,否那么会提示文件非法。主要代码为:IfRadioButton1.Checked=TrueThenstrtemp1=DeStrEncrypt(RichTextBox1.Text,"123456")str=strtemp1.Substring(halflen,halflen)strtemp2=strtemp1.Substring(0,halflen)strtemp2=DeStrEncrypt(strtemp2,"123456")IfString.Compare(str,strtemp2)=0ThenRichTextBox1.Text=strtemp2MsgBox("验证成功!")ElseIfString.Compare(str,strtemp2)<>0ThenMsgBox("非法文件,来源不明!")EndIfEndIf详细流程如图4:加密文件加密文件MsgBMsgAMsgB’解密加密比拟验证图4解密过程隐藏信息的提取完成对图片的信息隐藏之后,验证工作就变得相对容易,对其验证也是根据同样的原理进行,首相,必须对特殊信息进行提取,只有经过信息隐藏后的文件才包含有特殊信息,当提取出特殊信息时,就说明验证成功,否那么失败,验证成功后,就应将隐藏信息显示出来,该过程是将象素的低四位值移到高四位。提取特殊信息时,只对前八个象素点进行操作验证,之前,在信息隐藏操作时,前八个象素点的低四位中依次隐藏着0至7的数字信息,验证时,顺序比拟,如果包含有这八个数字,那么说明是经过处理的文件,成功后,再显示隐藏图片。具体算法公式为:P2(x,y)=〔P3(x,y)&00001111〕<<4详细算法代码为:IfCInt((CByte(c.R)AndCByte(15)))

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论