Top Qs
Timeline
Chat
Perspective

GFNI instruction set

Intel AVX Galois-Field instructions From Wikipedia, the free encyclopedia

Remove ads

Galois Field New Instructions is a subset extension from Intel to accelerate cryptographic applications. However its instructions have additional unexpected beneficial purposes in bit manipulation, and the instructions can be present in other ISAs

Description

The GFNI extension comprises three instructions, VGF2P8AFFINEINVQB,[1] VGF2P8AFFINEQB[2] and VGF2P8MULB.[3] They are useful for cryptography,[4] as they can be used to implement Rijndael-style S-boxes such as those used in AES, Camellia, and SM4.[5] These instructions are also used for bit manipulation in networking and signal processing: bits can be arbitrarily reordered, copied, inverted, cleared, or set with them.[4]

GFNI is a standalone instruction set extension and can be enabled separately from AVX or AVX-512. Depending on whether AVX and AVX-512F support is indicated by the CPU, GFNI support enables legacy (SSE), VEX or EVEX-coded instructions operating on 128, 256 or 512-bit vectors.

More information Instruction, Description ...
Remove ads

Additional uses

GNFI was originally intended to help accelerate for example Rijndael (AES) GF(2^8) arithmetic: Rijndael has an explicit GF(2^8) reducing polynomial of 0x11B. However surprising number of additional uses have emerged:

  • An Intel guide[6] lists parallel 5-bit byte-wise sign-extension, general bit-clear insert set and invert,
  • Parallel Count Leading/Trailing Zero Bits (Byte-wise), Arbitrary GF(2^N) multiplication, Fixed 2-bit Packed Arithmetic, Byte-wise variable shift, which relies on pre-truncating the inputs to ensure the polynomial reduction is not triggered.[7]
  • Bit-reversal[8]
  • SM4, Reed Solomon, RAID6 [9]
  • Vector bit-reverse https://reviews.llvm.org/D91515?id=305411
  • bmatflip and bmatxor is found in the Cray XMT
  • Power ISA vgbbd Chapter 6. Vector Facility, Book 1 p. 445
Remove ads

See also

  • bit manipulation – Algorithmically modifying data below the word level
  • AVX512 – Instruction set extension by Intel
  • AVX2 – Instructions for the x86 microprocessors
  • Finite_field_arithmetic – Arithmetic in a field with a finite number of elements
  • GF(2) – Finite field of two elements

References

Loading related searches...

Wikiwand - on

Seamless Wikipedia browsing. On steroids.

Remove ads