点击任一公式,可查看并复制 LaTeX 源码。正文、公式及此工具均可单文件离线使用;剪贴板受限时可选中源码手动复制。
费马小定理与初等数论笔记
第五版 · 2026-10-11
从同余、乘法阶和原根,走到RSA、随机分解的概率证明,以及签名安全的计算关系。
本篇以一般推导为主。每个符号在使用时说明含义,每一步推理交代依据;具体例子用于解释容易混淆的地方。第1—13章是连续的主线,第14—18章保留完整基础证明、拓展和练习,可在需要时回查。若主要关心概率证明,先读第8—11章;遇到阶、原根或CRT的疑问,再回到第4—6章。
来源为第一份原对话的21轮、第二份原对话的11轮,以及加权概率补充。第一份对话中的一张公式报错截图仅保留附件引用,未直接查看;正文公式重新排版。另加入第三份原对话的9轮,讨论RSA反演、签名伪造与安全假设。第19章提供全部原问题与章节的对应关系。
目录
第 1 章:同余、消去与模逆元
返回目录
1.1 同余是在比较什么
固定一个正整数作为模数。写,意思是整除:两个整数相差的整数倍,因此除以的余数相同。例如,因为。
同余不要求两个整数本身相等。它只保留“除以后属于哪一种余数”的信息。以后说“模的一个数”,指的是一个剩余类;计算时可以用中的代表表示它。
为什么可以先取余再计算?若、,其中为整数,那么
这两个差都含有因子,所以加法和乘法保留同余。重复使用乘法,就得到,这里是非负整数。这是以后所有模幂运算的依据。
1.2 为什么约分需要互质
在整数等式中,非零因子可以消去;在同余中,需要额外条件。若
我们知道的是。要推出,必须保证不会替承担模数中的质因子。条件恰好保证这一点。这里表示最大公约数,最大公约数为1就是互质。
严格地说,裴蜀等式告诉我们:若,存在整数使。两边乘,得到
右边两项都被整除,所以左边也被整除。于是
不互质时结论确实会失败:,但。这个例子用于提醒我们检查条件;一般证明仍是上面的裴蜀等式推导。裴蜀等式自身的证明在第14章。
1.3 模逆元怎样代替除法
若,就称为的模逆元。它的作用是:乘之后再乘,会恢复原来的剩余类。因此解时,可以两边乘,得到。
逆元存在的充要条件是。充分性来自裴蜀等式:模后给出。必要性也直接:若和有大于1的公因子,这个公因子会整除和,不可能让与1只相差的倍数。
所以后面证明中出现“消去一个因子”“取逆元”时,互质条件不是形式上的附加语,而是让这一步成立的原因。
第 2 章:费马小定理与指数缩减
返回目录
2.1 定理说了什么
若是质数,且不整除整数,则
质数的非零剩余类都与互质,因此第1章的消去律可以使用。这个条件会在证明最后一步发挥作用。
还有一种包含所有整数的形式:。若,把第一式乘即可;若,两边模都为0。反过来,只有在时,才能从后一式约去,得到前一式。
2.2 为什么乘法会把非零余数重新排列
考虑非零剩余类,把它们分别乘。要证明乘后的余数仍然是这一整组数,只需排除两种情况。
第一,不会出现0。若,因为与互质,可以消去,得到,与矛盾。
第二,不会有两个不同位置产生相同余数。若,消去得到。而都在至之间,同余只能意味着。
因此,乘后的个余数非零且互不相同;总共只有种非零余数,它们必然把原来的整组数全部占满。这里“重新排列”指的就是这件事,并没有增加或丢失余数。
把这组同余相乘,就有
左边含有个,所以可写为。两边的都与互质,可以消去。剩下的正是。
证明的顺序是:互质允许消去 → 乘法没有重复和零 → 整组余数只是重排 → 相乘并消去共同乘积。一般的欧拉定理还会使用同一思路。
2.3 为什么能缩减指数
若,把非负整数指数写成
就得到
这一步不是直接对指数套用同余运算法则;依据是每一整段次幂都贡献一个1。例如算,由于,只需算。例子中的“对6取余”和“对7取余”承担不同任务:6用于分解指数,7用于计算幂的值。
2.4 应用和使用边界
定理还可以证明整除:等价于。也可以给出逆元:当时,,所以是的逆元。
但通过一次类似的幂同余检验,不能反过来保证模数是质数。例如,却有,因为。费马小定理给的是“质数必满足”的性质,并未证明“满足这个性质的数必为质数”。
第 3 章:欧拉函数与欧拉定理
返回目录
3.1 欧拉函数数的是哪些整数
表示中与互质的整数个数。等价地,它是模可逆剩余类的个数。它数的不是素数,也不是的质因子。
若是质因数分解,其中互不相同,那么
为什么只出现不同的质因子,而没有直接出现次数?一个整数与不互质,意味着它被某个整除。是否被整除已经决定了它要被排除,不需要再分别排除的倍数。幂次仍包含在前面的中。
3.2 乘积公式为什么就是容斥
先看恰有两个不同质因子的情况。在至中,的倍数有个,的倍数有个。如果直接都减掉,同时被整除的整数会被减两次,所以要补回个:
有更多质因子时,原理相同:减去单个倍数集合,加回两两交集,再减去三重交集,依次交替。展开时,选一个负项得到一次减法,选两个负项得到交集的加法,选三个负项得到三重交集的减法。乘积展开恰好记录了每种交集和符号。
对于每一个具体整数,这样加减后的总权重是什么?若它不被任何整除,权重为1;若它被其中个整除,权重为。因此最终恰好保留互质整数。完整容斥展开在第14章。
特别地,,。若互质,CRT把模的可逆类与一对模的可逆类对应,因而。这个对应在第6章解释。
3.3 欧拉定理的证明为什么仍是重排
欧拉定理把质数模数推广到一般模数:若且,则
设代表全部与互质的剩余类。乘后仍互质:若某个质因子同时整除和,它必整除或,而这两种情况都被互质条件排除。不同的也不会碰到一起:可以消去。
于是只是这一整组可逆类的重排。相乘得到
乘积仍与互质,消去后就是欧拉定理。注意,两次消去都检查了互质:先对使用,最后对使用。
3.4 欧拉指数保证了什么
当为质数时,,欧拉定理退回费马小定理。对一般互质底数,它同样允许把指数对取余,推导方式与第2.3节相同。
但只是一个一定能使幂回到1的指数,不一定最小;下一章会定义这个最小指数。若底数不与模数互质,欧拉定理就不能直接使用。这也是为什么RSA的解密正确性不能只写一句“由欧拉定理”,还必须处理不互质的消息。
第 4 章:乘法阶与指数的周期
返回目录
4.1 阶是最小的“回到1”的指数
若,定义
这个称为模的乘法阶。它存在,因为欧拉定理已经给出一个符合条件的正指数。定义只是从所有符合条件的正指数中取最小的一个。
例如模7时,的余数是,所以;而费马小定理给的指数是6。这里6没有错,它只是没有声称自己最小。
4.2 为什么其他回到1的指数必为阶的倍数
若,把除以:
因为,有,所以。如果,它就是一个比更小、还能使幂回到1的正指数,违反的最小性。因此,即。
反过来,如果,是的整数次幂,当然同余于1。于是对非负整数,
把代入,得到。这是比“阶不超过欧拉函数”更强的整除结论,后面的计数需要的是它的整除性。
4.3 对指数取模,为什么不改变幂值的模数
同样把任意非负指数写成,有。因此幂的值由决定。
这里有两个不同的对象:是指数,其周期为;是幂值,仍在模下计算。可以记为
例如模13的阶为4,故。指数11对4取余,是在寻找循环中的位置;最后的余数5仍是对13计算出来的。后面从转到时,发生的正是这种“指数周期改变”,不是把幂值的模数换掉。
4.4 怎样求阶,以及一个幂的阶
求阶时不必试所有正整数,只需在的因数中找最小满足的。若已知某个合适的指数,可以逐个尝试移除的质因子;每次都检验移除后的幂是否仍为1。
另一个常用结论是:若的阶为,那么的阶为
它为什么有这个形状?等价于。写、,其中,则条件变成。由于互质,等价于;最小正就是。对,公式也给出阶1,因为。
第 5 章:原根与循环群的含义
返回目录
5.1 原根为什么能给所有非零余数编号
模质数的非零剩余类共有个。若某个的阶恰好为,则
模互不相同。否则若且,乘的逆元就得到;而,与阶的最小性矛盾。
这个不同的非零余数必然遍历全部非零类。这样的称为模的原根。因此每个非零余数都能唯一写为
这里的是在幂循环中的编号。给余数编号,不意味着编号等于余数本身;编号的好处是把乘法转化为指数相加。
5.2 “循环群”是在概括哪件事
把模的全部可逆剩余类记为,运算是模乘法。它们满足:乘积仍可逆,有单位元1,每个元素有逆元,乘法满足结合律。具有这些性质的集合称为群;“群的阶”表示它有多少个元素,因此。
如果整个群都能写成某个元素的幂,就称为循环群。于是“模质数的非零剩余类构成阶循环群”包含两个结论:它们在乘法下构成群;存在一个原根,能用幂遍历整个群。前一个结论来自逆元与乘法,后一个结论需要证明原根存在,不能混为一件事。
“元素的阶”是回到1所需的最小正指数;“群的阶”是元素总数。它们使用同一个词,但定义不同。有限群中,元素阶整除群阶;第16章用陪集划分证明。对于循环群,我们也可以直接从第4.4节的幂阶公式看出这一点。
5.3 为什么每个质数都有原根
每个质数都存在原根。时唯一非零类1就是原根,以下讨论。这个结论的关键是:在模质数的运算中,一个非零多项式的根数不超过它的次数。因此,所有非零余数不可能都过早回到1。
具体说,令,固定的一个质数幂因子,其中不再整除。多项式的次数是,不可能让全部个非零余数都成为根。因此存在一个余数满足。
的阶整除,但不整除。所以中必须含有完整的因子;否则它的每个质数幂因子都包含在里,就会整除。具体取;幂阶公式给出它的阶为,因此我们得到一个阶恰为的元素。
对的每个不同质因子这样做,得到一组阶两两互质的元素。在交换群中,阶互质的两个元素相乘,其阶等于两阶的乘积。逐个相乘,就得到阶为的元素,也就是原根。
这里用到的多项式根数结论、幂阶公式以及“阶互质则乘积阶相乘”,在第15章逐项完整证明。这一段说明它们怎样接起来,避免把原根存在当作未经解释的口号。
5.4 为什么原根有欧拉函数那么多个
固定一个原根,令。全部非零类是,且第4.4节给出
所以仍为原根,当且仅当。在的编号中,符合条件的个数就是。因此模原根的个数为;时只有非零类1,数量也是。
合数模数下不能直接沿用原根存在性。例如模8的可逆类都平方为1,任何一个元素的阶都不超过2,无法生成4个元素。第15章也解释为什么多项式的根数论证不能照搬到一般合数模数。
第 6 章:中国剩余定理与余数坐标
返回目录
6.1 定理怎样合并多个同余条件
设是两两互质的正整数,。中国剩余定理(CRT)说:给定任意余数,同余组
有解,而且模只有一个解。也就是说,答案可以有很多个整数代表,但它们都相差的倍数。
“两两互质”是每一对不同模数的最大公约数都为1。它使各个同余要求之间没有共同因子造成的冲突,也保证完整周期是乘积。
6.2 为什么存在:构造只影响一个坐标的项
令。由于模数两两互质,与互质,所以有逆元满足。
现在看:它对余1,对所有其他余0,因为含有这个因子。于是
对取模时,除第项以外都消失,只留下。所以这个同时满足全部要求。这不是单纯记一个求和公式,而是在构造“只负责一个余数条件”的项,再把它们相加。
6.3 为什么唯一,以及为什么可以使用两个坐标
若都满足全部同余,所有都整除。因为两两互质,它们的乘积也整除,即。这就证明模的唯一性。
特别地,若是不同质数,模的每个剩余类都唯一对应一对坐标:
任意一对坐标都能合起来,合起来的类又只有一个,这就是双射。加法、乘法、取幂都可以在两个坐标分别进行,再合并结果。
例如模55的34对应,也就是模5为、模11为1。计算时,两边分别平方都得到1,CRT就保证。这个例子只用于展示坐标的含义;一般结论是上面的双射。
如果与互质,两个坐标都非零;反过来,两坐标都非零也意味着与互质。因此CRT还给出。第9章会用它解释随机底数为什么产生独立坐标。
6.4 模数不互质时怎样修改
对于、,若不互质,两个要求可能冲突。正确的相容条件是
必要性很直接:被整除,被整除,所以二者都被最大公约数整除,相减得到也必须被它整除。
充分性可由线性同余看出。令,先写,代入第二个条件得到。若,把整除关系中的三项都除以,就得到模的同余;与互质,可以用逆元解出。解的周期是,这里表示最小公倍数。
多个模数的情形有解,当且仅当每一对余数满足对应的相容条件;最终周期是所有模数的最小公倍数。两两相容为什么足够,以及完整构造与唯一性证明,均放在第14章。
第 7 章:RSA的指数选择与解密正确性
返回目录
7.1 公钥、私钥和模数各自做什么
取两个不同的奇质数,令。消息用模的一个剩余类表示。公钥是,加密把变为;私钥指数用于计算。
要让解密回到,需要安排与同余。做法是选择满足
于是存在非负整数使。两个指数相乘后的“多余部分”是欧拉指数的倍数,这是它与欧拉定理连接的地方。
7.2 这些指数为什么一定可以选出来
先计算,再选择与它互质的正整数。由第1章的逆元条件,模有逆元,可以用扩展欧几里得算法算出,并取一个正整数代表。
因此并非任意设定后再假定它们满足关系;先选择互质的,逆元定理保证存在。这里逆元的模数是,加密时的模数是,两者用途不同。
对于与互质的消息,欧拉定理直接给出
但这只处理了互质消息。若消息含有或这个因子,不能继续套用模的欧拉定理;需要下面的逐质数证明。
7.3 不互质的消息为什么也能还原
先对证明,分成两个互补的情况。
若,因为,和模都为0。若,可以用费马小定理。而整除,故也整除,于是
无论是否整除消息,模的结论都成立。对完全同理,得到。CRT再把两个结论合起来,得到。
这份证明没有假设消息与互质。它利用的是:在每个质数坐标上,消息要么为0,要么可用费马小定理;两种情况覆盖了全部消息。
7.4 这与分解有什么关系
若能分解得到,就能计算,再由公开的计算逆元,从而解密。这证明了
还可以追问:已知,能不能反过来分解?答案是可以使用随机算法;下一章从出发说明为什么。这里的计算关系不直接证明完整签名方案安全;RSA反演与签名伪造的区别在第13章继续说明。
这里讨论RSA的数学幂运算。实际RSA参数可采用更弱的条件,其中;它仍足以完成上面的逐质数证明。统一指数与具体规范的关系放在第17章。标准依据见RFC 8017第3.2节。
第 8 章:已知私钥怎样随机分解模数
返回目录
8.1 私钥给了我们哪一条额外信息
沿用,其中为不同奇质数。原对话的私钥关系给出
对于任意与互质的,欧拉定理保证。我们知道,所以能计算;这一步并不要求知道。证明中使用解释算法,算法本身不能预先使用它们。
把中的全部因子2提出,写成,其中为奇数。由于是偶数,这里。接着构造连续平方序列
第项同余于,因此终点。我们不是盲目平方;终点已由指数条件保证,现在要研究第一次到1之前的一项。
8.2 为什么“平方为1”能产生因子
若某个满足,则。模看,是质数,所以必须整除或,即或。模同理。
因此的两个CRT坐标只能是下面四种组合:
| 模 |
模 |
合并后的意义 |
|
|
|
|
|
|
|
|
两边符号不同 |
|
|
两边符号不同 |
CRT保证每种组合对应一个根。因为都为奇数,模各个质数的1与不同,所以这四个根也互不相同。
最后两种称为1的非平凡平方根。若、,那么,但;否则会同时整除与,进而整除它们的差2,与为奇质数矛盾。因此
符号相反时两个因子互换。最大公约数提取因子,是因为两个质因子分别落在和中,不是仅凭“平方为1”就能分解。若,得到的只是1或整个,没有拆出因子。
8.3 第一次到1之前的一项为什么值得检查
假设,并设是序列第一次出现的1,那么。它的前一项满足,但,因为这是第一次到1。
所以前一项只剩两种可能:它等于,算法这次失败;或者它是非平凡平方根,可以提取因子。初始就为1时也失败,因为没有前一项可检查。
一个简短核对是,从而。取,初始项,随后平方得到、1。前一项34不是1或54,所以得到。它只是一般算法的一次实例;成功条件来自上一节的四种符号组合。
8.4 完整算法与失败分支
算法可以写成下面的顺序。所有余数均取至的代表,输入满足上面的指数条件。
- 从均匀选取,计算。若,因,已是一个真因子,输出。
- 若,计算。若,本次失败,重新独立选取底数。
- 最多进行轮:令。若,令继续;若且,本次失败;若且,输出及另一个因子。
最后一个分支里的也不可能是1:初始为1的情况已排除,后续一出现1就终止。因此它确实是非平凡平方根。合法输入下一定能在轮内到达1,因为。输出因子可以用乘法检查。
8.5 为什么还需要证明概率
我们已经证明:若遇到非平凡平方根,算法会成功;也说明它可能失败。尚未证明的是,随机选择底数会多频繁地产生有用的根。
不能仅凭“四个平方根有两个有用”就断言成功率为一半。连续平方产生四个根的概率未必相同。需要从随机底数出发,分析算法实际到达哪一个根。接下来的三章完成这一步。
第 9 章:成功条件与两个首次到达时间
返回目录
9.1 先固定随机选择的范围
先只研究与互质的底数,即从中均匀选取。均匀表示其中每个剩余类被选到的概率都为。一旦选定,后续取幂、平方和取最大公约数都由它确定,没有新的随机选择。
第8章从全部抽样的算法也适用:不互质的底数直接给出因子;条件于“选到的互质”,各个互质底数仍然等可能。因此先证明互质分支的成功率,再把直接成功的分支加回来即可。
9.2 为什么要定义两个到达时间
连续平方的第项是。用CRT拆开,模和模各自形成一条平方序列。两边都最终到1,但到达的时刻可能不同。
令
表示模第一次到1时,已经做了多少次平方;含义相同。初始已经为1时,次数记为0。这两个量都由随机底数决定,因此称为随机变量。它们存在且不大于,因为第项已经为1;到1以后再平方,仍为1。
引入它们的目的,是把“前一项属于哪种平方根”转化为“两个坐标是否同时第一次到1”。后者更容易计数。
9.3 为什么到达时间不同就成功
设。整体序列第一次到1的时刻是:此时两边都为1,而此前模还未到1。考察前一项。
模已经到1,所以前一项的坐标为1。模尚未到1,但下一次平方将为1,所以前一项的坐标是。这里用的是质数下方程只有两个根,排除1后就只剩。
因此前一项的坐标为,是非平凡平方根,算法成功。若,同理得到,也成功。
若,前一项的两边都尚未到1,下一次却都为1,所以前一项为,即整体的,算法失败。若,初始整体已为1,也失败。所有可能都已覆盖,因此对于互质底数,
这一步只解释成功与失败的条件,还没有给出概率。下一步要问两个到达时间分别怎样分布,以及它们是否独立。
9.4 CRT为什么给出独立的随机坐标
第6章给出双射。右边共有对坐标;每一对恰好对应一个底数。均匀选择中的底数,就等价于等可能地选择这些坐标对。
记、。固定一个非零余数和一个非零余数,有
固定而让任意,一共有对,所以;同理。联合概率等于两个边缘概率的乘积,这正是独立性。
也可以把坐标对看成一个完整的行列表:模余数决定行,模余数决定列。知道选中了哪一行,仍不会偏向这行中的某一列,因为每行都有相同的全部列。这个理解对应的仍是上面的精确计数,而不是另外的假设。
9.5 同一个底数产生的两个到达时间为什么也独立
只需要的坐标就能计算,只需要坐标;固定的没有额外随机性。因此分别对两个独立坐标做确定的运算,不会让它们相关。
把这一点写成计数更清楚。令为模到达时间等于的余数集合,为模到达时间等于的余数集合。事件对应,所以
这里表示集合中的元素个数。对任意都成立,所以独立。关键不是“它们来自同一个底数”或“它们来自两个质数”,而是CRT保证均匀底数对应完整、均匀的坐标对。
9.6 概率证明现在还缺哪一步
我们已把失败转化为,也证明了两者独立。还需要知道:每个到达时间出现的概率是否有统一上界。
接下来的目标是证明,对于任意,,模也一样。路线是:先证明取幂后的初始余数在一个较小循环群上均匀,再根据元素的阶统计首次到达时间。这里“元素均匀”与“到达时间均匀”是不同结论;后一种均匀实际上通常不成立。
第 10 章:取幂的均匀性与到达时间分布
返回目录
10.1 均匀输入怎样才能产生均匀输出
先说明一个将反复使用的计数原则。若在一个有限集合上均匀,令。对于一个输出,
分子是产生的输入个数,也称的原像个数。因为每个输入概率相同,输出概率就由有多少个输入合到这里决定。若每个可能输出的原像一样多,输出才均匀;若是双射,每个输出只有一个原像,当然也均匀。
所以“底数均匀”本身不足以推出“取幂后均匀”。下面必须实际检查这个取幂映射的原像数量,以及哪些映射是双射。
10.2 把模数的乘法周期拆成奇部和2的幂
只分析模,模同理。把中的因子2全部提出,写成
表示含有多少个因子2;因为为奇质数,。另一方面,算法的指数是,为奇数。由于,有和。
后一个整除关系为什么成立?,但是奇数,与互质,所以可以消去,推出。于是写,也为奇数。
取模的原根,令。因为的阶为,第4.4节给出
因此生成一个恰有个元素的循环群
提出奇部的作用,就是从长度的原根循环中,得到长度纯为2的幂的循环。算法先算,也会消去这个奇部;下一节把两件事连接起来。
10.3 为什么指数开始对2的幂取模
原根给出唯一编号,其中。取次幂后,
现在底数变为,它的阶是。所以的值由指数决定。这就是为什么指数的模数变为。
幂值仍在模下计算,指数则按的周期取模。 没有把改成。第4.3节的指数与幂值区分在这里再次出现。
10.4 为什么取幂后在这个循环群上均匀
由第9章,在全部非零类上均匀。原根编号是双射,所以也在上均匀。接着沿上一节的等式分三步看分布。
首先将对取余。固定余数,恰有
这个编号产生它。每个余数的原像数相同,所以均匀,每个概率为。
其次把这个余数乘。因为为奇数,,乘法可消去:若,必有。因此乘是一个排列,仍均匀。此处只需要与互质,不需要它与整个互质。
最后由编号转为。由于的阶恰好为,这又是双射。所以
完整的依据依次是:原根给出双射编号,取余有等大小原像,乘奇数是排列,最后的幂编号又是双射。 取幂通常没有在全部个非零类上保持均匀,而是在这个较小的上均匀。
如果希望核对各步,可以取:,选原根,则的阶为4。取,有;12个编号对4取余时每个余数有3个原像,乘3再把四个余数重排,因此输出各占。这个例子对应上面的原像数与排列,不承担一般证明。
10.5 到达时间为什么由元素阶决定
令,它已在中。假设的阶为。连续平方次就是计算,所以第4.2节告诉我们
因为是阶循环群,的阶必为,其中。这可以直接从与幂阶公式看出,也符合“元素阶整除群阶”的一般定理。
当时,等价于,所以最早到1的时刻恰为。意味着,即初始已经是1。现在问题变成:中有多少个元素的阶恰为?
10.6 怎样从阶的个数得到概率
先做一般计数。设的阶为,全部元素是,。若,由幂阶公式,的阶恰好为等价于
满足条件的编号必能写成,其中。代入最大公约数,条件进一步等价于。这样的恰有个,所以循环群中阶恰为的元素有个。时只有单位元;第16章保留完整的群论证明。
回到。阶为1的元素有1个;阶为、的元素有个。这是因为至中与互质的编号正是奇数,恰占一半。
每个元素的概率已知为,因此
这是“符合条件的元素个数除以全部元素个数”,不是把各个到达时间直接设成等可能。比如时,阶1、2、4分别有1、1、2个元素,所以取0、1、2的概率为。这个小例子显示:元素均匀,到达时间却不均匀,因为不同阶的元素数量不同。
一般情况下,所有概率的总和为。而每个概率都不超过:用;时最大值在取得,恰为。模完全同理,只需把换成中因子2的次数。
第 11 章:相等概率为什么是加权平均
返回目录
11.1 相等事件怎样分成互不重叠的情况
已知独立,且取任意具体值的概率都不超过。要计算,需要考虑它们可能同时等于0、同时等于1,等等。
不同共同取值对应互不重叠的事件:一次选择不可能既使两者同时等于0,又使它们同时等于1。因此可以把这些概率相加。独立性允许把每个“同时发生”的概率拆成乘积,于是
求和覆盖所有可能的整数;范围之外的概率为0。这里有两个不同理由:能相加,是因为共同取值的情况互不重叠;能相乘,是因为两个随机变量独立。不能把二者合并成一句“概率相加相乘”。
11.2 为什么不是把多个二分之一直接相加
令、。第一个概率是“取这个值”的比例,第二个概率是这个值出现后,独立的恰好匹配它的概率。
因此才是这一种匹配在所有情况中所占的比例。只加,就忽略了取各个值的机会不同;把每一类内部的匹配率都当成全部情况的匹配率,也就不再是在算原来的事件。
这里且,因为总会取它的某一个可能值。因此是以为权重,对取加权平均。权重总和为1,是后面上界能保持为的关键。
11.3 一个短例子区分实际值与上界
用你补充过的分布核对这句话:若依次为,而为,实际相等概率是
只知道每个时,可以把每一项的替换成更大的上界,得到
第三个实际匹配率0被放宽成,所以实际值与通用上界可以同时成立。这里真正发挥作用的是三个权重加起来为1,而不是只有三个可能取值。下一节不再依赖这些具体比例。
11.4 一般情况下,上界为什么不会被求和放大
对每一个,由于且,都有。逐项相加,得到
第二行使用每一项的上界,第三行只把公共常数提出求和,第四行使用权重总和为1。可能取值更多,并不会改变最后一步;增加一个可能值,也意味着要在总和为1的权重中分给它一部分。
这就是一般原则:若、,且每个,那么。加权平均不会超过参与平均的各个值的最大值。
11.5 条件概率怎样解释同一个推导
全概率公式把相等事件按的取值分类:
条件概率表示:已知后,恰好匹配它的概率。由于独立,已知不会改变的分布,所以这个条件概率等于。将这些匹配概率按各值出现的比例平均,总匹配概率仍不超过。
独立性为什么不能省略?如果等可能取0、1,再令,那么取每个值的概率都为,但。原因是知道以后,的匹配概率变成1。RSA这里没有这个问题,因为第9章已经用CRT证明了两个坐标以及分别由它们决定的到达时间独立。
11.6 怎样得到至少一半的成功概率
第9章证明,对于互质底数,成功恰好是。相等与不相等互为补集,所以
成功
把全部推理连起来:CRT提供独立坐标 → 取幂后在2的幂阶循环群上均匀 → 按元素阶统计到达时间 → 每个到达时间概率不超过一半 → 相等概率是加权平均 → 失败概率不超过一半。 各步分别在第9—11章证明;最后一步没有省去前面条件。
结论适用于两个不同奇质数的乘积、正整数满足、从全部互质类均匀抽样。原对话使用的且满足这些条件;也足够。
若从全部抽样,不互质底数直接成功,互质部分的条件分布仍均匀。因此完整一次尝试也至少有一半成功率。更精确地,若是互质分支的成功率,则
完整尝试成功
这里是进入互质分支的概率;只有这一分支内的失败可能保留下来。精确概率公式在第17章,理解这条下界不必先算出它。
第 12 章:重试、运行时间与RSA结论的范围
返回目录
12.1 失败以后重试为什么有效
每次失败后重新独立、均匀选择底数,就得到新的一次尝试。若每次失败概率至多,独立重复次都失败的概率至多
“独立重复”不能省略。若一直重复同一个失败底数,后续计算完全一样,重复次数增加不会改善成功率。重新抽样让前一次的失败不改变下一次的分布。
算法输出的因子始终可以验证,因此随机性影响的是需要尝试多少次,不影响成功输出是否正确。有限次全失败时,可以继续尝试;它不构成错误的分解结果。
12.2 为什么平均至多两次,不等于两次必成功
设单次成功率为,令为第一次成功时的尝试总次数。第次恰好第一次成功,需要前次失败、第次成功,所以。
期望表示大量独立运行中尝试次数的平均值。其值为。这个求和也可以从“第轮是否需要做”理解:第1轮一定需要做,第2轮只有第一次失败才需要做,第3轮只有前两次都失败才需要做。因此
第一等式的依据是:一个恰做轮的运行,会在这个条件中各被计一次。对这些轮次指标取平均,再相加,就是平均总轮数。这解释了为什么能用尾概率计算期望。
期望至多2是平均表现,不是每次最多2轮;做很多轮仍有可能,只是尾概率按几何速度减小。
12.3 为什么是期望多项式时间
每次尝试需要求最大公约数、计算以及最多次平方。快速幂按照的二进制展开进行,使用次模乘法;,所以一次尝试的运算次数是量级。
再考虑每个整数运算的位复杂度:中间余数小于,有位;模乘法与欧几里得算法都有关于这些位长的多项式时间实现。因此单轮耗时是关于的多项式。期望轮数至多2,所以期望总耗时仍为多项式。
“多项式时间”是按输入的位数衡量,不是按本身衡量。完整位复杂度说明保留在第17章;本节说明成功概率怎样与运行时间接起来。标准结论的依据见《Handbook of Applied Cryptography》第3章Fact 3.30及第8章Fact 8.6。
12.4 恢复私钥与从密文恢复消息为什么要区分
我们证明了两个方向:分解可以恢复;已知满足条件的私钥指数,可以随机分解。因此“恢复私钥指数”与“分解模数”具有这里证明的计算联系。
但给定,直接求出满足的消息,是另一种已知信息和计算任务,称为RSA反演。能还原一个密文,并不意味着已经得到一个对所有消息适用的私钥指数。上面的随机分解算法必须从构造已知的,不能从“某条消息已还原”自动得到这个输入。
所以这里没有证明“任意解密能力都能用于分解”。即便一种方法确实会解密,也不能把分解算法需要的私钥信息直接当作它已经提供的信息。RSA反演与整数分解之间的这个逻辑区别,也是第二份原对话的起点。第13章把这种区别写成明确的归约关系,并继续区分原始RSA数值对与现代签名方案。
若已知,则另有直接分解方法。由
得到,再利用,就是的两个根:
这是因为和与积共同确定这两个因子。它说明欧拉函数与分解密切相关,同样没有证明一切解密方法都必须先知道欧拉函数。
12.5 怎样回查整条证明
若最后的加权平均已经理解,但仍对概率结论不踏实,可以分开检查三个来源:第9章解释为什么不同步就成功、为什么两边独立;第10章解释每个到达时间概率为什么不超过一半;第11章只把这些结论合起来。
若卡在基础定理,第14章补逆元、唯一分解、容斥与CRT;第15章补原根存在性;第16章补群论中的阶与计数;第17章给精确概率、统一指数与复杂度;第18章保留概念辨析和练习。补充章节按疑问查阅,不要求先把所有抽象结论学完再阅读主线。
第 13 章:RSA反演、签名伪造与安全假设
返回目录
第12章已经区分了恢复私钥与恢复某条消息。本章继续回答:知道消息及其签名,为什么不能直接推出私钥?能够构造一个通过数学验签的数值对,为什么还不等于能随意改写消息?这些问题需要同时看清计算任务、归约方向和签名方案的安全定义。
13.1 先分清消息、消息代表值与签名
继续固定,其中是不同奇质数。公开指数与互质,私钥指数满足。
用表示实际消息,例如一段文字或一个文件;用表示进入RSA幂运算的整数代表,取;用表示签名的整数代表。暂时只看原始RSA运算:
签名使用,验证使用公开的。这里的并不自动等于实际消息:如何从消息得到代表值,是完整签名方案的一部分。现代PSS编码会在消息和RSA运算之间增加明确的步骤,见第13.9节。
13.2 一组消息和签名约束了哪个指数
假设与互质,记为它的乘法阶。已知,尝试求一个指数满足。对于非负指数,有
因为有逆元,可把两边化成;第4章说明回到1的指数恰是阶的倍数。因此即使找到一个解,确定的也是,不是唯一的整数。这个求秘密指数的任务具有离散对数的形式;它与给定求的RSA反演任务不同。
例如。计算得到,而也为18。由于,全部非负指数解为。这个例子中也恰好是有效私钥指数,因为。
但这种巧合不能推广到任意底数。取时,任何指数都满足,其中显然不能作为同一公钥的有效私钥:。因此“对这一组成立”与“对全部消息完成正确私钥运算”是两个条件。
若与不互质,就不能直接套用乘法群中的阶;先算,若结果介于1和之间,已经得到非平凡因子。特殊数值尤其不能代表一般实例的困难性。
13.3 三个计算问题各自要求输出什么
| 问题 |
已知输入 |
需要输出 |
| 整数分解 |
|
|
| 私钥恢复 |
合法的 |
一个正整数,满足 |
| RSA反演 |
合法的和给定的 |
,满足 |
有效私钥不必是最初生成的那个整数代表;相差的指数代表可给出同样的私钥运算。RSA反演则只要求当前输入的原像,不要求输出指数。
对合法RSA参数,幂映射是全部剩余类上的置换。因为第7章证明,次幂提供逆映射,所以每个都有唯一的模原像。原像唯一并不意味着知道高效求出它的方法。
讨论困难性时,通常在上定义随机挑战;第7章的正确性则覆盖全部剩余类。不要把“某些特殊输入很容易反演”误读成“随机挑战普遍容易反演”。
13.4 归约符号为什么容易把方向写反
说,表示:可以调用问题的求解算法,再用多项式时间的额外计算解决问题。因此如果容易,也容易;从这种归约看,不比更难。
用“有A的解法,就能解B”的口头箭头时,方向是;用归约符号时,写的是。两种记号表达同一关系,但左右位置相反。
分解的算法可以用于恢复私钥:先得到,计算,再求的模逆元。因此私钥恢复归约到分解。
私钥恢复的算法也可以用于分解:先取得有效,计算正数,再运行第8—11章的随机分解算法。因此分解随机归约到私钥恢复。该算法总能核验输出的因子,期望运行时间为多项式;也可限制重试轮数,得到失败概率可控的有界时间算法。
知道以后,快速幂给出,所以RSA反演归约到私钥恢复。综合起来,允许随机化归约时可写成
反演私钥恢复分解
这里前一个归约实际可取确定性的;随机性用于从私钥到分解的方向。本章的等价性针对给定合法公钥的标准双素数RSA实例:比较同一下的分解任务与私钥恢复任务。
多项式等价说明的是可解性能够转移,不说明最佳算法的实际耗时相同。算法的次数、成功概率与输入位长仍要分别记录。具体私钥与分解联系可参照《Handbook of Applied Cryptography》Fact 8.6。
13.5 为什么反演能力不自动交出私钥
假设有一个程序,输入就输出它的RSA原像。它给出的是幂映射的输出能力,并没有直接给出整数。第8章的分解算法需要明确的;不能因为程序会做私钥运算,就把这个未知整数当作已知。
即使程序可处理任意输入,也不能凭上述证明断言能从它恢复或分解。一般RSA反演到分解的多项式归约仍不是这里已有的结论;关于两者关系,参照《Handbook of Applied Cryptography》Remark 8.7。
逻辑上,允许从“A容易”推出“B容易”,也允许从“B困难”推出“A困难”;却不允许从“A困难”推出“B困难”。因此相信分解困难,仍不足以仅靠上面的归约证明RSA反演困难;同时,尚未证明等价也不足以证明反演严格更容易。
13.6 已知数值对为什么未必多出私钥信息
只用公钥,也能生成一个满足原始RSA等式的数值对:先选,再算。随后当然成立;由于RSA幂映射是置换,这个也就是的原始RSA签名值。
所以,如果某算法只需要任意有效数值对就能高效恢复有效,可以先用公钥制造这样的数值对,再调用它,最后分解。这是一个算法转换,不是因为“数值对没有任何信息”而直接宣告不可能。
还要核对算法要求的输入分布:若要求在上均匀,先均匀选,置换保证也均匀;若算法要求特定消息格式、额外签名样本或特殊输入,不能直接说这个构造满足全部条件。PSS的有效消息—签名对还要满足编码验证,不能用任意替代。
13.7 修改签名的字节,与伪造有效签名
消息和签名都是可被修改的字节串。签名的作用是让验证者检查收到的消息是否与该签名相符,而不是阻止攻击者写入新字节。
在原始RSA中,若把代表值换成不同的,保留就不能通过等式验证。若同时换成,就必须满足。对预先给定的原始代表值,这个要求正是RSA反演。
但不能把一切伪造攻击都直接归为“求一个独立RSA挑战的原像”。攻击者可能已取得合法签名,甚至可以请求签名;这些额外能力会改变计算任务。下一节说明原始RSA怎样利用这种额外信息。
13.8 原始RSA的乘法性质怎样产生伪造
若已有两组合法原始签名、,相乘得到
所以是的签名。若乘积代表此前未获签名的消息,就得到一个新消息的有效签名。这说明反演困难也不能单独保证原始RSA签名安全。
允许请求原始签名时,还可对指定目标构造攻击。选一个可逆,令
选取满足的,请求的合法签名。因为,有,于是
这里仅请求了其他代表值的签名,就得到目标的签名。逆元和快速幂都可高效计算;攻击利用了签名接口,所以不意味着已经找到只输入的通用反演算法。
这也补足“随便生成的没有实际意义”的讨论:简单反向构造确实不能让攻击者自由指定,但在更强的攻击模型中,原始RSA仍会出现针对指定目标的伪造。若消息还需经过编码,上述请求的未必是某条消息的合法编码,攻击步骤就不能直接照搬。
13.9 PSS怎样把实际消息与RSA运算接起来
RSA-PSS先对实际消息计算哈希,再结合盐和掩码生成函数按EMSA-PSS规则编码为字节串;将它转换成整数代表,最后计算。简记为
哈希与编码转成整数私钥运算
验证者从计算,转回编码字节串,检查编码结构、位长、盐与消息哈希的一致性。盐可由编码恢复,验证者不需要事先保存签名时使用的盐。
因此攻击者先选算出的,还必须通过完整PSS验证。它不一定是合法PSS编码,更不一定与攻击者想要的一致。不能把这个要求简化为:PSS的RSA输入代表不是一个裸哈希值。
原始RSA的乘法性质仍存在,但两个合法编码代表的乘积未必是任何目标消息的合法编码。因此原始数值域中的攻击不再自动成为PSS消息域中的攻击。这个观察解释编码的作用;PSS的安全性还需正式归约,而不是仅由“乘积通常格式不对”证明。操作规则参照RFC 8017 §8.1.1—8.1.2及§9.1。
13.10 为什么“没有攻击意义”仍可能违反安全定义
实际攻击可能要求伪造有意义的转账指令。形式化签名安全采用更严格、也更便于分析的标准:允许攻击者拿到公钥并请求若干消息的签名,最后它必须难以输出一条此前未请求签名的新消息及其有效签名。这里允许请求的接口称为签名预言机;它是安全模型给攻击者的能力,不是说攻击者知道私钥。
攻击者可以根据先前答复选择下一条请求。如果输出的新消息通过验证,即使内容没有实际用途,也算赢得这个攻击实验。这称为选择消息攻击下的存在性不可伪造性,缩写EUF-CMA。定义与实验见Boneh–Shoup《A Graduate Course in Applied Cryptography》§13.1。
“选择消息攻击”描述攻击者能选择请求签名的消息;“存在性伪造”描述最终只需伪造某条新消息。两者不矛盾。希望伪造一条预先指定消息,是更具体的目标;若不说明目标何时选定,本章不把它直接命名为selective forgery。
原始RSA把整数代表本身当作消息,先选再算的构造已经破坏这种标准,即使毫无实际意义。PSS把实际消息作为输入,必须在消息域上判断伪造是否成立。普通EUF-CMA也不要求排除“同一已签消息的另一份新签名”;那是更强的安全定义,不能混在一起。
13.11 可证明安全到底证明了哪一步
RSA假设描述一个随机挑战实验:按指定方式生成合法公钥,均匀选取,计算,只向攻击者提供。假设随着参数位长增加,任何经典概率多项式时间算法都不能以非可忽略的概率恢复。这里“可忽略”指最终小于任意固定的位长负幂,排除了仍有逆多项式成功率的攻击。它是关于实例分布和成功概率的假设,不是声称每个输入都难。
签名安全证明则从一个假设存在的伪造算法出发,构造一个解决RSA挑战的算法。构造必须处理攻击者的签名请求,并定量控制运行时间和成功概率。因此,若反演困难,就能在证明条件下推出伪造也困难。
PSS的相关证明把哈希和掩码生成函数理想化为随机预言机:对同一个输入始终给出同一个输出,对新输入按规则给出独立均匀输出。这是模型条件;实际固定哈希函数不是数学上真正的随机预言机。RFC 8017 §8.1明确以该模型说明PSS伪造与RSA反演的联系。本文解释归约的含义,不重现PSS的完整安全证明。
需要分别记录三个判断:归约在指定模型下成立,是数学证明;RSA反演对相应随机实例困难,是假设;现实部署能否抵抗已知攻击,还涉及参数与实现。不能从其中一个判断直接省略另外两个。
13.12 为什么没有无条件困难性证明仍会研究和使用
未证明某个问题困难,并不等于已找到容易的解法;长期未发现高效攻击,也不等于已经证明永远不存在。密码学的做法是明确假设、公开分析攻击,并用归约说明方案是否额外引入了可利用的弱点。
多项式归约是渐近结论,实际参数还需要结合已知算法的资源成本。即使数学模型中的归约成立,也不能自动涵盖不安全的随机数、错误的编码验证或实现泄漏。本章只解释安全依据,不给出现实系统的参数推荐,也不把原对话的安全强度表当作固定不变的数学定理。
原对话还提到一次一密和量子计算,作为边界比较即可。一次一密在密钥独立均匀、与消息等长、保密且只使用一次时,可提供信息论保密:对每个固定,恰有一个产生这个,所以密文分布不随明文变化。但这个结论只谈保密,不自动提供消息认证;攻击者翻转密文位会相应翻转明文位。
上述RSA假设特意限定经典算法。Shor的量子分解算法表明,允许相应量子计算模型时,可以在多项式时间分解整数;这与“目前是否具备攻击具体密钥的硬件”是不同问题。算法来源见Shor的原论文。后量子标准与迁移时间属于会变化的工程信息,不在这份初等数论笔记中固定为结论。
13.13 用四个问题回查整条逻辑
回看一个RSA论断时,依次问:输入究竟是什么?要输出什么?攻击者还能请求哪些运算?结论在哪个模型与假设下成立?
| 论断 |
能得出的结论 |
不能省略的条件 |
| 已知有效 |
可构造并随机分解 |
标准双素数实例, |
| 已知某条原像 |
已解出当前的反演 |
未必得到有效 |
| 随便选再算 |
得到原始RSA有效数值对 |
未必对应目标消息或PSS合法编码 |
| 可请求原始RSA签名 |
可利用乘法结构伪造目标代表的签名 |
请求代表可被签名接口接受 |
| PSS具有条件性安全证明 |
在相应模型、假设下限制新消息伪造 |
不是无条件困难性定理 |
你在对话末尾提出“这个不一定有攻击意义,攻击者不能随心所欲修改”,准确指出了反向构造的局限。接下来还要保留两点:形式化安全不以消息是否有用作为唯一判据;原始RSA在允许签名请求时仍可能伪造指定目标。把这两点与PSS的消息编码放在一起,才能从数学等式走到完整签名安全。
第 14 章:补充证明:逆元、唯一分解与CRT
返回目录
这一章供遇到“这一步还没证明”时回查。第1—12章已经解释主线的定理与推导;这里补足它们背后的基础结论。可按小节标题选读,不需要一次全部读完。
14.1 从最小正线性组合证明裴蜀等式
定理。 对不全为零的整数 ,存在整数 ,使
令
集合非空:若 ,选择 或 、 即得到 ;否则用 。由良序原理, 有最小元素 ,写作 。
对 作带余除法:,。于是
如果 ,它也是 的元素,却比 小,矛盾。故 ,即 。同理 。
另一方面,任意正公约数 都整除 的整数线性组合,所以 ,进而 。因此 既是公约数,又不小于任何正公约数,正是 。所需的 已由构造给出。证毕。
关键不是猜出线性组合,而是先取最小正组合,再用带余除法排除更小的正组合。这个证明不依赖质因数分解,后面的论证因而没有循环。
14.2 互质消去律与欧几里得引理
若 且 ,由裴蜀等式取 ,乘以 :
右侧两项均被 整除,故 。这就是互质消去律,其中 不必是质数。
作为特例,若 是质数且 ,则 或 。因为一旦 ,质数的因数只有 ,所以 ,可应用消去律。这称为欧几里得引理。
质数条件不可随意删去:,但 不整除任何一个因子。反复应用欧几里得引理,可得质数若整除有限乘积,必整除至少一个因子。
14.3 模逆元存在的充要条件
模 的逆元是满足 的整数 。对 ,有
模有逆元
充分性:由 ,取 。
必要性:若 , 的每个公约数都整除左边,因此整除 ,所以只能为 。
逆元在模 意义下唯一:若 ,则 ;由互质消去律,。
因此,当 时,从 可以乘以逆元,推出 。这是后面约去阶乘或剩余类乘积的依据。
14.4 两个常用推论
互质因子的乘积仍与模数互质。 若 、,相乘得到
任意 的公约数都整除 ,故 。有限多个因子可归纳处理。
互质的两个数都整除一个整数,则其乘积也整除。 若 、、,写 。由 与消去律,,故 。
14.5 如何实际计算逆元
带余除法给出 ,因为 使两对数的公约数完全相同。反复除法时非零余数严格变小,最终停在最大公约数;再回代即可找到裴蜀系数。这就是扩展欧几里得算法。
例如 ,所以 ,从而
这里逆元符号表示模运算中的整数剩余类,不是普通分数 。
14.6 定理的准确表述
每个整数 都能写成有限个质数的乘积。除排列顺序外,质因子及其重数唯一。将相同质因子合并,可以写成
其中 两两不同,。例如 。
“存在”和“唯一”是两个不同问题,不能只证明能拆分,就认为不可能有另一种拆分。
14.7 存在性:强归纳法
自身是质数。假设所有满足 的整数均可分解。
若 是质数,结论立即成立。若 是合数,可写 ,其中 。由归纳假设, 都是质数的有限乘积,合在一起给出 的分解。因此对所有 成立。
14.8 唯一性:配对和终止分别证明
假设
是两种分解。 整除右侧,由欧几里得引理,它整除某个 。两个数都是质数,所以 。重排右边,将它放到第一位,再在普通整数等式中约去相同质数。
重复此步骤,每次都会找到并约去一对相同质因子。
为什么两边一定同时约完? 假设 。约去左侧全部 个因子后,得到
右侧至少剩一个质数,每个质数都不小于 ,故乘积大于 ,矛盾。 同样矛盾。所以 ,每一步配对后所有质因子一一相等,重数也相同。证毕。
能够配对来自欧几里得引理;必然同时结束来自非空质数乘积大于 。这是原对话“为什么最终同时约完”的完整回答。
14.9 最大公约数与最小公倍数的质数幂描述
给定有限多个正整数,把出现的质数统一记为 ,缺少某个质因子时指数记为 。两个数的最大公约数取每个指数的最小值,最小公倍数取最大值:
理由是:由唯一分解,一个正整数整除另一个,当且仅当每个质数指数都不超过对方。公约数和公倍数的条件遂逐个指数决定。
于是 。一个整数同时被所有 整除,当且仅当被 整除;整数为 的情况也显然成立。这将说明中国剩余定理的解周期。
14.10 一般容斥为何成立
令 是能被 整除的整数集合。统计其补集时,按所选集合个数交替加减,并把空交集解释为全部 个整数。
对一个落入恰好 个 的整数,它在展开中的总权重为
若 ,权重为 ;若 ,权重为 。所以恰好只计入互质整数,每个计入一次。这证明了容斥,而非仅把它作为未证明的工具使用。
记 。不同质数互质,每个交集对应其乘积的倍数,故
空乘积取 。展开 时,从每个括号选 或 。选择负项的下标恰好形成子集 ,贡献 ;每个子集出现一次。因此
乘积公式是容斥展开的因式分解表达。 质因子指数虽影响 ,排除的倍数类别却只由不同质因子决定,所以每个质数只出现一个括号。
14.11 两两互质模数的定理
设正整数 两两互质,余数 为任意整数,令 。则
一定有解,所有解恰为 ,。
“唯一”指模 的唯一剩余类,而非只有一个整数解。模数为 的条件不限制任何整数,可以删除;若全部为 ,全部整数就是模 的一个剩余类。以下构造处理剩余的模数。
14.12 存在性:构造对自己的模数余一、对其他余零的项
令 。因为其他每个 都与 互质,第 13.4 节的乘积互质性质给出 。
由裴蜀等式,取 ,令 。于是
第二式来自 。再取
对任意固定 取模,其余项全为 ,只有 ,所以满足全部方程。存在性得证。
14.13 唯一性与全部解
若 都是解,则每个 都整除 。由于模数两两互质,任意部分乘积仍与下一个模数互质,可反复用互质乘积整除推论,得 。
反过来, 对各模数都与 同余,所以仍是解。因此全部解恰为该形式。
14.14 手算构造公式
求 、、。
,、、;各自逆元可取 ,因为对应乘积模自身模数均为 。于是
全部解 。直接检验 分别余 。
14.15 相容性条件与正确周期
对任意正整数模数 ,方程组 有解,当且仅当
对全部
若有解,令 ,全部解恰为 。
模数不互质时,相容性有实际限制。例如 与 无解,因为公约数 不整除余数差 。互质时公约数为 ,条件自动满足,且 等于乘积,所以标准形式是特殊情形。
14.16 两个模数:必要性
考虑 、,记 。
若存在 , 整除 与 ,也就整除两者之差 。因此 必要。
14.17 两个模数:充分性与构造
假设 ,写 、、,其中 互质。
先令 ,保证第一个方程。第二个方程要求 ,等价于存在整数 使
用裴蜀等式取 ,令 、,便满足要求,因此可取 。充分性得证。
若 均为解,则 都整除 ,由第 13.9 节,。反过来加上该最小公倍数的任意整数倍仍是解,因而全部解及周期成立。
14.18 非互质的手算例子
求 、。公约数 整除余数差 ,所以有解。
写 ,代入得到 。这一同余等价于 :是同时将整除等式的两边及模数除以 ,并非保持原模数的无条件约分。
所以 ,取 ,得
周期是 ,不是乘积 。
14.19 多个模数:为何两两相容足以给出共同解
必要性仍来自任意两个方程的差。充分性必须另证,不能只说“每一对有解,所以整体有解”。以下使用质数幂分解。
写
每个 是所有模数中该质数指数的最大值,所以可选一个下标 ,使 。提取约束
这些模数是不同质数的幂,两两互质,由标准形式得到公共解 。
现在证明它满足原方程。固定 ,设 在 中的指数为 。若 ,该质数幂同时整除 与 ,故
而构造保证 ,所以降到 后仍成立,结合相容性得 模该质数幂。对 的所有不同质数幂都成立,互质乘积整除推论给出 。
由于 任意,满足全部原方程。若 ,则全部模数为 ,直接取任意整数即可。
若选择最大指数的模数有多个,相容性使它们的余数模该质数幂相同,因此提取约束没有歧义。
14.20 唯一性与一个多模数例子
任意两个解之差被所有 整除,因此被 整除; 又总是解。所以解模 唯一。 也是解集合的最小正平移周期:任何保持解的正平移量都必须被全部模数整除,因此被 整除。
例如取 ,余数分别为 。三个公约数为 ,都整除对应余数差。,可提取
取 ,逐项检验模 分别余 ,故全部解为 。
第 15 章:补充证明:质数为什么一定有原根
返回目录
第5章已经说明原根的定义和存在性证明的路线。这一章只解决存在性与相关阶公式,适合想追问“每个质数为什么都能找到这样的底数”时阅读。证明先准备两个工具,再限制多项式的根数,最后逐个拼出所需的质数幂周期。
15.1 辅助引理一:一个幂的阶
若 的阶为 ,,则
先设 。令 ,写 、,其中 。对正整数 ,
最后一步用互质消去律。所以最小正 是 。当 时, 的阶为 ,右边也是 。这补全了原对话原根证明中直接使用的公式,也覆盖后面循环群计数的单位元。
15.2 辅助引理二:阶互质时乘积的阶
设 、,且 。模整数的乘法可交换,因此
先有 ,故 整除 。
又 。取 次幂,得到 。,所以 ,进而 。由 互质,推出 。同理 ,再由互质乘积整除推论,。结合 ,得 。
这样无需使用负指数也能完成证明。在一般群中还必须要求两个元素可交换,否则幂不一定可拆开。
若阶不互质,结论未必成立:模 时 的阶均为 ,但 ,乘积的阶为 。
对任意互质于模数的 ,令 ,则 ,故乘积的阶总整除 。互质阶条件保证这个整除进一步达到等号。
15.3 为什么非零多项式的根数不超过次数
在模质数 的系数运算中,设 的次数为 ,最高次系数模 不为 。它最多有 个不同剩余类的根。
先证明因式分解的依据。对每个 ,
逐项相加给出 。若 ,便在模 的多项式环里得到 , 次数为 。
时非零常数没有根。归纳地,若没有根结论显然;若有根 ,对另一个不同根 ,有 。因为 质数且 ,可消去 ,故 。归纳假设使其他根最多 个,加上 至多 个。证毕。
质数条件在此保证非零元素可逆。模 的多项式 有 四个根,已超过次数,说明合数模数不能照搬。
15.4 每个质数都有原根:完整构造证明
时,非零剩余类只有 ,其阶为 ,已经是原根。以下设 ,令
其中 为不同质数。先为每个最大质数幂构造一个对应阶的元素。
第一步:找到不被较短指数消掉的元素。 多项式 次数为 ,故最多有 个根,而非零剩余类有 个。因此可选择非零 ,使
第二步:识别阶中的完整质数幂。 令 。由第 4 章,,但 ;否则幂必等于 。
与 只在 的指数上差 。 的其他质数指数已由 限制,若 的指数也至多 ,便会整除 ,矛盾。因此
第三步:除去阶中的其他因子。 取 。因为 ,由幂的阶公式,
第四步:合并各个互质阶。 取 。各阶为不同质数的幂,两两互质;模乘法可交换。反复使用第 14.2 节,每次累积阶仍与下一个阶互质,得到
所以 是原根。证毕。
“每个元素的阶都整除 ”本身不足以证明有人达到 。多项式根数上界负责提供元素,幂的阶公式负责提取质数幂,互质阶乘积引理负责拼成完整阶。
15.5 原根有多少个
取一个模 的原根 ,。全部非零剩余类可唯一表示为 ,。由幂的阶公式,
因此 是原根,当且仅当 ,共有 个。所以模 的原根数为 。 时用 ,结论仍成立。
| 模数 |
原根个数 |
全部原根代表 |
| 5 |
2 |
2、3 |
| 7 |
2 |
3、5 |
| 11 |
4 |
2、6、7、8 |
| 13 |
4 |
2、6、7、11 |
| 17 |
8 |
3、5、6、7、10、11、12、14 |
15.6 原根判定与合数反例
设 , 的不同质因子为 。则
是原根对全部
必要性:阶为 时不整除任何 。
充分性:令阶为 。若 ,商 有某个质因子 ,于是 ,推出相应幂等于 ,矛盾。 时没有需检验的质因子,非零条件已唯一确定原根。
例:模 时 。,,所以 为原根。
模 的互质代表 全部平方为 ,因此阶最多为 ,而 ;故没有原根。
一般分类是:在 的约定下,有原根的模数恰好为 ,其中 为奇质数,。此分类是拓展结论,本篇没有给出其完整证明;可参看 Yale 数论与密码学课程讲义。
第 16 章:补充证明:群、阶与欧拉函数计数
返回目录
第10章已经从幂阶公式解释循环群的阶计数。这里保留一般群中的定义与完整证明,并补上“元素阶整除群阶”的陪集论证。群是概括模乘法的语言;下面先从可逆剩余类说明运算,再引入一般定义。概率符号的严格定义也放在本章末尾,供回查。
16.1 从模乘法进入群的语言
前面已经证明的模逆元、幂的周期与原根,可以用群的语言统一表达。群是带一种运算的集合,运算满足:封闭、结合律、有单位元、每个元素有逆元。若运算还满足交换律,称为交换群。群的阶是元素个数,记为 ;它与某个元素的阶是两种不同的数量。
对 ,模 的互质剩余类组成
其运算为剩余类乘法。第 13.4 节保证乘积仍互质,所以运算封闭;整数乘法给出结合律与交换律; 是单位元;第 13.3 节保证每个元素有逆元,而且逆元也与 互质。因此 是有限交换群,。
对质数 , 就是全部非零剩余类,阶为 。第 15 章已经完整证明原根存在,所以某个 的幂遍历 。这就是说
是循环群。这里“循环”表示一个元素的幂生成整个群;它是比“每个元素的幂都有周期”更强的性质。
一般模数不保证循环: 有四个元素,却没有阶为四的元素,因而任何单个元素都无法生成全群。
16.2 有限群中的元素阶与循环子群
以下暂用 表示群单位元。对有限群中的元素 ,它的阶是满足 的最小正整数 。
先说明这个正整数一定存在。若 , 共 项,必有两项相同。设 、,乘以 得 。由良序原理可以取最小正指数。
与第 4.2 节同样作带余除法,可以证明对 ,
因此 两两不同,且任何非负整数幂都等于其中某一项。这个集合记为 。它包含单位元;两项乘积仍是一个幂; 的逆元为 ,经指数取余仍在集合中。因此 是 的子群,恰有 个元素。
在一般群中也可以使用整数次幂,负次幂由逆元定义;这里的计数只用非负代表。
16.3 陪集划分与拉格朗日定理的完整证明
设 是有限群 的子群。对 ,左陪集定义为
第一,每个陪集与 等大。 映射 是双射,逆映射为 ,故 。
第二,两个陪集相交就相同。 若 ,其中 ,则
记此元素为 ,有 。对子群内的 ,,所以 ;反用 得反向包含。故两个陪集完全相同。
第三,陪集覆盖全群。 每个 都属于 ,因为 。
综上,不同左陪集将 划分成若干互不重叠、每份恰有 个元素的集合。若有 个不同陪集,则
这就是拉格朗日定理。取 ,便得
证明没有使用交换律,适用于任意有限群。
整除条件不保证每个因数都实现为元素阶。 例如 的阶为 ,其元素阶分别为 ,没有阶为 的元素。后面按每个因数精确计数,依赖的是循环群这一额外条件。
16.4 循环群中的幂阶公式,包括零指数
设 ,,即 的阶为 。每个元素唯一写为 ,其中 。第 14.1 节的论证在群中原样成立:对 ,
若 ,写 、,。对正整数 ,
最后一步用 与互质消去律。因此最小正 为 。
若 , 的阶为 ,而 ,公式同样给出 。这一步补足了概率计数必须包含单位元的边界。
16.5 为什么阶为 d 的元素恰好有欧拉函数那么多个
设 ,令 。由刚才的公式,
右边要求 ,写 。由于 ,恰有 。并且
这个等式也可由第 13.9 节的质数指数逐项取最小值证明。因此
当 ,这样的 恰有 个,因为 不互质,统计范围与 等价;当 ,只有 ,且 ,也与 一致。每个 对应不同的 ,所以
若 ,由拉格朗日定理个数为 。由计数结果可见,在循环群中每个正因数确实都被实现。
取 ,各元素阶只能为 ,。其数量为
因为 时模 的互质代表恰为奇数,有一半。总数检查为 ;没有遗漏其他阶。这就是第 10 章到达时间分布中的计数依据。
16.6 原根存在性的另一条证明:所有阶的最小公倍数
新增对话给出另一种证明,可以与第 14.4 节的逐个质数幂构造对照。设 ,令
每个阶均整除 ,故 。另一方面,每个非零剩余类都满足 。多项式 因而至少有 个根;由第 14.3 节的根数上界,。于是 。
还需要说明有元素的阶恰好达到 。写 。由于是有限多个阶的最小公倍数,对于每个最大质数幂 ,存在某个 ,其阶为 ,且 。取 ,幂阶公式给出阶为 。这些阶两两互质,模乘法可交换,第 14.2 节给出 的阶为 。故 是原根。 单独取 即可。
这段“最小公倍数可以由一个元素的阶达到”的构造对有限交换群成立,不能去掉交换条件。例如三元素置换群 的元素由恒等、换位和三循环组成,阶分别为 ,最小公倍数为 ,却没有阶为 的元素。
16.7 样本空间、事件与随机变量
本篇只需要有限概率,不需要先学习连续分布或测度论。设有限样本空间 的每个结果 有概率 ,并满足 。事件是其中一个子集 ,其概率为 。互不相交事件的概率可以相加。
若所有结果等概率,称为均匀分布,此时
随机变量 是由结果决定的数或标签。事件 指所有满足这个条件的结果,因此
最后一个等式来自不同取值的事件将样本空间划分。并非任意一组概率的和都为 ;这里使用的是某个随机变量全部互斥取值的概率。
16.8 双射保持均匀,等大小原像也保持均匀
若 在有限集合 上均匀, 是一个映射,则对 ,
这直接由均匀计数得到。如果 是双射,每个原像恰有一个元素,输出在 上均匀。如果 是满射,而且每个原像恰有相同的 个元素,则 ,输出仍在 上均匀,概率为 。
输出均匀需要检验原像大小,不能仅因为输入均匀就断定。 例如均匀取 ,映射 取 的概率为 ,取 的概率为 。
对 均匀取自 ,映射 的每个原像为
恰有 项,故余数均匀。若 , 又是双射:相同像经互质消去律推出相同原像,有限同大小集合上的单射就是双射。两步合起来仍保持均匀。
16.9 条件概率、独立性与全概率公式
当 时,条件概率定义为
随机变量 独立,表示对其全部取值 ,
因此,在 时,。零概率条件事件不使用这个除法。
设 将样本空间划分成互不相交的事件,则 被 划分,所以
这就是有限全概率公式。等号的依据分别是事件划分和条件概率定义,并不需要先假设独立。
如果 独立,分别只依赖它们的 也独立。固定输出 ,将原像事件展开:
这里强调“分别”:若两个新变量都依赖同一个输入,不能自动断言独立。
第 17 章:补充:精确概率、统一指数与运行时间
返回目录
第11章的至少一半已经证明完了。这一章回答三个额外问题:实际概率是多少,指数条件能否再放宽,每轮计算需要多长时间。第一次理解加权上界时可以跳过这一章。
17.1 精确概率公式与最差情形
这里延续第10章的记号:,再写,其中为奇数,。下面算的是均匀选互质底数时的精确概率。
令 。两边有正概率的共同取值为 。代入分布,
失败
因此
成功
这些是互质均匀抽样下的精确概率,不依赖 中多出的奇因子或因子 :前者在指数子群中作排列,后者只延长序列已经为 的尾部。
|
|
失败概率 |
成功概率 |
| 1 |
1 |
|
|
| 2 |
1 |
|
|
| 2 |
2 |
|
|
| 3 |
3 |
|
|
| 2 |
4 |
|
|
若 ,失败概率为 ; 时为 ,以后严格减小。若两者不同,分母进一步乘以 ,失败概率更小。因此最低成功概率 确实在 达到。取 即为一个实例。
17.2 卡迈克尔函数:统一周期与单个元素周期
对 ,令 为互质剩余类。定义 为所有 都满足 的最小正整数 。
由第 4.2 节,一个 对全部元素可用,当且仅当它被每个元素的阶整除。因此
最右边整除来自每个阶均整除 ,所以其最小公倍数也整除。模 时阶分别为 ,故 。
对质数 ,原根的存在保证 。对两个不同质数 ,中国剩余定理把 对应到 ,并且一个幂等于 当且仅当两个坐标都等于 ,所以
充分性:该最小公倍数使两个坐标的幂都为 。必要性:由标准中国剩余定理可选互质元素,其模 坐标为原根、模 坐标为 ,所以任意统一指数必须被 整除;交换坐标又得 整除它,因而被两者最小公倍数整除。
三种指数的区别是:阶针对一个底数, 针对全部互质底数的最小统一指数, 是互质底数个数,同时提供一个统一指数。一般 的质数幂公式及全部结构不在本篇展开。
17.3 我们真正需要的是一个正的统一指数倍数
有效指数满足
这个条件与 RFC 8017 第 3.2 节 一致。令 ,则 。原对话使用更强的 ;本章的全部证明只需要较弱条件。
要求 。 正整数 可以保证这一点; 给出 ,无法把它写成后面所需的有限二次幂分解。它虽满足形式同余,却是公开的恒等幂运算,不能纳入这里的分解归约条件。
将 中所有因子 提取出来,得到唯一分解
为奇数
因为 为奇质数, 都为偶数,故 。对任何 ,费马小定理分别给出 模 与模 ,再由 CRT 合并得
算法知道的是 ,无需知道 或 的实际数值。
17.4 有限次失败与期望多项式时间
第 11 章已经证明互质底数的一次成功概率至少为 。在全部 中抽样时,非互质分支直接成功;条件于互质时仍然均匀。因此全部候选的一次成功概率也至少为 。
独立重复 次仍失败的概率至多为 。例如 ,上界为 。这不保证每个随机序列都成功。
无限重试的算法一旦输出就必正确,期望尝试次数至多为 ,称为 Las Vegas 型随机算法;限次版本可以在未找到因子时明确报告失败。不能把“报告失败”写成输出一个未经验证的因子。
复杂度按输入位数计算。反复除以 最多进行 次,快速幂需要 次模乘,连续平方最多 次;gcd 和整数运算均可在输入位数的多项式时间完成。期望总时间因此是 的多项式,而不是与巨大整数 的数值成正比。通常 RSA 指数代表小于 ,此时也可按 控制。
第 18 章:辨清几个计数问题,再用练习回查
返回目录
本章保留原对话问过的素数数量、质因子数量及欧拉函数的区别。解析数论的渐近公式只作拓展,不参加前面的RSA证明。练习先挑你刚读过的主题,解答用于核对步骤。
18.1 三种“个数”不要混淆
| 问题 |
记号 |
例子 |
| 不超过 的素数有多少个 |
|
:2、3、5、7、11 |
| 有多少种不同质因子 |
|
|
| 的质因子算重数后有多少个 |
|
|
| 代表范围内与 互质的整数有多少个 |
|
|
如果 ,则 、,并约定 。因每个质因子至少为 ,,所以
若有 个不同质因子,把它们排序后第 个不小于第 个质数,所以 至少是前 个质数的乘积。因此 时最多一种, 时最多两种, 时最多三种。这个上界讨论的是最大可能数量,不能当成给定整数的实际数量。
18.2 素数计数与渐近公式:只介绍拓展结论
素数定理为
表示两者比值趋于 ,不是精确相等;相对误差趋于 ,也不意味着绝对误差趋于 。对整数 ,“小于 ”的计数是 ,不是 。参看 Carl Pomerance 的数论讲义。
| 上限 |
不超过 的素数实际个数 |
(约) |
| 10 |
4 |
4.3 |
| 100 |
25 |
21.7 |
| 1000 |
168 |
144.8 |
| 10000 |
1229 |
1085.7 |
| 100000 |
9592 |
8685.9 |
| 1000000 |
78498 |
72382.4 |
接近大数 的整数“成为素数的密度约为 ”是一种启发式解释,不是证明。对数积分是更精细的经典近似;采用从 起积分的记号时,可写 。它与采用主值积分定义的 相差常数,记号应说明约定。
原对话还提到不同质因子数的最大值与平均值,其渐近量级分别是 与 。它们是关于一批整数的统计结论,不是计算 的精确公式。为把平均与正常数量分开,准确写成
Hardy–Ramanujan 定理的核心是“正常数量”:对每个固定 ,除占比趋于 的例外整数外, 接近 ,相对偏差小于 。平均值结论与正常数量结论相关,但不是同一个陈述;这一区别可参看 Carl Pomerance 关于数量阶的讲义。
以上解析数论结论不在本篇的证明范围内,也不参与 RSA 正确性证明。拓展资料可参看 数论笔记中的算术函数阶。
18.3 练习与解答
题 1。 求 模 的余数。
解:,。
题 2。 对任意整数 , 与 哪个必成立?
解:第二个。第一个还需 ,取 即得反例。
题 3。 解 。
解: 的逆元为 ,所以 。
题 4。 已知 ,求 的阶。
解:。直接检验 ,,。
题 5。 解 、。
解:公约数 整除余数差 ,有解。写 ,得到 ,所以 ,。
题 6。 对 ,消息 是否都能恢复?
解:是。第 7.3 节已覆盖任意消息,包括 与质因子倍数。加密余数分别为 ,相应解密余数也是它们本身。
题 7。 一个 阶循环群中,阶为 的元素分别有多少个?
解:分别为 ,总和为 ;其他正整数不整除 时个数为 。
题 8。 已知 模 的阶为 ,,求 。
解:指数对 取余为 ,幂的值仍模 ,所以 。
题 9。 两个独立随机变量的分布为 与 ,它们相等的概率是多少?为何仍可写上界 ?
解:按相同位置作乘积并求和得 。第二分布每项至多 ,以第一分布为权重,权重总和为 ,所以通用上界为 。上界不等于精确值。
题 10。 对 ,连续平方分解仍可用吗?
解:,不是 的倍数,但条件已足够。;取 得 ,照样提取 。互质底数成功概率仍为 。
题 11。 若 与 中因子 的次数分别为 ,互质均匀底数一次尝试的成功概率是多少?
解:,失败概率为 ,成功概率为 。
题 12。 单次失败概率为 ,独立重复 次仍全部失败的概率与期望尝试次数是多少?
解:分别为 与 。若不独立重选,这些式子未必成立。
第 19 章:从原问题回到笔记,以及怎样分享
返回目录
19.1 第一份对话的21轮
这里按原来的追问顺序提供回查入口。原对话中选择的文字与公式显示问题也保留为来源数据;对于未直接查看的截图,不声称已经读过图像。
19.2 第二份对话的11轮与一条补充
后来的加权概率解释是单独补充,没有把它算成分享对话中的第12轮。
| 轮次 |
原来的问题或关注点 |
在哪里接着读 |
| 1 |
与分解有关,为什么仍不能说破解必须先分解 |
第12章 |
| 2 |
已知有效私钥为什么能恢复因子 |
第8章 |
| 3 |
平方为1,为什么质数下只能是正负1 |
第8章、第14章 |
| 4 |
非平凡平方根为什么能用最大公约数分解 |
第8章 |
| 5 |
成功概率至少一半怎么证明 |
第9章到第11章 |
| 6 |
质数下的乘法群为什么循环 |
第5章、第15章 |
| 7 |
为什么编号和取幂后的结果仍均匀 |
第10章 |
| 8 |
为什么开始把指数对2的幂取模 |
第4章、第10章 |
| 9 |
怎样从均匀余数导出到达次数的概率 |
第10章 |
| 10 |
元素阶为什么整除群阶 |
第16章 |
| 11 |
阶为的元素为什么有个 |
第10章、第16章 |
| 补充 |
为什么求和后仍不超过一半 |
第11章 |
19.3 第三份对话的9轮
第三份对话从“已知消息和签名为何不能求私钥”出发,随后区分归约、反演与签名伪造。新增第13章按问题展开,已有的随机分解证明仍放在第8—11章,不重复搬入新章。
整理时明确了归约符号的方向;限定用乘法阶分析指数时的互质条件;区分满足单个等式的指数与有效私钥;将PSS验证表述为完整编码检查。增加原始RSA签名请求下的目标伪造推导,区分实际攻击价值与EUF-CMA的形式化标准。原对话提到的一次一密、量子算法保留为边界说明,参数强度表与后量子迁移时间不作为固定数学结论收录。
19.4 本版更新与旧版保存
第五版新增第13章,微调第7.4和12.4节的衔接,保留已有基础证明、概率推导和练习内容;原第13—18章顺延为第14—19章。所有章号引用与导航同步更新。新章从明确计算任务出发,解释归约与安全假设,再讨论原始RSA和PSS的签名边界。PSS的完整安全归约不在本笔记内证明,已注明模型条件和原始资料。
此前版本均已归档。第四版见第四版HTML与第四版PDF。第三版见第三版HTML和第三版PDF。第二版的完整正文与检查材料保存在第二版HTML与第二版PDF所在目录。最早版本也保留:第一版HTML。
“欧拉函数”“欧拉定理”与复数里的欧拉公式是不同内容;后者在代数基本定理笔记中阅读。原根和模质数的多项式,可接到多项式与分圆域笔记和伽罗瓦理论笔记。
配套Markdown与阅读索引保留。HTML 的正文、样式、公式、公式源码查看及复制工具都嵌入单文件,可以离线阅读;PDF 保留正文、矢量公式、带页码目录和分层书签。跨笔记和原对话链接需要对应文件,分享整套时保留目录层级。