首页 > 其他分享 >NSSCTF--Crypto--[FSCTF 2023]ezmath

NSSCTF--Crypto--[FSCTF 2023]ezmath

时间:2024-12-24 15:34:50浏览次数:3  
标签:modp hint -- pow Crypto 2023 Longrightarrow modn

[FSCTF 2023]ezmath

task:

import libnum
from Crypto.Util.number import *
from secret import flag
m = libnum.s2n(flag)
e = 65537
p = getPrime(1024)
q = getPrime(1024)
n = p * q
c = pow(m, e, n)
hint = pow(2022 * p + 2023, q, n)
print(f'n={n}')
print(f'c={c}')
print(f'hint={hint}')
'''
n=16099847254382387482323197733210572595987701766995679577427964142162383113660616883997429365200200943640950821711084123429306946305893862414506257284441114840863787499898478803568113348661314216300658606282276936902117099898776435948501831796770856505782683585268617613575681655903107683069260253287994894440427511440504754827820494060133773435262418256886443037510658584541624614692050308222516337333585823733360631982795323752298740497235142977602602205292595197618229629610834651923388269194546316023246525302500676142502931303976146680655368617094100097945625676103639154884247373003120937959132698199043562660573
c=7980021929208497878634194663038470941705554065040985666635317762877799614984808729636911256912639929083920319066806111423231500122646366713245534616522235309310234767331344216892929739448126523171652425415458999098138841038319673380331281114806318366697490343176758140150118761408250366783210772381316729932361601257318131085116265135718477224618689710966570938280408341402386000281564650565256635313406111364916715660419153433573586809503564050585204002594864254089288672391014804368427324162776953191520483774116807593366091685560902424782104761523067998300887293902330501335485075609216897135678017158187880996872
hint=14005608544369156893681352040163362072608754453657200460825561123439158535855236943525558717120672888372079069187756549797113560863313618058077150885401191613229507892570378437310964624470055767463556516869604496669085622244233154871165554916349033197798790982409986216498996673603605465039336316170130644317728786516639634775709400754328137266154981484016505702738584209800158047120647468364899692021253904198509376650238372552486792709682170146695759196408908825447960637667502907929061819408441663880712891979320089482801220225451560809151067631824526463122992973388740015878474372614751149918455457191739542980396
'''

analysis:

\[\begin{flalign} &已知hint≡(2022p+2023)^q(modn)\Longrightarrow hint≡2023^q+(2022p)^q+2023(2022p)^{q-1}+\cdots(modn)\\ &hint≡Kp+2023^q(modn)(K为p的系数)\Longrightarrow hint≡2023^q(modp)\Longrightarrow hint-2023^q=kp.\\ &p = GCD(hint-2023^q,n).接下来就是如何找到2023^q(modp),由费马小定理只2023^{p-1}≡1(modp).\\ &2023^q≡2023^{p+q-1}(modp)\Longrightarrow 2023^q≡2023^n(modp)≡2023^n(modn),因2023^{\varphi(n)}=2023^{n-(p+q-1)}≡1(modn)\Longrightarrow 2023^n≡2023^{p+q-1}(modn).\\ &p=GCD(n,2023^n\%n). \end{flalign} \]

exp:

# -*- coding: utf-8 -*-
# @Author  : chen_xing
# @Time    : 2024/12/24 上午12:03
# @File    : ezmath.py
# @Software: PyCharm
from Crypto.Util.number import *
n = 16099847254382387482323197733210572595987701766995679577427964142162383113660616883997429365200200943640950821711084123429306946305893862414506257284441114840863787499898478803568113348661314216300658606282276936902117099898776435948501831796770856505782683585268617613575681655903107683069260253287994894440427511440504754827820494060133773435262418256886443037510658584541624614692050308222516337333585823733360631982795323752298740497235142977602602205292595197618229629610834651923388269194546316023246525302500676142502931303976146680655368617094100097945625676103639154884247373003120937959132698199043562660573
c = 7980021929208497878634194663038470941705554065040985666635317762877799614984808729636911256912639929083920319066806111423231500122646366713245534616522235309310234767331344216892929739448126523171652425415458999098138841038319673380331281114806318366697490343176758140150118761408250366783210772381316729932361601257318131085116265135718477224618689710966570938280408341402386000281564650565256635313406111364916715660419153433573586809503564050585204002594864254089288672391014804368427324162776953191520483774116807593366091685560902424782104761523067998300887293902330501335485075609216897135678017158187880996872
hint = 14005608544369156893681352040163362072608754453657200460825561123439158535855236943525558717120672888372079069187756549797113560863313618058077150885401191613229507892570378437310964624470055767463556516869604496669085622244233154871165554916349033197798790982409986216498996673603605465039336316170130644317728786516639634775709400754328137266154981484016505702738584209800158047120647468364899692021253904198509376650238372552486792709682170146695759196408908825447960637667502907929061819408441663880712891979320089482801220225451560809151067631824526463122992973388740015878474372614751149918455457191739542980396
e = 65537
p = GCD(n,hint - pow(2023,n,n))
print(long_to_bytes(pow(c,inverse(e,(p-1)*(n//p-1)),n)))
# b'flag{ju3t_a_s1mpl3_ta3k} '

类似的题目还有一道2024源鲁杯Round1ezrsa.

标签:modp,hint,--,pow,Crypto,2023,Longrightarrow,modn
From: https://www.cnblogs.com/chen-xing-zzu/p/18627782

相关文章

  • 【杂谈】合理使用Kafka,防止消息丢失
    前言并非所有业务场景都要求消息绝对不丢失。对很多应用来说,为了追求更高的吞吐量,少量的消息丢失是可以容忍的。然而,在一些关键的业务场景中,确保消息不丢失至关重要。本文将重点讨论需要保证消息可靠性的场景,并提供相关的优化建议。消息丢失的场景消息丢失的场景可以归纳为三......
  • HNUST 1497 中国象棋中的跳马问题
    目录题目描述题意思路代码首先吐槽一下,oj的报错让我摸不清头脑。被一个点卡了快两个小时,这也是我写这份题解的原因,希望对你们有用。题目描述题目链接题目描述:现在棋盘的大小不一定,由p,q给出,并且在棋盘中将出现障碍物(限制马的行动,与象棋走法相同)输入描述:第一行输入n表示......
  • 如何挑选站群服务器,大带宽服务器,高防服务器
    构建网站是一项挑战,尤其是想要打造一个盈利的网站,更是需要深思熟虑。其中,服务器的选择对于网站的性能和未来发展具有决定性的影响。不同类型的网站,因其运营模式和用户需求的不同,对服务器的要求也各有侧重。那么,对于不同类型的网站,究竟该如何选择最适合的服务器呢?站群运营在当前......
  • Keys
    题目链接题意:求所有符合题目要求的真假钥匙的总数题解:先看数据范围N<=15,M<=100,数据不大,直接暴力枚举2^N种情况,然后对每组测试进行核验,当每组测试都通过时,这组数据符合要求。代码#include<bits/stdc++.h>usingnamespacestd;usingll=longlong;constintN=......
  • IDEA 2024.3.1.1完整的安装教程(附激活,常见问题处理)
    卸载老版本IDEA首先,如果小伙伴的电脑上有安装老版本的IDEA,需要将其彻底卸载掉,如下所示(没有安装则不用管,直接安装即可):TIP:如果你之前使用过本站提供的 激活到2025年版本脚本,需要执行对应卸载脚本/适用2024版本/JetBrains2023最新全家桶/jetbra/scripts/uninstall-a......
  • uniapp中组件的引用、组件之间数据的传递
    一、组件的引用1.首先有一个写好的组件cli-header.vue 目录为/pages/client/client-components/cli-header.vue2.在需要调用的页面编写代码<template><cliHeader/></template><script>importcliHeaderfrom'@/pages/client/client-components/cli-header.vu......
  • 基于springboot的国医大师医案推荐网站
    文章目录详细视频演示项目介绍技术介绍功能介绍核心代码系统效果图详细视频演示文章底部名片,获取项目的完整演示视频,免费解答技术疑问项目介绍  SpringBoot国医大师医案推荐网站,是以传承和弘扬中医药文化、助力中医临床学习与研究为宗旨搭建的专业知识平台。......
  • 微信支付、支付宝支付原生、接第三方教程
    微信支付  1.引入依赖 <!--微信支付V3目前新版本--><dependency><groupId>com.github.wechatpay-apiv3</groupId><artifactId>wechatpay-apache-httpclient</artifactId><version>0.4......
  • Anaconda使用教程
    conda基础命令检查当前环境名称:使用以下命令查看当前激活的虚拟环境:condaenvlist激活虚拟环境:切换到某个虚拟环境,使用:condaactivatebase退出当前环境:返回到base环境或退出当前环境:condadeactivate确认当前使用的Python解释器:如果需要进一步确认当前Python的解......
  • 五十二:HPACK中如何使用Huffman树编码?
    在HPACK中,Huffman树编码是一种核心的压缩机制,用于减少HTTP头部值的大小。通过为常用字符分配较短的编码,Huffman树可以显著提高数据传输的效率。本文将深入探讨HPACK中如何使用Huffman树编码来优化HTTP头部压缩。什么是Huffman编码?Huffman编码是一种可变长度的前缀编码算法,用......