欢迎来到天天文库
浏览记录
ID:31737771
大小:256.30 KB
页数:28页
时间:2019-01-17
《信息安全与编码-实现des算法-报告》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、信息安全与编码题目:实现DES算法DES加密解密算法1、问题背景科技的发展特别是网络的发展使计算机深入到了各行各业的方方面面,计算机在带来方便和提高了工作效率的同时却也带来了各种各样的新问题,其中信息安全问题最为突出,随着计算机信息安全要求的不断提高,计算机保密系统已变得越来越重要,密码学应用不再是局限于军事、国防等有限领域,而是迅速的走进了千家万户。2、DES算法的进展算机通信网的发展对信息的安全保密的要求日益增长,未来的数据传输和存储都要求有密码保护,为了实现同一水平的安全性和兼容性,提岀了数据加密标准化。美国国家标准局NBS(NationalBureauofStandards)在1973
2、年5月13日的联邦记录中公布了一项公告,征求在传输和存储数据中保护计算机数据的密码算法的建议,这一举措最终导致了数据加密标准(DES)[2口7]」弘[9
3、,[川的研制。DES是迄今为止世界上最为广泛使用和流行的一种分组密码算法,它是由美国IBM公司研制的,是早期的称作Lucifer密码的一种发展和修改。在做了人量公开讨论后,1977年1月15BDES正式被批准并作为美国联邦信息处理标准,同时规定每隔5年由美国国家保密局NSA(NationalSecurityAgency)作出评估,并垂新批准它是否继续作为联邦加密标准。DES是一种对二元数据进行加密的算法,数据分组长度为64bit,输出密文分组
4、长亦为64bit,没有数据扩展。密钥长度为64bit,其中有8bit为奇偶校验位,有效密钥长度为56bit,DES的整个体制是公开的,系统的安全性靠密钥的保密来承担。3、DES简介DES(DataEncryptionStandard)是由美国IBM公司于20卅:纪70年代中期的一个密码算(LUCIFER)发展而来,在1977年I刀150,美国国家标准局正式公布实施,并得到了ISO的认可,在过去的20多年时间里,DES被广泛应用于美国联邦和各种商业信息的保密工作中,经受住了各种密码分析和攻击,有很好的安全性。然而,目前DES算法已经被更为安全的Rijndael算法取代,但是DES加密算法还没有被
5、彻底的破解掉,仍是目前使用最为普遍的对称密码算法。所以对DES的研究还有很大价值,在国内DES算法在POS、ATM、磁卡及智能卡(IC卡)、加油站、高速公路收费站等领域被广泛应用,以此来实现关键的数据保密,如信用卡持卡人的PIN码加密传输,IC卡与POS机之间的双向认证、金融交易数据包的MAC校验等,均用到DES算法。DES算法是一种采用传统的代替和置换操作加密的分组密码,明文以64比特为分组,密钥长度为64比特,有效密钥长度是56比特,其中加密密钥有8比特是奇偶校验,DES的加密和解密用的是同一算法,它的安全性依赖于所用的密钥。它首先把需要加密的明文划分为每64比特的二进制的数据块,用56比
6、特有效密钥对64比特二进制数据块进行加密,每次加密可对64比特的明文输入进行16轮的替换和移位后,输出完全不同的64比特密文数据。由于DES算法仅使用最大为64比特的标准算法和逻辑运算,运算速度快,密钥容易产牛,适合于在大多数计算机上用软件快速实现,同样也适合于在专用芯片上实现。4、AES算法加密解密原理DES算法的加密过程首先对明文分组进行操作,需要加密的明文分组固定为64比特的块。图4・1是DES加密算法的加密流程。图4・2是密钥扩展处理过程。64位数揭区组输入L叫R血初姑敝(IP)初始换也(IP)0*rpLin=R10)i32J&(o)0*Lin=R⑹$2位+r(0)R(n=L,n»f(
7、RnK⑴)图4-IDES加密算法流程64位密钥Co<28位》D。(28位)G(28位)D}(28位)1111g楠环左移纸环左移祁坏左移整叶左移Cf.〈28位)D,(28位)饷S左移:11912110232112421225213*>■6214•)■7215■82161密树表的计毎逻辑严社换选择2(56乞图4・2子密钥产生流程5、DES算法编程实现DES加密解密过程主要函数有:show1();//主界面show2();//加密界面reader();〃读取明文和密钥To2Bin();//将字节转换成二进制流Replacement();//替换函数lif_move();//左移位实现函数SubKe
8、yO;//子密钥产生函数S_compress();//S盒压缩变换,其中数组she存放经过s盒的结果To10();//二进制转十进制To102();//二进制转十进制F_Function();//F函数Encryption();//加密函数changeKeyO;//Decryption();//解密函数print。;//输出函数部分源程序代码如下:〃加密函数voidEncryption(intm0
此文档下载收益归作者所有