Hgame-2023-note

WEEK1
RSA
TASK:
1 | from Crypto.Util.number import * |
WP:
直接分解N,求解
1 | #HGAME-RSA |
flag: hgame{factordb.com_is_strong!}
MORSE+
Task:
学校突然放假了,tr0uble正在开开心心的收拾东西准备回家,但是手机铃声突然响起,tr0uble接起电话,但是只听到滴答滴答的声音。努力学习密码学的tr0uble一听就知道这是什么,于是马上记录下来并花了亿点时间成功破译了,但是怎么看这都不像是人能看懂的,还没等tr0uble反应过来,又一通电话打来,依然是滴答滴答的声音。tr0uble想到兔兔也在学习密码学,于是不负责任地把密文都交给了兔兔,兔兔收到密文后随便看了一眼就不屑地说”这么简单都不会?自己解去,别耽误我抢车票”。
Encrypted_message:
5Yeg5Liq5pif5pyf5YmN77yM5oiR5Lus5pS25Yiw5LiA5Liq56We56eY55qE5raI5oGv44CC5L2G5piv6L+Z5Liq5raI5oGv6KKr6YeN6YeN5Yqg5a+G77yM5oiR5Lus5LiN55+l6YGT5a6D55qE55yf5q2j5ZCr5LmJ5piv5LuA5LmI44CC5ZSv5LiA55+l6YGT55qE5L+h5oGv5piv5YWz5LqO5a+G6ZKl55qE77ya4oCc5Y+q5pyJ5YCS552A57+76L+H5Y2B5YWr5bGC55qE56+x56yG5omN6IO95oq16L6+5YyX5qyn56We6K+d55qE57uI54K54oCd44CC
base64解密后得到:
几个星期前,我们收到一个神秘的消息。但是这个消息被重重加密,我们不知道它的真正含义是什么。唯一知道的信息是关于密钥的:“只有倒着翻过十八层的篱笆才能抵达北欧神话的终点”。
使用Audacity解析Morse得到加密信息:
0223e_priibly__honwa_jmgh_fgkcqaoqtmfr
逆序:
rfmtqoaqckgf_hgmj_awnoh__ylbiirp_e3220
W型栅栏密码:
1 | def generate_w(string, n): |
最后维吉尼亚密码解密:
Key: vidar
x def phase5(n1, c1, n2, c2, n3, c3): r = CRT([c1, c2, c3], [n1, n2, n3]) m = int(r)^(1/3) print(hex(m)[2:]) n1 = 78642188663937191491235684351005990853149481644703243255021321296087539054265733392095095639539412823093600710316645130404423641473150336492175402885270861906530337207734106926328737198871118125840680572148601743121884788919989184318198417654263598170932154428514561079675550090698019678767738203477097731989c1 = 23419685303892339080979695469481275906709035609088426118328601771163101123641599051556995351678670765521269546319724616458499631461037359417701720430452076029312714313804716888119910334476982840024696320503747736428099717113471541651211596481005191146454458591558743268791485623924245960696651150688621664860n2 = 98174485544103863705821086588292917749386955237408645745685476234349659452606822650329076955303471252833860010724515777826660887118742978051231030080666542833950748806944312437614585352818344599399156268450521239843157288915059003487783576003027303399985723834248634230998110618288843582573006048070816520647c2 = 72080679612442543693944655041130370753964497034378634203383617624269927191363529233872659451561571441107920350406295389613006330637565645758727103723546610079332161151567096389071050158035757745766399510575237344950873632114050632573903701015749830874081198250578516967517980592506626547273178363503100507676n3 = 91638855323231795590642755267985988356764327384001022396221901964430032527111968159623063760057482761918901490239790230176524505469897183382928646349163030620342744192731246392941227433195249399795012672172947919435254998997253131826888070173526892674308708289629739522194864912899817994807268945141349669311c3 = 22149989692509889061584875630258740744292355239822482581889060656197919681655781672277545701325284646570773490123892626601106871432216449814891757715588851851459306683123591338089745675044763551335899599807235257516935037356212345033087798267959242561085752109746935300735969972249665700075907145744305255616phase5(n1,c1,n2,c2,n3,c3)# 464c41477b325e3872736138633566336366663462633039353334396665633635666332323633653837387dpython
Stream Cipher
Task:
很喜欢李小龙先生的一句话”Be water my friend”,但是这条小溪的水好像太多了。
1 | from flag import flag |
wp:
参考官方wp: 这道题给了⼤家⼀个跑不出来的程序,需要优化程序得到flag。优化⽅法还挺多的,预期是⽤矩阵快速幂的⽅法。
回到本题,根据递归函数可以得到stream的递推式 S[ i ] = 4 ∗ S [ i − 1] + 7 ∗ S [ i − 2]
类似于斐波那契数列,只不过增加了系数。 考虑⽤斐波那契矩阵和矩阵快速幂优化
1 | enc = b'\x1a\x15\x05\t\x17\t\xf5\xa2-\x06\xec\xed\x01-\xc7\xcc2\x1eXA\x1c\x157[\x06\x13/!-\x0b\xd4\x91-\x06\x8b\xd4-\x1e+*\x15-pm\x1f\x17\x1bY' |
1 | from flag import flag #flag未知 |
- Title: Hgame-2023-note
- Author: jrl
- Created at: 2023-01-17 19:16:36
- Updated at: 2023-10-05 19:31:06
- Link: https://jrl777.github.io/2023/01/17/Hgame-2023-note/
- License: This work is licensed under CC BY-NC-SA 4.0.