type
status
date
slug
summary
tags
category
icon
password

加密过程

AES属于分组加密算法,明文固定128位,密钥长度可变
  • 密钥128位 迭代10轮
  • 密钥192位 迭代12轮
  • 密钥256位 迭代14轮
首先将16字节用4x4矩阵表示,排序方式是先从上到下,再从左到右
加密过程如下:
  • 初始变换
  • 9轮循环运算(字节代换,行移位,列混合,轮密钥加)
  • 1轮最终轮(与之前的区别:没有列混合

Initial round

密钥也是16字节(128位),将两个输入的数据按字节异或

Standard Round - 轮函数

字节替换
一次Sbox替换,Sbox为16x16(256)的矩阵,前4字节决定行,后四字节决定列
行移位
第一行不变,第二行向左一个字节,第三行向左两个字节,第四行
列混合
将输入的矩阵左乘一个给定的44矩阵
轮密钥加
矩阵每一列和轮密钥矩阵的一列进行异或

子密钥生成

子密钥矩阵经过密钥扩展可以得到十个轮密钥矩阵
将初始密钥输入4x4状态矩阵,一列为一组,使用递归生成

分组密码工作方式

对于DES ,定义了4种模式,来加密任意长度的信息
Block Modes:ECB CBC
Stream Modes:CFB OFB

ECB Electronic Codebook Book 电子密码本模式

消息分成相互独立的加密模块,每块独立使用DES算法
ECB最大特性是同一明文分组在消息中重复出现的话,产生的密文分组也相同

CBC Cipher block chaining 密码分组链接

一次对一个明文分组加密,每次加密使用同一个密钥,加密算法的输入是当前明文分组和前一个密文分组的异或
notion image

CFB Cipher Feedback 密码反馈模式

将DES转换为流密码,流密码不需要填充,密钥和明文一样长(每次选取一段最终密文的一部分)
在CFB模式中,前一个密文分组会被送回到密码算法的输入端。所谓反馈,这里指的就是返回输入端的意思。
使用和明文相同长度的密钥来加密
notion image
  1. 明文某一组中有错,会使以后的密文组都受影响,但经解密后的恢复结果,除原有误的一组外,其后各组明文都正确地恢复。
  1. 密文里的一位错误会引起明文的一个单独错误,此处,错误进入移位寄存器,导致密文成为无用信息,直到该错误从移位寄存器中移出。

OFB Output Feedback 出反馈模式

将加密算法的输出反馈到移位寄存器(每次选取加密后密文的一部分)相对于CFB,密文传输错误不会影响OFB(注意二者的差别)
notion image
OFB模式和CFB模式的区别仅仅在于密码算法的输入。
CFB模式中,密码算法的输入是前一个密文分组,也就是将密文分组反馈到密码算法中,因此被称为“密文反馈模式”;
OFB模式中,密码算法的输入是密码算法的前一个输出,也就是将输出反馈给密码算法,因此被称为“输出反馈模式”。
notion image

计算器模式CTR

可并行加密,且允许加密数据块的随机访问
CTR模式是一种通过将逐次累加的计数器进行加密来生成密钥流的流密码。最终的密文分组是通过将计数器加密的到的比特序列,与明文分组进行XOR而得到的。
notion image
 
 
错误传播
  • 错误传播个数 = 1:ECB/OFB/CTR
  • 存在错误传播:CBC(会影响2位)/CFB(影响多位)

对称密码算法分析

密钥空间穷搜索

算力
 
代换密码 分组密码