在AES加密中,设主密钥为“2B 7E 15 16 28 AE D2 A6 AB F7 15 88 09 CF 4F 3C”,试计算迭代第1轮使用的轮密钥。

embedded/2024/10/18 14:20:36/

题解:

1.分析:

第一轮使用的轮密钥是W[4]、W[5]、W[6]、W[7]

w[i](4≤i≤43)求法:

(1)i不为4的倍数

w[i] = w[i-1] ⊕w[i-4]

(2)为4的倍数

w[i]=SubWord(RotWord(w[i-1]))⊕w[i-4]⊕Rcon[i/4]

解释:

①RotWord:将w[i-1]的4个字节循环上移一个字节

②SubWord:基于S盒对输入字的每个字节进行代换

③将步骤②的结果与w[i-4]异或

④将步骤③的结果再与轮常量Rcon[i/4]异或

2.按顺序每四个一列,作为初始轮密钥(W[0]、W[1]、W[2]、W[3])

W[0]

W[1]

W[2]

W[3]

2B

28

AB

09

7E

AE

F7

CF

15

D2

15

4F

16

A6

88

3C

3.求W[4]

由于4是4的倍数故:

w[4]=SubWord(RotWord(w[3]))⊕w[0]⊕Rcon[1]

(1)将w[3]的4个字节循环上移一个字节

09

CF

CF

4F

4F

3C

3C

09

(2)基于S盒对输入字的每个字节进行代换

S盒:

用法:

如9A,对应S盒就是9行A列,即B8

代换结果:

CF

8A

4F

84

3C


http://www.ppmy.cn/embedded/101720.html

相关文章

uni-app 手记集。

1、uni-app 是一个使用 Vue.js 开发的前端应用的框架&#xff0c;所以不会Vue.js的小伙伴可以先去看看Vue.js的基础教学。 2、.vue文件结构 <template><div class"container"></div> </template><script type"text/ecmascript-6&q…

大模型学习笔记 - LLM 之 LLaMA系列(待更新)

LLaMA 系列 LLaMA 概述 LLaMA-1LLaMA-2LLaMA-3 LLaMA 概述 LLaMA: Open and Efficient Foundation Language Models Llama 2: Open Foundation and Fine-Tuned Chat Models (LLama2 & LLama2-Chat) LLama 3 | LLama 3.1 LLaMA-1 涉及到的基础知识点: pre-normalizat…

helm安装jenkins保姆级别

一、创建nfs服务器 这一步跳过、自行百度 注意&#xff1a;要给共享目录赋予权限chmod一下&#xff0c;不然到时候容器没办法在目录里面创建文件&#xff0c;初始化时候会报错误代码2 二、添加Jenkins的Helm仓库 helm repo add jenkinsci https://charts.jenkins.io helm re…

Softmax函数防止溢出,稳定计算

Softmax函数 用户: cv::Mat softmax(const cv::Mat& src) {CV_Assert(src.type() CV_32FC1); // 确保输入矩阵是单通道的32位浮点类型for (auto i 0; i < src.rows; i) {cv::Mat singleRow src.row(i);double max;cv::minMaxLoc(singleRow, NULL, &max, NULL, …

安卓中 onClick(View v) 方法在主线程还是子线程运行

在Android开发中&#xff0c;onClick(View v) 方法通常是在主线程&#xff08;也称为UI线程&#xff09;中运行的。这个方法是在用户与界面元素&#xff08;如按钮&#xff09;进行交互时&#xff0c;由系统框架自动调用的。由于Android的UI操作必须是线程安全的&#xff0c;并…

力扣面试经典算法150题:除自身以外数组的乘积

除自身以外数组的乘积算法详解 今天的题目是力扣面试经典150题中的数组的中等难度题&#xff1a;除自身以外数组的乘积。 题目链接&#xff1a;https://leetcode.cn/problems/product-of-array-except-self/description/?envTypestudy-plan-v2&envIdtop-interview-150 …

C++对比C语言新的赋值

1.int a(10);//int a10;只能用于初始化不能运用于再次赋值 2.int a{b};//ab; 3.键盘输入cin&#xff1a; 可以使用cin把用户在命令行中的内容赋值到变量中。 空格也算是字符&#xff1b; string str; // C的字符串是string cin>>str>>endl; // 接收键盘输入&am…

【模型】Temporal Fusion Transformer (TFT) 模型

Temporal Fusion Transformer (TFT) 模型是一种专为时间序列预测设计的高级深度学习模型。它结合了神经网络的多种机制来处理时间序列数据中的复杂关系。TFT 由 Lim et al. 于 2019 年提出&#xff0c;旨在处理时间序列中的不确定性和多尺度的依赖关系。 一、TFT模型的核心组成…