|
|
Finite Field ArithmeticArithmetic in a finite field is different from standard arithmetic. By definition, all operations must always yield results that remain within the field. Notation Although elements of a finite field can be expressed in numerical form (i.e., hexadecimal, binary, etc.), it is often found convenient to express them as polynomials, with each term in the polynomials representing the bits in the elements' binary expressions. For example, the following are equivalent representations of the same value: - Hexadecimal: {53}
-
- Binary: {01010011}
-
- Polynomial: x6 + x4 + x + 1
-
The exponents in the polynomial notation serve as "tags", making it possible to keep track of each bit's value throughout arithmetical manipulation, without the need for zero-value placeholders or alignment of digits into columns. If hexadecimal or binary notation is used, braces ( "{" and "}" ) or similar devices are commonly used to indicate that the value is an element of a field. Addition and subtraction In a finite field with characteristic 2, addition and subtraction are identical, and are accomplished using the XOR operator. Thus, - Hexadecimal: {53} + {CA} = {99}
-
- Binary: {01010011} + {11001010} = {10011001}
-
- Polynomial: (x6 + x4 + x + 1) + (x7 + x6 + x3 + x) = x7 + x4 + x3 + 1
-
For those still having trouble coming to grips with this, notice that each of the numbers being added in the example have a x6 in them. x6 + x6 would be 2x6. But, since each coefficient needs to be mod 2, this becomes 0x6, and then gets dropped from the answer. Multiplication Multiplication in a finite field is multiplication modulo the irreducible polynomial used to define the finite field. (I.e., it is multiplication followed by division using the irreducible polynomial as the divisor—the remainder is the product.) The symbol "•" may be used to denote multiplication in a finite field. For example, if the irreducible polynomial used is f(x) = x8 + x4 + x3 + x + 1, then {53} • {CA} = {01} because (x6 + x4 + x + 1)(x7 + x6 + x3 + x) = x13 + x12 + x9 + x7 + x11 + x10 + x7 + x5 + x8 + x7 + x4 + x2 + x7 + x6 + x3 + x = x13 + x12 + x9 + x11 + x10 + x5 + x8 + x4 + x2 + x6 + x3 + x = x13 + x12 + x11 + x10 + x9 + x8 + x6 + x5 + x4 + x3 + x2 + x and x13 + x12 + x11 + x10 + x9 + x8 + x6 + x5 + x4 + x3 + x2 + x modulo x8 + x4 + x3 + x + 1 (= 11111101111110 mod 100011011) = 1, which can be demonstrated through long division (shown using binary notation, since it lends itself well to the task): 111101 100011011)11111101111110 100011011 1110000011110 100011011 110110101110 100011011 10101110110 100011011 0100011010 000000000 100011010 100011011 00000001 (The elements {53} and {CA} happen to be multiplicative inverses of one another since their product is 1.)
|
 |