2.8 离散对数

思维导图:

 

2.8.1 模�n的整数幂和欧拉定理

欧拉定理
  • 定义: 对于互素的整数�a和�n,欧拉定理指出 ��(�)≡1mod  �aφ(n)≡1modn,其中 �(�)φ(n) 是小于�n且与�n互素的正整数的个数。
  • 公式: ��(�)≡1mod  �aφ(n)≡1modn (参见式 2.12)
欧拉定理的一般表达
  • 对于互素的�a和�n,存在至少一个整数�m,使得 ��≡1mod  �am≡1modn。
  • 当�=�(�)m=φ(n)时,满足上述关系。
  • �m称为:�mod  �amodn的阶,模�n的指数,或�a产生的周期长。
示例:7模19的各次幂
  • 7≡7mod  197≡7mod19
  • 72≡11mod  1972≡11mod19
  • 73≡1mod  1973≡1mod19
  • 由于73≡1mod  1973≡1mod19,表明序列是周期性的,周期长是3。
序列和周期
  • 所有序列以1结束,与欧拉定理一致。
  • 序列长度整除�(19)=18φ(19)=18。
  • 本原根的概念:若�a是�n的本原根,则 �,�2,…,��(�)a,a2,…,aφ(n) 是模�n各不相同且与�n互素。
  • 例如,素数19的本原根包括2, 3, 10, 13, 14和15。
本原根
  • 只有形式为 2, 4, ��pα 和 2��pα 的整数有本原根,其中�p是奇素数,�α是正整数。
表2.7 模19的整数幂
  • 表示了小于19的正整数�a模19的各次幂。
  • 阴影部分显示了每个底�a的幂序列。

 我的理解:

1. 模运算(Modular Arithmetic)

  • 基础概念: 模运算是一种数学运算,通常表示为“�mod  �amodn”,意思是将�a除以�n后的余数。
  • 应用: 在数论中,模运算用于创建一个有限的数字集(从0到�−1n−1),任何在这个集合之外的数都可以通过模运算“映射”回这个集合内。

2. 互素(Coprime)

  • 定义: 如果两个数的最大公约数是1,那么这两个数被称为互素。
  • 重要性: 在模�n的运算中,当一个数�a与模数�n互素时,一些重要的性质和定理适用。

3. 欧拉定理(Euler's Theorem)

  • 定理内容: 对于互素的两个正整数�a和�n,欧拉定理指出 ��(�)≡1mod  �aφ(n)≡1modn。
  • 欧拉函数: �(�)φ(n)是欧拉函数,表示小于�n且与�n互素的正整数的数量。
  • 意义: 这个定理提供了一个强大的工具来处理模�n下的幂运算。

4. 本原根(Primitive Roots)

  • 定义: 如果某个数�a的幂能生成模�n下所有互素的数字,那么�a被称为模�n的本原根。
  • 特点: 本原根是模运算中一个特殊且重要的概念,因为它可以生成模数下的所有可能结果。
  • 应用: 在实际中,本原根在加密和数论中有广泛应用。

5. 周期性(Periodicity)

  • 概念: 当我们连续计算一个数的幂时,比如�,�2,�3,…a,a2,a3,…,在模�n运算下,这个序列最终会重复。
  • 周期: 周期是指这个重复序列的长度。在欧拉定理的上下文中,周期至多为�(�)φ(n)。

理解方法

  • 实例分析: 例如,考虑7模19的幂。计算7,72,73,…7,72,73,…模19,我们发现这个序列在三次后重复(73≡1mod  1973≡1mod19),表明它有一个周期。
  • 数学证明: 推导和证明欧拉定理可以帮助更深入地理解这些概念。例如,通过验证��(�)≡1mod  �aφ(n)≡1modn的正确性。
  • 实际应用: 实际应用,如在加密算法中使用本原根和模幂运算,可以增强对这些概念的理解。

学到了什么?

1. 抽象和一般化(Abstraction and Generalization)

  • 思想: 将具体的数学问题抽象成一般性的规律。欧拉定理是一个很好的例子,它将特定的数学现象(比如模运算下的周期性)推广到更广泛的数学规律。
  • 方法: 学习在面对具体问题时,如何提取关键特性并将其推广到一般情况。

2. 数学归纳法(Mathematical Induction)

  • 思维方式: 在证明中,我们经常依赖于数学归纳法来证明一个定理对所有自然数或一系列对象都成立。
  • 技巧: 理解如何正确设置归纳的基础情况和归纳步骤,以确保整个推理过程的严密性。

3. 模运算的特性(Properties of Modular Arithmetic)

  • 思想: 理解模运算的基本特性,如同余的传递性、加法和乘法的模运算规则等。
  • 方法: 这有助于简化复杂的计算,特别是在处理大数字或未知变量时。

4. 互素的概念及其应用(Concept of Coprimality and its Applications)

  • 思维方式: 认识到互素的两个数在数论中的重要性,尤其是在模运算和欧拉定理中。
  • 技巧: 学会如何利用互素的性质来简化问题和证明。

5. 循环群和本原根的应用(Cyclic Groups and Primitive Roots)

  • 思想: 掌握循环群和本原根的概念以及它们在模运算和数论中的应用。
  • 方法: 理解如何通过这些概念来分析和解决与周期性和生成元相关的问题。

6. 证明中的构造方法(Constructive Methods in Proofs)

  • 技巧: 在证明定理时,如何构造特定的例子或反例来支持或反驳某个论点。
  • 思维方式: 学习如何通过构造具体的实例来更深刻地理解抽象的概念。

7. 数学逻辑和推理(Mathematical Logic and Reasoning)

  • 方法: 学习如何在证明过程中使用逻辑推理,包括直接证明、反证法、归谬法等。
  • 技巧: 理解如何有效地使用逻辑连接词(如“如果...那么...”,“当且仅当”等)来构建严谨的数学论证。

通过这些数学思想、思维方式、方法和处理技巧的学习,我们不仅能够理解特定的数学定理,还能够提高我们的数学素养,这在解决复杂的数学问题和进行科学研究中是非常宝贵的。

 

2.8.2 模算术对数(Discrete Logarithm)

普通对数与离散对数
  • 普通对数: 对于正实数,对数函数是指数函数的逆函数。
  • 离散对数: 在模算术中,离散对数是普通对数的类似概念,但应用于模运算。
普通对数的性质
  • 基本性质:
    • log⁡�(1)=0logb​(1)=0(任何底的对数中1的对数总是0)
    • log⁡�(�)=1logb​(b)=1(任何数的对数以其自身为底是1)
    • log⁡�(��)=log⁡�(�)+log⁡�(�)logb​(xy)=logb​(x)+logb​(y)(乘积的对数等于各对数的和)
    • log⁡�(��)=�×log⁡�(�)logb​(xr)=r×logb​(x)(幂的对数等于指数乘以底的对数)
离散对数的定义和性质
  • 定义: 若�a是素数�p的本原根,且��≡�mod  �ai≡bmodp,则�i称为�b以�a为底模�p的离散对数。
  • 唯一性: 对于任何整数�b,存在唯一的幂�i(0≤�≤�−10≤i≤p−1),使得 ��≡�mod  �ai≡bmodp。
  • 符号表示: dlog��(�)dlogap​(b) 表示�b以�a为底模�p的离散对数。
离散对数的计算例子
  • 使用非素数�=9n=9和本原根�=2a=2,计算�a的各次幂的模9值,来展示离散对数的概念。
离散对数的性质
  • 乘法性质:
    • 对于�=�dlog��(�)mod  �x=adlogap​(x)modp和�=�dlog��(�)mod  �y=adlogap​(y)modp,有��mod  �=�dlog��(�)+dlog��(�)mod  �xymodp=adlogap​(x)+dlogap​(y)modp。
  • 幂的性质:
    • dlog��(��)=[�×dlog��(�)]mod  �(�)dlogap​(xr)=[r×dlogap​(x)]modφ(p)。
离散对数表
  • 列出了给定本原根和模数下的离散对数值。

学到的数学思想和方法

  • 双向思维: 了解如何从一个数学概念(指数)推广到其逆运算(对数),包括在离散数学中。
  • 模运算应用: 理解模运算在数论中的应用,特别是在加密和编码中。
  • 本原根和周期性: 认识到本原根在生成模数下的所有数中的作用,以及它在离散对数中的重要性。
  • 算法实现: 理解离散对数的计算方法,以及它如何在实际问题中得到应用,特别是在密码学中。

我的理解:

1. 对数的基本概念

  • 对数: 对数是指数函数的逆运算。如果 ��=�ax=b,那么 �x 是 �b 以 �a 为底的对数。
  • 性质: 普通对数具有几个基本性质,如 log⁡�(1)=0logb​(1)=0,log⁡�(��)=log⁡�(�)+log⁡�(�)logb​(xy)=logb​(x)+logb​(y) 等。

2. 离散对数与模运算

  • 离散对数: 在模算术中,离散对数是普通对数在模运算下的对应概念。如果 ��≡�mod  �ai≡bmodp,那么 �i 是 �b 以 �a 为底模 �p 的离散对数。
  • 模运算: 模运算涉及整数除法和余数,形式为 �mod  �amodp(�a 除以 �p 的余数)。

3. 本原根的概念

  • 本原根: 在模 �p 下的本原根是一个数 �a,其幂能生成模 �p 下所有可能的结果(对素数模数而言)。
  • 重要性: 本原根的存在是离散对数有意义的基础。

4. 离散对数的性质

  • 唯一性: 对于给定的本原根 �a 和模数 �p,每个整数 �b 都有唯一的离散对数 �i(在 0 到 �−1p−1 之间)。
  • 计算: 离散对数的计算涉及到找到符合 ��≡�mod  �ai≡bmodp 的 �i 值。

5. 离散对数的应用

  • 密码学: 离散对数是许多加密系统的基础,特别是在公钥加密和数字签名中。

理解方法

  • 实际例子: 通过计算具体例子(如用本原根 2 和模数 9)来加深理解。
  • 对比普通对数: 理解离散对数与普通对数之间的相似之处和不同之处。
  • 数学证明: 研究离散对数的性质的证明,了解其背后的逻辑和原理。
  • 应用场景: 研究离散对数在密码学等领域的应用,理解其实际重要性。

更加形象的理解:

把它想象成一个时钟

想象一下你有一个非常特殊的时钟,这个时钟不是按照常规的1到12来标记,而是从0到�−1p−1(这里的�p是一个给定的数,通常是一个素数)。现在,我们的目标是使用这个时钟来理解离散对数。

步骤1: 选择本原根(时钟的起始点)

首先,我们需要选定一个起始点,这就是所谓的“本原根”。在我们的时钟上,假设这个点是2。这个起始点很特殊,因为从它开始,我们能够通过连续的乘法运算覆盖时钟上的每一个数字。

步骤2: 进行乘法(旋转时钟的指针)

现在,每当我们“乘以2”,时钟的指针就会跳到下一个数字。例如,从1开始(在我们的数学世界里,我们总是从1开始),乘以2一次,到2;再乘以2,到4;如此继续。每一次乘法都相当于旋转时钟的指针。

步骤3: 达到周期(时钟完成一圈)

不断地进行这样的乘法操作,我们的时钟指针最终会回到起点(即1的位置)。这个过程中,时钟的指针覆盖了每一个可能的数字,这正是本原根的神奇之处。在这个过程中,每一个数字都会被时钟指针指向一次且仅一次,直到它完成一整圈回到起点。

步骤4: 理解离散对数(记录步骤)

现在,假设我们想知道数字7在这个过程中是如何被到达的。换句话说,我们要问:“我们需要乘以几次2才能得到7?” 在我们的时钟上找到7,然后回溯它是如何通过连续乘2而来的。这个所需的乘法次数,就是7的离散对数。

应用:加密和密码学

在现实世界中,离散对数问题(即找出这个“乘法次数”)是非常困难的,尤其是当数字非常大时。这种计算上的难度是许多加密技术的基础,例如在生成安全的数字密钥时。

通过这种形象的比喻,我们可以更容易地理解离散对数及其在数学和密码学中的应用。每个数字在我们的特殊时钟上的位置,就像是它在数学世界中的离散对数。

学到了什么?

1. 问题简化和抽象

  • 思想: 将复杂问题简化为更基本的形式。
  • 应用: 在离散对数的研究中,问题被简化为寻找满足特定模运算条件的幂次。

2. 归纳和推广

  • 思维方式: 从特定情况(如本原根的存在性)归纳出一般规律。
  • 方法: 通过具体实例(例如,使用特定的本原根和模数)来展示和验证一般规律。

3. 模运算的性质

  • 思想: 理解和应用模运算的基本性质,如同余性、乘法性质等。
  • 技巧: 在证明过程中灵活运用模运算的规则来简化计算和推理。

4. 数学逻辑和推理

  • 方法: 使用逻辑推理来构建和验证数学论证。
  • 技巧: 理解并应用直接证明、反证法等逻辑方法。

5. 对数运算的规律

  • 思维方式: 探究对数运算的基本规律及其在离散情境下的应用。
  • 应用: 将普通对数的属性(如乘法和幂的性质)推广到离散对数的情境。

6. 本原根和离散对数的关系

  • 思想: 理解本原根的概念及其在构建离散对数系统中的作用。
  • 技巧: 利用本原根的性质来推导离散对数的唯一性和计算方法。

7. 数学建模和应用

  • 方法: 在密码学和加密技术中应用离散对数的概念。
  • 思维方式: 理解如何将纯数学理论应用到实际问题中,特别是在安全性要求高的领域。

通过学习这些数学思想和方法,我们不仅能够更深入地理解离散对数的数学背景,还能够提高解决复杂问题的能力,尤其是在需要严谨逻辑推理和数学建模的场景中。

2.8.3 离散对数的计算

离散对数问题的描述
  • 方程: 考虑方程 �=��mod  �y=gxmodp,其中 �g 和 �p 是给定的,�x 是未知数。
  • 直接计算: 对于给定的 �g,�x 和 �p,可以直接计算出 �y。在最坏情况下,这需要执行 �x 次乘法。
计算复杂度
  • 直接求 �y: 存在有效算法计算 �y,即使在最坏情况下也是如此(参见第9章)。
  • 逆向求 �x: 给定 �y,�g 和 �p,计算 �x(即求离散对数)通常非常困难。
  • 难度比较: 计算离散对数的难度与RSA算法中分解大素数的难度相似。
算法难度
  • 已知算法: 目前已知求模数为素数的离散对数最快的算法的难度级别大约是 �(log⁡�3⋅log⁡�)2e(3logp​⋅logp)2。
  • 对大素数的实用性: 对于大素数,这种算法是不可行的。
笔记总结
  • 这一节介绍了离散对数问题的基本概念及其计算难度。尽管计算 �y 的直接问题相对简单,但是逆向问题——求离散对数 �x——则非常复杂,尤其是当模数 �p 为大素数时。这一特性使得离散对数问题在密码学领域特别重要,它是许多加密协议和算法的基础,如Diffie-Hellman密钥交换和ElGamal加密系统。理解这一节内容有助于把握密码学中的一些核心原理,特别是在公钥加密和数字签名领域。

离散对数的总结

重点
  1. 离散对数定义: 离散对数问题涉及找到满足 �=��mod  �y=gxmodp 的 �x,其中 �g 和 �p 是已知的,�x 是未知数。
  2. 计算易度差异: 直接计算 �=��mod  �y=gxmodp 相对简单,可以通过连续乘法实现。然而,逆向求解,即给定 �y、�g 和 �p 来找 �x,通常非常困难。
  3. 密码学应用: 由于其计算上的困难,离散对数问题是许多密码学协议和系统的核心,包括公钥加密和数字签名。
难点
  1. 计算复杂性: 逆向问题(求 �x)的计算复杂性是离散对数问题的主要难点。尤其是当模数 �p 较大时,已知的算法效率低下,实用性差。
  2. 本原根的理解和应用: 本原根在离散对数问题中扮演关键角色。理解本原根及其如何在模 �p 下生成所有可能结果是解决离散对数问题的基础。
易错点
  1. 对数的基本性质误解: 对于离散对数,不能简单地应用普通对数的所有性质。例如,普通对数的加法规则在离散对数中不一定成立。
  2. 误解计算难度: 可能会错误地认为直接计算 �=��mod  �y=gxmodp 和逆向计算 �x 的难度相同。
  3. 对算法的过度估计: 在实际应用中,可能会高估求解离散对数的算法效率,特别是在处理大素数时。

理解这些重点、难点和易错点有助于深入把握离散对数及其在现代密码学中的应用。

 

  • 3
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

夏驰和徐策

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值