毕业设计(论文)-64位DES加密系统设计与的实现.doc_第1页
毕业设计(论文)-64位DES加密系统设计与的实现.doc_第2页
毕业设计(论文)-64位DES加密系统设计与的实现.doc_第3页
毕业设计(论文)-64位DES加密系统设计与的实现.doc_第4页
毕业设计(论文)-64位DES加密系统设计与的实现.doc_第5页
已阅读5页,还剩43页未读 继续免费阅读

下载本文档

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

文档简介

论文题目:64位des加密系统设计与的实现64位des加密系统设计与实现摘要 数据加密技术主要通过对网络中传输的信息进行数据加密来保障其安全性,是一种主动安全的防御策略。信息技术改变着人们的生活和工作方式,与此同时,信息安全也已成为世人关注的社会问题。密码技术是信息安全的关键技术,密码算法的快速实现日益重要,本文简要介绍了des 算法的基本原理及具体实现过程,并分析了该算法的安全性,并着重对des 算法的加密过程及优缺点进行了探讨。通过对分组密码des 算法ip 变换、ip 逆变换、s- 盒换位表的分析, 找出了他们的换位规则, 根据这种规则提出了对des 算法软件实现的改进方法。并结合c 编程环境,介绍了des 加密程序实现的具体方法。关键词 des加密; c编程程序实现;算法abstract the encryption of the data safeguards its security mainly by encrypting the data transmitted by the netwoyrk.this active defensive device can voluntarily offer considerable safety protection for information with only a little cost . information technology changes our life and work style. at the same time, information security has become one of our important social problems. cryptotechnique is the key technique of information security , a quick implementation of cryptographic algorithm has become more and more important.this paper introduces the basic elements of des arithmetic and the realizing process of des algorithm, analyze the security of des arithmetic it focuses on the discussion of the encryption process and the pluses and minuses of des algorithm.。through the analysis of des algorithm, ip commutation, ip- 1 commutation, s- box, find out their replacement rule and put forward the improvement methods of des algorithm s software realization according to this kind of rule. the concrete method of programming to achieve des encryption technique by c language were discussed.key words des encryption;c programming achievement of programme; 目次一、引言-二、des加密算法-(一)、des加密算法的基本概念-(二)、des加密算法基本思想-(三)、des加密算法内在特性-(四)、des 加密算法的优点-(五)、des加密算法加密目的-三、des加密算法流程分析-(一)、des加密算法加密过程-1、 子密钥的产生-2、 换位操作初始置换-3、 乘积变换、扩展置换-、s-盒置换-、p-盒置换-、乘积变换函数f-4、 换位操作末置换-5、 des 加密流程图-(二)、des加密算法解密过程-1、 des 加密算法的解密思路-2、 des解密流程图-四、des 加密算法的讨论-(一)、des加密算法的工作方式- (二)、des加密算法的安全性-(三)、des 加密的实现版本优化-五、des 加密算法c环境下的实现-六、结束语-一、引 言二十一世纪随着网络的普及和发展,在给人们提供大量方便的同时,信息注定成为一种重要的战略资源。也必然对安全提出更高的要求.信息的安全保障能力成为一个国家综合国力的重要组成部分。 采用数据保密技术能保证网上传输信息的安全,以免数据在传输过程中被盗用、暴露或篡改. 数据传输保密的数学模型主要包括数据的加密与解密,使用加密算法能做到数据加密,在各种信息安全技术措施中,硬件结构的安全和操作系统的安全是基础,密码技术是网络安全与保密的核心和关键。des 算法是目前使用最多的加密算法,也是最有代表性的分组加密算法,目前广泛的应用于保密通信之中。其问世20多年来,成为密码界研究的重点,经受住了许多科学家的研究和破译,是一种世界公认的较好的加密算法,在pos、atm、磁卡及智能卡( ic 卡) 、加油站、高速公路收费站等民用密码领域有着广泛的应用。范围包括:计算机网络通信中的数据保护、电子资金传送系统中的信息加密、保护用户文件、用户识别等,为全球贸易、金融等非官方部门提供了可靠的通信安全保障。早在1977 年,人们估计建成一台每秒钟检测一百万个密钥的专用机用于des 的解密要耗资两千万美元,而且需要12 小时的破解才能得到结果,所以当时des 被认为是一种十分强壮的加密方法。当今的计算机速度越来越快,1997 年,人们估计制造一台用于des 解密的专用机的费用降到十万美元左右,破解时间为6 小时。所以,当今社会单纯使用传统的64位密钥的des算法进行加密已经不再安全。本文通过des加密技术的基本原理及具体实现步骤,并分析了该算法的安全性,并着重对des 算法的加密过程及优缺点进行了探讨。通过对分组密码des 算法ip 变换、ip 逆变换、s- 盒换位表的分析,对des的安全质疑给出了回答。二、des加密算法(一)、des加密算法基本概念数据加密标准(data encryption standard,简称des)是美国国家标准局于1977 年颁布的由ibm公司研制的一种非机密数据的正式数据加密标准。在正式接触des之前,首先让我们了解一下加密技术中的一些专业术语:加密(encipher) :通过密码系统把明文变换为不可懂的形式的密文。加密算法( encryption algorithm) : 实施一系列变换,使信息变成密文的一组数学规则。解密(decrypt) :使用适当的密钥,将已加密的文本转换成明文。密文(ciphertext) :经加密处理而产生的数据,其语义内容是不可用的。明文(cleartext) :可理解的数据,其语义内容是可用的。des算法是对称的,即是一种对称密码体制,它所使用的加密密钥和解密密钥是相同的,既可用于加密又可用于解密。des 是一种采用传统的替换和移位的方法加密的分组密码, 即它将明文分成固定长度(64 比特)的组(块) ,用同一密钥(64 比特实际长度为56 比特因有8 比特用于奇偶校验)和乘法对每一块加密,输出也是固定长度(64 比特)的密文。(二)、des加密算法基本思想由于这种典型的按分组方式工作的密码,其基本思想是将二进制序列的明文分成每64比特一组用64比特的密钥对其进行16轮代换和换位加密,最后形成密文。(三)、des 算法的内在特性(1)密钥有效长度是56 位(第8,16,?,64 位为校验位),分组明文长度为64 位,而且明文、密文与密钥存在互补关系.(2)仅用16 次循环迭代,使得相同明文会产生相同密文.(3)存在着很好的并行结构:产生内部密钥的左移次数存在着准对称性(即内部密钥生成过程存在并行性). des 属于传统的feistel 网络结构,在des 的基本单元中能够实施并行操作.(4)des 有16 轮加密,如果将第i 轮的p置换移至下一轮后会与下一轮的e 扩展操作进行合并,简化算法的基本操作.(5)可以通过s 盒与p 置换合并的方法节省p 置换的基本操作时间.(四)、des 加密算法的优点:des加密算法的优点大致上有以下几点:(1) des 提供高质量的数据保护,防止数据未经授权的泄露和未被察觉的修改; (2) 具有相当高的复杂性,使得破译的开销超过可能获得的利益,同时便于理解掌握; (3) des密码体制的安全性不依赖于算法的保密,其加密的安全性仅以加密密钥的保密为基础。(五)、des加密算法加密目的des加密算法要达到的目的(通常称为des 密码算法要求)主要为以下五点:1.提供高质量的数据保护,防止数据未经授权的泄露和未被察觉的修改;2.具有相当高的复杂性,使得破译的开销超过可能获得的利益,同时又要便于理解和掌握;3.des 密码体制的安全性应该不依赖于算法的保密,其安全性仅以加密密钥的保密为基础;4.实现经济,运行有效,并且适用于多种完全不同的应用。5.des的巧妙之处在于,除了密钥输入顺序之外其加密和解密的步骤完全相同。三、des加密算法流程分析(一)、des加密算法加密过程数据加密标准过程主要包括三部分:一个是密钥产生部分;一个是换位操作,即初始置换部分和末置换部分;另一个是乘积交换部分。1、子密钥的产生des的乘积变换部分含16轮非线性变换,而每一轮非线性变换需要一个48比特的子密钥。这16个子密钥都是有一个64比特的外部密钥(即des的主密钥)经过移位和置换生成。64比特主密钥是在实施加密之前由外部直接输入给des的16个子密钥是由一个64比特的外部密钥经过移位和转换产生的。64比特主外部密钥k被输入后首先经过奇偶校验,同时剔除k8、k16、k24、k32、k40、k48、k56、k64等奇偶校验位,得到56比特的密钥k。再将k加到密码置换,密码置换是将k各个位上的数码,按照特定的进行换位,置换后的56 比特分别存放到两个28比特的寄存器c0和d0中。57494133251791585042342618102595143352719113605244366355473931231576254463830221466153453729211352820124des密钥置换表密钥置换有规律可循:将164间的数字依次从上到下从右向左填入表格(1),将表格(1)消去最后一行,再将其它部分分割成表格(2)和表格(3)。将表格(3)翻转180即可。57494133251791585042342618102595143352719113605244362820124615345372921135625446383022146635547393123157645648403224168表格(1)5749413325179158504234261810259514335271911360524436 表格(2)2820124615345372921135625446383022146635547393123157表格(3)读取的顺序是从最上面一行开始,由左至右逐行读取。前四行共28比特。分别置于寄存器c0第1位.第28位 ,后四行共28比特分别置于寄存器d0第1 位.第28位。其它16对寄存器,即(c1,d1)、(c2,d2)、(c3,d3)、(c4,d4)、(c5,d5)、(c6,d6)、(c7,d7)、(c8,d8)、(c9,d9)、(c10,d10)、(c11,d11)、(c12,d12)、(c13,d13)、(c14,d14)、(c15,d15)、(c16,d16)都有28比特。(ci+1,di+1)的内容均是根据如图每轮密钥的移位表,将寄存器对)(ci,di)内容循环左移1至2位到,循环左移即从寄存器左边移出的比特,又补到寄存器的最右边一位上。每轮子密钥的移位比特数寄存器序号12345678910111213141516左移位数1122222212222221外部密钥k的各比特在寄存器ci的位置ci寄存器ci中的各比特的序号ci1234567891011121314057494133251791585042342618014941332517915850423426181012413325179158504234261810223251791585042342618102595134915850423426181025951433545585042342618102595143352719564234261810259514335271911367261810259514335271911360527810259514335271911360524436892595143352719113605244365791051433527191136052443657494110113527191136052443657494133251112191136052443657494133251791213360524436574941332517915813145244365749413325179158504214153657494133251791585042342615165749413325179158504234261816ci寄存器ci中的各比特的序号ci151617181920212223242526272801025951433527191136052443601259514335271911360524436571259514335271911360524436574923433527191136052443657494133342719113605244365749413325174511360524436574941332517915660524436574941332517915850674436574941332517915850423478574941332517915850423426188949413325179158504234261810910332517915850423426181025910111791585042342618102595143111215850423426181025951433527121350423426181025951433527191113143426181025951433527191136014151810259514335271911360524415161025951433527191136052443616外部密钥k的各比特在寄存器di的位置di寄存器di中的各比特的序号di123456789101112131406355473931231576254463830220155473931231576254463830221412473931231576254463830221462331231576254463830221466153341576254463830221466153453745625446383022146615345372921564638302214661534537292113567302214661534537292113528207814661534537292113528201248966153453729211352820124639105345372921135282012463554710113729211352820124635547393111122113528201246355473931231512135282012463554739312315762131420124635547393123157625446141546355473931231576254463830151663554739312315762544638302216di寄存器di中的各比特的序号di123456789101112131406355473931231576254463830220155473931231576254463830221412473931231576254463830221462331231576254463830221466153341576254463830221466153453745625446383022146615345372921564638302214661534537292113567302214661534537292113528207814661534537292113528201248966153453729211352820124639105345372921135282012463554710113729211352820124635547393111122113528201246355473931231512135282012463554739312315762131420124635547393123157625446141546355473931231576254463830151663554739312315762544638302216将存储到各寄存器对中的内容都加到压缩置换表中,压缩置换是按照固定的格式从中选出48比特,其中压缩置换表的数字表示寄存器对(ci,di)的比特序号,即将(ci,di)中的第14,17,11,位分别置换成ki的第1,2,3,位。ki表中的前四行的均小于28说明ki的前24位从寄存器ci 的28 位置换得来,其中剔除第9,18,22,25四个比特。表中的前四行的均小于28说明ki的前24位从寄存器di的28 位置换得来其中剔除第35,38,43,54四个比特。压缩置换表141711241532815621102319124268167272013241523137475530405145334844493956345346425036293216对积存器经过压缩置换表的置换产生16个子密钥k1、k2、k3、 k4、 k5、 k6 、k7、 k8 、k9 、k10、 k11、 k12、 k13、 k14 、k15、 k16 。经过压缩置换置换子密钥ki 与外部密钥k的比特对应关系如图:ki子密钥ki中的各比特的序号(位)ki123456789101112131415161718192021222324110 513460491733572919423352625445859136271841122432652419254959111346027181736505158571910332351271036255893343506018441121493435424135917343511594994258172734442576051503318192625524314519604333582642111185751414435341723109362750563442717421026506024135255719181515259584911346752571112659103444512519941325035364342336018783641605010435918573593582552513419492726174428957335242235511049271605017494326114119189365991041173626511935693311504434157271060253258494310112514910351194317603457185041115944952514233271112950335919523271441841234256043575836352617111213583417433365211505722551189442741414919101601314421812752493660344151935258571125263335950441415262501136334944182535581951424160910175243345715161859423572541361017275011433433521294435264916ki子密钥ki中的各比特的序号(位)ki25262728293031323334353637383940414243444546474812228395437447305532329612138631520451413625531121420314629633922284515215313305571237655447232361415301347236122962537281439546321532038317344555621428317536313462021126123384753742215544529394661121554374728304563457223120315566238561323304563623821311214552047295461545395346226728714294746225156361394311338536255202337306781254611331306206247452355152822374639472114538944653523226112543937154772014293831636213645910553037207645633823216231544611322154746285329101139142145453294722754615385545286623130123713111223615553837133165420306222392912534615146321281213745203922212815533841446623136337306261475121314542942365126237255613053728472114464531206314153813557532063462163945143754123156130291544715163054762451255381361313762946423285322217633916des子密钥产生过程流程图如下:64比特外部密钥k奇偶校验密钥置换c0(28比特)左移c1(28比特)左移d0(28比特)左移d1(28比特)左移k1(48比特)压缩置换ci-1(28比特)左移ci(28比特)左移di-1(28比特)左移di(28比特)左移ki(48比特)压缩置换c15(28比特)左移c16(28比特)d15(28比特)左移d16(28比特)k16(48比特)压缩置换ki-1(48比特)压缩置换k15(48比特)压缩置换2、换位操作初始置换加密前,先把明文分成64比特的分组,然后将64比特二进制码输入密码器中。密码器先对输入的64位码进行初始置换.。58504234261810260524436282012462544638302214664564840322416857494133251791595143352719113615345372921135635547393123157初始置换是对64为明文分组进行如图所示的变换。读法依然是从左到右,从上到下。初始置换表有明显的规律性:上四行全为偶数,而且从上到下,从左到右是由小到大排列,下四行全为奇数,而且从上到下,从左到右是由小到大排列然后在64位主密钥的产生的16个子密钥控制下进行16轮的乘积变换,接着再进行末置换就可得到64比特已加密的密文。3、乘积变换乘积变换包括:扩展置换,与48比特密钥ki进行异或操作,s-盒置换,p-盒置换。、扩展置换在每一轮的变换中,des对上一轮结果的右半部分的32比特首先进行扩展置换。扩展置换有时也叫e-盒置换,是将32比特数据扩展成48比特。扩展置换的目的:一、 产生与密钥同长度的数据便于同密钥进行异或操作;二、 提供更长的结果,使得在非线性替换运算中能进行压缩。扩展置换具体过程:先将输入的32比特的数据分成8组,每组4比特。把上一组的最后一位加在该组的前面,把下一组的最前的一位放在该组的后面,且8组为循环。r(i-1)(32位)扩展置换后r(i-1)(48位)r28 r29 r30 r31 r32 r1扩展置换:e(r)= r32 r1 r2 r3 r4 r5r4 r5 r6 r7 r8 r9r8 r9 r10 r11 r12 r13r12 r13 r14 r15 r16 r17 r16 r17 r18 r19 r20 r21r20 r21 r22 r23 r24 r25r24 r25 r26 r27 r28 r29r32 r1 r2 r3 r4 r5r28 r29 r30 r31 r32 r1然后再与已经经过移位和置换的48比特密钥ki进行异或操作,将得到的结果新的48比特数据送入s-盒进行非线性替换。、s-盒置换s-盒将48比特的输入分成8组,每组6比特。每一个6比特的分组由一个s-盒进行以下操作:若输入的6比特为a=(a1, a2, a3, a4, a5, a6)则a1 和a6 两位二进制数可以确定03之间的一个数字,它决定s-盒置换表中的某一行,而a2, a3, a4, a5,这四位二进制数可以确定015之间的一个数字,它决定s-盒置换表中的某一列,行列叫界交叉初所存的十六进制数的二进制数转换即为新的输出。s盒(1)(0000) 0(0001)1(0010)2(0011)3(0100)4(0101)5(0110)6(0111)7(1000)8(1001)9(1010)10(1011)11(1100)12(1101)13(1110)14(1111)15(00)01441312151183106125907(01)10157414213110612119538(10)2411481621115129731050(11)31512824917511314100613s盒(2)(0000) 0(0001)1(0010)2(0011)3(0100)4(0101)5(0110)6(0111)7(1000)8(1001)9(1010)10(1011)11(1100)12(1101)13(1110)14(1111)15(00)015181461

温馨提示

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

最新文档

评论

0/150

提交评论