当前位置: 首页 > news >正文

DES笔记整理

文章目录

  • 1. 简介
  • 2. 初始/最终置换
  • 3. E扩展
  • 4. 异或
  • 5. S盒压缩处理
  • 6. P置换
  • 7. 其他
    • 7.1 DES秘钥生成
  • 8. 参考资料

以下内容为信息安全开发过程中,DES对称加密算法的笔记。

对称加密算法汇总介绍:对称加密算法和模式

1. 简介

DES(Data Encryption Standard)是对称加密算法,也就是说它使用同一个密钥来加密和解密数据。
DES还是一种分组加密(又叫块加密)算法,该算法每次处理固定长度的数据段,称之为分组。DES分组的大小是64位,如果加密的数据长度不是64位的倍数,可以按照某种具体的规则来填充位。
在这里插入图片描述
PS:除分组加密算法以外,还有一种流密码加密算法,后者是逐字节进行依次加密。
加解密过程如下:
在这里插入图片描述
输入64bit数据分为两个32bit的L0与R0,其中R0数据直接给到L1,R1的数据则先通过轮函数(E扩展、异或、S盒、P置换)操作后,在与R0值进行异或得出,每个过程具体操作如下:
在这里插入图片描述

2. 初始/最终置换

按照一定规律,将原来的64bit二进制位重新排序。
初始置换与最终置换表如下:
在这里插入图片描述
Eg:
在这里插入图片描述

3. E扩展

将32位输入扩展为48位输出,该置换的主要目的是在加密数据的过程中制造一些雪崩效应,使用数据块中的1位将在下一步操作中影响更多位,从而产生扩散效果。
扩展方法如下:

  • 输入32bit输入拆分为8组4bit的数据
  • 在每组数据前后添加1bit,变为8组6bit数据,前添加的1bit为上一组输入的最后一个,后添加的1bit为下一组的第一个(第一组合最后一组单独处理)

在这里插入图片描述

4. 异或

将E扩展的48bit数据与秘钥的48bit数据按位异或处理。

5. S盒压缩处理

将经过扩展的48位明文和48位密钥进行异或运算后,再使用8个S盒压缩到32 位数据,具体过程如下:
将48位输入等分为8块,每块6位输入压缩为4位输出。
在这里插入图片描述
映射关系如下:
在这里插入图片描述
即11 1111映射为1101B(13D)
S盒映射表如下:
在这里插入图片描述

6. P置换

与S盒操作一样,P盒置换表如下:
在这里插入图片描述
经过上述E扩展、异或、S盒、P置换后,在与上一个Ln数据异或,完成DES第一轮的运算,循环16次后,完成DES加密。

7. 其他

7.1 DES秘钥生成

输入秘钥为64bit,除去8位校验位(每个字节最后一个bit),剩下56位(k0)参与运算。
将输入56bit秘钥先经过PC1置换,在分为两组Ci\Di(每组28bit),对Ci\Di数据进行
运算框图如下:
在这里插入图片描述
其中PC1(秘钥转换)\PC2(置换选择)置换表如下:
在这里插入图片描述
其中移位次数表如下:
在这里插入图片描述

8. 参考资料

  • https://www.bilibili.com/video/BV1KQ4y127AT/
  • https://blog.csdn.net/bemodesty/article/details/114999946

http://www.mrgr.cn/news/80391.html

相关文章:

  • 网络基础概念
  • 用户体验测试与专项测试常用工具
  • Python 写的《桌面时钟》屏保
  • 嵌入式面试知识点总结 -- 面试篇
  • Python并发编程之 ThreadPoolExecutor 详解与实战:中英双语
  • 利用PHP和phpSpider实现网站搜索功能的数据采集
  • D3 基础1
  • vue中slot插槽的使用(默认插槽,具名插槽,作用域插槽)
  • QT c++ 测控系统 一套报警规则(上)
  • 【代码随想录day59】【C++复健】 47. 参加科学大会(dijkstra(堆优化版)精讲 );94. 城市间货物运输 I
  • C语言(构造类型)
  • OpenIPC开源FPV之Adaptive-Link地面站代码解析
  • 锂电池SOH预测 | 基于BiGRU双向门控循环单元的锂电池SOH预测,附锂电池最新文章汇集
  • PHP8.4下webman直接使用topthink/think-orm
  • wazuh-modules-sca-scan
  • 【Qt】Qt+Visual Studio 2022环境开发
  • Guava 提供了集合操作 `List`、`Set` 和 `Map` 三个工具类
  • <数据集>输电线塔杂物识别数据集<目标检测>
  • uniapp滚动消息列表
  • OpenCV函数及其应用
  • dev类似于excel的数据编辑
  • Next.js流量教程:核心 Web Vitals的改善
  • ARM Cortex-A7 MPCore 架构
  • XML基础学习
  • 【时间序列分析】皮尔森相关系数理论基础及python代码实现
  • Spring Framework 路径遍历漏洞复现(CVE-2024-38819)