A cyclic group is a group generated by a single element g, such that every element can be written as a power of g. A primitive root of a prime number p is a number that, when raised to powers from 0 to p-1, yields distinct results modulo p. The discrete logarithm problem is to find the exponent that raises a generator to a given element, which is easy in one direction but computationally infeasible in the other. ElGamal cryptography relies on the discrete logarithm problem for security by encrypting messages as powers of a public key.