Cryptography Reference
In-Depth Information
2.15.2 Computing the order of a group element
We can now return to the original problem of computing the order of an element in a finite
field.
=
i
=
1
l
e
i
i
is known.
Then one can determine the order of g in O
(log(
q
) log log(
q
))
multiplications in
∈ F
q
and assume that the factorisationq
−
Theorem 2.15.10
Let g
1
F
q
.
g
(
q
−
1)
/l
e
i
. Since
m
Proof
The idea is to use Algorithm
4
to compute all
h
i
=
=
O
(log(
q
))
F
q
. One can then compute all
h
l
this requires
O
(log(
q
)loglog(
q
)) multiplications in
for
f<e
i
and, since
i
=
1
l
e
i
i
1
≤
=
q
−
1 this requires a further
O
(log(
q
)) multiplications.
i
The complexity in Theorem
2.15.10
cannot be improved to
O
(log(
q
) log log(
q
)
/
log(log(log(
q
)))) using the result of equation (
2.6
) because the value
m
is not always
(log(
q
)).
2.15.3 Computing primitive roots
F
q
is a cyclic group and that a primitive root in
F
q
is an element of order
q
Recall that
−
1.
−
We assume in this section that the factorisation of
q
1 is known.
One algorithm to generate primitive roots is to choose
g
∈ F
q
uniformly at random and
to compute the order of
g
using the method of Theorem
2.15.10
until an element of order
q
∈ F
q
is a primitive root is
ϕ
(
q
1).
Using Theorem
A.3.1
, this probability is at least 1
/
(6 log(log(
q
))). Hence, this gives an
algorithm that requires
O
(log(
q
)(log(log(
q
)))
2
) field multiplications in
−
1 is found. The probability that a random
g
−
1)
/
(
q
−
F
q
.
We now present a better algorithm for this problem, which works by considering the
prime powers dividing
q
−
1 individually. See Exercise 11.2 of Section 11.1 of [
497
]for
further details.
Theorem 2.15.11
Algorithm
5
outputs a primitive root. The complexity of the algorithm is
O
(log(
q
) log log(
q
))
multiplications in
F
q
.
Proof
The values
g
i
are elements of order dividing
l
e
i
.If
g
l
e
i
−
1
1 then
g
i
has order exactly
l
e
i
. On completion of the while loop the value
t
is the product of
m
elements of maximal
coprime orders
l
e
i
. Hence,
t
is a primitive root.
Each iteration of the while loop requires
O
(log(
q
)loglog(
q
)) multiplications in
=
i
i
F
q
.It
remains to bound the number of iterations of the loop. First, note that, by the Chinese
remainder theorem, the
g
i
are independent and uniformly at random in subgroups of order
l
e
i
. Hence, the probability that
g
l
e
i
−
1
1
/
2 and the expected number of trials
for any given value
g
i
less than or equal to 2. Hence, the expected number of iterations of
the while loop is less than or equal to 2. This completes the proof.
=
1is1
/l
i
≤
i
i