现代密码学|古典密码学例题讲解|AES数学基础(GF(2^8)有限域上的运算问题)| AES加密算法

文章目录

  • 古典密码
    • 凯撒密码和移位变换
    • 仿射变换
    • 例题
    • 多表代换
    • 例题
  • AES数学基础(GF(2^8)有限域上的运算问题)
    • 多项式表示法 | 加法 | 乘法
    • X乘法
    • 模x的四次方+1的乘法
  • AES加密算法
    • 初始变换
    • 字节代换
    • 行移位
    • 列混合
    • 轮密钥加
    • 子密钥(密钥扩展)
    • 例题

古典密码

现代密码学|古典密码学例题讲解
参考的一个up主,讲得挺好,正好课程没啥作业,参考up的来做题学习

在这里插入图片描述

凯撒密码和移位变换

在这里插入图片描述

仿射变换

在这里插入图片描述

例题

求逆元通过扩展欧几里得算法
在这里插入图片描述

多表代换

在这里插入图片描述

例题

在这里插入图片描述
注意同余的性质:同加同减同乘最后都要再mod一次

注意这里明文和密文都只有4个,但A是2x2矩阵,要相乘的话只能一次乘明文中的两个,所以可以得出下面的方程
在这里插入图片描述

在这里插入图片描述

AES数学基础(GF(2^8)有限域上的运算问题)

现代密码学|AES数学基础|GF(2^8)有限域上的运算问题

在这里插入图片描述

多项式表示法 | 加法 | 乘法

b是系数
在这里插入图片描述
在这里插入图片描述

每次把最高次项约掉,最终不能大于等于8的次

在这里插入图片描述

X乘法

在这里插入图片描述

模x的四次方+1的乘法

在这里插入图片描述
例题
在这里插入图片描述

AES加密算法

【AES加密算法】| AES加密过程详解

在这里插入图片描述

在这里插入图片描述
明文块和密钥块都可以用一个16字节的矩阵表示
在这里插入图片描述
大致加密过程,先有个印象,但最终轮没有这个列混合

在这里插入图片描述

初始变换

在这里插入图片描述
在这里插入图片描述

字节代换

在这里插入图片描述
根据字节转换寻找到对应的x和y,然后替换

在这里插入图片描述
最终结果
在这里插入图片描述

行移位

在这里插入图片描述
最终结果
在这里插入图片描述

列混合

相乘的这个矩阵是固定的(被给出的)
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
这里的运算规则就是GF(2^8)有限域上的运算问题
在这里插入图片描述

轮密钥加

和一个子密钥矩阵(会通过密钥得到)进行异或

在这里插入图片描述

大致流程如下
在这里插入图片描述

子密钥(密钥扩展)

通过已有的密钥通过某些操作计算出子密钥
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
字循环
在这里插入图片描述
字节代换
在这里插入图片描述

轮常量异或
在这里插入图片描述
在这里插入图片描述

例题

在这里插入图片描述
在这里插入图片描述
AES加密相关小题

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/60906.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

3. Spring Cloud Eureka 服务注册与发现(超详细说明及使用)

3. Spring Cloud Eureka 服务注册与发现(超详细说明及使用) 文章目录 3. Spring Cloud Eureka 服务注册与发现(超详细说明及使用)前言1. Spring Cloud Eureka 的概述1.1 服务治理概述1.2 服务注册与发现 2. 实践:创建单机 Eureka Server 注册中心2.1 需求说明 图解…

视频孪生技术在金融银行网点场景中的应用价值

作为国民经济重要的基础行业,金融行业在高速发展的同时衍生出业务纠纷、安全防范、职能管理等诸多问题,对安全防范和监督管理提出了更高的要求。因此,如何能更好的利用视频监控系统价值,让管理人员更简便的浏览监控视频、更快速的…

武汉EI学术会议一览表

武汉近期将举办BDDM2024大数据会议、ASIM2024智能制造会议、ICSGPS2025电网会议,吸引国内外学者参与,推动科技创新与产业发展,录用论文将提交EI索引。 武汉EI学术会议一览表 1.第二届大数据与数据挖掘国际会议(BDDM 2024&#xf…

vue3项目中的常用插件

vue3项目中的常用插件 1、路由组件 npm install vue-router4路由配置 import { createWebHashHistory, createRouter } from "vue-router"; //引入主布局 import Admin from "/pages/layout/admin.vue"; import Index from "/pages/index/index.vu…

LeetCode Hot100 15.三数之和

题干: 思路: 首先想到的是哈希表,类似于两数之和的想法,共两层循环,将遍历到的第一个元素和第二个元素存入哈希表中,然后按条件找第三个元素,但是这道题有去重的要求,哈希表实现较为…

html + css 自适应首页布局案例

文章目录 前言一、组成二、代码1. css 样式2. body 内容3.全部整体 三、效果 前言 一个自适应的html布局 一、组成 整体居中&#xff0c;宽度1200px&#xff0c;小屏幕宽度100% 二、代码 1. css 样式 代码如下&#xff08;示例&#xff09;&#xff1a; <style>* {…

使用Axios函数库进行网络请求的使用指南

目录 前言1. 什么是Axios2. Axios的引入方式2.1 通过CDN直接引入2.2 在模块化项目中引入 3. 使用Axios发送请求3.1 GET请求3.2 POST请求 4. Axios请求方式别名5. 使用Axios创建实例5.1 创建Axios实例5.2 使用实例发送请求 6. 使用async/await简化异步请求6.1 获取所有文章数据6…

多仓库分支同步策略:方法与工具全解析

在大型项目或微服务架构中&#xff0c;多个仓库之间保持一致的分支结构是至关重要的。本文将为您介绍几种高效的方法和工具&#xff0c;帮助您实现这一目标。 方法一&#xff1a;Git Hooks——自动化同步的利器 Git Hooks允许您在特定事件&#xff08;如提交、合并等&#xf…

MySQL —— MySQL索引介绍、索引数据结构、聚集索引和辅助索引、索引覆盖

文章目录 索引概念索引分类索引数据结构种类Innodb 索引数据结构聚集索引和辅助索引&#xff08;非聚集索引&#xff09;聚集索引辅助索引&#xff08;非聚集索引&#xff09; 索引覆盖 索引概念 索引是对数据库表中一列或多列的值进行排序后的一种数据结构。用于帮助 mysql 提…

证明存在常数c, C > 0,使得在一系列特定条件下,某个特定投资时刻出现的概率与天数的对数成反比

在第0天&#xff0c;某债券价值1元。在第 n n n天&#xff0c;其价值为 S n : e ( X 1 ⋯ X n ) S_n : e^{(X_1 \cdots X_n)} Sn​:e(X1​⋯Xn​) 元&#xff0c;其中 X i X_i Xi​ 是独立同分布随机变量&#xff0c;满足 P ( X i 1 ) P ( X i − 1 ) 1 / 2 P(X_i 1)…

Vue.js中computed的使用方法

在Vue.js中&#xff0c;computed 属性是基于它们的依赖进行缓存的响应式属性。只有当相关依赖发生改变时&#xff0c;才会重新求值。这意味着只要computed属性依赖的源数据&#xff08;如data中的属性&#xff09;没有发生变化&#xff0c;多次访问computed属性会立即返回之前的…

制作图片马常用的五种方法总结

目录 1. 以文本方式2. Windows的cmd方式3. PhotoShop方式4. 16进制5. Linux的cat方式 图片马:就是在图片中隐藏一句话木马。利用.htaccess等解析图片为PHP或者asp文件。达到执行图片内代码目的。 1. 以文本方式 用文本方式&#xff08;这里用notepad。如果用记事本的方式打开…

python isinstance(True, int)

今天的bug 是布尔类型给的。 >>> a True >>> isinstance(a, int) True>>> a True >>> isinstance(a, bool) True‌Python中的布尔类型&#xff08;bool&#xff09;实际上是整数类型&#xff08;int&#xff09;的一个子类&#xff0c;…

python实现十进制转换二进制,tkinter界面

目录 需求 效果 代码实现 代码解释 需求 python实现十进制转换二进制 效果 代码实现 import tkinter as tk from tkinter import messageboxdef convert_to_binary():try:# 获取输入框中的十进制数decimal_number int(entry.get())# 转换为二进制binary_number bin(de…

UG Motion学习笔记2【正解 反解】

使用软件&#xff1a;SP Model NX12.0 Robot Arm的正解&#xff1a; &#xff08;先添加关节驱动&#xff0c;进行正解。再添加连杆驱动&#xff0c;进行反解。&#xff09; 直接点击_step.prt零件打开。一共7个构件&#xff0c;6个运动副&#xff08;圆片&#xff0c;转角&…

机器学习—正则化和偏差或方差

正则化参数的选择对偏差和方差的影响 用一个四阶多项式&#xff0c;要用正则化拟合这个模型&#xff0c;这里的lambda的值是正则化参数&#xff0c;它控制着你交易的金额&#xff0c;保持参数w与训练数据拟合&#xff0c;从将lambda设置为非常大的值的示例开始&#xff0c;例如…

在Node.js中如何使用TypeScript

第一步&#xff1a;创建一个Node.js项目的package.json文件 npm init -y第二步&#xff1a;添加TypeScript、添加node.d.ts npm install typescript -D npm install types/node -D第三步&#xff1a;初始化一个tsconfig.json文件 npx tsc --init --rootDir src --outDir lib…

零基础Java第十九期:认识String(一)

目录 一、String的重要性 二、String的常用方法 2.1. 字符串构造 2.2. String对象的比较 2.3. 字符串查找 2.4. 转化 2.4. 字符串替换 2.5. 字符串拆分 2.6. 字符串截取 一、String的重要性 在C语言中已经涉及到字符串了&#xff0c;但是在C语言中要表示字符串只能…

面试经典 150 题:20、2、228、122

20. 有效的括号 参考代码 #include <stack>class Solution { public:bool isValid(string s) {if(s.size() < 2){ //特判&#xff1a;空字符串和一个字符的情况return false;}bool flag true;stack<char> st; //栈for(int i0; i<s.size(); i){if(s[i] ( |…

【SpringBoot】公共字段自动填充

问题引入 JavaEE开发的时候&#xff0c;新增字段&#xff0c;修改字段大都会涉及到创建时间(createTime)&#xff0c;更改时间(updateTime)&#xff0c;创建人(craeteUser)&#xff0c;更改人(updateUser)&#xff0c;如果每次都要自己去setter()&#xff0c;会比较麻烦&#…