【发布时间】:2014-09-01 11:23:50
【问题描述】:
我正在尝试使用 ntl 计算有限域(组)中元素的顺序。但我没有找到任何功能来做到这一点! 有人可以指导我吗?
【问题讨论】:
标签: element ntl finite-field
我正在尝试使用 ntl 计算有限域(组)中元素的顺序。但我没有找到任何功能来做到这一点! 有人可以指导我吗?
【问题讨论】:
标签: element ntl finite-field
我认为没有内置的方法可以做到这一点。
但您可以自己编写脚本。
一个字段F 有两个操作,加法(+)和乘法(*)。首先,您必须指定是否要知道 g 在组 (F,+) 或组 (F \ {0}, *) 中的顺序。
在(F,+)中查找g的顺序:
这是一个简单的情况,因为如果该字段有 pm 个元素,则该组中每个元素的顺序都是 p。
在(F \ {0}, *)中查找g的顺序:
这有点难。 g 在(F \ {0}, *) 中的顺序也称为discrete logarithm。基本上,您可以为每个 k=1,...,pm 尝试 gk。但这需要一段时间。一个简单的方法是baby-step giant-step 算法。
我没试过,不过你也可以看看this discrete logarithm implementation using NTL。
【讨论】: