CTF 之 Crypto (Cryptography) 学习笔记

news/2025/1/8 19:54:14/文章来源:https://www.cnblogs.com/wlzhouzhuan/p/18660437

CTF 之 Crypto (Cryptography)

Chapter 0. 前置知识

群 (Group)

给定一个集合 \(G\neq \emptyset\) 以及二元代数运算 \(\circ\),若满足:

  • 封闭性 (Closure):\(\forall u,v\in G\)\(u\circ v\in G\)
  • 结合律 (Associativity):\(\forall u,v,w\in G\)\((u\circ v)\circ w=u\circ (v\circ w)\)
  • 单位元 (Identity):\(\exists e\in G\)\(\forall u\in G\)\(e\circ u=u\)
  • 逆元 (Inverse):\(\forall u\in G\)\(\exists u^{-1}\in G\)\(u\circ u^{-1}=e\)

则称集合 \(G\) 对代数运算 \(\circ\) 作成一个,记作 \((G,\circ)\)

Ex. 正有理数集 \((\mathbb Q^+,\times)\) 对乘法作成群;实数域 \(\mathbb R\) 上的 \(m\) 阶可逆矩阵对乘法作成群(记作一般线性群 \(\text{GL}_m(\mathbb R)\))。

半群 (Semigroup) & 幺半群 (Monoid)

  • 半群:满足封闭性、结合律;
  • 幺半群:满足封闭性、结合律、单位元。

易知,幺半群是「含有单位元」的半群,群是「每个元素皆有逆元」的幺半群。

交换群 / 阿贝尔群 (Abelian Group)

对于群 \((G,\circ)\),若满足交换律 (Commutativity):\(\forall u,v\in G\)\(u\circ v=v\circ u\),则称之为交换群 / 阿贝尔群。

Ex. 整数加法群 \((\mathbb Z,+)\) 为交换群;但 \(\text{GL}_m(\mathbb R)\) 不是交换群。

环 (Ring) & 幺环 (Ring with Identity)

给定一个集合 \(R\neq \emptyset\) 以及两个二元代数运算 \(+,\circ\),若满足:

  • \((R,+)\) 作成交换群;
  • 结合律 (Associativity):\(\forall u,v,w\in R\)\((u\circ v)\circ w=u\circ (v\circ w)\)
  • 分配律 (Distributivity):\(\forall u,v,w\in R\)\((u+v)\circ w=u\circ w+v\circ w\)\(w\circ (u+v)=w\circ u+w\circ v\)

则称集合 \(R\) 对代数运算 \(+,\circ\) 作成一个,记作 \((R,+,\circ)\),并通常称运算 \(+,\circ\)加法乘法

对于环 \((R,+,\circ)\),若 \(\circ\) 满足单位元 (Identity):\(\exists e\in G\)\(\forall u\in G\)\(e\circ u=u\),则称之为幺环。

交换环 (Commutative Ring) & 除环 (Division Ring)

对于环 \((R,+,\circ)\),若 \(\circ\) 满足交换律 (Commutativity),则称之为交换环。

对于环 \((R,+,\circ)\),若 \(\circ\) 满足逆元 (Inverse):\(\forall u\in G\)\(u\) 不是加法单位元,皆存在 \(u^{-1}\),则称之为除环。

域 (Field)

对于环 \((R,+,\circ)\),若它既是交换环,又是除环,则称之为域。

阶 (Order)

对于群 \(G\) 中元素 \(u\),定义阶为最小的正整数 \(m\),满足 \(u^m=\underbrace{u\circ u\circ \cdots \circ c}_{m个c}=e\)

Ex. 群 \((\{1,-1,i,-i\},\times)\) 中,\(1\) 的阶为 \(1\)\(-1\) 的阶为 \(2\)\(i,-i\) 的阶均为 \(4\)

同态 (Homomorphism)

代数系统间的同态指的是「不同代数系统间能够保持代数运算」的映射。

对于群 \((G,\circ)\)\((H,*)\),若有映射 \(\psi:G\to H\),满足 \(\forall u,v\in G\),有 \(\psi(u\circ v)=\psi(u)\times \psi(v)\),则称映射 \(\psi\) 为从 \(G\)\(H\) 的一个群同态。

Chapter 1. 古典密码

1.1 单表代换加密

凯撒密码 (Caesar Cipher)

密钥为 \(k\),将明文中的每个字母循环右移 \(k\) 位。

埃特巴什码 (Atbash Cipher)

很简单,\(A\to Z\)\(B\to Y\)\(\cdots\)

简单替换密码 (Simple Substitution Cipher)

\(26\) 个字母随机映射,此时无法暴力破解,一般采用词频分析。

破解工具:https://quipqiup.com/

仿射密码 (Affine Cipher)

设定加密函数 \(E(x)=(ax+b)\pmod m\),其中:

  • \(x\) 为明文映射对应的数字(通常为字母次序);
  • \(a\)\(m\) 互质;
  • \(m\) 为字母种数。

显然可得解密函数 \(D(x)=a^{-1}(x-b)\pmod m\),其中 \(a^{-1}\)\(\mathbb Z_m\) 群的乘法逆元。

1.2 多表代换加密

Playfair 密码 (Playfair Cipher)

流程:

  • 对于密钥,先进行去重操作,再将密钥的字母顺次填入 \(5\times 5\) 的矩阵内。剩下的空间填入未加入的 \(a\sim z\)。由于只有 \(25\) 个位置,一般将 \(q\) 去除,或将 \(i,j\) 视作同一字母。
  • 将明文每两个分为一组。若组内字母相同,将 \(x\) 添加到两个字母中央,并重新分组。若剩下一个字母,也加入 \(x\)
  • 在每组中,找到两个字母在矩阵中的地方:
    • 若两个字母同行,取两个字母右方的字母(若在最右侧,则取最左侧的字母);
    • 若两个字母同列,取两个字母下方的字母(若在最下侧,则取最上侧的字母);
    • 若两个字母不同行不同列,则找到另两个字母(第一个字母对应行优先),使得四个字母形成一个长方形的四个角。

Ex. 明文为 Hide,密钥为 playfair example,则得到矩阵:

P L A Y F
I R E X M
B C D G H
K N O Q S
T U V W Z

明文分段为 HI DE,得到密文 BM OD

Polybius 密码 / 棋盘密码 (ADFGX Cipher)

一战德军电报采用了 ADFGX 五个字母实现加密,密码表为:

A D F G X
A b t a l p
D d h o z k
F q f v s n
G g j c u x
X m r e w y

对于明文的每个字符,将其替换为它的行列对应字母。

  • 特征:密文只含 5 个字母,密文长度是明文长度的 \(2\) 倍。

Ex. 明文为 HELLO,密文为 DD XF AG AG DF

维吉尼亚密码 (Vigenere Cipher)

维吉尼亚密码其实就是二维的凯撒密码,属于多表密码的一种简单形式。

它的密钥为串,循环拷贝至明文的长度,第 \(i\) 个字母加密明文的第 \(i\) 位字母。

Ex. 明文为 comegreatwall,密钥为 crypto。先将密钥循环拷贝:

明文 c o m e g r e a t w a l l
密钥 c r y p t o c r y p t o c

于是得到密文为 efktzferrltzn

  • 破解:可参考 Cryptanalysis of the Vigenere Cipher,其实思想很简单,核心步骤是:

    • 找到 key 的长度:因为 key 是循环拷贝的,可以枚举其长度 \(l\),密文第 \(i,i+l,i+2l,\cdots\) 位均偏移了相同距离,可以根据词频法分析(i.e. The Index of Coincidence);
    • 得到 key:对 \(i=1,2,\cdots,l\) 逐个分析,暴力枚举 \(26\) 种偏移,采用卡方测验寻找最有可能的。

    破解工具:https://www.mygeocachingprofile.com/codebreaker.vigenerecipher.aspx

希尔密码 (Hill Cipher)

\(A=0,\cdots,Z=25\),将明文表示为一个 \(n\) 维列向量 \(\mathrm a\),密钥为 \(\text{key}\in \mathbb Z_{26}^{n\times n}\) 且可逆。密文即为 \(\text{key}\times \mathrm a\)

Ex. 明文为 ACT,即 \(\begin{bmatrix}0 \\ 2 \\ 19\end{bmatrix}\),密钥为 \(\begin{bmatrix}6 & 24 & 1 \\ 13 & 16 & 10 \\ 20 & 17 & 15\end{bmatrix}\),则密文为 \(\begin{bmatrix}15 \\ 14 \\ 7\end{bmatrix}\),即 POH

1.3 其他类型加密

详见 ctf-wiki,https://ctf-wiki.org/crypto/classical/others/,较为混杂且无营养。

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

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

相关文章

(2025自测有效!)全网最好的python配置教程【非常非常适合小白】

前几天我的电脑刚刚重装,把python重新配置了一下。 1.Python环境部署Python3 可应用于多平台包括 Windows、Linux 和 Mac OS X。 Python官网:https://www.python.org/ 进入官网在导航栏选择Dowmloads,选择所使用的系统(以Windows为例) 进入Windows下载页之后选择需要下载的…

写一个支持折叠、有缩进、代码高亮、离线的,方便部署的、易用的、优雅的json格式化查看工具(附html完整代码)

缘由 网上的在线json格式化有很多,但我是个有追求的人。在线的很难同时支持折叠、有缩进线、代码高亮、离线的,方便部署的、易用的、不请求后端(为了安全)的json格式化工具。 去Github上找项目,华而不实的东西占半个屏幕,格式化json要点好几下,一个json格式化工具npm安装…

AGC041F Histogram Rooks

我不知道啊,我只是觉得容斥很好玩。一个朴素的想法是容斥:考虑钦定 \(S\) 集合的位置没有被车覆盖,则答案是 \((-1)^{|S|}2^{c}\),其中 \(c\) 是可以放车的位置,可以直接 dp 做到 \(\mathrm{O}(2^n \text{poly}(n))\),但是难以优化。 延续容斥的想法,注意到钦定一个位置…

rust学习十六.1、并发-乱弹和一个简单并发例子

如书本作者所言,并发编程在绝大部分语言中,都是相对复杂和困难的。 所以,涉及的内容会相对多一些,所涵盖的内容绝对不是几篇文章所可以容纳的。 权当一个乱弹琴! 和此系列的其它文章一样,本文的内容绝大部分来自于相关书籍,本人做了一些摘裁的工作,取我所需!一、无畏并…

解决jenkins git 拉取代码超时问题

jenkins默认的是时间是10分钟,在git fetch时候超过10分钟了就报错失败了,可在项目源码管理 新增 advance clone behaviours

Java Bluetooth 蓝牙通讯 BlueCove 扫描附近的蓝牙设备

目录BlueCove项目概述BlueCove API架构API的设计原则和实现方式关键类和方法的功能描述测试代码获取本机(PC)蓝牙扫描蓝牙 BlueCove项目概述 BlueCove是一个开源的蓝牙协议栈实现,旨在为Java开发者提供一个全面的、易于使用的API,从而在应用程序中实现蓝牙功能。该项目支持多…

英伟达世界基础模型 Cosmos,教 AI 理解物理世界;阿里通义与雷鸟合作推出 AI 眼镜丨 RTE 开发者日报

开发者朋友们大家好:这里是 「RTE 开发者日报」 ,每天和大家一起看新闻、聊八卦。我们的社区编辑团队会整理分享 RTE(Real-Time Engagement) 领域内「有话题的新闻」、「有态度的 观点 」、「有意思的 数据 」、「有思考的 文章 」、「有看点的 会议 」,但内容仅代表编辑的…

.NET 窗口置于最顶层

本文介绍如何将窗口置于最顶层,以及解决在顶层显示时对锁屏登录界面的影响。用于实现类似Launcher、系统工具等应用需要窗口层级比Windows开始菜单以及置顶任务栏还要高的场景 一般情况下的窗口置顶,可以设置WPF窗口属性Topmost=true 也可以使用WIN32-SetWindowPos函数SetWin…

汽修行业的智能化转型:AI赋能员工培训SOP策略

随着智能化技术的飞速发展,汽修行业也迎来了前所未有的变革机遇。在这一背景下,如何构建高效、标准化的员工培训SOP(Standard Operating Procedure)策略,成为汽修企业提升竞争力、实现智能化转型的关键。本文将探讨智能AI在汽修行业员工培训SOP策略构建中的应用,特别是提…

智慧医疗新纪元:帮助中心引领的智能化转型之路

在科技日新月异的今天,智慧医疗已经成为医疗领域发展的重要趋势。智慧医疗不仅意味着医疗设备的智能化,更代表着整个医疗服务流程的数字化转型。在这一变革过程中,如何有效利用帮助中心驱动医疗机构的转型与升级,成为了一个值得深入探讨的课题。本文将探讨智慧医疗的智能跃…

sqlalchemy.exc.OperationalError

最后发现是 密码中含特殊字符@导致的连接报错其他参考: sqlalchemy.exc.OperationalError通常指示Python应用程序与数据库之间的连接出现问题。这里有一些可能的原因和解决方案:数据库连接参数错误:检查你的数据库连接字符串(DSN)。确保主机名、端口、数据库名称、用户名和…

五大优势:开源AI视频监控助力精准打击公租房非法倒卖行为

一. 用户痛点:传统监控面临的挑战与隐患 公租房作为社会保障性住房的一种,旨在为低收入群体提供基本的居住保障。然而,随着市场上房地产倒卖行为的增多,许多公租房被非法转租或倒卖给非资格居民,导致公租房资源流失、社会公平受损。政府在这方面的监管面临诸多困难,传统的…