当前位置: 首页 > news >正文

python生成 2048位随机质数 Miller-Rabin质数测试算法

Miller-Rabin质数测试算法是一种基于随机化的算法,用于判断一个数是否为质数。该算法具有高效性和强健性,通常被用于加密算法中生成大素数。

该算法基于以下两个事实:对于质数ppp和任意整数aaa,有ap−1≡1(modp)a^{p-1} \equiv 1 \pmod{p}ap11(modp);对于任意整数nnn,如果nnn不是质数,则n−1n-1n1可以表示为2rd2^r d2rd的形式,其中r≥1r \geq 1r1ddd是奇数。因此,我们可以选择一个随机整数aaa,计算ad,a2d,…,a2r−1da^{d}, a^{2d}, \ldots, a^{2^{r-1}d}ad,a2d,,a2r1d,如果其中任何一个模nnn等于111,或者等于n−1n-1n1,则nnn可能是质数;否则,nnn一定不是质数。

由于Miller-Rabin质数测试算法具有高效性和强健性,通常被用于生成大素数,特别是在RSA等加密算法中。在实际应用中,一般会对该算法进行多次迭代,以增加正确性的概率。

import randomdef is_prime(n, k=5):# 如果 n <= 1,则返回 Falseif n <= 1:return False# 检查 n 是否等于小于 100 的质数small_primes = [2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59, 61, 67, 71, 73, 79, 83, 89, 97]if n in small_primes:return Truefor p in small_primes:if n % p == 0:return False# 找到 r 和 d 以满足 n-1 = 2^r * dr, d = 0, n-1while d % 2 == 0:r += 1d //= 2# 进行 k 次测试for i in range(k):a = random.randint(2, n-2)x = pow(a, d, n)if x == 1 or x == n-1:continuefor j in range(r-1):x = pow(x, 2, n)if x == n-1:breakelse:return Falsereturn Truedef generate_prime_number(length):while True:# 生成一个长度为 length 的随机奇数num = random.getrandbits(length)num |= (1 << length - 1) | 1# 检查 num 是否为质数if is_prime(num):return numprint(generate_prime_number(2048))

该代码中的is_prime函数实现了Miller-Rabin质数测试算法。函数接受两个参数,n表示要测试的数,k表示测试次数。该函数首先检查n是否小于等于1,或者是否能够被小于100的质数整除。如果n不满足这些条件,就找到一个r和d,使得n−1=2r∗dn-1=2^r * dn1=2rd。然后,它对于kkk个随机的整数aaa执行Miller-Rabin测试。如果对于所有的测试aaa都有x=1x=1x=1x=n−1x=n-1x=n1,则n很可能是一个质数。如果对于任何一个aaa,都有x≠1x \neq 1x=1x≠n−1x \neq n-1x=n1,则n不是质数。如果在所有测试中都没有发现n不是质数的证据,则n很可能是一个质数。

generate_prime_number函数生成一个长度为length的随机奇数,然后检查它是否为质数。如果是,就返回它;否则,就

相关文章:

python生成 2048位随机质数 Miller-Rabin质数测试算法

Miller-Rabin质数测试算法是一种基于随机化的算法&#xff0c;用于判断一个数是否为质数。该算法具有高效性和强健性&#xff0c;通常被用于加密算法中生成大素数。 该算法基于以下两个事实&#xff1a;对于质数ppp和任意整数aaa&#xff0c;有ap−1≡1(modp)a^{p-1} \equiv 1…...

♡ — MySQL 查询缓存

MySQL 查询缓存 执行查询语句的时候&#xff0c;会先查询缓存。MySQL 8.0 版本后移除&#xff0c;因为这个功能不太实用。 my.cnf 加入以下配置&#xff0c;重启 MySQL 开启查询缓存&#xff1a; query_cache_type1 query_cache_size600000MySQL 执行以下命令也可以开启查询缓…...

死锁检测组件 -- 使用hook检测死锁

目录 hook hook是什么 dlsym()函数 hook的实现步骤 加入hook的demo C/CLinux服务器开发/后台架构师【零声教育】-学习视频教程-腾讯课堂 hook hook可以把系统或第三方库提供的函数&#xff0c;替换成我们写的同名函数。会调用我们实现的函数。 hook是什么 hook提供了两…...

第2集丨Java中的数据类型汇总

目录一、数据类型分类二、基本数据类型取值范围数据类型的转换byte和char的关系三、包装类一、数据类型分类 二、基本数据类型 取值范围 比特(bit位) : 数据运算得最小存储单位字节(byte) : 数据最小存储单位bit和byte可以互相转换得&#xff0c;1 byte 8 bit位默认情况下&am…...

【基础篇】7 # 队列:队列在线程池等有限资源池中的应用

说明 【数据结构与算法之美】专栏学习笔记 什么是队列&#xff1f; 队列是一种操作受限的线性表数据结构&#xff0c;特点是先进先出&#xff0c;最基本的操作有&#xff1a;入队 enqueue()&#xff0c;放一个数据到队列尾部&#xff1b;出队 dequeue()&#xff0c;从队列头…...

matlab进行双目标定获取双目参数并打印教程

文章目录前言1.打开matlab进行双目标定2.获取想要的参数前言 在相同的标定算法和标定参数下&#xff0c;Python和Matlab的标定精度是相同的。因为标定精度主要取决于标定算法和标定参数的质量&#xff0c;而不是编程语言的选择。 不同的编程语言可能使用不同的库或实现细节&…...

JVM类加载机制

回到2018年的抖音哈哈. 回顾下&#xff1a; java开发环境: java编译运行过程: 1) 编译期&#xff1a;.java源文件&#xff0c;经过编译&#xff0c;生成.class字节码文件 2) 运行期&#xff1a;JVM加载.class并运行.class(0和1) 特点: 跨平台、一次编程,处处报错 名词解释: 1…...

8.1 优化概述

数据库性能取决于数据库级别的几个因素&#xff0c;例如表、查询和配置设置。这些软件结构导致了硬件级别的 CPU 和 I/O 操作&#xff0c;您必须将其最小化并尽可能提高效率。在研究数据库性能时&#xff0c;首先要学习软件端的高级规则和准则&#xff0c;然后使用墙上的时钟时…...

从0到1一步一步玩转openEuler--14 openEuler DNF(YUM)配置管理

文章目录14.1 DNF配置文件14.1.1 配置main部分14.1.2 配置repository部分14.1.3 显示当前配置14.2 创建本地软件源仓库14.3 添加、启用和禁用软件源14.3.1 添加软件源14.3.2 禁用软件源14.3.3 启用软件源DNF是一款Linux软件包管理工具&#xff0c;用于管理RPM软件包。DNF可以查…...

leetcode707 设计链表 带有输入和输出的

题目&#xff1a; 设计链表的实现。您可以选择使用单链表或双链表。单链表中的节点应该具有两个属性&#xff1a;val 和 next。val 是当前节点的值&#xff0c;next 是指向下一个节点的指针/引用。如果要使用双向链表&#xff0c;则还需要一个属性 prev 以指示链表中的上一个节…...

100种思维模型之非sr思维模型-012

什么是sr? sr是stimulus-response的缩写&#xff0c;意思是刺激反应。 那么非sr思维模型就是非刺激反应思维模型的意思。 今天我们来聊聊非sr思维模型——一个提醒我们思考&#xff0c;提醒我们任何时刻都有选择权的思维模型。 本文依然从三个方面进行介绍&#xff0c;何谓…...

绿竹生物再冲刺港交所上市:暂未商业化,孔健夫妇为实控人

近日&#xff0c;北京绿竹生物技术股份有限公司&#xff08;下称“绿竹生物”&#xff09;在港交所递交招股书&#xff0c;准备在港交所主板上市&#xff0c;中金公司为其独家保荐人。据贝多财经了解&#xff0c;绿竹生物曾于2022年6月28日在港交所递表。 相较于此前招股书&am…...

加拿大MSB金融牌照申请方案

什么是加拿大MSB金融牌照&#xff1f; 根据犯罪所得&#xff08;洗钱&#xff09;和恐怖主义融资法案&#xff0c;您的企业必须在加拿大金融交易和报告分析中心 (FINTRAC) 注册成为货币服务企业。自 2020 年 6 月 1 日起&#xff0c;外国货币服务企业也必须在 FINTRAC 注册&…...

javaEE 初阶 — 滑动窗口

文章目录滑动窗口1 滑动窗口下如何处理丢包TCP 工作机制&#xff1a;确认应答机制 超时重传机制 连接管理机制 滑动窗口 确认应答机制、超时重传机制、连接管理机制 都是给 TCP 的可靠性提供支持的。 虽然事变的比较可靠了&#xff0c;但是是有牺牲的&#xff0c;那就是传输…...

大咖说·图书分享|狼书(卷3):Node.js高级技术

Node.js都有哪些需要掌握的高级技术&#xff1f;前端为什么同样需要学习&#xff1f; Node.js未来的发展趋势究竟如何&#xff1f;本期大咖说&#xff0c;Node布道师桑世龙携新作《狼书(卷3)&#xff1a;Node.js高级技术》展开分享。 ● 嘉宾介绍 桑世龙&#xff1a;Node布道…...

1.5配置NBMA和P2MP网络类型

1.3.3实验5:配置NBMA和P2MP网络类型 1. 实验需求 控制OSPF DR的选举修改OSPF的网络类型2. 实验拓扑 配置NBMA和P2MP网络类型实验拓扑如图1-13所示。 图1-13 配置NBMA和P2MP网络类型 3. 实验步骤 帧中继的配置如图1-14和图1-15所示...

Java面试题

三次握手&#xff0c;四次挥手中&#xff0c;为什么要挥手四次 第一次握手&#xff0c;客户端发送同步报文到服务端&#xff0c;客户端知道自己有发送数据能力&#xff0c;不知道服务端是否有发送、接受数据能力。 第二次握手&#xff0c;服务端收到同步报文&#xff0c;并回复…...

opencv锁定鼠标定位

大家好&#xff0c;我是csdn的博主&#xff1a;lqj_本人 这是我的个人博客主页&#xff1a; lqj_本人的博客_CSDN博客-微信小程序,前端,python领域博主lqj_本人擅长微信小程序,前端,python,等方面的知识https://blog.csdn.net/lbcyllqj?spm1011.2415.3001.5343哔哩哔哩欢迎关注…...

机器连接和边缘计算

以一种高效、可扩展的方式进行连接和边缘计算的结合&#xff0c;解决了在工业物联网应用中的机器数据集成问题。 一 边缘计算 边缘计算描述了由中央平台管理的数据分散式处理。边缘计算对于工业物联网而言非常重要。在许多应用程序中&#xff0c;由于数据量非常大&#xff0c;…...

利用NGROK将本地网站发布为一个公开网站

一般与第三方服务集成时&#xff0c;需要提供https的回调URL&#xff0c;本地开发阶段可以利用NGROK将本地网站发布为公开的https网站。https://ngrok.com/downloadWindow下载地址&#xff1a;https://bin.equinox.io/c/bNyj1mQVY4c/ngrok-v3-stable-windows-amd64.zip以Window…...

Vulnhub 渗透练习(一)—— Breach 1.0

环境搭建 环境下载&#xff1a; https://www.vulnhub.com/entry/breach-1,152/ 环境描述&#xff1a; Vulnhub 中对此环境的描述&#xff1a; VM 配置有静态 IP 地址 (192.168.110.140)&#xff0c;因此您需要将仅主机适配器配置到该子网。 这里我用的是 VMware &#xff0…...

初探Spring采用Spring配置文件管理Bean

文章目录Spring容器演示--采用Spring配置文件管理Bean&#xff08;一&#xff09;创建Maven项目&#xff08;二&#xff09;添加Spring依赖&#xff08;三&#xff09;创建杀龙任务类&#xff08;四&#xff09;创建勇敢骑士类&#xff08;五&#xff09;采用传统方式让勇敢骑士…...

【手写 Vuex 源码】第十二篇 - Vuex 插件机制的实现

一&#xff0c;前言 上一篇&#xff0c;主要介绍了 Vuex 插件的开发&#xff0c;主要涉及以下几个点&#xff1a; Vuex 插件的使用介绍&#xff1b;Vuex 插件开发和使用分析&#xff1b;Vuex 插件机制的分析&#xff1b; 本篇&#xff0c;继续介绍 Vuex 插件机制的实现&…...

图像去噪技术简述

随着每天拍摄的数字图像数量激增&#xff0c;对更准确、更美观的图像的需求也在增加。然而&#xff0c;现代相机拍摄的图像不可避免地会受到噪声的影响&#xff0c;从而导致视觉图像质量下降。因此&#xff0c;需要在不丢失图像特征&#xff08;边缘、角和其他尖锐结构&#xf…...

数据迁移——技术选型

日常我们在开发中&#xff0c;随着业务需求的变更&#xff0c;重构系统是很常见的事情。重构系统常见的一个场景是变更底层数据模型与存储结构。这种情况下就要对数据进行迁移&#xff0c;从而使业务能正常支行。 背景如下&#xff1a;老系统中使用了mongo数据库&#xff0c;由…...

第二十七章 java并发常见知识内容(CompletableFuture)

JAVA重要知识点CompletableFuture常见函数式编程操作创建 CompletableFuture静态工厂方法处理异步结算的结果异常处理组合 CompletableFuturethenCompose() 和 thenCombine() 区别并行运行多个 CompletableFutureCompletableFuture Java 8 才被引入的一个非常有用的用于异步编…...

Qt扫盲-QMake 使用概述

QMake 使用概述一、概述二、简单开始三、使应用程序可调试1. 添加平台特定的源文件2. 如果文件不存在&#xff0c;停止qmake3. 检查多个条件一、概述 本教程教你qmake的基础知识。qmake 其实就是一个自动化编译的流程控制文件&#xff0c;也是Qt程序的生成makefile的工具&…...

Spring Cloud之Zuul

目录 简介 Zuul中的过滤器 过滤器的执行流程 使用过滤器 route过滤器的默认三种配置 路由到服务 路由到url地址 转发给自己 自定义过滤器 简介 Zuul是Netflix开源的微服务网关&#xff0c;主要功能是路由转发和过滤器&#xff0c;其原理也是一系列filters&#xff0…...

为什么要有分布式锁?

Redis避坑指南&#xff1a;为什么要有分布式锁&#xff1f;作者&#xff1a;京东保险 张江涛1、为什么要有分布式锁&#xff1f;JUC提供的锁机制&#xff0c;可以保证在同一个JVM进程中同一时刻只有一个线程执行操作逻辑&#xff1b;多服务多节点的情况下&#xff0c;就意味着有…...

【Redis】Redis持久化之RDB详解(Redis专栏启动)

&#x1f4eb;作者简介&#xff1a;小明java问道之路&#xff0c;2022年度博客之星全国TOP3&#xff0c;专注于后端、中间件、计算机底层、架构设计演进与稳定性建工设优化。文章内容兼具广度深度、大厂技术方案&#xff0c;对待技术喜欢推理加验证&#xff0c;就职于知名金融公…...

在哪个网站可以搜画画做品/商业软文案例

准备工作&#xff1a; 1、安装并配置Java运行环境 2、数据库的安装配置&#xff08;MySql&#xff09; 3、安装并配置服务器(Tomcat) 4、Maven 5、Eclipse安装配置 6、使用Eclipse创建web app项目 JAR包集成&#xff1a;&#xff08;pom.xml&#xff09; <project xml…...

前端开发培训机构有哪些/鹤岗网站seo

最近在看Linux内存管理机制&#xff0c;但是几个概念开始还是云里雾里&#xff1a;swap、虚拟内存、page分页,都是与内存相关的一些信息&#xff0c;但是他们之间有什么区别呢&#xff1f;要明白这个&#xff0c;首先要知道什么是保护模式和实模式&#xff1f;老早以前的操作系…...

网站seo工程师怎么做/如何推广软件

菜鸟教程命令大全 http://www.runoob.com/linux/linux-command-manual.html 命令大全: http://man.linuxde.net/ tab &#xff1a;自动补全 Ctrll 清屏 (类似于clear命令) CtrlU 清空当前输入 ctrlc 关闭 man command 帮助 man &#xff1a;manual &#xff1a; 手工&…...

wordpress启用多站点/今日足球赛事分析推荐

泉源&#xff1a;/www.knowsky.com做开辟的光阴要做MySQL的数据库同步&#xff0c;两台安设一样的琐细&#xff0c;都是FreeBSD5.4&#xff0c;安设了Apache 2.0.55和PHP 4.4.0&#xff0c;MySQL的版本是4.1.15&#xff0c;都是而今最新的版本。 1. 安设置置 两台服务器&#x…...

网站开发的系统测试/广告推广 精准引流

问题详细描述假设&#xff0c;我已经在我的本地系统中保存了一个JSON文件&#xff0c;同时创建了一个Javascript文件&#xff0c;以便读取JSON文件并打印数据。JSON文件如下&#xff1a;{"resource":"A","literals":["B","C"…...

南京移动网站建设/网店推广方式

8.1.4路由表<?xml:namespace prefix o ns "urn:schemas-microsoft-com:office:office" />1、目的类型网络\路由器网络条目&#xff1a;数据包所要转发的目的网络地址路由器条目&#xff1a;到达ABR和ASBR路由器的路由Show ip routeShow ip ospf border-rout…...