2024西湖论剑初赛部分wp
字数 1189 2025-08-22 12:23:12

2024西湖论剑初赛Crypto题目解析与解题思路

6-1 MatrixRSA

题目概述

这是一个基于矩阵的RSA加密系统变种,给出了p的高位,需要使用coppersmith方法求出完整的p。

相关知识

根据提供的论文《Matrix Modification of RSA Public Key Cryptosystem and its Variant》,矩阵RSA的φ函数与传统RSA不同:

对于h×h维的矩阵,φ函数变为:

g = (p^h-1)(p^{h}-p)...(p^h-p^{h-1})*(q^h-1)(q^{h}-q)...(q^h-q^{h-1})

本题中h=3。

解题步骤

  1. 使用coppersmith方法从p的高位恢复完整的p
  2. 计算矩阵RSA特有的φ函数值
  3. 使用常规RSA解密方法进行解密

6-3 已悟

题目结构

题目分为两部分:

第一部分 (choice=2)

  • 需要输入license keylicense
  • license key固定时,RicKV生成的subkeysroundkey是固定的
  • RicKV.flip()对相同数据的处理结果一致
解题思路
  1. license_key = "00"
  2. 第一组license = b"\x00"*8,计算l0 = RicKV.flip(b"\x00"*8)
  3. 第二组license = l0,经过处理后它会变回b"\x00"*8
  4. 这样操作后会返回True

第二部分 (choice=1)

  • login函数进行性能分析
  • profiler.get_stats().timings返回(函数行数,执行次数,开销)元组
  • 如果pro=False,会隐藏执行次数
解题思路
  1. 通过输入不同长度的数据,观察hacker pro的长度
    • 正确长度会使hacker pro的长度不为2(因为只会执行两行)
  2. 爆破可见字符并填充到正确长度
    • 观察hacker pro中第四或第五元素的执行次数
    • 执行次数增加的字符即为正确字符

预制菜题目

相关技术

参考论文《SNOW3G与ZUC流密码的猜测决定攻击》

8-2 DSASignatureData

解题步骤

  1. 从流量中筛选含有userid的数据流
  2. 服务器成功接收用户信息后会返回"您发送的数据已接收!"
  3. 编写DSA验证签名函数
  4. 按顺序处理流量中的数据流:
    • 服务器成功接收的数据保存并更新到字典中
    • 与签名数据进行验签
    • 不成功的输入保存到文件中

关键点

  • 需要正确实现DSA签名验证算法
  • 按顺序处理数据流很重要
  • 该方法可以达到100%正确率

附件请求

原文作者请求其他题目的附件(PWN和IoT部分),发送到邮箱3156063554@qq.com。

总结

本文档详细解析了2024西湖论剑初赛中的几个Crypto题目,包括MatrixRSA、已悟和DSA签名验证等题目的解题思路和关键技术点。对于每道题目,都提供了清晰的解题步骤和关键知识点,可以作为类似题目的参考解法。

2024西湖论剑初赛Crypto题目解析与解题思路 6-1 MatrixRSA 题目概述 这是一个基于矩阵的RSA加密系统变种,给出了p的高位,需要使用coppersmith方法求出完整的p。 相关知识 根据提供的论文《Matrix Modification of RSA Public Key Cryptosystem and its Variant》,矩阵RSA的φ函数与传统RSA不同: 对于h×h维的矩阵,φ函数变为: 本题中h=3。 解题步骤 使用coppersmith方法从p的高位恢复完整的p 计算矩阵RSA特有的φ函数值 使用常规RSA解密方法进行解密 6-3 已悟 题目结构 题目分为两部分: 第一部分 (choice=2) 需要输入 license key 和 license 当 license key 固定时, RicKV 生成的 subkeys 和 roundkey 是固定的 RicKV.flip() 对相同数据的处理结果一致 解题思路 设 license_key = "00" 第一组 license = b"\x00"*8 ,计算 l0 = RicKV.flip(b"\x00"*8) 第二组 license = l0 ,经过处理后它会变回 b"\x00"*8 这样操作后会返回True 第二部分 (choice=1) 对 login 函数进行性能分析 profiler.get_stats().timings 返回 (函数行数,执行次数,开销) 元组 如果 pro=False ,会隐藏执行次数 解题思路 通过输入不同长度的数据,观察 hacker pro 的长度 正确长度会使 hacker pro 的长度不为2(因为只会执行两行) 爆破可见字符并填充到正确长度 观察 hacker pro 中第四或第五元素的执行次数 执行次数增加的字符即为正确字符 预制菜题目 相关技术 参考论文《SNOW3G与ZUC流密码的猜测决定攻击》 8-2 DSASignatureData 解题步骤 从流量中筛选含有 userid 的数据流 服务器成功接收用户信息后会返回"您发送的数据已接收 !" 编写DSA验证签名函数 按顺序处理流量中的数据流: 服务器成功接收的数据保存并更新到字典中 与签名数据进行验签 不成功的输入保存到文件中 关键点 需要正确实现DSA签名验证算法 按顺序处理数据流很重要 该方法可以达到100%正确率 附件请求 原文作者请求其他题目的附件(PWN和IoT部分),发送到邮箱3156063554@qq.com。 总结 本文档详细解析了2024西湖论剑初赛中的几个Crypto题目,包括MatrixRSA、已悟和DSA签名验证等题目的解题思路和关键技术点。对于每道题目,都提供了清晰的解题步骤和关键知识点,可以作为类似题目的参考解法。