GFNI instruction set
![]() |
![]() | This article has multiple issues. Please help improve it or discuss these issues on the talk page. (Learn how and when to remove these messages)
|
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
[edit]The GFNI extension comprises three instructions, VGF2P8AFFINEINVQB
, VGF2P8AFFINEQB
and VGF2P8MULB
. They are useful for cryptography,[1] as they can be used to implement Rijndael-style S-boxes such as those used in AES, Camellia, and SM4. 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.[1]
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.
Instruction | Description |
---|---|
VGF2P8AFFINEINVQB
|
Galois field affine transformation inverse |
VGF2P8AFFINEQB
|
Galois field affine transformation |
VGF2P8MULB
|
Galois field multiply bytes |
Additional uses
[edit]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 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.
- Bit-reversal
- SM4, Reed Solomon, RAID6
- Vector bit-reverse
- bmatflip and bmatxor is found in the Cray XMT
- Power ISA vgbbd Chapter 6. Vector Facility, Book 1 p. 445
See also
[edit]- 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
[edit]- Intel AVX 10.1 (PDF) (3.0 ed.). Intel. July 2024. 355989-003US. Retrieved August 8, 2025.
- ^ a b "Galois Field New Instructions (GFNI) Technology Guide". networkbuilders.intel.com.