Group Theory¶
links: AC2 TOC - Modular Arithmetic and Group Theory - Index
Group definition¶
A group \(G\) is defined as follows: \(G\) = (\(G\), \(\circ\), \(inv\), \(e\)) where
- binary operation \(\circ : G \times G \rightarrow G\)
- unary operation \(inv : G \rightarrow G\)
- identity element \(e \in G\)
All satisfying:
- Associativity: \(x \circ (y\circ z) = (x\circ y) \circ z\) where \(\forall x,y,z \in G\)
- Identity: \(e \circ x = x \circ e = x\) where \(\forall x \in G\)
- Inverse: \(x\circ inv(x) = inv(x) \circ x = e\) where \(\forall x \in G\)
A group \(G\) is called commutative (or abelian) if \(x\circ y = y \circ x\) where \(\forall x,y \in G\)
The order \(ord(G)\) of the group \(G\) is the number of elements of \(G\):
Group Examples¶
- Integers (\(\mathbb{Z}\), \(+\), \(-\), \(0\))
- Rational numbers: (\(\mathbb{Q}\), \(+\), \(-\), 0)
- Non-zero rational numbers: (\(\mathbb{Q} \backslash \{ 0 \}\), \(\times\), \(^{-1}\), \(1\))
Relevant Groups in Cryptography¶
- Additive Group of Integers modulo \(n\): (\(\mathbb{Z}_n\) , \(+_n\) , \(-_n\) , \(0\))
- \(\mathbb{Z}_n\) is used to refer to the corresponding additive group (\(\mathbb{Z}_n\) , \(+_n\) , \(-_n\) , \(0\))
- inverse element: \(-_n a = n - a\) for all \(a \in \mathbb{Z}_n \backslash \{0\}\) and \(-_n 0 = 0\)
- \(\mathbb{Z}_1\) = {\(0\)}
- \(\mathbb{Z}_{11}\) = {\(0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10\)}
- Multiplicative Group of Integers modulo \(n\): (\(\mathbb{Z}^*_n\) , \(\times _n\) , \(^{-1}\) , \(1\) )
- for \(n \gt 1\), let \(\mathbb{Z}_n^* = \{a \in \mathbb{Z}_n \backslash \{0\} : gcd(a,n) = 1\}\)
- \(\mathbb{Z}^*_n\) is used to refer to the corresponding multiplicative group (\(\mathbb{Z}^*_n\) , \(\times _n\) , \(^{-1}\) , \(1\) ) with order \(|\mathbb{Z}_n^*| = \phi (n)\)
- Many cryptographic schemes are based on such groups
- \(\mathbb{Z}^*_p\) where p is a prime is used in e.g Diffie-Hellman
- \(\mathbb{Z}^*_n\) where \(n=pq\) is used in e.g RSA
- \(\mathbb{Z}^*_2\) = {\(1\)}
- \(\mathbb{Z}^*_{11}\) = {\(1, 2, 3, 4, 5, 6, 7, 8, 9, 10\)} \(\rightarrow\) candidate for DH (\(p=11\))
- \(\mathbb{Z}^*_{15}\) = {\(1, 2, 4, 7, 8, 11, 13, 14\)} \(\rightarrow\) candidate for RSA (\(15 = 3 * 5\))
- Elliptic curve: (\(E_{a,b}(\mathbb{Z}_p)\), \(+\), \(-\), \(\mathcal{O}\))
Order of a Group element¶
- \(ord(x)\) is the smallest \(k>0\) such that \(x^k=1\)
- \(ord(x)\) divides the group order \(ord(\mathcal{G}\)) = |\(G\)| for every \(x \in G\)
- Example for \(\mathbb{Z}^*_{15}\):
- e.g. \(ord(2) \rightarrow 2^4 \mod 15 = 1\)
Order of a Group¶
If a group \(G\) is finite then the order of the group equals the number of its elements:
Generators¶
Note: arithmetic "primitive root modulo n" is equivalent to a generator in group theory!
- An element is called generator of \(\mathcal{G}\), if \(ord(g)\) = \(ord(\mathcal{G}\))
- \(\langle g \rangle\) = {\(g,g^2,...,g^{|G|}\)} = \(G\)
- \(G\) is a cyclic group, if at least one \(g \in G\) is a generator
- Example: \(2\) is a generator but \(3\) is not a generator of \(\mathbb{Z}^*_{11}\)
Subgroups¶
- \(H\subseteq G\) forms a subgroup of (\(G\), \(\circ\), \(inv\), \(e\)), if (\(H\), \(\circ\), \(inv\), \(e\)) satisfies all properties of a group
- Every group (\(G\), \(\circ\), \(inv\), \(e\)) has two trivial subgroups {\(e\)} and \(G\)
- Lagrange's Theorem: If \(H\subseteq G\) forms a subgroup, then \(|H|\) divides \(|G|\)
- Examples:
- Subgroups of (\(\mathbb{Z}_{12}\) , \(+_n\) , \(-_n\) , 0)
- {\(0\)}, {\(0, 6\)}, {\(0, 4, 8\)}, {\(0, 2, 4, 6, 8, 10\)}, \(\mathbb{Z}_{12}\)
- Subgroups of (\(\mathbb{Z}^*_{15}\) , \(\times _n\) , \(^{-1}\) , 1 )
- {\(1\)}, {\(1, 4\)}, {\(1, 14\)}, {\(1, 4, 7, 13\)}, \(\mathbb{Z}^*_{15}\)
- Subgroups of (\(\mathbb{Z}_{12}\) , \(+_n\) , \(-_n\) , 0)
Generators of Subgroups¶
- Every Set \(\langle h \rangle\) = {\(h,h^2,...,h^{|G|}\}\in G\) generated by some \(h \in G\) forms a subgroup of (\(G\), \(\times\), \(^{-1}\), \(1\))
- Examples: \(\mathbb{Z}_{11}^*\) = {\(1, 2, ... , 10\)}
- \(\langle 1 \rangle = \{ 1 \}\)
- \(\langle 10 \rangle = \{ 1, 10 \}\)
- \(\langle 3 \rangle = \langle 4 \rangle = \langle 5 \rangle = \langle 9 \rangle = \{ 1,3,4,5,9 \}\)
- Every \(g \in \mathbb{Z}_p^* \backslash \{ 1, p-1 \}\) is either a generator for \(\mathbb{G}_q\) (if \(g^q = 1\)) or for \(\mathbb{Z}_p^*\) (if \(g^q \neq 1\))
Group of Integers Modulo a Safe Prime¶
- For a safe prime \(p = 2q+1\) we get \(|\mathbb{Z}^*_{p}| = 2q\)
- Therefore, in regard of Lagrange's theorem, we know that \(\mathbb{Z}^*_{p}\) has exactly \(4\) subgroups of order \(1\), \(2\), \(q\) and \(2q\)
- Cryptographic schemes e.g ElGamal are based on such a subgroup \(\mathbb{G}_q \subset \mathbb{Z}^*_{p}\) of prime order \(q\)
- Example: \(p=11\), \(q=5\)
- \(\mathbb{G}_{1}\) = {\(1\)}
- \(\mathbb{G}_{2}\) = {\(1, 10\)}
- \(\mathbb{G}_{5}\) = {\(1, 3, 4, 5, 9\)}
- \(\mathbb{G}_{10}\) = {\(1, 2, 3, 4, 5, 6, 7, 8, 9, 10\)} = \(\mathbb{Z}^*_{11}\)
Homomorphisms¶
Two groups \((G, \circ)\) and \((H, \bullet)\) are homomorphic if there exists a function \(f: G \rightarrow H\) for which all \(a, b \in G\):
where the left side indicates that \(a,b\) was calculated within the group \(G\) using \(G\)'s operation \(\circ\) and the right side was calculated on the respective images of \(a,b\) using the operation \(\bullet\) of the group \(H\). The idea is that if you can calculate a value in \(G\) you can get the correct image in \(H\) using the function \(f\). This allows to compute values in one group without knowing the original values in the other group, but still receive the correct result (this technique is used in homomorphic encryption schemes or multiparty computation like ElGamal or Secure Multiparty Computation)
Fun fact: if the relation \(f\) is bijective, the groups are even isomorphic. Isomorphisms are groups which are structurally identical. This means you can do calculation in one group and transform the result into the other groups respective value (using \(f\)), then calculate some stuff in this group and map this result back into the original group (using the inverse \(f^{-1} \rightarrow\) since \(f\) is bijective, \(f^{-1}\) will always exist) and you will still have the correct result (so cool).
links: AC2 TOC - Modular Arithmetic and Group Theory - Index