starctf2022 ezRSA附件: ezRSA.zip 1234567891011121314151617from Crypto.Util.number import getStrongPrimefrom gmpy import next_primefrom random import getrandbitsfrom flag import flagp=getStrongPrime(1024)q=next_pri 2022-04-20 Crypto
格密码学习(二) 本文主要通过分析一些例题来学习格。 NTRU摘自Lazzaro 三个整数参数$(N,p,q)$和四个次数为$N-1$得整数多项式集合 $L_f,L_g,L_φ,L_m$。$N$为素数,$p,q$可以是合数,但要求$gcd(p,q) = 1$,且$q$远大于$p$。 NTRU工作于多项式整数环$R = Z[x]/(x^N-1)$,当$F∈R$时,可以把$F$表示为多项 2022-04-19 Crypto #NTRU #格密码
格密码学习(一) 最近几天学习了格密码,于是写篇博客记录一下,当然其中不乏一些本人的错误理解,还望多多指正,感谢! 在讲格之前,先了解一下基向量和矩阵。 基学过线性代数应该知道,一组基是由各个线性无关向量组成。 例如在直角坐标系中,任何一个向量都可以由(1,0)和(0,1)这两个向量任意组合而成,那么称这两个向量为基底向量。 三维空间中,基底向量为(1,0,0)和(0,1,0)和(0,0,1)。 扩展到n维空间, 2022-04-10 Crypto #格密码
Midnight Sun CTF2022 Pelle’s Rotor-Supported Arithmetic解析: 求n 取c = -1,rot = 0。有如下公式(根据e * d = 1+k * φ(n)可知d为奇数)$$r = -1^d\ mod\ n$$因为d为奇数$$r = -1\ mod\ n$$又有$$n-1 = -1\ mod\ n$$所以$$n = 2022-04-05 Crypto
2022DASCTF X SU 三月春季挑战赛 FlowerCipher显然已知$$\begin{cases}L_{n} = R_{n-1}+L_{n-1}(k[i]^3+r_n)\R_n = L_{n-1}\end{cases}$$转换得$$L_{n} = R_{n-1}+R_{n}(k[i]^3+r_n)$$已知$L_{n},R_{n}$,对上式进行模运算可得$R_{n-1}$,$L_{n-1}$为$R_{n} 2022-03-28 Crypto
红明谷杯2022 easy_ya123456789101112131415161718192021222324252627282930313233from Crypto.Util.number import *import osfrom flag import flagdef gen(): e = 3 while True: try: p = getPrime(512 2022-03-23 Crypto
Copperstudy 最近遇到一个很不错的题【强网杯2019 Copperstudy】,里面包含大多数Coppersmith攻击,故以此题来分析其中出现的不同情况的攻击方式。 Coppersmith 可以用于求多项式的小根,经常用于 RSA 攻击中“已知某些二进制位,求剩余位”这一类问题。 d0:hash爆破1234567891011121314151617def d0(hashstr,str): for 2022-03-22 Crypto #Coppersmith
D^3CTF2022 d3factor1234567891011121314151617181920212223242526from Crypto.Util.number import bytes_to_long, getPrimefrom secret import msgfrom sympy import nextprimefrom gmpy2 import invertfrom hashlib import md 2022-03-18 Crypto #RSA #Coppersmith
SUSCTF2022 large case12345678910111213141516171819202122from Crypto.Util.number import *from secret import e,messagedef pad(s): if len(s)<3*L: s+=bytes(3*L-len(s)) return sL=128p=q=r=n=p*q*rasser 2022-03-18 Crypto #RSA