云曦期中考复现——crypto

文章描述了一次密码解密的系列过程,包括使用ctfcode解码,理解埃特巴什码和凯撒密码的变种,利用Hashcat工具破解RAR密码,以及通过yafu或Factordb分解RSA密钥进行解密。过程中涉及了加密算法、哈希破解和数学计算。
摘要由CSDN通过智能技术生成

@什码

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

1.下载附件。文件名提示用ctfcode来解码

 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解码

 坐等密码破解求求了

1.下载附件

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

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

 

恺撒密码的替换方法是通过排列明文和密文字母表,密文字母表示通过将明文字母表向左或向右移动一个固定数目的位置。例如,当偏移量是左移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.下载附件之后发现文件被加密需要一个工具爆破rar解压密码:Hashcat

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

hashcat - advanced password recovery

 

在使用Hashcat进行密码破解的时候需要辅助工具来获取加密文件的Hash,此处选用John the Ripper(点我下载)来获取加密文件的Hash

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

把easyrsa.rar放到run目录下在run目录打开cmd命令行运行john: 

rar2john.exe easyrsa.rar

输出了rar的哈希值

 在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"的文本文件中。

 6043就是密码

终于得到题目

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

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

或者使用在线网站factordb.com

yafu-x64.exe
factor(16254707021883930518807493412586769230167)

脚本

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 中,并打印输出。

flag{2496048176378538008}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值