分组密码¶

分组密码¶

分组密码¶

分组密码概述¶

特点

安全性依赖密码

加密秘钥=解密密钥

速度快,易实现

实现

DES

Blowfish

IDEA

LOKI

RC5

AES

分组密码和序列密码

序列密码(流密码):单独加密每个位

分组密码:每次使用相同的密钥加密整个明文分组

分组密码的基本原理

代换

扩散

使明文密文间的统计关系变 得复杂,使攻击者无法得到从密文推出明文

混淆

使密文和密钥之间的统计关系变得尽可能 复杂,以使攻击者无法得到密钥

分组密码结构

Feistel分组密码的特点

最后一轮没有进 行左右交换

利用同一算法实现加解密

SP分组密码结构和特点

代换S(代换)一般称为混淆层

置换或可逆的线性变换P一般称为扩散层

SP网络可以看作Feistel网络的推广,但SP型 分组密码的加密过程与解密过程一般不相似

DES¶

加密流程

初始置换\(IP\)

16轮迭代

初始置换\(IP^{-1}\)

轮密钥生成

16轮迭代的每一轮秘钥都不相同。每一轮迭代使用的秘钥长度均为48bit。这48bit的轮密钥生成规则如下:

首先通过PC–1置换 将64bits变换成56bits, 然后再通过16轮的循环 移位和PC–2置换处理 就可以得到16个48bits 的轮密钥

加密函数

加密函数\(F\)是整个DES算法的核xz心

graph

A(扩展置换E -- 32bit->48bit)-->B(异或运算 -- 和48bit的轮密钥异或运算)-->S(S盒变换 核心 -- 48bit->32bit)-->P(置换P -- 结果重排)-.->A

AES¶

特点

安全、高效、易实现、灵活

AES中分组长度只能是128bit,但是密钥长度可以是128bit、192bit、256bit(依次增加64bit)

密钥长度不同,加密轮数不同

AES算法

密钥长度

分组长度

加密轮数

AES-128

128bit

128bit

10

AES-192

192bit

128bit

12

AES-256

256bit

128bit

14

算法过程(以AES-128为例)

AES处理的基本单位是字节(DES处理的基本单位是比特)

128bit的明文P和输入秘钥K都被分为16字节

加密过程和解密过程不一致(SP分组结构,区别Feistel结构的DES)

只有轮密钥加阶段使用了密钥

状态矩阵(从上到下、从左至右)

每一轮的加密过程

graph

A(字节代换 -- 使用S盒替换每个字节)-->B(行移位 -- 将明文的状态矩阵每一行移位对应的位数)-->C(列混合 -- 和固定矩阵相乘)-->D([轮密钥加 -- 和128bit的秘钥位异或 XOR])

E(密钥扩展 -- 通过种子密钥生成多重密钥)

分组密码的工作模式¶

DES的四种工作模式

密码

模式

电子密码本(ECB)

密文分组链接(CBC)

密文反馈(CFB)

输出反馈(OFB)

计数器模式(CTR)

公钥密码¶

公钥密码体制概述¶

使用一对密钥(公钥和私钥),公钥和私钥不可互相求解

公钥密码的设计要求

生成密钥对容易

通过公钥求私钥是在计算上不可行的

加密和解密的次序可换

本质上是一个单项陷门函数

RSA公钥密码体制¶

密钥的生成

选择连个较大的树\(p\),\(q\)

计算\(n=pq\),\(\phi(n)=(p-1)(q-1)\)

随机选取和\(\phi(n)\)互质的树\(e(e \lt n)\)

求解d,使得\(ed \equiv 1 \pmod{\phi(n)}\)

公钥\((n,e)\),私钥\((n,d)\)

加密解密(明文是M)

加密\(C \equiv M^e \pmod n\)

解密\(M \equiv C^d \pmod n\)

安全性分析

针对参数选择

共模攻击

低指数攻击

循环攻击法

因子分解法

侧信道安全性分析(物理设备上的安全性)

密码哈希函数¶

Hash函数的定义¶

把任意长度的输入通过散列算法变成固定长度的输出,输出值就是散列值。Hash算法又称散列算法

哈希函数的性质

压缩

高效

单向性

弱抗碰撞性

强抗碰撞性

生日攻击¶

第一类生日攻击

找出具有给定Hash值的一个消息需要执行\(n/2\)次运算

第二类生日攻击

找出相同的Hash值的两个消息需\(\sqrt{n}\)次运算

HAMC算法描述¶

输入\(b\)-bit,输出\(n\)bit

Hash函数的构造¶

主要形式

使用压缩函数迭代哈希【MD结构】

大多数的结构。例如 MD5、SHA1、SM3等等

使用将输入转换成相同大小的输出的函数进行迭代哈希【海绵函数】

Hash函数的迭代结构

单向散列函数的工作模式

填充为还包括输入的长度,增加了复杂度

MD5算法描述

相关推荐

Epic计划今后推出更多独占大作;《堡垒之夜》放弃Win7-8系统支持
365娱乐游戏是哪个公司

Epic计划今后推出更多独占大作;《堡垒之夜》放弃Win7-8系统支持

📅 11-10 👁️ 8461
量子上同调
365娱乐游戏是哪个公司

量子上同调

📅 07-28 👁️ 4770
移动应用开发中AppID、AppKey、AppSecret
手机365体育网站经常打不开

移动应用开发中AppID、AppKey、AppSecret

📅 10-18 👁️ 7643