数论与同余 - 离散数学系列(七)

news2024/11/25 12:57:16

目录

1. 整数的性质

整除与因数

最大公约数与最小公倍数

2. 欧几里得算法

算法步骤

3. 模运算与同余

模运算

同余关系

同余的性质

4. 数论在密码学中的应用

RSA 加密算法

5. 实际应用场景

1. 数字签名

2. 哈希函数与数据完整性

3. 密钥交换

6. 例题与练习

例题1:欧几里得算法

例题2:模运算与同余

练习题

总结


引言

数论是离散数学的一个重要领域,主要研究整数的性质和整数之间的关系。在计算机科学中,数论在加密、算法设计和数据结构中有着广泛应用。本篇文章将介绍数论中的一些基础概念,包括整除、最大公约数、欧几里得算法、模运算和同余关系等内容。我们将结合实例和应用,帮助读者理解数论在密码学和计算中的重要作用。

1. 整数的性质

整除与因数

整除(Divisibility)是指,如果整数 a 能被整数 b 整除,则称 a 为 b 的倍数,b 为 a 的因数,记作 b | a。

  • 示例:24 能被 6 整除,因此我们可以写作 6 | 24

  • 非整除的情况:如果 a 不能被 b 整除,则记作 b ∤ a

最大公约数与最小公倍数

  • 最大公约数(Greatest Common Divisor, GCD):两个或多个整数的最大公约数是能整除这些整数的最大正整数,记作 gcd(a, b)

    • 示例gcd(18, 24) = 6,因为 6 是 18 和 24 的最大公约数。

  • 最小公倍数(Least Common Multiple, LCM):两个或多个整数的最小公倍数是能够被这些整数整除的最小正整数。

    • 示例lcm(4, 6) = 12,因为 12 是 4 和 6 的最小公倍数。

2. 欧几里得算法

欧几里得算法(Euclidean Algorithm)是一种用于计算两个整数最大公约数的有效方法。它基于以下递推关系:

  • 如果 b = 0,则 gcd(a, b) = a

  • 否则,gcd(a, b) = gcd(b, a mod b)

算法步骤

  • 示例:计算 gcd(252, 105)

    1. 252 mod 105 = 42

    2. gcd(105, 42)

    3. 105 mod 42 = 21

    4. gcd(42, 21)

    5. 42 mod 21 = 0,因此 gcd(42, 21) = 21 最终结果是 gcd(252, 105) = 21

3. 模运算与同余

模运算

模运算(Modulo Operation)用于计算两个整数相除后的余数,记作 a mod n,其中 a 是被除数,n 是除数。

  • 示例17 mod 5 = 2,因为 17 除以 5 的余数是 2。

模运算在计算机科学中非常常见,例如在循环结构中,我们经常使用模运算来确保数组的索引在合法范围内。

同余关系

同余(Congruence)是指,如果两个整数 a 和 b 除以正整数 n 得到相同的余数,则称 a 和 b 对模 n 同余,记作 a ≡ b (mod n)

  • 示例17 ≡ 2 (mod 5),因为 17 mod 5 = 22 mod 5 = 2

同余的性质

  • 自反性a ≡ a (mod n)

  • 对称性:如果 a ≡ b (mod n),则 b ≡ a (mod n)

  • 传递性:如果 a ≡ b (mod n)b ≡ c (mod n),则 a ≡ c (mod n)

4. 数论在密码学中的应用

数论在现代密码学中有着重要应用,特别是在公钥加密算法中,例如 RSA 算法。

RSA 加密算法

RSA 加密算法是基于大整数分解的困难性。RSA 的核心思想是利用两个大质数的乘积生成公钥和私钥,消息的加密和解密依赖于模运算和同余的性质。

  • 步骤概述

    1. 选择两个大质数 pq,计算它们的乘积 n = p * q

    2. 选择一个整数 e,满足 1 < e < ϕ(n),且 gcd(e, ϕ(n)) = 1,其中 ϕ(n) = (p-1)(q-1)

    3. 计算 d,使得 e * d ≡ 1 (mod ϕ(n))

    4. 公钥为 (e, n),私钥为 (d, n)

通过数论中的模运算和同余理论,RSA 可以实现消息的加密和解密,确保数据传输的安全性。

5. 实际应用场景

1. 数字签名

在数字签名中,数论用于生成唯一的签名,以确保消息的真实性和完整性。通过私钥对消息进行加密生成签名,接收者使用公钥进行验证。

2. 哈希函数与数据完整性

模运算常用于哈希函数中,将输入数据映射到一个固定范围,以便对数据进行快速查找和验证。在数据存储和网络传输中,哈希函数用于验证数据的完整性。

3. 密钥交换

在密钥交换协议(如 Diffie-Hellman)中,同余关系用于生成共享的秘密密钥,以便双方可以安全地进行通信。

6. 例题与练习

例题1:欧几里得算法

计算 gcd(56, 98)

解答

  • 98 mod 56 = 42

  • gcd(56, 42)

  • 56 mod 42 = 14

  • gcd(42, 14)

  • 42 mod 14 = 0,因此 gcd(42, 14) = 14 最终结果是 gcd(56, 98) = 14

例题2:模运算与同余

证明 35 ≡ 11 (mod 12)

解答

  • 计算 35 mod 12 = 11

  • 计算 11 mod 12 = 11 因此,35 ≡ 11 (mod 12)

练习题

  1. 使用欧几里得算法计算 gcd(120, 45)

  2. 判断以下等式是否成立:47 ≡ 5 (mod 7)

总结

本文介绍了数论的基本概念,包括整除、最大公约数、欧几里得算法、模运算和同余关系等。数论是离散数学中非常重要的分支,特别是在密码学和计算领域中有着广泛的应用。在接下来的文章中,我们将探讨代数结构的基本概念,如群、环和域,帮助读者理解抽象代数的基础。希望通过这些内容,读者能更深入地理解数论的应用,并掌握解决实际问题的方法。

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Java:方法详解

目录 一.什么是方法(method) 二.方法定义 三.方法中实参和形参的关系 四.方法重载 五.递归 一.什么是方法(method) 方法就是一个代码片段&#xff0c;再C语言中我们曾经学过一个类似的方式——函数&#xff0c;他们都是将具有独立功能的代码组织成一个整体&#xff0c;形成…

论文阅读 BLIP-2

Bootstrapping Language-Image Pre-training with Frozen Image Encoders and Large Language Models 使用冻结的图像编码器和大型语言模型进行语言-图像预训练的引导 BLIP-2 通过一个轻量级的查询变换器弥合了模态之间的差距。 Querying Transformer 第一阶段通过冻结的图像编…

高纯PGME和PGMEA市场规模:2023年全球市场规模为6.43亿美元

研究对象&#xff1a;高纯PGME和PGMEA行业 高纯PGME&#xff08;丙二醇甲醚&#xff09;和PGMEA&#xff08;丙二醇甲醚醋酸酯&#xff09;是重要的有机溶剂&#xff0c;广泛应用于半导体和面板制造领域&#xff0c;尤其是在光刻胶和清洗剂中。高纯度的PGME和PGMEA对于确保电子…

软件测试面试题600多条及答案

这些问题都是软件测试领域常见的面试问题&#xff0c;以下是一些可能的答案&#xff1a; 什么是软件测试&#xff1f; 软件测试是一系列活动&#xff0c;旨在评估软件产品的质量和性能&#xff0c;以确保它符合规定的需求和标准。它包括执行程序或系统以验证其满足规定需求的过…

javaWeb-Mybatis操作

1.删除 2.新增 注意&#xff1a; 1. 使用对象来接收 2.插入的数据的名字&#xff0c;要和对象的属性名一致 3.新增(主键返回) 4.更新 5.查询&#xff08;根据id查询&#xff09; 会把查询到的数据映射到字段上。 6.查询(条件查询) %张%-->%${name}%

前端必知必会-Bootstrap 5 工具提示Tooltip

文章目录 Bootstrap 5 工具提示如何创建工具提示定位工具提示 总结 Bootstrap 5 工具提示 工具提示组件是一个小的弹出框&#xff0c;当用户将鼠标指针移到元素上时会出现&#xff1a; 如何创建工具提示 要创建工具提示&#xff0c;请将 data-bs-toggle“tooltip” 属性添加…

人工智能长期记忆的新突破:HippoRAG的创新框架

人工智能咨询培训老师叶梓 转载标明出处 大模型&#xff08;LLMs&#xff09;在预训练后&#xff0c;如何有效地整合大量新经验&#xff0c;同时避免灾难性遗忘&#xff0c;一直是人工智能领域的难题。尽管已有的检索增强生成&#xff08;RAG&#xff09;方法为LLMs提供了长期…

云轴科技ZStack入选信通院《高质量数字化转型产品及服务全景图》AI大模型图谱

近日&#xff0c;由中国互联网协会中小企业发展工作委员会主办的“2024大模型数字生态发展大会暨铸基计划年中会议”在北京成功召开。会上发布了中国信通院在大模型数字化等领域的多项工作成果&#xff0c;其中重点发布了《高质量数字化转型产品及服务全景图&#xff08;2024上…

解决重写QSilder::sliderPress后点击位置与滑块显示位置不一样的问题

如下代码所示&#xff0c;我是用的是事件过滤器&#xff0c;也可以重写QSlider。 bool KuGouApp::eventFilter(QObject *watched, QEvent *event) {if(watched ui->progressSlider) {if (event->type()QEvent::MouseButtonPress) //判断类型{auto mouseEvent…

【封装案例】点和圆的关系

文章目录 前言1、point.h文件2、circle.h文件3、point.cpp文件4、circle.cpp文件5、主函数和全局函数6、测试 前言 本篇主要是用C实现一个判断点和圆关系的程序。 思路&#xff1a;已知点和圆心的坐标&#xff0c;通过比较两点间的距离和圆半径的大小&#xff0c;判断两者的关…

ubuntu下实时查看CPU,内存(Mem)和GPU的利用率

一、实时查看CPU和内存&#xff08;Mem&#xff09;利用率 htop官网&#xff1a;htop - an interactive process viewer sudo apt-get install htop htop ①. 顶部状态栏&#xff08;System Metrics Overview&#xff09; 这个区域显示系统的全局资源使用情况&#xff0c;包括…

18770 差值最大

### 思路 为了找到两个数x和y使得x - y的值最大&#xff0c;并且x在y的右侧&#xff0c;我们可以使用以下方法&#xff1a; 1. 从右向左遍历数组&#xff0c;记录当前遍历到的最大值max_right。 2. 对于每个元素a[i]&#xff0c;计算max_right - a[i]&#xff0c;并更新最大差…

我的研究生周报模板

2022.12.12——2022.12.18周报 本周计划 文献阅读&#xff1a;&#xff08;说明是打算读哪方面的论文&#xff09; 实验&#xff1a;&#xff08;打算做什么实验&#xff0c;目的是什么&#xff09; 项目&#xff1a;&#xff08;打算完成项目中哪一部分&#xff09; 本周进…

fastadmin 多商户模式下侧边栏跳转路径BUG

记录&#xff1a;仅作自己项目记录&#xff0c;在一个域名下部署多套项目时&#xff0c;若是多商户模式项目会出现跳转路径问题。 修改 \manystore\library\Auth.php 文件的 getSidebar 方法 // 1 改为&#xff1a; $v[url] isset($v[url]) && $v[url] ? $v[url] :…

Reqable抓包演示

1.Reqable下载 官网&#xff1a;Reqable 下载对应平台版本即可。 多个客户端。 2.使用教程 打开后如下图所示 根据提示安装完证书后即可使用。 这里以小猿口算的练习模式的抓包为例 1.打开雷电模拟器 在模拟器上安装Reqable&#xff0c;并安装证书&#xff0c;一定要安装…

【C++】基于红黑树封装set和map

&#x1f680;个人主页&#xff1a;小羊 &#x1f680;所属专栏&#xff1a;C 很荣幸您能阅读我的文章&#xff0c;诚请评论指点&#xff0c;欢迎欢迎 ~ 目录 前言一、更高维度的泛型二、模版参数三、比较逻辑的重写四、迭代器4.1 const迭代器4.2 重载4.3 - -重载 五、完整代…

EXCEL SUM系列求和函数大全

大家好&#xff0c;这里是效率办公指南&#xff01; &#x1f4ca; 在数据分析中&#xff0c;求和是一项基础而频繁的操作。Excel 提供了一系列求和函数&#xff0c;可以帮助我们快速汇总数据。今天&#xff0c;我们将介绍 Excel 中常用的求和函数&#xff0c;包括它们的语法和…

java 自定义填充excel并导出

首先在resources下面放一个excel模板 1. 方法签名和请求映射 RequestMapping(value "/ExportXls") public ResponseEntity<byte[]> rwzcExportXls(HttpServletRequest request, RequestBody JSONArray jsonArray) throws IOException { RequestMapping(val…

YOLO11改进 | 注意力机制 | 结合静态和动态上下文信息的注意力机制

秋招面试专栏推荐 &#xff1a;深度学习算法工程师面试问题总结【百面算法工程师】——点击即可跳转 &#x1f4a1;&#x1f4a1;&#x1f4a1;本专栏所有程序均经过测试&#xff0c;可成功执行&#x1f4a1;&#x1f4a1;&#x1f4a1; 上下文Transformer&#xff08;CoT&…

【MySQL 保姆级教学】数据库基础(重点)(2)

目录 1. 什么是数据库1.1 数据库的定义1.2 mysql 和 mysqld1.3 文件和数据库 2. 数据库的分类3. 连接数据库3.1 数据库的安装3.2 连接服务器&#xff08;数据库&#xff09;3.3 服务器 数据库 表 三者的关系 4. 数据库-表 和目录-文件 的关系5. MySQL 框架6. SQL 分类7. 储存引…