数据加密标准DES原理

数据加密标准(DES)是在20世纪70年代中期由美国IBM公司发展出来的,并被美国国家标准局公布为数据加密标准的一种分组加密算法。

DES算法的分组大小为64位,所使用的加密或解密密钥也是64位。因为其中有8个位是用来做奇偶校验,所以64位中真正起密钥作用的只有56位。DES加密与解密所用的算法除了子密钥的顺序不同之外,其他部分则是完全相同。

1)Feistel网络

DES密码结构基于一个称为Feistel网络的结构。Feistel网络是由Horst Feistel在设计Lucifer分组密码时发明的,并被DES、FEAL、Twofish、RC5等算法使用。

Feistel定义了一个迭代的分组密码算法,其本质是利用乘积密码顺序地执行多个基本密码系统,使得最后结果的密码强度高于每个基本密码系统产生的结果。

对一个分组长度为2n位的r轮Feistel型密码,每轮迭代执行的运算相同,而每轮的输入取决于前一轮的输出。以第i轮为例,描述每轮迭代的运算过程如下:

①将第i-1轮的输出结果m作为本轮的输入,并将输入划分为左右长度相等的两部分,记作m=L R ,L 和 R 分别为m的左右 n 位。

②将左右两部分交换位置,并将右半部分R直接作为本轮输出m的左半部分L。同时,将右半部分R和轮密钥K 作为论函数F的输入,将论函数F的输出与左半部分L进行逐位的异或运算,得到的结果作为输出m的右半部分R。

Feistel网络的解密过程与加密过程完全一致,只是以相反的次数使用每轮的子密钥,这个特点使得基于Feistel网络设计的分组密码易于用硬件实现。

未完待续、、、、、

时间: 2024-12-27 20:15:24

数据加密标准DES原理的相关文章

数据加密(MD5,DES,RSA)简析

由于涉及到功能是数据加密.所以,在经过小伙伴的查询和测试,我也查询了一些资料来总结一下常用的数据加密算法. MD5 MD5加密算法的全称是Message-Digest Algorithm 5,MD5将任意长度的“字符串”变换成一个128bit的大整数,并且它是一个不可逆的字符串变换算法,换句话说就是,即使你看到源程序和算法描述,也无法将一个MD5的值变换会原始的字符串.常用的是在网站注册的时候将密码加密后存储到数据库中,然后在登录的时候将加密的密码和数据库中的加密密码进行比对,如果正确则登录系统

数据加密标准(DES)2

DES的子密钥生成 step1: 最初64bit密钥通过置换选择PC-1得56bit密钥 步骤一: 去掉第8.16.24.32.40.48.56.64八位; 剩余的56bit按照表打乱次序. step2: 56bit密钥分为2个28bit数据C0D0,每轮迭代中,Ci-1和Di-1分别循环左移1位或2位,得Ci和Di. (注:1.2.9.16轮左移1位,其它轮左移2位) step3: 将56bitCi和Di输入置换选择PC-2,产生一个48bit的输出,即子密钥ki: PC-2步骤: 去掉第9.

【数据压缩】JPEG标准与原理解析

转载请注明出处:http://blog.csdn.net/luoshixian099/article/details/50392230 CSDN-勿在浮沙筑高台 为了满足不同应用的需求,JPEG标准包括两种基本的压缩方法:1.基于DCT的有损压缩算法:2.基于预测方法的无损压缩算法.基于DCT的基线系统有损压缩技术是到目前为止应用最为广泛的一种压缩方法,本文将详细解析此算法. 1.基于DCT有损压缩原理 下面是编码器和解码器的流程图,压缩过程:原图分成8×8的子块,分别进行正向离散余弦变换(FD

AES--高级数据加密标准

对称密码体制的发展趋势将以分组密码为重点.分组密码算法通常由密钥扩展算法和加密(解密)算法两部分组成.密钥扩展算法将b字节用户主密钥扩展成r个子密钥.加密算法由一个密码学上的弱函数f与r个子密钥迭代r次组成.混乱和密钥扩散是分组密码算法设计的基本原则.抵御已知明文的差分和线性攻击,可变长密钥和分组是该体制的设计要点. AES是美国国家标准技术研究所NIST旨在取代DES的21世纪的加密标准. AES的基本要求是,采用对称分组密码体制,密钥长度的最少支持为128.192.256,分组长度128位,

DES原理与实现

DES是对称密码的一种,它使用56位秘钥对64位长分组进行加密. DES对每个分组的内容都会进行16轮迭代,每轮的操作相同但是对应不同的子秘钥.所有的子秘钥都是由主密钥推导而来. 64位明文加密过程如下: 1. 按位置换(IP) 2. 明文被分成L0和R0两部分. 3. L1=R0  R1=L0⊕f(R0,k1) 4. 重复步骤3 16次 5. 按位置换(IP^-1) 其中的重点在于: 1. 如何实现函数f 2. 如何生成子秘钥k 问题简单的解答如下: 1. 函数f 输入与输出的数据为32位.

数据加密之DES加密

DES加密即使用DESCryptoServiceProvider加密.DESCryptoServiceProvider在命名空间下:System.Security.Cryptography; 对称加密算法的优点在于加解密的高速度和使用长密钥时的难破解性.假设两个用户需要使用对称加密方法加密然后交换数据,则用户最少需要2个密钥并交换使 用,如果企业内用户有n个,则整个企业共需要n×(n-1) 个密钥,密钥的生成和分发将成为企业信息部门的恶梦.对称加密算法的安全性取决于加密密钥的保存情况,但要求企业

小编带你简单了解一下加密技术原理:AES加密标准

随着因特网的发展,信息传输及存储的安全问题成为影响因特网应用发展的重要因素.信息安全技术也就成为了人们研究因特网应用的新热点. 信息安全的研究包括密码理论与技术.安全协议与技术.安全体系结构理论.信息对抗理论与技术.网络安全与安全产品等领域,其中密码算法的理论与实现研究是信息安全研究的基础. AES加密标准1977年1月公布的数据加密标准DES(Data Encrption Standard)经过20年的实践应用后,现在已被认为是不可靠的.1997年1月美国国家标准和技术研究所(NIST)发布了

DES加密的C语言实现

数据加密标准DES加密算法是一种对称加密算法,DES 使用一个 56 位的密钥以及附加的 8 位奇偶校验位,产生最大 64 位的分组大小.这是一个迭代的分组密码,使用称为 Feistel 的技术,其中将加密的文本块分成两半.使用子密钥对其中一半应用循环功能,然后将输出与另一半进行“异或”运算:接着交换这两半,这一过程会继续下去,但最后一个循环不交换.DES 使用 16 个循环,使用异或,置换,代换,移位操作四种基本运算. 下面是我自己用C语言实现的DES加密代码,如有错误,欢迎指正! 1 #in

DES加密解密与AES加密解密

目录 [1]AES加密算法和DES加密算法的效率比较[2]AES和DES加密解密代码 随着开发时间的变长,当初认为比较难的东西,现在渐渐也就变的不那么难了!特别对于一些经常很少使用的类,时间长了之后渐渐就陌生了.所以在这里写一些日后可能会用到的加密与解密. 一.AES加密算法和DES加密算法的效率比较: 下面是在网上看到的一段关于“ES加密程序和一个AES加密程序,比较两个程序进行大文件加密的效率”: 实验步骤: 实验结果: 结果分析: 当文件很小时,两个程序加密的时间差不多.但是当文件变大时,