BUUCTF 每日打卡 2021-4-4

本文介绍了使用RSA加密算法的过程,并通过数学方法解析了如何利用共模攻击进行解密。作者展示了利用扩展欧几里得算法求解私钥并成功解密得到flag的过程。此外,还提到了一种可能的替换密码,通过在线工具Quipqiup爆破得到了另一个flag。文章结尾表达了作者对学习计划的反思和决心。
摘要由CSDN通过智能技术生成

引言

今天把数分作业肝完了,明天肝完高代,假期就过去了
MG正义到了(堆积+1)

RSA3

看到 c1, c2, e1, e2, n 就猜到是共模攻击
CTF Wiki Crypto 部分 非对称加密 RSA 模数相关攻击
在这里插入图片描述

from Crypto.Util.number import *
import gmpy2

c1 = 22322035275663237041646893770451933509324701913484303338076210603542612758956262869640822486470121149424485571361007421293675516338822195280313794991136048140918842471219840263536338886250492682739436410013436651161720725855484866690084788721349555662019879081501113222996123305533009325964377798892703161521852805956811219563883312896330156298621674684353919547558127920925706842808914762199011054955816534977675267395009575347820387073483928425066536361482774892370969520740304287456555508933372782327506569010772537497541764311429052216291198932092617792645253901478910801592878203564861118912045464959832566051361
n = 22708078815885011462462049064339185898712439277226831073457888403129378547350292420267016551819052430779004755846649044001024141485283286483130702616057274698473611149508798869706347501931583117632710700787228016480127677393649929530416598686027354216422565934459015161927613607902831542857977859612596282353679327773303727004407262197231586324599181983572622404590354084541788062262164510140605868122410388090174420147752408554129789760902300898046273909007852818474030770699647647363015102118956737673941354217692696044969695308506436573142565573487583507037356944848039864382339216266670673567488871508925311154801
e1 = 11187289
c2 = 18702010045187015556548691642394982835669262147230212731309938675226458555210425972429418449273410535387985931036711854265623905066805665751803269106880746769003478900791099590239513925449748814075904017471585572848473556490565450062664706449128415834787961947266259789785962922238701134079720414228414066193071495304612341052987455615930023536823801499269773357186087452747500840640419365011554421183037505653461286732740983702740822671148045619497667184586123657285604061875653909567822328914065337797733444640351518775487649819978262363617265797982843179630888729407238496650987720428708217115257989007867331698397
e2 = 9647291

print(GCD(e1, e2)) # 1

def exgcd(a, b): # 扩展欧几里得算法,求ua+vb=gcd(a,b)中的u,v
	if b == 0:
		u, v = 1, 0
		return (u, v)
	if a < b:
		a, b = b, a
	u, v = exgcd(b, a%b)
	u, v = v, u - a // b * v
	return (u, v)

u, v = exgcd(e1, e2)
print(u, v)
m = gmpy2.powmod(c1, u, n) * gmpy2.powmod(c2, v, n) % n
print(long_to_bytes(m))

得到 flag : flag{49d91077a1abcb14f1a9d546c80be9ef}

世上无难事

题目给了一串字符:
VIZZB IFIUOJBWO NVXAP OBC XZZ UKHVN IFIUOJBWO HB XVIXW XAW VXFI X QIXN VBD KQ IFIUOJBWO WBKAH NBWXO VBD XJBCN NKG QLKEIU DI XUI VIUI DKNV QNCWIANQ XN DXPIMKIZW VKHV QEVBBZ KA XUZKAHNBA FKUHKAKX XAW DI VXFI HBN QNCWIANQ NCAKAH KA MUBG XZZ XEUBQQ XGIUKEX MUBG PKAWIUHXUNIA NVUBCHV 12NV HUXWI XAW DI XUI SCQN QB HZXW NVXN XZZ EBCZW SBKA CQ NBWXO XAW DI DXAN NB NVXAP DXPIMKIZW MBU JIKAH QCEV XA BCNQNXAWKAH VBQN HKFI OBCUQIZFIQ X JKH UBCAW BM XLLZXCQI XAW NVI PIO KQ 640I11012805M211J0XJ24MM02X1IW09
不知道是什么,猜想为替换密码,尝试爆破:https://quipqiup.com/
得到结果:
在这里插入图片描述
flag 为 640E11012805F211B0AB24FF02A1ED09
再将大写字母替换成小写字母:

key = '640E11012805F211B0AB24FF02A1ED09'
flag = ''

for i in range(len(key)):

    if ord('A') <= ord(key[i]) <= ord('Z'):
        flag += chr(ord(key[i]) - ord('A') + ord('a'))
    else:
        flag += key[i]
print(flag)

结语

已经4号了,GO语言还没开始学(咕咕咕)
希望继续坚持

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值