<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="/resources/xsl/jats-html.xsl"?>
<article article-type="research-article" dtd-version="1.1" xml:lang="ko" xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<front>
	<journal-meta>
		<journal-id journal-id-type="publisher-id">jkits</journal-id>
		<journal-title-group>
		<journal-title>한국지식정보기술학회 논문지</journal-title>
		<journal-title xml:lang="en">Journal of Knowledge Information Technology and Systems</journal-title>
		</journal-title-group>
		<issn pub-type="ppub">1975-7700</issn>
		<publisher>
		<publisher-name>한국지식정보기술학회</publisher-name>
		<publisher-name xml:lang="en">Korea Knowledge Information Technology Society</publisher-name>
		</publisher>
	</journal-meta>
	<article-meta>
		<article-id pub-id-type="publisher-id">jkits_2019_14_02_203</article-id>
		<article-id pub-id-type="doi">10.34163/jkits.2019.14.2.010</article-id>
		<article-categories>
			<subj-group>
				<subject>Research Article</subject>
			</subj-group>
		</article-categories>
		<title-group>
			<article-title>유한체 <italic>GF</italic>(2<sup>m</sup>)의 정규기저를 이용한 새로운 비트직렬/디지트병렬 곱셈기</article-title>
			<trans-title-group xml:lang="en">
				<trans-title>A New Bit-Serial/Digit-Parallel Multiplier in <italic>GF</italic>(2<sup>m</sup>) Using Normal Basisl</trans-title>
			</trans-title-group>
		</title-group>
		<contrib-group>
			<contrib contrib-type="author" xlink:type="simple">
				<name-alternatives>
					<name name-style="eastern">
						<surname>조</surname><given-names>영석</given-names>
					</name>
					<name name-style="western" xml:lang="en">
						<surname>Cho</surname><given-names>Yong-Suk</given-names>
					</name>
					</name-alternatives>
				<xref ref-type="aff" rid="A1"><sup>1</sup></xref>
			</contrib>
					<contrib contrib-type="author" xlink:type="simple">
				<name-alternatives>
					<name name-style="eastern">
						<surname>신</surname><given-names>영달</given-names>
					</name>
					<name name-style="western" xml:lang="en">
						<surname>Shin</surname><given-names>Yong-Dal</given-names>
					</name>
					</name-alternatives>
				<xref ref-type="aff" rid="A1"><sup>1</sup></xref>
			<xref ref-type="fn" rid="fn001"><sup>*</sup></xref>
			</contrib>
		</contrib-group>
		<aff-alternatives id="A1">
			<aff><italic>유원대학교 정보통신보안학과 교수</italic></aff>
			<aff xml:lang="en"><sup>1</sup><italic>Department of IT &#x0026; Securities, U1 University</italic></aff>
		</aff-alternatives>
				<author-notes>
			<fn id="fn001"><label>*</label><p>Corresponding author is with the Department of IT &#x0026;
Securities, U1 University, 52-70 Yeonamsan-ro Eumbongmyeon Asan-si Chungcheong nam-do KOREA.</p><p><italic>E-mail address</italic>: <email>ydshin@u1.ac.kr</email></p></fn>
		</author-notes>
		<pub-date pub-type="ppub">
			<month>4</month>
			<year>2019</year>
		</pub-date>
		<volume>14</volume>
		<issue>2</issue>
		<fpage>203</fpage>
		<lpage>210</lpage>
		<history>
			<date date-type="received">
				<day>18</day>
				<month>3</month>
				<year>2019</year>
			</date>
			<date date-type="rev-recd">
				<day>9</day>
				<month>4</month>
				<year>2019</year>
			</date>
			<date date-type="accepted">
				<day>12</day>
				<month>4</month>
				<year>2019</year>
			</date>
		</history>
		<permissions>
			<copyright-statement>&#x00A9; 2019 KKITS All rights reserved</copyright-statement>
			<copyright-year>2019</copyright-year>
		</permissions>
		<abstract>
			<title>요약</title>
			<p>유한체 <italic>GF</italic>(2<sup>m</sup>) 상의 연산은 공개키 암호시스템과 오류정정부호 등에서 널리 사용되고 있다. 유한체 <italic>GF</italic>(2<sup>m</sup>) 상의 연산중에서 지수승과 나눗셈과 같은 더 복잡한 연산은 곱셈의 반복으로 수행될 수 있기 때문에, 유한체 상의 곱셈의 효율적인 구현은 매우 중요한 사항이다. 유한체 상의 곱셈의 효율성은 유한체의 원소를 표현하는 기저의 선택에 좌우된다. 유한체 곱셈기를 구현하는데 널리 사용되는 기저로는 다항식기저, 정규기저, 쌍대기저 등이 있다. 정규기저를 이용한 유한체 곱셈기의 하드웨어 구현은, 제곱 연산이 한 비트 순회치환만으로 가능하여, 비용이 들지 않기 때문에 매우 유리하다. 본 논문에서는 <italic>GF</italic>(2<sup>m</sup>)의 정규기저를 이용하여 새로운 비트직렬/디지트병렬 곱셈기를 설계한다. 이러한 정규기저의 특성을 이용하는 것이 제안된 곱셈기의 주요 아이디어이다. 제안된 곱셈기는 곱셈의 한 원소를 <italic>w</italic> 비트씩 묶은 다음, 각각의 부분을 동시에 비트직렬 곱셈기로 구현한다. 그러므로 제안된 곱셈기는 <italic>GF</italic>(2<sup>m</sup>)에서 <italic>w</italic> (1≤<italic>w</italic>≤<italic>m</italic>) 클럭만에 곱셈의 결과를 출력한다. 여기에서 <italic>w</italic> 값은 회로 면적과 속도 사이를 절충하여 설계자가 응용에 따라 선택할 수 있다. 제안된 곱셈기는 비트직렬 곱셈기보다는 고속으로 동작하며, 비트병렬 곱셈기보다는 더 낮은 복잡도를 갖는다. 또한 제안된 곱셈기는 기존의 곱셈기에 비해서 회로의 구조가 매우 규칙적이어서 VLSI 구현에 적합하며, 유한체 상의 지수승과 나눗셈과 같은 복잡한 연산을 위한 기본 요소로 쉽게 사용할 수 있다.</p>
		</abstract>
		<trans-abstract xml:lang="en">
			<title>ABSTRACT</title>
			<p>The Arithmetic operations over <italic>GF</italic>(2<sup>m</sup>) have been extensively used in public-key cryptography schemes and error correcting codes. Among the arithmetic operations over <italic>GF</italic>(2<sup>m</sup>), the efficient implementation of field multiplication is of upmost importance, as field operations of greater complexity (e.g., exponentiation and division) can be performed by the consecutive use of field multiplication. Choosing the basis by which field elements are represented plays an important role in the efficient implementation of finite field multiplications. There are three popular and applicable basis, namely, polynomial basis (PB), normal basis (NB), and dual basis. Hardware implementations of finite field multiplier using normal basis are advantageous due to the fact that the squaring operation can be performed by only one-bit cyclic shift at almost no cost. In this paper, a new bit-serial/digit-parallel multiplier using normal basis of <italic>GF</italic>(2<sup>m</sup>) is presented. The main idea of the proposed multiplier is to use this feature of normal basis. In the proposed multiplier, the bits of an operand are grouped into several digits with <italic>w</italic> bits and each digit is implemented simultaneously by bit-serial multiplier. Therefore, the proposed multiplier takes <italic>w</italic> clock cycles, 1≤w≤m, to finish one multiplication operation in <italic>GF</italic>(2<sup>m</sup>). The value of <italic>w</italic> can be selected by designer to set the trade off between area and speed according to the application. The proposed multiplier has lower area complexity than bit-parallel multiplier and is faster than bit-serial ones. In addition, the proposed multiplier has higher regular architecture compared to other similar proposals and therefore, well-suited for VLSI implementation and can be easily applied as a basic component for computing complex operations over finite field, such as exponentiation and division operation.</p>
		</trans-abstract>
		<kwd-group kwd-group-type="author" xml:lang="en">
			<kwd>Galois fields</kwd>
			<kwd>Finite fields arithmetic</kwd>
			<kwd>Normal Basis</kwd>
			<kwd>Bit-serial/digit-parallel multiplier</kwd>
			<kwd>Cryptography</kwd>
		</kwd-group>
	</article-meta>
</front>
<body>
<sec id="sec001" sec-type="intro">
	<title>1. 서 론</title>
<p>유한체(finite fields or Galois fields) 상의 연산은 오류정정 부호, 디지털 신호처리, 타원곡선 암호화 등에서 매우 중요하게 사용되고 있다<xref ref-type="bibr" rid="B001">[1]</xref>-<xref ref-type="bibr" rid="B003">[3]</xref>. 유한체 연산중에서 덧셈은 비트별 2원합(modulo-2 sum)으로 쉽게 구현할 수 있는 반면에 곱셈과 나눗셈은 상당히 복잡한 연산이다. 이 중에서 곱셈을 반복적으로 사용하면 나눗셈이나 지수승과 같은 복잡한 연산을 구현할 수 있기 때문에, 곱셈이 유한체 연산중에서 가장 핵심이 되는 연산이 된다<xref ref-type="bibr" rid="B004">[4]</xref><xref ref-type="bibr" rid="B005">[5]</xref>.</p>
<p>유한체 상의 연산에서 주로 사용하는 다항식기저(polynomial basis), 쌍대기저(dual basis)<xref ref-type="bibr" rid="B006">[6]</xref>, 정규기저(normal basis)<xref ref-type="bibr" rid="B007">[7]</xref>-<xref ref-type="bibr" rid="B009">[9]</xref> 등이 있다. 이 중에서 정규기저를 사용하면 제곱 연산이 한 비트 순회치환(cyclic shift)만으로 수행될 수 있는 장점이 있다. 즉, 하드웨어로 구현 시 결선만 바꾸면 되므로 비용이 소요되지 않는다. 따라서 정규기저는 여러 가지 타원곡선 암호시스템의 표준에서 널리 사용되고 있으며, 정규기저를 이용한 많은 곱셈기들이 제안되고 있다<xref ref-type="bibr" rid="B010">[10]</xref>-<xref ref-type="bibr" rid="B013">[13]</xref>. 본 논문에서는 이러한 정규기저의 특성을 이용하여 새로운 비트직렬/디지트병렬 곱셈기를 설계한다.</p>
<p><italic>GF</italic>(2<sup>m</sup>)의 곱셈기는 비트병렬(bit-parallel) 곱셈기와 비트직렬(bit-serial) 곱셈기로 구현할 수 있다. 비트병렬 곱셈기는 곱셈의 결과를 한 클럭(clock) 안에 출력하는 회로로 연산속도는 빠른 반면에 회로가 복잡하며<xref ref-type="bibr" rid="B014">[14]</xref>-<xref ref-type="bibr" rid="B016">[16]</xref>, 비트직렬 곱셈기는 회로는 간단하지만 m 클럭만큼의 시간 지연이 생긴다<xref ref-type="bibr" rid="B017">[17]</xref><xref ref-type="bibr" rid="B018">[18]</xref>.</p>
<p>본 논문에서는 기존의 비트직렬 곱셈기의 긴 지연시간과 비트병렬 곱셈기의 높은 회로 복잡도 사이에 적절한 절충이 가능한 새로운 비트직렬/디지트병렬 곱셈기를 설계한다. 제안한 곱셈기는 유한체의 정규기저 상에서 곱셈의 한 원소를 <italic>w </italic>비트씩 묶어서 각각은 비트직렬 방식으로 구현하고, 전체를 동시에 병렬로 처리하는 방식으로 속도를 향상시키는 것이다.</p>
<p>제안된 곱셈기는 기존의 비트병렬 곱셈기에 비해서는 적은 면적으로 구현할 수 있고 비트직렬 곱셈기보다는 짧은 지연시간에 결과를 얻을 수 있다. 제안한 곱셈기는 회로의 복잡도와 지연시간 사이에 적절한 절충을 꾀할 수 있는 장점을 가지고 있다.</p>
<p>본 논문의 구성은 먼저 2.에서 유한체 <italic>GF</italic>(2<sup>m</sup>)의 정규기저에서 동작하는 비트직렬 곱셈 알고리즘을 분석하고, 새로운 비트직렬/디지트병렬 정규기저 곱셈기를 설계한다. 3.에서 실제 예로써 <italic>GF</italic>(2<sup>7</sup>)에서 3클럭만에 곱셈의 결과를 출력하는 비트직렬/디지트병렬 정규기저 곱셈기를 설계한다. 그리고 4.에서 결론을 맺는다.</p>
</sec>
<sec id="sec002">
<title>2. 비트직렬/디지트병렬 정규기저 곱셈기</title>
<p>유한체 <italic>GF</italic>(2<sup>m</sup>) 상에서 정규기저를 이용하여 임의의 한 원소 <italic>A</italic>를 표현하면</p>
<disp-formula-group>
	<disp-formula id="dm01">
		<label>(1)</label>
<mml:math id="dm01-1"><mml:mi>A</mml:mi><mml:mo>=</mml:mo><mml:munderover><mml:mo>&#x2211;</mml:mo><mml:mrow><mml:mi>i</mml:mi><mml:mo>=</mml:mo><mml:mn>0</mml:mn></mml:mrow><mml:mrow><mml:mi>m</mml:mi><mml:mo>-</mml:mo><mml:mn>1</mml:mn></mml:mrow></mml:munderover><mml:msub><mml:mi>&#x3B1;</mml:mi><mml:mi>i</mml:mi></mml:msub><mml:msup><mml:mi>&#x3B2;</mml:mi><mml:msup><mml:mn>2</mml:mn><mml:mi>i</mml:mi></mml:msup></mml:msup><mml:mo>,</mml:mo><mml:mo>&#xA0;</mml:mo><mml:msub><mml:mi>&#x3B1;</mml:mi><mml:mi>i</mml:mi></mml:msub><mml:mo>&#x2208;</mml:mo><mml:mi>G</mml:mi><mml:mi>F</mml:mi><mml:mfenced><mml:mn>2</mml:mn></mml:mfenced><mml:mo>=</mml:mo><mml:msub><mml:mi>&#x3B1;</mml:mi><mml:mn>0</mml:mn></mml:msub><mml:msup><mml:mi>&#x3B2;</mml:mi><mml:msup><mml:mn>2</mml:mn><mml:mn>0</mml:mn></mml:msup></mml:msup><mml:mo>+</mml:mo><mml:msub><mml:mi>&#x3B1;</mml:mi><mml:mn>1</mml:mn></mml:msub><mml:msup><mml:mi>&#x3B2;</mml:mi><mml:msup><mml:mn>2</mml:mn><mml:mn>1</mml:mn></mml:msup></mml:msup><mml:mo>+</mml:mo><mml:mo>&#x22EF;</mml:mo><mml:mo>&#x22EF;</mml:mo><mml:mo>+</mml:mo><mml:msub><mml:mi>&#x3B1;</mml:mi><mml:mi>m</mml:mi></mml:msub><mml:mo>-</mml:mo><mml:mmultiscripts><mml:mi>&#x3B2;</mml:mi><mml:none/><mml:msup><mml:mn>2</mml:mn><mml:mrow><mml:mi>m</mml:mi><mml:mo>-</mml:mo><mml:mn>1</mml:mn></mml:mrow></mml:msup><mml:mprescripts/><mml:mn>1</mml:mn><mml:none/></mml:mmultiscripts></mml:math>
	</disp-formula>
</disp-formula-group>
<p>가 된다. 여기에서 <italic>β</italic><sup>2m</sup>=<italic>β</italic>이므로, 식 (<xref ref-type="disp-formula" rid="dm01">1</xref>)과 같은 임의의 한 원소를 제곱하면 다음과 같이 된다.</p>
<disp-formula-group>
	<disp-formula id="dm02">
		<label>(2)</label>
<mml:math id="dm02-1"><mml:msup><mml:mi>A</mml:mi><mml:mn>2</mml:mn></mml:msup><mml:mo>=</mml:mo><mml:msub><mml:mi>&#x3B1;</mml:mi><mml:mrow><mml:mi>m</mml:mi><mml:mo>-</mml:mo><mml:mn>1</mml:mn></mml:mrow></mml:msub><mml:mi>&#x3B2;</mml:mi><mml:mo>+</mml:mo><mml:msub><mml:mi>&#x3B1;</mml:mi><mml:mn>0</mml:mn></mml:msub><mml:msup><mml:mi>&#x3B2;</mml:mi><mml:mn>2</mml:mn></mml:msup><mml:mo>+</mml:mo><mml:mo>&#x22EF;</mml:mo><mml:mo>+</mml:mo><mml:msub><mml:mi>&#x3B1;</mml:mi><mml:mrow><mml:mi>m</mml:mi><mml:mo>-</mml:mo><mml:mn>2</mml:mn></mml:mrow></mml:msub><mml:msup><mml:mi>&#x3B2;</mml:mi><mml:msup><mml:mn>2</mml:mn><mml:mrow><mml:mi>m</mml:mi><mml:mo>-</mml:mo><mml:mn>1</mml:mn></mml:mrow></mml:msup></mml:msup></mml:math>
	</disp-formula>
</disp-formula-group>
<p>즉, 정규기저에서는 한 비트 순회치환(cyclic shift)하면 제곱 연산을 구현할 수 있다.</p>
<p>유한체 <italic>GF</italic>(2<sup>m</sup>) 상에서 임의의 두 원소 <italic>A</italic>와 <italic>B</italic>의 곱 <italic>C</italic>는 다음과 같이 표현할 수 있다.</p>
<disp-formula-group>
	<disp-formula id="dm03">
		<label>(3)</label>
<mml:math id="dm03-1"><mml:mi>C</mml:mi><mml:mo>=</mml:mo><mml:mi>A</mml:mi><mml:mo>&#xB7;</mml:mo><mml:mi>B</mml:mi><mml:mo>=</mml:mo><mml:mi>A</mml:mi><mml:mo>&#xB7;</mml:mo><mml:mfenced><mml:mrow><mml:munderover><mml:mo>&#x2211;</mml:mo><mml:mrow><mml:mi>i</mml:mi><mml:mo>-</mml:mo><mml:mn>0</mml:mn></mml:mrow><mml:mrow><mml:mi>m</mml:mi><mml:mo>-</mml:mo><mml:mn>1</mml:mn></mml:mrow></mml:munderover><mml:msub><mml:mi>b</mml:mi><mml:mi>i</mml:mi></mml:msub><mml:msup><mml:mi>&#x3B2;</mml:mi><mml:msup><mml:mn>2</mml:mn><mml:mi>i</mml:mi></mml:msup></mml:msup></mml:mrow></mml:mfenced></mml:math>
	</disp-formula>
</disp-formula-group>
<p>식 (<xref ref-type="disp-formula" rid="dm03">3</xref>)을 풀어 쓰면 다음과 같이 된다.</p>
<disp-formula-group>
	<disp-formula id="dm04">
		<label>(4)</label>
<mml:math id="dm04-1"><mml:mi>C</mml:mi><mml:mo>=</mml:mo><mml:msub><mml:mi>b</mml:mi><mml:mn>0</mml:mn></mml:msub><mml:mfenced><mml:mrow><mml:mi>A</mml:mi><mml:mi>&#x3B2;</mml:mi></mml:mrow></mml:mfenced><mml:mo>+</mml:mo><mml:msub><mml:mi>b</mml:mi><mml:mn>1</mml:mn></mml:msub><mml:mfenced><mml:mrow><mml:mi>A</mml:mi><mml:msup><mml:mi>&#x3B2;</mml:mi><mml:mn>2</mml:mn></mml:msup></mml:mrow></mml:mfenced><mml:mo>+</mml:mo><mml:mo>&#x22EF;</mml:mo><mml:mo>&#x22EF;</mml:mo><mml:mo>+</mml:mo><mml:msub><mml:mi>b</mml:mi><mml:mrow><mml:mi>m</mml:mi><mml:mo>-</mml:mo><mml:mn>1</mml:mn></mml:mrow></mml:msub><mml:mfenced><mml:mrow><mml:mi>A</mml:mi><mml:msup><mml:mi>&#x3B2;</mml:mi><mml:msup><mml:mn>2</mml:mn><mml:mrow><mml:mi>m</mml:mi><mml:mo>-</mml:mo><mml:mn>1</mml:mn></mml:mrow></mml:msup></mml:msup></mml:mrow></mml:mfenced><mml:mspace linebreak="newline"/><mml:mo>=</mml:mo><mml:msub><mml:mi>b</mml:mi><mml:mn>0</mml:mn></mml:msub><mml:mfenced><mml:mrow><mml:mi>A</mml:mi><mml:mi>&#x3B2;</mml:mi></mml:mrow></mml:mfenced><mml:mo>+</mml:mo><mml:msub><mml:mi>b</mml:mi><mml:mn>1</mml:mn></mml:msub><mml:msup><mml:mfenced><mml:mrow><mml:msup><mml:mi>A</mml:mi><mml:msup><mml:mn>2</mml:mn><mml:mrow><mml:mo>-</mml:mo><mml:mn>1</mml:mn></mml:mrow></mml:msup></mml:msup><mml:mi>&#x3B2;</mml:mi></mml:mrow></mml:mfenced><mml:msup><mml:mn>2</mml:mn><mml:mn>1</mml:mn></mml:msup></mml:msup><mml:mo>+</mml:mo><mml:mo>&#x22EF;</mml:mo><mml:mo>&#x22EF;</mml:mo><mml:mo>+</mml:mo><mml:msub><mml:mi>b</mml:mi><mml:mrow><mml:mi>m</mml:mi><mml:mo>-</mml:mo><mml:mn>1</mml:mn></mml:mrow></mml:msub><mml:msup><mml:mfenced><mml:mrow><mml:msup><mml:mi>A</mml:mi><mml:msup><mml:mn>2</mml:mn><mml:mrow><mml:mo>-</mml:mo><mml:mfenced><mml:mrow><mml:mi>m</mml:mi><mml:mo>-</mml:mo><mml:mn>1</mml:mn></mml:mrow></mml:mfenced></mml:mrow></mml:msup></mml:msup><mml:mi>&#x3B2;</mml:mi></mml:mrow></mml:mfenced><mml:msup><mml:mn>2</mml:mn><mml:mrow><mml:mi>m</mml:mi><mml:mo>-</mml:mo><mml:mn>1</mml:mn></mml:mrow></mml:msup></mml:msup></mml:math>
	</disp-formula>
</disp-formula-group>
<p>식 (<xref ref-type="disp-formula" rid="dm04">4</xref>)는 다음과 같이 다시 정리할 수 있다.</p>
<disp-formula-group>
	<disp-formula id="dm05">
		<label>(5)</label>
<mml:math id="dm05-1"><mml:mi>C</mml:mi><mml:mo>=</mml:mo><mml:msup><mml:mfenced><mml:msup><mml:mi>C</mml:mi><mml:msup><mml:mn>2</mml:mn><mml:mrow><mml:mo>-</mml:mo><mml:mfenced><mml:mrow><mml:mi>m</mml:mi><mml:mo>-</mml:mo><mml:mn>1</mml:mn></mml:mrow></mml:mfenced></mml:mrow></mml:msup></mml:msup></mml:mfenced><mml:msup><mml:mn>2</mml:mn><mml:mrow><mml:mi>m</mml:mi><mml:mo>-</mml:mo><mml:mn>1</mml:mn></mml:mrow></mml:msup></mml:msup><mml:mspace linebreak="newline"/><mml:mo>=</mml:mo><mml:msup><mml:mfenced><mml:mrow><mml:msup><mml:mfenced><mml:mrow><mml:mo>&#x22EF;</mml:mo><mml:msup><mml:mfenced><mml:mrow><mml:msup><mml:mfenced><mml:mrow><mml:msub><mml:mi>b</mml:mi><mml:mn>0</mml:mn></mml:msub><mml:mi>&#x3B2;</mml:mi><mml:mi>A</mml:mi></mml:mrow></mml:mfenced><mml:msup><mml:mn>2</mml:mn><mml:mrow><mml:mo>-</mml:mo><mml:mn>1</mml:mn></mml:mrow></mml:msup></mml:msup><mml:mo>+</mml:mo><mml:msub><mml:mi>b</mml:mi><mml:mn>1</mml:mn></mml:msub><mml:mi>&#x3B2;</mml:mi><mml:msup><mml:mi>A</mml:mi><mml:msup><mml:mn>2</mml:mn><mml:mrow><mml:mo>-</mml:mo><mml:mn>1</mml:mn></mml:mrow></mml:msup></mml:msup></mml:mrow></mml:mfenced><mml:msup><mml:mn>2</mml:mn><mml:mrow><mml:mo>-</mml:mo><mml:mn>1</mml:mn></mml:mrow></mml:msup></mml:msup><mml:mo>&#x22EF;</mml:mo><mml:mo>+</mml:mo><mml:msub><mml:mi>b</mml:mi><mml:mrow><mml:mi>m</mml:mi><mml:mo>-</mml:mo><mml:mn>2</mml:mn></mml:mrow></mml:msub><mml:mi>&#x3B2;</mml:mi><mml:msup><mml:mi>A</mml:mi><mml:msup><mml:mn>2</mml:mn><mml:mrow><mml:mo>-</mml:mo><mml:mfenced><mml:mrow><mml:mi>m</mml:mi><mml:mo>-</mml:mo><mml:mn>2</mml:mn></mml:mrow></mml:mfenced></mml:mrow></mml:msup></mml:msup></mml:mrow></mml:mfenced><mml:msup><mml:mn>2</mml:mn><mml:mrow><mml:mo>-</mml:mo><mml:mn>1</mml:mn></mml:mrow></mml:msup></mml:msup><mml:mo>+</mml:mo><mml:msub><mml:mi>b</mml:mi><mml:mrow><mml:mi>m</mml:mi><mml:mo>-</mml:mo><mml:mn>1</mml:mn></mml:mrow></mml:msub><mml:mi>&#x3B2;</mml:mi><mml:msup><mml:mi>A</mml:mi><mml:msup><mml:mn>2</mml:mn><mml:mrow><mml:mo>-</mml:mo><mml:mfenced><mml:mrow><mml:mi>m</mml:mi><mml:mo>-</mml:mo><mml:mn>1</mml:mn></mml:mrow></mml:mfenced></mml:mrow></mml:msup></mml:msup></mml:mrow></mml:mfenced><mml:msup><mml:mn>2</mml:mn><mml:mfenced><mml:mrow><mml:mi>m</mml:mi><mml:mo>-</mml:mo><mml:mn>1</mml:mn></mml:mrow></mml:mfenced></mml:msup></mml:msup></mml:math>
	</disp-formula>
</disp-formula-group>
<p>식 (<xref ref-type="disp-formula" rid="dm05">5</xref>)는 입력 <italic>A</italic>를 계속해서 2<sup>-1</sup>승을 하면서 입력 <italic>B</italic>의 계수를 낮은 차수부터 차례로 <italic>β</italic>와 곱하고 그 결과를 계속해서 2<sup>-1</sup>승을 하면서 <italic>m</italic> 클럭까지 더해 가는 것이다. 식 (<xref ref-type="disp-formula" rid="dm05">5</xref>)를 이용하면 &#x003C;<xref ref-type="fig" rid="f001">그림 1</xref>&#x003E;과 같은 정규기저 상의 비트직렬 곱셈기를 설계할 수 있다<xref ref-type="bibr" rid="B017">[17]</xref>.</p>
<p>&#x003C;<xref ref-type="fig" rid="f001">그림 1</xref>&#x003E;에서 굵은 선은 <italic>m</italic>비트 버스를 나타낸 것이고, <mml:math id="dm001"><mml:mo>&#x25A1;</mml:mo></mml:math>는 <italic>m</italic>비트 레지스터를, <mml:math id="dm002"><mml:mo>&#x2295;</mml:mo></mml:math>는 <italic>m</italic>개의 2입력 XOR 게이트를, <mml:math id="dm003"><mml:mo>&#x2299;</mml:mo></mml:math>은 <italic>m</italic>개의 2입력 AND 게이트를, <graphic xlink:href="../ingestImageView?artiId=ART002459576&amp;imageName=jkits_2019_14_02_203_b001.jpg" position="float" orientation="portrait" xlink:type="simple"></graphic>는 <italic>GF</italic>(2<sup>m</sup>) 상의 한 원소 <italic>β</italic>를 곱하는 상수 곱셈기를 나타내고 있다. 또한 점선으로 된 사각형은 2의 멱승을 수행하는 회로로 정규기저 상에서는 결선만 바꾸는 것이다. 또 2<sup>-1</sup>승은 각 계수를 왼쪽으로 한 번 순회치환 하는 것이고 2<sup><italic>m</italic>-1</sup>승은 각 계수를 오른쪽으로 <italic>m</italic>-1번 순회치환 하는 것이다.</p>
<p>&#x003C;<xref ref-type="fig" rid="f001">그림 1</xref>&#x003E;과 같은 곱셈기는 <italic>m</italic> 클럭 시간 후에 결과를 얻을 수 있다. 이와 같은 비트직렬 곱셈기의 지연을 줄여서 고속화하기 위하여, 식 (<xref ref-type="disp-formula" rid="dm03">3</xref>)에서 곱하는 두 원소 중 하나인 원소 <italic>B</italic>를 다음과 같이 <italic>w</italic> 비트씩 묶어서 <italic>d</italic>(<mml:math id="dm004"><mml:mi>d</mml:mi><mml:mfenced><mml:mrow><mml:mo>=</mml:mo><mml:mfenced open="&#x2308;" close="&#x2309;"><mml:mrow><mml:mi>m</mml:mi><mml:mo>/</mml:mo><mml:mi>w</mml:mi></mml:mrow></mml:mfenced></mml:mrow></mml:mfenced></mml:math>) 개로 분할한다.</p>
<disp-formula-group>
	<disp-formula id="dm06">
		<label>(6)</label>
<mml:math id="dm06-1"><mml:mi>C</mml:mi><mml:mo>=</mml:mo><mml:mi>A</mml:mi><mml:mo>&#xB7;</mml:mo><mml:mi>B</mml:mi><mml:mspace linebreak="newline"/><mml:mo>=</mml:mo><mml:mi>A</mml:mi><mml:mfenced><mml:mrow><mml:msub><mml:mi>b</mml:mi><mml:mn>0</mml:mn></mml:msub><mml:msup><mml:mi>&#x3B2;</mml:mi><mml:msup><mml:mn>2</mml:mn><mml:mn>0</mml:mn></mml:msup></mml:msup><mml:mo>+</mml:mo><mml:msub><mml:mi>b</mml:mi><mml:mn>1</mml:mn></mml:msub><mml:msup><mml:mi>&#x3B2;</mml:mi><mml:msup><mml:mn>2</mml:mn><mml:mn>1</mml:mn></mml:msup></mml:msup><mml:mo>+</mml:mo><mml:mo>&#x22EF;</mml:mo><mml:mo>+</mml:mo><mml:msub><mml:mi>b</mml:mi><mml:mrow><mml:mi>w</mml:mi><mml:mo>-</mml:mo><mml:mn>1</mml:mn></mml:mrow></mml:msub><mml:msup><mml:mi>&#x3B2;</mml:mi><mml:msup><mml:mn>2</mml:mn><mml:mrow><mml:mi>w</mml:mi><mml:mo>-</mml:mo><mml:mn>1</mml:mn></mml:mrow></mml:msup></mml:msup></mml:mrow></mml:mfenced><mml:mspace linebreak="newline"/><mml:mo>+</mml:mo><mml:mi>A</mml:mi><mml:mfenced><mml:mrow><mml:msub><mml:mi>b</mml:mi><mml:mi>w</mml:mi></mml:msub><mml:msup><mml:mi>&#x3B2;</mml:mi><mml:msup><mml:mn>2</mml:mn><mml:mi>w</mml:mi></mml:msup></mml:msup><mml:mo>+</mml:mo><mml:msub><mml:mi>b</mml:mi><mml:mrow><mml:mi>w</mml:mi><mml:mo>+</mml:mo><mml:mn>1</mml:mn></mml:mrow></mml:msub><mml:msup><mml:mi>&#x3B2;</mml:mi><mml:msup><mml:mn>2</mml:mn><mml:mrow><mml:mi>w</mml:mi><mml:mo>+</mml:mo><mml:mn>1</mml:mn></mml:mrow></mml:msup></mml:msup><mml:mo>+</mml:mo><mml:mo>&#x22EF;</mml:mo><mml:mo>+</mml:mo><mml:msub><mml:mi>b</mml:mi><mml:mrow><mml:mn>2</mml:mn><mml:mi>w</mml:mi><mml:mo>-</mml:mo><mml:mn>1</mml:mn></mml:mrow></mml:msub><mml:msup><mml:mi>&#x3B2;</mml:mi><mml:msup><mml:mn>2</mml:mn><mml:mrow><mml:mn>2</mml:mn><mml:mi>w</mml:mi><mml:mo>-</mml:mo><mml:mn>1</mml:mn></mml:mrow></mml:msup></mml:msup></mml:mrow></mml:mfenced><mml:mspace linebreak="newline"/><mml:mo>+</mml:mo><mml:mo>&#x22EF;</mml:mo><mml:mo>&#x22EF;</mml:mo><mml:mspace linebreak="newline"/><mml:mo>+</mml:mo><mml:mi>A</mml:mi><mml:mfenced><mml:mrow><mml:msub><mml:mi>b</mml:mi><mml:mrow><mml:mfenced><mml:mrow><mml:mi>d</mml:mi><mml:mo>-</mml:mo><mml:mn>1</mml:mn></mml:mrow></mml:mfenced><mml:mi>w</mml:mi></mml:mrow></mml:msub><mml:msup><mml:mi>&#x3B2;</mml:mi><mml:mrow><mml:msup><mml:mn>2</mml:mn><mml:mfenced><mml:mrow><mml:mi>d</mml:mi><mml:mo>-</mml:mo><mml:mn>1</mml:mn></mml:mrow></mml:mfenced></mml:msup><mml:mi>w</mml:mi></mml:mrow></mml:msup><mml:mo>+</mml:mo><mml:mo>&#x22EF;</mml:mo><mml:mo>+</mml:mo><mml:msub><mml:mi>b</mml:mi><mml:mrow><mml:mi>m</mml:mi><mml:mo>-</mml:mo><mml:mn>1</mml:mn></mml:mrow></mml:msub><mml:msup><mml:mi>&#x3B2;</mml:mi><mml:msup><mml:mn>2</mml:mn><mml:mrow><mml:mi>m</mml:mi><mml:mo>-</mml:mo><mml:mn>1</mml:mn></mml:mrow></mml:msup></mml:msup></mml:mrow></mml:mfenced></mml:math>
	</disp-formula>
</disp-formula-group>
<p>여기에서 <italic>C</italic>를 다음과 같이 정의하면</p>
<disp-formula-group>
	<disp-formula id="dm07">
		<label>(7)</label>
<mml:math id="dm07-1"><mml:mi>C</mml:mi><mml:mo>&#x2261;</mml:mo><mml:msub><mml:mi>C</mml:mi><mml:mn>0</mml:mn></mml:msub><mml:mo>+</mml:mo><mml:msub><mml:mi>C</mml:mi><mml:mn>1</mml:mn></mml:msub><mml:mo>+</mml:mo><mml:msub><mml:mi>C</mml:mi><mml:mn>2</mml:mn></mml:msub><mml:mo>+</mml:mo><mml:mo>&#x22EF;</mml:mo><mml:mo>&#x22EF;</mml:mo><mml:mo>+</mml:mo><mml:msub><mml:mi>C</mml:mi><mml:mrow><mml:mi>d</mml:mi><mml:mo>-</mml:mo><mml:mn>1</mml:mn></mml:mrow></mml:msub></mml:math>
	</disp-formula>
</disp-formula-group>
<p><italic>C</italic>의 각각의 항은 다음과 같이 정리할 수 있다.</p>
<disp-formula-group>
	<disp-formula id="dm08">
		<label>(8)</label>
<mml:math id="dm08-1"><mml:msub><mml:mi>C</mml:mi><mml:mn>0</mml:mn></mml:msub><mml:mo>=</mml:mo><mml:mi>A</mml:mi><mml:mfenced><mml:mrow><mml:msub><mml:mi>b</mml:mi><mml:mn>0</mml:mn></mml:msub><mml:mi>&#x3B2;</mml:mi><mml:mo>+</mml:mo><mml:msub><mml:mi>b</mml:mi><mml:mn>1</mml:mn></mml:msub><mml:msup><mml:mi>&#x3B2;</mml:mi><mml:msup><mml:mn>2</mml:mn><mml:mn>1</mml:mn></mml:msup></mml:msup><mml:mo>+</mml:mo><mml:mo>&#x22EF;</mml:mo><mml:mo>+</mml:mo><mml:msub><mml:mi>b</mml:mi><mml:mrow><mml:mi>w</mml:mi><mml:mo>-</mml:mo><mml:mn>1</mml:mn></mml:mrow></mml:msub><mml:msup><mml:mi>&#x3B2;</mml:mi><mml:msup><mml:mn>2</mml:mn><mml:mrow><mml:mi>w</mml:mi><mml:mo>-</mml:mo><mml:mn>1</mml:mn></mml:mrow></mml:msup></mml:msup></mml:mrow></mml:mfenced></mml:math>
	</disp-formula>
</disp-formula-group>
<fig id="f001" orientation="portrait" position="float">
	<label>그림 1.</label>
	<caption>
		<title><italic>GF</italic>(2<sup>m</sup>)의 비트직렬 정규기저 곱셈기</title>
		<p>Figure 1. Bit-serial normal basis multiplier in <italic>GF</italic>(2<sup>m</sup>)</p>
	</caption>
	<graphic xlink:href="../ingestImageView?artiId=ART002459576&amp;imageName=jkits_2019_14_02_203_f001.jpg" position="float" orientation="portrait" xlink:type="simple"></graphic>
</fig>
<disp-formula-group>
	<disp-formula id="dm09">
		<label>(9)</label>
<mml:math id="dm09-1"><mml:msub><mml:mi>C</mml:mi><mml:mn>1</mml:mn></mml:msub><mml:mo>=</mml:mo><mml:mi>A</mml:mi><mml:mfenced><mml:mrow><mml:msub><mml:mi>b</mml:mi><mml:mi>w</mml:mi></mml:msub><mml:msup><mml:mi>&#x3B2;</mml:mi><mml:msup><mml:mn>2</mml:mn><mml:mi>w</mml:mi></mml:msup></mml:msup><mml:mo>+</mml:mo><mml:mo>&#x22EF;</mml:mo><mml:mo>+</mml:mo><mml:msub><mml:mi>b</mml:mi><mml:mrow><mml:mn>2</mml:mn><mml:mi>w</mml:mi><mml:mo>-</mml:mo><mml:mn>1</mml:mn></mml:mrow></mml:msub><mml:msup><mml:mi>&#x3B2;</mml:mi><mml:msup><mml:mn>2</mml:mn><mml:mrow><mml:mn>2</mml:mn><mml:mi>w</mml:mi><mml:mo>-</mml:mo><mml:mn>1</mml:mn></mml:mrow></mml:msup></mml:msup></mml:mrow></mml:mfenced></mml:math>
	</disp-formula>
	<disp-formula id="dm10">
		<label>(10)</label>
<mml:math id="dm10-1"><mml:msub><mml:mi>C</mml:mi><mml:mn>2</mml:mn></mml:msub><mml:mo>=</mml:mo><mml:mi>A</mml:mi><mml:mfenced><mml:mrow><mml:msub><mml:mi>b</mml:mi><mml:mrow><mml:mn>2</mml:mn><mml:mi>w</mml:mi></mml:mrow></mml:msub><mml:msup><mml:mi>&#x3B2;</mml:mi><mml:msup><mml:mn>2</mml:mn><mml:mrow><mml:mn>2</mml:mn><mml:mi>w</mml:mi></mml:mrow></mml:msup></mml:msup><mml:mo>+</mml:mo><mml:mo>&#x22EF;</mml:mo><mml:mo>+</mml:mo><mml:msub><mml:mi>b</mml:mi><mml:mrow><mml:mn>3</mml:mn><mml:mi>w</mml:mi><mml:mo>-</mml:mo><mml:mn>1</mml:mn></mml:mrow></mml:msub><mml:msup><mml:mi>&#x3B2;</mml:mi><mml:msup><mml:mn>2</mml:mn><mml:mrow><mml:mn>3</mml:mn><mml:mi>w</mml:mi><mml:mo>-</mml:mo><mml:mn>1</mml:mn></mml:mrow></mml:msup></mml:msup></mml:mrow></mml:mfenced></mml:math>
	</disp-formula>
</disp-formula-group>
<p><mml:math id="dm005"><mml:mo>&#x22EE;</mml:mo></mml:math></p>
<disp-formula-group>
	<disp-formula id="dm11">
		<label>(11)</label>
<mml:math id="dm11-1"><mml:msub><mml:mi>C</mml:mi><mml:mrow><mml:mi>d</mml:mi><mml:mo>-</mml:mo><mml:mn>1</mml:mn></mml:mrow></mml:msub><mml:mo>=</mml:mo><mml:mi>A</mml:mi><mml:mfenced><mml:mrow><mml:msub><mml:mi>b</mml:mi><mml:mrow><mml:mfenced><mml:mrow><mml:mi>d</mml:mi><mml:mo>-</mml:mo><mml:mn>1</mml:mn></mml:mrow></mml:mfenced><mml:mi>w</mml:mi></mml:mrow></mml:msub><mml:msup><mml:mi>&#x3B2;</mml:mi><mml:msup><mml:mn>2</mml:mn><mml:mrow><mml:mfenced><mml:mrow><mml:mi>d</mml:mi><mml:mo>-</mml:mo><mml:mn>1</mml:mn></mml:mrow></mml:mfenced><mml:mi>w</mml:mi></mml:mrow></mml:msup></mml:msup><mml:mo>+</mml:mo><mml:mo>&#x22EF;</mml:mo><mml:mo>&#x22EF;</mml:mo><mml:mo>+</mml:mo><mml:msub><mml:mi>b</mml:mi><mml:mrow><mml:mi>m</mml:mi><mml:mo>-</mml:mo><mml:mn>1</mml:mn></mml:mrow></mml:msub><mml:msup><mml:mi>&#x3B2;</mml:mi><mml:msup><mml:mn>2</mml:mn><mml:mrow><mml:mi>m</mml:mi><mml:mo>-</mml:mo><mml:mn>1</mml:mn></mml:mrow></mml:msup></mml:msup></mml:mrow></mml:mfenced></mml:math>
	</disp-formula>
</disp-formula-group>
<p>식 (<xref ref-type="disp-formula" rid="dm08">8</xref>)과 같은 <italic>C</italic><sub>0</sub>는 <italic>m</italic> 대신에 <italic>w</italic>를 대입하면 식 (<xref ref-type="disp-formula" rid="dm04">4</xref>)와 같은 구조임을 알 수 있다. 식 (<xref ref-type="disp-formula" rid="dm09">9</xref>)와 같은 <italic>C</italic><sub>1</sub>은 다음과 같이 정리할 수 있다.</p>
<disp-formula-group>
	<disp-formula id="dm12">
		<label>(12)</label>
<mml:math id="dm12-1"><mml:msub><mml:mi>C</mml:mi><mml:mn>1</mml:mn></mml:msub><mml:mo>=</mml:mo><mml:msup><mml:mfenced open="[" close="]"><mml:mrow><mml:msub><mml:mi>b</mml:mi><mml:mi>w</mml:mi></mml:msub><mml:mfenced><mml:mrow><mml:msup><mml:mi>A</mml:mi><mml:msup><mml:mn>2</mml:mn><mml:mrow><mml:mo>-</mml:mo><mml:mi>w</mml:mi></mml:mrow></mml:msup></mml:msup><mml:mi>&#x3B2;</mml:mi></mml:mrow></mml:mfenced><mml:mo>+</mml:mo><mml:msub><mml:mi>b</mml:mi><mml:mrow><mml:mi>w</mml:mi><mml:mo>+</mml:mo><mml:mn>1</mml:mn></mml:mrow></mml:msub><mml:mfenced><mml:mrow><mml:msup><mml:mi>A</mml:mi><mml:msup><mml:mn>2</mml:mn><mml:mrow><mml:mo>-</mml:mo><mml:mi>w</mml:mi></mml:mrow></mml:msup></mml:msup><mml:msup><mml:mi>&#x3B2;</mml:mi><mml:msup><mml:mn>2</mml:mn><mml:mn>1</mml:mn></mml:msup></mml:msup></mml:mrow></mml:mfenced><mml:mo>+</mml:mo><mml:mo>&#x22EF;</mml:mo><mml:mo>&#x22EF;</mml:mo><mml:mo>+</mml:mo><mml:msub><mml:mi>b</mml:mi><mml:mrow><mml:mn>2</mml:mn><mml:mi>w</mml:mi><mml:mo>-</mml:mo><mml:mn>1</mml:mn></mml:mrow></mml:msub><mml:mfenced><mml:mrow><mml:msup><mml:mi>A</mml:mi><mml:msup><mml:mn>2</mml:mn><mml:mrow><mml:mo>-</mml:mo><mml:mi>w</mml:mi></mml:mrow></mml:msup></mml:msup><mml:msup><mml:mi>&#x3B2;</mml:mi><mml:msup><mml:mn>2</mml:mn><mml:mrow><mml:mi>w</mml:mi><mml:mo>-</mml:mo><mml:mn>1</mml:mn></mml:mrow></mml:msup></mml:msup></mml:mrow></mml:mfenced></mml:mrow></mml:mfenced><mml:msup><mml:mn>2</mml:mn><mml:mi>w</mml:mi></mml:msup></mml:msup></mml:math>
	</disp-formula>
</disp-formula-group>
<p>식 (<xref ref-type="disp-formula" rid="dm12">12</xref>)는 <italic>A</italic> 대신에 <mml:math id="dm030"><mml:msup><mml:mi>A</mml:mi><mml:msup><mml:mn>2</mml:mn><mml:mrow><mml:mo>-</mml:mo><mml:mi>w</mml:mi></mml:mrow></mml:msup></mml:msup></mml:math>를 대입하면 역시 식 (<xref ref-type="disp-formula" rid="dm04">4</xref>)와 동일한 구조가 된다. 식 (<xref ref-type="disp-formula" rid="dm10">10</xref>)과 같은 <italic>C</italic><sub>2</sub>을 같은 형태로 정리하면 다음과 같이 된다.</p>
<disp-formula-group>
	<disp-formula id="dm13">
		<label>(13)</label>
<mml:math id="dm13-1"><mml:msub><mml:mi>C</mml:mi><mml:mn>2</mml:mn></mml:msub><mml:mo>=</mml:mo><mml:msup><mml:mfenced open="[" close="]"><mml:mrow><mml:msub><mml:mi>b</mml:mi><mml:mrow><mml:mn>2</mml:mn><mml:mi>w</mml:mi></mml:mrow></mml:msub><mml:mfenced><mml:mrow><mml:msup><mml:mi>A</mml:mi><mml:msup><mml:mn>2</mml:mn><mml:mrow><mml:mo>-</mml:mo><mml:mn>2</mml:mn><mml:mi>w</mml:mi></mml:mrow></mml:msup></mml:msup><mml:mi>&#x3B2;</mml:mi></mml:mrow></mml:mfenced><mml:mo>+</mml:mo><mml:msub><mml:mi>b</mml:mi><mml:mrow><mml:mn>2</mml:mn><mml:mi>w</mml:mi><mml:mo>+</mml:mo><mml:mn>1</mml:mn></mml:mrow></mml:msub><mml:mfenced><mml:mrow><mml:msup><mml:mi>A</mml:mi><mml:msup><mml:mn>2</mml:mn><mml:mrow><mml:mo>-</mml:mo><mml:mn>2</mml:mn><mml:mi>w</mml:mi></mml:mrow></mml:msup></mml:msup><mml:msup><mml:mi>&#x3B2;</mml:mi><mml:msup><mml:mn>2</mml:mn><mml:mn>1</mml:mn></mml:msup></mml:msup></mml:mrow></mml:mfenced><mml:mo>+</mml:mo><mml:mo>&#x22EF;</mml:mo><mml:mo>&#x22EF;</mml:mo><mml:mo>+</mml:mo><mml:msub><mml:mi>b</mml:mi><mml:mrow><mml:mn>3</mml:mn><mml:mi>w</mml:mi><mml:mo>-</mml:mo><mml:mn>1</mml:mn></mml:mrow></mml:msub><mml:mfenced><mml:mrow><mml:msup><mml:mi>A</mml:mi><mml:msup><mml:mn>2</mml:mn><mml:mrow><mml:mo>-</mml:mo><mml:mn>2</mml:mn><mml:mi>w</mml:mi></mml:mrow></mml:msup></mml:msup><mml:msup><mml:mi>&#x3B2;</mml:mi><mml:msup><mml:mn>2</mml:mn><mml:mrow><mml:mi>w</mml:mi><mml:mo>-</mml:mo><mml:mn>1</mml:mn></mml:mrow></mml:msup></mml:msup></mml:mrow></mml:mfenced></mml:mrow></mml:mfenced><mml:msup><mml:mn>2</mml:mn><mml:mrow><mml:mn>2</mml:mn><mml:mi>w</mml:mi></mml:mrow></mml:msup></mml:msup></mml:math>
	</disp-formula>
</disp-formula-group>
<p>식 (<xref ref-type="disp-formula" rid="dm13">13</xref>)도 <italic>A</italic> 대신에 <mml:math id="dm006"><mml:msup><mml:mi>A</mml:mi><mml:msup><mml:mn>2</mml:mn><mml:mrow><mml:mo>-</mml:mo><mml:mn>2</mml:mn><mml:mi>w</mml:mi></mml:mrow></mml:msup></mml:msup></mml:math>를 대입하면 역시 식 (<xref ref-type="disp-formula" rid="dm04">4</xref>)와 동일한 구조가 된다. 계속해서 식 (<xref ref-type="disp-formula" rid="dm11">11</xref>)의 <italic>C</italic><sub><italic>d</italic>-1</sub>도 같은 방법으로 정리할 수 있다.</p>
<disp-formula-group>
	<disp-formula id="dm14">
		<label>(14)</label>
<mml:math id="dm14-1"><mml:msub><mml:mi>C</mml:mi><mml:mrow><mml:mi>d</mml:mi><mml:mo>-</mml:mo><mml:mn>1</mml:mn></mml:mrow></mml:msub><mml:mo>=</mml:mo><mml:msup><mml:mfenced open="[" close="]"><mml:mrow><mml:msub><mml:mi>b</mml:mi><mml:mrow><mml:mfenced><mml:mrow><mml:mi>d</mml:mi><mml:mo>-</mml:mo><mml:mn>1</mml:mn></mml:mrow></mml:mfenced><mml:mi>w</mml:mi></mml:mrow></mml:msub><mml:mfenced><mml:mrow><mml:msup><mml:mi>A</mml:mi><mml:msup><mml:mn>2</mml:mn><mml:mrow><mml:mo>-</mml:mo><mml:mfenced><mml:mrow><mml:mi>d</mml:mi><mml:mo>-</mml:mo><mml:mn>1</mml:mn></mml:mrow></mml:mfenced><mml:mi>w</mml:mi></mml:mrow></mml:msup></mml:msup><mml:mi>&#x3B2;</mml:mi></mml:mrow></mml:mfenced><mml:mo>+</mml:mo><mml:msub><mml:mi>b</mml:mi><mml:mrow><mml:mfenced><mml:mrow><mml:mi>d</mml:mi><mml:mo>-</mml:mo><mml:mn>1</mml:mn></mml:mrow></mml:mfenced><mml:mi>w</mml:mi><mml:mo>+</mml:mo><mml:mn>1</mml:mn></mml:mrow></mml:msub><mml:mfenced><mml:mrow><mml:msup><mml:mi>A</mml:mi><mml:msup><mml:mn>2</mml:mn><mml:mrow><mml:mo>-</mml:mo><mml:mfenced><mml:mrow><mml:mi>d</mml:mi><mml:mo>-</mml:mo><mml:mn>1</mml:mn></mml:mrow></mml:mfenced><mml:mi>w</mml:mi></mml:mrow></mml:msup></mml:msup><mml:msup><mml:mi>&#x3B2;</mml:mi><mml:msup><mml:mn>2</mml:mn><mml:mn>1</mml:mn></mml:msup></mml:msup></mml:mrow></mml:mfenced><mml:mo>+</mml:mo><mml:mo>&#x22EF;</mml:mo><mml:mo>+</mml:mo><mml:msub><mml:mi>b</mml:mi><mml:mrow><mml:mi>m</mml:mi><mml:mo>-</mml:mo><mml:mn>1</mml:mn></mml:mrow></mml:msub><mml:mfenced><mml:mrow><mml:msup><mml:mi>A</mml:mi><mml:msup><mml:mn>2</mml:mn><mml:mrow><mml:mo>-</mml:mo><mml:mfenced><mml:mrow><mml:mi>d</mml:mi><mml:mo>-</mml:mo><mml:mn>1</mml:mn></mml:mrow></mml:mfenced><mml:mi>w</mml:mi></mml:mrow></mml:msup></mml:msup><mml:msup><mml:mi>&#x3B2;</mml:mi><mml:msup><mml:mn>2</mml:mn><mml:mrow><mml:mi>m</mml:mi><mml:mo>-</mml:mo><mml:mn>1</mml:mn></mml:mrow></mml:msup></mml:msup></mml:mrow></mml:mfenced></mml:mrow></mml:mfenced><mml:msup><mml:mn>2</mml:mn><mml:mrow><mml:mfenced><mml:mrow><mml:mi>d</mml:mi><mml:mo>-</mml:mo><mml:mn>1</mml:mn></mml:mrow></mml:mfenced><mml:mi>w</mml:mi></mml:mrow></mml:msup></mml:msup></mml:math>
	</disp-formula>
</disp-formula-group>
<p>식 (<xref ref-type="disp-formula" rid="dm14">14</xref>)도 <italic>A</italic> 대신에 <mml:math id="dm007"><mml:msup><mml:mi>A</mml:mi><mml:msup><mml:mn>2</mml:mn><mml:mrow><mml:mo>-</mml:mo><mml:mfenced><mml:mrow><mml:mi>d</mml:mi><mml:mo>-</mml:mo><mml:mn>1</mml:mn></mml:mrow></mml:mfenced><mml:mi>w</mml:mi></mml:mrow></mml:msup></mml:msup></mml:math>를 대입하면 역시 식 (<xref ref-type="disp-formula" rid="dm04">4</xref>)와 같은 구조가 된다. 따라서 식 (<xref ref-type="disp-formula" rid="dm12">12</xref>)~(<xref ref-type="disp-formula" rid="dm14">14</xref>)를 이용하면 &#x003C;<xref ref-type="fig" rid="f002">그림 2</xref>&#x003E;와 같은 비트직렬/디지트병렬 정규기저 곱셈기를 설계할 수 있다. 설계된 곱셈기는 입력되는 한 원소를 <italic>w</italic> 비트씩 나누어 <italic>d</italic>개의 디지트로 분리한 다음, 각각의 디지트를 직렬 곱셈기를 이용하여 병렬로 처리한다.</p>
<p>&#x003C;<xref ref-type="fig" rid="f002">그림 2</xref>&#x003E;의 회로는 초기 상태에서 레지스터 <italic>U</italic>에는 입력 <italic>A</italic>를 로드시키고 레지스터 <italic>Z</italic>는 클리어시키킨다. 레지스터 <italic>V</italic>에는 입력 <italic>B</italic>를 <italic>w</italic>비트씩 나눈 값을 로드시킨다. 첫 번째 클럭에서 각 디지트의 첫 번째 비트인 <italic>b</italic><sub>0</sub>, <italic>b</italic><sub><italic>w</italic></sub>, <italic>b</italic><sub>2<italic>w</italic></sub> ……, <italic>b</italic><sub>(<italic>d</italic>-1)<italic>w</italic></sub>가 입력되고, 두 번째 클럭에서는 각 디지트의 두 번째 비트가, ……, 그리고 <italic>w</italic> 번째 클럭에서는 각 디지트의 마지막 비트가 입력된다. <italic>m</italic>개의 비트가 모두 입력되면 레지스터 <italic>V</italic>의 끝에는 0으로 채워진다. 그러므로 곱셈의 결과를 <italic>w</italic> 클럭 후에 얻을 수 있다.</p>
<fig id="f002" orientation="portrait" position="float">
	<label>그림 2.</label>
	<caption>
		<title><italic>GF</italic>(2<sup>m</sup>)의 비트직렬/디지트병렬 정규기저 곱셈기</title>
		<p>Figure 2. Bit-serial/digit-parallel normal basis multiplier in <italic>GF</italic>(2<sup>m</sup>)</p>
	</caption>
	<graphic xlink:href="../ingestImageView?artiId=ART002459576&amp;imageName=jkits_2019_14_02_203_f002.jpg" position="float" orientation="portrait" xlink:type="simple"></graphic>
</fig>
<p>&#x003C;<xref ref-type="fig" rid="f002">그림 2</xref>&#x003E;의 곱셈기를 &#x003C;<xref ref-type="fig" rid="f001">그림 1</xref>&#x003E;의 곱셈기와 비교해보면, (<italic>d</italic>-1)<italic>m</italic>개의 2입력 XOR 게이트, (<italic>d</italic>-1)<italic>m</italic>개의 2입력 AND 게이트, 그리고 (<italic>d</italic>-1)개의 <italic>β</italic>를 곱하는 상수 곱셈기가 더 사용되었음을 알 수 있다. 여기에서 <italic>d</italic>는 <mml:math id="dm008"><mml:mfenced open="&#x2308;" close="&#x2309;"><mml:mrow><mml:mi>m</mml:mi><mml:mo>/</mml:mo><mml:mi>w</mml:mi></mml:mrow></mml:mfenced></mml:math>이다.</p>
</sec>
<sec id="sec003">
<title>3. <italic>GF</italic>(2<sup>7</sup>) 상의 비트직렬/디지트병렬 정규기저 곱셈기</title>
<p>실제 예로서 유한체 <italic>GF</italic>(2<sup>7</sup>) 상에서 3클럭만에 곱셈의 결과를 출력하는 곱셈기를 설계하여 보자. 유한체 <italic>GF</italic>(2<sup>7</sup>)에서 임의의 두 원소의 곱 <italic>C</italic>는</p>
<disp-formula-group>
	<disp-formula id="dm15">
		<label>(15)</label>
<mml:math id="dm15-1"><mml:mi>C</mml:mi><mml:mo>=</mml:mo><mml:msub><mml:mi>b</mml:mi><mml:mn>0</mml:mn></mml:msub><mml:mfenced><mml:mrow><mml:mi>A</mml:mi><mml:mi>&#x3B2;</mml:mi></mml:mrow></mml:mfenced><mml:mo>+</mml:mo><mml:msub><mml:mi>b</mml:mi><mml:mn>1</mml:mn></mml:msub><mml:mfenced><mml:mrow><mml:mi>A</mml:mi><mml:msup><mml:mi>&#x3B2;</mml:mi><mml:msup><mml:mn>2</mml:mn><mml:mn>1</mml:mn></mml:msup></mml:msup></mml:mrow></mml:mfenced><mml:mo>+</mml:mo><mml:msub><mml:mi>b</mml:mi><mml:mn>2</mml:mn></mml:msub><mml:mfenced><mml:mrow><mml:mi>A</mml:mi><mml:msup><mml:mi>&#x3B2;</mml:mi><mml:msup><mml:mn>2</mml:mn><mml:mn>2</mml:mn></mml:msup></mml:msup></mml:mrow></mml:mfenced><mml:mspace linebreak="newline"/><mml:mo>+</mml:mo><mml:msub><mml:mi>b</mml:mi><mml:mn>3</mml:mn></mml:msub><mml:mfenced><mml:mrow><mml:mi>A</mml:mi><mml:msup><mml:mi>&#x3B2;</mml:mi><mml:msup><mml:mn>2</mml:mn><mml:mn>3</mml:mn></mml:msup></mml:msup></mml:mrow></mml:mfenced><mml:mo>+</mml:mo><mml:msub><mml:mi>b</mml:mi><mml:mn>4</mml:mn></mml:msub><mml:mfenced><mml:mrow><mml:mi>A</mml:mi><mml:msup><mml:mi>&#x3B2;</mml:mi><mml:msup><mml:mn>2</mml:mn><mml:mn>4</mml:mn></mml:msup></mml:msup></mml:mrow></mml:mfenced><mml:mspace linebreak="newline"/><mml:mo>+</mml:mo><mml:msub><mml:mi>b</mml:mi><mml:mn>5</mml:mn></mml:msub><mml:mfenced><mml:mrow><mml:mi>A</mml:mi><mml:msup><mml:mi>&#x3B2;</mml:mi><mml:msup><mml:mn>2</mml:mn><mml:mn>5</mml:mn></mml:msup></mml:msup></mml:mrow></mml:mfenced><mml:mo>+</mml:mo><mml:msub><mml:mi>b</mml:mi><mml:mn>6</mml:mn></mml:msub><mml:mfenced><mml:mrow><mml:mi>A</mml:mi><mml:msup><mml:mi>&#x3B2;</mml:mi><mml:msup><mml:mn>2</mml:mn><mml:mn>6</mml:mn></mml:msup></mml:msup></mml:mrow></mml:mfenced></mml:math>
	</disp-formula>
</disp-formula-group>
<p>가 된다. 여기에서 <italic>B</italic>를 3 비트씩 묶으면</p>
<disp-formula-group>
	<disp-formula id="dm16">
		<label>(16)</label>
<mml:math id="dm16-1"><mml:msub><mml:mi>C</mml:mi><mml:mn>0</mml:mn></mml:msub><mml:mo>=</mml:mo><mml:msub><mml:mi>b</mml:mi><mml:mn>0</mml:mn></mml:msub><mml:mi>A</mml:mi><mml:mi>&#x3B2;</mml:mi><mml:mo>+</mml:mo><mml:msub><mml:mi>b</mml:mi><mml:mn>1</mml:mn></mml:msub><mml:mi>A</mml:mi><mml:msup><mml:mi>&#x3B2;</mml:mi><mml:mn>2</mml:mn></mml:msup><mml:mo>+</mml:mo><mml:msub><mml:mi>b</mml:mi><mml:mn>2</mml:mn></mml:msub><mml:mi>A</mml:mi><mml:msup><mml:mi>&#x3B2;</mml:mi><mml:msup><mml:mn>2</mml:mn><mml:mn>2</mml:mn></mml:msup></mml:msup></mml:math>
	</disp-formula>
	<disp-formula id="dm17">
		<label>(17)</label>
<mml:math id="dm17-1"><mml:msub><mml:mi>C</mml:mi><mml:mn>1</mml:mn></mml:msub><mml:mo>=</mml:mo><mml:msub><mml:mi>b</mml:mi><mml:mn>3</mml:mn></mml:msub><mml:mi>A</mml:mi><mml:msup><mml:mi>&#x3B2;</mml:mi><mml:msup><mml:mn>2</mml:mn><mml:mn>3</mml:mn></mml:msup></mml:msup><mml:mo>+</mml:mo><mml:msub><mml:mi>b</mml:mi><mml:mn>4</mml:mn></mml:msub><mml:mi>A</mml:mi><mml:msup><mml:mi>&#x3B2;</mml:mi><mml:msup><mml:mn>2</mml:mn><mml:mn>4</mml:mn></mml:msup></mml:msup><mml:mo>+</mml:mo><mml:msub><mml:mi>b</mml:mi><mml:mn>5</mml:mn></mml:msub><mml:mi>A</mml:mi><mml:msup><mml:mi>&#x3B2;</mml:mi><mml:msup><mml:mn>2</mml:mn><mml:mn>5</mml:mn></mml:msup></mml:msup></mml:math>
	</disp-formula>
	<disp-formula id="dm18">
		<label>(18)</label>
<mml:math id="dm18-1"><mml:msub><mml:mi>C</mml:mi><mml:mn>2</mml:mn></mml:msub><mml:mo>=</mml:mo><mml:msub><mml:mi>b</mml:mi><mml:mn>6</mml:mn></mml:msub><mml:mi>A</mml:mi><mml:msup><mml:mi>&#x3B2;</mml:mi><mml:msup><mml:mn>2</mml:mn><mml:mn>6</mml:mn></mml:msup></mml:msup><mml:mo>+</mml:mo><mml:mn>0</mml:mn><mml:mi>A</mml:mi><mml:msup><mml:mi>&#x3B2;</mml:mi><mml:msup><mml:mn>2</mml:mn><mml:mn>7</mml:mn></mml:msup></mml:msup><mml:mo>+</mml:mo><mml:mn>0</mml:mn><mml:mi>A</mml:mi><mml:msup><mml:mi>&#x3B2;</mml:mi><mml:msup><mml:mn>2</mml:mn><mml:mn>8</mml:mn></mml:msup></mml:msup></mml:math>
	</disp-formula>
</disp-formula-group>
<p>가 된다. 또한 식 (<xref ref-type="disp-formula" rid="dm17">17</xref>)과 식 (<xref ref-type="disp-formula" rid="dm18">18</xref>)을 다시 정리하면 다음과 같이 된다.</p>
<disp-formula-group>
	<disp-formula id="dm19">
		<label>(19)</label>
<mml:math id="dm19-1"><mml:msub><mml:mi>C</mml:mi><mml:mn>1</mml:mn></mml:msub><mml:mo>=</mml:mo><mml:msup><mml:mfenced open="[" close="]"><mml:mrow><mml:msub><mml:mi>b</mml:mi><mml:mn>3</mml:mn></mml:msub><mml:mfenced><mml:msup><mml:mi>A</mml:mi><mml:msup><mml:mn>2</mml:mn><mml:mrow><mml:mo>-</mml:mo><mml:mn>3</mml:mn></mml:mrow></mml:msup></mml:msup></mml:mfenced><mml:mi>&#x3B2;</mml:mi><mml:mo>+</mml:mo><mml:msub><mml:mi>b</mml:mi><mml:mn>4</mml:mn></mml:msub><mml:mfenced><mml:msup><mml:mi>A</mml:mi><mml:msup><mml:mn>2</mml:mn><mml:mrow><mml:mo>-</mml:mo><mml:mn>3</mml:mn></mml:mrow></mml:msup></mml:msup></mml:mfenced><mml:msup><mml:mi>&#x3B2;</mml:mi><mml:mn>2</mml:mn></mml:msup><mml:mo>+</mml:mo><mml:msub><mml:mi>b</mml:mi><mml:mn>5</mml:mn></mml:msub><mml:mfenced><mml:msup><mml:mi>A</mml:mi><mml:msup><mml:mn>2</mml:mn><mml:mrow><mml:mo>-</mml:mo><mml:mn>3</mml:mn></mml:mrow></mml:msup></mml:msup></mml:mfenced><mml:msup><mml:mi>&#x3B2;</mml:mi><mml:msup><mml:mn>2</mml:mn><mml:mn>2</mml:mn></mml:msup></mml:msup></mml:mrow></mml:mfenced><mml:msup><mml:mn>2</mml:mn><mml:mn>3</mml:mn></mml:msup></mml:msup></mml:math>
	</disp-formula>
	<disp-formula id="dm20">
		<label>(20)</label>
<mml:math id="dm20-1"><mml:msub><mml:mi>C</mml:mi><mml:mn>2</mml:mn></mml:msub><mml:mo>=</mml:mo><mml:msup><mml:mfenced open="[" close="]"><mml:mrow><mml:msub><mml:mi>b</mml:mi><mml:mn>6</mml:mn></mml:msub><mml:mfenced><mml:msup><mml:mi>A</mml:mi><mml:msup><mml:mn>2</mml:mn><mml:mrow><mml:mo>-</mml:mo><mml:mn>6</mml:mn></mml:mrow></mml:msup></mml:msup></mml:mfenced><mml:mi>&#x3B2;</mml:mi><mml:mo>+</mml:mo><mml:mn>0</mml:mn><mml:mfenced><mml:msup><mml:mi>A</mml:mi><mml:msup><mml:mn>2</mml:mn><mml:mrow><mml:mo>-</mml:mo><mml:mn>6</mml:mn></mml:mrow></mml:msup></mml:msup></mml:mfenced><mml:msup><mml:mi>&#x3B2;</mml:mi><mml:mn>2</mml:mn></mml:msup><mml:mo>+</mml:mo><mml:mn>0</mml:mn><mml:mfenced><mml:msup><mml:mi>A</mml:mi><mml:msup><mml:mn>2</mml:mn><mml:mrow><mml:mo>-</mml:mo><mml:mn>6</mml:mn></mml:mrow></mml:msup></mml:msup></mml:mfenced><mml:msup><mml:mi>&#x3B2;</mml:mi><mml:msup><mml:mn>2</mml:mn><mml:mn>2</mml:mn></mml:msup></mml:msup></mml:mrow></mml:mfenced><mml:msup><mml:mn>2</mml:mn><mml:mn>6</mml:mn></mml:msup></mml:msup></mml:math>
	</disp-formula>
</disp-formula-group>
<fig id="f003" orientation="portrait" position="float">
	<label>그림 3.</label>
	<caption>
		<title><italic>GF</italic>(2<sup>7</sup>) 상의 비트직렬/디지트병렬 정규기저 곱셈기</title>
		<p>Figure 3. Bit-serial/digit-parallel normal baasis multipler in <italic>GF</italic>(2<sup>7</sup>)</p>
	</caption>
	<graphic xlink:href="../ingestImageView?artiId=ART002459576&amp;imageName=jkits_2019_14_02_203_f003.jpg" position="float" orientation="portrait" xlink:type="simple"></graphic>
</fig>
<p>식 (<xref ref-type="disp-formula" rid="dm16">16</xref>), 식 (<xref ref-type="disp-formula" rid="dm19">19</xref>), 식 (<xref ref-type="disp-formula" rid="dm20">20</xref>)을 이용하면 &#x003C;<xref ref-type="fig" rid="f003">그림 3</xref>&#x003E;과 같은 곱셈기를 설계할 수 있다.</p>
<p>&#x003C;<xref ref-type="fig" rid="f003">그림 3</xref>&#x003E;에서 <italic>β</italic>를 곱하는 상수 곱셈기를 설계하기 위하여 유한체 <italic>GF</italic>(2<sup>7</sup>)의 임의의 한 원소 <italic>A</italic>에 <italic>β</italic>를 곱하여 정리하면 다음과 같이 된다.</p>
<disp-formula-group>
	<disp-formula id="dm21">
		<label>(21)</label>
<mml:math id="dm21-1"><mml:mi>A</mml:mi><mml:mo>&#xB7;</mml:mo><mml:mi>&#x3B2;</mml:mi><mml:mo>=</mml:mo><mml:mfenced><mml:mrow><mml:msub><mml:mi>&#x3B1;</mml:mi><mml:mn>0</mml:mn></mml:msub><mml:mo>+</mml:mo><mml:msub><mml:mi>&#x3B1;</mml:mi><mml:mn>6</mml:mn></mml:msub><mml:mo>+</mml:mo><mml:msub><mml:mi>&#x3B1;</mml:mi><mml:mn>2</mml:mn></mml:msub><mml:mo>+</mml:mo><mml:msub><mml:mi>&#x3B1;</mml:mi><mml:mn>5</mml:mn></mml:msub></mml:mrow></mml:mfenced><mml:mi>&#x3B2;</mml:mi><mml:mspace linebreak="newline"/><mml:mo>+</mml:mo><mml:mfenced><mml:mrow><mml:msub><mml:mi>&#x3B1;</mml:mi><mml:mn>1</mml:mn></mml:msub><mml:mo>+</mml:mo><mml:msub><mml:mi>&#x3B1;</mml:mi><mml:mn>3</mml:mn></mml:msub><mml:mo>+</mml:mo><mml:msub><mml:mi>&#x3B1;</mml:mi><mml:mn>4</mml:mn></mml:msub><mml:mo>+</mml:mo><mml:msub><mml:mi>&#x3B1;</mml:mi><mml:mn>5</mml:mn></mml:msub></mml:mrow></mml:mfenced><mml:msup><mml:mi>&#x3B2;</mml:mi><mml:mn>2</mml:mn></mml:msup><mml:mspace linebreak="newline"/><mml:mo>+</mml:mo><mml:mfenced><mml:mrow><mml:msub><mml:mi>&#x3B1;</mml:mi><mml:mn>2</mml:mn></mml:msub><mml:mo>+</mml:mo><mml:msub><mml:mi>&#x3B1;</mml:mi><mml:mn>5</mml:mn></mml:msub></mml:mrow></mml:mfenced><mml:msup><mml:mi>&#x3B2;</mml:mi><mml:mn>4</mml:mn></mml:msup><mml:mo>+</mml:mo><mml:mfenced><mml:mrow><mml:msub><mml:mi>&#x3B1;</mml:mi><mml:mn>2</mml:mn></mml:msub><mml:mo>+</mml:mo><mml:msub><mml:mi>&#x3B1;</mml:mi><mml:mn>6</mml:mn></mml:msub></mml:mrow></mml:mfenced><mml:msup><mml:mi>&#x3B2;</mml:mi><mml:mn>8</mml:mn></mml:msup><mml:mspace linebreak="newline"/><mml:mo>+</mml:mo><mml:mfenced><mml:mrow><mml:msub><mml:mi>&#x3B1;</mml:mi><mml:mn>1</mml:mn></mml:msub><mml:mo>+</mml:mo><mml:msub><mml:mi>&#x3B1;</mml:mi><mml:mn>3</mml:mn></mml:msub><mml:mo>+</mml:mo><mml:msub><mml:mi>&#x3B1;</mml:mi><mml:mn>2</mml:mn></mml:msub><mml:mo>+</mml:mo><mml:msub><mml:mi>&#x3B1;</mml:mi><mml:mn>6</mml:mn></mml:msub></mml:mrow></mml:mfenced><mml:msup><mml:mi>&#x3B2;</mml:mi><mml:mn>16</mml:mn></mml:msup><mml:mspace linebreak="newline"/><mml:mo>+</mml:mo><mml:mfenced><mml:mrow><mml:msub><mml:mi>&#x3B1;</mml:mi><mml:mn>1</mml:mn></mml:msub><mml:mo>+</mml:mo><mml:msub><mml:mi>&#x3B1;</mml:mi><mml:mn>6</mml:mn></mml:msub><mml:mo>+</mml:mo><mml:msub><mml:mi>&#x3B1;</mml:mi><mml:mn>4</mml:mn></mml:msub><mml:mo>+</mml:mo><mml:msub><mml:mi>&#x3B1;</mml:mi><mml:mn>5</mml:mn></mml:msub></mml:mrow></mml:mfenced><mml:msup><mml:mi>&#x3B2;</mml:mi><mml:mn>32</mml:mn></mml:msup><mml:mo>+</mml:mo><mml:msub><mml:mi>&#x3B1;</mml:mi><mml:mn>1</mml:mn></mml:msub><mml:msup><mml:mi>&#x3B2;</mml:mi><mml:mn>64</mml:mn></mml:msup></mml:math>
	</disp-formula>
	<disp-formula id="dm22">
		<label>(22)</label>
<mml:math id="dm22-1"><mml:mi>M</mml:mi><mml:mo>=</mml:mo><mml:mfenced open="[" close="]"><mml:mtable><mml:mtr><mml:mtd><mml:mn>0</mml:mn></mml:mtd><mml:mtd><mml:mn>1</mml:mn></mml:mtd><mml:mtd><mml:mn>0</mml:mn></mml:mtd><mml:mtd><mml:mn>0</mml:mn></mml:mtd><mml:mtd><mml:mn>0</mml:mn></mml:mtd><mml:mtd><mml:mn>0</mml:mn></mml:mtd><mml:mtd><mml:mn>0</mml:mn></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mn>1</mml:mn></mml:mtd><mml:mtd><mml:mn>0</mml:mn></mml:mtd><mml:mtd><mml:mn>1</mml:mn></mml:mtd><mml:mtd><mml:mn>0</mml:mn></mml:mtd><mml:mtd><mml:mn>0</mml:mn></mml:mtd><mml:mtd><mml:mn>1</mml:mn></mml:mtd><mml:mtd><mml:mn>1</mml:mn></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mn>0</mml:mn></mml:mtd><mml:mtd><mml:mn>1</mml:mn></mml:mtd><mml:mtd><mml:mn>0</mml:mn></mml:mtd><mml:mtd><mml:mn>1</mml:mn></mml:mtd><mml:mtd><mml:mn>1</mml:mn></mml:mtd><mml:mtd><mml:mn>1</mml:mn></mml:mtd><mml:mtd><mml:mn>0</mml:mn></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mn>0</mml:mn></mml:mtd><mml:mtd><mml:mn>0</mml:mn></mml:mtd><mml:mtd><mml:mn>1</mml:mn></mml:mtd><mml:mtd><mml:mn>0</mml:mn></mml:mtd><mml:mtd><mml:mn>0</mml:mn></mml:mtd><mml:mtd><mml:mn>1</mml:mn></mml:mtd><mml:mtd><mml:mn>0</mml:mn></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mn>0</mml:mn></mml:mtd><mml:mtd><mml:mn>0</mml:mn></mml:mtd><mml:mtd><mml:mn>1</mml:mn></mml:mtd><mml:mtd><mml:mn>0</mml:mn></mml:mtd><mml:mtd><mml:mn>0</mml:mn></mml:mtd><mml:mtd><mml:mn>0</mml:mn></mml:mtd><mml:mtd><mml:mn>1</mml:mn></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mn>0</mml:mn></mml:mtd><mml:mtd><mml:mn>1</mml:mn></mml:mtd><mml:mtd><mml:mn>1</mml:mn></mml:mtd><mml:mtd><mml:mn>1</mml:mn></mml:mtd><mml:mtd><mml:mn>0</mml:mn></mml:mtd><mml:mtd><mml:mn>0</mml:mn></mml:mtd><mml:mtd><mml:mn>1</mml:mn></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mn>0</mml:mn></mml:mtd><mml:mtd><mml:mn>1</mml:mn></mml:mtd><mml:mtd><mml:mn>0</mml:mn></mml:mtd><mml:mtd><mml:mn>0</mml:mn></mml:mtd><mml:mtd><mml:mn>1</mml:mn></mml:mtd><mml:mtd><mml:mn>1</mml:mn></mml:mtd><mml:mtd><mml:mn>1</mml:mn></mml:mtd></mml:mtr></mml:mtable></mml:mfenced></mml:math>
	</disp-formula>
</disp-formula-group>
<fig id="f004" orientation="portrait" position="float">
	<label>그림 4.</label>
	<caption>
		<title><italic>GF</italic>(2<sup>7</sup>) 상의 비트직렬/디지트병렬 정규기저 곱셈기의 게이트 레벨 회로</title>
		<p>Figure 4. Gate-level circuit of bit-serial/digit-parallel normal basis multiplier in <italic>GF</italic>(2<sup>7</sup>)</p>
	</caption>
	<graphic xlink:href="../ingestImageView?artiId=ART002459576&amp;imageName=jkits_2019_14_02_203_f004.jpg" position="float" orientation="portrait" xlink:type="simple"></graphic>
</fig>
<p>여기에서는 식 (<xref ref-type="disp-formula" rid="dm22">22</xref>)와 같은 유한체 <italic>GF</italic>(2<sup>7</sup>)의 타입 4 가우시안 정규기저(Gaussian Normal Basis) 상의 곱셈 행렬(multiplication matrix)을 사용하였다<xref ref-type="bibr" rid="B010">[10]</xref>.</p>
<p>식 (<xref ref-type="disp-formula" rid="dm21">21</xref>)을 이용하면 &#x003C;<xref ref-type="fig" rid="f004">그림 4</xref>&#x003E;와 같이 <italic>GF</italic>(2<sup>7</sup>) 상의 비트직렬/디지트병렬 정규기저 곱셈기를 게이트 레벨로 설계할 수 있다. &#x003C;<xref ref-type="fig" rid="f004">그림 4</xref>&#x003E;의 곱셈기는 <italic>w</italic>=3 클럭만에 곱셈의 결과를 얻을 수 있다. &#x003C;<xref ref-type="fig" rid="f004">그림 4</xref>&#x003E;와 같이 설계된 곱셈기는 C 언어로 시뮬레이션 하여 그 동작을 검증하였다.</p>
</sec>
<sec id="sec004" sec-type="Conclusions">
<title>4. 결 론</title>
<p>본 논문에서는 유한체 <italic>GF</italic>(2<sup>m</sup>)의 곱셈에서 정규기저를 이용하여 곱하는 임의의 한 원소를 <italic>w </italic>비트씩 묶은 다음, 각각의 항들을 비트직렬 곱셈기를 사용하여 동시에 병렬로 처리하는 방식을 사용함으로써, <italic>w</italic> (1 ≤ <italic>w</italic> ≤ <italic>m</italic>) 클럭만에 곱셈의 결과를 얻을 수 있는 새로운 비트직렬/디지트병렬 정규기저 곱셈기를 설계하였다.</p>
<p>설계된 곱셈기는 비트병렬 곱셈기의 복잡한 회로와 비트직렬 곱셈기의 긴 지연시간을 설계자가 적절하게 절충함으로써, 비트병렬 곱셈기보다는 적은 하드웨어로 구현할 수 있으며 비트직렬 곱셈기보다는 짧은 지연시간에 결과를 얻을 수 있는 장점을 가지고 있다.</p>
</sec>
</body>
<back>
<ref-list>
<title>References</title>
<!-- [1] M. Y. Rhee, Error-correcting coding theory, Mcgraw-Hill, 1989.-->
<ref id="B001">
<label>[1]</label>
<element-citation publication-type="book">
<person-group>
<name><surname>Rhee</surname><given-names>M. Y.</given-names></name>
</person-group>
<year>1989</year>
<source>Error-correcting coding theory</source>
<publisher-name>Mcgraw-Hill</publisher-name>
</element-citation>
</ref>
<!-- [2] D. Hankerson, A. Menezes, and S. Vanstone, Guide to elliptic curve cryptography, Springer-Verlag, 2004.-->
<ref id="B002">
<label>[2]</label>
<element-citation publication-type="book">
<person-group>
<name><surname>Hankerson</surname><given-names>D.</given-names></name>
<name><surname>Menezes</surname><given-names>A.</given-names></name>
<name><surname>Vanstone</surname><given-names>S.</given-names></name>
</person-group>
<year>2004</year>
<source>Guide to elliptic curve cryptography</source>
<publisher-name>Springer-Verlag</publisher-name>
</element-citation>
</ref>
<!-- [3] S. Lin, and D. Costello, Error control coding: Fundamentals and applications, Pearson, Prentice-Hall, 2nd ed., 2004.-->
<ref id="B003">
<label>[3]</label>
<element-citation publication-type="book">
<person-group>
<name><surname>Lin</surname><given-names>S.</given-names></name>
<name><surname>Costello</surname><given-names>D.</given-names></name>
</person-group>
<year>2004</year>
<source>Error control coding: Fundamentals and applications</source>
<publisher-name>Pearson, Prentice-Hall</publisher-name>
<comment>2nd ed.</comment>
</element-citation>
</ref>
<!-- [4] R. Lidl, and H. Niederreiter, Introduction to finite fields and their applications, Cambridge University Press, 1994.-->
<ref id="B004">
<label>[4]</label>
<element-citation publication-type="book">
<person-group>
<name><surname>Lidl</surname><given-names>R.</given-names></name>
<name><surname>Niederreiter</surname><given-names>H.</given-names></name>
</person-group>
<year>1994</year>
<source>Introduction to finite fields and their applications</source>
<publisher-name>Cambridge University Press</publisher-name>
</element-citation>
</ref>
<!-- [5] A. J. Menezes, I E Blake, X. Gao, R. C. Mullin, S. A. Vanstone, and T. Yaghoobian, Applications of finite fields, The Springer International Series in Engineering and Computer Science, New York, NY, 1993.-->
<ref id="B005">
<label>[5]</label>
<element-citation publication-type="book">
<person-group>
<name><surname>Menezes</surname><given-names>A. J.</given-names></name>
<name><surname>Blake</surname><given-names>I. E.</given-names></name>
<name><surname>Gao</surname><given-names>X.</given-names></name>
<name><surname>Mullin</surname><given-names>R. C.</given-names></name>
<name><surname>Vanstone</surname><given-names>S. A.</given-names></name>
<name><surname>Yaghoobian</surname><given-names>T.</given-names></name>
</person-group>
<year>1993</year>
<article-title></article-title>
<source>Applications of finite fields</source>
<comment>The Springer International Series in Engineering and Computer Science</comment>
<publisher-loc>New York, NY</publisher-loc>
<pub-id pub-id-type="doi">10.1007/978-1-4757-2226-0</pub-id>
</element-citation>
</ref>
<!-- [6] E. R. Berlekamp, Bit-serial Reed-Solomon encoders, IEEE Transactions on Information Theory, Vol. 28, No. 6, pp. 869-874, 1982.-->
<ref id="B006">
<label>[6]</label>
<element-citation publication-type="journal">
<person-group>
<name><surname>Berlekamp</surname><given-names>E. R.</given-names></name>
</person-group>
<year>1982</year>
<article-title>Bit-serial Reed-Solomon encoders</article-title>
<source>IEEE Transactions on Information Theory</source>
<volume>28</volume><issue>6</issue>
<fpage>869</fpage><lpage>874</lpage>
<pub-id pub-id-type="doi">10.1109/tit.1982.1056591</pub-id>
</element-citation>
</ref>
<!-- [7] J. K. Omura, and J. L. Massey, Computational method and apparatus for finite field arithmetic, U.S. Patent #4, 587, 627, 1986.-->
<ref id="B007">
<label>[7]</label>
<element-citation publication-type="other">
<person-group>
<name><surname>Omura</surname><given-names>J. K.</given-names></name>
<name><surname>Massey</surname><given-names>J. L.</given-names></name>
</person-group>
<year>1986</year>
<source>Computational method and apparatus for finite field arithmetic, U.S. Patent #4, 587, 627</source>
</element-citation>
</ref>
<!-- [8] R. C. Mullin, I. M. Onyszchuk, S. A. Vanstone, and R. M. Wilson, Optimal normal bases in GF(p<sup>n</sup>), Discrete Applied Mathematics, Vol. 22, pp. 149-161, 1988/ 1989.-->
<ref id="B008">
<label>[8]</label>
<element-citation publication-type="journal">
<person-group>
<name><surname>Mullin</surname><given-names>R. C.</given-names></name>
<name><surname>Onyszchuk</surname><given-names>I. M.</given-names></name>
<name><surname>Vanstone</surname><given-names>S. A.</given-names></name>
<name><surname>Wilson</surname><given-names>R. M.</given-names></name>
</person-group>
<year>1988/ 1989</year>
<article-title>Optimal normal bases in GF(p<sup>n</sup>)</article-title>
<source>Discrete Applied Mathematics</source>
<volume>22</volume>
<fpage>149</fpage><lpage>161</lpage>
<pub-id pub-id-type="doi">10.1016/0166-218x(88)90090-x</pub-id>
</element-citation>
</ref>
<!-- [9] A. Reyhani-Masoleh and M. A. Hasan, Efficient multiplication beyond optimal normal bases, IEEE Transactions on Computers, Vol. 52, No. 4, pp. 428-439, 2003.-->
<ref id="B009">
<label>[9]</label>
<element-citation publication-type="journal">
<person-group>
<name><surname>Reyhani-Masoleh</surname><given-names>A.</given-names></name>
<name><surname>Hasan</surname><given-names>M. A.</given-names></name>
</person-group>
<year>2003</year>
<article-title>Efficient multiplication beyond optimal normal bases</article-title>
<source>IEEE Transactions on Computers</source>
<volume>52</volume><issue>4</issue>
<fpage>428</fpage><lpage>439</lpage>
<pub-id pub-id-type="doi">10.1109/tc.2003.1190584</pub-id>
</element-citation>
</ref>
<!-- [10] National institute of standards and technology, digital signature standard, FIPS Publications 186-2, 2000.-->
<ref id="B010">
<label>[10]</label>
<element-citation publication-type="book">
<year>2000</year>
<source>National institute of standards and technology, digital signature standard</source>
<comment>FIPS Publications 186-2</comment>
</element-citation>
</ref>
<!-- [11] IEEE Std 1363-2000. IEEE Standard specifications for public-key cryptography, 2000.-->
<ref id="B011">
<label>[11]</label>
<element-citation publication-type="other">
<year>2000</year>
<source>IEEE Std 1363-2000. IEEE Standard specifications for public-key cryptography</source>
</element-citation>
</ref>
<!-- [12] Q. Shao, Z. Hu, S. N. Basha, Z. Zhang, Z. Wu, C. Y. Lee, and J. Xie, Low complexity implementation of unified systolic multipliers for NIST pentanomials and trinomials over GF(2<sup>m</sup>), IEEE Transactions on Circuits and Systems-I: Regular Papers, Vol. 65, No. 8, pp. 2455-2465, 2018-->
<ref id="B012">
<label>[12]</label>
<element-citation publication-type="journal">
<person-group>
<name><surname>Shao</surname><given-names>Q.</given-names></name>
<name><surname>Hu</surname><given-names>Z.</given-names></name>
<name><surname>Basha</surname><given-names>S. N.</given-names></name>
<name><surname>Zhang</surname><given-names>Z.</given-names></name>
<name><surname>Wu</surname><given-names>Z.</given-names></name>
<name><surname>Lee</surname><given-names>C. Y.</given-names></name>
<name><surname>Xie</surname><given-names>J.</given-names></name>
</person-group>
<year>2018</year>
<article-title>Low complexity implementation of unified systolic multipliers for NIST pentanomials and trinomials over GF(2<sup>m</sup>)</article-title>
<source>IEEE Transactions on Circuits and Systems-I: Regular Papers</source>
<volume>65</volume><issue>8</issue>
<fpage>2455</fpage><lpage>2465</lpage>
<pub-id pub-id-type="doi">10.1109/tcsi.2018.2795380</pub-id>
</element-citation>
</ref>
<!-- [13] P. H. Namin, C. Roma, R. Muscedere, and M. Ahmadi, Efficient VLSI implementation of a sequential finite field multiplier using reordered normal basis in domino logic, IEEE Transactions on Very Large Scale Integration (VLSI) Systems, Vol. 26, No. 11, pp. 2542-2552, 2018.-->
<ref id="B013">
<label>[13]</label>
<element-citation publication-type="journal">
<person-group>
<name><surname>Namin</surname><given-names>P. H.</given-names></name>
<name><surname>Roma</surname><given-names>C.</given-names></name>
<name><surname>Muscedere</surname><given-names>R.</given-names></name>
<name><surname>Ahmadi</surname><given-names>M.</given-names></name>
</person-group>
<year>2018</year>
<article-title>Efficient VLSI implementation of a sequential finite field multiplier using reordered normal basis in domino logic</article-title>
<source>IEEE Transactions on Very Large Scale Integration (VLSI) Systems</source>
<volume>26</volume><issue>11</issue>
<fpage>2542</fpage><lpage>2552</lpage>
<pub-id pub-id-type="doi">10.1109/tvlsi.2018.2851958</pub-id>
</element-citation>
</ref>
<!-- [14] C. C. Wang, T. K. Truong, H. M. Shao, L. J. Deutsch, J. K. Omura, and I. S. Reed, VLSI architectures for computing multiplications and inverses in GF(2<sup>m</sup>), IEEE Transactions on Computers, Vol. 34, No. 8, pp. 709-716, 1985.-->
<ref id="B014">
<label>[14]</label>
<element-citation publication-type="journal">
<person-group>
<name><surname>Wang</surname><given-names>C. C.</given-names></name>
<name><surname>Truong</surname><given-names>T. K.</given-names></name>
<name><surname>Shao</surname><given-names>H. M.</given-names></name>
<name><surname>Deutsch</surname><given-names>L. J.</given-names></name>
<name><surname>Omura</surname><given-names>J. K.</given-names></name>
<name><surname>Reed</surname><given-names>I. S.</given-names></name>
</person-group>
<year>1985</year>
<article-title>VLSI architectures for computing multiplications and inverses in GF(2<sup>m</sup>)</article-title>
<source>IEEE Transactions on Computers</source>
<volume>34</volume><issue>8</issue>
<fpage>709</fpage><lpage>716</lpage>
<pub-id pub-id-type="doi">10.1109/tc.1985.1676616</pub-id>
</element-citation>
</ref>
<!-- [15] A. Reyhani-Masoleh, and M. A. Hasan, A new construction of massey-omura parallel multiplier over GF(2<sup>m</sup>), IEEE Transactions on Computers, Vol. 51, No. 5, pp. 511-520, 2002.-->
<ref id="B015">
<label>[15]</label>
<element-citation publication-type="journal">
<person-group>
<name><surname>Reyhani-Masoleh</surname><given-names>A.</given-names></name>
<name><surname>Hasan</surname><given-names>M. A.</given-names></name>
</person-group>
<year>2002</year>
<article-title>A new construction of massey-omura parallel multiplier over GF(2<sup>m</sup>)</article-title>
<source>IEEE Transactions on Computers</source>
<volume>51</volume><issue>5</issue>
<fpage>511</fpage><lpage>520</lpage>
<pub-id pub-id-type="doi">10.1109/tc.2002.1004590</pub-id>
</element-citation>
</ref>
<!-- [16] B. Sunar and C .K. Koc, An efficient optimal normal basis type II multiplier, IEEE Transactions on Computers, Vol. 50, No. 1, pp. 83-88, 2001.-->
<ref id="B016">
<label>[16]</label>
<element-citation publication-type="journal">
<person-group>
<name><surname>Sunar</surname><given-names>B.</given-names></name>
<name><surname>Koc</surname><given-names>C .K.</given-names></name>
</person-group>
<year>2001</year>
<article-title>An efficient optimal normal basis type II multiplier</article-title>
<source>IEEE Transactions on Computers</source>
<volume>50</volume><issue>1</issue>
<fpage>83</fpage><lpage>88</lpage>
<pub-id pub-id-type="doi">10.1109/12.902754</pub-id>
</element-citation>
</ref>
<!-- [17] T. Beth, and D. Gollman, Algorithm engineering For public key algorithms, IEEE J. Selected Areas in Communications, Vol. 7, No. 4, pp. 458-466, 1989.-->
<ref id="B017">
<label>[17]</label>
<element-citation publication-type="journal">
<person-group>
<name><surname>Beth</surname><given-names>T.</given-names></name>
<name><surname>Gollman</surname><given-names>D.</given-names></name>
</person-group>
<year>1989</year>
<article-title>Algorithm engineering For public key algorithms</article-title>
<source>IEEE J. Selected Areas in Communications</source>
<volume>7</volume><issue>4</issue>
<fpage>458</fpage><lpage>466</lpage>
<pub-id pub-id-type="doi">10.1109/49.17708</pub-id>
</element-citation>
</ref>
<!-- [18] M. Feng, A VLSI architecture for fast inversion in GF(2<sup>m</sup>), IEEE Transactions on Computers, Vol. 38, No. 10, pp. 1383-1386, 1989.-->
<ref id="B018">
<label>[18]</label>
<element-citation publication-type="journal">
<person-group>
<name><surname>Feng</surname><given-names>M.</given-names></name>
</person-group>
<year>1989</year>
<article-title>A VLSI architecture for fast inversion in GF(2<sup>m</sup>)</article-title>
<source>IEEE Transactions on Computers</source>
<volume>38</volume><issue>10</issue>
<fpage>1383</fpage><lpage>1386</lpage>
<pub-id pub-id-type="doi">10.1109/12.35833</pub-id>
</element-citation>
</ref>
</ref-list>
<bio>
<p><graphic xlink:href="../ingestImageView?artiId=ART002459576&amp;imageName=jkits_2019_14_02_203_f005.jpg"></graphic><bold>Yong-Suk Cho</bold> received the B.S., M.S., and Ph.D. degree in the Department of Electronic Communication Engineering from Hanyang University in 1986, 1988 and 1998, respectively. From 1989 to 1996, he was a researcher at Korea Telecom. He has been a professor in the Department of IT &#x0026; Securities at U1 University since 1996. His current research interests include finite field arithmetic, cryptography, and error-control coding.</p>
<p><italic>E-mail address</italic>: <email>yscho@u1.ac.kr</email></p>
<p><graphic xlink:href="../ingestImageView?artiId=ART002459576&amp;imageName=jkits_2019_14_02_203_f006.jpg"></graphic><bold>Yong-Dal Shin</bold> received Ph.D. degree from Kyungpook national university, Daegu Korea, 1994. He has been a professor in the Department of IT &#x0026; Securities at U1 University since 1996. He research areas include multimedia security, digital watermarking, digital forensics.</p>
<p><italic>E-mail address</italic>: <email>ydshin@u1.ac.kr</email></p>
</bio>
</back>
</article>
