Wilson's theorem在RSA题中运用
引言
- 最近一段时间在再练习数论相关的密码学题目,自己之前对于数论掌握不是很熟练,借此机会先对数论基本的四大定理进行练习
- 这次的练习时基于
Wilson's theorem
(威尔逊定理)在RSA
题目中的练习 - 最近几次比赛中这个定理出现频率挺高的,正好之前
Rocarctf
中有一道题考到了这个定理这次就用于练习
Wilson's theorem简介
- P 为质数 <==>(P−1)!≡ −1(mod P)
- 推论 & 变形式:
(p-1)! + (p-2) != p * (p-2)!
(p-1)! = p * (p-1)
(p-2)! % p = 1
- 这个定理作用就是在于可以将阶乘的复杂问题转换成为连乘的简单问题
实例练习
题目代码
思路分析
-
对于素数
p,q
的获取是用B!%A
后在获取其下一个素数实现,而问题的难处也在于大数B
在阶乘后运算的复杂度,所以这里就要采用威尔逊定理将阶乘问题转换成连乘问题,即对于例如q!%p=>(q+1)*…….*(p-2)%p
-
推导过程大致如下:
由上述代码可以得出以下式子:
1、myGetPrime()
函数的返回结果记为
2、R=randint(le3,le5)
~ 的任意整数
3、
4、 -
阶乘展开
-
由上述第三个变型式可得
⇒
=>和是乘法逆元的关系,故而可以通过连乘模求出而,此题中对于的结果是next_prime(d1)
,所以最终p=invert(d1,A1)
最终exp
总结
- 最近主要是对于基本的数论的四个定理的学习,还有就是python 每日一个小项目练习和flask框架学习,基本web知识学习
__EOF__

本文作者:Konmu
本文链接:https://www.cnblogs.com/Konmu/p/12507303.html
关于博主:评论和私信会在第一时间回复。或者直接私信我。
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
声援博主:如果您觉得文章对您有帮助,可以点击文章右下角【推荐】一下。您的鼓励是博主的最大动力!
本文链接:https://www.cnblogs.com/Konmu/p/12507303.html
关于博主:评论和私信会在第一时间回复。或者直接私信我。
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
声援博主:如果您觉得文章对您有帮助,可以点击文章右下角【推荐】一下。您的鼓励是博主的最大动力!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· winform 绘制太阳,地球,月球 运作规律
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)