数据加密标准(Data Encryption Standard,DES)是当前使用最广泛的加密体制,对于任意的加密方案,总有两个输入:明文和密钥。

明文是64bits,密钥是56bits

加密过程就是初始和终结有两次置换,中间有十六轮加密变换。


以下是详细过程:

(生成子密钥)

查看ASCLL表,将computer转换为如下16进制表示的数:(具体不展开)

63 6f 6d 70 75 74 63 72

置换是根据置换表来的,往下会有提供。

(看不清楚点击我)

举个例子:PC-1置换,

(看不清楚请点击我)

置换表PC-2

小结:

整个过程其实就是不断置换,中间移位一次的过程,最后会产生一个48位的子密钥,每一轮都不一样,每轮迭代的时候会用到,下面就会讲到。

为什么每一轮会不一样呢,因为移位的次数是根据迭代轮数变化的。


(生成密文)

第一步:初始置换

查看ASCLL表,将learning转换为如下16进制表示的数:(具体不展开)

6C 63 61 72 6E 69 6E 67

首先要明白,这些置换表是固定的。

置换过程开始了,A表指的是 learning 16进制转换成二进制后的结果,在每个位置标上“下标”,根据上图的置换表,

我们可以得出B表第1行第1列对应的应该是A表的第58号,我已经标上去了,答案是1。

以此类推,B表第1行第二列------A表50号(1);B表第2行第2列-------A表52号(0)。。。。

第二步:十六轮迭代置换。

Li=Ri-1;

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

L和R代表的是密文的左半部分(32位),和右半部分(32位)。

第一条公式我们可以看出:第二轮的左边等于第一轮的右边;重点是第二条公式,右边又等于什么呢?接下来详细讲:

过程:R0先扩展成48位,然后跟第一轮的子密钥K1(如果不知道怎么来的,请往上翻),进行异或操作之后,放入S盒当中(相当于公式中的F函数),最后输出32位,作为下一轮的右边,即R1。

(看不清楚请点击我)

补充:

1.扩展置换:中间4位不变,前后补充1位。

2.S盒的方法是这样子的:

S盒一共包含8个盒子,跟置换表一样,是DES固定不会变的,自行百度一下盒子的内容。所以异或之后不是有48位吗,每8位放入一个盒子。

举个例子,上图S1中, 111100 前后两位是10,说明是第2行,中间4位是1110,说明是第14列,那么你就到S1盒子的第2行第14列中找出那个数字,也就是5。

好,到这里你就完成了一次迭代,你也因此得出了第二轮的R1和L1

。。。接下来,就是漫长的16轮迭代过程。

第三步:终止置换

(道理就不用讲了吧)

当然,解密过程就不多说,逆过来而已。

(1、本文只是举例子加密,助于初学者理解)

(2、本文没有提供所有的置换表)

最新文章

  1. hihoCoder 1184 连通性二·边的双连通分量
  2. 语言模拟ATM自动取款机系统
  3. 关于在DataGrid.RowDetailsTemplate中的控件查找不到的问题
  4. shift
  5. 遍历指定目录下指定类型文件的函数(fatkun Fix版)
  6. Spring+hibernate+struts
  7. python数字图像处理(10):图像简单滤波
  8. WPF MVVM 写一个健壮的INotifyPropertyChanged基类
  9. 对于java中的变量问题
  10. node.js 包教不包会 (Windows版详解)
  11. PHPCMS v9栏目添加字段及描述编辑器修改方法
  12. android MIPI屏 导航栏丢失
  13. oracle自动执行一个sql文件的脚本
  14. Selenium终极自动化测试环境搭建(二)Selenium+Eclipse+Python
  15. ASA虚墙配置
  16. 三目运算的使用&bytes类型转str类型
  17. java数据结构 • 面向对象 • 异常 • 随机数·时间
  18. 对STM32库函数中 assert 函数的认知
  19. c# ListBox控件
  20. 写一个function,清除字符串前后的空格。(兼容所有浏览器)

热门文章

  1. #leetcode刷题之路11-盛最多水的容器
  2. JSP/Servlet开发——第六章 JSP开发业务应用
  3. 【c学习-14】
  4. Layabox进阶之资源加载
  5. mongodb的高级查询
  6. PHP实现SMTP邮件的发送实例
  7. C语言结构体的学习,以及gdb的调式
  8. 521. [NOIP2010] 引水入城 cogs
  9. OBS源码编译开发
  10. 对工具的反思 & deadlines与致歉