This article needs additional citations for verification. (August 2012)
GF(2) (also denoted , Z/2Z or ) is the finite field of two elements (GF is the initialism of Galois field, another name for finite fields). Notations Z2 and may be encountered although they can be confused with the notation of 2-adic integers.
The elements of GF(2) may be identified with the two possible values of a bit and to the boolean values true and false. It follows that GF(2) is fundamental and ubiquitous in computer science and its logical foundations.
Its addition is defined as the usual addition of integers but modulo 2 and corresponds to the table below:
If the elements of GF(2) are seen as boolean values, then the addition is the same as that of the logical XOR operation. Since each element equals its opposite, subtraction is thus the same operation as addition.
The multiplication of GF(2) is again the usual multiplication modulo 2 (see the table below), and on boolean variables corresponds to the logical AND operation.
- addition has an identity element (0) and an inverse for every element;
- multiplication has an identity element (1) and an inverse for every element but 0;
- addition and multiplication are commutative and associative;
- multiplication is distributive over addition.
Properties that are not familiar from the real numbers include:
- every element x of GF(2) satisfies x + x = 0 and therefore −x = x; this means that the characteristic of GF(2) is 2;
- every element x of GF(2) satisfies x2 = x (i.e. is idempotent with respect to multiplication); this is an instance of Fermat's little theorem. GF(2) is the only field with this property (Proof: if x2 = x, then either x = 0 or x ≠ 0. In the latter case, x must have a multiplicative inverse, in which case dividing both sides by x gives x = 1. All larger fields contain elements other than 0 and 1, and those elements cannot satisfy this property).
Because of the algebraic properties above, many familiar and powerful tools of mathematics work in GF(2) just as well as other fields. For example, matrix operations, including matrix inversion, can be applied to matrices with elements in GF(2) (see matrix ring).
Any group V with the property v + v = 0 for every v in V (i.e. every element is an involution) is necessarily abelian and can be turned into a vector space over GF(2) in a natural fashion, by defining 0v = 0 and 1v = v. This vector space will have a basis, implying that the number of elements of V must be a power of 2 (or infinite).
In modern computers, data are represented with bit strings of a fixed length, called machine words. These are endowed with the structure of a vector space over GF(2). The addition of this vector space is the bitwise operation called XOR (exclusive or). The bitwise AND is another operation on this vector space, which makes it a Boolean algebra, a structure that underlies all computer science. These spaces can also be augmented with a multiplication operation that makes them into a field GF(2n), but the multiplication operation cannot be a bitwise operation. When n is itself a power of two, the multiplication operation can be nim-multiplication; alternatively, for any n, one can use multiplication of polynomials over GF(2) modulo a irreducible polynomial (as for instance for the field GF(28) in the description of the Advanced Encryption Standard cipher).
Vector spaces and polynomial rings over GF(2) are widely used in coding theory, and in particular in error correcting codes and modern cryptography. For example, many common error correcting codes (such as BCH codes) are linear codes over GF(2) (codes defined from vector spaces over GF(2)), or polynomial codes (codes defined as quotients of polynomial rings over GF(2)).