高级加密标准

高级加密标准

有限域算术

  • AES中所有运算都是在域GF(28)中,域GF(28)中的多项式与8位二进制一一对应
  • AES中素多项式m(x)=x^8 + x4+x3+x+1

AES的结构

  • 明文长度为128位,即16字节,即4字
  • 密钥长度可以为16字节、24字节、32字节
  • 明文分组被描述为4*4字节方阵,并在加解密各个阶段被修改
  • 128位密钥也被描述4*4位方阵
  • 加密算法由N+1轮组成
    • N的大小依赖于密钥长度:16字节时,N=10;24字节时,N = 12;32字节时,N=14;
    • 第0轮为初始变换,其操作为轮钥密加
    • 第1轮到N-1轮为常规轮,每轮包含相同4步,包括字节代替、行移位、列混淆、轮秘钥加
    • 第N轮包括字节代替、行移位、轮秘钥加

AES算法的各个步骤

  • 字节代替变换

    • AES定义了一个S盒,它是由16*16个字节的矩阵,包含了8位所能表示的256个数的置换

    • 状态中每个字节按照如下方式映射:把该字节的高位作为行值,低4位作为列值作为索引取出S盒中对应位置元素作为输出

    • 在这里插入图片描述

    • S盒的构建

      • 在这里插入图片描述
  • 行位移变换

    • 正向行位移变换
      • 状态的第一行保持不变
      • 第二行循环左移1字节
      • 第三行循环左移2字节
      • 第四行循环左移3字节
    • 逆向行位移变换
      • 状态的第一行保持不变
      • 第二行循环右移1字节
      • 第三行循环右移2字节
      • 第四行循环右移3字节
  • 列混淆变换

    • 正向列混淆变换:对每列独立地进行操作,每列中的每个字节被映射成一个新值,该值由该列中的4个字节通过函数变换得到

    在这里插入图片描述

    • 逆列混淆变换在这里插入图片描述
  • 轮秘钥加变换

    • 12位状态与128位轮秘钥XOR

    在这里插入图片描述

    • AES的密钥扩展

posted @   chanxe  阅读(33)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 一个费力不讨好的项目,让我损失了近一半的绩效!
· 实操Deepseek接入个人知识库
· CSnakes vs Python.NET:高效嵌入与灵活互通的跨语言方案对比
· 【.NET】调用本地 Deepseek 模型
· Plotly.NET 一个为 .NET 打造的强大开源交互式图表库
点击右上角即可分享
微信分享提示