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

目录

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)

总结

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

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

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

相关文章

单链表速通后续!

目录 1>>闲话 2>>头删 3>>查找 4>>在指定位置之前插入 5>>删除指定结点 6>>指定位置之后插入 7>>删除指定位置之后的结点 特别思考&#xff1a; 8>>销毁单链表 Slist.h Slist.c test.c 9>>总结 1>>闲话…

干货|SQL注入思路总结(非常详细)零基础入门到精通,收藏这一篇就够 了

1.SQL注入的业务场景及危害 1.1 什么是SQL注入 SQL注入是服务器端未严格校验客户端发送的数据&#xff0c;而导致服务端SQL语句被恶意修改并成功执行的行为称为SQL注入。 1.2 为什么会有SQL注入 代码对带入SQL语句的参数过滤不严格 未启用框架的安全配置&#xff0c;例如&a…

[面试] java开发面经-1

前言 目录 1.看到你的简历里说使用Redis缓存高频数据&#xff0c;说一下Redis的操作 2.说一下Redis的缓存击穿、缓存穿透、缓存雪崩 3.你的项目中使用了ThreadLocal&#xff0c;那么当有两个请求同时发出时&#xff0c;会怎么处理&#xff0c;可以同时处理两个请求吗 4.使用…

【多线程】多线程(12):多线程环境下使用哈希表

【多线程环境下使用哈希表&#xff08;重点掌握&#xff09;】 可以使用类&#xff1a;“ConcurrentHashMap” ★ConcurrentHashMap对比HashMap和Hashtable的优化点 1.优化了锁的粒度【最核心】 //Hashtable的加锁&#xff0c;就是直接给put&#xff0c;get等方法加上synch…

时间序列预测(一)——线性回归(linear regression)

目录 一、原理与目的 1、线性回归基于两个的假设&#xff1a; 2、线性回归的优缺点: 3、线性回归的主要目的是&#xff1a; 二、损失函数&#xff08;loss function&#xff09; 1、平方误差损失函数&#xff08;忽略了噪声误差&#xff09; 2、均方误差损失函数 三、随…

微服务实战——登录(普通登录、社交登录、SSO单点登录)

登录 1.1. 用户密码 PostMapping("/login")public String login(UserLoginVo vo, RedirectAttributes redirectAttributes, HttpSession session){R r memberFeignService.login(vo);if(r.getCode() 0){MemberRespVo data r.getData("data", new Type…

英伟达股价分析:英伟达股价能否上涨到150美元,接下来该如何操作?

来源&#xff1a;猛兽财经 作者&#xff1a;猛兽财经​ 猛兽财经核心观点&#xff1a; &#xff08;1&#xff09;华尔街投行Oppenheimer已将英伟达的目标价上调到了150美元。 &#xff08;2&#xff09;产品方面的最新进展和合作伙伴关系进一步提升了英伟达的市场地位。 &…

Nacos配置管理和Nacos集群配置

目录 Nacos作为配置中心实现配置管理 统一配置管理 如何在nocas添加配置文件 在微服务拉取nacos配置中心的配置 1&#xff09;引入nacos-config依赖 2&#xff09;添加bootstrap.yaml 3&#xff09;测试&#xff0c;读取nacos配置中心中配置文件的内容 ​编辑 总结&…

ORA-65096:公用用户名或角色名无效

CREATE USER DATA_SHARING IDENTIFIED BY "Ab2"; Oracle建立用户的的时候&#xff0c;可能会出现一直提示 ORA-65096:公用用户名或角色名无效&#xff1b; 我查了一下&#xff0c;好像是 oracle 12版本及以上版本的特性&#xff0c;用户名必须加c##或者C##前缀才能创…

拆解学习【反激-PD-氮化镓】(一)

小米67W桌面快充插座&#xff1a; 反激基本拓扑&#xff1a; 商用场景下&#xff0c;这个拓扑进行了如下优化&#xff1a; 1.Q22换成了氮化镓开关管&#xff0c;当然需要适配的能驱动氮化镓的控制芯片 2.D21二极管换成了MOS管。 3.由于是AC220V输入&#xff0c;设计了整流桥…

Android Camera系列(四):TextureView+OpenGL ES+Camera

别人贪婪时我恐惧&#xff0c;别人恐惧时我贪婪 Android Camera系列&#xff08;一&#xff09;&#xff1a;SurfaceViewCamera Android Camera系列&#xff08;二&#xff09;&#xff1a;TextureViewCamera Android Camera系列&#xff08;三&#xff09;&#xff1a;GLSur…

【Nginx系列】Nginx启动失败

&#x1f49d;&#x1f49d;&#x1f49d;欢迎来到我的博客&#xff0c;很高兴能够在这里和您见面&#xff01;希望您在这里可以感受到一份轻松愉快的氛围&#xff0c;不仅可以获得有趣的内容和知识&#xff0c;也可以畅所欲言、分享您的想法和见解。 推荐:kwan 的首页,持续学…

轻量服务器和云服务器ecs哪个好用一些?

轻量服务器和云服务器ecs哪个好用一些&#xff1f;轻量服务器与云服务器ECS在多方面存在显著差异&#xff0c;对于需要高性能计算和大规模数据处理的用户来说&#xff0c;ECS可能是更好的选择&#xff1b;而对于预算有限且需求较为简单的用户来说&#xff0c;轻量服务器可能更为…

Cpp::STL—list类的模拟实现(上)(13)

文章目录 前言一、结点类的实现二、迭代器类的实现迭代器类的存在意义迭代器类的模板参数构造函数运算符的重载--运算符的重载、!运算符的重载*运算符的重载->运算符的重载 总结 前言 注意本篇难度偏高&#xff0c;其主要体现在迭代器类的实现&#xff01;   什么&#xf…

QD1-P8 HTML 格式化标签(font、pre、b、strong、i、u、del、s、sub、sup)

本节学习&#xff1a;HTML 格式化标签。 本节视频 www.bilibili.com/video/BV1n64y1U7oj?p8 ‍ 一、font 标签 用途&#xff1a;定义文本的字体大小、颜色和 face&#xff08;字体类型&#xff09;。 示例 <!DOCTYPE html> <html><head><meta cha…

JAVA-数据结构-排序

1.直接插入排序 1.原理&#xff1a;和玩扑克牌一样&#xff0c;从左边第二个牌开始&#xff0c;选中这个&#xff0c;和前面的所有牌比较&#xff0c;插在合适的位置 public static void insertsort(int[] arr){//直接插入排序for (int i 1; i < arr.length; i) {//此循环…

LOID:有效提升遮挡条件下的车道检测精度

1.论文信息 论文标题&#xff1a;LOID: Lane Occlusion Inpainting and Detection for Enhanced Autonomous Driving Systems 作者&#xff1a;Aayush Agrawal, Ashmitha Jaysi Sivakumar, Ibrahim Kaif∗, Chayan Banerjee† 作者单位&#xff1a;印度马德拉斯印度理工学院&…

Web安全 - 路径穿越(Path Traversal)

文章目录 OWASP 2023 TOP 10导图定义路径穿越的原理常见攻击目标防御措施输入验证和清理避免直接拼接用户输入最小化权限日志监控 ExampleCode漏洞代码&#xff1a;路径穿越攻击案例漏洞说明修复后的安全代码代码分析 其他不同文件系统下的路径穿越特性Windows系统类Unix系统&a…

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

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

为什么很多人宁愿加钱买港版,也不愿买国行 iPhone 16

最近的 iPhone 16 市场&#xff0c;真的是倒反天罡&#xff0c;攻守异形啊。 过去&#xff0c;港版 iPhone 都是性价比的次选&#xff0c;便宜个 10% 都得考虑考虑。但今年&#xff0c;港版 iPhone 16 的价格&#xff0c;反而比国行还贵。 比如&#xff0c;闲鱼上某个卖家&am…