The Fundamental Theorem of Finite Cyclic Groups
The Fundamental Theorem of Cyclic Groups provides guarantees about the existence of cyclic subgroups within a cyclic group.
In the context of the Number Theoretic Transform (NTT) of polynomials over a finite field, and also the FRI operation in ZK-STARKs, we need multiplicative subgroups whose order (number of elements) is a power of two. The Fundamental Theorem of Cyclic Groups enables us to quickly determine if a particular finite field has a multiplicative subgroup with that order or not.
We will cover the following as preliminaries, then get to the Fundamental Theorem of Cyclic Groups:
- Definition of a Subgroup
- Order of a Group or Subgroup
- Powers of an Element in a Multiplicative Group
- Cyclic Subgroups, Cyclic Groups, and Their Generators
1. Definition of a Subgroup
Given a group , a subset of is a subgroup of if forms a group with respect to the group operation in . In other words, if we restrict ourselves to elements of but keep using the group operation of , the criteria for a group all still hold. Most importantly, the operation must be closed in , so whenever we apply the operation on two elements of , we must get out another element of .
Example of Subgroups
The set of integers modulo 8 under addition form a group . and are both subgroups of . On the other hand, is not, because
2. Order of a Group or Subgroup
The order of a group , denoted by , is the number of its elements. If a group is not finite, its order is said to be infinite.
Example for the order of a group and subgroup
Consider the group of the example above. The order of is 8, meaning (since there are exactly 8 elements in the group). Moreover, the order of the subgroup is 4 (i.e. ).
3. Powers of an element in a multiplicative group
If , the powers of the element , denoted by , form the set . For example, consider the group of non-zero integers under multiplication modulo 7, . The powers of the element in are as follows:
Since:
How about ?
Thus, . For every power with , the result will be one of the elements already in this list.
Exercise: Find the set generated by the element .
The powers of an arbitrary element form a Subgroup
Let be an arbitrary element in . The set of powers of the element forms a subgroup. In other words,
is a subgroup of .
Proof. See the appendix
4. Cyclic Subgroups, Cyclic Groups, and Their Generators
Let be an arbitrary element in , then the subgroup is called the cyclic subgroup of generated by . For example, consider the group of non-zero integers under multiplication modulo 7, . The cyclic subgroup generated by the element is:
Exercise: Find the subgroup generated by the element .
Definition of a Cyclic Group
Let be an arbitrary element in . If , then we say that is a cyclic group and that is a generator of . In other words, a group is cyclic if it contains at least one element that generates all the elements of the group.
Example of Cyclic Group and Generators
Consider the group of non-zero integers under multiplication modulo 7, . Since , as shown above, then is a cyclic group and is a generator of .
Note that , which means that the element is not a generator of , but rather 2 generates a subgroup of .
Exercise: Determine whether is a generator of
Generators of Cyclic Groups Are Not Necessarily Unique
Cyclic groups have at least one generator, but the generator does not have to be unique. In other words, a cyclic group can have multiple generators, any of which generates the entire group. The same is true for cyclic subgroups.
As you saw in the example and exercise above, the elements and are both generators of the group .
For another example, consider the group of non-zero integers under multiplication modulo 5. i.e, . The elements and generate whole group.
The Fundamental Theorem of Finite Cyclic Groups
The Fundamental Theorem of Finite Cyclic Groups makes three claims. Let be a finite cyclic group, and let be a subgroup of .
- is necessarily finite and cyclic (meaning has a generator).
- The order of (the number of elements it has) is a factor of the order of . In other words, the order of divides the order of . For example, suppose the order of is 6. We automatically know a subgroup of order 5 cannot exist, since 5 does not divide 6.
- If is the order of and divides , then a subgroup of size necessarily exists and is unique. In fact, we can immediately find a generator for it: if is a generator of , then is a generator for a subgroup of size . This subgroup of size is equal to . We will show examples of this shortly.
Connection to Lagrange’s Theorem
Statement (2) of the Fundamental Theorem of Finite Cyclic Groups holds for any finite group , even if is not cyclic. This general result is known as Lagrange’s Theorem.
For brevity, we will call this the Fundamental Theorem of Cyclic Groups, with the understanding that we are dealing with finite groups.
Examples of Using the Fundamental Theorem of Cyclic Groups
Let’s use under multiplication modulo 7 as our cyclic group. We’ve already shown that generates the whole group.
The subgroup of order 1
Using the Fundamental Theorem of Cyclic Groups, we know that has a subgroup of order 1, since 1 divides 6. Now let’s find a generator for this subgroup. Since , we have . The identity element is clearly a generator of the subgroup of size one.
The subgroup of order 2
Now let’s find the subgroup of size 2. We know it exists because 2 divides 6. Here, we have , , and . Plugging into the formula, we get . The element generates the subgroup of order 2 with elements .
The subgroup of order 3
Since 3 divides 6, there exists a subgroup of order 3. Moreover, the element is a generator for this subgroup,
The subgroup of order 4, 5
There are no subgroups of order 4 and 5 because these numbers do not divide 6.
The subgroup of order 6
Since 6 divides 6, there exists a subgroup of order 6. Moreover, is a generator of this subgroup:
Exercise: Consider the group with elements under multiplication module 11.
- Find a generator for this group.
- The group has a subgroup of order 5, since 5 divides the order of , which is 10. Find a generator for this subgroup and calculate the subgroup it generates.
Multiplicative Subgroup of Order in a Finite Field
We can find multiplicative subgroups of specific order in a finite field. First, let’s see the definition of finite fields:
By definition, a field consists of two Abelian (binary operators are commutative) groups:
- Additive group: , which is Abelian and finite in a finite field.
- Multiplicative group: (where ), which is also Abelian and finite in a finite field.
Note that denotes a field with elements, while (the multiplicative group of ) has elements.
In the following theorem, we see that every finite field necessarily contains a multiplicative subgroup of order (with omitted).
Theorem 1: The Multiplicative Group is Cyclic of Order .
If is a finite field with order , then its multiplicative group is cyclic of order .
That forms a group of order follows immediately from the definition of a finite field.
Since proving the cyclicity of the multiplicative group would take us beyond the scope of this article, we will take it as a given fact.
A cyclic group has a generator, therefore we know that some exists such that
Primitive Elements in a Finite Field (Generators)
In field theory, a primitive element of a finite field is a generator of the multiplicative group of the field. The element in Theorem 1 is a primitive element in .
The Python code below uses the galois library to identify primitive elements (generators) in .
import galois
GF = galois.GF(7)
primitive_elements = GF.primitive_elements
print("Primitive elements:", primitive_elements)
# Primitive elements: [3 5]
# Alternatively, find a single primitive element
# suitable when there are a lot of primitive elements
primitive_element = GF.primitive_element
print("A primitive element:", primitive_element)
# A primitive element: 3
Exercise: Use Python to find all the primitive elements of the multiplicative group of the field .
Corollary 1: Testing for Subgroup of Order — Existence via Divisors in a Finite Field
A useful corollary is that we can quickly check whether a subgroup of a certain size exists or not by listing all the divisors of . For example, consider the field , which has a multiplicative group with order 40. We can quickly check that has a subgroup of size 8 because 8 divides 40.
As another example, consider the field , whose multiplicative group has order 16. Since 8 divides 16, has a subgroup of size 8. Similarly, it has a subgroup of size 4, because 4 divides 16, and, as you might guess, also has a subgroup of size 2.
To find a generator for a multiplicative subgroup of a given size, we can use statement (3) of the Fundamental Theorem above. The size of is , so if we have a primitive element and want a multiplicative subgroup of order , we can calculate for any primitive element .
All In One Example
Consider the finite field . For a given , we want to find a multiplicative subgroup of order in using the Fundamental Theorem of Finite Cyclic Groups.
Since the multiplicative subgroup has order , we know from statement (2) of the Fundamental Theorem of Cyclic Groups that it has subgroups of orders 1, 2, 4, 8, and 16, with the last one being the group itself.
These subgroups are cyclic, so each has at least one generator. From statement (3) of the theorem, we know that a generator for each subgroup is given by , where is a generator of the full multiplicative group and is the size of our desired subgroup.
Therefore, to generate the subgroups, the first step is to find a generator of , which is a primitive element of .
The generator of
Recall from Theorem 1 that is a cyclic group. To show that can be generated by the element , we can calculate all powers of as follows:
How about ?
You can see that for all , the element is equal to one of the . You can also see that every value in {1,2,…,16} shows up somewhere in the list of powers of 3. Then, .
This generator can be found in Python code with galois.primitive_elements.
import galois
GF = galois.GF(17)
primitive_element = GF.primitive_element
print("A primitive element:", primitive_element)
# A primitive element: 3
Finding the subgroup of order in
Suppose we want to determine whether a multiplicative subgroup of order exists in the finite field . Note that the multiplicative group of has size . For , the multiplicative group has elements.
Recall from the Fundamental Theorem of Finite Cyclic Groups that since divides (explicitly, divides 16), then is a generator and is a subgroup of size 4.
Thus, 13 is a generator for the subgroup of size 4 in and
Explicitly, is the subgroup.
Exercise: Compute the multiplicative subgroups of order and .
Summary
- The goal is to find the multiplicative subgroups of size in the field .
- If , then is a cyclic group, and is a generator of .
- If is a finite field of order , then is a cyclic group of order .
- The Fundamental Theorem of Cyclic Groups states that the finite field has a subgroup of size if and only if divides . Moreover, a generator of this subgroup is , where is a generator of the multiplicative group .
Appendix
We will check the three conditions necessary for to be a subgroup of .
Identity: Since , then .
Closure: Suppose . Then we know and for some . Applying the group operation gives
Since , hence .
Inverse: Suppose . Then for some ,
Since , so .
Exercises
What are all the orders of the multiplicative subgroups of and a generator for each subgroup?
What are all the orders of the multiplicative subgroups of and a generator for each subgroup?
What are all the orders of the multiplicative subgroups of and a generator for each subgroup?
Ready to Get Started?
Join Thousands of Users Today
Start your free trial now and experience the difference. No credit card required.