基于DES算法实现文件完整性检测方法的研究
- 格式:pdf
- 大小:456.41 KB
- 文档页数:3
des算法实验报告DES算法实验报告一、引言数据加密标准(Data Encryption Standard,简称DES)是一种对称密钥加密算法,由IBM公司于1975年研发并被美国国家标准局(NBS)采纳为联邦信息处理标准(FIPS)。
二、算法原理DES算法采用了分组密码的方式,将明文数据划分为固定长度的数据块(64位),并通过密钥进行加密和解密操作。
其核心是Feistel结构,每轮加密操作包括置换和替代两个步骤。
1. 置换步骤DES算法的初始置换(IP)和逆初始置换(IP-1)通过一系列的位重排操作,将输入的64位明文数据打乱,以增加加密的强度。
2. 替代步骤DES算法中使用了8个S盒(Substitution Box),每个S盒接受6位输入,并输出4位结果。
S盒的作用是将输入的6位数据映射为4位输出,通过这种非线性的映射关系,增加了算法的安全性。
3. 轮函数DES算法的加密过程包含16轮迭代,每轮迭代中都会对数据进行一系列的位重排和替代操作。
其中,轮函数是DES算法的核心部分,它通过使用子密钥对数据进行异或操作,并通过S盒替代和P盒置换操作,产生新的数据块。
三、实验步骤为了更好地理解DES算法的加密过程,我们进行了以下实验步骤:1. 输入明文和密钥我们选择了一个64位的明文数据块和一个56位的密钥作为输入。
明文数据块经过初始置换(IP)后,得到L0和R0两个32位的数据块。
2. 生成子密钥通过对密钥进行置换和循环左移操作,生成16个48位的子密钥。
3. 迭代加密对明文数据块进行16轮的迭代加密,每轮加密包括以下步骤:a. 将R(i-1)作为输入,经过扩展置换(E-box),得到48位的扩展数据。
b. 将扩展数据和子密钥Ki进行异或操作,得到48位的异或结果。
c. 将异或结果分为8个6位的数据块,分别经过8个S盒替代操作,得到32位的S盒替代结果。
d. 将S盒替代结果经过P盒置换,得到32位的轮函数输出。
【精品】DES算法实验报告一、理论部分DES算法是一种对称加密算法,也是目前广泛应用的加密算法之一。
DES算法使用的是分组加密的思想,将明文数据分成一定长度的数据块,按照一定的算法进行加密,得到密文数据。
DES算法中的关键是密钥,只有持有正确密钥的人才能解密。
DES算法的密钥长度为64位,但由于存在弱密钥的问题,使用时需要特别注意。
DES算法的加密过程包括以下几个步骤:1、密钥的生成和处理:DES算法的密钥长度为64位,但由于存在弱密钥的问题,使用时需要使用程序进行特殊处理,以确保生成的密钥不为弱密钥。
2、初始置换(IP):将明文数据按照一定的规则进行置换,得到置换后的数据。
3、分组:将置换后的明文数据分成左半部分和右半部分。
4、轮函数(f函数):将右半部分进行扩展置换、异或运算、S盒代替、置换等操作,得到一个新的右半部分。
5、轮秘钥生成:生成本轮加密所需要的秘钥。
6、异或运算:将左半部分和右半部分进行异或运算,得到一个新的左半部分。
7、左右交换:将左右部分进行交换。
以上步骤循环执行16次,直到得到最终的密文数据。
二、实验部分本次实验使用C语言实现了DES算法的加密和解密过程。
具体实现过程包括以下几个部分:1、密钥的生成:使用DES算法生成64位密钥,其中包括了对弱密钥的处理。
2、置换:使用DES算法中的IP置换和IP逆置换进行数据置换。
3、轮函数:使用DES算法中的f函数进行一轮加密操作。
5、加密:循环执行16轮加密操作,得到密文数据。
以上实现过程全部基于DES算法的规范。
三、结果分析1、速度慢:由于DES算法采用的是分组加密的思想,需要执行多次操作才能得到最终结果。
因此本次实验的加密和解密速度相对较慢。
2、代码简单:本次实验的代码相对简单,只需要用到一些基本数据结构和算法即可实现DES算法的加密和解密过程。
但需要注意的是,由于DES算法本身的复杂性,代码实现中需要注意细节和边界问题。
四、总结本次实验使用C语言实现了DES算法的加密和解密过程,通过实验得到了一些结果。
实验项目与实验报告( 2 )学科:信息与网络安全 学号: 姓名: 时间: 月 日实验名称:DES算法的原理与实现实验目的:1.熟悉DES算法的实现程序和具体应用,加深对DES算法的了解。
实验内容:(写出实验内容要点或相关理论准备、实验估计)一、DES算法的简介DES算法为密码体制中的对称密码体制,又被称为美国数据加密标准,是1972年美国BM公司研制的对称密码体制加密算法。
明文按64位进行分组,密钥长64位,密钥事实上是56位参与DES运算(第8、16、24、32、40、48、56、64位是校验位,使得每个密钥都有奇数个1)分组后的明文组和56位的密钥按位代替或交换的方法形成密文组的加密方法。
1、基本原理其入口参数有三个:key、data、mode。
Key为加密解密使用的密钥,data为加密解密的数据,mode为其工作模式。
当模式为加密模式时,明文按照64为进行分组,形成明文组,key用于对数据加密,当模式为解密模式时,key用于对数据解密。
实际运用中,密钥只用到了64位中的56位,这样才具有高的安全性。
2、DES特点DES算法具有极高安全性,到目前为止,除了用穷举搜索法对DES算法进行攻击外,还没有发现更有效的办法。
而56位长的密钥的穷举空间为256,这意味着如果一台计算机的速度是每一秒钟检测一百万个密钥,则它搜索完全部密钥就需要将近2285年的时间,可见,这是难以实现的。
然而,这并不等于说DES是不可破解的。
而实际上,随着硬件技术和Intemet的发展,其破解的可能性越来越大,而且,所需要的时间越来越少。
为了克服DES密钥空间小的缺陷,人们又提出了三重DES的变形方式。
3、主要流程DES算法把64为的明文输入块变为64位的密文输入块,它所使用的密钥也是64位,整个算法的主要流程图如下:(1)置换规则表其功能是把输入的数据块按位重新组合,并把输出分为L0、R0两部分,每部分各长32位,其置换规则见下表:58,50,42,34,26,18,10,2,60,52,44,36,28,20,12,4,62,54,46,38,30,22,14,6,64,56,48,40,32,24,16,8,57,49,41,33,25,17,9,1,59,51,43,35,27,19,11,3,61,53,45,37,29,21,13,5,63,55,47,39,31,23,15,7,即将输入的第58位换到第一位,第50位换到第2位,...,依此类推,最后一位是原来的第7位。
des 加密算法实验报告DES加密算法实验报告一、引言数据加密标准(Data Encryption Standard,简称DES)是一种对称加密算法,由IBM公司于1975年研发并被美国联邦政府采用为标准加密算法。
DES算法具有高效、可靠、安全等特点,被广泛应用于信息安全领域。
本实验旨在通过对DES算法的实验研究,深入了解其原理、性能和应用。
二、DES算法原理DES算法采用对称密钥加密,即加密和解密使用相同的密钥。
其核心是Feistel结构,将明文分成左右两部分,经过16轮迭代加密后得到密文。
每一轮加密中,右半部分作为下一轮的左半部分,而左半部分则通过函数f和密钥进行变换。
DES算法中使用了置换、代换和异或等运算,以保证加密的安全性。
三、DES算法实验过程1. 密钥生成在DES算法中,密钥长度为64位,但实际上只有56位用于加密,8位用于奇偶校验。
实验中,我们随机生成一个64位的二进制密钥,并通过奇偶校验生成最终的56位密钥。
2. 初始置换明文经过初始置换IP,将明文的每一位按照特定规则重新排列,得到初始置换后的明文。
3. 迭代加密经过初始置换后的明文分为左右两部分,每轮加密中,右半部分作为下一轮的左半部分,而左半部分则通过函数f和子密钥进行变换。
函数f包括扩展置换、S盒代换、P盒置换和异或运算等步骤,最后与右半部分进行异或运算得到新的右半部分。
4. 逆初始置换经过16轮迭代加密后,得到的密文再经过逆初始置换,将密文的每一位按照特定规则重新排列,得到最终的加密结果。
四、DES算法性能评估1. 安全性DES算法的密钥长度较短,易受到暴力破解等攻击手段的威胁。
为了提高安全性,可以采用Triple-DES等加强版算法。
2. 效率DES算法的加密速度较快,适用于对大量数据进行加密。
但随着计算机计算能力的提高,DES算法的加密强度逐渐降低,需要采用更加安全的加密算法。
3. 应用领域DES算法在金融、电子商务、网络通信等领域得到广泛应用。
DES文件加密实验报告一、DES算法简介DES是Data Encryption Standard(数据加密标准)的缩写。
它是由IBM公司研制的一种加密算法,美国国家标准局于1977年公布把它作为非机要部门使用的数据加密标准,二十年来,它一直活跃在国际保密通信的舞台上,扮演了十分重要的角色。
DES是一个分组加密算法,他以64位为分组对数据加密。
同时DES也是一个对称算法:加密和解密用的是同一个算法。
它的密匙长度是56位(因为每个第8 位都用作奇偶校验),密匙可以是任意的56位的数,而且可以任意时候改变。
其中有极少量的数被认为是弱密匙,但是很容易避开他们。
所以保密性依赖于密钥。
二、用C#实现DES文件加密指定文件,输入密钥来加密和解密数据。
DESCryptoServiceProvider基于对称加密算法。
Symmetricencryption 需要一个密钥和一个初始化向量(IV) 加密请。
要解密的数据,必须具有相同的密钥和IV。
使用的加密提供程序来获取encryptingobject (CreateEncryptor) 创建CryptoStream类的一个实例,现有输出文件流对象的构造函数的一部分。
要解密文件,执行以下步骤:创建一个方法,并命名该按钮DecryptFile.解密过程是类似于theencryption 进程,但是,DecryptFile过程从EncryptFile过程的两个主要区别。
而不是CreateEncryptor使用CreateDecryptor来创建CryptoStream对象,用于指定如何使用该对象。
解密的文本写入目标文件,CryptoStream对象是现在而不是目标流的来源。
三、运行环境可将DES文件加解密软件的可执行.exe文件直接在xp,win7等系统上运行。
四、实验结果1、开始界面2、打开要加密文件、输入密钥3、加密4、打开要解密文件、输入密钥5、解密五、主要算法代码public static void EncryptFile(string sInputFilename, string sOutputFilename, string sKey){FileStream fsInput = new FileStream(sInputFilename, FileMode.Open, FileAccess.Read);FileStream fsEncrypted = new FileStream(sOutputFilename, FileMode.Create, FileAccess.Write);DESCryptoServiceProvider DES = new DESCryptoServiceProvider();DES.Key = ASCIIEncoding.ASCII.GetBytes(sKey);DES.IV = ASCIIEncoding.ASCII.GetBytes(sKey);ICryptoTransform desencrypt = DES.CreateEncryptor();CryptoStream cryptostream = new CryptoStream(fsEncrypted, desencrypt, CryptoStreamMode.Write);byte[] bytearrayinput = new byte[fsInput.Length];fsInput.Read(bytearrayinput, 0, bytearrayinput.Length);cryptostream.Write(bytearrayinput, 0, bytearrayinput.Length);cryptostream.Close();fsInput.Close();fsEncrypted.Close();}public static void DecryptFile(string sInputFilename, string sOutputFilename, string sKey){try{DESCryptoServiceProvider DES = new DESCryptoServiceProvider();DES.Key = ASCIIEncoding.ASCII.GetBytes(sKey);DES.IV = ASCIIEncoding.ASCII.GetBytes(sKey);FileStream fsread = new FileStream(sInputFilename, FileMode.Open, FileAccess.Read);ICryptoTransform desdecrypt = DES.CreateDecryptor();CryptoStream cryptostreamDecr = new CryptoStream(fsread, desdecrypt, CryptoStreamMode.Read);StreamWriter fsDecrypted = new StreamWriter(sOutputFilename);fsDecrypted.Write(new StreamReader(cryptostreamDecr,Encoding.GetEncoding("GB2312")).ReadToEnd());fsDecrypted.Flush();fsDecrypted.Close();}catch (Exception e){MessageBox.Show(e.Message);}}。
DES算法研究报告1. 简介DES(Data Encryption Standard)是一种对称密钥加密算法,旨在提供数据的机密性和安全性。
DES算法是由IBM于20世纪70年代中期开发的,现已成为全球范围内广泛使用的加密算法之一。
本报告将对DES算法的原理、加密过程以及算法的安全性进行研究和讨论。
2. DES算法原理DES算法采用对称密钥加密方式,即同一个密钥可以用于加密和解密。
算法的核心是通过多轮迭代和混淆操作,将输入的明文转换为密文。
DES算法的主要原理包括以下几个步骤:2.1. 密钥生成DES算法使用56位的密钥作为输入,经过一系列的变换和处理,生成16个48位的子密钥。
子密钥的生成过程通过将密钥分为两部分,分别进行左移和置换操作来实现。
2.2. 初始置换输入的明文经过初始置换操作,将明文中的64位数据按照特定的规则重新排列。
初始置换操作的目的是减少明文中数据的相关性,增加算法的安全性。
2.3. 轮函数DES算法采用16轮迭代的方式进行加密,每一轮都使用一个不同的子密钥。
轮函数包括扩展置换、与子密钥进行异或运算、S盒变换、P盒置换等多个操作,将输入数据转换为输出数据。
2.4. 终止置换经过16轮迭代后,最后一次迭代得到的数据经过终止置换操作后即为加密后的密文。
2.5. 逆初始置换最后,加密后的密文经过逆初始置换操作,将密文中的64位数据重新排列,得到最终的加密结果。
3. DES算法加密过程DES算法的加密过程可以分为以下几个步骤:1.输入明文和密钥。
2.初始置换:对明文进行初始置换操作。
3.生成子密钥:使用密钥生成算法生成16个子密钥。
4.迭代加密:对明文进行16轮迭代加密,每一轮使用一个子密钥。
5.终止置换:对最后一轮迭代加密得到的结果进行终止置换。
6.逆初始置换:对加密后的密文进行逆初始置换操作,得到最终的加密结果。
4. DES算法的安全性DES算法在开发之初是相对安全的,但随着计算机技术的发展,DES算法逐渐暴露出一些安全性问题。
DES算法实验报告DES (Data Encryption Standard)算法是一种对称密钥加密算法,由IBM于1970s年代开发。
它是加密领域的经典算法之一,被广泛应用于安全通信和数据保护领域。
本实验报告将介绍DES算法的原理、实现和安全性分析。
一、DES算法原理1.初始置换(IP置换):将输入的64位明文进行初始置换,得到一个新的64位数据块。
2.加密轮函数:DES算法共有16轮加密,每轮加密包括3个步骤:扩展置换、密钥混合、S盒置换。
扩展置换:将32位数据扩展为48位,并与轮密钥进行异或运算。
密钥混合:将异或运算结果分为8组,每组6位,并根据S盒表进行置换。
S盒置换:将6位数据分为两部分,分别代表行和列,通过查表得到一个4位结果,并合并为32位数据。
3. Feistel网络:DES算法采用了Feistel网络结构,将32位数据块分为左右两部分,并对右半部分进行加密处理。
4.置换:将加密后的左右两部分置换位置。
5.逆初始置换:将置换后的数据进行逆初始置换,得到加密后的64位密文。
二、DES算法实现本实验使用Python编程语言实现了DES算法的加密和解密功能。
以下是加密和解密的具体实现过程:加密过程:1.初始化密钥:使用一个64位的密钥,通过PC-1表进行置换,生成56位的初始密钥。
2.生成子密钥:根据初始密钥,通过16次的循环左移和PC-2表进行置换,生成16个48位的子密钥。
3.初始置换:对输入的明文进行初始置换,生成64位的数据块。
4.加密轮函数:对初始置换的数据块进行16轮的加密操作,包括扩展置换、密钥混合和S盒置换。
5.逆初始置换:对加密后的数据块进行逆初始置换,生成加密后的64位密文。
解密过程:1.初始化密钥:使用相同的密钥,通过PC-1表进行置换,生成56位的初始密钥。
2.生成子密钥:根据初始密钥,通过16次的循环左移和PC-2表进行置换,生成16个48位的子密钥。
3.初始置换:对输入的密文进行初始置换,生成64位的数据块。
基于DES和ECC混合加密算法的数字签名研究与
应用的开题报告
一、研究背景及意义
数字签名技术是信息安全领域中的重要组成部分,用于保证文件的完整性、真实性和不可否认性。
在现代化信息社会中,许多重要的业务和交易都需要数字签名技术来保证安全。
然而,由于计算机技术的不断发展,传统的数字签名算法如RSA和DSA已经面临着越来越大的安全风险和挑战,因此需要开发更加安全可靠的数字签名算法。
二、研究内容
本研究将混合使用DES和ECC算法来实现数字签名,具体研究内容包括:
1. 研究DES算法的加密原理,分析其优点和缺点;
2. 研究ECC算法的加密原理,分析其优点和缺点;
3. 设计基于DES和ECC混合加密算法的数字签名方案,分析其安全性和可靠性;
4. 实现数字签名算法的代码,并进行测试和验证;
5. 针对算法的性能进行优化。
三、研究方法
本研究将使用文献研究和实验方法进行研究。
1. 通过查阅相关文献,了解DES和ECC算法的加密原理、优缺点和应用场景;
2. 设计基于DES和ECC混合加密算法的数字签名方案,分析其安全性和可靠性;
3. 实现数字签名算法的代码,并进行性能测试和验证。
四、预期成果及意义
本研究的预期成果包括:
1. 设计出基于DES和ECC混合加密算法的数字签名方案;
2. 实现数字签名算法,并进行测试和验证;
3. 对算法的性能进行优化;
4. 发表论文一篇,介绍DES和ECC混合加密算法的数字签名方案,并分析其优缺点和应用场景。
本研究的意义在于开发更加安全可靠的数字签名算法,提高数字签名技术的安全性和可靠性,有助于保障现代化信息社会中的重要业务和交易的安全。
网络攻击与防御实验1 DES密码算法实现与测试一、实验目的与意义1.了解密码学的起源以及分类等知识2.知道数据加密技术的种类以及方法3.掌握对称加密知识4.研究DES算法,学习并论证了DES加密过程,知道DES加密的具体操作/view/80affdc49ec3d5bbfd0a74a9.html二、实验环境WindowsXP-SP2Microsoft visualc++6.0三、实验原理DES算法通信双方通信前共同拟定一个密钥,不对第三方公开,并且消息发送前都通过该密钥加密,到达后也通过该密钥解密。
该算法利用一个56+8奇偶校验位(第8,16,24,32,40,48,56,64位)=64位的密钥对以64位为单位的块数据进行加解密操作。
具体实现过程是将DES的数据分组长度为64位,输入的是64位的明文,在64位密钥的控制下产生64位的密文;反之输入64位的密文,输出64位的明文。
64位的密钥中含有8个位的奇偶校验位,所以实际有效密钥长度为56位。
明文数据经过初始置换IP、16圈迭代的乘积变换、逆初始置换IP-1以及16个子密钥产生器后得到密文数据。
在初始置换IP时,将64位明文的位置进行置换,得到一个乱序的64位明文组,而后分成左右两段,每段32位,用L0和R0表示。
DES的加密函数f对32位的段操作:首先将这32位的段选择扩展运算成48位的段;其次将这48位的段和子密钥产生器输出的48位的密钥进行组合并将组合结果作为8个不同S-盒的输入。
每个S-盒的输入是6位,输出是4位;然后将S-盒的32位做置换作为加密函数f的输出。
经过16圈迭代,最终产生64位密文。
四、实验的步骤与调试方法DES设计思路以及解决问题的方法共七步1.输入64个二进制位明码文数据保存为8*8的二维数组2.分成左右两个大小相等的部分,每部分为一个32位二进制的数据块3.首先按照一定规则对密钥进行压缩置换,得到48位子密钥4.S盒置换5.P盒置换6.用替代法和换位法和换位法对上一次迭代的输出进行加密变换7.置换得到最终密文五、实验数据与实验结果请给出至少3组数据的加解密结果。
第22卷 第1期 武汉科技学院学报V ol.22 No.12009年1月 JOURNAL OF WUHAN UNIVERSITY OF SCIENCE AND ENGINEERING JAN. 2009________________________________ 作者简介:王艳(1985-),女,研究方向:可信计算与网络安全技术. 基金项目:湖北教育厅科研项目,项目编号:(200717005).基于DES 算法实现文件完整性检测方法的研究王 艳 胡 鸣(武汉科技学院 计算机学院,湖北 武汉,430073)摘 要:采用了CBC 模式下的DES 算法实现文件完整性检测,弥补了防火墙保护内部网络安全的不足,保证数据传输过程的真实性。
当入侵者进入系统后, 如果有一个块在传送时被人恶意改变了,该方法可以检测到系统可能受到了攻击,有效地解决了传输中数据安全性的问题。
关键词:CBC 模式 DES 算法 文件完整性 真实性 网络安全中图分类号:TP715 文献标识码:A 文章编号:1009-5160(2009)-0021-03随着现代网络技术的飞速发展,快速成长的国际互联网正把世界联系成一个整体,极大地加速了信息流通的速度和吞吐量,加快了社会生活的步伐。
但由此而来的网络安全问题却显得越来越突出,比如:当一个用户把敏感的电子邮件信息发送给另一个用户时,此时同一个局域网中的第三方使用一个数据包监控设备捕获这个消息并且读取其中的隐私信息;同样的情况下,第三方截获该消息并改变它的实际内容,然后把它传递给原定的接收者。
接收者不加怀疑地接收了这个假消息,然后根据其中的内容执行一些动作,从而错误地使第三方受益等。
本方法研究的就是基于这种背景下的数据窃取情况,将CBC 模式的反馈机制与传统的加密算法DES 结合起来,产生文件相应的校验码,这样不仅验证了数据的有效性,也能够防止信息被恶意地篡改、伪造或假冒。
1. DES(数据加密标准)根据在加密和解密过程中所使用的密钥相同与否或是否能容易地由加密密钥求得解密密钥, 可以将密码体制分为对称密钥密码体制和非对称密钥密码体制。
对称密钥密码体制主要基于复杂的非线性变化实现, 它所使用的加密密钥和解密密钥是相同的; 而非对称密钥密码体制一般基于某个数学上的难解问题实现, 它所使用的加密密钥和解密密钥是不相同的。
其中,DES 算法就是典型的对称加密算法。
DES 是一种分组加密算法,它以64位为分组对数据加密。
它的密钥长度是56位(因为每个第8位都用作奇偶校验),密钥可以是任意的56位的数,而且可以任意时候改变。
其中有极少量的数被认为是弱密钥,但是很容易避开他们,所以保密性依赖于密钥。
DES 算法的加密过程大致可分成四步: 初始置换、迭代过程、子密钥生成和逆置换。
该加密算法就是将两种基本的加密方法—替换和移位精心且完美的结合起来。
通过有意识的将一些位置替换为其他位的方法使得原明文结构混乱, 再通过重新安排达到扩散的目的, 安全强度也通过重复应用这种技术来保证。
2. CBC(密码分组链接模式)分组密码工作模式是利用分组密码加密消息的技术,当消息的长度大于分组的长度时,首先把消息按分组的长度进行分块,然后利用分组密码进行加密。
根据所用结构的不同就形成了不同的工作模式,如ECB、CBC、OFB、CFB等。
其中,CBC是一种密码分组链接模式,即是将一种反馈机制引入到分组密码中,前一个分组的加密结果被反馈到当前分组的加密中,换而言之,每一个分组被用于修改下一个分组的加密。
每个密文不仅依赖于产生它的明文分组,而且依赖于所有前面的明文分组。
2.1 DES 的CBC 模式加密流程在CBC 模式下,每个明文组X i 加密之前,先与反馈到输入端的前一组密文Y i-1按位模2求和后,再送到DES 进行加密,如图1所示。
在图中,所有的运算均按64位并行执行。
在CBC 方式下,就有Y i = DES k (X i ⊕ Y i-1),这样各个密文组不仅与当前武汉科技学院学报 2009年22明文组X i 有关,而且通过反馈作用还与以前的明文组X 1、X 2、,,,X i-1有关。
解密X i-1 X i X i+1图2 DES 的CBC 解密流程由图2还可以看出,密文是经由存储器实现前馈,使解密输出为:X i = DES k -1(Y i )⊕Y i-1= DES k -1[DES k (X i ⊕Y i-1)]⊕Y i-1 = X i ⊕Y i-1⊕Y i-1然而,值得注意的是:第一组明文X 1加密时还没有反馈密文,为此需要在图1的寄存器中预先置入一个初始矢量Ⅳ。
但是收发双方必须选用同一个初始矢量Ⅳ,此时就有Y 1 = DES k (X 1+ Ⅳ)X 1 = DES k -1(Y 1 + Ⅳ)在通信中一般将Ⅳ作为一个秘密参数,实际上,Ⅳ的完整性要比其保密性更为重要。
在CBC 操作方式下,传输或者存储过程中密文的变化将对解密后的输出数据产生明显的随机影响,因此很容易检测。
但是对于第一组来说,如果Ⅳ发生改变时,只是将其解密输出第一组中的相应位发生变化就变得难以检测。
所以在传送Ⅳ时需要先加密,而且要像密钥k 一样定期更换。
更换Ⅳ的另一个理由是:如果用同一个Ⅳ,那么对两个具有相同报头的消息加密所得的密文的前面部分将完全相同,从而有助于对手进行密码分析。
最好的办法是每发送一个消息,都改变Ⅳ,如将其值加2。
总之,CBC 操作的方式通过反馈使输出密文与以前的各明文相关,从而实现了隐蔽明文图样的目的。
所以,CBC 可以防止类似于对ECB 的统计分析攻击法,3.DES 的CBC 模式的设计与实现3.1 DES 的CBC 模式的设计根据以上理论,首先将8字节的文件校验码附加于文件末尾,当加密后,会产生相应的密文校验码,然后将其与原始校验码进行比较,就可以判断出传输环境是否安全、传输过程是否有第三方窃取,这样就保证数据传输的真实性,这一设计过程如图3。
当然,前提是收发双方都持有相同的密钥。
图 3 文件完整性检测设计图中, 校验码生成、验证的部分代码如下: void CBC::OnGenauth() //生成校验码 {…//读取文件全部内容以计算校验码pfile.Read (buffer,pfile.GetLength ()); my_cbcdes(buffer,pfile.GetLength(),auth,key); //将8字节的校验码附加于文件末尾 pfile.SeekToEnd (); pfile.Write (auth,8); pfile.Close ();AfxMessageBox("校验码已生成!"); }void CBC::OnCompauth() //验证校验码 {//文件末尾8字节为校验码,计算时不应包含在内第1期王艳,等:基于DES算法实现文件完整性检测方法的研究________________________________Biography :WANG Yan(1985) , Female ,Research fields: Network security technologySupported by Office of Education research project in Hubei Province(Progect No TKL200717005) 23pfile.Read(buffer,pfile.GetLength()-8);pfile.Seek (-8,CFile::current);pfile.Read (org_auth,8);//读取原来的校验码pfile.Close ();if(memcmp(auth,org_auth,8)==0)AfxMessageBox("校验码比较通过!");elseAfxMessageBox("校验码比较失败,文件曾被修改!");在上述内容中提到,在CBC模式的反馈机制中第一组明文加密时需要在寄存器中预先设置初始向量,这里定义该向量为vector,下面给出这一部分的代码://设置初始向量为全0x00memset(vector,0x00,8);if(edf == EN0) //加密模式{for(i=0;i<blocknum;i++){for(j=0;j<8;j++)//遵照CBC模式将向量先与明文异或vector[j]^=inblock[i*8+j];my_3des(vector,temp,m_key,EN0); //将异或结果作为加密函数的输入memcpy(&outblock[i*8],temp,8);memcpy(vector,temp,8);解密模式与上述加密过程类似。
3.2 DES的CBC模式的实现由于CBC的反馈机制使得每个密文不仅依赖于产生它的明文分组,而且依赖于所有前面的明文分组。
以文本文件为例,当修改DES.cpp文本中一个字节的内容,都会影响其后所有密文解密的正确性。
图4是该模式的测试。
图4 CBC反馈机制测试4.结语在VC平台下完成的基于CBC模式下的MD5 算法实现了文件完整性、有效性的检测,考虑到了一些敏感文件传输过程中可能出现的数据泄密情况,效果良好。
参考文献:[1] 邱志聪, 加密解密技能百练[M],北京:中国铁道出版社,2005[2] 胡志远, 口令破解与加密技术[M],北京:机械工业出版社,2003[3] 卢开澄, 计算机密码学—计算机网络中的数据保密与安全[M],北京:清华大学出版社,2003[4] [美]Bruce Schneier, 应用密码学[M], 吴世忠,祝世雄,张文正,等译.北京:机械工业出版社,2000[5] 冯登国, 密码分析学[M]. 北京:清华大学出版社,2000[6] Goldreich,O, Foundations of Cryptography Basic Tools[M],PublishingHouse of Electronics Industry,2003.1[7] Atul Kahate, Cryptography and network security[M], 清华大学出版社,2005.1[8]Floyd S,Jacobson V.Random early detection gateways for congestion [9]avoidance[J]. IEEE/ACM Trans on Networking, 1993, 1(4):397-413. AGILENT Technologies Inc.Qos Management Solution For MPLS Virtual Private Network Managed Services[J].IEEE Communications Magazine,2004,42(8):14-14.[10]Bouras,Stamos.Performance Analysis of Adaptive Admission ControlAlgorithms for Bandwidth Brokers[J]. Journal of Network & SystemsManage.Realizes the integrity of the document detection research Based on the DESalgorithmWang yan Hu ming(Wuhan University of Science and Engineering ,Fashion College ,In Wuhan 430073)Abstract:Uses the DES algorithm that works in CBC mode realize integrity of the document detection, make up theinsufficiency of the firewall which protect network’s security, guarantee the authenticity of the data during transfer process. When the intruder entered the system, if a block is being changed maliciously in the transmission, this methodcan detect the attack, which may be effective in resolving the security of data in transmission.Keyword s:CBC mode; DES algorithm; integrity of the document; authenticity; network security。