由算术基本定理可知,每个自然数 $n$ 都是素数因子的乘积。
若 $\Bbb{G}$ 是 n 阶有限循环群,则 $\Bbb{G}$ 的每个子群 $\Bbb{G}'$ 都是有限循环群且 $\Bbb{G}'$ 的阶数为 $n$ 的因数,此外,对于 $n$ 的每个因子 $k$ ,$\Bbb{G}$ 都存在一个对应的 $k$ 阶子群。这被称为 有限循环群的基本定理(fundamental theorem of finite cyclic groups)。
符号 7
如果 $\Bbb{G}$ 是一个 n 阶有限循环群,且 k 是 n 的因子,那么对于每一个有限循环群,将其记为 $\Bbb{G}[k]$ ,称其为 $\Bbb{G}$ 的 商群(factor group)
如果给定的有限循环群的阶是素数,就会出现一个有趣的情况。正如我们所知,素数仅存在两个因子: 数字 1 和素数本身。根据有限循环群的基本定理,我们可知阶数为素数的有限循环群的商群仅有平凡群和本身。
密码学协议通常假设存在有限的素数阶循环群。但是,这些协议在现实世界中的一些实现没有定义在素数阶群上,而是定义在具有特殊阶数的群上。此特殊阶数可以分解为一个大素数和一个小的共因子。在这种情况下,我们需要使用一种被称为 共因子清除(cofactor clearing) 的方法以确保计算不在该群本身进行,而是在其(大)质数阶子群中进行。
为详细理解共因子清除的细节,设 $\Bbb{G}$ 是一个 n 阶有限循环群,且 $k$ 为 $n$ 的一个因子,具有与之对应的商群 $\Bbb{G}[k]$ 。我们将任何元素 $g \in \Bbb{G}[k]$ 通过自乘 $k$ 次映射到 $\Bbb{G}$ 的幺元 $e$ 上:
$$g^k=e$$
因此,如果 $c := n\ \text{div}\ k$ 是 k 与 n 的共因子,那么任何元素 $g \in \Bbb{G}$ 都可以通过 $g$ 与其自身相乘 $c$ 次映射到因子群 $\Bbb{G}[k]$ 中。这定义了以下映射,在密码学文献中通常称为共因子清除:
$$(\cdot)^c: \Bbb{G} \to \Bbb{G} [k] : g \mapsto g^c$$
示例 40
已知有限循环群 $(\Z^*_5, \cdot)$ ,其阶数为 4 (参见 示例 34),且 4 有 1、2 和 4 三个因子,因此根据有限循环群基本定理,$\Z^*_5$ 存在三个不同的子群。事实上, 1 阶唯一子群 $\Z^*_5[1]$ 是由仅包含乘法幺元的 $1$ 的平凡群 $\{1\}$ 组成的。 4 阶子群 $\Z^*_5[4]$ 是 $\Z^*_5$ 本身,根据定义,每个群都是其自身的平凡子群。2 阶子群 $\Z^*_5[2]$ 是有趣的,由集合 $\Z^*_5[2]=\{1,4\}$ 给出。
由于 $\Z^*_5$ 不是素数阶群,并且由于 4 的唯一素数因子是 2 ,因此 $\Z^*_5$ 的最大素数阶子群是 $\Z^*_5[2]$ 。此外,由于 2 和 4 的共因子是 2 (共因子概念请参考 符号-1) ,我们得到了共因子清除映射 $(\cdot)^2:\Z^*_5 \to \Z^*_5[2]$ 。当我们对 $\Z^*_5$ 的所有元素使用此映射,我们分析 $\Z^*_5$ 的所有元素都被映射到 $\Z^*_5[2]$ 中:
$$1^2 = 1\quad{} 2^2 = 4\quad{} 3^2 = 4\quad{} 4^2 = 1$$
因此,我们可以使用此映射对任何来自 $\Z^*_5$ 的元素进行共因子清除。共因子清除的结果是元素被映射到大素数阶子群 $\Z^*_5[2]$ 中。
练习 39. 已知 示例 40 ,证明 $\Z^*_5[2]$ 是一个 交换群
练习 40. 已知模 6 加法的有限循环群 $(\Z_6, +)$ ,描述此群的所有子群。识别 $\Z_6$ 的大素数阶子群,定义共因子清除映射并将其对 $\Z_6$ 的所有元素使用。
练习 41. 已知 $(\Z^*_p, \cdot)$ 是一个循环群,证明对于 $p \geq 5$ ,并不是所有元素 $x \in \Bbb{F}^*_p$ 是 $\Bbb{F}^*_p$ 的生成元。