首页 > 其他分享 >CTF 之 Crypto (Cryptography) 学习笔记

CTF 之 Crypto (Cryptography) 学习笔记

时间:2025-01-08 19:54:51浏览次数:1  
标签:Cryptography 字母 Crypto 明文 circ CTF Cipher 密钥 forall

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

希尔密码 (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/,较为混杂且无营养。

标签:Cryptography,字母,Crypto,明文,circ,CTF,Cipher,密钥,forall
From: https://www.cnblogs.com/wlzhouzhuan/p/18660437

相关文章

  • moectf2023 web wp
    gas!gas!gas!直接跑脚本importrequestssession=requests.Session()url="http://127.0.0.1:14447"steering_control=0throttle=1foriinrange(10):datas={"driver":1,"steering_control":steering_control,"throttle":thro......
  • python charm-crypto库的使用
    在ubuntu20.04.6LTS上安装pipinstallcharm-crypto1fromcharm.toolbox.pairinggroupimportPairingGroup,ZR,G1,G2,GT,pair2#创建SS512椭圆循环群3group=PairingGroup('SS512')4#生成ZR群上元素:数字5group.random()6group.order()7group.rand......
  • [MRCTF2020]pyFlag
    [MRCTF2020]pyFlag在3张图片结尾发现有隐藏的压缩包信息提取出来组合成一个压缩包,暴力破解得到密码1234打开压缩包里的2个txt,发现提示和编码后的字符串根据.hint.txt文件的说明,得知flag经过了base加密,且为base16,base32,base64、base85,我们需要根据种base编码的特征来提取信......
  • 零基础被迫参加CTF比赛?CTF高频解题技巧与经验分享
    CTF(CaptureTheFlag)比赛中的高频解题技巧通常涵盖了以下几类技术,涉及从逆向工程、二进制漏洞利用到Web安全、密码学等多个领域。以下是一些高频解题技巧:1.逆向工程(ReverseEngineering)静态分析:通过阅读二进制文件的源代码或反编译代码(......
  • 零基础被迫参加CTF比赛?CTF高频解题技巧与经验分享
    CTF(CaptureTheFlag)比赛中的高频解题技巧通常涵盖了以下几类技术,涉及从逆向工程、二进制漏洞利用到Web安全、密码学等多个领域。以下是一些高频解题技巧:1.逆向工程(ReverseEngineering)静态分析:通过阅读二进制文件的源代码或反编译代码......
  • 第七届封神台CTF
    第七届封神台CTFWebwelcome_to_zkaqctf​​源码:const{promises:fs}=require('fs');constfastify=require('fastify');constflag=process.env.FLAG||'zkaq{do_you_believe_this_is_flag?}';constapp=fastify();app.get('/......
  • BJDCTF2020 ZJCTF,不过如此 1
    #php伪协议#利用伪协议#filegetcomtent用phpinput绕过#PHP对于函数调用的语法问题<?phperror_reporting(0);$text=$_GET["text"];$file=$_GET["file"];if(isset($text)&&(file_get_contents($text,'r')==="Ihaveadream")){......
  • 「BugKu CTF」1 和 0 的故事
    题意下发一个大小为\(25\times25\)的01矩阵。分析&代码根据\(25\times25\)的大小,联想到平时的微信付款码就这像素,很可能是一个二维码!但是二维码的四个角一般都是“半空心正方形”(可以打开微信付款码,看看形状),我们将这些角补全,得到二维码的01表示为111111100111......
  • 每日n题-BUUCTF密码学1-21
    1、一眼就解密CyberchefMagic方法flag{THE_FLAG_OF_THIS_STRING}2、MD5https://www.cmd5.com/flag{admin1}3、Url编码flag{and1=1}4、看我回旋踢看到synt想rot13(对应flag)flag{5cd1004d-86a5-46d8-b720-beb5ba0417e1}5、摩丝解莫斯密码(随波逐流)ILOVEYOU6、pass......
  • tryhackme-Cyber Security 101-Cryptography-John the Ripper: The Basics(开膛手约翰:
    了解如何使用JohntheRipper,这是一款功能强大且适应性强的哈希破解工具。任务1:介绍JohntheRipper 是一个众所周知的、深受喜爱的、多功能的哈希破解工具。它结合了快速的破解速度和非凡的兼容哈希类型。学习先决条件为了获得最大的收益,我们建议您在前三个关于密码学......