KR100206184B1 - Finite field polynomial dividing operation apparatus using euclidean algorithm - Google Patents

Finite field polynomial dividing operation apparatus using euclidean algorithm Download PDF

Info

Publication number
KR100206184B1
KR100206184B1 KR1019960043726A KR19960043726A KR100206184B1 KR 100206184 B1 KR100206184 B1 KR 100206184B1 KR 1019960043726 A KR1019960043726 A KR 1019960043726A KR 19960043726 A KR19960043726 A KR 19960043726A KR 100206184 B1 KR100206184 B1 KR 100206184B1
Authority
KR
South Korea
Prior art keywords
finite field
division
unit
field polynomial
register
Prior art date
Application number
KR1019960043726A
Other languages
Korean (ko)
Other versions
KR19980025559A (en
Inventor
이현오
Original Assignee
윤종용
삼성전자주식회사
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 윤종용, 삼성전자주식회사 filed Critical 윤종용
Priority to KR1019960043726A priority Critical patent/KR100206184B1/en
Publication of KR19980025559A publication Critical patent/KR19980025559A/en
Application granted granted Critical
Publication of KR100206184B1 publication Critical patent/KR100206184B1/en

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/60Methods or arrangements for performing computations using a digital non-denominational number representation, i.e. number representation without radix; Computing devices using combinations of denominational and non-denominational quantity representations, e.g. using difunction pulse trains, STEELE computers, phase computers
    • G06F7/72Methods or arrangements for performing computations using a digital non-denominational number representation, i.e. number representation without radix; Computing devices using combinations of denominational and non-denominational quantity representations, e.g. using difunction pulse trains, STEELE computers, phase computers using residue arithmetic
    • G06F7/724Finite field arithmetic
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
    • G06F7/52Multiplying; Dividing
    • G06F7/535Dividing only

Landscapes

  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Engineering & Computer Science (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Mathematical Physics (AREA)
  • Error Detection And Correction (AREA)

Abstract

본 발명은 유한 필드 나누기(finite field division)를 위한 유한 필드 다항식 나누기 연산 장치에 관한 것으로서, 구체적으로는 유클리디안 알고리즘을 이용한 유한 필드 다항식 나누기 연산 장치에 관한 것이다. 발명은 유한 필드 다항식 나누기 연산부(10)와 EOB 체크부(20)와 EOS 체크부(30)를 포함하여 구성되며, 상기 유한 필드 다항식 나누기 연산부(10)에 구비된 EOR 연산부(16)에 의하여 EOR 연산이 반복적으로 수행되므로서 유클리디안 알고리즘에 따른 유한 필드 다항식의 나누기 연산이 이루어진다.The present invention relates to a finite field polynomial division apparatus for finite field division, and more particularly, to a finite field polynomial division apparatus using an Euclidian algorithm. The EOR calculating unit 10 includes a finite field polynomial divide operation unit 10, an EOB check unit 20 and an EOS check unit 30. The EOR operation unit 16 includes an EOR operation unit 16, Since the computation is iteratively performed, finite field polynomial division operations are performed according to the Euclidean algorithm.

Description

유클리디안 알고리즘을 이용한 유한 필드 다항식 나누기 연산 장치 및 방법An apparatus and method for finite field polynomial division using Euclidean algorithm

본 발명은 유한 필드 나누기(finite field division)를 위한 유한 필드 다항식 나누기 연산 장치 및 방법에 관한 것으로서, 구체적으로는 유클리디안 알고리즘을 이용한 유한 필드 다항식 나누기 장치 및 방법에 관한 것이다.The present invention relates to a finite field polynomial division apparatus and method for finite field division, and more particularly, to a finite field polynomial division apparatus and method using a Euclidian algorithm.

종래의 RS 디코더(Reed-Solomon decoder)등에서 수행되는 유한 필드 다항식 나누기를 위한 유한 필드 다항식 나누기 연산 장치는 멀티플렉서(multiplexer)를 사용하거나, 메모리를 이용하여 참조표(look-up table)를 만들어 사용하거나 또는 복잡한 구조의 회로를 만들어서 연산을 수행하였다. 그러나 이러한 종래의 방법에는 다음과 같은 문제점이 있어 왔다.A finite field polynomial division unit for finite field polynomial division performed in a conventional RS decoder (Reed-Solomon decoder) or the like uses a multiplexer or a lookup table using a memory Or by making circuits with complex structures. However, such conventional methods have suffered from the following problems.

먼저, 복잡한 연산 구조와 이를 구현하기 위해 메모리를 사용함으로 회로의 크기가 커지고, 메모리를 자주 엑세스하여야 하므로 엑세스 시간이 많이 소요되는 문제점이 있었다.First, there is a problem in that a complicated arithmetic structure and a memory are used to implement it, which increases the size of the circuit and accesses the memory frequently.

그리고 상기한바와 같이 복잡한 회로를 꾸미게 되면 여기서 발생하는 크기와, 연산의 수행에 소요되는 시간, 각 구성 부분에 해당되는 동기 신호를 인가하기 위한 부가적인 회로가 추가되어야 하는 등의 문제점이 있었다. 그리고 메모리를 사용하므로 소비 전력이 증가되는 문제점도 있어 왔다.In addition, when the complex circuit is designed as described above, there is a problem that the size generated here, the time required for performing the operation, and additional circuit for applying the synchronous signal corresponding to each component have to be added. There is also a problem in that power consumption is increased because memory is used.

본 발명의 목적은 상술한 문제점을 해결하기 위해 제안된 것으로서, 유클리디안 알고리즘을 이용하여 유한 필드 다항식 나누기 연산 구조를 간략화 함으로 최소한의 레지스터를 사용 할 수 있는 유한 필드 다항식 나누기 연산 장치 및 방법을 제공하는데 있다.An object of the present invention is to provide a finite field polynomial division operation apparatus and method capable of using a minimum number of registers by simplifying a finite field polynomial division operation structure using an Euclidean algorithm .

도 1은 본 발명의 실시예에 따른 유한 필드 다항식 나누기 연산 장치의 블록도,1 is a block diagram of a finite field polynomial divide computing apparatus according to an embodiment of the present invention;

도 2는 도 1에 도시된 유한 필드 다항식 나누기 연산부의 상세 회로도,FIG. 2 is a detailed circuit diagram of the finite field polynomial division operation unit shown in FIG. 1,

도 3은 본 발명의 실시예에 따른 유한 필드 다항식 나누기 연산 방법의 흐름도.3 is a flowchart of a finite field polynomial division operation method according to an embodiment of the present invention.

*도면의 주요 부분에 대한 부호의 설명*Description of the Related Art [0002]

10 : 유한 필드 다항식 나누기 연산부12 : 제1 레지스터10: finite field polynomial division operation unit 12: first register

14 : 제2 레지스터16 : EOR 연산부14: second register 16: EOR operation unit

20 : EOB 체크부30 : EOS 체크부20: EOB check unit 30: EOS check unit

상술한 목적을 달성하기 위한 본 발명의 일 특징에 의하면, 유클리디안 알고리즘을 이용한 유한 필드 다항식 나누기 연산 장치는 : 유한 필드 다항식 나누기 연산을 하기 위한 각각의 다항식 데이터를 입력받고, EOR 연산에 의해 유한 필드 다항식 나누기 연산을 수행하여 그 결과를 출력하는 유한 필드 다항식 나누기 연산부와; 상기 다항식 데이터의 각 비트를 체크하여 그 결과를 상기 유한 필드 다항식 나누기 연산부로 제공하는 EOB 체크부와; 상기 유한 필드 다항식 나누기 연산부에 의해 수행되는 나누기 연산이 완료되었는가를 체크하여 그 결과를 상기 유한 필드 다항식 나누기 연산부로 제공하는 EOS 체크부를 포함한다.According to an aspect of the present invention, there is provided an apparatus for computing a finite field polynomial division operation using an Euclidean algorithm, comprising: a polynomial processing unit for receiving each polynomial data for performing a finite field polynomial division operation, A finite field polynomial division operation unit for performing a field polynomial division operation and outputting the result; An EOB checking unit checking each bit of the polynomial data and providing the result to the finite field polynomial division unit; And an EOS check unit for checking whether the division operation performed by the finite field polynomial division operation unit is completed and providing the result to the finite field polynomial division operation unit.

이 실시예에 있어서, 상기 유한 필드 다항식 나누기 연산부는, 유한 필드 다항식 나누기 연산에서 피제수에 해당되는 다항식에 대한 데이터를 입력받는 제1 레지스터와; 유한 필드 다항식 나누기 연산에서 제수에 해당되는 다항식에 대한 데이터를 입력받는 제2 레지스터와; 상기 제1 레지스터와 상기 제2 레지스터에 입력된 데이터를 각각의 해당 비트에 대하여 EOR 연산을 수행하고 그 결과를 상기 제1 레지스터에 제 입력하는 EOR 연산부를 포함하고, EOR 연산 수행후 연산이 완료되지 않은 경우 상기 제1, 2 레지스터의 데이터를 교환하여 다시 상기 EOR 연산부에 의해 EOR 연산을 수행한다.In this embodiment, the finite field polynomial division operation unit may include: a first register that receives data on the polynomial corresponding to the dividend in the finite field polynomial division operation; A second register for receiving data for a polynomial corresponding to a divisor in a finite field polynomial division operation; And an EOR operation unit for performing an EOR operation on each bit of the data input to the first register and the second register and for inputting the result to the first register, The data of the first and second registers are exchanged and the EOR operation is performed again by the EOR operation unit.

본 발명의 다른 특징에 의하면, 유클리디안 알고리즘을 이용한 유한 필드 다항식 나누기 연산 장치의 나누기 연산 방법에 있어서 : (1) 유한 필드 다항식 나누기 연산부에 구비된 제1, 2 레지스터에 유한 필드 다항식 나누기 연산을 위한 데이터를 입력받는 단계와; (2) EOR 연산에 의한 나누기 연산을 수행하기 위해 자리 맞춤을 실시하는 단계와; (3) 유클리디안 알고리즘을 이용한 유한 필드 다항식 나누기 연산을 수행하기 위하여 EOR 연산을 수행하는 단계와; (4) 나누기 연산이 완료되었는가 판단하는 단계와; (5) 나누기 연산이 완료되지 않은 경우 상기 제1, 2레지스터의 데이터를 교환하고 상기 단계 (2)로 진행하는 단계와; (6) 계산이 완료된 경우,연산결과를 출력하는 단계를 포함한다.According to another aspect of the present invention, there is provided a division operation method of a finite field polynomial division apparatus using an Euclidean algorithm, comprising: (1) a finite field polynomial division operation; Inputting data for a predetermined time; (2) performing alignment to perform a division operation by an EOR operation; (3) performing an EOR operation to perform a finite field polynomial division operation using an Euclidean algorithm; (4) determining whether the division operation has been completed; (5) if the division operation is not completed, exchanging data of the first and second registers and proceeding to step (2); (6) when the calculation is completed, outputting the calculation result.

실시예Example

이하 본 발명의 실시예를 첨부된 도면에 의거하여 상세히 설명한다.BEST MODE FOR CARRYING OUT THE INVENTION Hereinafter, embodiments of the present invention will be described in detail with reference to the accompanying drawings.

도 1은 본 발명의 실시예에 따른 유한 필드 다항식 나누기 장치의 블록도이고,도 2는 도 1에 도시된 유한 필드 다항식 나누기 연산부의 상세 회로도이다.FIG. 1 is a block diagram of a finite field polynomial division apparatus according to an embodiment of the present invention, and FIG. 2 is a detailed circuit diagram of a finite field polynomial division operator shown in FIG.

도 1을 참조하여, 본 발명의 유한 필드 다항식 나누기 장치는, 크게 유한 필드 다항식 나누기 연산부(10)와, EOB 체크부(20)와, EOS 체크부(30)를 포함하여 구성된다.Referring to FIG. 1, the finite field polynomial division apparatus of the present invention comprises a finite field polynomial division unit 10, an EOB check unit 20, and an EOS check unit 30.

상기 유한 필드 다항식 나누기 연산부(10)는 각각의 다항식 A, B를 입력받아 나누기 연산을 수행하며, 상기 EOB 체크부(20)와 EOS 체크부(30)를 통하여 체크되는 결과를 입력받아 해당되는 연산에 반영하여 나누기 연산을 수행한다.The finite field polynomial division operation unit 10 receives the polynomials A and B and performs a division operation on the polynomials A and B. The finite field polynomial division operation unit 10 receives the result of the check through the EOB check unit 20 and the EOS check unit 30, To perform a division operation.

도 2를 참조하여, 상기 유한 필드 다항식 나누기 연산부(10)는 제1 레지스터(12)와, 제2 레지스터(14)와, EOR 연산부(16)를 포함하여 구성된다. 상기 제1 레지스터(12)는 나누기 연산에서 피제수에 해당되는 다항식 A에 대한 데이터를 입력받게 되고, 상기 제2 레지스터(14)는 나누기 연산에서 제수에 해당되는 다항식 B에 대한 데이터를 입력받게 된다.2, the finite field polynomial division operation unit 10 includes a first register 12, a second register 14, and an EOR operation unit 16. The first register 12 receives data on the polynomial A corresponding to the dividend in the division operation, and the second register 14 receives data on the polynomial B corresponding to the divisor in the division operation.

유한 필드 다항식 나누기는 갈로아 필드 상에서 정해진 계산을 만족하면서도 빠른 시간 내에 연산을 마쳐야 되기 때문에 상기 유한 필드 다항식 나누기 연산부(10)의 구조를 상기와 같이 제1 레지스터(12)와 또 하나의 제2 레지스터(14)로 구성한 것이다. 그리고 실제로 처리되는 단위는 비트 단위이기 때문에, 예를 들어 16개 값의 단위로 입력되는 정보를 처리하여야 하는 경우는 16=24이므로 최소 4비트(bit) 이상의 레지스터를 사용하면 된다.Since finite field polynomial division is required to complete calculations within a short time while satisfying the calculations specified on the Galois field, the structure of the finite field polynomial division operator 10 is divided into the first register 12 and another second register (14). Since the unit to be actually processed is a bit unit, for example, when information to be inputted in units of 16 values is to be processed, 16 = 24, so that a register having a minimum of 4 bits can be used.

그리고 이러한 각각의 비트에 대한 연산은 EOR 연산을 사용하게 되며 이는 상기 EOR 연산부(16)에서 수행된다. 이것을 수식으로 표현하면 다음의 수학1과 같다.The operation for each bit uses the EOR operation, which is performed in the EOR operation unit 16. This can be expressed by the following mathematical formula 1.

[수학식 1][Equation 1]

1 1: 1 = 0, 0 1: 0 = 0, 1 1: 0 = 1, 0 1: 1 = 11 1: 1 = 0, 0 1: 0 = 0, 1 1: 0 = 1, 0 1: 1 = 1

이것은 배타적 논리합(Exclusive-OR) 연산과 같기 때문에 자리 수에 맞추어 이 연산을 수행한다. 이때, 자리 수를 해결하기 위해 최상위 부터 채워서 연산을 수행한다. 그런데 유한 필드 다항식 나누기는 나머지가 '0'이 될 때까지 수행하는 것인데 이것은 간단히 한번의 연산으로 되는 것이 아니고 몇 번의 연산을 수행해야 가능한 것이다. 이 연산의 수행 시에는 해당되는 조건을 맞추어 연산을 수행해야 되기 때문에 상기 제1, 2 레지스터(12, 14)에 들어와 있는 값이 모두 '0'인가를 비교해야 되며, 소정의 카운터를 사용하여 자리 수를 맞춰 주어야 한다.This is the same as Exclusive-OR operation, so this operation is performed according to the number of digits. At this time, to solve the number of digits, the operation is performed by filling from the top. However, finite field polynomial division is performed until the remainder becomes '0', which is not a simple operation but can be performed several times. Since this operation must be performed in accordance with the condition, it is necessary to compare whether all the values in the first and second registers 12 and 14 are '0' The number should be adjusted.

다시, 다항식의 연산은 상당히 복잡한 것이지만 이는 EOR 연산을 통하여 구현할 수 있다. 연산은 최상위 비트(MSB)부터 각각 비트 단위로 이루어지며, 상기 제2 레지스터(14)의 초기 비트수 만큼 연산이 실시된다. 만일 상기 제1 레지스터(12)나 상기 제2 레지스터(14)의 비트가 상위 비트부터 채워져 있는 경우가 아닐 경우에는 그 자리 수를 계산해서 실제 연산을 몇 번 수행해야 하는지를 결정하게 된다.Again, polynomial operations are fairly complex, but they can be implemented through EOR operations. The arithmetic operation is performed in units of bits from the most significant bit (MSB), and the arithmetic operation is performed by the number of initial bits of the second register (14). If the bits of the first register 12 or the second register 14 are not filled from the upper bits, the number of digits is calculated to determine how many times the actual operation should be performed.

그리고 이러한 연산을 수행하기 위해서는 초기 설계 시에 해당되는 시스템에 적합한 비트 수를 갖는 레지스터를 사용하면 된다. 즉, 시스템에 따라 적절한 비트 수의 레지스터를 사용하여 최소의 계산량으로 연산되도록 하여 그 시간을 단축 할 수 있다. 그리고 반복적으로 이뤄지는 계산은 소정의 버퍼를 사용하여 상기 제1 레지스터(12)와 상기 제2 레지스터(14)의 데이터를 교환하여 다시 계산할 량을 잡고 계속해서 연산을 실시한다. 이때, 연산의 결과가 '0'이 되는가를 검사하여 연산을 끝낼 것인가를 결정하게 되며, 계속하여 계산을 해야 할 경우는 상위 비트부터 순차적으로 값을 채워 넣는다.In order to perform such an operation, a register having a bit number suitable for the system in the initial design may be used. That is, it is possible to reduce the time by using a register having an appropriate number of bits in accordance with the system so as to calculate with a minimum calculation amount. In the calculation which is repeatedly performed, the data of the first register 12 and the second register 14 are exchanged using a predetermined buffer, and the calculation is carried out by holding again the amount to be calculated again. At this time, it is determined whether the result of the operation is '0' to end the operation. If the calculation is to be continued, the value is sequentially filled from the upper bit.

도 2에 도시된바와 같이, 실제적인 연산의 실시는 상기 EOR 연산부(16)에 의하여 이루어지는데, EOR 연산 후의 값은 다시 상기 제1 레지스터(12)로 입력된다. 그리고 상기 제1 레지스터(12)의 값을 체크하여 '0'이 아니면 상기 제1, 2 레지스터(12, 14)의 데이터를 교환하여 다시 연산을 실시한다. 이때, 상위 비트부터 차례대로 계산을 실행하고 그 결과 값은 상기 제1 레지스터(12)에 다시 입력된다, 이와 같은 과정을 반복하면서 그 값이 '0'인가를 검사하고, '0'인경우 연산이 종료된다.As shown in FIG. 2, the actual operation is performed by the EOR operation unit 16, and the value after the EOR operation is input to the first register 12 again. If the value of the first register 12 is not '0', the data of the first and second registers 12 and 14 are exchanged and the operation is performed again. At this time, the calculation is performed sequentially from the upper bits and the result value is input again to the first register 12. Repeat this process to check whether the value is '0', and if it is '0' Lt; / RTI >

이때, 상기 제2 레지스터(14)에 있는 값이 초기에 상기 제1, 2 레지스터(12, 14)에 있던 두 다항식의 GCD(최대 공약수)가 된다. 그러므로 실제적으로 두 다항식의 나누기 연산을 수행하는 것은 바로 GCD를 구하는 연산을 실행하는 과정을 수행하는 것이다. 그러므로 이 알고리즘을 사용해서 값을 구해 보면 유한 한정 다항식은 유클리디안 알고리즘을 사용하여 GCD를 구하는 과정을 수행하는 것이다.At this time, the value in the second register 14 becomes the GCD (the greatest common divisor) of the two polynomials in the first and second registers 12 and 14 at the beginning. Therefore, in practice, performing the division operation of two polynomials is a process of executing the operation of obtaining the GCD. Therefore, when the value is obtained by using this algorithm, the finite-limited polynomial is a process of obtaining the GCD using the Euclidean algorithm.

다시, 도 1 내지 도 2를 참조하여, 상기 제1 레지스터(12)와 상기 제2 레지스터(14)에는 해당되는 데이터가 입력되고, 이때 각각의 입력은 상기 EOB 체크부(20)에 의해 검사되어 몇 번의 연산을 실시할 것인가를 계산하여 연산을 실시하게 된다. 해당되는 만큼 EOR 연산을 실시하게 되면 다시 상기 제1 레지스터(12)와 상기 제2 레지스터(14)의 데이터를 교환하고 계속하여 연산을 실시한다.1 and 2, corresponding data is input to the first register 12 and the second register 14. At this time, the respective inputs are checked by the EOB check unit 20 The number of operations to be performed is calculated and the operation is performed. When the EOR operation is performed as much as the corresponding number, the data of the first register 12 and the second register 14 are exchanged again and the operation is continued.

그리고 상기 EOS 체크부(30)는 EOR 연산이 실시된 후 상기 제1 레지스터(12)의 값이 '0'인가를 검사한다. 만일 '0'인 경우는 상기 제2 레지스터(14)의 데이터를 출력하여 연산을 종료한다.The EOS check unit 30 checks whether the value of the first register 12 is '0' after the EOR operation is performed. If it is '0', the data of the second register 14 is outputted and the operation is terminated.

상기와 같이 연산을 실행 할 때 상기 제1, 2 레지스터(12, 14)를 반복하여 사용하는 것은 소정의 카운터를 사용하여 조정하게 된다. 그리고 소정의 버퍼를 사용하여 상기 제1, 2 레지스터(12, 14)의 데이터를 교환하는데 이 때 비워 버린 레지스터는 '0'이므로 EOR 연산에서 값은 변화되지 않는다.The use of the first and second registers (12, 14) repeatedly when executing the calculation as described above is adjusted using a predetermined counter. The data in the first and second registers 12 and 14 are exchanged using a predetermined buffer. In this case, since the empty register is '0', the value is not changed in the EOR operation.

구체적으로 첨부 도면 도 3을 참조하여, 이러한 연산 과정을 상세히 설명한다.This calculation process will be described in detail with reference to FIG. 3 attached hereto.

먼저, 단계 S100에서 상기 제1, 2 레지스터(12, 14)에 연산에 따른 데이터가 입력된다.First, in step S100, data according to the arithmetic operation is input to the first and second registers (12, 14).

단계 S200에서는 상기 제1 레지스터(12)의 최상위 비트(MSB)부터 순차적으로 '1'인가를 판단하고, '0'인 경우는 단계 S210으로 진행하여 상기 제1 레지스터(12)의 데이터를 왼쪽으로 천이(shift)하고 다시 상기 단계 S200으로 진행하여 반복 수행된다. 이 단계를 통하여 '계산을 수행 할 값'이 주어진다.In step S200, it is determined whether the MSB of the first register 12 is '1' in sequence. If the MSB is '0', the process proceeds to step S210 to return the data of the first register 12 to the left Shifts to step S200, and is repeatedly performed. Through this step, a 'value to perform calculation' is given.

한편, 상기 단계 S200에서 '1'인 경우가 판단되면, 단계 S300으로 진행하여 구해진 반복 연산 횟수에 따라 소정의 나누기 연산이 수행된다.If it is determined in step S200 that the value is '1', the process proceeds to step S300 and a predetermined division operation is performed according to the obtained number of iterations.

단계 S400에서는 연산이 완료되었는가 판단한다. 즉, 상기 제1 레지스터(12)에 들어 있는 데이터 값이 '0'인가를 검사한다. '0'이 아닌 경우는 즉 계산이 완료되지 않은 경우는 단계 S500으로 진행하여 상기 제1, 2레지스터(12, 14)의 데이터를 교환하고 상기 단계 S200으로 진행하여 반복 수행된다. 그리고 계산이 완료된 경우는 연산 결과를 출력한다. 즉, 상기 제1 레지스터(12)의 데이터가 '0'인 경우는 상기 제2 레지스터(14)의 데이터를 출력한다.In step S400, it is determined whether the calculation is completed. That is, it is checked whether the data value stored in the first register 12 is '0'. If not, that is, if the calculation is not completed, the process proceeds to step S500 to exchange data in the first and second registers 12 and 14, and proceeds to step S200 to repeat the process. When the calculation is completed, the calculation result is outputted. That is, when the data of the first register 12 is '0', the data of the second register 14 is outputted.

다음은 이상과 같은 다항식의 나누기 연산을 임의의 다항식의 경우를 예를 들어 설명한다.Next, the division operation of the polynomial equation as described above will be described as an example of an arbitrary polynomial equation.

[수학식 2]&Quot; (2) "

예를 들어 위의 수학식2와 같은 다항식의 나누기 연산이 있다면 그 연산은 다음 수학식3과 같이 연산된다.For example, if there is a division operation of a polynomial equation as shown in Equation (2), the operation is calculated as shown in Equation (3).

[수학식 3]&Quot; (3) "

이상과 같은 수학식2의 경우는 연산을 실시하기 전에 먼저 '101'을 한 단 앞으로 천이하고 '1000'과 '101'을 MSB 부터 차례로 EOR 연산하고, 그 결과는 상기 수학식3과 같이 '0010'이 된다. 그런데 한 단 앞으로 천이 하였으므로 실제 결과는 '1'이 된다. 그러므로 GCD는 '1'이 된다.In the case of Equation (2), before performing the operation, '101' is shifted forward by one stage, and '1000' and '101' are sequentially subjected to EOR operation from the MSB. '. However, since we moved forward one step, the actual result is '1'. Therefore, GCD becomes '1'.

[수학식 4]&Quot; (4) "

다른 예를 들어 위의 수학식4와 같은 다항식의 나누기 연산이 있다면 그 연산은 다음 수학식5와 같이 연산된다.For another example, if there is a polynomial division operation as shown in Equation (4), the operation is calculated as shown in Equation (5).

[수학식5]&Quot; (5) "

이상과 같은 수학식4의 경우도 연산을 실시하기 전에 먼저 '100'을 한 단 앞으로 천이하고 '1110'과 '100'을 MSB 부터 차례로 EOR 연산하고, 그 결과는 상기 수학식5와 같이 '0110'이 된다. 그리고 상기 '0110'은 다시 연산이 되면 '010'이 된다. 이때, 남은 상기 '010'은 상기 '100' 으로 더 이상 연산 될 수 없으므로 상호 교환하여 연산을 계속한다. 물론, 이때는 자리 수를 맞추어 연산하므로 결과는 '000'이 되므로 연산이 종료된다.Also in the case of Equation (4), '100' is shifted forward by one step before the calculation, and '1110' and '100' are sequentially EOR computed from the MSB. The result is' 0110 '. The '0110' is '010' when it is operated again. At this time, since the remaining '010' can not be further calculated to '100', the operation is interchanged and continues. Of course, in this case, since the number of digits is calculated, the result is '000', and the operation is ended.

이상과 같은 본 발명에 의하면, 종래와 같이 멀티플렉서나 메모리를 이용한 참조 테이블 등을 사용하지 않고 최소한의 레지스터를 사용하여 직접 연산을 수행하므로 연산 속도가 증가되는 효과가 있다. 또한, 그 특성상 간단한 회로 구조를 가지므로 실시가 용이하고, 최적 화된 회로 크기를 구현 할 수 있는 효과가 있다.According to the present invention as described above, since the direct operation is performed using a minimum register without using a reference table using a multiplexer or a memory, the operation speed is increased. In addition, since it has a simple circuit structure in terms of its characteristics, it is easy to carry out and an optimized circuit size can be realized.

Claims (3)

나누기 연산을 하기 위한 각각의 다항식 데이터를 입력받고, EOR 연산에 의해 나누기 연산을 수행하여 그 결과를 출력하는 유한 필드 다항식 나누기 연산부(10)와;A finite field polynomial division operation unit 10 for receiving each polynomial data for performing a division operation, performing a division operation by an EOR operation, and outputting the result; 상기 다항식 데이터의 각 비트를 체크하여 그 결과를 상기 유한 필드 다항식 나누기 연산부(10)로 제공하는 EOB 체크부(20)와;An EOB check unit 20 for checking each bit of the polynomial data and providing the result to the finite field polynomial division unit 10; 상기 유한 필드 다항식 나누기 연산부(10)에 의해 수행되는 나누기 연산이 완료되었는가를 체크하여 그 결과를 상기 유한 필드 다항식 나누기 연산부(10)로 제공하는 EOS 체크부(30)를 포함하는 유클리디안 알고리즘을 이용한 유한 필드 다항식 나누기 연산 장치The Euclidian algorithm including an EOS check unit 30 for checking whether the division operation performed by the finite field polynomial division unit 10 is completed and providing the result to the finite field polynomial division unit 10 Finite field polynomial division using arithmetic unit 제 1 항에 있어서, 상기 유한 필드 다항식 나누기 연산부(10)는,2. The apparatus of claim 1, wherein the finite field polynomial division operator (10) 나누기 연산에서 피제수에 해당되는 다항식에 대한 데이터를 입력받는 제1 레지스터(12)와;A first register (12) for receiving data on a polynomial corresponding to the dividend in a division operation; 나누기 연산에서 제수에 해당되는 다항식에 대한 데이터를 입력받는 제2 레지스터(14)와;A second register (14) for receiving data for a polynomial corresponding to a divisor in a division operation; 상기 제1 레지스터(12)와 상기 제2 레지스터(14)에 입력된 데이터를 각각의 해당 비트에 대하여 EOR 연산을 수행하고 그 결과를 상기 제1 레지스터(12)에 제 입력하는 EOR 연산부(16)를 포함하고, EOR 연산 수행후 연산이 완료되지 않은 경우 상기 제1, 2 레지스터(12, 14)의 데이터를 교환하여 다시 상기 EOR 연산부(16)에 의해 EOR 연산을 수행하는 유클리디안 알고리즘을 이용한 유한 필드 다항식 나누기 연산 장치An EOR operation unit 16 for performing an EOR operation on each bit of the data input to the first register 12 and the second register 14 and for inputting the result to the first register 12, And a Euclidean algorithm for exchanging data of the first and second registers 12 and 14 and performing an EOR operation by the EOR operation unit 16 when the operation is not completed after the EOR operation is performed Finite field polynomial division unit 유클리디안 알고리즘을 이용한 유한 필드 다항식 나누기 연산 장치의 나누기 연산 방법에 있어서 :A division operation method of a finite field polynomial division operator using an Euclidean algorithm, comprising: (1) 유한 필드 다항식 나누기 연산부(10)에 구비된 제1, 2 레지스터(12, 14)에 나누기 연산을 위한 데이터를 입력받는 단계(S100)와;(1) a step (S100) of receiving data for a division operation in the first and second registers 12 and 14 provided in the finite field polynomial division unit 10; (2) EOR 연산에 의한 나누기 연산을 수행하기 위해 자리 맞춤을 실시하는 단계(S200, S210)와;(2) performing alignment (S200, S210) to perform a division operation by an EOR operation; (3) 유클리디안 알고리즘을 이용한 유한 필드 다항식 나누기 연산을 수행하기 위하여 EOR 연산을 수행하는 단계(S300)와;(3) performing an EOR operation to perform a finite field polynomial division operation using an Euclidean algorithm (S300); (4) 나누기 연산이 완료되었는가 판단하는 단계(S400)와;(4) determining whether the division operation has been completed (S400); (5) 나누기 연산이 완료되지 않은 경우 상기 제1, 2레지스터(12, 14)의 데이터를 교환하고 상기 단계 (2)로 진행하는 단계(S500)와;(5) exchanging data of the first and second registers (12, 14) and proceeding to the step (2) when the division operation is not completed (S500); (6) 계산이 완료된 경우,연산결과를 출력하는 단계(S600)를 포함하는 것을 특징으로 하는 유클리디안 알고리즘을 이용한 유한 필드 다항식 나누기 연산 방법(6) a step (S600) of outputting an operation result when the calculation is completed, and a finite field polynomial division operation method using an Euclidean algorithm
KR1019960043726A 1996-10-02 1996-10-02 Finite field polynomial dividing operation apparatus using euclidean algorithm KR100206184B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1019960043726A KR100206184B1 (en) 1996-10-02 1996-10-02 Finite field polynomial dividing operation apparatus using euclidean algorithm

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1019960043726A KR100206184B1 (en) 1996-10-02 1996-10-02 Finite field polynomial dividing operation apparatus using euclidean algorithm

Publications (2)

Publication Number Publication Date
KR19980025559A KR19980025559A (en) 1998-07-15
KR100206184B1 true KR100206184B1 (en) 1999-07-01

Family

ID=19476100

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019960043726A KR100206184B1 (en) 1996-10-02 1996-10-02 Finite field polynomial dividing operation apparatus using euclidean algorithm

Country Status (1)

Country Link
KR (1) KR100206184B1 (en)

Also Published As

Publication number Publication date
KR19980025559A (en) 1998-07-15

Similar Documents

Publication Publication Date Title
US7277540B1 (en) Arithmetic method and apparatus and crypto processing apparatus for performing multiple types of cryptography
EP0801345B1 (en) Circuit for modulo multiplication and exponentiation arithmetic
US6049815A (en) Method and apparatus for finite field multiplication
EP1421472B1 (en) A method and apparatus for carrying out efficiently arithmetic computations in hardware
JP4955182B2 (en) Integer calculation field range extension
US5764554A (en) Method for the implementation of modular reduction according to the Montgomery method
US7171604B2 (en) Method and apparatus for calculating cyclic redundancy check (CRC) on data using a programmable CRC engine
JPS6347874A (en) Arithmetic unit
US8532286B2 (en) System and method for reducing the computation and storage requirements for a montgomery-style reduction
EP0416308A2 (en) Rectangular array signed digit multiplier
JPH05204611A (en) Method and device for executing pre-scale type division
JP4660066B2 (en) Device for modular multiplication
US7809784B2 (en) Apparatus and method for calculation of divisions and square roots
US20010054053A1 (en) Method and apparatus for finite field multiplication
US6769006B2 (en) Method and apparatus for calculating a reciprocal
US6963644B1 (en) Multi-word arithmetic device for faster computation of cryptosystem calculations
KR100206184B1 (en) Finite field polynomial dividing operation apparatus using euclidean algorithm
JPH10112660A (en) Error decoding method and device utilizing reed solomon code
JP2001034167A (en) Arithmetic unit and cryptogram processor
JP2006508464A (en) Multiplier with lookup table
US7016927B2 (en) Method and apparatus for modular multiplication
EP1504338B1 (en) "emod" a fast modulus calculation for computer systems
US5999953A (en) Method for the production of a parameter Jo associated with the implementation of a modular operation according to the Montgomery method
KR100196426B1 (en) Divider circuit and method of driving the same
US6470369B1 (en) Euclid mutual division arithmetic circuit and processing circuit

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20070327

Year of fee payment: 9

LAPS Lapse due to unpaid annual fee