【BUUCTF】Crypto_RSA(铜锁/openssl使用系列)

news2024/11/23 14:57:23

【BUUCTF】Crypto_RSA(铜锁/openssl使用系列)

1、题目

在一次RSA密钥对生成中,假设p=473398607161,q=4511491,e=17
求解出d作为flga提交

在这里插入图片描述

2、解析

RSA加密过程:
1)选择素数:选择两个不同的大素数,通常记为p和q;
2)计算N:将这两个素数相乘,得到一个大整数N,即N = p * q。(N为RSA的模数)
3)计算欧拉函数φ(N):φ(N) = (p-1) * (q-1)。(欧拉函数φ(N)表示小于N且与N互质的正整数的个数)
4)选择公钥e:选择一个与φ(N)互质的小整数e,通常选择65537(即2^16 + 1),这个值常用因为它只有两个非零位,加速了加密运算。
5)计算私钥d:(e * d) mod φ(N) = 1。(使用扩展的欧几里得算法计算e对于φ(N)的模逆d)

3、编码

#include <openssl/rsa.h>
#include <openssl/pem.h>
#include <iostream>

using namespace std;

int RSA_D() {
    // 给定的p、q和e值
    const char* p_str = "473398607161";
    const char* q_str = "4511491";
    const char* e_str = "17";

    // 将p、q和e转换为BIGNUM类型
    BIGNUM* p = BN_new();
    BIGNUM* q = BN_new();
    BIGNUM* e = BN_new();
    BN_dec2bn(&p, p_str);
    BN_dec2bn(&q, q_str);
    BN_dec2bn(&e, e_str);

    // 计算N = p * q 和 φ(N) = (p - 1) * (q - 1)
    BIGNUM* N = BN_new();
    BN_CTX* ctx = BN_CTX_new();
    BN_mul(N, p, q, ctx);
    BIGNUM* phi_N = BN_new();
    BN_sub(p, p, BN_value_one());
    BN_sub(q, q, BN_value_one());
    BN_mul(phi_N, p, q, ctx);

    // 计算d = e^(-1) mod φ(N)
    BIGNUM* d = BN_new();
    BN_mod_inverse(d, e, phi_N, ctx);

    // 显示d的十进制值
    char* d_str = BN_bn2dec(d);
    cout << "d: " << d_str << endl;

    // 释放资源
    BN_free(p);
    BN_free(q);
    BN_free(e);
    BN_free(N);
    BN_free(phi_N);
    BN_free(d);
    BN_CTX_free(ctx);

    return 0;
}

int main() {
    RSA_D();
    return 0;
}

编译运行:
在这里插入图片描述

4、提交

flag{125631357777427553}

在这里插入图片描述

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

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

相关文章

AI绘画是什么?分享11张精美的AI绘画图片

AI绘画是什么&#xff1f; AI绘画是指利用人工智能技术来生成艺术作品的一种创作方式。通过训练机器学习算法&#xff0c;使计算机能够学习艺术家的风格和技巧&#xff0c;并自动生成类似的绘画作品。这种技术可以模仿各种绘画风格&#xff0c;如印象派、抽象艺术、写实主义等&…

Shopify如何安装Google Search Console

1&#xff0c;注册google search console账号 注册链接 https://search.google.com/search-console/about 2&#xff0c;输入网址 有两种方式&#xff0c;&#xff0c;都可使用&#xff0c;看个人习惯&#xff0c;我这边后续使用网址前缀来操作 3&#xff0c;填写网址后点击继…

618购物狂欢有哪些值得买的?五款心水好物真实分享!

618购物狂欢即将到来&#xff0c;你是不是已经迫不及待地期待着各种优惠和折扣&#xff1f;在这个充满购物狂欢的时刻&#xff0c;大家可能会犹豫在众多商品中该如何选择。不用担心&#xff01;我已经为大家精心挑选了五款心水好物&#xff0c;并进行了真实的分享&#xff0c;帮…

【C#】DateTime类型数组含有null?并排序

代码 internal class Program{static void Main(string[] args){List<DateTime?> dateTimes new List<DateTime?> { null,DateTime.MinValue,DateTime.MaxValue};var temp new List<DateTime?> { };dateTimes.Sort();//dateTimes.Reverse();foreach (va…

基于springboot的校园食堂订餐系统

文章目录 项目介绍主要功能截图&#xff1a;部分代码展示设计总结项目获取方式 &#x1f345; 作者主页&#xff1a;超级无敌暴龙战士塔塔开 &#x1f345; 简介&#xff1a;Java领域优质创作者&#x1f3c6;、 简历模板、学习资料、面试题库【关注我&#xff0c;都给你】 &…

如何保护数据安全?迅软DSE加密系统给信息撑把保护伞!

信息安全当然需要保护&#xff0c;不然企业的信息可以发给任何人&#xff0c;普通信息还好&#xff0c;如果是重要机密呢&#xff0c;企业重要信息被发出去后可能会造成一些麻烦&#xff0c;所以可以使用加密系统&#xff0c;对数据进行安全保护&#xff0c;防止泄密问题&#…

vue脚手架和vite创建的项目的环境配置

开发环境文件 .env.development NODE_ENV"development" # // 开发接口域名 本地测试就用这个 # vue脚手架创建的 VUE_APP_MODE"开发环境" VUE_APP_API_URL http://19527 # vite创建的 # VITE_MODE"开发环境" # VITE_BASE_URL http://1920:9527…

详解:牵牛易帮-免费知识库工具的弊端

众所周知&#xff0c;知识库工具已成为企业必不可少的一部分&#xff0c;它们可以提升工作效率、优化客户体验。牵牛易帮作为一款免费的知识库工具&#xff0c;吸引了众多小微企业和个人用户。然而&#xff0c;免费是有两面性的&#xff0c;牵牛易帮也不例外。本文将对牵牛易帮…

等离子刻蚀中的化学键是如何断裂与生成的?

知 识星球&#xff08;星球名&#xff1a; 芯片制造与封测社区&#xff0c;星球号&#xff1a; 63559049&#xff09;里的学员问&#xff1a; 我看 到一本书上 说刻蚀SiO2需要C&#xff0c;这个C会和SiO2中的O结合。 较弱的 si和f结合从而被刻蚀。 但是另一本书上写Si…

封装一个可以最小化和展开的弹窗组件

gl-dialog 大概思路&#xff1a; 在弹窗组件内部引入gl-dialog-collapse&#xff0c;这个组件主要用于存储已经被最小化的弹窗&#xff08;基础数据&#xff09; 弹窗内部的数据如何在父组件拿到是通过作用域插槽来实现的 gl-dialog接收一个tempData这个数据会在内部被记录下来…

Gen-2颠覆AI生成视频!一句话秒出4K高清大片,网友:彻底改变游戏规则

这&#xff0c;绝对称得上是生成式AI进程中的里程碑。 就在深夜&#xff0c;Runway家标志性的AI视频生成工具Gen-2&#xff0c;迎来了“iPhone时刻”般的史诗级更新—— 依旧是简单一句话输入&#xff0c;不过这一次&#xff0c;视频效果一口气拉到了4K超逼真的高度&#xff…

WordPress原创插件:当日24小时发布文章标题变红

WordPress原创插件&#xff1a;当日24小时发布文章标题变红 <?php// 添加自定义样式 function title_red_plugin_styles() {$current_time time();$post_time get_the_time(U);$time_difference $current_time - $post_time;if ($time_difference < 86400) {echo&l…

【doghead】mac与wsl2联通

mbp 设置为发送端,那么要能与windows上 wsl2的ubutnu通信。 mbp的 uv 构建ok zhangbin@zhangbin-mbp-2  ~/tet/Fargo/zhb-bifrost/Bifrost-202403/worker/third_party/libuv   main clion使用lldb cmake构建 更新git2.45.0啊

无人机+垂直起降:微型共轴双旋翼无人机技术详解

微型共轴双旋翼无人机技术是一种独特的无人机设计&#xff0c;它结合了垂直起降&#xff08;VTOL&#xff09;能力和微型无人机的灵活性。这种设计允许无人机在无需跑道的情况下垂直起降&#xff0c;并具备在空中悬停和执行各种飞行动作的能力。 适用于集群控制&#xff0c;荷载…

SAP-ABAP-操作透明表06

1、操作透明表-查询 查询0条数据只做判断 SELECT COUNT(*) FROM ZHY_XYXX_01 WHERE ZBJ = 202404. IF SY-SUBRC = 0. WRITE 班级存在. ELSE. WRITE 班级不存在. ENDIF. 查询一条数据 *查询一条数据 SELECT SINGLE ZBJ, ZXH INTO @GS_Z…

【数据库原理及应用】期末复习汇总高校期末真题试卷07

试卷 一、填空题&#xff08;每空1分&#xff0c;共10分&#xff09; 1.数据库管理系统在外模式、模式和内模式这三级模式之间提供了两层映象&#xff0c;其中 映象保证了数据的逻辑独立性。 2. 数据模型通常由 、数据操作和完整性约束三部分组…

不盖CNAS的证书就是无效的?证书哪些信息是“非必要”?

做设备校准的企业&#xff0c;大多数都是为了拿到仪器校准证书&#xff0c;而说起校准证书&#xff0c;很多人优先就是想到CNAS&#xff0c;CNAS作为校准行业重要的核心资质&#xff0c;无论是校准机构实力的证明&#xff0c;还是满足企业年审的需要&#xff0c;基本上都是关键…

启动任何类型操作系统:不需要检索 ISO 文件 | 开源日报 No.243

netbootxyz/netboot.xyz Stars: 7.7k License: Apache-2.0 netboot.xyz 是一个方便的平台&#xff0c;可以不需要检索 ISO 文件就能启动任何类型操作系统或实用工具磁盘。它使用 iPXE 提供用户友好的 BIOS 菜单&#xff0c;让您轻松选择所需的操作系统以及特定版本或可引导标志…

羊大师:羊奶儿童骨骼发育的助力者

羊大师&#xff1a;羊奶儿童骨骼发育的助力者 羊奶&#xff0c;这一传统而珍贵的营养饮品&#xff0c;羊大师发现羊不仅是美味的象征&#xff0c;更是儿童骨骼发育的助力者。它以其独特的营养价值和易于吸收的特点&#xff0c;为孩子们的健康成长提供了坚实的支持。 儿童时期…

数据库、OS内核安全等精彩继续!龙蜥大讲堂 5 月直播预告来袭

「龙蜥大讲堂」5 月精彩预告来了&#xff0c;点击下方海报抢先了解。本月又是满满的技术干货分享&#xff0c;多位大咖带你共享技术盛宴&#xff01;直播地址&#xff1a;http://live.bilibili.com/24798267 5 月精彩分享直达 &#x1f447; 直播主题及内容介绍 一&#xff1…