篇一 :DES算法代码及实验报告

南京信息工程大学 实验(实习)报告

实验名称 DES算法实验报告 实验(实习)日期 2013.12.13 得分 指导教师 沈剑 计算机系 专业 软件工程 年级 11 班次 3 姓名 张渊 学号 20112344931

1、 实验目的

理解对称加解密算法的原理和特点

理解DES算法的加解密原理

2、DES算法详述

DES算法把64位的明文输入块变为64位的密文输出块,它所使用的密钥也是64位,其功能是把输入的64位数据块按位重新组合,并把输出分为L0 、R0两部分,每部分各长32位,其置换规则见下表:

58,50,12,34,26,18,10,2,60,52,44,36,28,20,12,4,

62,54,46,38,30,22,14,6,64,56,48,40,32,24,16,8,

57,49,41,33,25,17, 9,1,59,51,43,35,27,19,11,3,

61,53,45,37,29,21,13,5,63,55,47,39,31,23,15,7,

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

例:设置换前的输入值为D1D2D3……D64,则经过初始置换后的结果为:L0=D550……D8;R0=D57D49...D7。

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

40,8,48,16,56,24,64,32,39,7,47,15,55,23,63,31,

38,6,46,14,54,22,62,30,37,5,45,13,53,21,61,29,

…… …… 余下全文

篇二 :DES加密算法实验报告

网络安全作业

题     目     DES 加 密 算 法

学     号      

专业及班级    网络工程0902班

姓      名   

日      期    2012.04.14     

一.DES简介

DES是一个分组密码算法,使用64位密钥(除去8位奇偶校验,实际密钥长度为56位)对64比特的数据分组(二进制数据)加密,产生64位密文数据。DES是一个对称密码体制,加密和解密使用同意密钥,解密和加密使用同一算法(这样,在硬件与软件设计时有利于加密单元的重用)。DES的所有的保密性均依赖于密钥。

二. DES算法过程:

1. DES的加密过程:

第一阶段:初始置换IP。在第一轮迭代之前,需要加密的64位明文首先通过初始置换IP 的作用,对输入分组实施置换。最后,按照置换顺序,DES将64位的置换结果分为左右两部分,第1位到第32位记为L0,第33位到第64位记为R0。

第二阶段:16次迭代变换。DES采用了典型的Feistel结构,是一个乘积结构的迭代密码算法。其算法的核心是算法所规定的16次迭代变换。DES算法的16才迭代变换具有相同的结构,每一次迭代变换都以前一次迭代变换的结果和用户密钥扩展得到的子密钥Ki作为输入;每一次迭代变换只变换了一半数据,它们将输入数据的右半部分经过函数f后将其输出,与输入数据的左半部分进行异或运算,并将得到的结果作为新的有半部分,原来的有半部分变成了新的左半部分。用下面的规则来表示这一过程(假设第i次迭代所得到的结果为LiRi): Li = Ri-1; Ri = Li-1?f(Ri-1,Ki);在最后一轮左与右半部分并未变换,而是直接将R16 L16并在一起作为未置换的输入。

…… …… 余下全文

篇三 :DES算法实验报告





姓名:xxxx  学 号:0XXXXX    班级:XXXXXXX   日期:2013/11/*


题目:DES算法实验


一、实验环境

1.硬件配置:

处理器:Inter(R) Core(TM) i5-2430M CPU @ 2.40GHz (4 CPUs) ,~2.4GHz

内存:2048MB RAM

2.使用软件:

(1)   操作系统:win7 旗舰版

(2)   软件工具:Microsoft Visual c++ 6.0

二、实验涉及的相关概念或基本原理

DES是一个分组密码算法,使用64位密钥(除去8位奇偶校验,实际密钥长度为56位)对64比特的数据分组(二进制数据)加密,产生64位密文数据。DES是一个对称密码体制,加密和解密使用同意密钥,解密和加密使用同一算法(这样,在硬件与软件设计时有利于加密单元的重用)。DES的所有的保密性均依赖于密钥。

DES的加密过程可分为加密处理,加密变换和子密钥生成几个部分组成。

1.加密处理过程

  (1)初始置换IP。加密处理首先要对64位的明文按表1所示的初始换位表IP进行变换。表中的数值表示输入位被置换后的新位置。

 (2)加密处理。上述换位处理的输出,中间要经过16轮加密变换。初始置换的64位的输出作为下一次的输入,将64位分为左、右两个32位,分别记为L0和R0,从L0、R0到L16、R16,共进行16轮加密变换。其中,经过i轮处理后的点左右32位分别为Li和Ri则可做如下定义:

Li=Ri-1

Ri=Li-1 ?F(Ri-1,K)    其中,F为F变换

(3)最后换位。进行16轮的加密变换之后,将L16和R16合成64位的数据,再按照表2所示的最后换位表进行IP-1的换位,得到64位的密文,这就是DES算法加密的结果。

…… …… 余下全文

篇四 :实现DES加解密算法实验报告

实现DES加解密算法实验报告

一、        DES加解密算法问题简介

DES算法全称为Data Encryption Standard,即数据加密算法,它是IBM公司于1975年研究成功并公开发表的。DES算法的入口参数有三个:Key、Data、Mode。其中Key为8个字节共64位,是DES算法的工作密钥;Data也为8个字节64位,是要被加密或被解密的数据:Mode为DES的工作方式,有两种:加密或解密。

二、        DES加解密算法设计方法简介

DES算法把64位的明文输入块变为64位的密文输出块,它所使用的密钥也是64位,其功能是把输入的64位数据块按位重新组合,并把输出分为L0 、R0两部分,每部分各长32位,其置换规则见下表:

58,50,12,34,26,18,10,2,60,52,44,36,28,20,12,4,

62,54,46,38,30,22,14,6,64,56,48,40,32,24,16,8,

57,49,41,33,25,17, 9,1,59,51,43,35,27,19,11,3,

61,53,45,37,29,21,13,5,63,55,47,39,31,23,15,7,

即将输入的第58位换到第一位,第50位换到第2位,……,依此类推,最后一位是原来的第7位。 L0、R0则是换位输出后的两部分,L0是输出的左32位,R0 是右32位,例:设置换前的输入值为D1D2D3……D64,则经过初始置换后的结果为:L0=D550……D8;R0=D57D49...D7。

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

…… …… 余下全文

篇五 :DES算法实验报告

实验目的

验证DES算法的加密、解密计算过程和效果

#include <string.h>

#include <stdio.h>

class DES

{

public:

~DES() {}

void setkey(const unsigned char *);

void enctransform(const unsigned char *,unsigned char *);

void dectransform(const unsigned char *,unsigned char *);

void F_func(bool In[32], const bool Ki[48]);

void S_func(bool Out[32], const bool In[48]);

void Transform(bool *Out, bool *In, const unsigned char *Table, int len); void Xor(bool *InA, const bool *InB, int len);

void RotateL(bool *In, int len, int loop);

void ByteToBit(bool *Out, const unsigned char *In, int bits);

void BitToByte(unsigned char *Out, const bool *In, int bits);

char Tmp[256];

private:

enum { BLOCKSIZE=8};

enum { DATA_LEN=384, BUFF_LEN=1024 };

bool enckey[16][48];//存放加密子密钥

bool deckey[16][48];//存放解密子密钥

…… …… 余下全文

篇六 :des算法实验报告

NCUT2006

《计算机安全技术》

实验报告


一、实验内容:des加密解密算法实现

二、实验环境:

1、操作系统:Windows XP及以上

2、编程工具:Visual C++ 6.0

三、实验原理:

DES算法为密码体制中的对称密码体制,又被成为美国数据加密标准,是1972年美国IBM公司研制的对称密码体制加密算法。 明文按64位进行分组, 密钥长64位,密钥事实上是56位参与DES运算(第8、16、24、32、40、48、56、64位是校验位, 使得每个密钥都有奇数个1)分组后的明文组和56位的密钥按位替代或交换的方法形成密文组的加密方法。

基本原理:其入口参数有三个:key、data、mode。 key为加密解密使用的密钥,data为加密解密的数据,mode为其工作模式。当模式为加密模式时,明文按照64位进行分组,形成明文组,key用于对数据加密,当模式为解密模式时,key用于对数据解密。实际运用中,密钥只用到了64位中的56位,这样才具有高的安全性。

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

四、算法流程设计:

1、DES算法整体结构:

2、16轮迭代:

3、子密钥产生:

4、f函数:

五、算法实现:

1、部分函数定义:

static void F_func(bool In[], const bool Ki[]);// F 函数

static void S_func(bool Out[], const bool In[]);// S 盒代替

static void Transform(bool *Out, bool *In, const char *Table, int len);// 变换

static void Xor(bool *InA, const bool *InB, int len);// 异或

…… …… 余下全文

篇七 :DES加密算法的简单实现实验报告

苏州科技学院电子与信息工程学院

实验一

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

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


           实   验   报   告

             

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

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

三、实验学时:2学时

四、实验原理:

DES的描述

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

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

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

…… …… 余下全文

篇八 :DES算法代码及实验报告

                     

 DES实验算法报告

摘要:、

1DES的简介

DES密码实际上是Lucifer密码的进一步发展。它是一种采用传统加密方法的区组密码。它的算法是对称的,既可用于加密又可用于解密。美国国家标准局1973年开始研究除国防部外的其它部门的计算机系统的数据加密标准,于1973年5月15日和1974年8月27日先后两次向公众发出了征求加密算法的公告。加密算法要达到的目的通常称为DES密码算法要求主要为以下四点:

提供高质量的数据保护,防止数据未经授权的泄露和未被察觉的修改;具有相当高的复杂性,使得破译的开销超过可能获得的利益,同时又要便于理解和掌握DES密码体制的安全性应该不依赖于算法的保密,其安全性仅以加密密钥的保密为基础实现经济,运行有效,并且适用于多种完全不同的应用。

目前在这里,随着三金工程尤其是金卡工程的启动,DES算法在POS、ATM、磁卡及智能卡(IC卡)、加油站、高速公路收费站等领域被广泛应用,以此来实现关键数据的保密,如信用卡持卡人的PIN的加密传输,IC卡与POS间的双向认证、金融交易数据包的MAC校验等,均用到DES算法。

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

DES算法是这样工作的:如Mode为加密,则用Key 去把数据Data进行加密, 生成Data的密码形式(64位)作为DES的输出结果;如Mode为解密,则用Key去把密码形式的数据Data解密,还原为Data的明码形式(64位)作为DES的输出结果。在通信网络的两端,双方约定一致的Key,在通信的源点用Key对核心数据进行DES加密,然后以密码形式在公共通信网(如电话网)中传输到通信网络的终点,数据到达目的地后,用同样的Key对密码数据进行解密,便再现了明码形式的核心数据。这样,便保证了核心数据(如PIN、MAC等)在公共通信网中传输的安全性和可靠性。

…… …… 余下全文