Optimizing Galois Field Arithmetic for Diverse Processor Architectures and Applications

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 anaylze existing table-based implementation and optimization techniques for multiplication in fields of the form GF(21). Next, we propose the use of techniques in composite fields: extensions of GF(21) in which multiplications are performed in GF(21) 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 particular implementation; our technique is general and may be applied in any scenario requiring Galois fields. A detailed performance study across five architectures shows that the relative performance of each approach varies with architecture, and that CPU, memory limitations and fields size must be considered when selecting an appropriate Galois field implementation. We also find that the use of our composite field implementation is often faster and less memory intensive than traditional algorithms for GF(21).

[1]  F. MacWilliams,et al.  The Theory of Error-Correcting Codes , 1977 .

[2]  Adi Shamir,et al.  How to share a secret , 1979, CACM.

[3]  Harald Niederreiter,et al.  Introduction to finite fields and their applications: List of Symbols , 1986 .

[4]  Ronald L. Rivest,et al.  Introduction to Algorithms , 1990 .

[5]  Jehoshua Bruck,et al.  EVENODD: An Efficient Scheme for Tolerating Double Disk Failures in RAID Architectures , 1995, IEEE Trans. Computers.

[6]  Marek Karpinski,et al.  An XOR-based erasure-resilient coding scheme , 1995 .

[7]  Christof Paar,et al.  A New Architecture for a Parallel Finite Field Multiplier with Low Complexity Based on Composite Fields , 1996, IEEE Trans. Computers.

[8]  Servaas Vandenberghe,et al.  A Fast Software Implementation for Arithmetic Operations in GF(2n) , 1996, ASIACRYPT.

[9]  Shuhong Gao,et al.  Tests and constructions of irreducible polynomials over finite fields , 1997 .

[10]  James S. Plank,et al.  A tutorial on Reed–Solomon coding for fault‐tolerance in RAID‐like systems , 1997, Softw. Pract. Exp..

[11]  James S. Plank A tutorial on Reed-Solomon coding for fault-tolerance in RAID-like systems , 1997 .

[12]  Christof Paar,et al.  Optimal Extension Fields for Fast Arithmetic in Public-Key Algorithms , 1998, CRYPTO.

[13]  Christof Paar,et al.  Efficient Multiplier Architectures for Galois Fields GF(2 4n) , 1998, IEEE Trans. Computers.

[14]  Erkay Savas,et al.  Efficient Methods for Composite Field Arithmetic , 1999 .

[15]  Jehoshua Bruck,et al.  X-Code: MDS Array Codes with Optimal Encoding , 1999, IEEE Trans. Inf. Theory.

[16]  Rudolf Ahlswede,et al.  Network information flow , 2000, IEEE Trans. Inf. Theory.

[17]  尚弘 島影 National Institute of Standards and Technologyにおける超伝導研究及び生活 , 2001 .

[18]  Ronald L. Rivest,et al.  Introduction to Algorithms, Second Edition , 2001 .

[19]  Rob Kolstad Conference on File and Storage Technologies (FAST '02) , 2002, login Usenix Mag..

[20]  Peter F. Corbett,et al.  Awarded Best Paper! -- Row-Diagonal Parity for Double Disk Failure Correction , 2004 .

[21]  Ethan L. Miller,et al.  Store, Forget, and Check: Using Algebraic Signatures to Check Remotely Administered Storage , 2006, 26th IEEE International Conference on Distributed Computing Systems (ICDCS'06).

[22]  Lihao Xu,et al.  Optimizing Cauchy Reed-Solomon Codes for Fault-Tolerant Network Storage Applications , 2006, Fifth IEEE International Symposium on Network Computing and Applications (NCA'06).

[23]  Darrell D. E. Long,et al.  Disaster recovery codes: increasing reliability with large-stripe erasure correcting codes , 2007, StorageSS '07.

[24]  Ethan L. Miller,et al.  PRIMS: making NVRAM suitable for extremely reliable storage , 2007 .

[25]  E. L. Miller,et al.  Analysis and Construction of Galois Fields for Efficient Storage Reliability , 2007 .