第二届 N1CTF Junior Crypto-junior RSA WP

题目:

from Crypto.Util.number import *
from secret import flag

m = bytes_to_long(flag)

def gen(bits):
    while True:
        a = getPrime(bits)
        b = getPrime(bits)
        c = getPrime(bits)
        p = (a << (2*bits)) + (b << bits) + c
        q = (c << (2*bits)) + (a << bits) + b
        if isPrime(p) and isPrime(q):
            break
    n = p * q
    e = 65537 * a * b * c
    return n, e

n, e = gen(256)
enc = pow(m, e, n)
print(f'n = {
   n}')
print(f'e = {
   e}')
print(f'enc = {
   enc}')

"""
n = 1224562468550864572988516321107388462006452125881847529675226398144888628055678744854491489016309262856785169494723943649344959507818155642772331582922466943539371681776924160647697558836379614689120727659593775446187326222964118917872973684996317614900715927751822277949264379149585370840318817143291878609357893969588131470982041272505875501444442064552286330626234504767040724907034678080283717062342383737341651784574675215207283219694413200065153603535550259
e = 47356701171507751941853094934330097161634963503549196148254287987823089762869775349307331223083118848869825102126184149696632299476124764277876323238594318983922914255635452587035212905468593961720866809724369270149104325019013500377581
enc = 307839781648837102719329833689146078918113606357673952357833605392673923316706392387378621203382529480917019155723632239435123748698548640308486267420983085309284306889248702165586731118889200017606360233948688879034822132551452439147516062116990766999765714755923073387252339782026780490661436777023426366620269445376047876173655782230659201893151372247389482285331969025687842851498151565880029377050013378302485301558801016888957357366922840214729734193614497
"""

factor.db 分解e
得到一个质数和一个未分解合数
在这里插入图片描述

将该质数mod 2^256后发现与n mod2^256结果相等,得知分解出的质数为a
Python构造多项式
在这里插入图片描述
得到b,c的值
在这里插入图片描述
此时按照rsa流程正常求解即可

相关推荐

  1. (n - 1) & hash 为什么等于hash % n

    2024-02-08 22:06:01       37 阅读
  2. nn相加求和,从1~n,金币】

    2024-02-08 22:06:01       32 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-02-08 22:06:01       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-02-08 22:06:01       100 阅读
  3. 在Django里面运行非项目文件

    2024-02-08 22:06:01       82 阅读
  4. Python语言-面向对象

    2024-02-08 22:06:01       91 阅读

热门阅读

  1. TCP和UDP相关问题(重点)(3)——3.HTTP基于TCP还是UDP?

    2024-02-08 22:06:01       55 阅读
  2. 如何制作一款3D FPS游戏

    2024-02-08 22:06:01       55 阅读
  3. 什么是jieba?

    2024-02-08 22:06:01       80 阅读
  4. SQL世界之命令语句Ⅱ

    2024-02-08 22:06:01       48 阅读
  5. Mybatis源码解析之——数据源池化技术(二)

    2024-02-08 22:06:01       44 阅读
  6. 系统架构评估

    2024-02-08 22:06:01       50 阅读
  7. c++ 子进程交互 逻辑

    2024-02-08 22:06:01       56 阅读
  8. dockerfile 详细讲解

    2024-02-08 22:06:01       49 阅读
  9. redis加锁实现方式

    2024-02-08 22:06:01       58 阅读