Cypher Chapter 6:DIGITAL CRYPTOGRAPHY

news/2025/2/22 10:48:59/文章来源:https://www.cnblogs.com/YipChipqwq/p/18730659

PUZZLE1

0110 0100
0110 0001
0111 0100
0110 0001

SOLVE1

通过 ASCII 码表可知,明文为 data

PUZZLE2

HELLO

0011 1111
0010 1010
0011 1110
0010 0000
0010 1011

SOLVE2

容易猜出答案是 world,不过如何得到的呢?

考虑将 HELLO 换为 ASCII 码形式,即

0100 1000
0100 0101
0100 1100
0100 1100
0100 1111

进行 XOR 运算可以得到

0111 0111
0110 1111
0111 0010
0110 1100
0110 0100

world

PUZZLE3

2131 2572
0110 0010
0111 0101
0111 1001
0110 0011
0111 0101
0110 0110
0110 1001

SOLVE3

通过第一行的数字,我们按竖直方向进行移位,可以得到

0110 0010
0110 1001
0111 0100
0111 0111
0110 1001
0111 0011
0110 0001

也就是说答案为 bitwise

PUZZLE4

[img]
1111 1110, 0000 0001, 0000 0000, 0000 0001
1111 1110, 1111 1110, 1111 1110, 0000 0000
1111 1110, 1111 1111, 1111 1110, 0000 0000
0000 0000, 1111 1111, 0000 0001, 0000 0001

SOLVE4

通过提示,我们得知这极有可能是一张 IMG 图像,转换为数字后可以得到

254 1 0 1
254 254 254 0
254 255 254 0
0 255 1 1

254255 看做白色,01 看做黑色,可以读出 .J 两个字符。

接下来考虑 LSB 隐写,可以得到四组四位二进制数。

0101
0000
0100
0111

拼接后可以得到

0101 0000 -> P
0100 0111 -> G

因此明文为 .JPG,也是一种图像格式。

PUZZLE5

image

SOLVE5

这是 AES 加密算法中的行列混淆,我们可以通过编写一个程序来直观的感受一下。

def shift_rows(s):s[0][1], s[1][1], s[2][1], s[3][1] = s[1][1], s[2][1], s[3][1], s[0][1]s[0][2], s[1][2], s[2][2], s[3][2] = s[2][2], s[3][2], s[0][2], s[1][2]s[0][3], s[1][3], s[2][3], s[3][3] = s[3][3], s[0][3], s[1][3], s[2][3]def mix_single_column(a):# see Sec 4.1.2 in The Design of Rijndaelt = a[0] ^ a[1] ^ a[2] ^ a[3]u = a[0]a[0] ^= t ^ xtime(a[0] ^ a[1])a[1] ^= t ^ xtime(a[1] ^ a[2])a[2] ^= t ^ xtime(a[2] ^ a[3])a[3] ^= t ^ xtime(a[3] ^ u)def mix_columns(s):for i in range(4):mix_single_column(s[i])

每次混淆之后对密钥进行异或操作即可,两轮后得到矩阵:

0100
0110
0100
1110

可以得知明文为 FN

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

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

相关文章

2246. 相邻字符不同的最长路径(难)

目录题目题解:dfs 题目给你一棵 树(即一个连通、无向、无环图),根节点是节点 0 ,这棵树由编号从 0 到 n - 1 的 n 个节点组成。用下标从 0 开始、长度为 n 的数组 parent 来表示这棵树,其中 parent[i] 是节点 i 的父 节点,由于节点 0 是根节点,所以 parent[0] == -1 。…

普通人如何靠 AI 副业,1 个月实现月薪 3 万 +

在物价飞涨、经济低迷的今天,仅靠死工资,却有着不固定的开销?房贷、车贷、孩子的教育费用…… 望着日益增长的开销,你是否也在夜深人静时,为钱包的羞涩而发愁?无数次幻想过拥有一份高收入的副业,却始终在迷茫中徘徊,不知从何下手。 如今,AI 时代的浪潮汹涌而来,为我们…

C内存模型

分区 在C语言中,内存被分为以下几个部分 .text 代码段,存放程序的可执行代码,不可修改 .rodata(Read Only Data) 常量区,存放全局常量 .data 数据段,存放已初始化的全局变量和静态变量 .bss(Block Started By Symbol) 未初始化数据段,存放未初始化的全局变量或者初始化为…

探秘Transformer系列之(5)--- 训练推理

从零开始解析Transformer,目标是:(1) 解析Transformer如何运作,以及为何如此运作,让新同学可以入门;(2) 力争融入一些比较新的或者有特色的论文或者理念,让老鸟也可以有所收获。探秘Transformer系列之(5)--- 训练&推理 0x00 概述 Transformer训练的目的是通过对输入…

124. 二叉树中的最大路径和(困难)

目录题目题解:后序遍历 题目二叉树中的 路径 被定义为一条节点序列,序列中每对相邻节点之间都存在一条边。同一个节点在一条路径序列中 至多出现一次 。该路径 至少包含一个 节点,且不一定经过根节点。 路径和 是路径中各节点值的总和。 给你一个二叉树的根节点 root ,返回…

Windsurf AI编程工具

Windsurf AI编程工具实操指南目录一、环境搭建与核心功能安装与登录模型选择与配置中文环境配置二、开发全流程实操创建项目将api目录下的模型调用抽象为服务层三、避坑指南四、与Cursor对比结语安装包 一、环境搭建与核心功能 安装与登录 访问Windsurf官网下载适配版本,支持W…

让你搜索效率翻倍的技巧

本文是《最全面的浏览器教程》第五篇,介绍一些好用的搜索引擎技巧。​ 本文是《最全面的浏览器教程》第五篇,介绍一些好用的搜索引擎技巧。 上一篇文章推荐了很多好用的搜索引擎,但要用好它们,还得加上很多技巧:例如指定文件类型,排除某些内容,在指定域名内搜索等。 本文…

4. MySQL 逻辑架构说明

4. MySQL 逻辑架构说明 @目录4. MySQL 逻辑架构说明1. 逻辑架构剖析1.1 服务器处理客户端请求1.2 Connectors(连接器)1.3 第1层:连接层1.4 第2层:服务层1.5 第3层:引擎层1.6 存储层2. SQL执行流程2.1 MySQL 中的 SQL 执行流程2.2 MySQL8中SQL执行原理最后:1. 逻辑架构剖析…

无线充电

https://baijiahao.baidu.com/s?id=1809048563048631142&wfr=spider&for=pc 工信部放宽无线充电设备频率和功率限制,安卓厂商或加大无线充电功率,苹果则因Qi2.0标准频率与航空无线电导航业务冲突而调整。无线充电技术发展迅速,但仍需解决充电发热等问题。咱也就是说…

陪玩平台搭建,利用Redis实现多级缓存

陪玩平台搭建,利用Redis实现多级缓存如何使用redis6客户端缓存前置条件: redis服务端版本必须是>=6。lettuce版本>=6 目前java的redis客户端找了一圈,貌似只有lettuce 6支持,其他客户端估计后期会支持1、项目中pom引入lettuce GAV<dependency><groupId>i…

《DeepSeek中小学生/家长使用手册》让因材施教不再是选择题!

最近有受到粉丝私信如何在小初高的学习中使用DeepSeek来提供成绩;确实,随着教育改革的推进,学习内容日益丰富且难度加大,许多家长在辅导孩子和沟通交流方面感到困扰。无论是学生还是家长,找到合适的学习与辅导方式至关重要。尽管市面上有多种培训机构和学习工具可供选择,…

读DAMA数据管理知识体系指南01数据管理(上)

数据管理对企业至关重要,需规划、协作和领导力,确保数据质量和隐私,支撑企业决策和运营,数据是组织资产,需全生命周期管理,高质量数据带来竞争优势。1. 数据管理 1.1. 数据是一种至关重要的企业资产1.1.1. 数据和信息能使他们洞察顾客、产品和服务,帮助企业创新并实现其…