9.Number Theory and Cryptographic Hardness Assumptions
现代密码系统无一例外地基于某个难题的假设。例如,在第3至5章中,我们看到私钥密码学,包括加密方案和消息认证码,可以基于伪随机置换(又称分组密码)存在的假设。表面上看,伪随机置换存在的假设似乎非常强大和不自然,有理由质疑这个假设是否成立,或者是否有任何证据支持它。在第7章中,我们探讨了分组密码在实践中的构造方式。这些构造能够抵御攻击的事实表明伪随机置换的存在是合理的。然而,人们可能难以相信对现有分组密码不存在有效的区分攻击。此外,我们目前的理论状态是,我们不知道如何基于任何“更简单”或“更合理”的假设来证明任何现有实际构造的伪随机性。总的来说,这不是一个完全令人满意的情况。
相比之下,正如第3章中提到的(并在第8章中详细研究),可以基于较为温和的单向函数存在的假设来证明伪随机置换的存在。(非正式地说,如果一个函数易于计算但难以反转,则称其为单向函数;请参见第9.4.1节。)然而,除了在第8.1.2节中简要讨论外,我们还没有看到任何被认为是单向函数的具体示例。
本章的一个目标是介绍一些被认为“困难”的问题,并基于这些问题提出猜想的单向函数。从这个角度看,本章可以被视为私钥密码学的“自上而下”方法的高潮。 (见图9.1。)也就是说,在第3至5章中,我们已经展示了私钥密码学可以基于伪随机函数和置换。然后,我们已经看到后者可以通过在第7章中探讨的分组密码实际实现,或者可以根据任何单向函数构造出,正如在第8章中所示。在这里,我们进一步展示了如何基于某些困难的数学问题来构建单向函数。

我们将探讨的示例是与数论相关的,因此我们首先进行一个简短的数论介绍。由于我们还对能够高效解决的问题感兴趣(即使单向函数在一方向上必须易于计算,而且密码方案必须允许诚实参与者使用高效算法),我们还会启动对算法性数论的研究。即使对数论已经熟悉的读者,也鼓励阅读本章,因为算法方面的内容在纯粹的数学处理中通常被忽略。
本章的第二个目标是为公钥密码学的发展提供所需的材料,我们将在第11章开始研究公钥密码学。引人注目的是,在私钥环境中,存在着不需要涉及任何数论即可构建所需基元(分组密码和哈希函数)的高效方法,然而在公钥环境中,所有已知的构造都依赖于困难的数论问题。因此,本章的内容不仅作为我们对私钥密码学研究的顶点,还作为我们处理公钥密码学的基础。
9.1 预备知识和基本群论
我们开始复习素数和基本的模算术知识。即使是之前已经了解过这些内容的读者,也应该浏览一下接下来的两节,因为其中一些材料可能是新的,我们会为大部分陈述的结果提供证明。
9.1.1 素数与整除性
整数集合用表示。对于,如果存在整数使得,我们称整除,记作。如果不能整除,则记作。(尽管定义允许其中一个或多个数为负数或零,我们主要关注所有数都为正数的情况。)一个简单的观察是,如果且,则对于任意,都有。
如果且为正数,则称是的因子。如果进一步有,则称为的非平凡因子。大于1的正整数如果没有其他因子,则称其为素数,即它只有两个因子:1和它本身。大于1的正整数如果不是素数,则称其为合数。按照约定,数字1既不是素数也不是合数。
算术基本定理指出,大于1的每个整数都可以唯一地(忽略顺序)表示为素数的乘积。也就是说,任何大于1的正整数都可以写成,其中是不同的素数,对于所有成立;此外,(和)在去掉顺序后是唯一确定的。
命题 9.1: 设是一个整数,是一个正整数。那么存在唯一的整数、,满足且。
此外,对于命题中的整数和,可以在多项式时间内计算出和;见附录B.1。(算法的运行时间是其输入长度的函数。在算法数论的上下文中,整数输入总是假定用二进制表示。因此,算法的运行时间是以,即的二进制表示的位数,来衡量的。注意。)
两个整数、的最大公约数,记作,是满足且的最大整数。(我们将视为未定义。)最大公约数的概念在和中有一个或两个为负数时也是成立的,但我们通常有;无论如何,。注意;此外,如果是素数,则要么等于1,要么等于。如果,我们称和互素。
提示
陈述1: "如果 p 是素数,则 gcd(a, p) 要么等于 1,要么等于 p。"
- 这个陈述的意思是,如果 p 是一个素数,那么任意整数 a 和 p 的最大公约数(gcd)要么是 1,要么是 p。
- 如果 a 不是 p 的倍数(即 a % p ≠ 0),那么 gcd(a, p) = 1,因为素数 p 确保它与任何不是 p 的倍数的整数没有除了 1 以外的共因子。
- 如果 a 是 p 的倍数(即 a % p = 0),那么 gcd(a, p) = p,因为在这种情况下,p 是 a 和 p 之间唯一的共因子。
陈述2: "如果 gcd(a, b) = 1,我们称 a 和 b 互质。"
- 这个陈述同样是正确的。两个整数 a 和 b 被称为互质(或互素),如果它们的最大公约数是 1。
这两个陈述都是数论中的基本概念。
以下是一个有用的结果:
命题 9.2: 设、是正整数。那么存在整数、,使得。此外,是能以这种方式表达的最小正整数。
这个结论被称为贝祖等式(Bézout's identity)或贝祖定理(Bézout's theorem)。它说明对于任意两个正整数和,存在整数和,使得。这个等式的特殊情况是当时,即和互质,此时存在整数和使得。
此外,贝祖等式也指出是可以用这种方式表示的最小正整数,也就是说,不存在比更小的正整数可以用和的线性组合表示。这可以通过贝祖定理的证明来理解。
举例:
考虑和。它们的最大公约数是。
根据贝祖定理,我们可以找到整数和使得。一个可能的选择是和,因为。
根据贝祖等式,我们可以写出,即,也就是。这再次确认了。
所以,这个例子验证了贝祖定理中关于和的关系。
证明:
令为和的最大公约数。根据贝祖定理,存在整数和使得。
现在,考虑任意整数和,使得 和 。注意到是一个整数,因为是的倍数。
将和代入上述等式中得到:
因此,对于任意整数和,都有是的倍数。这意味着是 的一个公约数。
另一方面,由于,是和的一个公约数,因此也是的一个公约数。
综上所述,是和以及任意的公约数,这意味着是和以及的最大公约数,即是和的最大公约数。由于是和的一个公约数,而是其最大公约数,因此。
但是我们也知道,因此。结合两个不等式,我们得到,因此是的一个因数。
由于是正整数,所以的因数只能是本身或者。但因为,所以只有是可能的。因此,我们得出结论。
命题 9.3: 如果 且 ,则 。因此,如果 是素数且 ,则要么 或 。
例子:
假设 ,,。我们来验证命题 9.3 是否适用于这些值。
首先,,因为 是 的约数,即 成立。
然后,我们检查 是否为 。计算 ,得到 。由于 ,这部分条件不满足,所以这个例子不符合命题中的要求。
因此,根据命题 9.3,我们不能得出 ,这在这个例子中是正确的,因为 并不整除 。
这个例子说明了命题 9.3 中的条件和结论的作用:即使 ,但如果 ,则不能保证 。而如果 ,根据命题,我们可以确信 。
证明: 由于 ,我们有整数 使得 。如果 ,则根据前一个命题,存在整数 和 ,使得 。将两边都乘以 ,我们得到
由于 是整数,所以 ,即 整除 。
命题的第二部分基于这样的事实:如果 不能整除 (即 ),且 是素数,则 。这是因为如果 和 有大于 1 的公因数,那么 将会整除 ,这与我们的假设相矛盾。
综上所述,这个命题说明了如果 整除乘积 ,且 和 互质,那么 也将整除 。此外,如果素数 整除乘积 ,则要么它整除 ,要么整除 (或者同时整除两者)。
命题 9.4 如果 ,,且 ,那么 。
例子:
假设我们有两个正整数 和 ,并且我们希望证明当 时, 能够整除某个正整数 。
首先,计算 ,我们有 ,满足条件。然后我们可以找到整数 和 ,使得 ,一个可能的组合是 和 ,因为 。
现在,我们将这个等式两边都乘以一个正整数 ,假设 :
我们可以看到, 能够整除 。因此,根据命题 9.4,当 时, 能够整除某个正整数 。
证明: 我们令 和 ,并使用命题 9.2 得到 ,其中 都是整数。将上述方程的两边同时乘以 ,我们得到:
由此可见 。
9.1.2 模算术
设 、 和 (整数集合),其中 。我们使用符号 表示 除以 的余数。更详细地说:根据命题 9.1,存在唯一的 和 ,满足 ,且 ,我们定义 等于这个 。因此请注意,。我们将将 映射到 的过程称为模 的约化。
如果,即 除以 的余数与 除以 的余数相同,我们称 与 模 同余,记作 。请注意,当且仅当 时,。在表达式中,如
理解是这个序列中的每个等号(不仅仅是最后一个)都指的是模 同余。
注意, 意味着 ,但反之不成立。例如,,但 。另一方面,当且仅当 时,。
模 同余是一个等价关系,即它是自反的(对于所有 ,)、对称的( 意味着 )、以及传递的(如果 且 ,则 )。模 同余还遵循关于加法、减法和乘法的标准算术规则。因此,例如,如果 ,,则 ,。一个结果是我们可以“先缩减再相加/相乘”,而不必“先相加/相乘再缩减”,这常常可以简化计算。
示例 9.5
让我们计算 。由于 且 ,我们有
另一种计算答案的方法(即计算乘积 ,然后对结果进行模 的约化)不够高效。模 同余一般情况下不保持除法。也就是说,如果 且 ,则通常不成立 ;事实上,“” 这个表达式通常并没有明确定义。作为一个经常引起混淆的具体例子, 并不一定意味着 。
示例 9.6
取 。则 ,但 。
然而,在某些情况下,我们可以定义一个有意义的除法概念。如果对于给定的整数 ,存在一个整数 使得 ,我们称 在模 下是可逆的,将 称为 在模 下的(乘法)逆元。显然, 永远不可逆。也不难证明,如果 是 在模 下的乘法逆元,则 也是 在模 下的乘法逆元。此外,如果 是 的另一个乘法逆元,则 。当 在模 下可逆时,我们可以简单地让 表示唯一的乘法逆元,该逆元位于集合 。
当 在模 下可逆时,我们定义模 下由 除法为乘法 (即,我们定义 )。我们强调,只有在 可逆时才定义了除法。如果 并且 是可逆的,那么我们可以将方程的每一边都除以 (或者实际上是将每一边都乘以 ),得到
我们看到,在这种情况下,除法的运算效果与预期一致。因此,模 下的可逆整数在某种意义上更易于处理。
自然的问题是:在给定模 的情况下,哪些整数在模 下是可逆的?我们可以使用命题 9.2 来完全回答这个问题:
命题 9.7
设 和 为整数,其中 且 。则 在模 下可逆的充要条件是 。
证明
假设 在模 下可逆,记 为其逆。由于 ,这意味着存在某个 使得 。等价地,。由于根据命题 9.2, 是能够以这种方式表示的最小正整数,并且不存在小于 的正整数,这意味着 。
反之,如果 ,则根据命题 9.2,存在整数 、,使得 。将此方程的每一边对 取模,得到 ,我们可以看出 是 的一个乘法逆元。(事实上,这提供了一个计算逆元的有效算法。)
示例 9.8
取 和 。然后有 ,因此 是 的逆元。可以验证 。
加法、减法、乘法和逆元的计算(如果存在)模 都可以在多项式时间内进行;请参见附录 B.2。指数运算(即计算 ,其中 为整数)也可以在多项式时间内计算;请参见附录 B.2.3。
9.1.3 群
设 是一个集合。在 上的一个二元运算 ◦ 本质上是一个函数 ◦(·, ·),它将 中的两个元素映射到 中的另一个元素。如果 ,则我们可以用简便的符号 代替繁琐的符号 ◦(g, h)。
我们现在引入群这个重要的概念。
定义 9.9 一个群是一个集合 ,以及一个二元运算 ◦,满足以下条件:
- 封闭性: 对于所有 ,有 。
- 存在单位元: 存在一个单位元 ,使得对于所有 ,都有 。
- 存在逆元: 对于所有 ,存在一个元素 ,使得 。这样的 被称为 的逆元。
- 结合律: 对于所有 ,成立 。
当集合 的元素有有限个时,我们称 是有限群,记 为群的阶(即 中元素的数量)。
当群 的操作满足交换性时,我们称其为阿贝尔群,满足条件为:
- 交换性: 对于所有 ,成立 。
当二元运算清楚时,我们可以简单地称集合 为群。我们将始终处理有限的阿贝尔群。然而,当某个结果需要这些假设时,我们将会仔细指明。
结合律意味着在写长表达式时,我们不需要添加括号;也就是说,表示 是无歧义的,因为我们对操作 ◦ 的求值顺序不影响结果。
可以证明群 中的单位元是唯一的,因此我们可以称其为群的单位元。同样,可以证明群 中的每个元素都有唯一的逆元。参见练习 9.1。
如果 是一个群, 是 的子集,且 在与 相同的运算下也构成一个群,我们称 是 的子群。要验证 是子群,我们需要根据定义 9.9 验证封闭性、存在单位元和逆元,以及结合律。(事实上,如果 是阿贝尔群,那么结合性和交换性都会自动继承自 。)每个群 总是有平凡子群 和 。如果 ,我们称 是 的真子群。
一般情况下,我们不会使用 ◦ 符号来表示群的运算。相反,我们根据讨论的群的性质使用加法或乘法符号。这并不意味着群的运算对应于整数的加法或乘法;这只是一个方便的记号。使用加法记号时,群的运算应用于元素 和 时表示为 ;单位元记为 ;元素 的逆元记为 ;我们用 代替 。使用乘法记号时,群的运算应用于 和 时表示为 或简写为 ;单位元
记为 ;元素 的逆元记为 ;有时我们用 代替 。
在这一点上,看一些例子可能会有帮助。
示例 9.10
一个集合在一个运算下可能是一个群,但在另一个运算下可能不是。例如,整数集合 在加法下是一个阿贝尔群:单位元是元素 ,并且每个整数 都有逆元 。然而,在乘法下它不是一个群,因为例如整数 在整数集合中没有乘法逆元。
示例 9.11
实数集合 在乘法下不是一个群,因为 没有乘法逆元。然而,非零实数集合是一个阿贝尔群,其乘法运算下的单位元为 。
以下示例引入了我们经常使用的群 。
示例 9.12
设 为一个整数。集合 关于模 的加法(即 )构成一个阿贝尔群,群的阶为 。封闭性显然成立;结合性和交换性来自于整数的这些性质;单位元为 ;由于 ,任何元素 的逆元为 。我们用 表示这个群。(有时我们也会用 表示集合 ,而不考虑任何特定的群运算。)
我们在本节中结束之前,给出一个简单的引理,正式化了群的“消去律”。
引理 9.13
设 是一个群,。特别地,如果 ,则 是 中的单位元。如果 ,则 。
证明 我们知道 。将两边同时乘以元素 的唯一逆元 ,我们得到 。详细地说:
将上述证明与(在引理 9.7 之前的讨论中)关于模 除法的消去律进行比较。正如相似性所示,模 中可逆元素在模 的乘法下构成一个群。我们稍后会详细讨论这个示例。
注: 引理 9.13 说明了群中元素的唯一性和乘法消去律的特性。这些性质在群论中起着关键作用,使得我们能够从一些简单的条件中推导出更多复杂的结果。
抱歉我之前的翻译有误。以下是经过修正的翻译:
群指数运算
在群中,我们常常需要描述将群操作应用于固定元素 的 次操作,其中 是一个正整数。使用加法符号,我们可以表示为 或 ,即:
需要注意的是, 是一个整数,而 是群中的元素。因此, 不表示对 和 进行群操作(实际上,我们是在一个群中,其群操作用加法表示)。然而,幸运的是,“符号的行为是正确的”;例如,如果 , 和 是整数,那么 ,,以及 。在阿贝尔群 中,对于 ,有 。
使用乘法符号时,我们将群操作应用于元素 的 次操作表示为 ,即:
指数运算的熟知规则成立:,,以及 。此外,在阿贝尔群中,对于 ,有 。所有这些只是将前面段落中的结果从加法符号转化为乘法符号。
上述符号自然地扩展到当 是零或负整数的情况。在使用加法符号时,我们定义 (需要注意,左边的 是整数 ,而右边的 是群的单位元),并定义 ,其中 是正整数。注意, 是 的逆元,正如预期的那样,。在使用乘法符号时,,。同样, 是 的逆元,我们有 。
假设 且 是一个整数。那么指数运算 可以使用多项式次数的群操作在 中进行计算。因此,如果群运算可以在多项式时间内计算,则指数运算也可以。有关详细讨论,请参见附录 B.2.3。
我们现在已经掌握足够的知识来证明以下令人瞩目的结果:
定理 9.14
设 是一个有限群, 是群的阶,对于任何 中的元素 ,有 。
证明:我们只证明在 是交换群(阿贝尔群)的情况下(尽管该定理对任何有限群都成立)。固定任意 ,并令 为 的元素。我们声称:
为了理解这一点,注意到 意味着由引理 9.13,。因此,右侧括号内的每个元素都是不同的。因为 中恰好有 个元素,右侧要相乘的这 个元素实际上只是 中的所有元素以某种排列顺序。由于 是交换群,元素相乘的顺序不影响结果,因此右侧等于左侧。
再次利用 是交换群这一事实,我们可以将所有的 提取出来,得到:
再次应用引理 9.13,我们得到 。
上述结果的一个重要推论是,我们可以在指数中“对群的阶取模”:
推论 9.15
设 是一个有限群, 是群的阶。对于任何 中的元素 和任意整数 ,我们有 。
证明:假设 ,其中 是整数,且 。然后:
(使用定理 9.14),即所证明的结论。
推论 9.15
以加法表示,上述推论表明如果 是一个阶为 的群中的元素,则 。作为示例,考虑阶为 的群 ,取 。推论表明:
上述结果与事实一致(参见示例 9.5),即我们可以“先进行取模再相乘”,而不必“先相乘再取模”。
另一个在密码学应用中非常有用的推论如下:
推论 9.17
设 是一个有限群, 是群的阶。令 是一个整数,定义函数 ,其中 。如果 ,那么 是一个置换(双射)。此外,如果 ,那么 是 的逆函数。(注意,由命题 9.7, 意味着 在模 下可逆。)
证明:因为 是有限群,论述的第二部分暗示了第一部分;因此,我们只需证明 是 的逆函数。这是因为对于任何 中的元素 ,有:
其中第四个等式来自推论 9.15。
9.1.4 乘法群:欧拉函数
正如在示例 9.12 中所讨论的,集合 是一个关于模 的加法群。我们能否定义一个关于模 的乘法群呢?在这样做的过程中,我们将不得不排除那些不可逆的 中的元素,例如,我们将不得不排除 0,因为它没有乘法逆元。非零元素也可能不可逆(参见命题 9.7)。在集合 中,哪些元素 在模 下可逆?命题 9.7 表明这些恰好是满足 的元素 。我们也在第 9.1.2 节中看到,每当 可逆时,它的逆元落在集合 中。这引导我们定义,对于任何 ,集合
即, 由集合 中与 互质的整数组成。群的运算是模 下的乘法,即。我们声称 是关于此运算的一个阿贝尔群。
由于 总是在 中,因此集合显然包含一个单位元素。上述讨论表明 中的每个元素在相同的集合中都有一个乘法逆元。交换律和结合律来自于整数上这些性质的事实。为了证明封闭性成立,设 ;则 的逆元为 ,这意味着 ,因此 。总结:
命题 9.18 设 是一个整数。那么 是关于模 的乘法运算的一个阿贝尔群。
定义 ,即群 的阶数。 被称为欧拉函数。 的值是多少呢?首先考虑当 是素数的情况。那么集合 中的所有元素都与 互质,因此 。接下来考虑 的情况,其中 是不同的素数。如果整数 与 不互质,那么 或者 ( 不能同时被 和 整除,因为这将意味着 但是 )。集合 中能够被 整除的元素正是 个元素 ,能够被 整除的元素正是 个元素 。剩余的元素的数量为
因此,我们证明了当 $
N$ 是两个不同的素数 和 的乘积时,。
你被要求在习题 9.4 中证明以下一般结果(本书的其余部分很少使用):
定理 9.19 设 ,其中 是不同的素数,。那么 。
示例 9.20 取 。那么 且 。在 中,8 的逆元是 2,因为 。
我们已经证明了 是阶数为 的群。下面是定理 9.14 和推论 9.17 的简单推论:
推论 9.21 取任意的整数 和 。那么 。
对于特定情况 是素数,以及 ,我们有 。
推论 9.22 固定 。对于整数 ,定义 为 。如果 与 互质,则 是一个双射。此外,如果 ,则 是 的逆映射。
9.1.5 *同构与中国剩余定理
两个群同构表示它们具有相同的结构。从数学角度来看,群 到 的同构提供了关于 的一种替代但等价的思考方式。从计算的角度来看,同构提供了一种不同的表示方法,通常会对算法效率产生重要影响。
定义 9.23 设 和 是分别关于操作 和 的群。如果满足以下条件,则函数 是从 到 的同构:
- 是双射(一一对应);
- 对于所有的 ,有 。
如果存在从 到 的同构,则称这两个群是同构的,记作 。
本质上,从 到 的同构就是将 的元素重新命名为 的元素。注意,如果 是有限的且 ,那么 必须也是有限的,并且大小与 相同。此外,如果存在从 到 的同构 ,那么 是从 到 的同构。然而,可能存在这样的情况,即 可以高效计算,但 不行(或反之)。
本节的目标是利用同构的语言来更好地理解当 为两个不同素数的乘积时,群 和 的群结构。首先,我们需要引入群的直积的概念。给定群 和 ,其分别关于群操作 和 ,我们定义新的群 ( 和 的直积)如下。 的元素是有序对 ,其中 且 ;因此,如果 有 n 个元素, 有 个元素,则 有 个元素。 上的群操作 是逐分量应用的,即:
留给练习 9.8 验证 确实是一个群。上述表示法可以自然地推广到多于两个群的直积,尽管我们不会在接下来的内容中用到这一点。
现在,我们可以陈述并证明中国剩余定理。
定理 9.24(中国剩余定理) 设 ,其中 互质。那么:
- ,以及
- 。
此外,定义函数 ,将集合 中的元素 映射为对 ,其中 且 ,定义如下:
那么:
- 是从 到 的同构;
- 在 上的限制是从 到 的同构。
证明 对于任意 ,函数 给出了一个由元素 构成的对,其中 且 。我们要证明的是,如果 ,那么 。实际上,如果 ,这意味着 不互质。但是,这将导致 不互质。这又暗示 不互质,与 的假设相矛盾(类似的论证适用于 的情况)。
接下来,我们将证明 是从 到 的同构。要证明它是从 到 的同构的证明类似。我们首先证明 是单射。假设 ,则 且 。这进一步意味着 可以同时被 和 整除。由于 和 互质,命题 9.4 表明 可以整除 。但是,这意味着 。对于 ,这意味着 ,因此 是单射。由于 ,两个集合的大小相同,结合 是单射可知 是双射。
在以下段落中,用 表示模 的加法,用 表示 中的群操作(即在第一个分量中进行模 的加法,在第二个分量中进行模 的加法)。为了完成从 到 的同构的证明,我们需要证明对于所有 ,有 。
注意到
至此,我们已经完成了从 到 的同构的证明。关于 到 的同构的证明类似。
通过一种记号,假设 已知且 ,我们将 表示为 且 。也就是说,当且仅当 时,,其中 如定理中所示。当涉及 时,也使用相同的记号。
例子 9.25 考虑 ,以及 。中国剩余定理说明该群同构于 。我们可以计算:
其中每个对 ,其中 且 ,都恰好出现一次。
利用中国剩余定理
如果两个群同构,则它们都表示相同的底层“代数结构”。然而,选择使用哪种表示法可能会影响群操作的计算效率。我们先从抽象的角度讨论,然后再具体讨论 和 的情况。
设 分别是具有操作 的群,假设 是从 到 的同构,其中 和 都可以高效地计算。那么对于 ,我们可以通过以下两种方式计算 :直接计算 中的群操作,或通过以下步骤计算:
- 计算 和 ;
- 使用 中的群操作计算 ;
- 计算 。
当我们想在 中计算多个群操作时(例如计算 ),哪种方法更好取决于在每个群中计算群操作的相对效率,以及计算 和 的效率。
现在我们转向具体的情况,即在模 下的计算,其中 是不同的素数的乘积。中国剩余定理表明模 的加法、乘法或指数运算(即重复乘法)可以“转化”为模 和 下的类似运算。借鉴例子 9.25,我们以 的一些简单例子来展示。
好的,我会为您添加公式和符号,以及使用美元符号 $$ \ldots $$ 将它们包裹起来。请查看下面的修订版本:
Example 9.26
假设我们想要计算即在 中)。例子 9.25 表明 和 。在 中,我们有
注意到 ,这是正确的答案,因为 。
Example 9.27
假设我们想要计算 。例子 9.25 表明 。注意到 ,因此
因此,。
Example 9.28
假设我们想要计算 。我们首先计算对应关系 。使用中国剩余定理,我们有
并且我们可以立即看出 。因此,。
Example 9.29
假设我们想要计算 。我们有 ,所以
由于 是阶为 4 的群,我们可以在指数上“工作模 4”(参见推论 9.15)并且得到
类似地,。
因此,,所以 。
我们还没有讨论如何在模 和模 、 之间进行转换。在已知 的因数分解的情况下,可以高效地进行转换。假设已知 和 ,那么可以很容易地将模 下的元素转换为其在模 和 下的表示:
元素 对应于 ,两个模数规约都可以高效地进行(参见附录 B.2)。
对于另一个方向,我们使用以下观察:具有表示 的元素可以写成
因此,如果我们可以找到 使得 和 ,那么(利用中国剩余定理)我们知道
。
由于 和 是不同的素数,。我们可以使用扩展欧几里得算法(参见附录 B.1.2)找到整数 ,使得
注意到 并且 。这意味着
;即,。类似地,。
总之,我们可以按照以下方式将表示为 的元素转换为其在模 下的表示(假设已知 和 ):
- 计算 ,使得 。
- 设定 和 。
- 计算 。
如果需要执行多次这样的转换,则可以
在预处理阶段一次性计算 。
Example 9.30
取 ,,。假设我们已知表示 并且想要将其转换为 中的对应元素。使用扩展欧几里得算法,我们计算
因此, 并且 。 (我们可以验证这些值是否正确:例如,对于 ,我们可以验证 和 )。使用这些值,我们可以然后计算
。
由于 且 ,这确实是正确的结果。