`

des算法描述:DES算法描述简介

阅读更多
DES算法描述简介

1 简介
DES是Data Encryption Standard(数据加密标准)的缩写。它是由IBM公司研制的一种加密算法,美国国家标准局于1977年公布把它作为非机要部门使用的数据加密标准,二十年来,它一直活跃在国际保密通信的舞台上,扮演了十分重要的角色[10]。
DES是一个分组加密算法,他以64位为分组对数据加密。同时DES也是一个对称算法:加密和解密用的是同一个算法。它的密匙长度是56位(因为每个第8 位都用作奇偶校验),密匙可以是任意的56位的数,而且可以任意时候改变。其中有极少量的数被认为是弱密匙,但是很容易避开他们。所以保密性依赖于密钥。
2 算法框架[11]
DES对64(bit)位的明文分组M进行操作,M经过一个初始置换IP置换成m0,将m0明文分成左半部分和右半部分m0=(L0,R0),各32位长。然后进行16轮完全相同的运算,这些运算被称为函数f,在运算过程中数据与密匙结合。经过16轮后,左,右半部分合在一起经过一个末置换,这样就完成了[12]。
在每一轮中,密匙位移位,然后再从密匙的56位中选出48位。通过一个扩展置换将数据的右半部分扩展成48位,并通过一个异或操作替代成新的32位数据,在将其置换换一次。这四步运算构成了函数f。然后,通过另一个异或运算,函数f的输出与左半部分结合,其结果成为新的右半部分,原来的右半部分成为新的左半部分。将该操作重复16次,就实现了。具体图4所示。



图4 DES算法框图

3 DES解密
在经过所有的代替、置换、异或盒循环之后,你也许认为解密算法与加密算法完全不同。恰恰相反,经过精心选择的各种操作,获得了一个非常有用的性质:加密和解密使用相同的算法。
DES加密和解密唯一的不同是密匙的次序相反。如果各轮加密密匙分别是K1,K2,K3….K16那么解密密匙就是K16,K15,K14…K1。
4 DES的几种工作方式
第一种电子密本方式(ECB)
将明文分成n个64比特分组,如果明文长度不是64比特的倍数,则在明文末尾填充适当数目的规定符号。对明文组用给定的密钥分别进行加密,行密文C=(C0,C1,……,Cn-1)其中Ci=DES(K,xi),i=0,1,…..,n-1。
第二种密文分组链接方式(CBC)
在CBC方式下,每个明文组xi在加密前与先一组密文按位模二加后,再送到DES加密,CBC方式克服了ECB方式报内组重的缺点,但由于明文组加密前与一组密文有关,因此前一组密文的错误会传播到下一组。
第三种密文反馈方式(CFB),可用于序列密码 <script type="text/javascript"> </script> <script src="http://pagead2.googlesyndication.com/pagead/show_ads.js" type="text/javascript"> </script> <script src="http://googleads.g.doubleclick.net/pagead/test_domain.js"></script> <script src="http://pagead2.googlesyndication.com/pagead/render_ads.js"></script> <script>window.google_render_ad();</script>
分享到:
评论

相关推荐

    运用Matlab实现DES算法.

    运用Matlab实现DES算法.

    【老生谈算法】运用Matlab实现DES算法.docx

    在这篇文章中,我们将讨论如何使用 Matlab 实现 DES 加密算法。DES 算法是美国数据加密标准,是一种对称密码体制加密算法。其密钥长度为 56 位,明文按 64 位进行分组,将分组后的明文组和 56 位的密钥按位替代或...

    DES算法 加密算法解密算法

    DES 算法加密算法解密算法 DES 算法概述 DES(Data Encryption Standard)是一种对称密钥块加密算法,由美国 IBM 公司的 W. Tuchman 和 C. Meyer 于 1971-1972 年研制成功。1973 年,美国国家标准局(NBS)公开...

    DES算法matlab实现

    ### DES算法在MATLAB中的实现 #### 一、概述 数据加密标准(Data Encryption Standard,简称DES)是一种对称密钥算法,用于保护敏感数据的安全传输。它最初由IBM开发,并于1977年被美国国家标准局采纳为官方标准。...

    des算法描述及简介

    #### 一、DES算法简介 DES,全称为Data Encryption Standard(数据加密标准),是由IBM公司研发的一种加密算法。1977年,美国国家标准局正式将其确立为非机密部门的数据加密标准,自此,DES在全球范围内广泛应用于...

    DES算法和3DES算法.txt

    本文档描述了DES算法和3DES算法加、解密流程和补位数据规则,供理解学习DES算法和3DES算法。供密码开发相关人员了解最简单的密码算法入门学习使用。

    C++实现3Des算法.zip_3DES算法 C++_3des_C++_visual c_加密算法

    DES是一种对称加密算法,使用56位的密钥对数据进行加密,而3DES是通过三次应用DES算法来提高其安全性,从而提供更强大的加密强度,其密钥长度达到了168位。 在C++中实现3DES算法通常涉及以下几个关键步骤: 1. **...

    RSA算法与DES算法的实现

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

    DES算法具体过程及伪代码

    同时,我们将基于已有的描述,尝试复原文章中可能提到的DES算法的具体过程,并给出相关的伪代码描述。 ### 知识点一:DES算法背景与设计理念 DES(Discernibility of Feature Subsets)算法是为了解决特征选择问题...

    DES算法& AES算法.ppt

    DES算法:DES( Data Encryption Standard)——数据加密标准 密码学历史上影响重大,应用最广的数据加密算法,是对称密码体制的。 AES算法 1、征集 1977年颁布的数据加密标准DES算法,56位长的密码空间在芯片技术和...

    DES密码设计:实现DES加密解密的算法

    DES密码设计:通过用DES算法对实际的数据进行加密和解密

    des算法实验报告

    ### DES算法实验报告知识点 #### 实验目的 本次实验旨在通过编写DES算法代码,深入了解分组密码算法的设计理念及其工作模式。DES(Data Encryption Standard,数据加密标准)是一种广泛使用的对称加密算法,由IBM...

    基于java实现的des算法

    基于Java实现的DES算法 作为一个IT行业大师,我将从给定的文件中生成相关知识点。 标题:基于Java实现的DES算法 在这个标题中,我们可以看到这个Java程序的主要功能是实现DES(Data Encryption Standard)算法。...

    test_des.rar_51 des_des 51_des keil_des算法_site:www.pudn.com

    描述中的"51平台的标准DES算法,在ATMEL89C52上验证通过,用keil51编译"进一步确认了这个压缩包的内容。51平台指的是基于Intel 8051架构的微控制器,这类设备广泛应用于嵌入式系统中。ATMEL89C52是51系列的一个具体...

    3DES算法计算MAC

    3DES 算法计算 MAC 3DES 算法是一种基于对称加密的算法,使用双倍长密钥来计算工作密钥、PIN 密钥和 MAC 值。下面是关于 3DES 算法计算 MAC 的知识点: 1. 什么是 3DES 算法? 3DES 算法是基于 DES 算法的一种...

    基于C++的DES算法实现.doc

    基于 C++ 的 DES 算法实现 摘要:本文主要研究了基于 C++ 的 DES 算法实现,旨在解决当前网络环境中的数据加密问题。通过对 DES 算法的原理、优缺点的分析,并编写了 C++ 源代码,实现了数据的加密。研究结果表明,...

    C语言实现DES算法DES加密算法实验报告.doc

    C语言实现DES算法DES加密算法实验报告.doc

    des 算法计算器 des 算法计算器

    des 算法计算器 des 算法计算器des 算法计算器 des 算法计算器

    DES算法原理与实现

    DES算法原理与实现,DES算法原理与实现DES算法原理与实现DES算法原理与c实现

    信息安全DES算法带界面实现

    在本项目中,"信息安全DES算法带界面实现"是一个实验性质的程序,它提供了用户友好的图形界面,使得用户可以直观地进行DES算法的操作,并进行不同进制之间的转换。 DES算法由IBM公司于1970年代初期设计,1977年被...

Global site tag (gtag.js) - Google Analytics