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

m
                                 Operations over  GF (2 )—Normal Bases      241

               where h_function_GF2_4 implements the h function given in Eq. (8.12)
               and NB_sq implements normal basis squaring. It must also be noted
               that Algorithm 8.2 can be implemented with the sequential architec-
               ture given in Fig. 8.1. An executable Ada file NB_seqmult_GF2_4.adb,
               including Algorithm 8.2, is available at www.arithmetic-circuits.org.
                                                          m
                  Alternatively, a parallel architecture for a GF(2 ) Massey-Omura
               multiplier could be easily implemented [WTSDOR85]. In this scheme,
               m identical logic function h that calculate simultaneously all compo-
               nents of the product is needed. The inputs of the m logic function h
               are connected directly to the components of A and B, as given in
               Eq. (8.8). The only difference in the connections to the components of
               A and B to a function h is that they are cyclically shifted versions of
               one another, as in Eq. (8.8).
                                                                   m
                  An efficient multiplication scheme with normal basis in GF(2 ) was
               introduced in [RH00] and [RH03a]. In this approach, let A and B be any
                                  m
               two elements of  GF(2 ) and be represented by the normal basis
                                                                 j
               N = {β 2 0 ,β 2 1 , ... , β 2 m − 1 } as  A =∑ m − 1 a β  2 i  and  B =∑ m − 1  b β , respec-
                                                                2
                                           i=0  i          j=0  j
               tively. In vector notation, let A = (a , a , . . . , a m − 1 ), B = (b , b , . . . , b m−1 ), and
                                                            1
                                            1
                                                          0
                                          0
                   β β , ...
               β = (,  2  β ,  2 m  − 1 ). Then the product C = AB = (c , c , . . . , c  ) in vec-
                                                        0  1   m − 1
               tor notation can be computed as
                                             T
                              C =  AB = ( Aβ T )(β B )  =  AM B T   (8.13)
               where T denotes vector transposition and where the multiplication
               matrix is defined by
                                    ⎛  β  2 0  +2 0  β 2  0  +2  1     β  2 0  +2 m  − 1 1  ⎞
                                    ⎜  β 2 + 2  0  β 2 + 2 1     β 2 + 2  m  − 1 ⎟
                                       1
                                                1
                                                           1
                   M = ββ  = β(  2 i +2  j m  − 1  = ⎜          ⎟   (8.14)
                     T
                              )
                               , ij =0
                                    ⎜                           ⎟
                                    ⎜ β ⎝  2 m −  1 + 2 0  β 2 m −  1 + 2 1    β 2 m −  1 + 2 m −  1 ⎟ ⎠

                                                m
                  All entries of  M belong to  GF(2 ) and if they are written
               with respect to the normal basis {β 2 0 ,β 2 1 ,... ,β 2 m −  1 } , then we see that
               [RH00]
                            M =  M β + M  β + ...  + M  β  2 m  − 1  (8.15)
                                         2
                                  0    1         m − 1
               where  M ’s are  m  ×  m matrices with entries in  GF(2). Substituting
                       i
               Eq. (8.15) into Eq. (8.13), the coordinates of the product C can be found
               as follows:

                          c =  AM  B =  A M  B  i () T  0 ≤ i ≤  m − 1  (8.16)
                                       i ()
                                  T
                          i     i         0
   256   257   258   259   260   261   262   263   264   265   266