KR100206184B1 - Finite field polynomial dividing operation apparatus using euclidean algorithm - Google Patents
Finite field polynomial dividing operation apparatus using euclidean algorithm Download PDFInfo
- 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
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/60—Methods 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/72—Methods 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/724—Finite field arithmetic
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/38—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
- G06F7/48—Methods 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/52—Multiplying; Dividing
- G06F7/535—Dividing 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
본 발명은 유한 필드 나누기(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)
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) |
-
1996
- 1996-10-02 KR KR1019960043726A patent/KR100206184B1/en not_active IP Right Cessation
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 |