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

信息安全复习五:数据加密标准(DES)

一、本章梗概

1.主要内容:分组密码、分组密码用到的关键技术和结构、对称密钥密码典型算法DES
2.思考问题:
①按照明文被处理的形式,DES属于标准的分组密码
②根据密钥的使用数量,DES属于标准的对称密码
3.内容回顾:
①什么是对称密钥密码模型
②流密码与分组密码的区别
相同点:都是对称密码模型
不同点:分组密码主要用于商业密码,流密码主要用于军用密码;分组密码主要是进行替代和置换,流密码主要是用于异或运算。

二、分组密码

2.1 分组密码的加密方式

分组密码的加密方式:首先将明文序列以固定长度进行分组,每组明文用相同的密钥和算法进行变换,得到一组密文。

分组密码是以块为单位,在密钥的控制下进行一系列线性和非线性交换而得到密文的。

2.2 分组密码的特点

分组密码的加/解密运算目的:输出块中的每一比特位是由 输入+密钥 每一比特位决定的。

加密算法中使用的方法:乘积密码 (包含替代、置换)、XOR(异或)

这个设计思想就是Shannono 1949年发现的隐藏信息的两种技术:混淆和扩散。(可以避免统计方法的密码分析

2.3 混淆和扩散

分组密码(一) --密码学复习(四)

混淆:
不同的输入,导致相同的输出
就是改变数据块,使输出位与输入位之间没有明显的统计关系(替代技术实现)
使密文和密钥之间的统计关系变得尽可能复杂,以使敌手无法得到密钥

扩散:
输入数据中1bit的变化,将导致输出结果中的多bit变化
就是通过密钥位转移到密文的其它位上(置换技术实现)
将明文的统计特性分布到密文中去
使明文和密文之间的统计关系变得尽可能复杂,以使敌手无法得到密钥。

处理长明文块时,需要多个替代模块,各个替代模块之间没有关联。

实现方式是使得明文的每一位影响密文中多位的值,等价于说密文中每一位均受明文中多位影响。这时明文的统计特性将被散布到密文中。

分组密码的特点:良好的扩散性;对插入信息的敏感性,较强的适应性;加/解密速度慢;差错的扩散和传播;

2.4 替代与置换

1.替代

在这里插入图片描述

在这里插入图片描述

2.置换:交换各数据位的位置

在这里插入图片描述

通过对包含密钥的数据进行替代和置换,可以获得混杂的数据,可以当作密钥流,加密明文数据。

2.5 Feistel结构

基于Shannon理论(混淆和扩散)的大多数对称分组密码的基本结构–Feistel网络结构。

Feistel 的优点在于:由于它是对称的密码结构,所以对信息的加密和解密的过程就极为相似,甚至完全一样。这就使得在实施的过程中,对编码量和线路传输的要求就减少了几乎一半。

Feistel结构的简单理解:
1.给明文分组(L,R)
2.对R进行加密
3.密文=加密后的R+L(即LR的位置交换)

构造过程:
在这里插入图片描述
在这里插入图片描述

解密过程:
在这里插入图片描述
Feistel密码结构

三、DES算法

3.1.简单介绍

DES算法原理及实现

1.常见的加密算法
对称密钥/私钥密钥:DES、RC6、AES(Rijndael)
非对称秘钥/公钥密钥:RSA
单向散列函数:MD5、SHA

2.几个重要的历史时间
1973年NBS向社会公开征集加密算法,以制定加密算法标准
1974年第二次征集
1975年选中IBM的算法,并公布征求意见
1977年1月15日正式颁布
1998年底以后停用
1999年颁布3DES为新标准

3.DES的设计目的
1.用于加密保护政府机构和商业部门的非机密的敏感数据。
2.用于加密保护静态存储和传输信道中的数据。
3.安全使用10~15年。

4.DES概况
应用:
1.许多国际组织采用位标准。
2.在全世界范围得到广泛应用。
3.产品形式:软件(嵌入式,应用软件),硬件(单片,插片)

结论:
用于其设计目标是安全的。
设计精巧,实现容易,使用方便,堪称典范。
为国际信息安全发挥了重要作用。

5.DES 是一种 对称密钥 的 块加密 算法。

谓之 “对称密钥”,是因为加密、解密用的密钥是一样的。

谓之 “块加密”,是因为这种算法把明文划分为很多个等长的块(block),对每个块进行加密,最后以某种手段拼在一起。“块加密” 亦称 “分组加密”。

6.DES算法入口参数

DES 算法的入口参数有三个:Key、Data、Mode。

其中,Key 为 7 个字节共 56 位,是 DES 算法的工作 密钥;
Data 为 8 个字节 64 位,是要被加密或被解密的 数据;
Mode 为 DES 的 工作方式,有两种:加密或解密。

3.2 DES的整体特点

1.分组密码:明文、密文和密钥的分组长度都是64位。
2.面向二进制的密码算法:因而能够加解密任何形式的计算机数据。
3.对合运算:因而加密和解密共用同一算法,使工程实现的工作量减半。
4.综合运用了置换、代替、代数等多种密码技术。
5.基本结构属于Feistel结构。

3.3 DES算法框图和加密过程

DES 算法是在 Feistel network (费斯妥网络)的基础上执行的。以下是 DES 算法的流程图:
在这里插入图片描述
可以看到整个算法分为两大部分——迭代加密(左边的 16 轮迭代操作),以及 子密钥生成(右边生成子密钥的算法)。

3.4 DES子密钥的产生

【密码学】DES 介绍

3.5 初始置换和逆置换的保密意义

保密作用不大,在IP和IP^(-1)公开的条件下,其保密意义不大

3.6 DES解密过程

DES的运算是对合运算,加解密可共用同一个运算。

不同点:子密钥使用的顺序不同。

第一次解密迭代使用子密钥K16,第二次解密迭代使用子密钥K15,第十六次解密迭代使用子密钥K1。

3.7 加密函数f

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

3.8 DES的安全性

1.攻击:穷举攻击(目前最有效的方法),差分攻击,线性攻击。

2.安全弱点:密钥太短,存在弱密钥,存在互补对称性。
在这里插入图片描述

3.9 3重DES

1.美国NIST在1999年发布了一个新版本的DES标准
DES只用于遗留系统
3DES取代DES成为新标准
国际组织和我国都接受3DES

2.3DES的优势

3密钥的3DES:密钥长度是168位。
2密钥的3DES:密钥长度是112位。
安全:密钥足够长,经过最充分的分析和实践检验。
兼容性好。

3.3DES的弱势
速度慢

4.DES的历史回顾

DES的出现标志着商业密码需求的增加。
DES体现香农的密码设计理论。
体现了公开设计原则,开创公开算法的先例。
DES代表当时商业密码的最高水平。

5.DES给我们的启示

商业密码应当坚持公开设计原则;
商业密码标准的设计应有广大用户的参与,商业密码标准应当公布算法。

附加1:
在密码学中,加密算法分为双向加密和单向加密。
单向加密包括MD5、SHA等摘要算法,它们是不可逆的。(哈希函数可逆)
双向加密包括对称加密和非对称加密,对称加密包括AES加密、DES加密等。双向加密是可逆的,存在密文的密钥。

附加2:
什么是AES加密?详解AES加密算法原理流程

相关文章:

信息安全复习五:数据加密标准(DES)

一、本章梗概 1.主要内容:分组密码、分组密码用到的关键技术和结构、对称密钥密码典型算法DES 2.思考问题: ①按照明文被处理的形式,DES属于标准的分组密码 ②根据密钥的使用数量,DES属于标准的对称密码 3.内容回顾: …...

Java ---包装类

(一)包装类概念 官方说法: Java是面向对象的语言,但是为了便于开发者的使用,Java中却沿用了C语言的基本数据类型,在进行基本的数据计算时,开发者可以直接使用基础类。但是当需要和Java其他对象…...

Baumer工业相机中偏振相机如何使用Baumer堡盟GAPI SDK来进行偏振数据的计算转换输出(C#)

项目场景 Baumer工业相机堡盟相机是一种高性能、高质量的工业相机,可用于各种应用场景,如物体检测、计数和识别、运动分析和图像处理。 Baumer的万兆网相机拥有出色的图像处理性能,可以实时传输高分辨率图像。此外,该相机还具…...

MSVC(Microsoft Visual C++) 中运行库的链接方式MD和MT的区别

问题描述 MSVC(Microsoft Visual C) 中运行库的链接方式MD和MT的区别 问题解答 在MSVC编译器中,运行库(Runtime Library)有两种链接方式:MD(Multithread-DLL)和MT(Multithread)。这两种链接方式的主要区…...

设计模式之解释器模式(C++)

作者:翟天保Steven 版权声明:著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处 一、解释器模式是什么? 解释器模式是一种行为型的软件设计模式,定义了一个解释器,来解释给定语…...

基于MATLAB编程的粒子群算法优化BP神经网络风电功率预测,基于PSO-BP的风电功率预测

目录 摘要 BP神经网络的原理 BP神经网络的定义 BP神经网络的基本结构 BP神经网络的神经元 BP神经网络的激活函数, BP神经网络的传递函数 粒子群算法的原理及步骤 基于粒子群算法改进优化BP神经网络的风电功率 matlab代码 代写下载链接:https://download.csdn.net/download/a…...

开心档之C++ 字符串

C 字符串 目录 C 字符串 C 风格字符串 实例 实例 C 中的 String 类 实例 C 提供了以下两种类型的字符串表示形式: C 风格字符串C 引入的 string 类类型 C 风格字符串 C 风格的字符串起源于 C 语言,并在 C 中继续得到支持。字符串实际上是使用 …...

Java Collection源码分析(JDk corretto 11)

文章目录 Collection 系列源码分析 (JDK Amazon corretto 11)Collection接口Iterable接口 子接口 QueueQueue的子接口 Deque双端队列 子接口ListArrayList 实现类序列化与反序列化(后续解决)获取Calss对象的方式 主要有三种:Arrays工具类System类 LinkedList实现类t…...

13种权重的计算方法

权重计算方法有很多种,不同的方法有不同的特点和适用情况。AHP层次分析法和熵值法在权重计算中属于比较常用的方法。除此之外,还有一些与权重计算相关的方法,今天一文总结了13种与权重计算相关的方法,大家可以对比选择使用。 一、…...

Devops和Gitops区别

一. 什么是devops DevOps 是一种开发(Dev)和运维(Ops)之间协作和沟通的文化、流程和工具的实践方法。它强调迭代、快速交付和持续集成/持续交付,旨在加速软件交付的速度、质量和稳定性。 DevOps 的核心目标是通过自动…...

拿下多家车企定点!4D毫米波雷达「域」系统首发出道

从1R、2R、3R到整车360感知方案,毫米波雷达的前装市场需求量依然保持着快速增长的态势。 高工智能汽车研究院监测数据显示,2022年中国市场(不含进出口)前装标配搭载ADAS毫米波雷达(前向后向盲区)交付1795.…...

【FATE联邦学习】FATE联邦学习使用GPU、指定cuda下标

问题 FATE框架1.x支持GPU训练吗? 寻找 先看了官网,搜官网,发现还是有的。 打开第一个后,里面可以用training param指定各个client的训练GPU,但是好像都是在large language model的。 而在文档中搜寻到的gpu&#xf…...

英文数字表达

1基数词 0 nought;zero;O 1 one 2 two 3 three 4 four 5 five 6 six 7 seven 8 eight 9 nine 10 ten 11 eleven 12 twelve 13 thirteen 14 fourteen 15 fifteen 16 sixteen 17 seventeen 18 eighteen 19 nineteen 20 twenty21 twenty-one 22 twenty-two 23 twenty-three 30 th…...

第11届蓝桥杯省赛真题剖析-2020年6月21日Scratch编程初中级组

[导读]:超平老师的《Scratch蓝桥杯真题解析100讲》已经全部完成,后续会不定期解读蓝桥杯真题,这是Scratch蓝桥杯真题解析第125讲。 第11届蓝桥杯省赛,这是2020年6月21日举办的省赛Scratch考试真题,原定于2020年3月7日…...

部署LVS-NAT群集实验

一、 实验准备 负载调度器:内网关 ens33:192.168.109.12,外网关 ens37:12.0.0.1外网 Web节点服务器1:192.168.109.13 Web节点服务器2:192.168.109.14 NFS服务器:192.168.109.11 客户端&#xf…...

对待工作的九个级别

只要是职场人,每天都要开展本职工作,有的人在职场上混得风生水起、平步青云,有的人却总是在原地踏步踏,总有一种怀才不遇的感叹,为什么呢?其实,差距就在于对待工作的态度上。 今天我们一起与各位…...

第四章 存储结构与管理硬盘

第四章 存储结构与管理硬盘 一、一切从“/”开始 1、Linux系统中常见的目录名称以及相应内容 目录名称应放置文件的内容/boot开机所需文件——内核、开机菜单以及所需配置文件等/dev以文件形式存放任何设备与接口/etc配置文件/home用户主目录/bin存放单用户模式下还可以操作…...

【腾讯云-2】极简搭建边缘集群

1 创建 流程和https://blog.csdn.net/qq_47058489/article/details/130347795差不多,可参考 查看基本信息: 创建边缘集群的过程中会初始化master,说明包含一个托管master节点 但是没有其他节点 2 开启节点远程登录 通过 SSH 的方式远…...

在springboot中给mybatis加拦截器

拦截器的作用就是我们可以拦截某些方法的调用,在目标方法前后加上我们自己逻辑 Mybatis拦截器设计的一个初衷是为了供用户在某些时候可以实现自己的逻辑而不必去动Mybatis固有的逻辑。 mybatis 自定义拦截器 1、实现Interceptor 接口,并添加拦截注解 I…...

[oeasy]python0139_尝试捕获异常_ try_except_traceback

尝试捕获异常 回忆上次内容 变量相加 整型数字变量可以相加字符串变量也可以拼接 但是 字符串 和 整型数字整型数字 和 字符串不能相加 怎么办? 转格式int(“1”)str(2) 可是 如果输入的苹果数量是 字符串"abc" int(“abc”)会发生什么?&…...

测试微信模版消息推送

进入“开发接口管理”--“公众平台测试账号”,无需申请公众账号、可在测试账号中体验并测试微信公众平台所有高级接口。 获取access_token: 自定义模版消息: 关注测试号:扫二维码关注测试号。 发送模版消息: import requests da…...

docker详细操作--未完待续

docker介绍 docker官网: Docker:加速容器应用程序开发 harbor官网:Harbor - Harbor 中文 使用docker加速器: Docker镜像极速下载服务 - 毫秒镜像 是什么 Docker 是一种开源的容器化平台,用于将应用程序及其依赖项(如库、运行时环…...

微软PowerBI考试 PL300-选择 Power BI 模型框架【附练习数据】

微软PowerBI考试 PL300-选择 Power BI 模型框架 20 多年来,Microsoft 持续对企业商业智能 (BI) 进行大量投资。 Azure Analysis Services (AAS) 和 SQL Server Analysis Services (SSAS) 基于无数企业使用的成熟的 BI 数据建模技术。 同样的技术也是 Power BI 数据…...

基于当前项目通过npm包形式暴露公共组件

1.package.sjon文件配置 其中xh-flowable就是暴露出去的npm包名 2.创建tpyes文件夹,并新增内容 3.创建package文件夹...

python如何将word的doc另存为docx

将 DOCX 文件另存为 DOCX 格式(Python 实现) 在 Python 中,你可以使用 python-docx 库来操作 Word 文档。不过需要注意的是,.doc 是旧的 Word 格式,而 .docx 是新的基于 XML 的格式。python-docx 只能处理 .docx 格式…...

Java 加密常用的各种算法及其选择

在数字化时代,数据安全至关重要,Java 作为广泛应用的编程语言,提供了丰富的加密算法来保障数据的保密性、完整性和真实性。了解这些常用加密算法及其适用场景,有助于开发者在不同的业务需求中做出正确的选择。​ 一、对称加密算法…...

蓝桥杯3498 01串的熵

问题描述 对于一个长度为 23333333的 01 串, 如果其信息熵为 11625907.5798&#xff0c; 且 0 出现次数比 1 少, 那么这个 01 串中 0 出现了多少次? #include<iostream> #include<cmath> using namespace std;int n 23333333;int main() {//枚举 0 出现的次数//因…...

Maven 概述、安装、配置、仓库、私服详解

目录 1、Maven 概述 1.1 Maven 的定义 1.2 Maven 解决的问题 1.3 Maven 的核心特性与优势 2、Maven 安装 2.1 下载 Maven 2.2 安装配置 Maven 2.3 测试安装 2.4 修改 Maven 本地仓库的默认路径 3、Maven 配置 3.1 配置本地仓库 3.2 配置 JDK 3.3 IDEA 配置本地 Ma…...

Mysql中select查询语句的执行过程

目录 1、介绍 1.1、组件介绍 1.2、Sql执行顺序 2、执行流程 2.1. 连接与认证 2.2. 查询缓存 2.3. 语法解析&#xff08;Parser&#xff09; 2.4、执行sql 1. 预处理&#xff08;Preprocessor&#xff09; 2. 查询优化器&#xff08;Optimizer&#xff09; 3. 执行器…...

基于Java+MySQL实现(GUI)客户管理系统

客户资料管理系统的设计与实现 第一章 需求分析 1.1 需求总体介绍 本项目为了方便维护客户信息为了方便维护客户信息&#xff0c;对客户进行统一管理&#xff0c;可以把所有客户信息录入系统&#xff0c;进行维护和统计功能。可通过文件的方式保存相关录入数据&#xff0c;对…...