DES加密与解密算法的研究与实现_毕业设计_论文_开题报告
- 格式:doc
- 大小:48.50 KB
- 文档页数:6
DES算法的实现及安全性分析专业班级:计算机科学与技术1班姓名:廖孜孜完成日期: 2015年5月17日引言如果一个密码体制的加密密钥等于脱密密钥,或者其中一个很容易推出另一个,则称此密码体制为单密钥密码体制,也称为对称密码体制或传统密码体制。
最具有代表性的近代传统密码体制是DES(数据加密标准)。
为了适应社会对计算机数据安全保密越来越高的要求,美国国家标准局(NBS)于1973年向社会公开征集一种用于政府部门及民间进行计算机数据加密算法,许多公司提出了自己的加密算法,最后选中了IBM公司提出的一种加密算法。
经过一段时间的试用与征求意见,美国国家标准局于1977年公布了由IBM 公司研制的一种加密算法,批准把它作为非机要部门使用的数据加密标准,简称DES,DES是Data Encryption Standard的缩写。
自从公布以来,它一直超越国界成为国际上商用保密通信和计算机通信的最常用的加密算法。
原先规定使用期10年,可能是DES尚未受到严重的威胁,更主要的是新的数据加密标准还没有完成,或意见未一致,所以当时的美国政府宣布延长它的使用期。
因而DES超期服役了很长时间,20年来它一直活跃在国际上保密通信的舞台上,扮演了十分突出的角色。
进入20世纪九十年代后以色列的密码学家Shamir 等人提出了一种“差分分析法”,以后日本人又提出类似的方法,这才正式有一种称得上对它的攻击的方法。
严格地说,Shamir 的“差分分析法”也只有理论上的价值,至少目前为止是这样的。
又如,后来的“线性逼近法”,它是一种已知明文攻击法,需要2的43次方也就是4.398×10的12次方对明文-密文对,在这样强的要求条件下,有十多台工作站协同作战,还需要十天的时间。
在这以前已有人建议造专用装置来对付它,其基本想法无非是借用硬件来实现对所有密钥的遍历搜索。
当时估计一天可以搜索到一个密钥。
技术的进步使得搜索的时间进一步缩短,使DES受到了威胁,但DES毕竟辉煌过。
目录摘要 (II)Abstract (II)第一章概论 (1)1.1 课题背景 (1)1.2 课题意义 (2)第二章 DES算法设计简介及方案论述 (3)2.1 设计简介 (3)2.2 设计方案 (3)2.2.1 DES的加密过程 (4)2.2.1 DES的解密过程 (5)第三章 DES算法详细设计 (6)3.1 子密钥的产生 (6)3.2 初始值换IP (7)3.3 加密函数 (7)3.4 逆初始值换1IP (9)第四章设计结果及分析 (10)4.1 设计结果 (10)4.2 设计结果分析 (12)总结 (13)致谢 (14)参考文献 (15)附录主要程序代码 (15)摘要DES(Data Encryption Standard)算法是美国国家标准局(NIST)于1977年公布由IBM公司研制的一种加密算法,并且批准它作为非机要部门使用的数据加密标准。
自从公布以来,它一直超越国界,成为国际上商用保密通信和计算机通信的最常用的加密算法。
DES也是曾被广泛使用的分组密码,遍及世界的政府,银行和标准化组织把DES 作为安全和论证通信的基础。
DES算法公开是密码学史上里程碑式的事件。
DES算法是分组密钥,每次处理64位的明文数据,形成64位的密文。
DES也是一个对称算法,加密解密使用相同的算法和密钥,密钥长度为56位,可以为任意的56位的数,且随时可更换。
此次设计主要是对DES数据加密标准原理和流程的描述,D从初始变换、DES的迭代过程、密钥变换和逆置换等四个方面开始研究的,并且用Visual C ++语言实现了它的模拟应用。
关键词:加密;解密;DES算法;Visual C++AbstractDES (Data Encryption Standard) algorithm is that National institute of standards and technology (NIST) announced a kind of encryption algorithm developed by IBM in 1977,and approve for it as whether datum that confidential developments use encrypt standard. Since announcing, it has been surmounting the national boundaries all the time, and has been come the most frequently used of encryption algorithm in the communication of commercial secret and computer in the world .DES block ciphers that enjoys widespread use too, spread all over the government of the world, the bank and standardization tissue regarded DES as the foundation to prove safe and communication to organize. It is a milestone incident in the cryptography history that DES algorithm is disclosed.The key that DES algorithm divides into groups, data are encrypted in 64-bit block each time, form the cipher texts of 64. DES is a symmetrical algorithm too. The same steps, with the same key, are used to reverse the encryption, the key length is 56-bit, and can be the numbers of 56 wanton, and can change at any time. This text is mainly description that encrypts the standard principle and process to the data of DES,and analyses the basic principle of DES encryption algorithm, separately from four parts etc to research that is initial permutation, the DES ‘s iteration course, key permutation and Inverse initial permu tation, and has realized its simulation application with Visual C++language.Keywords:Encrypt;Decrypt;DES algorithm;VC++programming第一章概论本章主要介绍了课题《DES对称密码的算法的设计与实现》的设计背景和意义,提出在当今的信息化时代,信息安全是至关重要的,密码技术更是确保信息安全的关键。
信息系统安全课程设计——DES加密与解密算法实现摘要DES算法属于迭代的分组密码算法,把64位的明文输入块变为64位的密文输出块。
,它是使用一个56 位的密钥以与附加的8 位奇偶校验位,利用16 个循环、异或、置换、代换和移位操作四种基本运算产生最大64 位的分组大小。
关键词:DES,分组密码算法,密钥,基本运算1系统的功能(1)对字符串加密和解密可以对输入的字符串使用特定的密钥进行DES加密生成密文,并可以对DES 加密后的密文利用原始密钥实现解密功能还原成原始明文。
(2)对文件进行加密和解密在实现了DES对字符串的加解密功能后继续实现对文件的加解密功能。
可以通过浏览选择文件进行DES加密生成加密文件,并可以对DES加密后的文件利用原始密钥实现解密还原成原始文件。
2用户使用方法(1)对字符串加密操作:在明文对应的输入框以与密钥对应的输入框中输入所需加密的明文和密钥,点击加密按钮即可在密文的文本框中显示密文。
如需对明文和密钥进行扩充只需在扩充框中输入所需扩充的位数即可。
(2)对字符串解密操作:对需输入密文的文本框进行输入后,输入密钥再点击解密按钮,即可在原文文本框中显示明文。
(3)对文件加密操作:点击游览,选择所需加密的文件(推荐选择文本文件)后,输入密钥点击文件加密按钮即可。
(4)对文件解密操作:点击游览,选择已经进行过加密的文件,输入其所对应的密钥后点击文件解密按钮即可。
3开发的算法与关键技术3.1 主流程图 DES的每个分组是64位,即明文和密钥都是64位(密钥实际是56位,每字节第八位为校验位)。
DES算法流程图的主流程图如下:3.2 IP转换:其功能是把输入的64位数据块按位重新组合,并把输出分为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加密算法实验报告1. 引言DES(Data Encryption Standard)是一种对称密码算法,于1977年被美国联邦信息处理标准(FIPS)确定为联邦标准。
DES加密算法采用分组密码的思想,将明文按照64位分为一组,经过一系列的置换、替代和迭代操作,最终输出加密后的密文。
本实验旨在通过对DES加密算法的实际操作,深入理解DES的工作原理和加密过程。
2. 实验步骤2.1. 密钥生成DES加密算法的核心在于密钥的生成。
密钥生成过程如下:1.将64位的初始密钥根据置换表进行置换,生成56位密钥。
2.将56位密钥分为两个28位的子密钥。
3.对两个子密钥进行循环左移操作,得到循环左移后的子密钥。
4.将两个循环左移后的子密钥合并,并根据压缩置换表生成48位的轮密钥。
2.2. 加密过程加密过程如下:1.将64位的明文按照初始置换表进行置换,得到置换后的明文。
2.将置换后的明文分为左右两部分L0和R0,每部分32位。
3.进行16轮迭代操作,每轮操作包括以下步骤:–将R(i-1)作为输入,经过扩展置换表扩展为48位。
–将扩展后的48位数据与轮密钥Ki进行异或操作。
–将异或结果按照S盒进行替代操作,得到替代后的32位数据。
–对替代后的32位数据进行置换,得到置换后的32位数据。
–将置换后的32位数据与L(i-1)进行异或操作,得到Ri。
–将R(i-1)赋值给L(i)。
4.将最后一轮迭代后得到的数据合并为64位数据。
5.对合并后的64位数据进行逆置换,得到加密后的64位密文。
3. 实验结果对于给定的明文和密钥,进行DES加密实验,得到加密后的密文如下:明文:0x0123456789ABCDEF 密钥:0x133457799BBCDFF1密文:0x85E813540F0AB4054. 结论本实验通过对DES加密算法的实际操作,深入理解了DES加密算法的工作原理和加密过程。
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加密算法的原理和流程;2.掌握DES加密算法的编程实现方法;3.探究不同密钥长度对DES加密效果的影响。
实验设备和材料:1.计算机;2. Python编程环境。
实验步骤:1.DES加密算法原理和流程:DES(Data Encryption Standard)是一种对称加密算法,采用分组密码体制,密钥长度为56位,数据块长度为64位。
DES加密算法的流程如下:a)初始置换(IP置换):将明文分为左右两个32位的子块,并经过初始置换表IP进行置换;b)迭代加密:将初始置换结果分为左右两个子块,进行16轮迭代操作;c)轮函数:每轮迭代中,右子块与扩展置换表进行扩展置换,并与轮密钥进行异或运算,然后经过S盒替换、P置换和异或运算得到新的右子块;d)逆初始置换(IP逆置换):将最后一轮的结果进行逆初始置换,得到密文。
2.DES加密算法编程实现:首先,导入`pycrypto`库并生成合适长度的密钥;其次,定义初始置换表IP,扩展置换表E,S盒置换表S1-S8,P置换表P,以及逆初始置换表IP_inverse;然后,定义`des_encrypt`函数实现DES加密算法的逻辑:a)根据IP置换表对输入明文进行初始置换;b)将初始置换结果分为左右两个子块;c)进行16轮迭代操作,每轮迭代中更新左右子块的值;d)对最后一轮迭代结果进行逆初始置换;e)返回加密后的密文。
3.探究不同密钥长度对DES加密效果的影响:初始化明文和密钥,调用`des_encrypt`函数进行加密,并输出加密结果;分别改变密钥长度为56位、64位、128位,再次进行加密操作,并输出加密结果;比较不同密钥长度下的加密结果,进行效果分析。
实验结果:使用DES加密算法对明文进行加密,得到相应的密文。
实验结论:1.DES加密算法可以对密文进行可靠保护,提高数据的安全性;2.较长的密钥长度有助于增强DES加密算法的安全性,但同时也会增加加密和解密的运算成本;3.在实际应用中,根据需求和实际情况,选择合适的密钥长度,平衡安全性和性能的需求。
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算法代码及实验报告DES算法(Data Encryption Standard,数据加密标准)是一种对称密钥加密算法,是密码学中最为经典的算法之一、DES算法的核心是Feistel结构,通过将明文分成多个块,然后对每个块进行一系列的置换和替换操作,最后得到密文。
本文将给出DES算法的代码实现,并进行实验报告。
一、DES算法的代码实现:以下是使用Python语言实现的DES算法代码:```pythondef str_to_bitlist(text):bits = []for char in text:binval = binvalue(char, 8)bits.extend([int(x) for x in list(binval)])return bitsdef bitlist_to_str(bits):chars = []for b in range(len(bits) // 8):byte = bits[b * 8:(b + 1) * 8]chars.append(chr(int(''.join([str(bit) for bit in byte]), 2)))return ''.join(chars)def binvalue(val, bitsize):binary = bin(val)[2:] if isinstance(val, int) elsebin(ord(val))[2:]if len(binary) > bitsize:raise Exception("Binary value larger than the expected size.")while len(binary) < bitsize:binary = "0" + binaryreturn binarydef permute(sbox, text):return [text[pos - 1] for pos in sbox]def generate_round_keys(key):key = str_to_bitlist(key)key = permute(self.permuted_choice_1, key)left, right = key[:28], key[28:]round_keys = []for i in range(16):left, right = shift(left, self.shift_table[i]), shift(right, self.shift_table[i])round_key = left + rightround_key = permute(self.permuted_choice_2, round_key)round_keys.append(round_key)return round_keysdef shift(bits, shift_val):return bits[shift_val:] + bits[:shift_val]def xor(bits1, bits2):return [int(bit1) ^ int(bit2) for bit1, bit2 in zip(bits1, bits2)]def encrypt(text, key):text_bits = str_to_bitlist(text)round_keys = generate_round_keys(key)text_bits = permute(self.initial_permutation, text_bits)left, right = text_bits[:32], text_bits[32:]for i in range(16):expansion = permute(self.expansion_table, right)xor_val = xor(round_keys[i], expansion)substitution = substitute(xor_val)permut = permute(self.permutation_table, substitution)temp = rightright = xor(left, permut)left = tempreturn bitlist_to_str(permute(self.final_permutation, right + left))```二、DES算法的实验报告:1.实验目的通过实现DES算法,加深对DES算法原理的理解,验证算法的正确性和加密效果。
天津科技大学本科生
毕业设计(论文)开题报告
学 院 电子信息与自动化学院
专 业 通信工程
题 目 DES数据加密与解密
姓 名
指导教师(签名)
2011年 03月 15日
拟选题目 基于CPLD的曼彻斯特编码器设计
选题依据及研究意义
选题依据:
DES 是对称密钥分组密码的一个典型代表,美国国家标准局于 1977 年公布
了由 IBM 公司研制的一种加密算法,批准把它作为非机要部门使用的数据加密
标准.简称 DES,DES 是 Data Encryption Standard 的缩写。自从公布以来,
它一直广泛用于国际上商用保密通信和计算机通信。但由于弱密钥的问题和新的
攻击手段不断出现(差分攻击、线性攻击),单纯的DES加密已经很少用于实际。
更多的情况下是采用增加密钥长度和多重DES加密的办法。
DES算法具有极高安全性,到目前为止,除了用穷举搜索法对DES算法进行
攻击外,还没有发现更有效的办法。而56位长的密钥的穷举空间为256,这意 味
着如果一台计算机的速度是每一秒种检测一百万个密钥,则它搜索完全部密钥就
需要将近2285年的时间,可见,这是难以实现的,当然,随着科学技术的发展,
当出现超高速计算机后,我们可考虑把DES密钥的长度再增长一些,以此来达到
更高的保密程度。
研究意义
DES( Data Encryption Standard)算法,是一种用56位密钥来加密64位数
据的方法。虽然56位密钥的DES算法已经风光不在,而且常有用DES加密的明文
被破译的报道,但是了解一下昔日美国的标准加密算法总是有益的,而且目前
DES算法得到了广泛的应用,在某些场合,仍然发挥着余热。
目前在国内,随着三金工程尤其是金卡工程的启动,DES算法在POS、ATM、
磁卡及智能卡(IC卡)、加油站、高速公路收费站等领域被广泛应用,以此来实
现关键数据的保密,如信用卡持卡人的PIN的加密传输,IC卡与POS间的双向
认证、金融交易数据包的MAC校验等,均用到DES算法。
文献综述(对已有相关代表性研究成果的综合介绍与评价)
从最初的保密通信发展到目前的网络信息加密,信息加密技术一直伴随着信
息技术的发展而发展。作为计算机信息保护的最实用和最可靠的方法,信息加密
技术被广泛应用到信息安全的各个领域。信息加密技术是一门涉及数学、密码学
和计算机的交叉学科。现代密码学的发展,使信息加密技术已经不再依赖于对加
密算法本身的保密,而是通过在统计学意义上提高破解的成本来提供高加密算法
的安全性。
跨入21 世纪, 人类社会已经进入了信息时代,信息已经成为最重要的资
源,信息的保密问题就越来越重要了。无论是个人信息通信还是电子商务的发展,
都迫切需要保证信息传输的安全以及保证信息的安全。其中, 数据加密是信息安
全的核心。数据加密就是把信息隐藏起来, 使隐藏后的信息在传输的过程中,即
使被窃取或截获, 窃取者也不能了解信息的内容, 从而保证了信息传输的安全
以及信息的安全。数据加密技术是一门学科, 它集合了数学、计算机科学、电子
与通信等学科于一身。加密技术发展到今天, 主要分为对称加密和非对称加密。
其中, 对称加密是指使用同样的密钥对数据进行加密和解密。本文讨论的DES
算法就是对称加密的一种加密技术, 而且也是最重要的一种加密技术之一。
DES 算法具有极高的安全性, 到目前为止, 除了用穷举法对DES 算法进行
攻击外, 还没有发现更有效的方法, 而DES 的密钥长度是56, 那么它的穷举空
间为2 的56 次方, 这意味着如果一台计算机的速度是每秒钟检测100 万个密
钥, 则搜索完全部密钥也需要2285 年的时间, 这是难以实现的。随着硬件的发
展,计算机速度的提高, 这是, 我们可以把DES 密钥的长度增长, 可以达到更高
的保密程度。
DES 算法对大量明文数据加密具有极高的安全性, 但对少量明文数据加密
的安全性较差。本文通过分析DES 算法对明文的实质加密过程,可以看出,在应用
DES算法的某些领域, DES算法应用还存在不足,破译者较易得出明文,将严重影
响DES算法的安全强度, 必须进一步加强安全防范。
在上述情况下, 为提高安全性能, 可在明文( 口令密码) 初始置换之前用
传统的加密法进行加密, 使明文变得无含义,生成第二明文, 然后对第二明文进
行DES加密,二重DES加密,甚至三重DES加密。
研究内容(包括基本思路、框架、主要研究方式、方法等)
基本思路::
本课题以对文档文字加密解密为研究对象,对DES进行理论与实际上的研究
和分析。在理解算法的基础上,用c语言实现对文档文字的加密与解密,并做一
个简单的操作界面。在此基础上,对DES进行修改,实现二重和三重DES。
框架:
1、查阅相关资料,了解加密与解密的意义与历史。
2、学习DES算法,掌握算法的过程及细节。
3、使用visual studio 2008这个环境,编写实现初步DES。
4、使用开发环境下的辅助设计工具,设计DES算法的界面。
5、测试DES软件的效果,以进一步改进DES。
6、实现二重和三重DES以提高软件的加密程度。
主要研究方式方法:理论结合实际,用DES实现,通信传输中数据的安全保密。
进一步学习c语言项目的设计方法,实现DES对文档的加密。
并参考网络中已有的成果和自己实现的单纯的DES算法,改
进现有的DES算法,提高数据加密的安全程度。
研究进程安排
2011.03.17-2011.04.01 完成实习报告。完善开题报告
2011.04.02-2011.04.16 完成英文翻译,学习DES加密与解密技术。
2011.04.17-2011.05.01 确定系统方案并进行方案论证。
2011.05.02-2011.05.16 熟悉相关软件的使用以及初步对该系统进行设计。
2011.05.17-2011.06.01 用C语言实现DES对文档的加密与解密。
2011.06.02-2011.06.15 完成论文初稿,经老师指导后定稿。
2011.06.16-2011.06.27 准备并完成答辩。
主要参阅文献
[1]吴世忠,祝世雄,张文正.Bruce Schneier 应用密码学[M].机械工业出
版社,2000:46-69
[2]李美满.网络考试系统题库与成绩安全性研究[M].计算机应用.2005: 133
—137
[3]宗沛.信息安全理论与技术[J].国土资源.2008,45(z1):115-117
[4]朱鲁华,陈荣良.数据库加密系统的设计与实现fJ].计算机工程,2002,8:
61
[5]陈湘.ASP.NET与网站开发编程实战[M].清华大学出版社,2002:88—90
[6]李美满.网络考试系统题库与成绩安全性研究⋯.计算机应用,2005,12:133
—137
[7] 高传善,钱松荣,毛迪林.数据通信与计算机网络[M].北京:高等教育出
版社,2001
[8] 陈树乎.计算机网络的安全性[J].河南科学,2002,(1):89—92.
[9] 胡建伟.网络安全与保密[M].西安:西安电子科技大学出版社,2003.
[10] 赵小林.网络安全技术教程[M].北京:国防工业出版社,2002.
其它说明
指导教师是否同意开题
签名:
年 月 日
教研室教学负责人签署
签名:
年 月 日
说明:
1、开题报告工作从第七学期学生确定毕业设计(论文)题目后开始,在
教师指导下,学生通过调研、收资后,于第八学期第四周前完成。
2、纸张填写不够可另加附页。