视频1 视频21 视频41 视频61 视频文章1 视频文章21 视频文章41 视频文章61 推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37 推荐39 推荐41 推荐43 推荐45 推荐47 推荐49 关键词1 关键词101 关键词201 关键词301 关键词401 关键词501 关键词601 关键词701 关键词801 关键词901 关键词1001 关键词1101 关键词1201 关键词1301 关键词1401 关键词1501 关键词1601 关键词1701 关键词1801 关键词1901 视频扩展1 视频扩展6 视频扩展11 视频扩展16 文章1 文章201 文章401 文章601 文章801 文章1001 资讯1 资讯501 资讯1001 资讯1501 标签1 标签501 标签1001 关键词1 关键词501 关键词1001 关键词1501 专题2001
DES加密算法的简单实现实验报告
2025-09-30 22:44:17 责编:小OO
文档
苏州科技学院电子与信息工程学院

实 验 报 告

实验一

    (实验)课程名称    信息安全技术         

      实验名称  DES加密算法的简单实现

           实   验   报   告

              

一、实验室名称:     电子学院213机房                   

二、实验项目名称:DES加密算法的简单实现

三、实验学时:2学时

四、实验原理:

DES的描述

  DES是一种分组加密算法,他以位为分组对数据加密。位一组的明文从算法的一端 输入,位的密文从另一端输出。DES是一个对称算法:加密和解密用的是同一个算法(除密钥编排不同以外)。 

  密钥的长度为56位(密钥通常表示为位的数,但每个第8位都用作奇偶检验,可以忽略)。密钥可以是任意的56位数,且可以在任意的时候改变。 

  DES算法的入口参数有3个:Key,Data,Mode。其中Key为8个字节共位,是DES算法 的工作密钥;Data也为8个字节位,是要被加密或解密的数据:Mode为DES的工作方式,有两种:加密或解密。 

  DES算法的工作过程:若Mode为加密,则用Key对数据Data进行加密,生成Data的密码 形式(位)作为DES的输出结果;若Mode为解密,则用Key对密码形式的数据Data解密,还 原为Data的明码形式(位)作为DES的输出结果。 

 

DES算法详述

  DES算法把位的明文输入块变为位的密文输出块,他所使用的密钥也是位,DES对 位的明文分组进行操作。通过一个初始置换,将明文分组分成左半部分和右半部分,各32位长。然后进行16轮相同的运算,这些相同的运算被称为函数f,在运算过程中数据和密钥相结合。经过16轮运算后左、右部分在一起经过一个置换(初始置换的逆置换),这样算法就完成了。 

  (1)初始置换 

  其功能是把输入的位数据块按位重新组合,并把输出分为L0,R0两部分,每部分各长32位,

  即将输入的第58位换到第1位,第50位换到第2位,…,依次类推,最后一位是原来的第7位,L0,R0则是换位输出后的两部分,L0是输出的左32位,R0是右32位。 

  (2)逆置换 

  经过16次迭代运算后,得到L16,R16,将此作为输入进行逆置换,即得到密文输出。逆置换正好是初始置换的逆运算。例如,第1位经过初始置换后,处于第40位,而通过逆置 换,又将第40位换回到第1位。

  (3)函数f(Ri,Ki)的计算

  “扩展置换”是将32位放大成48位,“P盒置换”是32位到32位换位,

  在(Ri,Ki)算法描述图中,选择函数功能是把6 b数据变为4 b数据。

  (4)子密钥Ki(48 b)的生成算法 

  开始,由于不考虑每个字节的第8位,DES的密钥从位变为48位,如表6所示,首先56位 密钥被分成两个部分,每部分28位,然后根据轮数,两部分分别循环左移l或2位。

  DES算法规定,其中第8,16,…,位是奇偶校验位,不参与DES运算。故Key实际可用 位数只有56位。即:经过密钥置换表的变换后,Key的位数由位变成了56位,此56位分为C 0,D0两部分,各28位,然后分别进行第一次循环左移,得到C1,D1,将C1(28位),D1(28位 )合并得到56位,再经过压缩置换,从而便得到了密钥K0(48位)。依次类推,便可得到K1,K 2,…,K15。需要注意的是,16次循环左移对应的左移位数要依据表7所示的规则进行。 

以上介绍了DES算法的加密过程。DES算法的解密过程是一样的,区别仅在于第一次迭代时用子密钥K15,第二次是K14,…,最后一次用K0,算法本身并没有任何变化。

五、实验目的:

目的:实现DES算法算法并掌握其原理。

六、实验内容:

a)熟悉DES算法的基本原理;

b)依据所算则的算法,编程实现该该算法;

c)执行程序并分析结果;

七、实验器材(设备、元器件):

PC微机一台

八、实验步骤:

a)选择并熟悉一种密码算法。

b)编写概要设计,详细设计报告

c)使用visual c++工具,编码.

d)调试及测试

九、实验数据及结果分析:

明文差一位,密钥相同,比较密文差异

密钥12345678

明文12345678     密文96D0028878D58C

明文12345679     密文4112EF16D979F608

 

   

test.txt:明文12345678

test2.txt:密钥12345679

程序执行成功后

test3.txt:密钥12345678

 

    

十、实验结论:

如图所示,DES算法正确运行。

十一、总结及心得体会:

通过本次实验,我对DES算法的加密解密原理有了一定的了解,熟悉了用DES算法对字符串和对文件进行加密。DES算法比较复杂,做加密解密实验时用DES算法来做难度有点大,一开始我还不太能理解。以后可以写个简单点的算法来实现。

    

 报告评分:

                                      指导教师签字:下载本文

显示全文
专题