#P12603. RuShiA

RuShiA

Description

本题为提交答案题

密文已经下发,请在附件中下载。一共有 99 批密文。请自行尝试解密这些密文。

一批密文内可能含多组 nncc。若无特殊说明,e=65537e=65537

解密出来的 mm 请转化为字符串。转化方式为:将 mm 标识为 16 进制字符串,按字节转化为 ASCII 编码,得到信息。信息中包含了 flag——你不需要提交整条信息,只需要提交该 flag。

flag 会用花括号包围起来,例如:This is your flag: {wxyz9876}。则 flag 是 wxyz9876

例如,m=581758585144958727177341m=581758585144958727177341,转化为十六进制为 7b31323334414243447d\texttt{7b31323334414243447d},按字节转化为 ASCII 编码后得到消息 {1234ABCD},则你需要提交 1234ABCD 作为答案。

Input Format

一个整数 nn 表示密文批次编号,从 1199

Output Format

一行,包含一条字符串,对应批次解密得到的 flag。

Hint

Subtask 编号 特殊性质 密文组数 分值
1 1 5
2 p>10298×qp>10^{298}\times q
3 ppqq 差值小于 10310^3 10
4 p1=p2p_1=p_2 2
5 e=3e=3 1
6 e1=65537e_1=65537e2=70001e_2=70001m1=m2m_1=m_2 2 15
7 e1=e2=e3=3e_1=e_2=e_3=3m1=m2=m3m_1=m_2=m_3 3
8 提供 a=(p+2)(q+2)a=(p+2)(q+2) 1
9

如果你使用 Python,那么下面这些可能可以帮助你:

  • Python 自带函数 pow(x, a, p),计算 xamodpx^a \bmod p
  • dd 的计算可以参考如下代码(需要 primefac 包):
from primefac import modinv
p = ...
q = ...
e = ...
r = (p - 1) * (q - 1)
d = modinv(e, r) % r