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

m
                                                 Operations over  GF ( p )   141

                  The following lemma is demonstrated by induction.
               Lemma 6.1
                                u (x)h(x) ≡ r (x)g(x) mod f(x)
                                 i        i

               Proof
                  For i = 0 and 1: u (x)h(x) = 0 and r (x)g(x) = f(x)g(x) ≡ 0 mod f(x),
                                 0             0
                  u (x)h(x) = g(x)h(x) and r (x)g(x) = h(x)g(x)
                   1                  1
                  For i ≥ 2: u(x)h(x) = (u  (x) − u  (x)q  (x))h(x) = u  (x)h(x) − u  (x)
                           i        i − 2  i − 1  i − 1   i − 2     i − 1
                  q (x)h(x) ≡ r (x)g(x) − r (x)q (x)g(x) = (r (x) − r (x)q (x))g(x) =
                   i − 1    i − 2     i − 1  i − 1   i − 2  i - 1  i − 1
                  r (x)g(x)
                   i
                  Thus, according to Eq. (6.7) and Lemma 6.1, u (x)h(x) ≡ r (x)g(x)
                                                          n        n
               mod  f(x), where  r (x) is a nonzero element of  Z , so that (r (x)) −1
                               n                          p         n
               u (x)h (x) ≡ g(x) mod f(x) and
                n
                             g(x)h (x) = (r (x)) u (x) mod f(x)      (6.9)
                                 −1
                                           −1
                                        n    n
               Algorithm 6.1—Euclidean algorithm
               A := F; B := H; C := zero; D := G;
               while Degree(B) > 0 loop
                  Q := Quotient(A, B); R := Remainder(A, B);
                  Next_D := Subtract(C, Product_mod_f(D, Q, f));
                  A := B; B := R; C := D; D := Next_D;
               end loop;
               Z := Product(D, Invert(B(0)));
               An executable Ada file Euclidean_algorithm_polynomials.adb, includ-
               ing Algorithm 6.1, is available at www.arithmetic-circuits.org.
                  As regard the degree of the polynomials  u (x) first proof the
                                                         i
               following lemma.
               Lemma 6.2
                      degree(u (x)) = degree(g(x)) + m − degree(r  (x)), ∀i > 0
                             i                         i − 1
               Proof
                  For i = 1: u (x) = g(x), r (x) = f(x), degree(r (x)) = m, degree(g(x)) + m −
                           1         0             0
                  degree(r (x)) = degree(g(x)).
                        0
                  For i = 2: u (x) = u (x) − u (x)q (x) = −g(x)q (x), so that degree(u (x)) =
                           2     0    1   1         1               2
                  degree(g(x)) + degree(q (x)). Furthermore r (x) = r (x)q (x) + r (x) so
                                    1               0     1   1    2
                  that degree(q (x)) = degree(r (x)) − degree(r (x)) = m − degree(r (x)).
                             1           0           1               1
                  Finally degree(u (x)) = degree(g(x)) + m − degree(r (x)).
                               2                         1
                  For i≥  3: u(x) = u (x)  −  u (x)q (x). First observe that degree(r (x)) >
                          i    i − 2  i − 1  i − 1                i − 3
                  degree(r  (x)); so, by induction, degree(u  (x)) < degree(u  (x))
                        i − 2                        i − 2         i − 1
                  and degree(u (x)) = degree(u  (x)) + degree(q  (x)) = degree(g(x)) +
                             i           i − 1        i − 1
                  m−  degree(r  (x))  +  degree(q  (x)). Furthermore r  (x) = r  (x)q  (x) +
                           i − 2       i − 1           i − 2  i − 1  i − 1
                  r (x), so that degree(q  (x)) = degree(r  (x)) − degree(r  (x)).
                   i                 i − 1          i − 2          i − 1
   153   154   155   156   157   158   159   160   161   162   163