这里存放Someijam做过的CTF的所有Write UP
SomeiTeam WP beginCTF
队伍Token:891:GuwO01RTO9nlEqOCVszhNa
队伍成员:Someijam(1人)
Misc
real check in
将:
MJSWO2LOPNLUKTCDJ5GWKX3UN5PUEM2HNFXEGVCGL4ZDAMRUL5EDAUDFL5MU6VK7O5UUYMK7GEYWWZK7NE3X2===
使用base32解码后得到:
06.格相关的初步理解
从此处开始,为了表述清晰,我们有必要进行符号的约定:
- 数域,用黑板体表示,如“”等
- 向量,要么是,要么是
- 矩阵,粗体,正的字体,比如“”,通常是大写字母,小写字母通常表示退化成行列向量的矩阵
- 变量,斜字体,不加粗,如等
- 有非数学含义的量,正着的字体,不加粗,如“”,“”等
- 微分符号也是正着写的,但是这里应该不会用到
格与线性代数
通常我们在密码学题中说的“构造格”是构造一个高维的矩阵,矩阵里的行向量线性无关,由这些向量线性组合可以得到这个“格”规定空间中的其他向量,这些向量构成一个“格”。
说实话我也不知道为啥会学这么多密码学。。。
这里分享Someijam一些关于密码学知识的笔记。因为他相对更喜欢研究公钥加密,所以你可能看不到太多关于对称加密的内容。
Todo:
-
整理文章和图片(图床。。。)
-
有关CTF的技巧会分享在这里,但是来自CryptoHack的例题解析按照平台要求不得公开,所以设了“密码”。
Diffie-Hellman密钥交换
DH密钥交换由Ralph C. Merkle、Bailey Whitfield Diffie 和 Martin Edward Hellman 在1976年提出,早于1977年RSA加密算法出现(真的吗?)。也许有人很好奇我为什么先讲“后”出现的RSA,然后再讲DH。
公钥加密的起源
在讲经典的DH密钥交换之前,我想让更多人知道公钥加密算法创建之初时鲜为人知的故事。
首先是一个在1997年被GCHQ公开的曾经写于1973年的内部机密文件:
RSA数字签名
背景
我们在上一篇文章“RSA加密算法中”,分别以上帝视角和中间人视角亲身经历了一次加密传输信息的过程。但是这个过程中仍然存在漏洞。现在假设我们作为一个中间人,根据加解密的过程,我们也可以通过公钥来加密自己的明文传给那位女生,并且把那位男生想要发给女生的密文扔掉,简言之,我们可以截获密文,并且伪造发送者的身份。这怎么行?万一有个捣蛋鬼把情书改成“我讨厌你”那不就完蛋了?所以我们需要对消息进行“签名”。
“签名”,顾名思义,就是证明这段消息确实是我发送的,接下来让我们谈一谈男生怎么对自己的情书进行签名。
实践-签名
RSA加密算法
背景
在众目睽睽之下,如何秘密地与你心爱的女神交流呢?
现在假设坐在后排的你想和教室靠前排的女神表白,内容是:
The love that I have. Of the life that I have. Is yours and yours and yours.
对称加密算法
DES
Data Encryption Standard是上世纪70年代开始广泛采用的对称加密算法。
DES的加密过程是将64bit的明文用56bit的密钥加密生成64bit的密文,解密过程恰好相反。因为加密解密使用的是相同的密钥,所以称为“对称加密算法”。
在加密的过程中,明文会经历多次加密变成密文,每次称为“一轮”,下面详细地介绍一下过程。
-
第一轮:输入64bit的明文,均分为左右两侧,各32bit。
右32bit发送至轮函数,轮函数根据右32bit和此轮的密钥来生成一个神秘的32bit数据
左32bit与刚刚生成的神秘32bit数据异或运算,作为输出的左侧
输入的右侧32bit不处理,直接作为输出右侧
-
后续的轮:对调输入的左右32bit数据,各轮分别使用新的密钥,与第一轮类似处理。
-
最后一轮:同之前的轮,输出后的结果不再对调,作为最终结果。
古典密码学
字典:https://ctf-wiki.org/crypto/classical/monoalphabetic/
词频分析:quipqiup.com
古典密码学形式众多,用现代的方法破解较为简单,下面仅仅给出关键的特征以及必要的一些信息。
凯撒密码、移位密码、仿射密码
明文与密文的句式一模一样,就是替换了字母而已,通法词频分析,具体的方法可以查上面的字典。
多表代换加密
不同于上面的简单变换,这样加密的方法会导致词频分析失效,但是特征是既可能句式照样保持一致,要么就是只会出现固定的几个字母,也有可能是非常规整的一组字母。