当前位置: 首页 > article >正文

rsarsa-给定pqe求私钥对密文解密

题目:

Math is cool! Use the RSA algorithm to decode the secret message, c, p, q, and e are parameters for the RSA algorithm.

p =  9648423029010515676590551740010426534945737639235739800643989352039852507298491399561035009163427050370107570733633350911691280297777160200625281665378483
q =  11874843837980297032092405848653656852760910154543380907650040190704283358909208578251063047732443992230647903887510065547947313543299303261986053486569407
e =  65537
c =  83208298995174604174773590298203639360540024871256126892889661345742403314929861939100492666605647316646576486526217457006376842280869728581726746401583705899941768214138742259689334840735633553053887641847651173776251820293087212885670180367406807406765923638973161375817392737747832762751690104423869019034

Use RSA to find the secret message

根据RSA原理,e为公钥指数,pq为两个大素数,c在密码学里一般指密文。

通过pqe计算出私钥d,然后根据公式m=cdmod(n)求明文m,n为pq的乘积。

私钥d和e满足e*d≡1(modφ(n)),φ(n)是(p-1)*(q-1)

编写Python脚本:

from sympy import mod_inverse

# 给定的参数
p = 9648423029010515676590551740010426534945737639235739800643989352039852507298491399561035009163427050370107570733633350911691280297777160200625281665378483
q = 11874843837980297032092405848653656852760910154543380907650040190704283358909208578251063047732443992230647903887510065547947313543299303261986053486569407
e = 65537
c = 83208298995174604174773590298203639360540024871256126892889661345742403314929861939100492666605647316646576486526217457006376842280869728581726746401583705899941768214138742259689334840735633553053887641847651173776251820293087212885670180367406807406765923638973161375817392737747832762751690104423869019034

# 计算 n 和 φ(n)
n = p * q
phi_n = (p - 1) * (q - 1)

# 计算私钥 d
d = mod_inverse(e, phi_n)

# 使用私钥 d 解密
m = pow(c, d, n)

# 输出解密后的消息 
message = str(m)
print("解密后的消息:", message)


http://www.kler.cn/a/504722.html

相关文章:

  • Openresty 安装
  • Hadoop3.x 万字解析,从入门到剖析源码
  • 在Linux系统中无网络安装Nginx并配置负载均衡
  • Java 0114学习总结
  • 【gin】http方法了解,以及RESTful API与版本控制
  • UnityXR Interaction Toolkit 如何检测HandGestures
  • Day08-后端Web实战——JDBCMybatis
  • PanWeidb-使用BenchmarkSQL对磐维数据库进行压测
  • 比较之舞,优雅演绎排序算法的智美篇章
  • 数仓建模(六)从ODS到DWD、DWS、ADS
  • 过压保护电路
  • 查看linux 当前运行的 python脚本
  • Linux 系统资源监控笔记
  • MySQL表的创建实验
  • leetcode131.分割回文串
  • ISP基本框架及算法介绍
  • ROS2 准备工作(虚拟机安装,Ubuntu安装,ROS2系统安装)
  • [PAT 甲级] 1179 Chemical Equation (DFS)
  • python中的RPA->playwright自动化录制脚本实战案例笔记
  • Qt 各版本选择
  • 软定时器的删除与状态查询
  • UE材质节点Fresnel
  • 2025年互联网医院系统源码开发趋势:如何构建AI在线问诊APP
  • 2025.1.15——假期回归训练,从sql注入开始|一、SQL整数型注入
  • Kibana:ES|QL 编辑器简介
  • Visual Studio 同一解决方案 同时运行 多个项目