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的正整数
命题 9.1: 设
此外,对于命题中的整数
两个整数
TIP
陈述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.4 如果
例子: 假设我们有两个正整数
首先,计算
现在,我们将这个等式两边都乘以一个正整数
我们可以看到,
证明: 我们令
由此可见
9.1.2 模算术
设
如果
理解是这个序列中的每个等号(不仅仅是最后一个)都指的是模
注意,
模
示例 9.5
让我们计算
另一种计算答案的方法(即计算乘积
示例 9.6
取
然而,在某些情况下,我们可以定义一个有意义的除法概念。如果对于给定的整数
当
我们看到,在这种情况下,除法的运算效果与预期一致。因此,模
自然的问题是:在给定模
命题 9.7
设
证明
假设
反之,如果
示例 9.8
取
加法、减法、乘法和逆元的计算(如果存在)模
9.1.3 群
设
我们现在引入群这个重要的概念。
定义 9.9 一个群是一个集合
- 封闭性: 对于所有
,有 。 - 存在单位元: 存在一个单位元
,使得对于所有 ,都有 。 - 存在逆元: 对于所有
,存在一个元素 ,使得 。这样的 被称为 的逆元。 - 结合律: 对于所有
,成立 。
当集合
当群
- 交换性: 对于所有
,成立 。
当二元运算清楚时,我们可以简单地称集合
结合律意味着在写长表达式时,我们不需要添加括号;也就是说,表示
可以证明群
如果
一般情况下,我们不会使用 ◦ 符号来表示群的运算。相反,我们根据讨论的群的性质使用加法或乘法符号。这并不意味着群的运算对应于整数的加法或乘法;这只是一个方便的记号。使用加法记号时,群的运算应用于元素
记为
在这一点上,看一些例子可能会有帮助。
示例 9.10
一个集合在一个运算下可能是一个群,但在另一个运算下可能不是。例如,整数集合
示例 9.11
实数集合
以下示例引入了我们经常使用的群
示例 9.12
设
我们在本节中结束之前,给出一个简单的引理,正式化了群的“消去律”。
引理 9.13
设
证明 我们知道
将上述证明与(在引理 9.7 之前的讨论中)关于模
注: 引理 9.13 说明了群中元素的唯一性和乘法消去律的特性。这些性质在群论中起着关键作用,使得我们能够从一些简单的条件中推导出更多复杂的结果。
抱歉我之前的翻译有误。以下是经过修正的翻译:
群指数运算
在群中,我们常常需要描述将群操作应用于固定元素
需要注意的是,
使用乘法符号时,我们将群操作应用于元素
指数运算的熟知规则成立:
上述符号自然地扩展到当
假设
我们现在已经掌握足够的知识来证明以下令人瞩目的结果:
定理 9.14
设
证明:我们只证明在
为了理解这一点,注意到
再次利用
再次应用引理 9.13,我们得到
上述结果的一个重要推论是,我们可以在指数中“对群的阶取模”:
推论 9.15
设
证明:假设
(使用定理 9.14),即所证明的结论。
推论 9.15
以加法表示,上述推论表明如果
上述结果与事实一致(参见示例 9.5),即我们可以“先进行取模再相乘”,而不必“先相乘再取模”。
另一个在密码学应用中非常有用的推论如下:
推论 9.17
设
证明:因为
其中第四个等式来自推论 9.15。
9.1.4 乘法群:欧拉函数
正如在示例 9.12 中所讨论的,集合
即,
由于
命题 9.18 设
定义
因此,我们证明了当 $
N$ 是两个不同的素数
你被要求在习题 9.4 中证明以下一般结果(本书的其余部分很少使用):
定理 9.19 设
示例 9.20 取
我们已经证明了
推论 9.21 取任意的整数
对于特定情况
推论 9.22 固定
9.1.5 *同构与中国剩余定理
两个群同构表示它们具有相同的结构。从数学角度来看,群
定义 9.23 设
是双射(一一对应); - 对于所有的
,有 。
如果存在从
本质上,从
本节的目标是利用同构的语言来更好地理解当
留给练习 9.8 验证
现在,我们可以陈述并证明中国剩余定理。
定理 9.24(中国剩余定理) 设
,以及 。
此外,定义函数
那么:
是从 到 的同构; 在 上的限制是从 到 的同构。
证明 对于任意
接下来,我们将证明
在以下段落中,用
注意到
至此,我们已经完成了从
通过一种记号,假设
例子 9.25 考虑
其中每个对
利用中国剩余定理
如果两个群同构,则它们都表示相同的底层“代数结构”。然而,选择使用哪种表示法可能会影响群操作的计算效率。我们先从抽象的角度讨论,然后再具体讨论
设
- 计算
和 ; - 使用
中的群操作计算 ; - 计算
。
当我们想在
现在我们转向具体的情况,即在模
好的,我会为您添加公式和符号,以及使用美元符号 $$ \ldots $$ 将它们包裹起来。请查看下面的修订版本:
Example 9.26 假设我们想要计算
注意到
Example 9.27 假设我们想要计算
因此,
Example 9.28 假设我们想要计算
并且我们可以立即看出
Example 9.29 假设我们想要计算
由于
类似地,
我们还没有讨论如何在模
元素
因此,如果我们可以找到
注意到
- 计算
,使得 。 - 设定
和 。 - 计算
。 如果需要执行多次这样的转换,则可以
在预处理阶段一次性计算
Example 9.30 取
因此,


评论区
欢迎分享你的思考、补充或问题。