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

考研复习 Day 39 | 密码学--第四章 分组密码(上)

注:以下内容参考《新编密码学》范九伦 张雪锋 侯红霞 编著


第4章 分组密码

4.1 分组密码的设计准则

分组密码(Block Cipher)是现代密码学的重要组成部分,主要功能是提供有效的数据保护。分组密码对固定长度的一组明文进行加密,该固定长度称为分组长度。传统上,通过计算机实现的分组密码常选取64位作为分组长度,这是安全性与实用性的折中选择。近年来,随着计算能力提升,64位分组长度的安全性逐渐不足,许多分组密码开始采用128位作为分组长度。

分组密码的加密过程按分组长度 n 将明文分成若干组,对每组执行相同的加密操作,产生一个 n 位的密文分组。不同的 n 位明文分组共有 2^n 个。为保证可逆性(即解密可行性),每个明文分组应映射为唯一的密文分组,这种变换称为可逆变换或非奇异变换。

4.1.1 填充问题

当明文长度不是分组长度的整数倍时,需要进行填充。常见的填充方式有四种:

1.Zeros填充:填充字节全为0。不可逆(无法区分原始0与填充0)。

2.X923填充:填充字节中前若干字节为0,最后一个字节记录填充总字节数。可逆

3.PKCS7填充:每个填充字节都等于所需填充的总字节数。可逆

4.ISO10126填充:填充字节中前若干字节为随机数,最后一个字节记录填充总字节数。可逆

4.1.2 Feistel分组密码结构

Feistel密码结构基于Shannon提出的扩散混淆思想:

扩散:使明文与密文之间的统计关系复杂化,每个密文位与多个明文位相关。

混淆:使密文与密钥之间的统计关系复杂化,防止密钥推测。

Feistel分组密码的基本结构如图4-1所示。加密输入为 2L 位的明文分组和初始密钥 K,先将明文等分为左半部分 L0 和右半部分 R0​,各 L 位。加密共进行 n 轮,第 i 轮以 L(i−1)​ 和 R(i−1) 为输入,并包含从初始密钥生成的子密钥 Ki​。每轮操作如下:

解密过程与加密过程相同,但子密钥使用顺序相反(Kn,Kn−1,…,K1)。

Feistel密码的安全性取决于:

1.分组大小(越大越安全,但效率越低)

2.子密钥大小(至少128位)

3.循环次数(越多越安全)

4.子密钥生成算法的复杂度

5.轮函数 F 的复杂度(核心是S-盒的非线性)

4.1.3 轮函数 F 的设计准则

轮函数 FF 的核心是S-盒(替换盒)。设计准则包括:

1.非线性:非线性程度越高,算法越安全。

2.严格雪崩准则(SAC):任一输入位改变时,任何输出位改变的概率为 1/2。

3.比特独立准则(BIC):任一输入位改变时,任意两个输出位的变化相互独立。

4.保证雪崩准则(GAC):输入改变1位时,输出至少有 2∼5 位发生改变。

4.2 数据加密标准——DES

DES(Data Encryption Standard)是最广泛使用的分组密码之一,对推动密码学发展起了重大作用。DES以64位为分组对数据进行加密,密钥长度为64位(实际有效56位,另8位为奇偶校验位)。DES包含16轮“替换—置换”操作。

4.2.1 DES的加密流程

一、初始置换(IP):对64位明文进行置换(见表4-1)。

二、16轮Feistel结构加密:每轮使用48位子密钥,操作包括:

1、密钥置换与循环移位:56位密钥分为两半,根据轮数循环左移1或2位(见表4-3),再通过压缩置换(表4-4)生成48位子密钥(图4-5)。

​​​​​​​​

2、扩展变换(E-盒):将32位右半部分扩展为48位(表4-5)。

​​​​​​​​

3、与子密钥异或

4、S-盒替换:8个S-盒(表4-6),每个将6位输入映射为4位输出。输入的第1、6位决定行,第2–5位决定列(例4.1)。

​​​​​​​​

【例4.1】假设对应第6个S-盒的输人序列为110011。其中,第1位和最后一位组合构成的序列为11,对应的十进制数字为3,说明对应的输出序列位于S-盒的第3行;中间的4位组合构成的序列为1001,对应的十进制数字为9,说明对应的输出序列位于S-盒的第9列。第6个S-盒的第3行、第9列处的数是14(注意:行、列的记数均从0开始,而不是从1开始),14对应的二进制为1110,对应输人序列110011的输出序列为1110。

5、P-盒置换:对32位结果进行置换(表4-7)。

6、与左半部分异或并交换左右。

三、逆初始置换(IP⁻¹):得到64位密文(表4-8)。

​​​​​​​​

例4.2给出了明文computer、密钥program的完整加密过程示例。

4.2.2 DES的解密

DES的解密与加密使用相同算法,仅子密钥使用顺序相反:加密使用 K1,K2,…,K16,解密使用 K16,K15,…,K1​。解密时初始密钥进行循环右移操作生成子密钥。

4.2.3 DES的安全性分析

1.S-盒:是非线性核心,设计标准最初保密。已知S-盒具有良好非线性,输入改变1位至少改变2位输出。

2.弱密钥:存在四种弱密钥(如全0或全1等)和若干半弱密钥。

3.密钥长度:56位密钥空间 2⁵⁶,已能通过穷举搜1.索破译(1999年EFF破译机22小时破译)。

4.2.4 密码分析方法的演进

1.第一阶段:利用互补性、弱密钥等,未构成实质威胁。

2.第二阶段:差分密码分析、线性密码分析出现,可破译8轮、12轮DES。

3.第三阶段:专用硬件穷举搜索(EFF破译机)可在两天内破译DES(2000年仅2小时)。

4.2.5 DES的贡献

1.展示了适应历史阶段信息安全需求的密码体制构造方法。

2.确立了“算法公开、密钥保密”的标准化原则。

3.证明了分组密码标准化的可行性。

4.确立了安全使用分组密码的若干准则。

5.推动了密码分析理论(差分分析、线性分析等)的快速发展。

4.2.6 DES的改进方法

改进方法一(密文反馈)

对明文分组,(i=2,3,…,n)进行加密前,先将明文分组消息和前一组加密的密文分组序列 y-进行异或运算,然后对运算的结果序列进行加密操作。即

​​​​​​​​

迭代结构分组加密流程如图4-7所示。

​​​​​​​​

相应的解密过程为

​​​​​​​​

迭代结构分组解密流程如图4-8所示。

​​​​​​​​

对于改进方法一,由于采用了密文反馈的方式进行加密,当明文序列的结构有一定的固定格式时,相应的密文序列表现出的规律性会被隐藏,从而能有效改进加密算法的安全性。

改进方法二(多重DES)

1、双重DES:最简单的双重 DES加密过程是采用两个不同的密钥分两步对明文分组消息进行加密。给定一个明文分组x和两个加密密钥K,和K,相应的密文消息y由下式得到:

​​​​​​​​

密钥长度112位。但可被中间相遇攻击破解,工作量约 2⁵⁷。

2、三重DES(EDE模式):在该加密算法中,加密过程用两个不同的密钥K,和K。对一个分组消息进行3次DES加密。首先使用第一个密钥进行 DES加密;然后使用第二个密钥对第一次的结果进行DES解密;最后再使用第一个密钥对第二次的结果进行 DES加密。

​​​​​​​​

密钥长度112位,被广泛接受并用于密钥管理标准(ANSI X9.17, ISO 8732)。

4.2.7 AES的诞生

1997年,NIST发起征集DES替代算法——AES。经4年评选,最终选定比利时密码学家Daemen和Rijmen提出的Rijndael算法作为AES。


注:以上内容的理解和计算,如果有任何错误,希望各位读者和大佬指出改正,非常感谢!!!

http://www.gsyq.cn/news/1336972.html

相关文章:

  • 【Redis | 第一篇】Redis常见命令
  • 【Rust + Tauri 2 + TypeScript + Tailwind CSS 4 桌面应用 UI 组件选型深度对比(2026版)】
  • 别再硬套RBAC了!用Filebrowser的‘文件夹规则’搞定多级文件权限(附实战配置)
  • python conda正确安装cuda版本的pytorch
  • 示波器RIGOL与UltraSigma截图的使用
  • C 语言单向链表基础操作详解
  • 2026深度前瞻:制造业生产合规管控,未来有哪些智能化发展方向?
  • B站SEO优化底层逻辑:以用户需求为核心,解锁低成本流量密码
  • AI Agent将如何重构制造业的安全生产隐患识别模式?深度理解与实在Agent闭环实战
  • 从选题到定稿零焦虑?okbiye AI 本科论文写作,把 “熬大夜” 的时间还给你
  • Anthropic《创始人手册:打造AI原生创业公司》Claude(中文精读版)完整38页pdf
  • 你的舵机控制代码可能一直写错了:从PWM占空比公式到SG90/MG996R舵机平滑运动避坑指南
  • 手把手教你用示波器抓CAN总线波形:从SOF到EOF的保姆级解析(附位填充实战)
  • 2026年4月西藏靠谱的体育看台源头厂家推荐,体育看台/雨棚/遮阳棚/推拉蓬/电动推拉棚,体育看台生产厂家怎么选择 - 品牌推荐师
  • STM32G474实战:用CubeIde配置互补PWM驱动电机,这10个坑我帮你踩过了
  • 为什么你的Midjourney时装图总被拒稿?揭秘Pantone TPX数据库未公开调用逻辑及RGB→PMS精准映射公式
  • 轻松实现Zoho系统与轻易云数据集成平台的无缝对接
  • InterSystems IntelliCare 成为首个获得欧盟医疗器械法规认证的 AI 原生EHR系统
  • 驭势科技上市首日破发,L4级自动驾驶商业化盈利之路仍待突破
  • 团队项目空间、角色继承链、资产水印策略——Midjourney新功能三大硬核模块详解,错过将丧失企业级部署资格
  • Gradiant宣布完成E轮融资,公司估值达20亿美元,助力加快AI、半导体以及工业水务基建领域布局
  • 保姆级教程:用ROS2的Component机制和TF2实现小乌龟跟随(C++/Python双版本)
  • 【AI】了解ChatMemory 底层实现机制
  • STM32F103标准库硬件IIC+DMA驱动AHT20温湿度传感器(附完整工程代码)
  • 第一次投学术会议?这份全流程指南请收好
  • 导师推荐!盘点2026年全网爆红的的降AI率软件
  • ROS2 Foxy下,六轴IMU串口数据解析与Rviz2可视化实战(避坑串口驱动与协议)
  • 给 AI Agent 写一份 Action Manifest:让工具调用从“能跑”变成“可控”
  • 一线观察:昆明装修供应商长期使用的真实表现
  • 从YOLOv5实战反推:手把手在WSL2里搭建PyTorch 1.12 + CUDA 11.3 环境(附国内镜像加速)