CTF Crypto解题分析

步骤

步骤 1:信息提取

  • 目标:从题目描述或文件中提取相关信息,如加密算法、已知参数和目标。
  • 适配方式
    • 提取 pq 的部分已知数字,以及模数 n=p⋅qn = p \cdot qn=p⋅q。
    • 读取 output.txt 中的加密结果。
    • 读取 source.py 提供的加密逻辑。
  • 工具示例
    • extract_rsa_parameters:从文件中提取 RSA 参数和加密数据。
    • parse_source_code:分析加密逻辑并记录关键点。

步骤 2:问题建模

  • 目标:将问题建模为一个数学解算问题。
  • 适配方式
    • 定义 n=p⋅qn = p \cdot qn=p⋅q 和部分 p,qp, qp,q 的数字组合约束。
    • 结合爆破算法,生成可能的 p,qp, qp,q 候选值。
  • 工具示例
    • model_rsa_problem:将部分已知的 p,qp, qp,q 转化为约束求解模型。

步骤 3:解算核心问题

  • 目标:恢复完整的 p,qp, qp,q。
  • 适配方式
    • 基于部分已知数字和 nnn,暴力枚举可能的 p,qp, qp,q。
    • 验证 p⋅q=np \cdot q = np⋅q=n 是否成立。
  • 工具示例
    • solve_rsa_primes:使用约束求解库(如 z3sympy)恢复 p,qp, qp,q。

步骤 4:结构复原

  • 目标:通过完整的 p,qp, qp,q 计算私钥 ddd。
  • 适配方式
    • 计算 ϕ(n)=(p−1)(q−1)\phi(n) = (p-1)(q-1)ϕ(n)=(p−1)(q−1)。
    • 通过 e⋅d≡1mod  ϕ(n)e \cdot d \equiv 1 \mod \phi(n)e⋅d≡1modϕ(n) 计算私钥指数 ddd。
  • 工具示例
    • reconstruct_private_key:用 RSA 数学公式生成私钥。

步骤 5:验证并完成任务

  • 目标:使用私钥解密密文并找到 Flag。
  • 适配方式
    • 使用 RSA 库(如 Crypto.PublicKey.RSACrypto.Cipher.PKCS1_OAEP)解密密文。
    • 验证解密结果是否包含目标 Flag。
  • 工具示例
    • decrypt_rsa_flag:加载私钥并解密密文。
    • verify_flag:检查解密结果是否符合 Flag 格式。

[Very Easy] Dynastic✅

给定由加密代码输出的文本,根据代码倒推文本得到flag

[Very Easy] Primary Knowledge✅

利用了一个特殊的RSA生成过程,其中n是单个大素数,而非通常的两个素数的乘积,这使得解密只需要计算模反运算即可

[Medium] Partial Tenacity❌

恢复p和q后,根据公式计算私钥d,然后解密密文ct,最后复原flag

[Hard] Permuted❌

解决这一挑战的关键是理解和利用置换群的性质,特别是这些群中的离散对数问题(DLP)的应用

解决方案包括以下步骤:

  1. 首先根据给定的输出重构置换g、A、B,然后采用基于置换群DLP的密码学攻击策略来解密标志位。这涉及到将排列分解为不相交的环,并使用这些环使用中国剩余定理来计算指数。
  2. 然后,使用确定的指数a计算并验证用于生成AES加密密钥的共享密钥。
  3. 最后,使用导出的密钥解密aes加密的消息,以揭示隐藏的标志

skilift✅

这个技巧挑战是由一个加密密钥锁定的,包括一个硬件描述语言文件,暗示了密钥生成过程涉及位操作和
对十六进制值进行算术计算。通过对这些操作进行逆向工程,我们可以做到取回钥匙,打开技能,揭示旗帜


不准投币喔 👆

暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇