失眠网,内容丰富有趣,生活中的好帮手!
失眠网 > 达芬奇密码--buuctf密码学

达芬奇密码--buuctf密码学

时间:2022-01-27 12:06:18

相关推荐

达芬奇密码--buuctf密码学

题目描述

达芬奇一直是一个有争议的画家,科学家。。。小明为了研究他,从网上找到了名画蒙娜丽莎,一天深夜,小明突然从蒙娜丽莎背后的天空中看到了一串神秘的数字。顺带告诉小明达芬奇家窗台上有一串数字是关键。小明千里迢迢找到了这串数字,请将这个送分题做出来,亲,包邮哦(答案是一串32位十进制数字)

注意:得到的 flag 请包上 flag{} 提交

文件内容

达芬奇隐藏在蒙娜丽莎中的数字列: 1 233 3 2584 1346269 144 5 196418 21 1597 610 377 10946 89 514229 987 8 55 6765 2178309 121393 317811 46368 4181 1 832040 2 28657 75025 34 13 17711

记录在达芬奇窗台口的神秘数字串:

36968853882116725547342176952286

分析发现神秘数字串为32位,数字列也有32个数字,而flag也为一串32位10进制字符串。猜测神秘数字串可能为密文c,且和数字列存在一一映射的关系。

熟悉斐波那契数列的老哥就会发现,这32个数字包含了1 1 2 3 5 8 13 ......

写个脚本将斐波那契数列打印出来

def fib_loop_for(n):a, b = 0, 1for _ in range(n):a, b = b, a + breturn afor i in range(1,33):print(fib_loop_for(i))

1 1 2 3 5 8 13 21 34 55 89 144 233 377 610 987 1597 2584 4181 6765 10946 17711 28657 46368 75025 121393 196418 317811 514229 832040 1346269 21783091 233 3 2584 1346269 144 5 196418 21 1597 610 377 10946 89 514229 987 8 55 6765 2178309 121393 317811 46368 4181 1 832040 2 28657 75025 34 13 17711 c="36968853882116725547342176952286"

对比发现,数字列的确为斐波那契数列的变形。

那么flag应该就是根据斐波那契数列变形而变形的。我们只需要将其逆转就可以了。

0位的1就在斐波那契数列第0位,所以3的位置不变,还在第0位。

1位的233的位置在斐波那契数列第12位,所以6应该移到第12位。

我们需要从数字列中挨个取出数字,查询其在斐波那契数列中的位置,将密文c对应位置的数字,移到相应的位置即可。

附上python脚本:

def fib_loop_for(n):a, b = 0, 1for _ in range(n):a, b = b, a + breturn akey="1 233 3 2584 1346269 144 5 196418 21 1597 610 377 10946 89 514229 987 8 55 6765 2178309 121393 317811 46368 4181 1 832040 2 28657 75025 34 13 17711".split(" ")dic=[]c="36968853882116725547342176952286"m="*"*32m=list(m)for i in range(1,33):print(fib_loop_for(i),end=" ")dic.append(fib_loop_for(i))print(dic)for i in range(32):index = dic.index(int(key[i]))print(i,index,c[i])m[index]=c[i]print("".join(m))#7*995588256861228614165223347687#flag:37995588256861228614165223347687

注意数字列中的第2个1在第24位,由于string.index()函数在查询下标的时候,会从右往左查询,故而第24位的1所对应的数字7,覆盖了第0个位置的1所对应的数字3。所以第1个位置没有数字,还是*。所以得到两种结果,因为不确定到底那个1所对应的数字是3。

#73995588256861228614165223347687#37995588256861228614165223347687

如果觉得《达芬奇密码--buuctf密码学》对你有帮助,请点赞、收藏,并留下你的观点哦!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。