前言
这次国赛密码题有三道,我只做出了两题。可惜web、逆向和pwn零封了,所以最后成绩不太理想。
bd
没什么好说的,wiener attack秒了
#sage
from Crypto.Util.number import *
from sage.all import *
from random import randint
from gmpy2 import invert,iroot#不能全部导入,会有问题
def list_cf(p,q):
'''
return continued Fractions of p/q
imput:int:p,q
output:list of continued Fractions p/q
'''
alist=[]
r=p
while(r):
a=floor(p/q)
r=p%q
p=q
q=r
alist.append(int(a))
return alist
def check_cf(alist):
'''
input:alist:list
output:sum
'''
sum=0
blist=alist[::-1]
for i in blist:
sum+=i
sum=(1/sum)
return (1/sum)
def convergent_cf_2(alist):
'''
input:alist:list
output:the convergent of each cf :list
change some detail
'''
blist=[]
for i in range(1,len(alist)):
sum=0
if i>1 and is_even(i):
for k in range(i,0,-1):
if k==i:
sum+=(alist[k]+1)
else:
sum+=(alist[k])
sum=(1/sum)
else:
for k in range(i,0,-1):
sum+=alist[k]
sum=(1/sum)
blist.append(sum)
return blist
def possible_phi(e,alist,N):
for m in range(1):

本文详细介绍了如何使用Wiener攻击破解RSA密钥,并利用Berlekamp-Massey算法解决线性反馈移位寄存器(LFSR)的问题。通过代码示例,展示了如何在特定条件下找出RSA私钥及LFSR的mask值。
最低0.47元/天 解锁文章
858

被折叠的 条评论
为什么被折叠?



