DES加密和解密 下载本文

内容发布更新时间 : 2024/6/6 11:32:31星期一 下面是文章的全部内容请认真阅读。

医学技术学院 课程设计报告

DES算法加密与解密的设计与实现

课程名称:密码算法程序设计 学生姓名:胡苗苗

学生学号: 201412203502007 专业班级: 医学信息工程2班 任课教师:王海舜

2017年 1月4 日

1背景

1.1 DES算法概述

DES(Data Encryption Standard)是由美国IBM公司于20世纪70年代中期的一个密码算(LUCIFER)发展而来,在1977年1月15日,美国国家标准局正式公布实施,并得到了ISO的认可,在过去的20多年时间里,DES被广泛应用于美国联邦和各种商业信息的保密工作中,经受住了各种密码分析和攻击,有很好的安全性。然而,目前DES算法已经被更为安全的Rijndael算法取代,但是DES加密算法还没有被彻底的破解掉,仍是目前使用最为普遍的对称密码算法。所以对DES的研究还有很大价值,在国内DES算法在POS、ATM、磁卡及智能卡(IC卡)、加油站、高速公路收费站等领域被广泛应用,以此来实现关键的数据保密,如信用卡持卡人的PIN码加密传输,IC卡与POS机之间的双向认证、金融交易数据包的MAC校验等,均用到DES算法。

DES算法是一种采用传统的代替和置换操作加密的分组密码,明文以64比特为分组,密钥长度为64比特,有效密钥长度是56比特,其中加密密钥有8比特是奇偶校验,DES的加密和解密用的是同一算法,它的安全性依赖于所用的密钥。它首先把需要加密的明文划分为每64比特的二进制的数据块,用56比特有效密钥对64比特二进制数据块进行加密,每次加密可对64比特的明文输入进行16轮的替换和移位后,输出完全不同的64比特密文数据。由于DES算法仅使用最大为64比特的标准算法和逻辑运算,运算速度快,密钥容易产生,适合于在大多数计算机上用软件快速实现,同样也适合于在专用芯片上实现。

1.2 DES算法描述

DES算法的加密过程首先对明文分组进行操作,需要加密的明文分组固定为64比特的块。图1-1是DES加密算法的加密流程。图1-2是密钥扩展处理过程。

图1-1DES加密算法流程

图1-2子密钥产生流程

2程序设计

2.1主要目标

(1)用java设计一个DES加密/解密程序;

(2)完成一个明文的加解密,明文是字符串,输入明文,输出密文,进行加密后,能够进行正确的解密;

(5)要求从控制台输入读取明文,并在控制台中输出明文及密文;

2.2程序使用工具

该程序用java语言编写,编写时所用的工具主要是eclipse 运行环境是jdk1.7及以上

3程序运行结果

测试明文:01234ABCDabcd!@#$