Pollard-Rho学习笔记

news/2024/11/16 13:49:43/文章来源:https://www.cnblogs.com/wangsiqi2010916/p/18377347

1.利用最大公约数求出一个约数

n和某个数的公约数一定是n的约数,即\(\forall k \in\mathbf{N}_{+},\gcd(k,n) \mid n\),只要选取适当的k使得\(1<\gcd(k,n)< n\),,就能够求得n的一个约数

满足这个条件的k很多,n的因数的大部分倍数都可行

我们通过\(f(x)=(x^2+c)\bmod n\)来生成一个序列\(\{x_i\}\):随机取一个\(x_1\),令\(x_2=f(x_1),x_3=f(x_2),\dots,x_i=f(x_{i-1})\),其中c是一个随机选取的常数

举个例子:

n=50,c=6,x_1=1,f(x) 生成的数据为:\(1, 7, 5, 31, 17, 45, 31, 17, 45, 31,\dots\)

可以发现在x以后,生成的数就在\(31,17,45\)之间循环了

如果将这些数如下图一样排列起来,会发现这个图像酷似一个\(\rho\),算法也因此得名 rho

该式子满足\(\forall x \equiv y(\bmod p), f(x)\equiv f(y)(\bmod p)\),其中\(p|n\)

证明:
\(x\equiv y \pmod p\),则可以将它们表示为\(x=k_1p+a\)\(y=k_2p+a\),满足\(k_1,k_2,a\in \mathbb{Z},a\in \left[0,p\right)\)
\(f(x)=(x^2+c) \bmod n\),因此\(f(x)=x^2+c-kn\),其中\(k \in \mathbb{Z}\)

\[\begin{aligned} f(x) & = x^2+c-kn\\ & = (k_1p+a)^2+c-kn\\ & = k_1^2 p^2+2k_1pa+a^2+c-kn\\ & \equiv a^2+c \pmod p \end{aligned} \]

同理,\(f(y) \equiv a^2+c \pmod p\),因此\(f(x) \equiv f(y) \pmod p\)

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

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

相关文章

DaVinci Resolve Studio 19.0 正式版 (macOS, Windows) - 剪辑、调色、特效和音频后期制作

DaVinci Resolve Studio 19.0 正式版 (macOS, Windows) - 剪辑、调色、特效和音频后期制作DaVinci Resolve Studio 19.0 正式版 (macOS, Windows) - 剪辑、调色、特效和音频后期制作 Blackmagic Design DaVinci Resolve Studio 请访问原文链接:https://sysin.org/blog/davinci…

读软件开发安全之道:概念、设计与实施07密码学(上)

密码学1. 加密工具 1.1. 加密工具之所以没有得到充分使用,就是因为人们往往认为密码学是一个准入门槛极高的专业领域 1.2. 如今的加密学大部分都源自纯数学,所以只要能够正确使用,加密学确实行之有效1.2.1. 不代表这些算法本身确实无法破解,而是需要数学领域出现重大突破才…

004.MinIO-DirectPV分布式存储部署

MinIO部署介绍 部署概述 Kubernetes hostpath、local和本地静态配置都存在需要事先在node节点准备好可用的块存储或文件系统,例如对插入的硬盘,或者磁盘阵列做分区格式化,文件系统则需提前创建好Kubernetes即将利用的挂载目录,并且两种方法都会有亲和性限制,无法做到让Kub…

dotnet 默认创建的 JsonContent 没有 Content Lenght 的内容头

本文记录一个 dotnet 的设计问题,默认创建出来的 JsonContent 对象的 Headers 里,是没有 Content-Length 信息的如下面代码创建一个 JsonContent 对象 using System.Net.Http.Json;var foo = new Foo();var jsonContent = JsonContent.Create(foo);class Foo {public int Val…

dotnet X11 多次调用 XPutImage 是否能做到渲染同步

本文将告诉大家我在麒麟系统和统信系统以及分别搭配飞腾和兆芯处理器的设备上,使用连续的 XPutImage 方法推送界面,测试是否能够在一次渲染内完成。测试结论是不能做到渲染同步本文的核心测试代码如下XPutImage(display, handle, gc, ref xImage, @event.ExposeEvent.x, @eve…

dotnet C# 结构体出方法弹栈之后的行为

本文记录我在 .NET 9 里测试的行为,在方法里面创建的在栈上的结构体,在方法执行结束之后,栈上的结构体将会被弹栈进入不受管理区域,此时的结构体内存内容不会立刻被清空或被改写这是我在对 dotnet X11 栈空间被回收导致调用 XPutShmImage 闪退 博客的内容进行更多的测试,确…

Tesla 开发者 API 指南:BLE 密钥 – 身份验证和车辆命令

注意:本工具只能运行于 mac 或者 linux, win下不支持。 1. 克隆项目到本地 https://github.com/teslamotors/vehicle-command.git 2. 项目根目录下执行命令 go get ./... go build ./... go install ./... cd cmd cd tesla-control go build 3. 生成密钥 生成私钥 openssl e…

it程序员常用的技术社区网站有哪些?

it程序员常用的技术社区网站有哪些??作为程序员,选择好合适的开发社区对提高自己的编程能力会有很大的帮助,技术人员经常会在各种技术交流社区游逛。优秀的实时开发社区确实能帮你积累不少开发经验1、gitHub是一个面向开源及私有软件项目的托管平台,因为只支持git作为唯一…

推荐7款美观且功能强大的WPF UI库

前言 经常看到有小伙伴在DotNetGuide技术社区交流群里提问:WPF有什么好用或者好看的UI组件库推荐的?,今天大姚给大家分享7款开源、美观、功能强大、简单易用的WPF UI组件库。 WPF介绍 WPF 是一个强大的桌面应用程序框架,用于构建具有丰富用户界面的 Windows 应用。它提供了灵…

HTML+JS初试水

情境 参加了培训的第二次课, 这里是第二颗的作业题, 及我的解答. 1、使用 html 写一个网页,要求满足以下条件: (1)网页中含有任意一张图片,图片路径使用绝对路径,鼠标悬停在图片时出现“马哥教育”文本,且点击图片可跳转至马哥教育官方页面 (2)网页中包含账号、密码登…

Vue3的学习---8

8. Vue可复用解决方案 Vue可复用方案是指在Vue.js项目中,通过创建可复用的组件、指令、插件等,来提高代码的复用性和可维护性常见的Vue可复用方案有:组件(Components)、指令(Directives)、插件(Plugins)、混入(Mixins)、高阶组件(Higher-Order Components, HOC)等…

蓝帽杯2020-Misc-熟悉的解密

蓝帽杯2020-MISC-熟悉的解密 前言 怎么说呢,我觉得对我一个不懂加解密算法的人来说,应该算是Crypto,不过对于专业人员来说可能TEA、AES、RSA、LCG这种应该都比较ez(like 编码?) 一、题目 IyEvdXNyL2Jpbi9lbnYgcHl0aG9uDT== Iy0qLSBjb2Rpbmc6IHV0Zi04IC0qLQ0= aW1wb3J0IHN…