Page 269 - Hardware Implementation of Finite-Field Arithmetic
P. 269

m
                                 Operations over  GF (2 )—Normal Bases      249

                     caux(i) := caux(i) xor t1(i);
                   end loop;
                 end loop;
                 c2 <= caux;
               end process;
               P2: process(a,b)
                 variable yij: yij_array;
                 variable r,t2: std_logic_vector(M-1 downto 0);
                 variable s,te,aux2: integer;
               begin
                 for i in 0 to m-1 loop
                   t2(i) := ‘0’;
                 end loop;
                 if (m rem 2) /= 0 then
                   s := h(v);
                   te := m;
                 else
                   s := h(v)/2;
                   te := m/2;
                 end if;
                 for i in 0 to te-1 loop
                   yij(i)(v):=(a(i)xor a((v+i) mod m)) and (b(i)xor
                   b((v+i) mod m));
                 end loop;
                 if (m rem 2) = 0 then
                   for i in 0 to (m/2)-1 loop
                     yij(i+v)(v) := yij(i)(v);
                   end loop;
                 end if;
                 for k in 1 to s loop
                   for i in 0 to te-1 loop
                     aux2 := (i - w(v)(k)) mod m;
                     r(i) := yij(aux2)(v);
                   end loop;
                   if (m rem 2) = 0 then
                     for i in 0 to (m/2)-1 loop
                       r(i+m/2) := r(i);
                     end loop;
                   end if;
                   for i in 0 to m-1 loop
                     t2(i) := t2(i) xor r(i);
                   end loop;
                 end loop;
                 t <= t2;
               end process;
               c <= c2 xor t;



          8.4 Exponentiation
                                                                    m
                                              m
               For an arbitrary a in the finite field GF(2 ), and an integer e (1 ≤ e ≤ 2  – 1),
                                     m
               let b = a , where b is in GF(2 ). In general, an arbitrary integer power of
                     e
               an element a ∈ GF(2 ) can be computed using the binary method [Knu81],
                               m
   264   265   266   267   268   269   270   271   272   273   274