首页 > 其他 > 详细

DES

时间:2020-12-27 02:09:31      阅读:23      评论:0      收藏:0      [点我收藏+]

概述

DES全称为Data Encryption Standard,即数据加密标准,是一种使用密钥加密的块算法,1977年被美国联邦政府的国家标准局确定为联邦资料处理标准(FIPS),并授权在非密级政府通信中使用,随后该算法在国际上广泛流传开来。需要注意的是,在某些文献中,作为算法的DES称为数据加密算法(Data Encryption Algorithm,DEA),已与作为标准的DES区分开来。

技术分享图片

 

 

 技术分享图片

 

 

DES算法入口参数

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

DES基本原则

DES设计中使用了分组密码设计的两个原则:混淆(confusion)和扩散(diffusion),其目的是抗击敌手对密码系统的统计分析。混淆是使密文的统计特性与密钥的取值之间的关系尽可能复杂化,以使密钥和明文以及密文之间的依赖性对密码分析者来说是无法利用的。扩散的作用就是将每一位明文的影响尽可能迅速地作用到较多的输出密文位中,以便在大量的密文中消除明文的统计结构,并且使每一位密钥的影响尽可能迅速地扩展到较多的密文位中,以防对密钥进行逐段破译。

DES加密算法

DES算法把64位的明文输入块变为64位的密文输出块,它所使用的密钥也是64位(实际用到了56位,第8、16、24、32、40、48、56、64位是校验位, 使得每个密钥都有奇数个1),其算法主要分为两步:

1)初始置换

其功能是把输入的64位数据块按位重新组合,并把输出分为L0、R0两部分,每部分各长32位,其置换规则为将输入的第58位换到第一位,第50位换到第2位……依此类推,最后一位是原来的第7位。L0、R0则是换位输出后的两部分,L0是输出的左32位,R0是右32位,例:设置换前的输入值为D1D2D3……D64,则经过初始置换后的结果为:L0=D58D50……D8;R0=D57D49……D7。
其置换规则见下表:
58,50,42,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,

2)逆置换

经过16次迭代运算后,得到L16、R16,将此作为输入,进行逆置换,逆置换正好是初始置换的逆运算,由此即得到密文输出。

技术分享图片

 

 

 DES密钥编排

技术分享图片

 

 

 

 

技术分享图片

 

 

 

DES中的子密钥的生成

技术分享图片

 

 

 

DES算法密钥编排中使用的表

技术分享图片

 

 

 

 DES轮函数

技术分享图片

注意,无论 f 函数如何选取,DES的轮函数是一个对合变换。(第二个公式可能有错)

技术分享图片

 

 

 技术分享图片

 

 

 

 

 

 

 

DES算法轮结构(注意,这里说的是其中虚线框内的部分)

 

技术分享图片

 

 

 

函数f(R,K)的计算过程

技术分享图片

 

 

 

选择扩展运算E

技术分享图片

 

 

 

选择压缩运算S

技术分享图片

 

 

DES的S盒

技术分享图片

 

 

DES的S-盒的输入和输出关系

技术分享图片

 

 

 

P盒置换
将S-盒变换后的32比特数据再进行P盒置换,置换后得到的32比特即为 f 函数 的输出。

基本特点:

P盒的各输出块的4个比特都来自不同的输入块;
P盒的各输入块的4个比特都分配到不同的输出块之中;
P盒的第t输出块的4个比特都不来自第t输入块。
含义:P盒输出的第1个元是输入的第16个元。

技术分享图片

 

 

技术分享图片

 

 

 

技术分享图片

 

 

技术分享图片

 

 

 

 

参考资料

https://www.pianshen.com/article/67091667456/

DES

原文:https://www.cnblogs.com/weikunpeng/p/14194123.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!