BUUCTF: https://buuoj.cn/challenges


相关阅读 CTF Wiki

在这里插入图片描述

题目描述:

注意:得到的 flag 请包上 flag{} 提交

密文:

1
U2FsdGVkX1/+ydnDPowGbjjJXhZxm2MP2AgI

解题思路:

1、根据题目直接得到编码方式,Rabbit编码,使用在线工具进行解密。 Rabbit在线工具

在这里插入图片描述

2、得到flag。

flag:

1
Cute_Rabbit

Rabbit加解密算法:

  1. 密钥 - 共享的绝密暗号

    • 你和你朋友事先约定好一个绝密暗号,比如 “巧克力蛋糕真好吃” 。这个暗号就是 “密钥”

    • 在 Rabbit 算法里,密钥是一串 128 位的数字(比如 2B7E1516... ),长度固定,是加解密的根本,绝对不能泄露。

  2. 初始化向量 - 本次通信的页码

    • 为了更安全,你们决定每次通信都用密码本的不同页。于是你打电话告诉朋友:“今天我们用密码本的 第58页 开始。” 这个“第58页”就是 “初始化向量”

    • 在 Rabbit 算法里,IV 是一串 64 位的数字。它的作用是确保即使用同一个密钥加密两份相同的内容,也会得到完全不同的密文。就像用同一个密码本,但从不同页开始,写出的密码也不同。

  3. Rabbit 机器的工作 - 生成“密码流”

    • 现在,你把密钥(“巧克力蛋糕真好吃”)和 IV(“第58页”)输入到一台叫做 Rabbit 的神奇机器里。

    • 这台机器会轰隆隆地运转起来,内部有很多齿轮和计数器(这就是算法的内部状态),根据你给的“暗号”和“页码”,它开始疯狂地吐出一长串、完全随机、没有规律的 “密码流”

    • 这个密码流就像: X5j9!kLm@qR3tW#z... (无穷无尽)。

  4. 加密 - 编写密码信

    • 现在你开始写原始信件( 明文 ): “明天下午三点公园见”

    • 然后,你拿出 Rabbit 机器生成的“密码流”,将信上的每一个字和密码流上的每一个字符进行 “一对一混合” (在计算机里是做“异或”运算)。

    • 混合后,你原本清晰的信件就变成了一堆毫无意义的乱码( 密文 ): “敨晑佢歮湤歮”

  5. 解密 - 还原密码信

    • 你的朋友收到了这堆乱码和你的电话通知(IV=“第58页”)。

    • 他也有同样的 Rabbit 机器,并且知道你们的共享暗号(密钥=“巧克力蛋糕真好吃”)。

    • 他把密钥和 IV 输入机器,机器会生成 一模一样 的“密码流”: X5j9!kLm@qR3tW#z...

    • 他再用这个密码流和乱码(密文)进行 完全相同的“混合”操作 ,神奇的事情发生了,乱码又变回了清晰的原信: “明天下午三点公园见”