首页 > 其他分享 >[LitCTF 2023]家人们!谁懂啊,RSA签到都不会 (初级)

[LitCTF 2023]家人们!谁懂啊,RSA签到都不会 (初级)

时间:2024-04-10 15:04:49浏览次数:27  
标签:gmpy2 签到 pow 自然数 RSA LitCTF 整数 print import

下载task.py看到内容

from Crypto.Util.number import *
from secret import flag

m = bytes_to_long(flag)
p = getPrime(512)
q = getPrime(512)
e = 65537
n = p*q
c = pow(m,e,n)
print(f'p = {p}')
print(f'q = {q}')
print(f'c = {c}')
'''
p = 12567387145159119014524309071236701639759988903138784984758783651292440613056150667165602473478042486784826835732833001151645545259394365039352263846276073
q = 12716692565364681652614824033831497167911028027478195947187437474380470205859949692107216740030921664273595734808349540612759651241456765149114895216695451
c = 108691165922055382844520116328228845767222921196922506468663428855093343772017986225285637996980678749662049989519029385165514816621011058462841314243727826941569954125384522233795629521155389745713798246071907492365062512521474965012924607857440577856404307124237116387085337087671914959900909379028727767057
'''

认识RSA:

https://blog.csdn.net/dbs1215/article/details/48953589

 

先关函数:

gmpy2.inverse(x, y): 计算模逆元,即找到一个整数z,使得x * z % y == 1。

gcd(x, y): 计算两个数的最大公约数

bytes_to_long(s): 将字节串转换为长整数

pow(x,y,n) 函数:求x^{y}(x 的 y 次方) 的值。

result1 = pow(2, 3) # 计算 2 的 3 次方  
print(result1) # 输出: 8  
  
result2 = pow(2, 3, 5) # 计算 2 的 3 次方再对 5 取模  
print(result2) # 输出: 3

getPrime(x):Python自带的一种方法,通过调用该方法可以生成指定位数(x)的素数

素数:又称质数(一个大于1的自然数,除了1和它自身外,不能被其他自然数整除的数叫做质数)

自然数:自然数是指表示物体个数的数,即由0开始,0,1,2,3,4,……一个接一个,组成一个无穷的集体,即指非负整数。

exp:

from Crypto.Util.number import * # Crypto.Util.number模块提供了一组用于处理大整数的实用函数,这些函数在加密和数学运算中经常用到
import gmpy2 # gmpy2是一个Python库,旨在提供高精度计算功能,并且支持整数、有理数、浮点数等多种数据类型
 
p = 12567387145159119014524309071236701639759988903138784984758783651292440613056150667165602473478042486784826835732833001151645545259394365039352263846276073
q = 12716692565364681652614824033831497167911028027478195947187437474380470205859949692107216740030921664273595734808349540612759651241456765149114895216695451
c = 108691165922055382844520116328228845767222921196922506468663428855093343772017986225285637996980678749662049989519029385165514816621011058462841314243727826941569954125384522233795629521155389745713798246071907492365062512521474965012924607857440577856404307124237116387085337087671914959900909379028727767057

e = 65537
L = (p-1) * (q-1)
n = q * p
d = gmpy2.invert(e,L)
m = pow(c,d,n)

print(m)
print(long_to_bytes(m))
NSSCTF{it_is_easy_to_solve_question_when_you_know_p_and_q}

标签:gmpy2,签到,pow,自然数,RSA,LitCTF,整数,print,import
From: https://blog.csdn.net/2301_80216972/article/details/137526483

相关文章

  • #产品说明书:施迈赛AZ16ZVK-ST@SCHMERSAL
    #产品说明书:施迈赛AZ16ZVK-ST@SCHMERSAL#产品说明书:施迈赛AZ16ZVK-ST@SCHMERSAL#产品说明书:施迈赛AZ16ZVK-ST@SCHMERSAL大约二十年了,安全性和生产率都不再是相互排斥的。其次,高度重视现代安全系统的集成到机器当局和机构,从而支持一个自由流动的生产。安全系统制造商提供了一......
  • Web应用安全现状(包含Injection、File System Traversal、Broken Access Control攻击介
    目录1、Web应用安全现状1.1Web应用发展历程1.2Web应用安全1、Web应用发展历程早期的WWW网,用户通过Web浏览器,相关信息流仅由服务器向浏览器单向传送。多数站点并不验证用户的合法性,因为根本没有必要这样做;所有用户同等对待,提供同样的信息。如今的万维网与早期的万维网......
  • As a reader --> Apollon: A robust defense system against Adversarial Machine Lea
    ......
  • TAMUctf 2024 RSA-证书修复-总结
    上周末跟朋友们参加了TAMUctf2024国际赛,最终排在了第14名,还是很不错的成绩。本次比赛Monk师傅也是出了三个RSA证书修复问题的题目,质量很不错。这里给大家整理一下供学习。Truncated1题目:Author:MonkOnlypartoftheprivatekeywasabletoberetrieved.Decryptth......
  • RSA签名在线验证
    对于使用HTTP协议的数据包,可以通过流量分析得到,以下信息:第一步:通过过滤器筛选出HTTP流量 第二步:找到服务器返回成功的数据包,右击追踪流,选择TCP流  通过查找login命令,快速查找到以下信息。  第三步:先导出证书,查看证书是否为已知证书注意,仅复制证书值。 导出......
  • Randomness Is All You Need: Semantic Traversal of Problem-Solution Spaces with L
    本文是LLM系列文章,针对《RandomnessIsAllYouNeed:SemanticTraversalofProblem-SolutionSpaceswithLargeLanguageModels》的翻译。随机性就是你所需要的:具有大型语言模型的问题解决空间的语义遍历摘要1引言2相关工作3模型4算法5评估6实现7结论摘......
  • RSA分片加密和解密
    #第一步:生成秘钥importrsaimportbase64#使用rsa非对称加密过程解析classMyRsa:"""1、接收者(A)生成512位公私钥对#a.lemon_pub为PublicKey对象,lemon_priv为PrivateKey对象#b.512为秘钥的位数,可以自定义指定,例如:128、256、512、1024、......
  • RSA实际应用场景
    importrsa#生成密钥pubkey,privkey=rsa.newkeys(512)#保存密钥print("==============保存密钥===============")withopen('public.pem','w+')asf:f.write(pubkey.save_pkcs1().decode())withopen('private.pem','w+&......
  • RSA非对称加密和开放鉴权
    #导入base64模块来进行base64编码importbase64importrsaimporttimeclassHandleSign:#定义服务器公钥,往往可以存放在公钥文件中,通过抓包获取server_pub="""-----BEGINPUBLICKEY-----MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDQENQujkLfZfc5Tu9Z......
  • 华为ENSP SSH使用RSA密钥交换进行远程登录实验
    实验拓扑:实验流程:1、AR1模拟客户端,AR2模拟远程登录服务器1、AR2开启SSH服务,配置AAA本地用户2、交换AR1和AR2的host主机密钥3、实现AR1远程登录AR2实验配置:先配置AR1和AR2的IP地址[AR1]intGigabitEthernet0/0/0[AR1-GigabitEthernet0/0/0]ipadd192.168.1.124[A......