2020-网鼎杯部分writup-3

本文深入探讨了三种不同的密码学挑战,包括仿射编码、RSA加密和LFSR算法的破解。通过数学运算和编程技巧,文章详细展示了如何解决这些密码学难题,提供了具体的代码实现和算法思路。

1.simple

根据下载题目提示,这可能是一个仿射编码,根据仿射密码求解

import gmpy2
miwen="kgws{m8u8cm65-ue9k-44k5-8361-we225m76eeww}"
minwen=""
k=8
b=22

for i in miwen:
    if ord(i)>=ord('a') and ord(i)<=ord('z'):
        miwenint=ord(i)-ord('a')
        for j in xrange(26):
            if pow(123456*j+321564,1,26)==miwenint:
                minwen=minwen+chr(ord('a')+j)
                break
    else:
        minwen=minwen+i
print minwen

2.RUA

根据下载题目名称提示这是一个RSA加密,题目中给了三组,所以我们猜测使用中国剩余定理组合成一组式子。然后爆破e。

import gmpy2
def crt(ll):
    N=1
    for i in ll:
        N=N*i[1]
    su=0
    for i in ll:
        Mi=N/i[1]
        Miphi=gmpy2.invert(Mi,i[1])
        su=(su+Mi*Miphi*i[0])%N
    return (su,N)
c1=80246672933100191996608551744360551443480105561393008869907671453199197333698372068490702079554173569572543318392039145255195045625951174229551403195520133055320689033241323091094841067200456137147166276203184710481952322096722129702695697906771444505013052896707835729192829097967651242422871087171897506627402838139812429186714728931264947961408774125023650371876599050341939016335163602089877313225999746126029458664777523400807832962683960445328835484230454715653568107535996188109643176903958982636981235058760523044697691533740384034910842858369520349509780
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值