编码理论实验报告实验三加密编码——DES数据加密算法

时间:2025-07-09

实验名称 实验三 加密编码--------DES数据加密算法

一、 实验目的

1. 了解DES加密,解密过程;

2. 在Visual C++环境中运用C语言实现DES加密,解密; 3. 会用DES加密方法对文件进行加密。

二、实验内容

1. 在Visual C++环境中运用C语言熟练实现DES加密; 2. 在Visual C++环境中运用C语言熟练实现DES解密。

三、 实验原理

1. DES加密的定义

DES是一种分组密码,也是一种单钥密码。 2. DES的特点

明文分组比较短、密钥较短、密码生命周期较短、运算速度较慢。 3. DES加密算法描述

在DES中明文分组长为64比特,密钥长为56比特。明文处理过程大致分为3个阶段,首先为一个初始置换IP,用于重排明文分组的64比特数据。然后是相同功能的16轮迭代,每轮中都有置换和代换运算,第16轮变换的输出分为左右两半,并被交换次序。最后再经过一个逆初始置换(IP的逆)从而产生64比特的密文。在上述运算中还涉及密钥的产生和运算。 4. DES解密算法描述

DES的解密过程和DES的加密过程完全类似,只不过将16轮的子密钥序列K1,K2, ,K16的顺序倒过来。即第一轮用第16个子密钥K16,第二轮用K15,以此类推。

四、 实验步骤

1. DES加密步骤 (1)初始IP置换

表2-1 初始置换IP

说明:上表元素下标从1开始,按行优先顺序排列,表中数字代表经过IP置换后,在该位置的元素对应的在原分组中元素的下标。如:变换后第一个位置的元素为原来下标为58的元素,变换后下标为2的元素为原来下标为50的元素。 (2)在16轮迭代的过程中,每一轮具体的运算

在每轮迭代中,将每轮64比特的输入分成32比特的左右两半,分别记为L和R,每轮变换可由下列公式表示:

Li=Ri-1

Ri=Li-1 F(Ri-1,Ki)

如上述公式所示,第i轮迭代的左半部分直接即为第i-1轮的右半部分,而第i轮右半部分为第i-1轮左半部分异或F(Ri-1,Ki)。

(3)逆初始置换IP-1,从而得到最后的密文。

逆初始变换如表2-2所示。

表2-2 逆初始变换

(4)密钥的产生

如表2-3所示,初始输入的64比特密钥首先经过该置换(PC-1)运算,再分成28比特的左右两半,分别记为C0和D0。在每一轮迭代中分别对上一轮的C和D进行左循环移位,每轮具体移位数如表2-4所示。移位后的结果作为求下一轮子密钥的输入,同时该结果经过如表2-5所示的置换(PC-2)运算后,产生本轮48比特的子密钥参与函数F(Ri-1,Ki)的运算。

表2-3 密钥置换PC-1

表2-4 子密钥各轮移位位数

表2-5 密钥置换PC-2

2. DES解密步骤

DES的解密过程和DES的加密过程完全类似,只不过将16轮的子密钥序列K1,K2, ,K16的顺序倒过来。即第一轮用第16个子密钥K16,第二轮用K15,以此类推。比如,在产生解密密钥的过程中每轮应该右循环移位,而且第i轮的移位位数等于加密时第(17-i)轮的移位位数(i=1,2,3, ,16)。

实验参考程序

见DES.c程序。

实验思考

1. 了解二重DES和三重DES的有关概念及其实现。

二重DES:利用两个独立的密钥,通过DES算法进行两次连续加密。 三重DES:又叫做“带有双密钥的三重DES”,是利用两个DES迷药,进行“加 密-解密-加密”的运算(加解密过程仍然一致)。 2. DES从加密原理上归为哪一类(私钥体制或公钥体制)?

私钥体制

实验心得:通过本次实验了解了DES加密,解密过程,并运用C语言实现DES加密,解密。

编码理论实验报告实验三加密编码——DES数据加密算法.doc 将本文的Word文档下载到电脑

    精彩图片

    热门精选

    大家正在看

    × 游客快捷下载通道(下载后可以自由复制和排版)

    限时特价:7 元/份 原价:20元

    支付方式:

    开通VIP包月会员 特价:29元/月

    注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
    微信:fanwen365 QQ:370150219