Article
信息安全基础--DES算法
00 分钟
2021-11-13
2023-5-21
type
status
category
date
slug
summary
tags
icon
Last edited time
May 21, 2023 07:57 AM

简介

DES算法为密码体制中的对称密码体制,又被称为美国数据加密标准,是1972年美 国IBM公司研制的对称密码体制加密算法。DES是一种对称密码,即其加密过程和解 密过程使用相同的密钥,与几乎所有现代分组加密一样,DES也是一种迭代算法。D ES对明文中每个分组对加密过程都包含16轮,且每轮都操作完全相同

实现原理

主要流程

notion image

加密


一、了解几个概念

初始置换/逆初始置换

按照一定的规则,将原来的64位二进制位重新排序 表中数字的意思是。第一个格子中是58,意味着将64位二进制码中第58位的值,放到第 一个格子的位置中,以此类推
 
初始置换表
初始置换表
 
逆初始置换表
逆初始置换表

f函数

  1. f函数首先将输入经过扩展置换,将32位的输入扩展为48位。
  1. 将48位结果与第i轮第密钥ki进行XOR(异或)操作
  1. 将异或操作第结果送入S盒进行压缩,压缩成32位
  1. 将32位的结果送入P盒置换
f函数
f函数

扩展置换

扩展置换
扩展置换

黑盒压缩

黑盒压缩,也称S盒压缩 就是把’48位与ki异或之后‘的结果,进行压缩,压缩成为32位。
使用的方法是将48位二进制码 每6个分成1组,一共8组,对应8个黑盒。
下面以第一组为例,假设第一组中的二进制数为100101 经过黑盒压缩,得到了1000
黑盒压缩
黑盒压缩
以下为8个黑盒
notion image
notion image
notion image
notion image
notion image
notion image
notion image
notion image

P盒置换

和上面初始置换的用法一样,表不同而已
P盒
P盒

密钥编排

密钥编排从原始的56位密钥中得到16个轮密钥k,其中每个轮密钥ki都是48位。
轮密钥的另一个术语叫子密钥。
密钥编排
密钥编排

PC-1

notion image

PC-2

notion image
 
二、具体流程
notion image
明文输入后,经过 初始置换,打乱了顺序。

经过初始置换被分成了 L0 和 R0 两部分
R0 经过 f 函数 得到的输出与 L0 进行 异或 操作,得到的输出作为下一轮的 R1
R0 作为下一轮的 L1

经过很多轮之后,将 L16 与 R16 交换左右之后,再进行一个 逆初始置换
则得到密文

f 函数中
Ri-1 经过 扩展置换 得到了 48 位的输出
将 48 位输出与 ki 进行异或,
将***异或***后的输出进行 S 盒压缩成 32 位
再进行 P 盒置换,得到输出,作为 f 函数的输出

密钥编排中
DES 输入的密钥通常是 64 位,其中每第 8 个位都作为前面 7 位的一个奇校验位。
所以将 64 位密钥进行 PC-1 得到 56 位,是将校验位全部去掉了
PC-1 的置换 和初始置换思路一样
将 PC-1 的输出分成长度均为 28 位的两部分
将两部分周期性地向左移动一或两位(即 循环移位 ),移动的具体位数取决于轮数 i
  • 在第 i=1,2,9,16 轮中,左右两部分向 左移动一位
  • 在 i != 1、2、9、16 轮时候,左右两部分向 左移动两位
经过 PC-2 后得到的 48 位输出作为 ki
 

参考资料

《深入浅出密码学》--Christof Paar,Jan Pelzl

评论