对称分组加密—DES算法原理
本文只关注一个核心任务 —— 如何把 64 位的明文,用 64 位的密钥,加密成 64 位的密文,并执行解密,需要理解这个过程。
DES已经很少使用了,主要是想学习它的Feistel network (费斯妥网络)。
其实,了解这些加密的流程没啥用,这些是无用的信息。我认为要理解每个步骤背后的数学原理,数学观点上证明它这个步骤是安全的,这个才是通用的、有用的知识。
一些基础概念
对称加密
双方拥有同一个密钥,加密、解密是同一个密钥完成,该秘钥不对第三方公开。
分组密码
分组密码是将明文分成固定长度的组,每一组都采用同一密钥和算法进行加密,输出也是固定长度的密文。
分组长度
DES 加密算法中,明文和密文为 64 位分组。密钥的长度为 64 位,但是密钥的每个第八位设置为奇偶校验位,因此密钥的实际长度为56位。
时序图
DES 算法是在 Feistel network (费斯妥网络)的基础上执行的。以下是 DES 算法的流程图:
TODO...
步骤拆分
DES 加密流程大致分为 4 个步骤:
(1)初始置换
(2)生成子密钥
(3)迭代过程
(4)逆置换
步骤挺长,每个步骤问AI吧。
Reference
DES算法原理及实现
https://www.ruanx.net/des/
对称分组加密—DES算法原理的更多相关文章
- Asp.Net 常用工具类之加密——对称加密DES算法(2)
又到周末,下午博客园看了两篇文章,关于老跳和老赵的程序员生涯,不禁感叹漫漫程序路,何去何从兮! 转眼毕业的第三个年头,去过苏州,跑过上海,从一开始的凌云壮志,去年背起行囊默默回到了长沙准备买房,也想有 ...
- DES算法原理完整版
1.所需参数 key:8个字节共64位的工作密钥 data:8个字节共64位的需要被加密或被解密的数据 mode:DES工作方式,加密或者解密 2.初始置换 DES算法使用64位的密钥key将64位的 ...
- 对称加密算法之DES算法
数据加密标准(data encryption standard): DES是一种分组加密算法,输入的明文为64位,密钥为56位,生成的密文为64位. DES对64位的明文分组进行操作.通过一个初始置换 ...
- 数据加密算法--详解DES加密算法原理与实现
DES算法简介 DES(Data Encryption Standard)是目前最为流行的加密算法之一.DES是对称的,也就是说它使用同一个密钥来加密和解密数据. DES还是一种分组加密算法,该算法每 ...
- DES算法与四种加密模式的代码实现(C++语言)
版权声明:本文为博主原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明. 本文链接:https://blog.csdn.net/Love_Irelia97/article/ ...
- MD5 不可逆加密,Des对称可逆加密 ,RSA非对称可逆加密 ,数字证书 SSL
:MD5 不可逆加密2:Des对称可逆加密3:RSA非对称可逆加密4:数字证书 SSL Anker_张(博客园)http://www.cnblogs.com/AnkerZhang/ 1:MD5 不可逆 ...
- 使用DES算法实现加密解密
使用DES算法实现加密解密 我们常见的加密算法有DES.MD5.IDEA.AES等等,这篇随笔介绍使用DES算法实现加密解密 首先介绍一下DES算法: DES算法为密码体制中的对称密码体制,又被称为美 ...
- 对称加密DES和TripleDES
一. 对称加密 对称加密,是一种比较传统的加密方式,其加密运算.解密运算使用的是同样的密钥,信息的发送者和信息的接收者在进行信息的传输与处理时,必须共同持有该密码(称为对称密码).因此,通信双方都必 ...
- 【Android工具】DES终结者加密时报——AES加密演算法
转载请注明出处:http://blog.csdn.net/zhaokaiqiang1992 在前面的两篇文章中.我们介绍了DES算法,3DES算法以及他们的Android程序实现,并研究了怎样才干实现 ...
- DES加密算法应用:分组加密模式
通常,大多数的分组加密算法都是把数据按照64位分组的方式进行加密和解密.但是几乎所有的加密工作所涉及的数据量都远远大于64位,因此就需要不断地重复加密过程,直到处理完所有的分组.这种分组加密中所涉及的 ...
随机推荐
- Netty源码—9.性能优化和设计模式
大纲 1.Netty的两大性能优化工具 2.FastThreadLocal的实现之构造方法 3.FastThreadLocal的实现之get()方法 4.FastThreadLocal的实现之set( ...
- 【Win32】通过多线程自动关闭对话框的方法
零.需求 希望在Windows开机后自动弹出个对话框提示一下,过8秒后自动关闭 一.解决 1.建项目和源文件 在VC6.0中新建Win32项目 新建C++源文件 2.编写代码 基础结构 #includ ...
- 3. RabbitMQ 的(Hello World) 和 RabbitMQ 的(Work Queues)工作队列
3. RabbitMQ 的(Hello World) 和 RabbitMQ 的(Work Queues)工作队列 @ 目录 3. RabbitMQ 的(Hello World) 和 RabbitMQ ...
- 剖析 Docker Swarm 操作对容器端口影响
剖析 Docker Swarm 操作对容器端口影响 一.背景阐述 在使用 Docker Swarm 构建集群环境过程中,于 ts3 节点出现了原有的容器端口全部失效,手动重启后才恢复的情况.期间涉及 ...
- MySQL 数据库的性能优化方法有哪些?
MySQL 数据库性能优化是提高数据库响应速度和处理能力的重要手段.性能优化可以从多个层面入手,涵盖数据库设计.查询优化.硬件资源优化.配置调整等方面.以下是 MySQL 数据库常见的性能优化方法: ...
- 2025dsfz集训Day3:DFS搜索与剪枝
DAY3: DFS搜索与剪枝 \[Designed\ By\ FrankWkd\ -\ Luogu@Lwj54joy,uid=845400 \] 特别感谢 此次课的主讲 - Kwling 深搜 深度优 ...
- UnicodeDecodeError: ‘ascii‘ codec can‘t decode byte 0xe8 in position...解决方法
运行python程序,出现了以下错误: File "C:/��/python ѧϰ/god_mellonѧϰpython/untitled2/fofa_py2.py", line ...
- Linux限制可通过SSH登录到服务器的IP——hosts.allow
Linux服务器针对固定的IP进行禁止.允许登录 linux 服务器通过设置/etc/hosts.allow和/etc/hosts.deny这个两个文件进行限制. 优先级:hosts.allow大于h ...
- Spring基于XML AOP事务控制
Spring基于XML AOP事务控制 源码 代码测试 pom.xml <?xml version="1.0" encoding="UTF-8"?> ...
- 【经验】CiteSpace|Wiley Online Library或除知网以外的其他网站的文献怎么导入CiteSpace 6.1.6?
如果没安装,请看这篇博客安装,现在新版(6.1.6)的不需要额外下载java了,就很妙~: 最新版citespace软件的安装与配置 结论:导出成RIS然后用它自带的转换成WoS. 文章目 ...