信息安全与数学基础-笔记-③一次同余方程

news/2024/5/20 1:32:41/文章来源:https://blog.csdn.net/weixin_60521036/article/details/129025355

知识目录

  • 一次同余方程的解
  • 中国剩余定理
  • 中国剩余定理的应用

一次同余方程的解


本文只研究一次同余方程的解。


f(x) 0 (mod m),
若有一个s能够满足该式子,那么该数字就是该式子的解,
在同余方程式中的解一般写成:xs (mod m)

  • 同余方程式中的解释剩余类,不同解即不同剩余类,一个解代表一个剩余类
  • 设:f(x) = ax, ax 1 (mod m) ,若(a,m) 1, 则 ax 1 (mod m)一定有唯一一个解。
    解释:因为am互素,所以ax 1 该公式就是一个求逆的公式,使用欧几里德算法后再裴蜀等式求逆即可求出 sa + tm = 1 ,所以s就是x的唯一解。
  • 同上一条差不多,若 ax b (mod m) ,若(a,m) 1,则则 ax 1 (mod m)一定有唯一一个解。
    解释:上面两条为啥有唯一一个解?因为解是剩余类,所以我们在完全剩余系中找解是必然的,所以解必然是(0,1,2,3…m-1)又因为我们式子中乘了a,所以完全剩余系中全部乘a也无伤大雅,仍旧是完全剩余系,(a0,a1,a2,a3…a(m-1)),然后观察该变化后的剩余系,我们要找出ax=1的解,必然在该剩余系中,而且只有一个,因为完全剩余系中都是互素的,因此只有唯一一个解。

ax b (mod m)如何求解?
下面两种都必须判断a和m除去最大公因数后是否互素

  • 一:求有多少个解
    (a,m)= d ,d即为解数
  • 二:化简方程式
    a/d * x b / d (mod m/d),同时除以最大公因数
  • 三:按照最简单的方法求解
    先求出a/d * x 1 (mod m/d)的唯一一个解,假设为:x0x_0x0
    然后特解就是:x0x_0x0 * b / d
  • 四:我们知道了一个,需要求出其他解
    那么通解就是可以表示所有解,通解即:
    x0x_0x0* b / d + m/d * t ( t = 0,1…(m-1) ),很明显当t = 0的时候就是特解。
  • 总结
    在这里插入图片描述

中国剩余定理

方程式形如↓:

  • 方程式条件:
    1:mim_imi之间必须是两两互素
    2:x的系数必须是1
    在这里插入图片描述
    因为x的系数都必须为1,这种方程式解只有一个
  • 如何求解?
    第一步,先令:
    在这里插入图片描述

第二步:(把数带进去求解一次同方程式即可)

说明:我们的Mi_ii−^-1^11是Mi_ii模mi_ii下求出来的逆也就是说:
Mi_ii−^-1^11 × Mi_ii 三 1 (mod mi_ii

在这里插入图片描述

  • 假设mim_imi之间不是两两互素的如何求解
    比如:
    在这里插入图片描述
    这时候我们可以选择将模数拆开分解
    在这里插入图片描述
    将上面的式子化简得:
    在这里插入图片描述
    观察到:x1有两个,因为模数不一样,最后却选择了mod 8
    解释:因为mod 8的解和mod 4的解有重合的地方,但因为mod 4 的解是比mod 8的解的个数多,并且有的不符合mod 8的解,所以我们选择mod 8的,因为这样mod 8的解也能用于mod 4的解,两者通用。
    因此最后拆解的结果为:
    在这里插入图片描述

  • 假设x的系数不是全都为1
    在这里插入图片描述

我们先将系数不是为1的式子先单独求出他的解,很明显就是:
在这里插入图片描述
然后再拆成两个方程式分别求解:
在这里插入图片描述
第一个方程式解为:
在这里插入图片描述

在这里插入图片描述

第二个方程式解为:
在这里插入图片描述

中国剩余定理的应用

当我们计算515^1510^000^000^000^00(mod 391) 的时候计算量很大
这时候发现391=17×23
利用这个分解因子
在这里插入图片描述
因为5和另外两个模数都是互素,并且两个模数也是素数,所以直接使用欧拉定理将次幂减少
在这里插入图片描述
最后解同余方程组即可,使用中国剩余定理:
在这里插入图片描述


over.


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

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

相关文章

04_Apache Pulsar的可视化监控管理、Apache Pulsar的可视化监控部署

1.4.Apache Pulsar的可视化监控管理 1.4.1.Apache Pulsar的可视化监控部署 1.4.Apache Pulsar的可视化监控管理 1.4.1.Apache Pulsar的可视化监控部署 第一步:下载Pulsar-Manager https://archive.apache.org/dist/pulsar/pulsar-manager/pulsar-manager-0.2.0/…

分布式对象存储——Apache Hadoop Ozone

前言 本文隶属于专栏《大数据技术体系》,该专栏为笔者原创,引用请注明来源,不足和错误之处请在评论区帮忙指出,谢谢! 本专栏目录结构和参考文献请见大数据技术体系 1. 概述 Ozone是Apache Hadoop项目的子项目&#xf…

嵌入式和Python(二):python初识及其基本使用规则

目录 一,python基本特点 二,python使用说明 ● 两种编程方式 ① 交互式编程 ② 脚本式编程 ● python中文编码 ● python行和缩进 ● python引号 ● python空行 ● python等待用户输入 ① 没有转换变量类型 ② 转换变量类型 ● python变…

Raspbian镜像无头烧录

Raspbian镜像无头烧录1. 源由2. 需求3. 分析4. 步骤4.1 删除tf卡分区内容4.2 balena烧录镜像4.3 配置USB直接登录4.4 配置WiFi 2.4G网络登录4.5 修改登录账号密码4.6 数据同步和弹出tf卡5. 登录5.1 登录异常处理5.2 WiFi 2.4G网络登录5.3 USB直接登录6. 参考资料7. 补充资料这里…

套接字实现TCP

套接字 套接字的意义就是客户端与服务器进行双向通信的端点,如果有不理解点上面套接字三字更近距离了解套接字。 网络套接字与客户连接的特定网络有关的服务端口号,这个端口号允许linux进入特定的端口号的连接转到正确的服务器进程。 套接字通信的建立过…

JVM运行时数据区—程序计数器

JVM中的程序计数寄存器(Program Counter Register)中,Register的命名源于CPU的寄存器,寄存器存储指令相关的现场信息。CPU只有把数据装载到寄存器才能够运行。JVM中的PC寄存器是对物理PC寄存器的一种抽象模拟。 一个线程对应一个…

JavaScript事件循环及任务处理

JavaScript事件循环及任务处理## 浏览器中 JavaScript 的执行流程和 Node.js 中的流程都是基于 事件循环 的。 理解事件循环的工作方式对于代码优化、性能优化很重要,有时对于正确的架构也很重要。 我们首先介绍事件循环工作方式的理论细节,然后介绍该知…

MMSeg绘制模型指定层的Heatmap热力图

文章首发及后续更新:https://mwhls.top/4475.html,无图/无目录/格式错误/更多相关请至首发页查看。 新的更新内容请到mwhls.top查看。 欢迎提出任何疑问及批评,非常感谢! 摘要:绘制模型指定层的热力图 可视化环境安装 …

Mysql数据库的(超详细)安装及环境变量的配置

一、 下载MySQL Mysql官网下载地址:https://downloads.mysql.com/archives/installer/ 1. 选择需要的版本点击Download进行下载 本篇文章选择的8.0.26版本 二、 安装MySQL 1. 选择设置类型 双击运行mysql-installer-community-8.0.26.msi,这里选择是…

数据库复习

什么是数据库系统 数据库系统是指在计算机系统中引入数据库后构成的系统,一般由数据库、数据库管理系统(及其开发工具)、应用系统、数据库管理员和用户构成 数据库系统的特点是什么? 数据结构化数据的共享性高,冗余度低且易扩充数据独立性高数…

Spring——Spring介绍和IOC相关概念

Spring是以Spring Framework为核心,其余的例如Spring MVC, Spring Cloud,Spring Data,Spring Security SpringBoot的基础都是Spring Framework。 Spring Boot可以在简化开发的基础上加速开发。 Spring Cloud分布式开发 Spring有…

『MyBatis技术内幕』源码调试前提

准备源代码包 下载源代码 3.4.6 版本 https://github.com/mybatis/mybatis-3/releases?page2 通过 idea 导入然后回自动下载所有依赖&#xff0c;根据 3.4.6 版本的 pom.xml 找到依赖的 mybatis-parent 版本 <parent><groupId>org.mybatis</groupId><ar…

【C++】string的使用及其模拟实现

文章目录1. STL的介绍1.1 STL的六大组件1.2 STL的版本1.3 STL的缺陷2. string的使用2.1 为什么要学习string类&#xff1f;2.2 常见构造2.3 Iterator迭代器2.4 Capacity2.5 Modifiers2.6 String operations3. string的模拟实现3.1 构造函数3.2 拷贝构造函数3.3 赋值运算符重载和…

yolov5算法,训练模型,模型检测

嘟嘟嘟嘟&#xff01;工作需要&#xff0c;所以学习了下yolov5算法。是干什么的呢&#xff1f; 通俗来说&#xff0c;可以将它看做是一个小孩儿&#xff0c;通过成年人&#xff08;开发人员&#xff09;提供的大量图片的学习&#xff0c;让自己知道我看到的哪些场景需要提醒给成…

最详细Sql语句优化大汇总 面试必问 含解释

欢迎补充和纠正&#xff01;&#xff01;&#xff01; 目录 欢迎补充和纠正&#xff01;&#xff01;&#xff01; 基础知识 相关索引的创建 一条sql语句的执行过程 sql语句关键字的执行顺序 SQL优化 使用explain来分析Sql语句 尽量用varchar代替char 使用数值代替字符…

maven生命周期、阶段与默认绑定插件梳理

maven生命周期、阶段与默认绑定插件梳理 CSDN博客 码云源码 1.maven生命周期、阶段与默认绑定插件 序号生命周期lifecycle阶段phase默认绑定插件(链接官网)默认绑定插件(链接maven库)说明1cleancleanmaven-clean-pluginmaven-clean-plugin清理2.1buildvalidate——验证2.2b…

zabbix自定义模版Templates和监控项items

注&#xff1a;此处使用的客户端和服务端版本均为 ubuntu 2204 自定义模板和监控项实现过程 在Zabbix 被监控主机上编写自定义监控项的取值的脚本,并加执行权限在Zabbix 被监控主机上的配置文件中添加自定义监控项,指定 key 和 对 key 赋值的脚本及参数在Zabbix Server 上使用…

传输线的物理基础(二):信号在传输线中的速度

铜中电子的速度信号在传输线上传输的速度有多快&#xff1f;如果人们经常错误地认为信号在传输线上的速度取决于导线中电子的速度。凭着这种错误的直觉&#xff0c;我们可能会想象降低互连的电阻会提高信号的速度。事实上&#xff0c;典型铜线中电子的速度实际上比信号速度慢约…

【Kettle-佛系总结】

Kettle-佛系总结Kettle-佛系总结1.kettle介绍2.kettle安装3.kettle目录介绍4.kettle核心概念1.转换2.步骤3.跳&#xff08;Hop&#xff09;4.元数据5.数据类型6.并行7.作业5.kettle转换1.输入控件1.csv文件输入2.文本文件输入3.Excel输入4.XML输入5.JSON输入6.表输入2.输出控件…

(Android-RTC-9)PeerConnectionFactory

开篇前瞎扯。很久没发技术文章了&#xff0c;此文一直放着草稿箱没有完成&#xff0c;感觉自己在家庭和工作中找到了拖延的借口&#xff0c;开始慢慢变得懒惰了&#xff0c;那是万万不行的。恰逢2023开年ChatGPT的爆火&#xff0c;更让我这些普通程序员危机感瞬间飙升&#xff…