2024 数信杯 南区决赛

分区第11名,还行.
Crypto
2024
task
1 | import random |
flag1.enc
1 | n: 13111253489758945122188556204390868224402311366143537090988165178965154068863113668446449296161794818953904845201813996968339175738080442391942643611047671328902660055336047685713304129172682406229372976535096463219284722397386622225405198953493021223679602593847091241061873677679220911618002298935622233065778867002182025189925827061716645121096144074791457524062807482711962935614075745533387992708507241041977555043122850321627021193880102281432259303601748832191559700505221501964668864114901027968209331940369201883937024497451608116803469734003989442454337530585803565044371000913648068275830986927382800781681 |
与今年国赛初赛的OvO
类似的一道题,直接拿hint联立n解出来的解与p和q的高位相同,随后Copper
Smith即可。
exp
1 | import gmpy2 |
0_curve
task
1 | from Crypto.Cipher import AES |
对SEETF
2022的The True ECC
熟悉的人立马就能看出这个形式是圆锥曲线上的点加和点乘。具体到本题使用的是双曲线。
双曲线的形式其实是Pell Equation,而我们知道Pell Equation的解满足:
所以直接把enkey
和G
的坐标代入上式即可转化为
exp
1 | #! /usr/bin/sage |
ps:最初一直想找个映到高斯整环的同态,结果因为
*32RSA
task
1 | from Crypto.Util.number import * |
没做出来,搓的脚本解不出flag但是我还看不出哪里有问题,先挖个坑
Misc
ez_sign
爆破得到压缩包密码为123456
,解压得到3个文件.
part1图片内直接有flag的第一段,part2追踪TCP stream,在stream 6内找到第二段flag,part3逐字节与0xff异或后恢复压缩包,解压得到第三段flag。