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

DES加密算法笔记

【DES加密算法|密码学|信息安全】https://www.bilibili.com/video/BV1KQ4y127AT?vd_source=7ad69e0c2be65c96d9584e19b0202113

根据此视频学习

DES是对称密码中的分组加密算法

(分组加密对应流加密算法)

流加密算法就是一个字节一个字节加密

分组加密是对明文分成很多快,然后拼在一起,就是密文

DES加密就是把明文分为很多64bit块

然后密文是64位,但是我们输入其实就56位,其中8位 为校验位:

8,16,24,32,40,48,56,64  八的8个倍数

先将64 分为 32 32

R0 和L0

L1 直接等于 R0

R1要等于L0异或fun(R0,k1)

k1-k16都是48比特的子密钥

这样经过16次,就得到L16和R16

将L和R拼在一起,然后进行逆置换

现在讲一下

fun函数

先讲密文进行扩展 32bit 到48比特

48比特和子密钥进行异或

再通过s盒子进行压缩 回到32bit

然后再通过p盒置换

然后得到的再喝L0进行异或

IP置换

根据这个表,比如第一个是58,意思就是讲原来第58位的数据放在现在的第一位

(表一般是固定的)

E扩展置换

把32bit分为4*8个组

然后第一个组的第一个直接拿原始数据第一个

最后组拿最后数据那一个

然后中间的组,就直接前一个组最后一个,后一个组第一个就行

就这样扩展OK

S盒压缩处理

将48比特分为8组6bit数据,每个6比特压缩为4bit就ok

比如这个图

根据s盒表,第三行十五列

就转换成功

P盒置换

这个32bit数据再经过

第16位数据放在第一轮

最后得到的结果和L0进行异或,就得到了R1

IP逆向置换

经过16次之后,再进行逆置换(就是ip反置换,回到原来的位置)

密钥生产

64位,减去第8,16....64位

生产16个48位密码

首先经过56bit置换

分为左右28bit两部分

然后移位

最后C1D1合并在一起,通过表来置换

总体过程

然后就是加密解密了

DES加密与解密 (python) (附实例测试)_python实现des算法加密解密图形化界面-CSDN博客

http://www.lryc.cn/news/356689.html

相关文章:

  • C语⾔:内存函数
  • SqliSniper:针对HTTP Header的基于时间SQL盲注模糊测试工具
  • 3W 1.5KVDC 隔离 宽范围输入,双隔离双输出 DC/DC 电源模块——TPD-3W系列
  • [java基础揉碎]文件IO流
  • [面经] 西山居非正式面试(C++)
  • SOLIDWORKS教育版代理商应该如何选择?
  • 翻译《Use FILE_SHARE_DELETE in your shell extension》
  • 使用Python发送电子邮件
  • Linux-CentOS7-解决vim修改不了主机名称(无法打开并写入文件)
  • 【RuoYi】使用代码生成器完成CRUD操作
  • 七个很酷的GenAI LLM技术性面试问题
  • SARscape雷达图像处理软件简介
  • 开源博客项目Blog .NET Core源码学习(23:App.Hosting项目结构分析-11)
  • 一.ffmpeg 将内存中的H264跟PCM 数据流合成多媒体文件
  • C++ (week5):Linux系统编程3:线程
  • 二叉树习题精讲-相同的树
  • 「架构」模型驱动架构设计方法及其运用
  • 基于 React + Nest 全栈开发的后台系统
  • jQuery值操作例子 (代码)
  • Next-Admin,一款基于Nextjs开发的开箱即用的中后台管理系统(全剧终)
  • HTML5 文件处理及应用
  • 逻辑分析仪的调试使用
  • AI学习指南数学工具篇-Python中的凸优化库
  • 数据库mysql
  • AWS联网和内容分发之Transit Gateway
  • 牛客NC236 最大差值【simple 动态规划 Java/Go/PHP】
  • ORACLE 6节点组成的ACFS文件系统异常的分析思路
  • vscode当前分支有未提交的修改,但是暂时不想提交,想要切换到另一个分支该怎么办
  • 前端API: IntersectionObserver的那一二三件事
  • C++迈向精通:vector复现与sort复现