从零开始学RSA: [WUSTCTF2020]情书等5题

1 [WUSTCTF2020]情书

题目

Premise: Enumerate the alphabet by 0、1、2、.....  、25
Using the RSA system 
Encryption:0156 0821 1616 0041 0140 2130 1616 0793
Public Key:2537 and 13
Private Key:2537 and 937flag: wctf2020{Decryption}

解题

前提:用0、1、2、……枚举字母表25
使用RSA系统
加密:0156 0821 1616 0041 0140 2130 1616 0793
公钥:2537和13
私钥:2537和937
import gmpy2
from Crypto.Cipher import PKCS1_OAEP
from Crypto.PublicKey import RSA
from Crypto.Util.number import long_to_bytes 
n = 2537
e = 13
d = 937
c = '0156 0821 1616 0041 0140 2130 1616 0793'.split(' ')p = 43
q = 59
phi = (q-1) * (p-1)
m=[]
for x in c:m.append(chr(int(gmpy2.powmod(int(x),d,n))+ord('a')))
print(''.join(m))

运行得到结果:iloveyou

答案
flag{iloveyou}

2 密码学的心声

l = [111,114,157,166,145,123,145,143,165,162,151,164,171,126,145,162,171,115,165,143,150]
res = ''
for i in l:i = str(i)res += chr(int(i,8))print(res)

flag{ILoveSecurityVeryMuch}

4 SameMod

共模攻击

{6266565720726907265997241358331585417095726146341989755538017122981360742813498401533594757088796536341941659691259323065631249,773}
{6266565720726907265997241358331585417095726146341989755538017122981360742813498401533594757088796536341941659691259323065631249,839}message1=3453520592723443935451151545245025864232388871721682326408915024349804062041976702364728660682912396903968193981131553111537349
message2=5672818026816293344070119332536629619457163570036305296869053532293105379690793386019065754465292867769521736414170803238309535
import gmpy2 as gpdef exgcd(a, b):if b==0:return 1, 0, ax2, y2, r = exgcd(b, a%b)x1 = y2y1 = x2-(a//b)*y2return x1, y1, rdef get_flag(string):flag=''i=0j=1while i < len(string):if int(string[i:i+j]) >= 33 and int(string[i:i+j]) <=126:flag+=chr(int(string[i:i+j]))i=i+jj=1else:j+=1print(flag)if __name__ == '__main__':e1=773e2=839n=6266565720726907265997241358331585417095726146341989755538017122981360742813498401533594757088796536341941659691259323065631249message1=3453520592723443935451151545245025864232388871721682326408915024349804062041976702364728660682912396903968193981131553111537349message2=5672818026816293344070119332536629619457163570036305296869053532293105379690793386019065754465292867769521736414170803238309535r1, r2, t = exgcd(e1, e2)m = gp.powmod(message1, r1, n) * gp.powmod(message2, r2, n) % nget_flag(str(m))

flag{whenwethinkitispossible}

5 not rsa


from Crypto.Util.number import getPrime as getprime ,long_to_bytes,bytes_to_long,inverse
from secret import flag,p,q
from sympy import isprime,nextprime
import randomm=bytes_to_long(flag)
n=p*q
g=n+1
r=random.randint(1,n)c=(pow(g,m,n*n)*pow(r,n,n*n))%(n*n)print "c=%d"%(c)
print "n=%d"%(n)'''
c=29088911054711509252215615231015162998042579425917914434962376243477176757448053722602422672251758332052330100944900171067962180230120924963561223495629695702541446456981441239486190458125750543542379899722558637306740763104274377031599875275807723323394379557227060332005571272240560453811389162371812183549
n=6401013954612445818165507289870580041358569258817613282142852881965884799988941535910939664068503367303343695466899335792545332690862283029809823423608093
'''
import gmpy2
c=29088911054711509252215615231015162998042579425917914434962376243477176757448053722602422672251758332052330100944900171067962180230120924963561223495629695702541446456981441239486190458125750543542379899722558637306740763104274377031599875275807723323394379557227060332005571272240560453811389162371812183549
n=6401013954612445818165507289870580041358569258817613282142852881965884799988941535910939664068503367303343695466899335792545332690862283029809823423608093
p= 80006336965345725157774618059504992841841040207998249416678435780577798937819
q = 80006336965345725157774618059504992841841040207998249416678435780577798937447
assert p*q==n
phi=(p-1)*(q-1)
c1=pow(c,phi,n*n)-1
c2=c1/n
m=(c2*gmpy2.invert(phi,n))%n
print hex(m)[2:].decode("hex")

flag{5785203dbe6e8fd8bdbab860f5718155

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

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

相关文章

IP路由:构建高效网络的基石

目录 前言 一. IP数据报交付 二. IP路由 1.IP路由器 2.IP路由表 3.特定主机路由与默认路由 4.路由解析 5.路由选择过程 三. 路由协议 1.静态路由与动态路由 2.内部网关协议与外部网关协议 3.距离向量路由协议和链路状态路由协议 四. RIP协议 1.概述 2.工作原理 3.报文格式 …

高效、精准:皮秒激光切割机在陶瓷基板加工中的应用

皮秒激光切割机&#xff08;激光划片机&#xff09;在陶瓷基板切割领域具有显著的优势和潜力&#xff0c;主要体现在以下几个方面&#xff1a; 1. 高精度&#xff1a;皮秒激光切割机能够实现极高的切割精度&#xff0c;对于陶瓷基板这种需要精细加工的材料尤为重要。它能够在不…

【网络原理】IP协议详解

一.与IP协议相关的基本概念 IP协议&#xff0c;即网际互连协议&#xff08;Internet Protocol&#xff09;&#xff0c;是TCP/IP体系中的核心网络层协议。 网络层IP协议解决的问题 数据传输的过程中,不是直接进行的传输,而是经过层层的封装和分用的过程才能到达对端. IP协议主…

springboot中多线程问题的优化和处理

自定义线程池,解决线程占满没有响应的问题 1、 首先进行创建配置类,通知bean容器进行创建线程池,对线程进行管理 Configuration EnableAsync public class ThreadPoolConfig {Bean(name "zpPool")public ThreadPoolExecutor zpPool() {return new ThreadPoolExecu…

13 【PS作图】人物绘画理论-脸型

三庭五眼 三庭&#xff1a;脸的长度比例 &#xff08;1&#xff09;发际线到眉毛 &#xff08;2&#xff09;眉毛到鼻底 &#xff08;3&#xff09;鼻底到下巴 三个部分大致为三等分 五眼&#xff1a;脸的宽度比例 以眼睛长度为单位&#xff0c;把脸的宽度分成五等分&#x…

day1Qt作业

#include "mywidget.h"MyWidget::MyWidget(QWidget *parent): QWidget(parent) {this->resize(540,415);//窗口大小this->setFixedSize(540,415);//固定窗口大小this->setWindowTitle("QQ");//标题this->setWindowIcon(QIcon("E:\\hqyjap…

Java构造器

构造器 无参构造器有参构造器构造方法VS成员方法总结 概念&#xff1a;也称构造方法、构造函数。作用是构造出来一个类的实例&#xff0c;确保对象得到初始化。 格式&#xff1a; 权限修饰符 类名(无参/有参){ }。 分类&#xff1a; 带参数&#xff1a;有参构造器不带参数&am…

大数据在互联网领域的“九大”应用

当下越来越多的应用涉及到大数据&#xff0c;而这些大数据的属性&#xff0c;包括数量&#xff0c;速度&#xff0c;多样性等等都呈现出大数据不断增长的复杂性&#xff0c;所以大数据的分析方法在大数据领域就显得尤为重要&#xff0c;目前互联网大数据运用的九大领域&#xf…

网络演进技术演进:裸纤专线、SDH、MSTP+、OTN、PTN、IP-RAN

前言 文章主要介绍常见名词以及其在各自领域实现的功能价值。 01 裸纤 裸光纤&#xff08;裸光纤&#xff09;由运营商提供&#xff0c;是无中继的光纤线路&#xff0c;仅通过配线架连接。相比传统光纤&#xff0c;裸光纤提供纯粹的物理传输路径&#xff0c;无需额外网…

优化百度SEO:蜘蛛池自动收录的秘诀(蜘蛛池秒收录)

蜘蛛池自动收录技术解析 百度作为国内最大的搜索引擎之一&#xff0c;在网络搜索领域拥有巨大的影响力。对于网站主来说&#xff0c;如何让自己的网站在百度搜索结果中排名靠前&#xff0c;成为关注的焦点。其中&#xff0c;SEO&#xff08;SearchEngineOptimization&#xff…

第十五届蓝桥杯大赛软件赛省赛javaB组(蒟蒻赛时写的题

4个小时&#xff0c;下来感觉&#xff0c;迷迷糊糊的&#xff08;感觉写的题和没写一样&#xff0c;要么暴力&#xff0c;要么写写if els,感觉没有什么体验感。前两个填空题都是签到&#xff0c;第二个填空写的暴力&#xff0c;感觉跑了5分钟左右&#xff0c;其实是可以前缀和优…

Linux字符设备驱动-详解与实操:驱动架构、设备树、Pinctrl子系统和GPIO子系统、platform、设备树下的platform

如何编写一个驱动程序&#xff1a; &#xff08;1&#xff09;确定主设备号 &#xff08;2&#xff09;定义自己的file_operations结构体&#xff1a; 包含对应的open(drv_open)/read(drv_read)等设备操作函数&#xff0c;需要到内核中去注册 &#xff08;3&#xff09;实现…

09-python开发xss扫描器

一、基本思路 1、整体上的思路是发送一个带有Payload参数值的请求&#xff0c;从响应当中判断是否存在Payload(反射性XSS) 2、准备一份字典文件、尽可能包含更多的payload,并给每一个payload进行分类&#xff08;不同的类型匹配的要求不同&#xff09; import requests# 从响…

为什么需要自动化测试?自动化有哪些优势?

前言 自动化测试&#xff0c;最近些年可谓是大火。招聘上的要求也好&#xff0c;培训班的广告也罢&#xff0c;比比皆是&#xff0c;足以说明它在业内的火爆程度。 虽然说会写自动化测试并不能说明你就很牛批&#xff0c;但是你不会的话&#xff0c;那么很抱歉&#xff0c;你…

spring Ai框架调用openai大模型简易demo

前提&#xff1a; 需要科学上网&#xff0c;key没有官方的&#xff0c;就找中转的key1 pom依赖&#xff0c;注意添加的依赖和仓库配置 <?xml version"1.0" encoding"UTF-8"?> <project xmlns"http://maven.apache.org/POM/4.0.0" xm…

【C++】从list模拟实现深入理解iterator

目录 前言 一、list节点类 二、迭代器类 三、list类 前言 在string与vector这类存储内存连续的容器中&#xff0c;iterator直接使用指针作为底层即可。但对于list这种存储内存不连续的容器&#xff0c;就不可能使用指针作为底层了。 本文我们将通过对list的学习及模拟实现…

CCNP和HCIP哪个好考?

在网络工程领域&#xff0c;专业认证是衡量技能和知识水平的重要标准。 Cisco的CCNP和华为的HCIP都是业界广泛认可的资深网络工程师认证。 对于渴望提升职业资格的网络工程师来说&#xff0c;选择哪个认证更合适&#xff0c;很多人都在纠结。 01 CCNP认证概览 CCNP认证是思科…

Java常见异常有哪些

java.lang.IllegalAccessError&#xff1a;违法访问错误。当一个应用试图访问、修改某个类的域&#xff08;Field&#xff09;或者调用其方法&#xff0c;但是又违反域或方法的可见性声明&#xff0c;则抛出该异常。 java.lang.InstantiationError&#xff1a;实例化错误。当一…

【中等】保研/考研408机试-动态规划1(01背包、完全背包、多重背包)

背包问题基本上都是模板题&#xff0c;重点&#xff1a;弄熟多重背包模板 dp[j]max(dp[j-v[i]]w[i],dp[j]) //核心思路代码&#xff08;一维数组版&#xff09; dp[i][j]max(dp[i-1][j], dp[i-1][j-v[i]]w[i])//二维数字版 一、 0-1背包 一般输入两个变量&#xff1a;体积&…

力扣每日一题-拆炸弹-2024.5.5

力扣题目&#xff1a;拆炸弹 题目链接: 1652.拆炸弹 题目描述 代码思路 根据代码实现分为k等于0和k不等于0的情况。k等于0很容易处理&#xff0c;而k不等于0时&#xff0c;需要使用滑动窗口的方式来解决。先根据小于0或大于0确定一个窗口&#xff0c;然后移动&#xff0c;获…