【密码学】三、分组密码概述

news2025/1/13 6:03:26

分组密码

  • 1.分组密码简介
  • 2.分组密码的基本原理
    • 2.1代换
    • 2.2扩散
    • 2.3混淆
  • 3.分组密码的结构
    • 3.1Feistel网络
      • 3.1.1平衡Feistel网络
      • 3.1.2不平衡Feistel网络
    • 3.2SP网络
  • 4.分组密码的设计

分组密码算法是将输入数据划分成固定长度的组进行加密和解密的一类对称密码算法。本章主要介绍分组密码概述、DES、AES,以及分组密码的工作模式和分组密码分析。

1.分组密码简介

分组密码是一种单钥或对称密码算法,通信双方使用相同的密钥加密和解密。
在分组密码中,要将明文分为长度为n的分组,用同样的密钥k对每一个组进行加密,解密的时候同样的。设加密之后的密文长度为m,则如果m>n,则是有数据扩展的分组密码;如果m<n,则是有数据压缩的分组密码。

2.分组密码的基本原理

2.1代换

为使加密运算可逆也就是让解密运算可行,明文的每个分组都应该产生唯一一个密文分组,这样的变换是可逆的,称明文分组到密文分组的可逆变换称为代换

2.2扩散

扩散和混淆的目的是抗击攻击者对密码系统的统计分析。
扩散是将明文的统计特性散步到密文中去,使明文的每位影响密文中的多位的值,等价于密文中每位都受到明文中多位的影响,也就是从密文中不能获得明文的统计特性。

2.3混淆

混淆是使密文和密钥之间的统计关系变得尽可能复杂,从而使得攻击者无法得到密钥。使用复杂的代数算法可以得到预期的混淆效果,而简单的线性代换函数得到的混淆结果不太理想。
扩散和混淆成功地实现了分组密码的本质属性,因而成为设计现代分组密码的基础。

3.分组密码的结构

现代密码学中的分组密码体制基本上都是基于乘积和迭代来构造的。乘积一般使通过一系列的置换和代换构成的。

3.1Feistel网络

分为平衡的和不平衡的两种。

3.1.1平衡Feistel网络

设x是需要加密的明文,长度为2m。
加密过程如下:
①将明文x一分为二,x=L0R0,L为左边m长度,R为右边m长度部分。

加密过程
其中F是一个加密函数,称为圈函数;Ki是由密钥k产生的长度为t的子密钥;密文y=RrLr,其中r是圈变换的迭代次数。解密过程就是加密过程的逆过程。
过程图如下:
过程图

3.1.2不平衡Feistel网络

设x是需要加密的明文,长度为2m。
加密过程如下:
①将明文x一分为二,x=L0R0,L为左边n1长度,R为右边n2长度部分,且n1+n2=2m。
加密过程
其中F是圈变换;Ki是由密钥k产生的长度为t的子密钥;密文y=XrRXrL,其中r是圈变换的迭代次数。解密过程与加密过程类似。
过程图
其中有限域的概念可以参考如下链接:有限域

3.2SP网络

SP型分组密码的加密思想为:设x是要加密的明文,长度为n。过程如下:
①令X0=x,1 ≤ i ≤ r;
②在子密钥Ki的控制下,对Xi-1进行代换S;
③对结果做置换或者可逆的线性变换P得到结果Xi
④重复2、3步直到达到迭代次数r,得到最后的密文结果y=Xr
过程如下图
圈变换
其中S一般称为混淆层,起混淆作用;
置换或者可逆的线性变换P称为扩散层,起扩散作用。

Fesistel网络的加解密过程类似,但是SP网络的加解密过程布雷斯,所以不能用同一个算法来实现加密和解密。

4.分组密码的设计

分组密码的设计在于找到一种算法,能在密钥控制下从一个足够大且足够好的置换子集中,简单而迅速地选出一个置换,用来对当前输入的明文组进行加密变换。
设计要求如下:
①分组长度n要足够大,使分组代换字母表中的元素个数2n足够大,防止明文穷举攻击奏效。
②密钥量要足够大,以防止密钥穷举攻击奏效。
③由密钥确定置换的算法要足够复杂。
④加密和解密运算简单,易于软件和硬件高速实现。
⑤数据扩展。一般无数据扩展,在采用同态置换和随机化加密技术时可以引入数据扩展。
⑥差错传播尽可能小。
其中1 2 3的安全性是必要条件。要在安全性和实用性之间找到平衡。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/780873.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

零基础深度学习——学习笔记1 (逻辑回归)

前言 因为各种各样的原因要开始学习深度学习了&#xff0c;跟着吴恩达老师的深度学习视频&#xff0c;自己总结一些知识点&#xff0c;以及学习中遇到的一些问题&#xff0c;以便记录学习轨迹以及以后复习使用&#xff0c;为了便于自己理解&#xff0c;我会将一些知识点用以个…

MySQL 中NULL和空值的区别

MySQL 中NULL和空值的区别&#xff1f; 简介NULL也就是在字段中存储NULL值&#xff0c;空值也就是字段中存储空字符(’’)。区别 1、空值不占空间&#xff0c;NULL值占空间。当字段不为NULL时&#xff0c;也可以插入空值。 2、当使用 IS NOT NULL 或者 IS NULL 时&#xff0…

了解 3DS MAX 3D摄像机跟踪设置:第 4 部分

推荐&#xff1a; NSDT场景编辑器助你快速搭建可二次开发的3D应用场景 1. 项目设置 步骤 1 打开“后效”。 打开后效果 步骤 2 转到合成>新合成以创建新合成。 将“宽度”和“高度”值分别设置为 1280 和 720。将帧速率设置为 25&#xff0c;将持续时间设置为 12 秒。单…

Jenkins发送的邮箱中没有带配置的压缩附件

【问题描述】&#xff1a;Jenkins中明明配置了邮箱发送时要带压缩附件&#xff0c;收到的邮箱中却没有附件内容 【问题定位】&#xff1a;压缩附件没有放在Jenkins工作空间下&#xff0c;所以发送的邮件并未发送附件 【解决办法】&#xff1a; 1&#xff09;把压缩附件放到J…

Scoop安装配置MySQL最详细版(含Navicat连接MySQL)

这是在DataWhale的第一次打卡文章&#xff0c;也是时隔三年再动笔&#xff0c;希望持续下去。 我没想到花费了一整天的时间来配置我的写作环境&#xff08;TyporaPicGo腾讯云oss&#xff09;&#xff0c;因为我不想我的文字局限在某个平台上&#xff0c;很被动&#xff0c;想要…

如何在小程序首页隐藏商品分类

​因为在分类页面有显示分类&#xff0c;所以有的商家希望在首页就不显示分类啦。下面就介绍一下如何在首页隐藏商品分类。 在小程序管理员后台->页面设置->首页&#xff0c;显示商品分类设置为否。设置后&#xff0c;在小程序首页商品分类就不会显示啦。注意&#xff1a…

手机word文档怎么转换成pdf?分享两种方法

手机word文档怎么转换成pdf&#xff1f;在如今信息化的时代&#xff0c;电子文档已经成为人们日常办公不可或缺的一部分。随着科技的不断进步&#xff0c;电子文档的格式也在不断发展。PDF作为电子文档的一种重要格式&#xff0c;被广泛使用。那么&#xff0c;如何将手机上的Wo…

zabbix通过JMX监控tomcat

目录 1&#xff09;配置java网关 2&#xff09;修改tomcat 3&#xff09;修改tomcat启动脚本 4&#xff09;启动tomcat 5&#xff09;Zabbix-web端配置——添加JMX信息 6&#xff09;导入模板​编辑 7&#xff09; 为server.zabbix.com添加模板 8&#xff09;图形如下 9&…

SAP从放弃到入门系列之-5种库存转储测试

​前段时间发了小蜘蛛同学写的《STO 库存转储总结》这篇文章&#xff0c;一直没发测试的示例&#xff0c;4年前写的文章了&#xff0c;今天才从草稿箱翻出来。 文章目录导航 一、Plant to plant 1 step二、Plant to plant 2 steps中转库存&#xff08;Stock In Transfer&#…

图数据库Neo4j学习二——cypher基本语法

1命名规范 名称应以字母字符开头&#xff0c;不以数字开头&#xff0c;名称不应包含符号&#xff0c;下划线除外可以很长&#xff0c;最多65535( 2^16 - 1) 或65534字符&#xff0c;具体取决于 Neo4j 的版本名称区分大小写。:PERSON和:Person是:person三个不同的标签&#xff…

Unity进阶-ui框架学习笔记

文章目录 Unity进阶-ui框架学习笔记 Unity进阶-ui框架学习笔记 笔记来源课程&#xff1a;https://study.163.com/course/courseMain.htm?courseId1212756805&_trace_c_p_k2_8c8d7393c43b400d89ae94ab037586fc 最上面的管理层&#xff08;canvas&#xff09; using System…

数仓学习---12、数仓开发之ADS层

星光下的赶路人star的个人主页 知世故而不世故 是善良的成熟 文章目录 1、数仓开发之ADS层1.1 流量主题1.1.1 各渠道流量统计1.1.2 路径分析 1.2 用户主题1.2.1 用户变动统计1.2.2 用户留存率1.2.3 用户新增活跃统计1.2.4 用户行为漏斗分析1.2.5 新增交易用户统计 1.3 商品主题…

Sentinel 规则持久化到 Nacos

一、Sentinel规则管理模式&#x1f349; Sentinel的控制台规则管理有三种模式&#xff1a; 原始模式&#x1f95d; 原始模式&#xff1a;控制台配置的规则直接推送到Sentinel客户端&#xff0c;也就是我们的应用。然后保存在内存中&#xff0c;服务重启则丢失 pull模式&#…

【重点:单例模式】特殊类设计

请设计一个类&#xff0c;只能在堆上创建对象 方式如下&#xff1a; 将构造函数设置为私有&#xff0c;防止外部直接调用构造函数在栈上创建对象。向外部提供一个获取对象的static接口&#xff0c;该接口在堆上创建一个对象并返回。将拷贝构造函数设置为私有&#xff0c;并且…

了解 3DS MAX 3D摄像机跟踪设置:第 2 部分

推荐&#xff1a; NSDT场景编辑器助你快速搭建可二次开发的3D应用场景 1. 项目设置 步骤 1 打开“后效”。 打开后效果 步骤 2 转到合成>新合成以创建新合成。 将“宽度”和“高度”值分别设置为 1280 和 720。将帧速率设置为 25&#xff0c;将持续时间设置为 12 秒。单…

该虚拟机似乎正在使用中。如果该虚拟机未在使用,请按”获取所有权(T)”按钮获取它的所有权。否则,请按”取消(C)”按钮以防损坏。

文章目录 一、报错原因二、解决办法 一、报错原因 这是因为虚拟机未被正确关闭导致的问题。因此&#xff0c;在以后使用虚拟机时&#xff0c;我们应该确保正常关闭虚拟机系统&#xff0c;以避免出现这类问题。 二、解决办法 根据提示的配置文件位置&#xff0c;找到虚拟机安…

web-Access注入

看到网站上面有asp的就要联想到access数据库 方法一&#xff1a; 1.判断出整型注入 ?id1513 and 12 2.判断出列数为22列 ?id1513 order by 22 3.猜表名 回显正常说明存在这个表&#xff0c;回显不正常的话说明这个表就是不存在的。这里猜到表名为admin ?id1513 and ex…

详解HTTP协议(一)

1、HTTP概述 1、什么是HTTP 超文本传输协议&#xff08;Hyper Text Transfer Protocol&#xff0c;HTTP&#xff09; HTTP是一个基于请求与响应的、无状态的应用层协议&#xff0c;用于在两点之间传输超文本数据&#xff0c;常基于TCP/IP协议传输数据。 设计HTTP的初衷是为…

vmware17 开启虚拟机虚拟化

背景 我们需要在虚拟机里创建虚拟机。 实体机需要再bios里设置硬件设备的虚拟化 vmware软件可以在软件里设置虚拟化 设置虚拟化 现在我们看到是不能设置的&#xff0c;那是因为我现在开着这个虚拟机系统&#xff0c; 需要先关闭&#xff0c;才能对他进行设置。

【ACM】—蓝桥杯大一暑期集训Day5

&#x1f680;欢迎来到本文&#x1f680; &#x1f349;个人简介&#xff1a;陈童学哦&#xff0c;目前正在学习C/C、Java、算法等方向&#xff0c;一个正在慢慢前行的普通人。 &#x1f3c0;系列专栏&#xff1a;陈童学的日记 &#x1f4a1;其他专栏&#xff1a;CSTL&#xff…