title: What are the AVX-512 Galois-field-related instructions for?
body: <p>One of the AVX-512 instruction set extensions is <a href="https://en.wikipedia.org/wiki/AVX-512#New_instructions_in_AVX-512_+_GFNI" rel="noreferrer">AVX-512 + GFNI</a>, " Galois Field New Instructions".</p>
  
  <p>Galois theory is about field extensions. What does that have to do with processing vectorized integer or floating-point values? The instructions supposedly perform "Galois field affine transformation", the inverse of that, and "Galois field multiply bytes". </p>
  
  <p>What fields are those? What do these instructions actually do and what is it good for?</p>