# General 部分 # 小技巧 在一个文件中搜索某一个关键词,可以将这个文件用 IDE 打开如 CLion 等,然后 Edit->Find-Find in Files 输入关键字搜索即可 VsCode 正则替换 具体语法参考微软 从左到右,每个用 () 括起来的部分,都默认对应一个 $n ,其中 n 从左到右从 1 开始编号,用来在替换的时候保存 () 中的内容使用。比如 3=1+2 ,正则查找为 (\d)=(\d) ,会匹配 3=1 ,替换为 $1>=$2 ,之后会变成 3>=1+2 # Xcaptcha 可以使用的 Python 库有...

# ciscn_2019_n_3 # 知识点 fastbin attach uaf # 题目分析 # New note cint do_new(){ int v1; // eax int v2; // [esp+0h] [ebp-18h] int v3; // [esp+4h] [ebp-14h] size_t size; // [esp+Ch] [ebp-Ch] v2 = ask("Index"); if ( v2 < 0 || v2 > 16 ) return puts("Out of index!");...

# NTRU # 介绍 NTRU 是基于格的加密算法来加密数据的。它包括两部分算法:NTRUEncrypt 用来加密数据,NTRUSign 用来进行数字签名。 # 内容 首先确定333 个参数(N,p,q)(N,p,q)(N,p,q) 以及444 个度为N−1N-1N−1 的多项式集合Lf,Lg,Lr,Lm\mathcal{L}_f,\mathcal{L}_g,\mathcal{L}_r,\mathcal{L}_mLf​,Lg​,Lr​,Lm​ 需要满足gcd⁡(p,q)=1\gcd(p,q)=1gcd(p,q)=1...

# 同态加密 (Homomorphic Encryption) # 概念 是一种加密方式,用于在不使用密钥的情况下对加密数据进行计算,这种计算的结果仍然是加密的。拥有密钥的用户对经过同态加密处理过的加密数据进行解密后,得到的结果还是正确的原文信息。 # 分类 半同态加密 (Partially Homomorphic Encryption(PHE)):只支持加法或乘法中的一种运算 部分同态加密 (Somewhat Homomorphic Encryption (SHE)):支持同时进行加法和乘法运算,但运算次数有限制 全同态加密 (Fully Homomorphic Encryption...

# 1.[羊城杯 2020] Power # Problem nfrom Crypto.Util.number import *import gmpy2from secret import flagp = getPrime(512)q = getPrime(512)n = p**4*qe = 0x10001phi = gmpy2.lcm(p - 1, q - 1)d = gmpy2.invert(e, phi)dp = d % (p - 1)m = bytes_to_long(flag)c = pow(m, e, n)print "dp = " + str(dp)print...

# ACTF :Impossible rsa # 知识点 代换得到二次方程的思想 # Problem nfrom Crypto.Util.number import *from Crypto.PublicKey import RSAe = 65537flag = b'ACTF{...}'while True: p = getPrime(1024) q = inverse(e, p) if not isPrime(q): continue n = p * q; public = RSA.construct((n, e)) with...

# Sage 相关库的使用 # 基本环和域 nZZ #整数环QQ #有理数环RR #实数域CC #复数域Zn = IntegerModRing(n)F.<x>=PolyomialRing(ZZ) #定义在整数环上的多项式环,多项式的变量定义为 xP.<x, y> = PolynomialRing(Zmod(p)) #多变量# F 是多项式环的名字,自定义# x 是多项式环变量的名字,自定义G=GF(p) # 定义伽罗瓦域,阶是 p,并且 p 要是一个素数或者一个素数的幂次x=G(5) #定义在有限域 GF (p) 上的数 5,可以把 G...

# Lattice (格) # 定义 给定一组线性无关的基向量v1⃗,v2⃗,⋯ ,vn⃗\vec{v_1},\vec{v_2},\cdots,\vec{v_n}v1​​,v2​​,⋯,vn​​,那么这些基向量的所有整系数线性组合 V={a1v1⃗+a2v2⃗+⋯+anvn⃗∣ai∈Z}V=\left\{a_1\vec{v_1}+a_2\vec{v_2}+\cdots+a_n\vec{v_n}\quad |\quad a_i\in...

# bob_enc # 知识点 格密码难题 CVP 域上解线性方程组 # Problem from secret import *import randomprime = 2141print len(flag)flag = map(ord,flag)flag1 = flag[:21] #前 21 个flag2 = flag[21:] #后面部分row = 64def add(msg1,msg2): return [(x+y)%prime for x,y in zip(msg1,msg2)]def multi(msg1,msg2): out = [] for l in msg1: s = 0...