Better Circuits for Binary Polynomial Multiplication

We develop a new and simple way to describe Karatsuba-like algorithms for multiplication of polynomials over <inline-formula><tex-math notation="LaTeX">$\mathbb {F}_2$</tex-math></inline-formula> . We restrict the search of small circuits to a class of circuits we call <i>symmetric bilinear. These are circuits in which AND gates only compute functions of the form <inline-formula><tex-math notation="LaTeX">$\sum _{i \in S} a_i \cdot \sum _{i \in S} b_i \quad \quad (S \subseteq \lbrace 0, \ldots, n-1\rbrace).$</tex-math><alternatives><mml:math xmlns:mml="http://www.w3.org/1998/Math/MathML"><mml:mrow><mml:msub><mml:mo>∑</mml:mo><mml:mrow><mml:mi>i</mml:mi><mml:mo>∈</mml:mo><mml:mi>S</mml:mi></mml:mrow></mml:msub><mml:msub><mml:mi>a</mml:mi><mml:mi>i</mml:mi></mml:msub><mml:mo>·</mml:mo><mml:msub><mml:mo>∑</mml:mo><mml:mrow><mml:mi>i</mml:mi><mml:mo>∈</mml:mo><mml:mi>S</mml:mi></mml:mrow></mml:msub><mml:msub><mml:mi>b</mml:mi><mml:mi>i</mml:mi></mml:msub><mml:mspace width="1.em"/><mml:mspace width="1.em"/><mml:mrow><mml:mo>(</mml:mo><mml:mi>S</mml:mi><mml:mo>⊆</mml:mo><mml:mrow><mml:mo>{</mml:mo><mml:mn>0</mml:mn><mml:mo>,</mml:mo><mml:mo>...</mml:mo><mml:mo>,</mml:mo><mml:mi>n</mml:mi><mml:mo>-</mml:mo><mml:mn>1</mml:mn><mml:mo>}</mml:mo></mml:mrow><mml:mo>)</mml:mo></mml:mrow><mml:mo>.</mml:mo></mml:mrow></mml:math><inline-graphic xlink:href="peralta-ieq2-2874662.gif" xmlns:xlink="http://www.w3.org/1999/xlink"/></alternatives></inline-formula> These techniques yield improved recurrences for <inline-formula><tex-math notation="LaTeX">$M(kn)$</tex-math><alternatives><mml:math xmlns:mml="http://www.w3.org/1998/Math/MathML"><mml:mrow><mml:mi>M</mml:mi><mml:mo>(</mml:mo><mml:mi>k</mml:mi><mml:mi>n</mml:mi><mml:mo>)</mml:mo></mml:mrow></mml:math><inline-graphic xlink:href="peralta-ieq3-2874662.gif" xmlns:xlink="http://www.w3.org/1999/xlink"/></alternatives></inline-formula>, the number of gates used in a circuit that multiplies two <inline-formula><tex-math notation="LaTeX">$kn$</tex-math><alternatives><mml:math xmlns:mml="http://www.w3.org/1998/Math/MathML"><mml:mrow><mml:mi>k</mml:mi><mml:mi>n</mml:mi></mml:mrow></mml:math><inline-graphic xlink:href="peralta-ieq4-2874662.gif" xmlns:xlink="http://www.w3.org/1999/xlink"/></alternatives></inline-formula>-term polynomials, for <inline-formula><tex-math notation="LaTeX">$k = 4,5,6,$</tex-math><alternatives><mml:math xmlns:mml="http://www.w3.org/1998/Math/MathML"><mml:mrow><mml:mi>k</mml:mi><mml:mo>=</mml:mo><mml:mn>4</mml:mn><mml:mo>,</mml:mo><mml:mn>5</mml:mn><mml:mo>,</mml:mo><mml:mn>6</mml:mn><mml:mo>,</mml:mo></mml:mrow></mml:math><inline-graphic xlink:href="peralta-ieq5-2874662.gif" xmlns:xlink="http://www.w3.org/1999/xlink"/></alternatives></inline-formula> and 7. We built and verified the circuits for <inline-formula><tex-math notation="LaTeX">$n$</tex-math><alternatives><mml:math xmlns:mml="http://www.w3.org/1998/Math/MathML"><mml:mi>n</mml:mi></mml:math><inline-graphic xlink:href="peralta-ieq6-2874662.gif" xmlns:xlink="http://www.w3.org/1999/xlink"/></alternatives></inline-formula>-term binary polynomial multiplication for values of <inline-formula><tex-math notation="LaTeX">$n$</tex-math><alternatives><mml:math xmlns:mml="http://www.w3.org/1998/Math/MathML"><mml:mi>n</mml:mi></mml:math><inline-graphic xlink:href="peralta-ieq7-2874662.gif" xmlns:xlink="http://www.w3.org/1999/xlink"/></alternatives></inline-formula> of practical interest. Circuits for <inline-formula><tex-math notation="LaTeX">$n$</tex-math><alternatives><mml:math xmlns:mml="http://www.w3.org/1998/Math/MathML"><mml:mi>n</mml:mi></mml:math><inline-graphic xlink:href="peralta-ieq8-2874662.gif" xmlns:xlink="http://www.w3.org/1999/xlink"/></alternatives></inline-formula> up to 100 are posted at <uri>http://cs-www.cs.yale.edu/homes/peralta/CircuitStuff/BinPolMult.tar.gz</uri>.</i>