【视频讲解】PicoCTF 2022 使用Python完成mod逆运算

作者:FancyPig | 发布时间: | 更新时间:

相关阅读

在网络安全入门的探讨中,推荐了Pico ctf

data-postsbox="{"id":13208,"title":"2022年网络安全学习路线——如何入门、就业","author":"FancyPig","author_id":1,"cover_image":"","cover_video":"","views":9720,"comment_count":26,"category":"cybersecurity","is_forum_post":false}">{"id":13208,"title":"2022年网络安全学习路线——如何入门、就业","author":"FancyPig","author_id":1,"cover_image":"","cover_video":"","views":9720,"comment_count":26,"category":"cybersecurity","is_forum_post":false}

在上期视频中我们教大家通过简单的Python脚本完成一道mod运算的题,今天稍微加大一点点难度,看看你还会吗

data-postsbox="{"id":13146,"title":"【视频讲解】PicoCTF 2022 二进制文件漏洞利用","author":"FancyPig","author_id":1,"cover_image":"https://static.pigsec.cn/wp-content/uploads/2022/04/20220409075732480.png","cover_video":"","views":3317,"comment_count":1,"category":"cybersecurity","is_forum_post":false}">{"id":13146,"title":"【视频讲解】PicoCTF 2022 二进制文件漏洞利用","author":"FancyPig","author_id":1,"cover_image":"https://static.pigsec.cn/wp-content/uploads/2022/04/20220409075732480.png","cover_video":"","views":3317,"comment_count":1,"category":"cybersecurity","is_forum_post":false}

知识铺垫:什么是模逆元素?(什么是模的逆元?)

视频讲解

今天我们借此机会,给大家讲解一下如何使用Python求模的逆元

下面一组数字

104 290 356 313 262 337 354 229 146 297 118 373 221 359 338 321 288 79 214 277 131 190 377 

我们对每个数字mod 41求它的逆元,然后将取得的结果继续进行映射,结果是1-26 是字母表(大写),27-36 是十进制数字,37 是下划线。

我们给大家举个例子就能明白了!就拿第一个104来说,我们想求它的模逆元素,那就相当于求

104-1mod41

上面的式子可以转换为

(104 × 它的模逆元素) mod 41 =1

我们可以通过wolframalpha进行运算

它的模逆元素是28,我们可以进行验证

(104 × 28) mod 41 = 1

可以验证是没问题的

104 × 28 = 41 × 71 + 1

对于上面的CTF题,第一个数字对应28还没结束!

因为,我们还要按照题目要求进行映射,它在27-36之间,则应该转为十进制数字,0123456789

28是第二个,因此就变成1了,题目中还有很多数字,它们的做法也是如此!

其实我们无需知道如何去求解,只要会用函数就行了

对于,x * y == 1 (mod p)

Python里对应的函数

y = pow(x, -1, p)
标签:python, PICOCTF, picoctf2022, picoctf2022 writeup, writeup, ctf writeup, python进行mod运算, 模运算, 模逆运算, 模的乘法逆元, 模的逆元, 模逆元素, 密码学, 密码学基础, 数论, 数论基础