《64位DES加密与DES加密算法在门禁系统中应用.doc》由会员分享,可在线阅读,更多相关《64位DES加密与DES加密算法在门禁系统中应用.doc(49页珍藏版)》请在三一办公上搜索。
1、论文题目:64位DES加密与DES加密算法在门禁系统中应用64位DES加密系统设计与实现摘要 密码技术是信息安全的关键技术,密码算法的快速实现日益重要,本文简要介绍了DES 算法的基本原理及具体实现过程,并分析了该算法的安全性,并着重对DES 算法的加密过程及优缺点进行了探讨。通过对分组密码DES 算法IP 变换、IP 逆变换、S- 盒换位表的分析, 找出了他们的换位规则, 根据这种规则提出了对DES 算法软件实现的改进方法。并结合C 编程环境,介绍了DES 加密程序实现的具体方法。本文介绍了在门禁系统中使用MCS51汇编语言编写DES加密算法的方法关键词 DES加密; C编程程序实现;算法,
2、门禁系统 DES加密算法 MCS51单片机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 li
3、fe 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 D
4、ES 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 replac
5、ement 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
6、加密算法-(一)、DES加密算法的基本概念-(二)、DES加密算法基本思想-(三)、DES加密算法内在特性-(四)、DES 加密算法的优点-(五)、DES加密算法加密目的-三、DES加密算法流程分析-(一)、DES加密算法加密过程-1、 子密钥的产生-2、 换位操作初始置换-3、 乘积变换、扩展置换-、S-盒置换-、P-盒置换-、乘积变换函数f-4、 DES加密算法在门禁系统中应用-(二)、DES加密算法解密过程-1、 DES 加密算法的解密思路-2、 DES解密流程图-四、DES 加密算法的讨论-(一)、DES加密算法的工作方式- (二)、DES加密算法的安全性-(三)、DES 加密的实现版
7、本优化-五、DES 加密算法C环境下的实现-六、结束语-一、引 言二十一世纪随着网络的普及和发展,在给人们提供大量方便的同时,信息注定成为一种重要的战略资源。也必然对安全提出更高的要求.信息的安全保障能力成为一个国家综合国力的重要组成部分。 采用数据保密技术能保证网上传输信息的安全,以免数据在传输过程中被盗用、暴露或篡改. 数据传输保密的数学模型主要包括数据的加密与解密,使用加密算法能做到数据加密,在各种信息安全技术措施中,硬件结构的安全和操作系统的安全是基础,密码技术是网络安全与保密的核心和关键。DES 算法是目前使用最多的加密算法,也是最有代表性的分组加密算法,目前广泛的应用于保密通信之中
8、。其问世20多年来,成为密码界研究的重点,经受住了许多科学家的研究和破译,是一种世界公认的较好的加密算法,在POS、ATM、磁卡及智能卡( IC 卡) 、加油站、高速公路收费站等民用密码领域有着广泛的应用。范围包括:计算机网络通信中的数据保护、电子资金传送系统中的信息加密、保护用户文件、用户识别等,为全球贸易、金融等非官方部门提供了可靠的通信安全保障。早在1977 年,人们估计建成一台每秒钟检测一百万个密钥的专用机用于DES 的解密要耗资两千万美元,而且需要12 小时的破解才能得到结果,所以当时DES 被认为是一种十分强壮的加密方法。当今的计算机速度越来越快,1997 年,人们估计制造一台用于
9、DES 解密的专用机的费用降到十万美元左右,破解时间为6 小时。所以,当今社会单纯使用传统的64位密钥的DES算法进行加密已经不再安全。本文通过DES加密技术的基本原理及具体实现步骤,并分析了该算法的安全性,并着重对DES 算法的加密过程及优缺点进行了探讨。通过对分组密码DES 算法IP 变换、IP 逆变换、S- 盒换位表的分析,对DES的安全质疑给出了回答。二、DES加密算法(一)、DES加密算法基本概念数据加密标准(Data Encryption Standard,简称DES)是美国国家标准局于1977 年颁布的由IBM公司研制的一种非机密数据的正式数据加密标准。在正式接触DES之前,首先
10、让我们了解一下加密技术中的一些专业术语:加密(Encipher) :通过密码系统把明文变换为不可懂的形式的密文。加密算法( Encryption Algorithm) : 实施一系列变换,使信息变成密文的一组数学规则。解密(Decrypt) :使用适当的密钥,将已加密的文本转换成明文。密文(Ciphertext) :经加密处理而产生的数据,其语义内容是不可用的。明文(Cleartext) :可理解的数据,其语义内容是可用的。DES算法是对称的,即是一种对称密码体制,它所使用的加密密钥和解密密钥是相同的,既可用于加密又可用于解密。DES 是一种采用传统的替换和移位的方法加密的分组密码, 即它将明
11、文分成固定长度(64 比特)的组(块) ,用同一密钥(64 比特实际长度为56 比特因有8 比特用于奇偶校验)和乘法对每一块加密,输出也是固定长度(64 比特)的密文。(二)、DES加密算法基本思想由于这种典型的按分组方式工作的密码,其基本思想是将二进制序列的明文分成每64比特一组用64比特的密钥对其进行16轮代换和换位加密,最后形成密文。(三)、DES 算法的内在特性(1)密钥有效长度是56 位(第8,16,?,64 位为校验位),分组明文长度为64 位,而且明文、密文与密钥存在互补关系.(2)仅用16 次循环迭代,使得相同明文会产生相同密文.(3)存在着很好的并行结构:产生内部密钥的左移次
12、数存在着准对称性(即内部密钥生成过程存在并行性). DES 属于传统的Feistel 网络结构,在DES 的基本单元中能够实施并行操作.(4)DES 有16 轮加密,如果将第i 轮的P置换移至下一轮后会与下一轮的E 扩展操作进行合并,简化算法的基本操作.(5)可以通过S 盒与P 置换合并的方法节省P 置换的基本操作时间.(四)、DES 加密算法的优点:DES加密算法的优点大致上有以下几点:(1) DES 提供高质量的数据保护,防止数据未经授权的泄露和未被察觉的修改; (2) 具有相当高的复杂性,使得破译的开销超过可能获得的利益,同时便于理解掌握; (3) DES密码体制的安全性不依赖于算法的保
13、密,其加密的安全性仅以加密密钥的保密为基础。(五)、DES加密算法加密目的DES加密算法要达到的目的(通常称为DES 密码算法要求)主要为以下五点:1.提供高质量的数据保护,防止数据未经授权的泄露和未被察觉的修改;2.具有相当高的复杂性,使得破译的开销超过可能获得的利益,同时又要便于理解和掌握;3.DES 密码体制的安全性应该不依赖于算法的保密,其安全性仅以加密密钥的保密为基础;4.实现经济,运行有效,并且适用于多种完全不同的应用。5.DES的巧妙之处在于,除了密钥输入顺序之外其加密和解密的步骤完全相同。三、DES加密算法流程分析(一)、DES加密算法加密过程数据加密标准过程主要包括三部分:一
14、个是密钥产生部分;一个是换位操作,即初始置换部分和末置换部分;另一个是乘积交换部分。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各个位上的数码,按照特定的进行换位,
15、置换后的56 比特分别存放到两个28比特的寄存器C0和D0中。57494133251791585042342618102595143352719113605244366355473931231576254463830221466153453729211352820124DES密钥置换表密钥置换有规律可循:将164间的数字依次从上到下从右向左填入表格(1),将表格(1)消去最后一行,再将其它部分分割成表格(2)和表格(3)。将表格(3)翻转180即可。5749413325179158504234261810259514335271911360524436282012461534537292113
16、5625446383022146635547393123157645648403224168表格(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,D
17、6)、(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中的各比特的序号Ci123456789101112131
18、405749413325179158504234261801494133251791585042342618101241332517915850423426181022325179158504234261810259513491585042342618102595143354558504234261810259514335271956423426181025951433527191136726181025951433527191136052781025951433527191136052443689259514335271911360524436579105143352719113605244
19、3657494110113527191136052443657494133251112191136052443657494133251791213360524436574941332517915813145244365749413325179158504214153657494133251791585042342615165749413325179158504234261816Ci寄存器Ci中的各比特的序号Ci151617181920212223242526272801025951433527191136052443601259514335271911360524436571259514335
20、271911360524436574923433527191136052443657494133342719113605244365749413325174511360524436574941332517915660524436574941332517915850674436574941332517915850423478574941332517915850423426188949413325179158504234261810910332517915850423426181025910111791585042342618102595143111215850423426181025951433
21、527121350423426181025951433527191113143426181025951433527191136014151810259514335271911360524415161025951433527191136052443616外部密钥K的各比特在寄存器Di的位置Di寄存器Di中的各比特的序号Di1234567891011121314063554739312315762544638302201554739312315762544638302214124739312315762544638302214623312315762544638302214661533415762
22、544638302214661534537456254463830221466153453729215646383022146615345372921135673022146615345372921135282078146615345372921135282012489661534537292113528201246391053453729211352820124635547101137292113528201246355473931111221135282012463554739312315121352820124635547393123157621314201246355473931231
23、57625446141546355473931231576254463830151663554739312315762544638302216Di寄存器Di中的各比特的序号Di12345678910111213140635547393123157625446383022015547393123157625446383022141247393123157625446383022146233123157625446383022146615334157625446383022146615345374562544638302214661534537292156463830221466153453729
24、2113567302214661534537292113528207814661534537292113528201248966153453729211352820124639105345372921135282012463554710113729211352820124635547393111122113528201246355473931231512135282012463554739312315762131420124635547393123157625446141546355473931231576254463830151663554739312315762544638302216将存
25、储到各寄存器对中的内容都加到压缩置换表中,压缩置换是按照固定的格式从中选出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四个比特。压缩置换表14171124153281562110231912426816727201324152313747553040514533484449
26、3956345346425036293216对积存器经过压缩置换表的置换产生16个子密钥K1、K2、K3、 K4、 K5、 K6 、K7、 K8 、K9 、K10、 K11、 K12、 K13、 K14 、K15、 K16 。经过压缩置换置换子密钥Ki 与外部密钥K的比特对应关系如图:Ki子密钥Ki中的各比特的序号(位)Ki123456789101112131415161718192021222324110 5134604917335729194233526254458591362718411224326524192549591113460271817365051585719103323512
27、710362558933435060184411214934354241359173435115949942581727344425760515033181926255243145196043335826421111857514144353417231093627505634427174210265060241352557191815152595849113467525711126591034445125199413250353643423360187836416050104359185735935825525134194927261744289573352422355110492716050
28、174943261141191893659910411736265119356933115044341572710602532584943101125149103511943176034571850411159449525142332711129503359195232714418412342560435758363526171112135834174333652115057225511894427414149191016013144218127524936603441519352585711252633359504414152625011363349441825355819514241609
29、10175243345715161859423572541361017275011433433521294435264916Ki子密钥Ki中的各比特的序号(位)Ki25262728293031323334353637383940414243444546474812228395437447305532329612138631520451413625531121420314629633922284515215313305571237655447232361415301347236122962537281439546321532038317344555621428317536313462021126
30、123384753742215544529394661121554374728304563457223120315566238561323304563623821311214552047295461545395346226728714294746225156361394311338536255202337306781254611331306206247452355152822374639472114538944653523226112543937154772014293831636213645910553037207645633823216231544611322154746285329101
31、139142145453294722754615385545286623130123713111223615553837133165420306222392912534615146321281213745203922212815533841446623136337306261475121314542942365126237255613053728472114464531206314153813557532063462163945143754123156130291544715163054762451255381361313762946423285322217633916DES子密钥产生过程流程图如下:64比特外部密钥K奇偶校验密钥置换C0(28比特)左移C1(28比特)左移D0(28比特)左移D1(28比特)左移K1(48比特)压缩置换Ci-1(28比特)左移Ci(28比特)左移Di-1(2