20220609现代密码学读书笔记

 

 

 

20220609现代密码学读书笔记

3 分组密码

3.1 概述

将明文以长度n分组,各组用独立密钥加密,加密结果长度为m
特性:
1.分组长度n要足够大防止明文穷举攻击,当n=64时用2^32成功率为1/2存储需要2^15MB,无法穷举
2.密钥空间要足够大,防止穷举密钥攻击。但不能太长不便于管理
书上认为30-40年内80bit足够安全,还是低估了硬件性能的发展hhhh
3.由密钥确定的置换算法要足够复杂,充分实现扩散和混淆,没有简单的关系。使对手除了穷举以外无捷径
4.加解密运算简单易于软硬件实现
5.数据扩展尽可能小。一般无扩展,使用同态置换和随机化加密技术时可引入
6.差错传播尽可能小

代换
分组代换如果太小则等价于古典密码,容易通过统计暴露规律。所以分组长度n要大一些,但这样带来的问题就是密钥需要很长。所以需要把n再分段做子代换,每个子代换称之为代换盒,简称S盒。
例如DES种将48bit->32bit的代换用8个S盒实现,每个S盒输入6输出4

扩散和混淆
打乱统计规律,扩散是将明文的统计规律散布到密文中,让密文的1位由明文的多位产生。
混淆是指将密文和明文之间的统计关系变得尽可能复杂

Feistel加密结构
利用乘积密码可获得简单的代换密码,也就是连续执行多个基本密码系统使得结果的强度高于单独的密码系统
Feistel网络中每轮结构都相同,每轮右半数据被作用于函数F后与左半做异或(置换)后交换左右两半数据(代换),这种结构是Shannon提出的SPN(Substitution-Permutation NetWork)的特有形式

3.2 数据加密标准(DES)

DES分组长度64bit,密钥长度56bit。加密过程如下
1.初始置换IP
2.16轮相同的变换,每轮包含置换和代换。每轮密钥使用初始密钥移位产生子密钥
3.执行IP的逆置换
除了1、3之外DES结构和Feistel密码结构完全一致

S盒有8个,这个S盒和IP置换表的来源没有任何理由,传说它们是有隐藏规律的,但貌似至今无人发现hhhh 需要查查文献才知道最新的进展了

DES一轮不够可以搞多轮继续复杂这个加密过程

3.3 差分密码分析与线性密码分析

差分密码分析是至今为止对迭代密码已知的攻击中最有效的方法,通过分析明文对儿的插值对密文对儿的插值的影响来恢复某些密钥bit

线性密码分析是对迭代密码的一种已知明文攻击,利用密码算法中的不平衡的线性逼近

3.4 分组密码的运行模式

ECB(Electronic CodeBook) 每个明文组独立的用同一个密钥加密
CBC(Cipher Block Chaining) 加密算法的输入是当前明文组与前一密文组的异或运算
CFB(Cipher FeedBack) 每次只处理输入的j比特位,将上一次的密文用作加密算法的输入来产生干扰值,以此干扰值与当前明文异或作为密文输出
OFB(Output FeedBack) 与CFB类似,输入的是前一次加密算法的输出

3.5 IDEA(International Data Encryption Algorithm)

明文密文都是64bit,密钥128bit
过程比Feistel更加复杂
64bit拆分为16bit4
进行8轮迭代,每轮使用16bit
6个子密钥
输出变换使用16bit*4个子密钥

3.6 AES(Advanced Encryption Standard)

Rijndael最终获选,设计策略为Wide Trail Strategy,针对差分分析和线性分析的抵抗
数学基础是GF(2^8)域内的运算,还是抽象代数的概念,在这个域上定义了几种常用运算
设计思想
1.抵抗所有已知攻击
2.多个平台上速度快,编码紧凑
3.设计简单

使用3个不同的可逆均匀变换,每个变换完成自己的目标
1.线性混合层确保多轮之上的高度扩散
2.非线性层确保输出在最坏情况下具有非线性特征,并行使用满足这个特性的S盒
3.密钥加层,单轮的子密钥异或到中间状态上

明天继续第四章公钥密码
mark当前69页

 

0 Comments
Leave a Reply