【密码学——基础理论与应用】李子臣编著 第三章 分组密码 课后习题

server/2025/3/14 18:00:19/

免责声明

这里都是自己搓或者手写的。
里面不少题目感觉有问题或者我的理解有偏颇,请大佬批评指正!
不带思考抄作业的请自动退出,我的并非全对,仅仅提供思维!

题目

逐题解析

3.9

做这题需要有置换和错排的知识储备(见参考文献)。

解: 2^n 个元素的置换有 2^n! 种方式(不妨记为a)
其中,错排的数量为 2^n! \sum_{k=0}^{2^n} \frac{(-1)^k}{k!}个。(不妨记为b)
因此,S上具有不动点的置换个数是a-b个。

3.10

如果我没理解错题意,那么就是书上的证明。动手举个例子去试一下,理解不难。

3.11

解:DES的密钥为56bit,每个bit对应0或者1,双重DES则有112个密钥。因此

P= \frac{1}{2^{112}}

3.12

解:101010对应的横坐标是10(即2),纵坐标对应的是0101(即5)。
100010对应的横坐标是10(即2),纵坐标是0001(即1)。

我们并不知道是哪个盒子,因此要讨论。

S1S2S3S4S5S6S7S8
(2,5)数值641511138312
二进制01100100111110111101100000111100
(2,1)数值11466214411
二进制00011110011001100010111001001011

3.13

解:同上理,这是一个逆向过程。对于每个盒子,输入的数字都不一定一样。
(每一个点对应的输入值请自己翻译,表格太长写不下。。。)

S1S2S3S4S5S6S7S8

1010

(十进制为10)

(0,9)(0,15)(0,0)(0,7)(0,5)(0,2)(0,13)(0,8)
(1,8)(1,11)(1,7)(1,13)(1,11)(1,10)(1,7)(1,4)
(2,13)(2,4)(2,13)(2,0)(2,4)(2,11)(2,8)(2,10)
(3,12)(3,2)(3,1)(3,4)(3,12)(3,7)(3,6)(3,5)

0010

(十进制为2)

(0,4)(0,10)(0,14)(0,9)(0,0)(0,5)(0,2)(0,2)
(1,5)(1,5)(1,8)(1,10)(1,2)(1,3)(1,12)(1,15)
(2,6)(2,14)(2,10)(2,13)(2,1)(2,4)(2,15)(2,7)
(3,3)(3,7)(3,14)(3,14)(3,6)(3,2)(3,13)(3,0)

3.14(待填坑)

这题需要用到多项式乘法逆元的知识。
学了AES我才知道大二上学的离散真的是一坨,密码学核心的循环群、环、域全部不用讲。
但是期末又把群论考的群难得一批。
然后有限域多项式的乘法完全把我搞蒙b了......现在也还在消化过程中。

解:
第一步求解逆元。
由题,(a_7a_6a_5a_4a_3a_2a_1a_0)(b_7b_6b_5b_4b_3b_2b_1b_0) \equiv 1 \ mod \ m(x)
用扩展欧几里得算法算出(b_7b_6b_5b_4b_3b_2b_1b_0)。但是我还不会算,等待填坑
第二步仿射变换。
仿射变换简单亿点点。

3.15

这个就是异或运算。

解:

A(x) \oplus B(x) \\ =(1b \oplus ac) x^3+(03 \oplus 00) x^2+(dd \oplus f0) x^1+(a1 \oplus 2d) x^0 \\ =b7x^3+03 x^2+22 x^1+8c x^0

3.16(待填坑)

AES的列变换矩阵(记为P)如下:

\begin{pmatrix} 02 & 03 & 01 & 01 \\ 01 & 02 & 03 & 01 \\ 01 & 01 & 02 & 03 \\ 03 & 01 & 01 & 02 \end{pmatrix}

课本也给出了逆矩阵P'如下:

\begin{pmatrix} 0E & 0B & 0D & 09 \\ 09 & 0E & 0B & 0D \\ 0D & 09 & 0E & 0B \\ 0B & 0D & 09 & 0E \end{pmatrix}

那么

(t_{ij})_{4*4}= P' (s_{ij})_{4*4}

代码有空更新,这是16进制的,目前我还不会搞。

3.17

解:xtime(b)公式如下:
若b7=0,则字节内左移一位。
若b7=1,则字节左移一位之后与4D(01001101)的按位模2实现。
推导:

x^8=x^6+x^3+x^2+1\\ xtime(b)\\ =b_7x^8+b_6x^7+b_5x^6+b_4x^5+b_3x^4+b_2x^3+b_1x^2+b_0x^1+0\\ =(b_6\oplus 0)x^7+(b_5\oplus 1)x^6+(b_4\oplus 0)x^5+(b_3\oplus 0)x^4+\\(b_2\oplus 1)x^3+(b_1\oplus 1)x^2+(b_0\oplus 0)x^1+(0\oplus 1)\\

0x6D·0xD5计算结果:0xBA
过程:

参考文献

置换:近世代数 笔记与题型连载 第八章(置换群)_轮换与对换的关系-CSDN博客

错排:彻底搞懂错排公式-CSDN博客

【组合数学】错排问题 ( 递推公式 | 通项公式 | 推导过程 ) ★-CSDN博客

有限域:密码编码学与网络安全--原理与实现--(第八版)第5章 ------有限域_密码编码学与网络安全第八版答案-CSDN博客

有限域、域内运算、不可约多项式、本原多项式【这篇一定能让你看懂!!】-CSDN博客


http://www.ppmy.cn/server/174537.html

相关文章

将web端graphql接口复制到postman

要在浏览器中使用开发者工具(F12)将 GraphQL 接口请求复制到 Postman,您可以按照以下步骤操作: 1. 打开开发者工具 在浏览器中按 F12 或右键点击页面并选择“检查”以打开开发者工具。 2. 监控网络请求 切换到“Network”&#x…

【推荐项目】 043-停车管理系统

043-停车管理系统 介绍 使用 springboot vuejs mysql 技术搭建框架。 智能停车管理系统描述 后端框架:采用Spring Boot与MySQL的强强联合,为系统提供稳健、高效的服务支撑。 前端框架:前端选用Vue.js,打造流畅、美观的用户交…

Docker基础之基础概念

使用Docker,只需要配置一次Docker容器上面的应用,就可以跨平台,跨服务器,实现应用程序跨平台的无缝衔接 docker的基本组成 镜像(image): docker镜像就好比一个模板,可用通过这个模板来创建容器服务,通过这个…

Python 绘制迷宫游戏,自带最优解路线

1、需要安装pygame 2、上下左右移动,空格实现物体所在位置到终点的路线,会有虚线绘制。 import pygame import random import math# 迷宫单元格类 class Cell:def __init__(self, x, y):self.x xself.y yself.walls {top: True, right: True, botto…

新能源汽车电控系统的大尺寸PCB需求:猎板PCB的技术突围

从特斯拉Model 3到中国智造,大尺寸PCB如何支撑电动化浪潮 #### 引言:新能源汽车电控系统的“心脏”革命 在新能源汽车的“三电”系统(电池、电机、电控)中,电控系统承担着动力分配、能量管理与行驶控制的核心功能&a…

游戏引擎学习第150天

回顾与当天计划 我们在这里完全不使用任何库,所以我们完全是引擎和库免疫的, 正如大家所知道的,我们正在编写自己的资源处理系统,准确来说,是一个资源加载系统。过去一周我们已经完成了很多工作,现在只剩下最后几步&a…

Redis 设置密码无效问题解决

一、验证密码有没有生效 运行cmd,cd到redis的目录下 输入“redis-cli.exe” 回车 输入“auth 123456” 回车 若错误,说明没有设置密码或者设置的密码没有生效 输入“exit” 回车就立即退出redis 二、解决方案是:直接修改后缀是 .conf 的…

动态 SQL 的使用

目录 1、< if> 标签2、< trim> 标签3、< where> 标签4、< set> 标签5、< foreach> 标签 1、< if> 标签 < if test“条件语句”> xxxx < /if> 只有当条件语句满足条件&#xff0c;才会拼接 < if> 标签内容&#xff0c;因…