I am trying to optimize GCM multiplication. This PDF explains GCM:
The Galois/Counter Mode of Operation (GCM)
The algorithms are in section 4.1
- In algorithm 3 I have to multiply table M [128] with the element P that represents the polynomial α. Formulas (3) and (4) appear on page 9. From what I can understand, this would be:
**if V127 =0 then V ← rightshift(V )
else V ← rightshift(V ) ⊕ R**
The polynomial f would be 0xe1, no?
But in algorithm 3 I do not understand this: M[i] ← M[2i] · P. What would be the value of the element P if it corresponds to the polynomial α?
Hopefully, someone knows some code of the implementation of the tables that I can read. I have not found any code that can help me understand all of this.