比赛杂记
把最近打的几个比赛记录在一起
黄河流域技能挑战赛2025
因式分解
1234567891011121314151617181920212223242526272829303132333435363738394041from Crypto.Util.number import *from gmpy2 import*from secret import flag,a,b,cm = bytes_to_long(flag)p = getPrime(256)q = getPrime(256)n = p * qe = 65537_q = int(bin(q)[2:][::-1] , 2)c = pow(m,e,n)print('n =',n)print('c =',c)'''n =...
New Year CTF 2025
复现一下西电平台的题目
See you again
12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273from random import*import stringfrom Crypto.Util.number import *from sage.all import*flag = b'flag{XXXXXXXXXXXXX}'ext_len = 4*23 - len(flag)flag += ''.join(choice(string.printable) for _ in range(ext_len))def my_rsa_encrypt(): p = getPrime(512) q = getPrime(512) n = p * q data = [] for i in...
复数域
XYCTF2025
Complex_signin
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117from Crypto.Util.number import *from Crypto.Cipher import ChaCha20import hashlibfrom secret import flagclass Complex: def __init__(self, re, im): self.re = re self.im = im def __mul__(self, c): re_ = self.re * c.re...
Coppersmith
由于最近碰到了太多cooper的题目,有一元的也有多元的,其中不乏很多让人头痛的难题,自己就想先整理一遍吧
Coppersmith
相关攻击与 Don
Coppersmith
紧密相关,他提出了一种针对于模多项式(单变量,二元变量,甚至多元变量)找所有小整数根的多项式时间的方法
一般来说,Coopersmith在RSA中的应用是最多的,高位攻击一类的已知部分二进制位
那么在我们究竟要获取多少后才能打Copper呢?
我们这里先来看coopersmith定理的应用场景
现在给定了一个e阶的多项式f:
给定β,快速求出模某个n的因数b意义下较小的根,其中b ≥ nβ
,(0 ≤ β ≤ 1)
在模n的意义下,快速求出$n=\frac{β^{2}}{e}$ 以内的根
那么高位攻击明显是可以根据第二点来实现的
这里先对要用到的函数进行简单的介绍
123456789101112PolynomialRing :构造多项式环Zmod(n) :模运算implementation='NTL' :执行 NTLsmall_roots(self,...
