BUUCTF(RSA1)

看到题目第一眼能想到的就是RSA算法了,然后百度RSA算法的原理和具体描述,emmm......发现不是很懂

RSA公开密钥密码体制的原理是:根据数论,寻求两个大素数比较简单,而将它们的乘积进行因式分解却极其困难,因此可以将乘积公开作为加密密钥 。

可以使用这个工具:RSA-Tool2 by tE     具体下载需要自己去百度找一下哈,我自己也是在学长给的工具包里找到的。。。其中Number Base为10,Public Exponent(E)为11,只是针对这一题,别的题目可能不一样。

还有一种方法就是用python写代码

def getEuler(prime1, prime2):
    return (prime1 - 1) * (prime2 - 1)

def getDkey(e, Eulervalue):  
    k = 1
    while True:
        if (((Eulervalue * k) + 1) % e) == 0:
            (d, m) = divmod(Eulervalue * k + 1, e)
            return d  
        k += 1
def Ming(c, d, n):
    return pow(c, d, n)

if __name__ == '__main__':
    p = 473398607161
    q = 4511491
    d = getDkey(17, getEuler(p, q))
    print('私钥为: %d' % d)

最后也可求出d

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值