云曦期中考复现——crypto

@什码

这题师兄师姐给足提示了。。

1.下载附件。文件名提示用ctfcode来解码云曦期中考复现——crypto_第1张图片

 2.然后题目名字提示了这是埃特巴什码。当时真的觉得很离谱。。云曦期中考复现——crypto_第2张图片

浅浅了解一下这个码8

埃特巴什码(Atbash Cipher)是一个系统:最后一个字母代表第一个字母,倒数第二个字母代表第二个字母。

在罗马字母表中,它是这样出现的:

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

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

3。hex解码云曦期中考复现——crypto_第3张图片

 坐等密码破解求求了

1.下载附件

云曦期中考复现——crypto_第4张图片

 2.看着有点像凯撒,发现是变异凯撒

凯撒密码是一种替换加密的技术,明文中的所有字母都在字母表上向后(或向前)按照一个固定数目进行偏移后被替换成密文。例如,当偏移量是3的时候,所有的字母A将被替换成D,B变成E,以此类推。

 云曦期中考复现——crypto_第5张图片

恺撒密码的替换方法是通过排列明文和密文字母表,密文字母表示通过将明文字母表向左或向右移动一个固定数目的位置。例如,当偏移量是左移3的时候(解密时的密钥就是3),这时可以使用rot3来表示:

明文字母表:ABCDEFGHIJKLMNOPQRSTUVWXYZ ;

密文字母表:DEFGHIJKLMNOPQRSTUVWXYZABC。

凯撒密码的偏移量为N,就是用rotN来表示。rot是rotate的简写。

研究一下题目8

chgat;cWnSJZ@Q\\7K)Ig

c到f :3
h到l :4
g到l :5(这里题目有问题)
a到g :6

发现就是偏移量在增加

a='chgat;cWnSJZ@Q\\7K)Ig'
q=3
for i in a:
     print(chr(ord(i)+q),end='')
     q=q+1

超简单rsa

1.下载附件之后发现文件被加密云曦期中考复现——crypto_第6张图片需要一个工具爆破rar解压密码:Hashcat

使用方法参考宇宙最强开源破解密码利器:Hashcat 第一篇 - 知乎

hashcat - advanced password recovery云曦期中考复现——crypto_第7张图片

 云曦期中考复现——crypto_第8张图片

在使用Hashcat进行密码破解的时候需要辅助工具来获取加密文件的Hash,此处选用John the Ripper(点我下载)来获取加密文件的Hash云曦期中考复现——crypto_第9张图片

john也是通过命令行来运行,还需要配置一下环境变量:将john的run目录添加到PATH当中: 

把easyrsa.rar放到run目录下在run目录打开cmd命令行运行john: 云曦期中考复现——crypto_第10张图片

rar2john.exe easyrsa.rar

输出了rar的哈希值

云曦期中考复现——crypto_第11张图片

 在Hashcat的主目录打开cmd运行命令:

hashcat.exe -m 13000 -a 3 $rar5$16$3e01eda6ad903866f3e9af32ea371a40$15$4a3904084188c75380e4861930426283$8$6aedbe0f372f9a99 ?d?d?d?d -o out.txt
  • -m 13000:指定哈希算法类型为RAR5,对应于编号为13000的哈希模式。
  • -a 3:指定采用基于规则的攻击模式,即尝试使用规则破解密码。
  • $rar5$16$3e01eda6ad903866f3e9af32ea371a40$15$4a3904084188c75380e4861930426283$8$6aedbe0f372f9a99:RAR5文件的加密密码的哈希值。
  • ?d?d?d?d:密码中的四个数字位置将被穷举攻击尝试替换成所有的可能性(0-9)。
  • -o out.txt:将成功破解的密码输出到名为"out.txt"的文本文件中。

云曦期中考复现——crypto_第12张图片

 6043就是密码云曦期中考复现——crypto_第13张图片

终于得到题目

 BOb给Alice传输了一段数据,通过监听你得到了n=16254707021883930518807493412586769230167 c=15308821457767509487737881728693150346158 e=65537,你可以得到密文吗?
注:此题正解为flag{xxxxxxxxxxx},xxxxxxxxx即为你获取到的数据

 使用yafu对n进行分解 yafu安装及使用 - 简书

或者使用在线网站factordb.com云曦期中考复现——crypto_第14张图片

yafu-x64.exe
factor(16254707021883930518807493412586769230167)

云曦期中考复现——crypto_第15张图片

脚本

import gmpy2

p = 134783462951870118163
q = 120598674836603140909
e = 65537
c = 15308821457767509487737881728693150346158

n = p * q
phi = (p - 1) * (q - 1)
d = gmpy2.invert(e, phi)

m = pow(c, d, n)

print(m)
  • pq 是两个大质数,用于生成 RSA 的公钥和私钥。
  • e 是公钥中的指数。
  • c 是密文,即需要解密的加密后的消息。
  • n 是 RSA 中的模数,即 pq 的乘积。
  • phi 是欧拉函数的值,即 (p - 1) * (q - 1)
  • d 是私钥,通过使用 gmpy2 库中的 invert 函数计算得到。

最后,使用 pow 函数将密文 c 使用私钥 d 和模数 n 进行解密操作,结果存储在变量 m 中,并打印输出。云曦期中考复现——crypto_第16张图片

flag{2496048176378538008}

你可能感兴趣的:(算法)