基于DES对称算法的设计与实现Word下载.docx
- 文档编号:19957580
- 上传时间:2023-01-12
- 格式:DOCX
- 页数:14
- 大小:231.65KB
基于DES对称算法的设计与实现Word下载.docx
《基于DES对称算法的设计与实现Word下载.docx》由会员分享,可在线阅读,更多相关《基于DES对称算法的设计与实现Word下载.docx(14页珍藏版)》请在冰豆网上搜索。
4.基于DES算法设计加解密软件26
4.1设计目的26
4.2软件环境26
4.3软件功能描述27
4.4软件主要代码27
5.分析加解密的具体流程31
5.1加密流程分析31
5.2解密流程分析32
6.结论33
致谢34
参考文献35
基于DES对称加密算法的设计与实现
摘 要
密码技术是信息安全中的核心技术。
密码技术主要是包括对称密码算法、非对称密码算法及协议。
对于对称加密算法,它加密密钥和解密密钥之间的相互推导非常容易。
加解密的速度非常快,使得它适用于对大批量数据加密的场合。
对于非对称密钥密码体制,从它的私有密钥推导公开密钥是行不通的,虽然非对称加密算法在运行的速度方面无法与对称加密算法媲美,但非对称加密很好地解决了对称密码学所面临的密钥分发与管理的问题,并且同时也解决了数字签名的问题。
对称加密算法是应用较早的加密算法,其最主要的特点是加解密的可逆性。
在对称据加密算法中,发信方通过将原始数据和加密密钥一起经过特殊的加密算法处理后产生一串密文发送出去。
收信方收到密文后,需要使用加密密钥以及加密算法的逆算法进行解密,才能使其回复成明文。
在对称加密算法中最典型的算法是DES加密算法,DES是一种用56位密钥来加密64位数据的方法。
关键字密码学,对称加密,DES
CODINGRESEARCHANDIMPLEMENTATION
TOPDF417BASEDONTHEC#
ABSTRACT
Encryptionisthekeytechniqueininformationsecurity.Thepasswordtechnologymainlyincludessymmetricencryptionalgorithm,asymmetriccryptographicalgorithmsandprotocols.Forsymmetricencryptionalgorithms,encryptionisitsinteractionbetweenkeyandthedecryptionkeyisveryeasy.Encryptionanddecryptionspeedveryquickly,makingitsuitablefortheencryptionofalargeamountofdata.Forthenonsymmetrickeycryptography,publickeywhichisderivedfromtheprivatekeyisinvalid,althoughnonsymmetricencryptionalgorithmintermsofspeedisunablewiththesymmetricencryptionalgorithmiscomparableto,butwiththemanagementofnonsymmetricencryptionisagoodsolutiontothesymmetriccryptographyarefacingtheproblemofkeydistribution,andalsosolvethedigitalsignaturetheproblem.
Symmetricencryptionalgorithmistheapplicationofencryptionalgorithmearlier,itsmaincharacteristicisreversibleencryptionanddecryption.Inthesymmetricdataencryptionalgorithm,thesenderbytransformingtheoriginaldataandencryptionkeyafterprocessingspecialencryptionalgorithmsproducedaciphertextsent.Therecipientreceivedciphertext,inversealgorithmrequirestheuseofencryptionkeyandencryptionalgorithmtodecrypt,canmakeitsreplyChengMingwen.InthesymmetricencryptionalgorithmisthemosttypicalalgorithmDESencryptionalgorithm,DESisa64bitdataencryptionmethodwitha56bitkey.
KEYWORDScryptography,Symmetricencryption,DES
对称加密算法是应用较早的加密算法,在对称加密算法中,数据的发信方将明文和加密密钥一起经过特殊的加密算法处理后,让其变成复杂的密文发送出去。
当收信方收到密文后,若是想解读原文,那么就需要使用加密时使用的密钥运用相同算法的逆算法对密文进行解密,这样才能使其恢复成可以识别的明文。
在对称加密算法中,所使用的密钥只有一个,发信方和收信方都使用相同的密钥来对数据进行加密和解密,这就使得解密方必须事先知道加密所使用的加密密钥。
对称加密算法又叫私钥加密,意思指加密和解密使用相同的加密算法。
有时又叫传统加密算法,就是加密密钥能够从解密密钥中推算出来,同时解密密钥也能从加密密钥中推算出来。
在大多数对称算法中,加密密钥和解密密钥是相同的,所以也称这种算法为秘密秘钥算法或单密钥算法。
它要求发信方和收信方在安全通信之前,商定一个密钥。
对称算法的安全性依赖于密钥,所以对称算法中密钥的保密性对通信性至关重要。
其中对称加密算法中最为典型的算法是DES算法。
数据加密标准DES(DataEncryptionStandard)是20世纪70年代问世的基于64位明文分组,它的密钥长度是48*16的加密标准。
随着计算机网路技术的发展,越来越多的信息都需要借助于网络来进行传输,但是黑客的出现是的网络信息在传输时受到各种各样的威胁、干扰和破坏,这不仅影响了信息的传递,而且也可能由于传递信息内容的破坏会给用户、国家造成严重的损失。
为了避免或降低这种损失,利用加密技术来对数据信息进行加密是一种非常有效的手段和方法。
本设计主要是以国际数据加密标准(DES)为主,并用C#语言来实现,在此基础上对DES实现能够对文件进行加密和解密。
2.系统介绍
2.1密码学简介
密码学是研究编制密码和破解密码的一门技术科学,侧重于算法的研究,它主要利用各种不同的算法对信息进行加密来一次保证信息的机密性和安全性。
密码学作为一门成熟的学科,它已经在各个行业领域得到广泛的使用,尤其是在当今网络化、信息化的社会,可以说密码学已经被应用到社会的各个角落,与人们的生活工作息息相关。
2.1.1密码学的历史
密码学是一门有着悠久历史的科学,它用于保护军事和外交通信可以追溯到几千年前。
在公元前5世纪的时候,古希腊斯巴达就已经出现了原始的密码器,它是这样设计的:
先用一条带子缠绕在一根棍子上,然后沿着棍子的纵轴方向写好明文,那么解下来的带子上就会出现杂乱无章的密文。
解密的时候只要找到直径相同的木棍(密钥),然后再把带子缠绕上去,沿着棍子纵轴方向即可得到有意义的明文信息。
这也许就是最早的对称加密(换位密码术)了吧。
到了前两世纪,出现了一种棋盘密码,起源于希腊,这种密码是将字母按照一定的顺序排列成矩阵,形状就像棋盘一样,然后在每个字母上表示出他们的行号和列号。
处理过程是:
遇到字母就直接写下他们所在的行号和列号,结果就形成了其他人无法看懂的一串数字,得到的数字串就是密文。
到解密的时候再将字串按照字母表的规则回复成字母。
在这以后还出现了著名的用于高卢战争中的凯撒密码,它被作为古代加密方法的代表,这种加密机密的方法完全由人工来操作,这就意味着加解密过程需要简单并且方便操作,但这也因此抑制了密码技术的发展。
直到1834年,电机的发明,才使得通信开始向机械化、电气化跃进,也为密码通信能够在线加密提供了前提条件。
这以后密码技术开始蓬勃发展,尤其实在第二次世界大战中,密码学的作用更是被发挥的淋漓尽致,很多战役的胜负不再取决于其他因素,而是取决于各个国家的密码技术水平。
1914年第一次世界大战中,德俄交战时,由于德军破译了俄军的电文,从而得知俄军第一军给养中断,才在这次战役中取得了这场战争的胜利。
二次世界大战中,在破译著名的“恩格玛”密码及密码的过程中,原本以语言学家为主的破译团队中加入了数学家和科学家,此时后来被称作为电脑之父的亚伦·
图灵也加入了破解团队,发明了一种更为高效的解码方法,同时,这支团队还设计了人类历史上第一步电脑来协助破解工作,后来德国的许多军事行动对盟军都不成秘密。
美国人破译了名为“紫电”的日本密码机的密码,由此为炸死偷袭珍珠港的元凶提供了有利信息。
尽管电机的出现,以使得密码学有的新的发展,加上历史上的发展,使得加密算法的构造和破译都有了深厚的经验,但直到二战结束也没有形成统一的理论来对密码学进行描述。
直到1949年,由于香农了著名的《保密系统的同喜理论》,才使得密码学有了统一规范的雏形。
紧接着70年代,著名的“密码学的新方向”一文出现,才打破了传统的对称密码体制,他提出了公钥密码体制。
到1977年,美国国家标准局颁布了数据加密标准,标志着近代密码学的开始。
1977年第一个较完整的公钥密码体制-RSA出现,1985年英国物理家戴维·
多伊奇提出了量子计算机的初步设想,同年,美国的贝尔特在实验室第一次实现了两字密码加密的信息通信。
2.1.2密码学的现状
现如今,由于科技的进步以及现实问题的实际需求,密码学也有的卓越的发展,密码学研究也出现了更多心得课题。
例如,由于技术的进步以及信息量的巨大增长,过去的加密技术不断的接收挑战,原本的加密技术已经满足不了现在的一些高保密性、大容量性的要求,密码技术在不断的更新,先后发明了DES加密算法、3DES加密算法、AES加密算法、RSA加密算法、BLOWFISH加密算法、MD5加密算法……还有一些著名的算法,例如基于椭圆曲线等数学方法的加密算法,现在又提出了云加密。
2.1.3密码学的分类
在密码学几千年的发展历史中,出现的加密方法五花八门,但总的来说,密码学可以分成两类:
对称密码学和非对称密码学。
对称密码学的加密和解密均采用相同的密钥,通信双方都必须有密钥。
非对称密钥加密则是采用的加密密钥和解密密钥两种不同的密钥,加密时使用加密密钥,揭秘湿使用解密密钥,通过加密密钥是不能直接算出解密密钥的,因此利用非对称加密算法加密只需要保护好解密密钥。
2.2典型的对称加密算法
对称加密算法的特点是算法公开、计算量小、加密速度快、加密效率高。
它的不足之处是通信双方使用相同的密钥,其安全性得不到保证。
此外,每队用户每次使用加密算法的时候,都需要使用他人不知道的密钥,这就使得通信双方所拥有的密钥数量呈几何级数增长,密钥的管理会逐渐成为用户的负担。
对称加密算法在分布式网络系统上使用比较困难,主要是密钥管理困难,使用成本较高。
与公开密钥算法相比较,对称加密算法能够提供加密和认证但却缺乏了签名功能,这使得它的适用范围有所缩小。
在计算机专用网系统中广泛使用对称加密算法DES和IDEA等。
2.2.1DES对称加密算法
2.2.1.1DES的发展史
20世纪中期,随着计算机通信网的发展对信息的安全保密的要求日益增长,数据传输和存数都要求有密码保护。
为了实现同一水平的安全性和兼容性,提出了数据加密标准。
为此,美国商业部所属国家标准局(NBS-NationalBureauofStandards)在1972年开始了一项计算机数据保护标准的发展规划。
NBS在1973年5月13日的联邦记录(FR1973)中公布了一项公告,征求在传输和存储数据中保护计算机数据的加密算法的建议,这一举措最终导致了数据加密标准(DES)的研制。
DES是迄今为止世界上最为广泛使用和流行的一种分组密码算法,它是由美国IBM公司研制的,是早期的称作Lucifer密码的一种发展和修改。
DES在1975年3月17日首次呗公布在联邦记录中,在做了大量的讨论后于1977年1月15日正式批准作为美国联邦信息处理的标准,即FIPS-46,同年7月15日开始生效。
规定每隔5年由美国国家保密局(NSA-NationalSecurityAgency)作出评估,重新批准它是否继续作为联邦加密标准。
尽管随后DES被AES所代替,但是DES对于推动密码理论的发展和应用起了重大作用,对于掌握分组密码的基本理论、设计思想和世纪应用仍然有着重要的参考价值。
年代简表
年份
日期
事件
1973
5月15日
NBS第一次征集加密算法标准
1974
8月27日
NBS第二次征集加密算法标准
1975
3月17日
DES在“联邦公报”上发布并征集意见
1976
8月
DES的第一次研讨会
9月
第二次研讨会,讨论DES的数学基础
11月
DES被确认为标准
1977
1月15日
DES被作为FIPS标准FIPSPUB46发布
1983
DES第一次延长标准期限
1986
HBO开始使用一个基于DES的电视卫星加密系统,Videocipher
II
1988
1月22日
DES第二次延长标准期限,称为FIPS46-1,取代FIPSPUB46
1990
7月
毕汉姆和萨莫尔重新发现了微分密码分析,并将之应用到了一个15位的类DES密码系统
1992
毕汉姆和萨莫尔发布了第一个复杂性小于暴力破解的理论攻击方法:
微分密码分析。
然而,这种方法仍然需要不现实的247选择明文。
1993
12月30日
DES作为FIPS46-2第三次延长标准期限
1994
试验了第一个实验性的DES密码分析,线性密码分析
1997
6月
DESCHAL计划第一次公开破解了DES加密的信息
1998
EFF的DES破解器(DeepCrack)在56小时内破解了DES密钥
1999
1月
DeepCrack和合作在22小时15分钟内破解了一个DES密钥
10月25日
DES作为FIPS46-3第四次延长标准期限,其中规定优先使用3DES,而普通DES只允许在遗留的系统中应用
表1.1.1DES年代简表
DES自被确立为加密标准到被AES所取代,期间DES算法在未做改动的情况下标准的有效期被延期了3次,足以证明DES算法本身的有效性和安全性,但是随着电脑技术的发展和人们在加密领域研究的深入,DES算法的安全性不可避免的受到了威胁。
第4次延期时被要求优先使用DES的改进算法3DES来减少DES算法安全性缺失所带来的的不良效果,同时DES的替代算法也在紧锣密鼓的筹划中,第4次延期期间AES算法被提出,自此DES退出来了历史舞台。
2.2.1.2DES算法简介
DES是一种用于非机密数据的正式数据加密标准。
DES采用的是一种传统的替换和移位的方法加密数据的分组密码,算法既可以用于对数据加密,也可以用于解密。
DES的密钥有64位,期中56位的二进制密钥为加密密钥,其余8位为奇偶校验位(每7为密钥对应一位奇偶校验位)。
56位密钥首先要与IV向量值进行运算,通过等分密钥、密钥移位、异或等操作,迭代循环运算16轮得到一串64位加密后的密钥。
然后使用64位加密后的密钥对数据进行加密。
加密的过程是一中迭代的分组密码,使用的是Feistel的技术,其中将加密的文本块分成两半。
使用子密钥对其中一般应用循环功能,然后将输出与另一半进行行“异或”运算;
接着交换这两半,这一过程会继续下去,但最后一个循环不交换。
DES使用16轮循环,使用异或、置换、代换、移位操作四种基本运算,最终输出得到加密的密文输出块就是加密所得的密文。
2.2.1.3DES优缺点
DES算法具有一下特点:
、DES算法公开,信息的保密性完整性完全依赖于密钥的管理、传输等保密环节。
、在目前水平下,想要在不知道的情况下起源破解DES(即分析出密钥K或明文)在短时间内是不可能的,至少要简历256或264个表,只有通过穷尽搜索方法才有可能去实现。
、DES加密中的明文或者密钥的即使发生微小变化都会导致密文的巨大变化,即DES显示出很强大的“雪崩效应”,这使得使攻击者无法分而破之。
但DES也有很大的不足之处,它的密钥长度只有56位,在现在看来明显有点短;
其次,这种加密算法存在着弱密钥;
最后加密过程中所使用的S盒也有些简单。
2.2.1.4DES算法的后续发展
随着时间的发展,软件和硬件的不断更新换代,使得计算机的性能得到了飞跃的提高,在DES产生的历史里,对付它最有效的攻击方式仍然是穷举攻击方式,在1999年1月,DES的破译者们用了22小时15分钟时间找到了DES的密钥。
这就意味着DES已经达到了信任重点,但是为了充分利用有关DES现有的软件和资源,人们就开始针对DES提出各种改进方案,期中一种简单的方案是使用多重DES加密算法—3DES算法,从而大大的提高了DES的安全性与有效性。
2.2.23DES对称加密算法
2.2.2.13DES起源
由于科技的进步,使得计算机性能得到快速的发展、提高,使得暴力破解DES加密的时间大大减少,这就给信息的传递带来了新的威胁。
为了增强信息传递的保密性,减小信息在传递过程中的威胁,人们在DES加密算法的基础上重新设计了对信息传递的加密算法,设计出了3DES加密算法。
2.2.2.23DES算法简介
3DES又称作TripleDES,是三重数据加密算法(TDEA,TripleDataEncryptionAlgorithm)块密码的通称。
它相当于对每个数据块应用三次的DES加密算法。
由于计算机运算能力的增强,原版DES密码的密钥长度变得容易被暴力破解:
3DES即设计用来提供一种相对简单的方法,即通过增加DES的密钥长度来避免类似的攻击,而不是设计一种全新的块密码算法。
3DES是DES加密算法的一种新的模式,其中3DES有4中模式:
、DES——EEE3模式:
在这种模式中一共使用3个不同的密钥,顺序使用3个DES加密算法。
、DES——EDE3模式:
在这种模式中一共使用3个不同的密钥,是一种加密——解密——加密的算法。
、DES——EEE2模式:
在这种模式中一共使用2个不同的密钥,顺序使用3次DES加密算法,但其中第一次和第三次加密过程所使用的加密密钥相同。
、DES——EDE2模式:
在这种模式中一共使用2个不同的密钥,按照对数据加密——解密——加密的处理算法,其中加密所使用的密钥是相同的。
但在现实环境中把DES——EDE3来作为3DES的标准算法。
3DES使用3条56位密钥对数据进行三次的加密或解密处理,这比起最初的DES来说,3DES更为安全。
3DES加密算法是DES向AES过渡的加密算法(在1999年,NIST机构将3DES算法指定为过度的加密标准)。
加密算法的具体实现:
假设Ek()和Dk()代表DES算法的加密和解密过程,K代表DES算法使用的密钥,P代表明文,C代表密文,这样就有:
3DES加密过程为:
C=Ek3(DK2(Ek1(p)));
3DES解密过程为:
P=Dk1(Ek2(Dk3(C)));
2.2.2.33DES优缺点
3DES加密算法的特点是它的密钥长度为112位或168位,是基于DES加解密,它对一块数据用三个不同的密钥进行三次加密或解密,这样使得强度更高,安全性更高,但由于处理过程的复杂性使得加密速度慢,资源消耗与DES相比较大;
一般在电子货币业界普遍使用3DES。
2.2.2.43DES的后续发展
在目前信息安全系统的设计中,对称算法3DES由于运算速度比非对称算法在速度上要快的多,但是由于计算机行性能的不断提高,通过高性能设备使用穷极搜索还是能被破解出来。
在实际的应用中,3DES通常是和非对称加密算法绑定使用。
随着我国信息安全建设的需求和VPN技术的应用推广,在金融行业中的密码键盘、智能IC卡的加密等电子商务领域,以及政府的电子政务等领域,3DES算法都普遍应用。
在这些应用场景中,使用一次认证只产生一次会话,一次会话只产生一个对称3DES算法密钥,每次的会话密钥都不相同的技术手段,就可以实现数据在传输过程中的可靠加密。
2.2.3RC4密码流对称加密算法
2.2.3.1RC4算法起源
RC4是RonRivest为RSA公司在1987年设计的一种流密码,其目的是为了实现RSA数据的安全。
RC4加密算法广泛应用在多种数据传输和网络协议中,例如SSL/TLS以及IEEE802.11WLAN标准。
在当时RC4算法作为商业秘密并未公开,1994年,此算法的具体描述被匿名发表在Cypherpunks邮件列表中,不久之后传到sci.crypt新闻组进而在互联网上流传开。
2.2.3.2RC4算法简介
RC4算法是一种典型基于非线性数组变换的序列密码。
它主要以一个足够大的数组为基础,对其进行非线性的变换运算,产生非线性的迷药序列,这个大数组被成为S盒。
RC4生成一种成为密钥流的伪随机流,它是一个可变密钥长度、面向字节操作的流密码。
它同明文通过异或操作混合已达到加密的目的,解密时,同密文进行异或操作。
其密钥流的生成由两部分组成:
KSA和PRGA。
1、KSA(theKey-SchedulingAlgorithm)
RC4首先使用密钥调度算法(KSA)来完成对大小为256的字节数组S的初始化及替换。
在替换时使用密钥,其密钥长度一般取5~16个字节,即40~128位,也可以更长,通常不超过256。
首先用0~255初始化数组S,然后使用密钥进行替换。
2、PRGA(thePseudo-RandomGenerationAlgorithm)
数据S在完成初始化后
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 DES 对称 算法 设计 实现
![提示](https://static.bdocx.com/images/bang_tan.gif)