The theory behind TG is related to irreducible primitive polynomials over GF(2).
A polynomial over Galois field of order 2 (GF(2)) is a
polynomial whose coefficients are either 0 and 1.
Such a polynomial is irreducible primitive if it does not have nontrivial factors
like 1 and has
order of for some
. The order of a polynomial
over GF(2) is
the smallest integer
for which
divides
. For example
is irreducible primitive with order
, while
is not even irreducible.
When the characteristic polynomial
of the above form
is an irreducible primitive and
the
initial seeds are not all zero, the corresponding TG will have a
period of
. To obtain random numbers instead of bits, we can output the
decimal values of every
-consecutive bits.
Since TG only produces bits, it is too slow to be useful. A technique
to speed up is to use a special form called trinomial-based TG.
A trinomial is a polynomial with only three coefficients being nonzero, so
a trinomial-based TG has only two of the coefficients of
the characteristic polynomial being nonzero. This results in a very fast,
hardware-based implementation technique called Feedback Shift Register (FSR) which involves
shift, AND, and XOR operations on a small set of
-bit registers. However, TGs
based on this special form are known to have statistical defects, so in
practice the outputs of two or more trinomial-based TGs
are combined using bitwise XOR operations to provide the final output.
As with LCGs, arbitrarily chosen parameters will yield poor TGs,
and not all combinations of any three good TGs necessarily create a better TG,
therefore, in this project we implemented
a 3-combined TG based on parameters from [11] with period
The main attraction of TGs lies in its independence of word size of target hardware and some of the variants have strong cryptographic safety (see Section 3.5)