密码学与网络安全 - 5 有限域 & 6 高级加密标准

5 有限域

许多加密算法都依赖于有限域的性质,特别是高级加密标准和椭圆曲线加密算法,还包括消息认证码CMAC以及认证加密方案GMC

5.1 群

群、环和域都是数学理论中的一个分支

5.1.1 群

群记做G,定义二元运算 · ,对于任何一对有序偶(a,b),满足:

  1. 封闭性
  2. 结合律
  3. 单位元
  4. 逆元

根据元素个数有限和无限分为有限群和无限群

5.1.2 交换群

  1. 满足交换律

5.1.3 循环群

如果群中每一个元素都是一个固定元素a的幂a^k(k为整数),则称群G为循环群

5.2 环

环 R

满足1-5

  1. 乘法封闭性
  2. 乘法结合律
  3. 分配律
  4. 乘法交换律:交换环
  5. 乘法单位元:存在元素1,a1= 1a = a 成立
  6. 无零因子:存在元素a,b,且ab=0,则必有 a=0或b=0

5.3 域

记作 F

满足以上 + 乘法逆元

5.4 有限域

无限域在密码学中没有什么特别的意义,但是两个有限域比较重要

有限域的阶(元素的个数)是一个素数的幂,即p^n, n为正整数,记作GF(P^n)

5.4.1 阶为p 的有限域

素数的剩余类在模n的运算下构成一个交换环,且任意非零整数都有乘法逆元

5.4.2 在GF§中求乘法逆元

5.5 多项式的运算

5.5.1 普通多项式的运算

这是个很熟悉概念了

注意的在抽象代数中一般不给x一个特定的值

5.5.2 系数在Zp上的多项式运算

加减乘的都可,除法也可能,但并不是整除

5.5.3 求最大公因式

从求最大公约数到多项式中的求最大公因式

5.6 有限域GF(2^n)

5.6.1 动机

为了和二进制对应

5.6.2 多项式模运算

在zp上定义多项式并且模运算

5.6.3 求乘法逆元

还是使用Euclid算法,从求最大公约数到最大公因式再到求公因式的乘法逆元

5.6.4 计算上的考虑

5.6.5使生成元

6 高级加密标准

6.1 有限域算术

AES中的所有运算都是在8位字节上进行的,包括加减乘除

如果在有限域上使用除法,则需要定义,因为除法需要每一个非零元素都有一个乘法逆元,所以要定义合适的算术运算,使得集合成为有限域,如上面的多项式模运算

6.2 AES结构

6.2.1 总体结构

明文分组是128位,密钥分组可以是128,192或256字节

密文由明文经过初始变换(第0轮密钥)后再经过N(10、12、14)轮变换(第n轮密钥)而得到

6.2.2 详细结构

除了第n轮,第1-n-1轮变换分别有字节代替,行移位,列混淆和轮密钥加

6.3 AES的变换函数

6.3.1字节替代变换

正向字节替代是一个简单的查表操作(AES定义了一个S盒),逆字节代替变换是字节代替变换的逆

基本原理,S盒的设计能够已有各种密码分析攻击

6.3.2 行移位变换

正向和逆向变换,能够使的某个字节从一列移动到另一列中

6.3.3 列混淆变换

正向和逆向变换

独立操作每一列,将所操作的列的每一个元素映射到一个新的值,映射的方式基于状态的矩阵乘法

基本原理:矩阵的系数是基于码字间有最大距离的线性比那吗,这使得每列所有的字节有良好的混淆性

6.3.4 轮密钥加变换

正向变换和逆向变换

128位的状态按位与128位的轮密钥XOR,是字节级别的操作

基本原理:轮密钥加变换能够影响状态的每一位,密钥扩展的复杂性和AES的其他阶段运算的复杂性,确保了该算法的安全性

6.4 AES的密钥扩展

6.4.1 密钥扩展算法

输入4个字(16字节)输出44字的一维线性数组,可以每轮变换提供轮密钥

6.4.2 基本原理

密钥扩展算法除了防止已有的密码分析攻击,还使用了轮常数防止不同轮的轮密钥产生方式上的对称性或相似性

6.5 雪崩效应

同样的,AES下的密码系统也具有雪崩效应

6.6 AES的实现

6.6.1 等价的逆算法

解密算法和加密算法不同,不要不同的软件模块,为了让其结构相同,需要对密钥扩展进行改进

6.6.2 实现方面

AES在8位处理器上就能有效的实现

猜你喜欢

转载自blog.csdn.net/weixin_51487151/article/details/124724802