[−][src]Module polyval::field
Implementation of POLYVAL's finite field.
From RFC 8452 Section 3 which defines POLYVAL for use in AES-GCM_SIV:
"POLYVAL, like GHASH (the authenticator in AES-GCM; ...), operates in a binary field of size 2^128. The field is defined by the irreducible polynomial x^128 + x^127 + x^126 + x^121 + 1."
This implementation provides multiplication over GF(2^128) optimized using Shay Gueron's PCLMULQDQ-based techniques.
For more information on how these techniques work, see: https://blog.quarkslab.com/reversing-a-finite-field-multiplication-optimization.html
Structs
Element | POLYVAL field element. |
Constants
FIELD_SIZE | Size of GF(2^128) in bytes (16-bytes). |
Type Definitions
Block | POLYVAL field element bytestrings (16-bytes) |