攻防世界:Crypto习题之easy_RSA

RSA 加密

在非对称加密算法中,单向函数被广泛应用,用于确保从公钥加密后的密文无法轻易推导出私钥,从而保证数据的安全性。而其中最著名的算法便是 RSA 加密算法。

首先设 $$\varphi(m) := | { 1 \leq k \leq m |\gcd(k, m) = 1 } |$$ 为欧拉函数(Euler'sche Phi-function)。

RSA加密算法的流程如下:

  1. 选择2个很大的质数\(p, q\).
  2. 计算\(n:=pq\)。这里的n是公开的,\(p, q\)则是保密的。
  3. 计算\(\varphi(n)\)。(因为我们知道\(n=pq\),且\(p, q\)均为质数,我们可以利用公式\(\varphi(n)=(p-1)(q-1)\)进行快速计算。)
  4. 选择\(e \in \{1,2,...,\varphi(n)-1\}\),使得\(gcd(\varphi(n),e)=1\).

    我们的公钥为\((e,n)\)。
  5. 计算密钥\(d\),满足\(ed \equiv 1\) mod \(\varphi(n)\).

假设我们现在有明文x以及公钥\((e,n)\),进行加密时只需要计算

\[b=a^e \text{ mod } n, \ \ \ \ a,b \in \mathbb{Z}_n.
\]

而解密时同理

\[a=b^d \text{ mod } n.
\]

如此一来,任何人都可以将一段信息加密后发送给我们,而只有我们能够解密这段信息。

题目内容

https://adworld.xctf.org.cn/challenges/list



思路

在进行第5步计算密钥\(d\)时,可以考虑以下算法:

(1). 用扩展欧几里得算法找到 \(x\) 和 \(y\),使得:

\[e \cdot x + \varphi(n) \cdot y = 1,
\]

(2). 上式中,\(x\) 模 \(\varphi(n)\) 的值即为 \(d\):

\[d \equiv x \bmod \varphi(n).
\]

如果 \(d < 0\),需要将其调整到正数范围:

\[d = d + \phi(n).
\]

代码

p=473398607161
q=4511491
e=17 # 扩展欧几里得算法
def extended_euclidean(a, b):
if b == 0:
return a, 1, 0
gcd, x1, y1 = extended_euclidean(b, a % b)
x = y1
y = x1 - (a // b) * y1
return gcd, x, y def calculate_private_key(p, q, e):
phi = (p - 1) * (q - 1)
gcd, x, y = extended_euclidean(e, phi)
if gcd != 1:
raise ValueError("e and phi(n) are not coprime")
d = x % phi
if d < 0:
d += phi
return d d = calculate_private_key(p, q, e)
print(f"私钥 d 是: {d}")
# 输出结果应为“私钥 d 是: 125631357777427553”

攻防世界:Crypto习题之easy_RSA的更多相关文章

  1. CTF -攻防世界-crypto新手区(5~11)

    easy_RSA 首先如果你没有密码学基础是得去恶补一下的 然后步骤是先算出欧拉函数 之后提交注意是cyberpeace{********}这样的 ,博主以为是flag{}耽误了很长时间  明明没算错 ...

  2. 攻防世界 - Crypto(一)

    base64: 根据题目base64可知编码方式,下载附件发现是一个txt文件,把内容用工具解码就彳亍了,即可得到flag, flag: cyberpeace{Welcome_to_new_World ...

  3. 攻防世界-Crypto高手进阶区部分Writeup

    1.flag_in_your_hand && flag_in_your_hand1 下载,解压后 打开index文件,直接点击get flag错误,输入其他点击也同样 打开js文件,在 ...

  4. 攻防世界CRYPTO新手练习

    0x01 base64 直接base64 Decode 得到flag cyberpeace{Welcome_to_new_World!} 0x02 Caesar key为12 的恺撒密码,解密德fla ...

  5. CTF -攻防世界-crypto新手区(1~4)

    题目已经提示用base64直接解密就行 base64解密网址 http://tool.oschina.net/encrypt?type=3 题目提示是凯撒密码 http://www.zjslove.c ...

  6. Xctf攻防世界—crypto—Normal_RSA

    下载压缩包后打开,看到两个文件flag.enc和pubkey.pem,根据文件名我们知道应该是密文及公钥 这里我们使用一款工具进行解密 工具链接:https://github.com/3summer/ ...

  7. RSA脚本环境配置-攻防世界-OldDriver

    [Crypto] 题目链接 [RSA算法解密] 审题分析 首先拿到一个压缩包,解压得到文件enc.txt. 先不用去管其他,第一眼enc马上联想到 RSA解密.接着往下看 [{"c" ...

  8. 攻防世界 reverse evil

    这是2017 ddctf的一道逆向题, 挑战:<恶意软件分析> 赛题背景: 员工小A收到了一封邮件,带一个文档附件,小A随手打开了附件.随后IT部门发现小A的电脑发出了异常网络访问请求,进 ...

  9. CTF--web 攻防世界web题 robots backup

    攻防世界web题 robots https://adworld.xctf.org.cn/task/answer?type=web&number=3&grade=0&id=506 ...

  10. CTF--web 攻防世界web题 get_post

    攻防世界web题 get_post https://adworld.xctf.org.cn/task/answer?type=web&number=3&grade=0&id=5 ...

随机推荐

  1. [OI] 数学与推论证明 3(高中数学篇)

    1 \[\color{#40865d}(2) \] \(f(x)=x^{2}-a(x+a\ln x)(a\neq0)\),若 \(f(1)+f'(1)=0\) 且 \(a\gt 0\),问可以得到什么 ...

  2. 第6天:基础入门-抓包技术&HTTPS协议&APP&小程序&PC应用&WEB&转发联动

    安装charles 到Windows本地: 安卓模拟器安装: 如果抓模拟器就要使用从远程主机,如果不是,则从所有进程 访问 谷歌浏览器安装证书: PC微信小程序代理抓取: 41:43 :如何将char ...

  3. Codeforces[CF1036B]Diagonal Walking v.2题解

    题目大意 很明显,这道题就是求 k 步之内到达点 \((a,b)\) ,然后尽量走对角线,求能走对角线的最大值. 做题思路 首先明白一个事实,即一个对角线可以通过增加一步而抵达点不变,如图: 我们可以 ...

  4. Windows 10 LTSC 2019(1809) WSL 安装 CentOS 7

    1.安装WSL    通过控制面板--程序和功能--启用或关闭WIndows功能,勾选"适用于Linux的Windows子系统".    或者通过管理员权限打开 PowerShel ...

  5. 利用3Dslice提取血管中心线

    1.首先进入官网下载你需要的版本.你也可以安装老版本,我已经用红色框框出来了. 2.开始安装,等个几十秒钟就ok了. 3.当然要实现提取中心线,还需要 VMTK 这个玩意, 打开应用,找到 insta ...

  6. 云原生周刊:ingress2gateway 发布 | 2023.10.30

    开源项目推荐 m9sweeper m9sweeper 是一个免费且简单的 Kubernetes 安全平台.它将行业标准的开源实用程序集成到一站式 Kubernetes 安全工具中,该工具可以帮助大多数 ...

  7. 不用PLC和板卡,一台电脑就可以控制伺服

    1.前言 大家好!我是付工. EtherCAT是运动控制领域使用最广泛的总线通信协议之一. 如果我们只有一台电脑,能不能直接控制EtherCAT总线伺服呢? 这个是完全可以的. 我们可以在电脑上安装实 ...

  8. Rigid Body Simulation

    目录 0 前言 1 核心技术 1.1 Semi-implicit Euler 1.2 刚体模拟 1.3 Collision 2 实现 X Ref 0 前言 声明:此篇博客仅用于个人学习记录之用,并非是 ...

  9. Machine Learning week_2 Multivariate Prameters Regression

    目录 1 Multivariate Prameters Regression 1.1 Reading Multiple Features 1.2 Gradient Descent For Multip ...

  10. AI五子棋_02_03 Get传输数据 公共密钥

    AI五子棋 第二步 恭喜你到达第二步! 警告:如果你是直接使用浏览器获得本页地址的话,请你返回第一步. 在前一步里,你得到的这样的返回结果 {"is_success": true, ...