1,babyRSA-广东海洋大学

from Crypto.Util.number import *
from secret import flag
import libnum
flag="UNCTF{*************************}"
m=libnum.s2n(flag)
p=libnum.generate_prime(1024)
q=libnum.generate_prime(1024)
n=p*q
e=6
c=pow(m,e,n)
M=((m>>60)<<60)
print("n=",n)
print("c=",c)
print("((m>>60)<<60)=",M) '''
25300208242652033869357280793502260197802939233346996226883788604545558438230715925485481688339916461848731740856670110424196191302689278983802917678262166845981990182434653654812540700781253868833088711482330886156960638711299829638134615325986782943291329606045839979194068955235982564452293191151071585886524229637518411736363501546694935414687215258794960353854781449161486836502248831218800242916663993123670693362478526606712579426928338181399677807135748947635964798646637084128123883297026488246883131504115767135194084734055003319452874635426942328780711915045004051281014237034453559205703278666394594859431
15389131311613415508844800295995106612022857692638905315980807050073537858857382728502142593301948048526944852089897832340601736781274204934578234672687680891154129252310634024554953799372265540740024915758647812906647109145094613323994058214703558717685930611371268247121960817195616837374076510986260112469914106674815925870074479182677673812235207989739299394932338770220225876070379594440075936962171457771508488819923640530653348409795232033076502186643651814610524674332768511598378284643889355772457510928898105838034556943949348749710675195450422905795881113409243269822988828033666560697512875266617885514107
11941439146252171444944646015445273361862078914338385912062672317789429687879409370001983412365416202240
'''

把M直接转字符,发现为UNCTF{27a0aac7-76cb-427d-9129-147630

查看代码发现M没有全部输出

c=m*e%n

反推m得到

UNCTF{27a0aac7-76cb-427d-9129-1476360d5d1b}

2,ezRSA-广东海洋大学

import libnump=libnum.generate_prime(256)
e=65537
m=flagm=libnum.s2n(m)
n=p**4
phi_n=p**4-p**3
d=libnum.invmod(e,phi_n)
c=pow(m,e,n)print ("n=",n)
print ("e=",e)
print ("c=",c)
62927872600012424750752897921698090776534304875632744929068546073325488283530025400224435562694273281157865037525456502678901681910303434689364320018805568710613581859910858077737519009451023667409223317546843268613019139524821964086036781112269486089069810631981766346242114671167202613483097500263981460561
65537 56959646997081238078544634686875547709710666590620774134883288258992627876759606112717080946141796037573409168410595417635905762691247827322319628226051756406843950023290877673732151483843276348210800329658896558968868729658727981445607937645264850938932045242425625625685274204668013600475330284378427177504

已知n为p的4次方

http://factordb.com/分解,p为89065756791595323358603857939783936930073695697065732353414009005162022399741

phi_n= 62927872600012424750752897921698090776534304875632744929068546073325488283530024693691702143529031183279868605298538034647157244084950126182627099673411708811202038892964633158149751150026643595847592086074758419787198616845368214171227019321093517072860049563292200161449041144992746910155634540

d = gmpy2.invert(e,phi_n)

m = gmpy2.powmod(c,d,n)

m=48365220018963682272584053519672007499214975531866499076009323220761368446577370744953620484722033999784716843113709900922991574433366546158598351924032846800169570380644989487128223991386043288230350212361468961632950694114222055193695768431334909881187451060996494906488435444094436463941974937999692229191

print(n2s(int(m)))y'gyg得 UNCTF{pneum0n0ultram01cr0sc0p01cs01l01c0v0lcan0c0n010s01s}

3 easy_RSA-中国人民公安大学

from Crypto.Util.number import *
from gmpy2 import *
from secret import flag
import random
assert flag.startwith(b"flag{")
e=0x10001
c=6423951485971717307108570552094997465421668596714747882611104648100280293836248438862138501051894952826415798421772671979484920170142688929362334687355938148152419374972520025565722001651499172379146648678015238649772132040797315727334900549828142714418998609658177831830859143752082569051539601438562078140
n=102089505560145732952560057865678579074090718982870849595040014068558983876754569662426938164259194050988665149701199828937293560615459891835879217321525050181965009152805251750575379985145711513607266950522285677715896102978770698240713690402491267904700928211276700602995935839857781256403655222855599880553
m=bytes_to_long(flag)
p=getprime(512)
q=getprime(512)
n=p*q
c=pow(m,e,n)
print("n={}".format(n))
print("c={}".format(c))
tmp=random.randint(100,300)
print("p>>tmp={}".format(p>>tmp))#c=6423951485971717307108570552094997465421668596714747882611104648100280293836248438862138501051894952826415798421772671979484920170142688929362334687355938148152419374972520025565722001651499172379146648678015238649772132040797315727334900549828142714418998609658177831830859143752082569051539601438562078140 #n=102089505560145732952560057865678579074090718982870849595040014068558983876754569662426938164259194050988665149701199828937293560615459891835879217321525050181965009152805251750575379985145711513607266950522285677715896102978770698240713690402491267904700928211276700602995935839857781256403655222855599880553#p>>200=8183408885924573625481737168030555426876736448015512229437332241283388177166503450163622041857

为rsa中的已知高位攻击 ,

学一手大佬

​​​​​​https://blog.csdn.net/m0_57291352/article/details/120675242

用Sage Cell Server (sagemath.org)
​
n=102089505560145732952560057865678579074090718982870849595040014068558983876754569662426938164259194050988665149701199828937293560615459891835879217321525050181965009152805251750575379985145711513607266950522285677715896102978770698240713690402491267904700928211276700602995935839857781256403655222855599880553
p4=7763324082495716852870824316200424018139567206154696104953385573761033160220038511251268217230653629388520339723337700045392099450472580225771046069366909
e= 65537
pbits=512kbits=pbits - p4.nbits()
print (p4.nbits)
p4 = p4 << kbits
PR.<x> = PolynomialRing(Zmod(n))
f = x + p4
roots = f.small_roots(X=2^kbits,beta=0.4)
if roots:p= p4 + int(roots([0]))print ("n",n)print ("p",p)print ("q",n/p)​<built-in method nbits of sage.rings.integer.Integer object at 0x7fca72e0ef70>
n 102089505560145732952560057865678579074090718982870849595040014068558983876754569662426938164259194050988665149701199828937293560615459891835879217321525050181965009152805251750575379985145711513607266950522285677715896102978770698240713690402491267904700928211276700602995935839857781256403655222855599880553
p 7763324082495716852870824316200424018139567206154696104953385573761033160220038511251268217230653629388520339723337700045392099450472580225771046069366909
q 13150231070519276795503757637337326535824298772055543325920447062237907554543786311611680606624189166397403108357856813812282725390555389844248256805325917
p=13150231070519276795503757637337326535824298772055543325920447062237907554543786311611680606624189166397403108357856813812282725390555389844248256805325917
q=7763324082495716852870824316200424018139567206154696104953385573761033160220038511251268217230653629388520339723337700045392099450472580225771046069366909

套模板得d=25959711463140342701899894171712674066095821167425159963094768366762828117034879585949081045934044415516824156122045488033324643905833942619358944667336231636450405916301179032621732025357283680462007367697846640931298802718986254284462527114688915249044802115242747492902541047351480063274878273604317641233

m=50937517511025021146312296710032207911894323278505810235997201698471811662868003288064381=flag{It is a very_intersting_test!!!}

UNCTF2022中RSA题目总结相关推荐

  1. Crypto日记之picoCTF 2022中的RSA题目求解

    前言 picoCTF 2022一共66道题,队友基本都解出来了,只能说师傅们tql!共有15道Cryptography题目,其中3道RSA题目,难点应该都在整数分解的算法,借Generate师傅的wp ...

  2. CTF 中RSA的常见解析

    0x01 前言 这里就不讨论数论的基础了,进行RSA的题目解答,至少要懂得基本的数论知识的,如果不了解数论的基本知识的话,网上相关内容还是挺多的. RSA基于一个简单的数论事实,两个大素数相乘十分容易 ...

  3. BUUCTF RSA题目全解2

    RSA 1.[NCTF2019]childRSA 2.[HDCTF2019]bbbbbbrsa 3.SameMod 4.[BJDCTF2020]RSA 5.[GKCTF2020]babycrypto ...

  4. java的rsa作用_java 中RSA的方式实现非对称加密的实例

    java 中rsa的方式实现非对称加密的实例 rsa通俗理解: 你只要去想:既然是加密,那肯定是不希望别人知道我的消息,所以只有我才能解密,所以可得出公钥负责加密,私钥负责解密:同理,既然是签名,那肯 ...

  5. [crypto]-52-python3中rsa(签名验签加密解密)aes(ecb cbc ctr)hmac的使用,以及unittest测试用

    环境: 在ubuntu14.04下,记得安装:sudo pip3 install pycrypto 代码示例1: =========================== import base64 f ...

  6. php面试题中笔试题目的汇总,php面试题中笔试题目的汇总

    在我们之前的课程中,我们有介绍到了php面试题中关于thinkphp的题目.以及2017最全的php面试题目及答案总结.其中很多的php面试题都是在口述,也有很多笔试的PHP面试题,今天我们就给大家来 ...

  7. CTF-RSA_基于N分解的RSA题目

    CTF-RSA_基于N分解的RSA题目 对N进行分解(只要知道p和q,就能解出任何rsa) N在有一般情况下不可分解的,如果p和q太接近,或相差过大,或pq很小等情况 1.在线查询分解网站 http: ...

  8. python3.7中RSA加密遇到的问题

    python3.7中RSA加密遇到的问题 对于网络上有很多python3.7中RSA加密代码,一般都是生成公钥或者私钥,测试接口的时候公司一般会规定要使用的公钥,则代码就会报错拿登录接口测试举例: 1 ...

  9. rsa生成公私钥php,php中rsa生成公私钥和加解密

    php中rsa生成公私钥和加解密 注意:php使用RSA时需要开启openssl扩展 生成公私钥 //创建公私钥 $res = openssl_pkey_new(); //获取私钥 openssl_p ...

最新文章

  1. mac os x 安装 wireshark 的问题
  2. Android App自适应draw9patch不失真背景
  3. java中字符串的操作_java中字符串的操作
  4. 从零开始学习springBoot2
  5. 1.MySQL数据库的介绍
  6. 【C语言】实参求值的顺序
  7. mysql shell命令和作用_MySQL的一些功能实用的Linux shell脚本分享
  8. Java 多线程详解(三)------线程的同步
  9. 华为novia3i鸿蒙,华为nova3i一马当先:值得年轻人购买的智能手机推荐
  10. okhttp3+retrofit2+rxjava2使用
  11. PADS中常用无模命令快捷键
  12. 学习笔记 C++ 动态数组类的声明
  13. Linux——Vim编辑器三种模式(命令模式、输入模式、末行模式)的基本使用总结
  14. Dfine2 for mac(图片降噪工具)
  15. LEAM(生活/生命体验算法模型)
  16. 摩斯密码Java/Python实现
  17. 【蓝桥杯省赛】冲刺练习题【第十一届省赛题】倒计时【04】天(准考证组委会已下发,请查询)
  18. 一文解析推特上最常见的加密骗局
  19. 车展背后|车规级芯片知多少?
  20. 存款准备金率,央行票据

热门文章

  1. rg1 蓝光危害rg0_关注LED灯具的蓝光危害
  2. Android 生命周期方法
  3. FLASH按钮链接网页
  4. 转行软件测试4年,从初级入门到高级测试,听听他的经验分享
  5. 实战:k8s之NFS存储-2022.2.22
  6. gitleb 登陆方式_gitlab 之第三方OAuth登录接入(一)
  7. 快播3.5不升级版常见问题
  8. 目标检测 YOLOv5 - 如何提高模型的指标,提高精确率,召回率,mAP等
  9. Unity画线之GL
  10. python 获取qq群成员信息_Python-获取QQ群成员信息并存入excel及redis并发送邮件