2020新基建决赛-crypto-onepiece

news2024/10/7 20:31:10

onepiece

一、概要

1、标题:onepiece
2、关键字:e=2,rabin,凯撒
3、比赛:2020新基建决赛
4、工具:python,米斯特工具

二、开始

1、题目分析

题目给了一个pubkey.pem和onepiece.enc,考虑通过pem解析出n后再进行下一步处理,走一步算一步吧。

2、开始解题

第一步:python解析pem得到n

import gmpy2
import string
from Crypto.PublicKey import RSA
# 读取公钥参数 
with open('pubkey.pem', 'r') as f:
    key = RSA.importKey(f)
    N = key.n
    e = key.e
    print N   
    print e

得到

n=87924348264132406875276140514499937145050893665602592992418171647042491658461
e=2

第二步:分解n

惊喜的发现e=2,rabin大概率能成功。
用yafu分解n得到p、q

yafu-x64.exe factor(87924348264132406875276140514499937145050893665602592992418171647042491658461)

得到

P39 = 275127860351348928173285174381581152299
P39 = 319576316814478949870590164193048041239

yafu分解结果

到此为止顺利。

第三步:上rabin

直接上脚本就行了。

#!/usr/bin/python 
# coding=utf-8 
# 适合e=2
import gmpy2
import string
from Crypto.PublicKey import RSA
# 读取公钥参数 
with open('pubkey.pem', 'r') as f:
    key = RSA.importKey(f)
    N = key.n
    e = key.e
    print N  
    print e
p = 275127860351348928173285174381581152299
q = 319576316814478949870590164193048041239
with open('onepiece.enc', 'r') as f:
    cipher = f.read().encode('hex')
    cipher = string.atoi(cipher, base=16)
    # print cipher # 计算yp和yq 
yp = gmpy2.invert(p,q)
yq = gmpy2.invert(q,p)
# 计算mp和mq 
mp = pow(cipher, (p + 1) / 4, p)
mq = pow(cipher, (q + 1) / 4, q)
# 计算a,b,c,d 
a = (yp * p * mq + yq * q * mp) % N
b = N - int(a)
c = (yp * p * mq - yq * q * mp) % N
d = N - int(c)
for i in (a,b,c,d):
    s = '%x' % i
    if len(s) % 2 != 0:
        s = '0' + s
    print s.decode('hex')

得到
rabin结果

synt{I0vpr_0s_Z1ar}

第四步:凯撒

ctf菜鸡都能看出来synt就是flag凯撒后的。上米斯特工具凯撒跑起来,就得到了答案
凯撒结果

get-flag

flag{V0ice_0f_M1ne}

P.S:
相对于其他题和决赛这个名头,这题我觉得对于大佬们来说才是签到题吧?

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/679401.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

C++右值引用 移动语义 完美转发 引用叠加

右值引用 MyString浅拷贝与深拷贝浅赋值与深赋值 左值与右值左值概念左值右值与函数的结合移动构造函数移动赋值函数移动构造和移动赋值的应用 移动语义 有点问题完美转发引用叠加 MyString 浅拷贝与深拷贝 s1先在堆区申请了空间,然后将p指针指向的字符串复制到该…

设计模式之责任链模式笔记

设计模式之责任链模式笔记 说明Chain of Responsibility(责任链)目录责任链模式示例类图请假条类抽象处理者类小组长类部门经理类总经理类测试类 说明 记录下学习设计模式-责任链模式的写法。JDK使用版本为1.8版本。 Chain of Responsibility(责任链) 意图:使多个对象都有机…

Vue搜索组件,显示热门、近期搜索(结合element ui)

🚀 注重版权,转载请注明原作者和原文链接 🥭 作者:全栈小袁 🍎 原创个人开源博客项目(目前V3.0版本):https://github.com/yuanprogrammer/xiaoyuanboke 🍉 开源项目觉得还行的话点点star&#x…

【P4】Windows 下搭建 DVWA 及命令注入漏洞详解

文章目录 一、Windows 下搭建 DVWA1.1、DVWA 靶场搭建1.2、六步快速搭建 DVWA1.2.1、下载并安装 PHPstudy:http://public.xp.cn/upgrades/PhpStudy2018.zip1.2.2、将解压后的 DVWA 原代码放置 phpstudy 安装目录的 WWW文件夹1.2.3、进入 DVWA/config 目录&#xff0…

2022前端趋势报告(下)

前端博主,热衷各种前端向的骚操作,经常想到哪就写到哪,如果有感兴趣的技术和前端效果可以留言~博主看到后会去代替大家踩坑的~ 主页: oliver尹的主页 格言: 跌倒了爬起来就好~ 一、前言 本文内容来自于《St…

springBoot学习——spring+springMVC 集成mybatis 拦截器

目录 引出入门案例:登陆和注册 & 用户信息分页 之 固定的步骤:(1)建普通项目配置pom.xml文件(2)写主启动类 application.yml文件【bug】pom.xml文件导了mybatis的包,但是application.yml文…

Drag Your GAN论文解读,基于点的交互式操作拖动到生成图像[DragGAN]

只需要鼠标的点击就可以自动修图的产品,火爆问世,可以说是超越PS,神一般的存在了,而且没有门槛,对于普通大众来说直接可以上手使用,这个是PS完全不具备的。更关键的是,这款产品跟PS明显区别在于…

如何系统地自学 Python?

💂 个人网站:【海拥】【游戏大全】【神级源码资源网】🤟 前端学习课程:👉【28个案例趣学前端】【400个JS面试题】💅 寻找学习交流、摸鱼划水的小伙伴,请点击【摸鱼学习交流群】 目录 前言为什么选择Python作…

【Intel 黑客松大赛】基于YOLO的杂草-农作物检测分类系统

目录 一、赛题简介:计算机视觉挑战——检测并清除杂草二、基于YOLO的杂草-农作物检测分类2.1、YOLO简介2.2、基于YOLO的杂草-农作物检测分类解决方案 三、基于YOLO的杂草-农作物检测分类系统设计3.1、基于flask框架的demo应用程序后端3.2、基于Vue框架的demo应用程序…

Qt6.2教程——4.QT常用控件QPushButton

一,QPushButton简介 QPushButton是Qt框架中的一种基本控件,它是用户界面中最常见和最常用的控件之一。QPushButton提供了一个可点击的按钮,用户可以通过点击按钮来触发特定的应用程序操作。比如,你可能会在一个对话框中看到"…

Unity编辑器扩展-第七集-应用键/显示提示词

第六集链接:Unity编辑器扩展-第六集-创建窗口/批量填图_菌菌巧乐兹的博客-CSDN博客 一、本节目标效果展示 1.我们有时候需要多次使用编辑窗口,但是每次一点执行,就关掉了,就很烦,所以我们希望,点击按钮&…

Spring Bean的实例化过程

一、前言 对于写Java的程序员来说,Spring已经成为了目前最流行的第三方开源框架之一,在我们充分享受Spring IOC容器带来的红利的同时,我们也应该考虑一下Spring这个大工厂是如何将一个个的Bean生产出来的,本期我们就一起来讨论一…

2023年6月GESP能力等级认证Python一级真题

2023-06 GESP等级考Python一级真题 题数:27 分数:100 测试时长:90min 一、单选题(每题 2 分,共 30 分) 1. 以下不属于计算机输出设备的有( A)。(2分) A…

几个Arcpy代码应用案例

1 案例一 删除特定记录 使用 arcpy 从 ArcGIS 中的图层中删除特定记录。可以使用更新游标(UpdateSursor)和 SQL 查询来识别和删除所需的记录。以下是如何删除特定图层记录的示例 import arcpy selectedParcelsselectedParcels expres…

分子碰撞频率和自由程------从一个物理小问题解剖自己的数学思维

物理学12-8节中,关于分子平均碰撞的解说如下: (一)分子碰撞自由程公式 第一个公式中,lamda v / z中,v的单位是m/s, z的单位是A/s, 其中A是常数。那么lamda描述的结果是m/A, 这正是长度单位。 此公式lamda…

利用正弦定理证明两角和差公式

首先用正弦定理,证明sin(AB)sinAcosBcosAsinB。 另外,其它的两角和差公式,都可以用三角函数奇偶性、诱导公式等推导出来,无需再用正弦定理证明一遍。

耗时一个月!手撸博客系统,主打美观实用!

先附上博客链接RoCBlog 关于博客 关于博客 RoCBlog 完成耗时:20天 起初是想搭建自己的博客,看了网上许多开源框架,感觉没啥意思,于是决定自己写一套 纯手撸VueSpringboot 其实是个我一边学vue一边写出来的东西,前期…

团体程序设计天梯赛-练习集L1篇⑩

🚀欢迎来到本文🚀 🍉个人简介:Hello大家好呀,我是陈童学,一个与你一样正在慢慢前行的普通人。 🏀个人主页:陈童学哦CSDN 💡所属专栏:PTA 🎁希望各…

(贪心) 1221. 分割平衡字符串 ——【Leetcode每日一题】

❓ 1221. 分割平衡字符串 难度:简单 平衡字符串 中,L 和 R 字符的数量是相同的。 给你一个平衡字符串 s,请你将它分割成尽可能多的子字符串,并满足: 每个子字符串都是平衡字符串。 返回可以通过分割得到的平衡字符…

【JAVA反序列化】序列化与反序列化Java反射URLDNS链

文章目录 原生序列化与反序列化概述为什么需要序列化和反序列化?应用场景(涉及到将对象转换成二进制,序列化保证了能够成功读取到保存的对象)涉及的协议好处为什么会产生反序列化漏洞?可能反序列化的形式?代码演示 Java反射基础补…