密码学-->rand rsa

本文探讨了一个涉及RSA加密的挑战,其中base的生成基于随机数,但存在一定的范围。通过分析素数生成规则,可以遍历可能的素数来分解n。然而,由于e和phi有公约数,常规解密方法失败。解决方案是计算e和phi的最大公约数,调整解密步骤。目前作者遇到了开方运算的难题,尚未找到完整解题路径。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

密码学rand-rsa

忘记哪里搞来一个rsa题目:

from os import urandom
from gmpy2 import next_prime
from random import randint
from functools import reduce
from Crypto.Util.number import bytes_to_long
from secret import flag

assert flag[:4] == b'flag'

def padding(m, length):
    return m + urandom((length >> 3) - len(m))

def generate_p(base):
    return next_prime(base + randint(1, 500000))

def generate_e():
    return reduce(lambda x, y: x * y, [randint(1, 100) for _ in range(randint(2
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值