威尔逊定理

news/2024/10/9 16:34:39/文章来源:https://www.cnblogs.com/snoozy/p/18454561

初识威尔逊定理

什么是威尔逊定理,即对于一个质数p来说,有

(p-1)! ≡ -1 (mod p)

恒成立,其逆定理也成立,即对于一个数p来说若满足上式,则p一定是素数。

于是通过这个性质我们能够得到素数分布的函数:

f(n) = sin(π*((n-1)!+1)/n)

当函数值为0时,对应n就是一个素数,但好像没用(确信。

推广有

(p-2)! ≡ 1 (mod p)

  至于证明,因为此处主要讨论威尔逊定理的含义和应用,所以不再赘述证明过程。

例题:[长安杯 2021]checkin

附件:

from Crypto.Util.number import *
from secret import flag
p = getPrime(1024)
q = getPrime(16)
n = p*q
m = bytes_to_long(flag)
for i in range(1,p-q):m = m*i%n
e = 1049
print(pow(2,e,n))
print(pow(m,e,n))
#4513855932190587780512692251070948513905472536079140708186519998265613363916408288602023081671609336332823271976169443708346965729874135535872958782973382975364993581165018591335971709648749814573285241290480406050308656233944927823668976933579733318618949138978777831374262042028072274386196484449175052332019377
#3303523331971096467930886326777599963627226774247658707743111351666869650815726173155008595010291772118253071226982001526457616278548388482820628617705073304972902604395335278436888382882457685710065067829657299760804647364231959804889954665450340608878490911738748836150745677968305248021749608323124958372559270

​思路:

由2**e得出kn,再去爆破q,kn//q得到kp,分解kp得到p(根据比特大概看看就行),mm = m*(p-q-1)!,要消去这个阶乘,所以把m乘到(p-1)!,得到m*(p-1)!-m (mod p) ,最后逆元消-1。

​exp:

from Crypto.Util.number import *
from gmpy2 import *
from sympy import *e = 1049
c = 3303523331971096467930886326777599963627226774247658707743111351666869650815726173155008595010291772118253071226982001526457616278548388482820628617705073304972902604395335278436888382882457685710065067829657299760804647364231959804889954665450340608878490911738748836150745677968305248021749608323124958372559270
c2 = 4513855932190587780512692251070948513905472536079140708186519998265613363916408288602023081671609336332823271976169443708346965729874135535872958782973382975364993581165018591335971709648749814573285241290480406050308656233944927823668976933579733318618949138978777831374262042028072274386196484449175052332019377kn = 2**e - c2
for i in range(2**15,2**16):if(isprime(i)):if(kn%i == 0):q = ikp = kn//ibreakp = 170229264879724117919007372149468684565431232721075153274808454126426741324966131188484635914814926870341378228417496808202497615585946352638507704855332363766887139815236730403246238633855524068161116748612090155595549964229654262432946553891601975628848891407847198187453488358420350203927771308228162321231
n = p*q
phi = (p-1)*(q-1)
d = inverse(e,phi)
m = pow(c,d,n)
for i in range(p - q , p ):m = ( m * i ) % p
m = m * inverse(-1,p) % p
print(long_to_bytes(m))

 

啊啊啊啊啊啊数论啊啊啊啊啊啊啊

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

fiddler抓模拟器的手机包

1、fiddler中设置 a、设置抓取https接口 b.设置端口和允许所有设备连接 下载2、下载模拟器并打开模拟器 3、开始模拟器是平板模式,改成手机竖屏模式 改成900*1600 4、在window中的运行中输入:inetcpl.cpl b、点击连接 输入代理地址:127.0.0.1 端口号:8888 模拟器中的设置…

浴火之路完整无修百度/云网盘下载[HD1080高清]在线免费无删减下载链接

电影,历来是承载故事的一种重要媒介,但《浴火之路》这部影片,却不仅仅是一个故事,它是一次人性的深刻剖析,是对爱与痛苦的共鸣,在这个瞬息万变的时代,很多人可能会问:看电影究竟是为了什么?为了娱乐、为了消遣,还是寻找那久违的感动?当你坐在影院那舒适的座椅上,当…

prometheus学习笔记之黑盒探针blackbox_exporter

项目地址:https://github.com/prometheus/blackbox_exporter 一、安装blackbox_exporterwget https://github.com/prometheus/blackbox_exporter/releases/download/v0.25.0/blackbox_exporter-0.25.0.linux-amd64.tar.gz tar xf blackbox_exporter-0.25.0.linux-amd64.tar.gz…

uniapp-开发APP的坑点,文件上传,选择方面

1.文件上传 uni.uploadFile 在H5端可以上传成功,在APP无法上传成功, 1.先检查url:必须是全路径,之前是 url: /api/test 所以上传不上去,2,manifest配置权限<uses-feature android:name="android.hardware.camera"/> <uses-feature android:name="an…

iPhone 16 Pro上百款充电头充电功率测试

一、苹果原装充电器测试截图: 以下所有测试均为“充电头网实验室”评测,且测试手机为最新的iPhone 16 Pro手机,充电线均为iPhone 16 Pro 最新的原装编织充电线,所以只有充电头是不同的,排除了其他因素的干扰。视频网站来自于B站: https://www.bilibili.com/video/BV1XixL…

如何用AI快速开发一个小程序?

从idea到上线,只花了2个小时,整个流程中,除了手动调整样式的数值,没有写一行代码,全部由AI能力,结合prompt帮助我完成。ChatGPT这个轰动全球的产品自问世以来,已经过了将近2年的时间,各行各业的精英们如火如荼的将AI能力应用到自己生产的产品中来。为分担人类的部分工作…

装酷就来这,秒变黑客精英的6个网站

有网友问:有没有装黑客,炫酷的网站? 回答:当然有。当黑客,门槛太高;装黑客,都是1秒钟的事情。下面介绍几个: 第一个:hackertyper 网址:https://hackertyper.net/ 随意输入文字,屏幕出现整齐的代码 这个是装酷首选,速度快,网页干净! 第二个:GEEKtyper 网址: ht…

webapi发布---问题解决

一. 127.0.0.1是回路地址,来检验本机TCP/IP协议栈,实际使用过程中服务端不在本机,是外部地址,要用IP地址测试。 外部用户采用IP+端口号访问,如下图浏览器访问不了,400错误。解决方案: 因为 IIS 7 采用了更安全的 web.config 管理机制,默认情况下会锁住配置项不允许更改…

virtualbox虚拟机的安装及xshell的连接

1.新建 填入虚拟机名字 虚拟机光盘为外部下载:https://openanolis.cn 点击下载点击第二个x86_64其他默认 2.设置 设置网络网卡 网卡1 网卡2 3.启动安装 一律默认 4.连接网络5.打开终端输入ip addr获取网络ip 6.打开xshell将ip地址输入到主机7.输入虚拟机用户名和密码即连接成功…

virtualbox虚拟机的安装

1.新建 填入虚拟机名字 虚拟机光盘为外部下载:https://openanolis.cn 点击下载点击第二个x86_64其他默认 2.设置 设置网络网卡 网卡1 网卡2 3.启动安装 一律默认 4.连接网络5.打开终端输入ip addr获取网络ip 6.打开xshell将ip地址输入到主机7.输入虚拟机用户名和密码即连接成功…

webapi测试例子

1. 修改WebApiConfig.cs中路由路径问题:webapi的默认路由并不需要指定action的名称(WebApi的默认路由是通过http的方法get/post/put/delete去匹配对应的action),但默认路由模板无法满足针对一种资源一种请求方式的多种操作。解决:打开App_Start文件夹下,WebApiConfig.cs …