Galois field implementations are central to the design of many reliable and secure systems, with many systems implementing them in software. The two most common Galois field operations are addition and multiplication; typically, multiplication is far more expensive than addition. In software, multiplication is generally done with a look-up to a pre-computed table, limiting the size of the field and resulting in uneven performance across architectures and applications. In this paper, we first analyze existing table-based implementation and optimization techniques for multiplication in fields of the form GF(2l). Next, we propose the use of techniques in composite fields: extensions of GF(2l) in which multiplications are performed in GF(2l) and efficiently combined. The composite field technique trades computation for storage space, which prevents eviction of look-up tables from the CPU cache and allows for arbitrarily large fields. Most Galois field optimizations are specific to a parti...
Kevin M. Greenan, Ethan L. Miller, Thomas J. E. Sc