Skip to content

随机数之旅 4

本题考查线性代数。

FLAG 被切片为 14 块,每块转为数字后得到秘密向量 cx 初始为 14 个随机数字,然后按如下关系扩展 x 序列:

xk=(c0xk14+c1xk13+...+c13xk1)(modp)

题目给出了 px 序列的最后 28 位。

利用这 28 位可以根据递推关系列出 14 个关于 ci 的 14 元方程,求解即可。

python
p=
x=

n=14
A=matrix(Zmod(p),n,n)
for i in range(n):
    for j in range(n):
        A[i,j]=x[i+j]
b=x[-14:]
c=A.solve_right(b)

m=b"".join(long_to_bytes(int(c[i])) for i in range(n))