1. 验证素数模 7 的原根
密码学学生背景
正在学习离散对数体制,需要找出一个模 7 的原根以构造生成元。
问题
需要确认元素 3 是否能生成模 7 的所有非零剩余类并求出其乘法阶。
如何使用
在元素 a 输入框中填入 3,在模数 n 输入框中填入 7,执行计算。
结果
输出 ord_7(3) = 6,因 φ(7) = 6,确认 3 是模 7 的原根,并给出由 6 个元素组成的循环子群 {3, 2, 6, 4, 5, 1}。
Elysia Tools
导航
Math & Numbers
求元素 a 模 n 的乘法阶 ord_n(a)——使 a^k ≡ 1 (mod n) 的最小 k ≥ 1(要求 gcd(a, n) = 1)。算法从 φ(n) 出发逐个剥去素因子并测试 a^(ord/p),输出 a 的幂表、最小性证明(对每个整除 k 的素数 p 验证 a^(k/p) ≢ 1)、生成的循环子群 <a>,并标注 a 是否为原根(ord = φ(n))或达到最大阶(ord = λ(n))。经典例:ord_7(3) = 6 = φ(7),3 是 mod 7 的原根;ord_15(2) = 4 < φ(15) = 8。
执行
填写表单、运行工具,并在同一页面查看结果。
案例
相关内容
工具使用指南
模 n 乘法阶计算器用于快速求解满足 a^k ≡ 1 (mod n) 的最小正整数 k(即乘法群元素阶 ord_n(a))。工具基于欧拉函数 φ(n) 与卡迈克尔函数 λ(n) 进行因数剥离与判定,自动生成模幂迭代序列、最小性证明、生成的循环子群 <a>,并标明该元素是否为模 n 的原根或达到群的最大阶。
背景
正在学习离散对数体制,需要找出一个模 7 的原根以构造生成元。
问题
需要确认元素 3 是否能生成模 7 的所有非零剩余类并求出其乘法阶。
如何使用
在元素 a 输入框中填入 3,在模数 n 输入框中填入 7,执行计算。
结果
输出 ord_7(3) = 6,因 φ(7) = 6,确认 3 是模 7 的原根,并给出由 6 个元素组成的循环子群 {3, 2, 6, 4, 5, 1}。
背景
在准备关于群论的习题课,需要展示模 15 乘法群不是循环群的实例。
问题
求解元素 2 在模 15 下的阶,并对比 φ(15) 与 λ(15)。
如何使用
在元素 a 中输入 2,在模数 n 中输入 15,提交查看结果。
结果
计算显示 ord_15(2) = 4,子群为 {2, 4, 8, 1};由于 λ(15) = 4 且 φ(15) = 8,系统标明 2 达到了最大阶但模 15 不存在原根。
必须满足 gcd(a, n) = 1,即元素 a 与模数 n 必须互质,否则 a 在模 n 下不存在乘法逆元。
如果一个元素 a 的乘法阶等于模数 n 的欧拉函数值(ord_n(a) = φ(n)),则该元素是模 n 的原根。
模数 n 支持 2 到 10¹² 之间的正整数,元素 a 会在计算前自动归约为模 n 的等价剩余类。
φ(n) 是乘法群的总大小,而 λ(n) 是群中元素可能达到的最大乘法阶,当且仅当模群为循环群时两者相等。
对整除 k 的每一个质因子 p,验证 a^(k/p) ≢ 1 (mod n),即可严格证明不存在更小的正整数阶。