当前位置: 首页 > news >正文

AES工作流程

工作流程
模式 1:加密
⚫ 复位EN 重置AES模块
⚫ 设置模式寄存器mode[1:0]=00,设置流数据处理模式寄存器CHMOD[1:0]
⚫ 写AES_KEYRx寄存器,CTR和CBC模式下写AES_IVRx寄存器
⚫ 写EN=1,使能AES
⚫ 写AES_DINR 寄存器4次
⚫ 等待CCF标志置起
⚫ 从AES_DOUTR分4次读出加密结果
⚫ 对于同一个key,重复步骤5,6,7对接下来的128bit block进行加密

模式 2:密钥扩展
⚫ 复位EN 重置AES模块
⚫ 设置模式寄存器mode[1:0]=01,CHMOD[1:0]寄存器的值不关心。
⚫ 写AES_KEYRx寄存器。
⚫ 写EN=1,使能AES
⚫ 等待CCF标志置起
⚫ 清除CCF标志,扩展完的key自动写回AES_KEYRx寄存器。如果需要的话可以读取AES_KEYRx寄存器获取结果。想要重新计算扩展密钥,重复步骤3,4,5,6。

模式 3:解密
⚫ 复位EN 重置AES模块
⚫ 设置模式寄存器mode[1:0]=10,设置流数据处理模式寄存器CHMOD[1:0]
⚫ 写AES_KEYRx寄存器(如果已经通过模式2计算得到了扩展密钥则可跳过这个步骤),CTR和CBC模式下写AES_IVRx寄存器。
⚫ 写EN=1,使能AES
⚫ 写AES_DINR 寄存器4次
⚫ 等待CCF标志置起
⚫ 从AES_DOUTR分4次读出解密结果
⚫ 对于同一个key,重复步骤5,6,7对接下来的128bit block进行解密

9.5.4 模式 4:密钥扩展+解密
⚫ 复位EN 重置AES模块
⚫ 设置模式寄存器mode[1:0]=11,设置流数据处理模式寄存器CHMOD[1:0]。该模式在CTR模式下被禁止使用。如果设置mode[1:0]=11,CHMOD[1:0]=10,将强制进入CTR解密模式。
⚫ 写AES_KEYRx寄存器,CBC模式下写AES_IVRx寄存器。
⚫ 写EN=1,使能AES
⚫ 写AES_DINR 寄存器4次
⚫ 等待CCF标志置起
⚫ 从AES_DOUTR分4次读出解密结果
⚫ 对于同一个key,重复步骤5,6,7对接下来的128bit block进行解密注意:该模式下AES_KEYRx寄存器内存储的一直是加密密钥,扩展密钥每次都会在内部被重新计算而不会被存储到AES_KEYRx寄存器中。

http://www.lryc.cn/news/63109.html

相关文章:

  • C++11
  • ubuntu18.04 配置zlmediakit 支持ffmpeg转码记录
  • H68K配置路由功能
  • *2.5 迭代法的收敛阶与加速收敛方法
  • 仪表板展示 | X-lab开放实验室GitHub开源项目洞察大屏
  • 【c语言】五大内存区域 | 堆区详解
  • 【JavaScript】动态表格
  • Css如何优雅的实现抽奖转盘
  • 在Java的小问题
  • HashMap的扩容机制、初始化容量大小的选择、容量为什么是2的次幂
  • [jenkins自动化2]: linux自动化部署方式之流水线(下篇)
  • idea使用 ( 二 ) 创建java项目
  • RabbitMq-接收消息+redis消费者重复接收
  • Orangepi Zero2 全志H616简介
  • Golang每日一练(leetDay0047)
  • HCL Nomad Web 1.0.7发布和新功能验证
  • 春招网申简历填写三技巧
  • 计算机网络基础知识总结
  • (下)苹果有开源,但又怎样呢?
  • row_number 和 cte 使用实例:考场监考安排
  • 2023天梯赛记录
  • 被吐槽 GitHub仓 库太大,直接 600M 瘦身到 6M,这下舒服了
  • OpenGL(三)——着色器
  • 【MySQL】单表查询
  • 第一章 安装Unity
  • 20230425----重返学习-vue项目-vue自定义指令-vue-cli的配置
  • el-input 只能输入整数(包括正数、负数、0)或者只能输入整数(包括正数、负数、0)和小数
  • Docker Compose的常用命令与docker-compose.yml脚本属性配置
  • with语句和上下文管理器(py编程)
  • 《JavaEE初阶》HTTP协议和HTTPS