DES对称加密算法详解

一、实验目的

通过该实验,详细了解DES加密算法的原理以及实现过程。

二、实验环境

客户机:windows_7 X64  IP地址:随机分配

源码与CAP4工具请在实验机内下载使用:http://tools.hetianlab.com/tools/T058.zip

三、实验内容与实验要求

我们的任务分为4个部分:

1.了解DES加密算法整体流程。

2.了解DES加密算法细节。

3.使用python简单实现DES算法加密主要过程

DES

    DES全称为Data Encryption Standard,即数据加密标准,是一种使用密钥加密的块算法,1977年被美国联邦政府的国家标准局确定为联邦资料处理标准(FIPS),并授权在非密级政府通信中使用,随后该算法在国际上广泛流传开来。需要注意的是,在某些文献中,作为算法的DES称为数据加密算法(DataEncryption Algorithm,DEA),已与作为标准的DES区分开来。

    DES算法就是一个把64位的明文输入块变为64位密文输出块的算法,它所使用的密钥也是64位(其实只使用到了56位,其余8位位奇偶校验位)

    DES算法的入口参数有三个:Key、Data、Mode。

扫描二维码关注公众号,回复: 17218134 查看本文章

    Key(密钥):为7个字节共56位,是DES算法的工作密钥(若说密钥为64位,其指的也是56位的秘钥加上8位奇偶校验位,奇偶校验位为第8,16,24,32,40,48,56,64位)

    Data(数据):为8个字节64位,是要被加密或被解密的数据

    Mode(模式): 为DES的工作方式,有两种:加密或解密。

    算法特点:分组比较短、密钥太短、密码生命周期短、运算速度较慢。

Unicode码

    Unicode只有一个字符集,中、日、韩的三种文字占用了Unicode中0x3000到0x9FFF的部分 Unicode目前普遍采用的是UCS-2,它用两个字节来编码一个字符, 比如汉字"经"的编码是0x7ECF,注意字符码一般用十六进制来 表示,为了与十进制区分,十六进制以0x开头,0x7ECF转换成十进制 就是32463,UCS-2用两个字节来编码字符,两个字节就是16位二进制, 2的16次方等于65536,所以UCS-2最多能编码65536个字符。 编码从0到127的字符与ASCII编码的字符一样,比如字母"a"的Unicode 编码是0x0061,十进制是97,而"a"的ASCII编码是0x61,十进制也是97, 对于汉字的编码,事实上Unicode对汉字支持不怎么好,这也是没办法的, 简体和繁体总共有六七万个汉字,而UCS-2最多能表示65536个,才六万 多个,所以Unicode只能排除一些几乎不用的汉字,好在常用的简体汉字也不过七千多个,为了能表示所有汉字,Unicode也有UCS-4规范,就是用 4个字节来编码字符。

参考实验原理与相关介绍,完成实验任务,并对实验结果进行分析,完成思考题目,总结实验的心得体会,并提出实验的改进意见

四、实验过程与分析

解压文件后,将进行测试

使用环境中的CAP4进行加密,比较生成的二进制

五、实验结果总结

本实验主要考察对DES的理解程度,我们了解了DES算法的实践过程和工作原理。经过这次实验,我们对DES加密过程已经十分熟悉。实验过程中应注意输入字母的正确性,比如testtest不能输为testest。

猜你喜欢

转载自blog.csdn.net/qq_70311894/article/details/133420748