KR20050065128A - Finite field polynomial multiplier and method thereof - Google Patents

Finite field polynomial multiplier and method thereof Download PDF

Info

Publication number
KR20050065128A
KR20050065128A KR1020030096895A KR20030096895A KR20050065128A KR 20050065128 A KR20050065128 A KR 20050065128A KR 1020030096895 A KR1020030096895 A KR 1020030096895A KR 20030096895 A KR20030096895 A KR 20030096895A KR 20050065128 A KR20050065128 A KR 20050065128A
Authority
KR
South Korea
Prior art keywords
register
polynomial
value
counter
stored
Prior art date
Application number
KR1020030096895A
Other languages
Korean (ko)
Other versions
KR100564764B1 (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 KR1020030096895A priority Critical patent/KR100564764B1/en
Publication of KR20050065128A publication Critical patent/KR20050065128A/en
Application granted granted Critical
Publication of KR100564764B1 publication Critical patent/KR100564764B1/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
    • G06F7/725Finite field arithmetic over elliptic curves

Abstract

본 발명은 유한체 다항식 곱셈 장치 및 그 방법에 관한 것으로 특히, 타원 곡선 암호(Ellitpic Curve Cryptography)를 위한 고속의 유한체 다항식 곱셈 장치 및 그 방법에 관한 것이다.The present invention relates to a finite field polynomial multiplication apparatus and a method thereof, and more particularly, to a fast finite field polynomial multiplication apparatus and method for ellitpic curve cryptography.

본 발명이 제공하는 유한체 다항식 곱셈 장치는 승수 다항식을 저장하는 제1 레지스터; 상기 곱셈 연산 과정 중의 중간 계산값과 곱셈 결과를 저장하는 제2 레지스터; 상기 제2 레지스터의 저장값과 피승수 다항식과의 배타적 논리합을 연산하는 제1 배타적 논리합 연산부; 상기 제2 레지스터의 저장값 그리고/또는 상기 제1 배타적 논리합 연산부의 결과값에 대하여 좌측 쉬프트를 수행하는 쉬프트 연산부; 상기 쉬프트 연산부의 결과값과 기약 다항식 f에 대한 배타적 논리합을 연산하는 제2 배타적 논리합 연산부; 상기 제1 레지스터의 저장값 중 특정 한 비트를 선택하는 제1 다중화기; 상기 제2 레지스터의 입력을 선택하는 제2 다중화기; 상기 쉬프트 연산부의 입력을 선택하는 제3 다중화기; 및 상기 승수 다항식의 차수를 구하는 차수 검색부를 포함하여 본 발명의 목적 및 기술적 과제를 달성한다.The finite polynomial multiplication apparatus provided by the present invention includes a first register for storing a multiplier polynomial; A second register configured to store an intermediate calculation value and a multiplication result during the multiplication operation; A first exclusive OR calculation unit configured to calculate an exclusive OR between the stored value of the second register and the multiplicand polynomial; A shift calculator configured to perform left shift on a stored value of the second register and / or a result value of the first exclusive OR operation unit; A second exclusive OR calculation unit that calculates an exclusive OR between the result value of the shift operator and the short term polynomial f; A first multiplexer that selects a particular bit of a stored value of the first register; A second multiplexer for selecting an input of the second register; A third multiplexer for selecting an input of the shift calculator; And an order search unit for obtaining the order of the multiplier polynomial to achieve the objects and technical problems of the present invention.

Description

유한체 다항식 곱셈 장치 및 그 방법{Finite field polynomial multiplier and Method thereof}Finite field polynomial multiplier and method

본 발명은 유한체 다항식 곱셈 장치 및 그 방법에 관한 것으로 특히, 타원 곡선 암호(Ellitpic Curve Cryptography)를 위한 고속의 유한체 다항식 곱셈 장치 및 그 방법에 관한 것이다.The present invention relates to a finite field polynomial multiplication apparatus and a method thereof, and more particularly, to a fast finite field polynomial multiplication apparatus and method for ellitpic curve cryptography.

타원 곡선 암호 시스템(Elliptic Curve Crypto-system : ECC)은 Neal Kobliz와 Victor Miller에 의해 1985년에 제안된 이후로 공개키 암호 시스템으로서 많은 연구가 수행되어 왔다. 이 암호 시스템은 타원 곡선 상의 점들의 이산 대수의 어려움에 기반한 것으로, 같은 안전도에서 비교할 때 기존의 공개키 암호 시스템으로서 널리 활용되는 RSA(Rivest-Shamir-Adleman)/DSA(Digital Signature Algorithm)보다 빠르고, 키의 크기가 작다는 장점이 있다. 예를 들어 약 160 비트의 키 크기를 가지는 ECC의 안전도는 키 크기가 1024 비트인 RSA의 안전도와 동일하다고 알려져 있다. 따라서, 제한된 컴퓨팅 능력 및 메모리를 가지는 스마트 카드 등에 적합한 공개키 암호 시스템으로 주목받고 있다.Elliptic Curve Crypto-system (ECC) has been studied as a public key cryptosystem since it was proposed in 1985 by Neal Kobliz and Victor Miller. The cryptographic system is based on the difficulty of discrete logarithms of points on an elliptic curve, which is faster than the Rivest-Shamir-Adleman (RSA) / Digital Signature Algorithm (DSA), which is widely used as an existing public key cryptosystem when compared at the same level of security. The advantage is that the size of the key is small. For example, an ECC having a key size of about 160 bits is known to be the same as an RSA having a key size of 1024 bits. Therefore, it is attracting attention as a public key cryptographic system suitable for smart cards having limited computing capability and memory.

이러한 타원 곡선 암호에서의 연산은 타원 곡선 위의 점들의 연산으로 구성되는데, 이 타원 곡선 위의 점의 연산에는 서로 다른 두 점의 덧셈, 한 점의 2배 연산 등이 있으며, 이러한 타원 곡선 위의 점의 연산들은 유한체(finite field) 덧셈, 유한체 뺄셈, 유한체 곱셈, 유한체 나눗셈 등의 조합으로 이루어진다. 이중에 타원 곡선 암호화의 고속화를 위해서는 특히, 유한체 곱셈의 고속화가 필수적이다.The operation of the elliptic curve cryptography consists of the operations of the points on the elliptic curve. The operations of the points on the elliptic curve include the addition of two different points and the double operation of one point. Point operations consist of a combination of finite field addition, finite field subtraction, finite field multiplication, and finite field division. In particular, in order to speed up elliptic curve encryption, it is essential to speed up finite field multiplication.

기존의 유한체 다항식 곱셈기에는 직렬 유한체 곱셈기, 병렬 유한체 곱셈기 및 하이브리드 형태의 유한체 곱셈기가 있다. 그 중에서 직렬 유한체 곱셈기는 그 하드웨어 구조가 간단함으로 인하여 가장 많이 이용되는 곱셈기로 알려져 있다.Conventional finite polynomial multipliers include serial finite field multipliers, parallel finite field multipliers, and hybrid finite field multipliers. Among them, the serial finite field multiplier is known as the most used multiplier due to its simple hardware structure.

m 비트 피승수 다항식 a, m 비트 승수 다항식 b, 및 m+1 비트 기약 다항식 f에 대한 기존의 직렬 유한체 곱셈기의 곱셈 연산 알고리즘은 아래와 같다.The multiplication algorithm of the conventional serial finite field multiplier for the m-bit multiplicative polynomial a, the m-bit multiplier polynomial b, and the m + 1 bit-contracted polynomial f is as follows.

입력 : 피승수 다항식 a(x), 승수 다항식 b(x)Input: multiplicand polynomial a (x), multiplier polynomial b (x)

출력 : 곱셈 결과 다항식 c(x) = a(x)b(x) mod f(x)Output: Multiply result polynomial c (x) = a (x) b (x) mod f (x)

step 1: c ← 0step 1: c ← 0

step 2: For i from m-1 to 1 dostep 2: For i from m-1 to 1 do

step 2.1: If bi = 1 then c ← c <XOR> astep 2.1: If b i = 1 then c ← c <XOR> a

step 2.2: c ← c ?? x mod f(x)     step 2.2: c ← c ?? x mod f (x)

step 3: If b0 = 1 then c ← c <XOR> astep 3: If b 0 = 1 then c ← c <XOR> a

step 4: Return (c)step 4: Return (c)

수학식 1을 참조하여, 기존의 직렬 유한체 곱셈 방식을 설명한다.Referring to Equation 1, a conventional serial finite field multiplication method will be described.

최초에 c 레지스터(곱셈 결과를 저장하는 레지스터)를 0으로 초기화하고(step 1), b 레지스터의 i번째 비트가 1이면, c 레지스터의 저장값과 피승수 다항식에 대한 배타적 논리합의 결과값을 c 레지스터에 저장한다(step 2.1). c 레지스터의 저장값에 대한 1비트 좌측 쉬프트를 수행하고, 상기 좌측 쉬프트 결과값에 대하여 기약 다항식 f와 배타적 논리합 연산을 수행한다(step 2.2). 상기한 step 2.1과 step 2.2를 m-1번 반복하고, step 3에서 b 레지스터의 최하위 비트가 1이면, c 레지스터의 저장값과 피승수 다항식에 대한 배타적 논리합을 수행하고, c 레지스터의 저장값을 유한체 곱셈 결과로 출력한다(step 4).Initialize c register (the register that stores the result of multiplication) to 0 (step 1), and if the i-th bit of the b register is 1, register c is the stored value of the register and the result of the exclusive OR of the multiplicand polynomial. In step 2.1. A 1-bit left shift is performed on the stored value of the c register, and an exclusive OR operation is performed on the left shift result value with the contracted polynomial f (step 2.2). Repeat step 2.1 and step 2.2 above, m-1 times. If the least significant bit of the register b is 1 in step 3, the exclusive OR of the stored value of the c register and the multiplicand polynomial is performed, and the stored value of the c register is finite. Output the result of the sieve multiplication (step 4).

상기 step 2의 세부 과정인 step 2.1 및 step 2.2를 하나의 클럭에 수행하도록 곱셈기를 설계할 경우에, 상기한 바와 같이 기존의 곱셈 장치 및 방법은 피승수 다항식 또는 승수의 다항식이 m 비트의 이진 벡터(binary vector)이면 유한체 곱셈 연산 소요 시간은 m 클럭으로 결정된다. 이는 피승수 다항식 또는 승수 다항식의 차수(n-th order)에 관계없이 항상 m 클럭이 소요되는 문제점이 있었다.In the case of designing a multiplier to perform steps 2.1 and 2.2, which are detailed steps of step 2, on one clock, as described above, the conventional multiplier and multiply polynomials of the multiplier or multiplier of the multiplier are m-bit binary vectors ( binary vector), the time required for finite multiplication is determined by m clocks. This is a problem that m clocks are always required regardless of the order (n-th order) of the multiplicand or multiplier polynomial.

따라서, 본 발명의 목적은 상기와 같은 문제점을 해결하기 위해 창안된 것으로, 본 발명의 목적 및 이루고자하는 기술적 과제는 고속의 타원 곡선 암호화를 꾀하는데 결정적인 유한체 다항식의 곱셈 속도를 제고할 수 있는 유한체 다항식 곱셈 장치 및 그 방법을 제공하는 데 있다.Accordingly, an object of the present invention was devised to solve the above problems, and an object of the present invention and a technical problem to be achieved are finite which can improve the multiplying speed of a finite body polynomial which is crucial for high speed elliptic curve encryption. It is to provide a sieve polynomial multiplication apparatus and a method thereof.

상기와 같은 목적 및 기술적 과제를 달성하기 위하여 본 발명이 제공하는 유한체 다항식 곱셈 장치는 승수 다항식을 저장하는 제1 레지스터; 상기 곱셈 연산 과정 중의 중간 계산값과 곱셈 결과를 저장하는 제2 레지스터; 상기 제2 레지스터의 저장값과 피승수 다항식과의 배타적 논리합을 연산하는 제1 배타적 논리합 연산부; 상기 제2 레지스터의 저장값 그리고/또는 상기 제1 배타적 논리합 연산부의 결과값에 대하여 좌측 쉬프트를 수행하는 쉬프트 연산부; 상기 쉬프트 연산부의 결과값과 기약 다항식 f에 대한 배타적 논리합을 연산하는 제2 배타적 논리합 연산부; 상기 제1 레지스터의 저장값 중 특정 한 비트를 선택하는 제1 다중화기; 상기 제2 레지스터의 입력을 선택하는 제2 다중화기; 상기 쉬프트 연산부의 입력을 선택하는 제3 다중화기; 및 상기 승수 다항식의 차수를 구하는 차수 검색부를 포함하여 본 발명의 목적 및 기술적 과제를 달성한다.In order to achieve the above object and technical problem, the finite body polynomial multiplication apparatus provided by the present invention comprises: a first register for storing a multiplier polynomial; A second register configured to store an intermediate calculation value and a multiplication result during the multiplication operation; A first exclusive OR calculation unit configured to calculate an exclusive OR between the stored value of the second register and the multiplicand polynomial; A shift calculator configured to perform left shift on a stored value of the second register and / or a result value of the first exclusive OR operation unit; A second exclusive OR calculation unit that calculates an exclusive OR between the result value of the shift operator and the short term polynomial f; A first multiplexer that selects a particular bit of a stored value of the first register; A second multiplexer for selecting an input of the second register; A third multiplexer for selecting an input of the shift calculator; And an order search unit for obtaining the order of the multiplier polynomial to achieve the objects and technical problems of the present invention.

본 발명의 목적 및 기술적 과제를 달성하기 위해 상기 유한체 곱셈 장치는 상기 제1 다중화기, 상기 제2 다중화기 및 상기 제3 다중화기의 입력 선택 신호를 생성하는 제어부를 더 포함할 수 있다.In order to achieve the object and technical object of the present invention, the finite field multiplication apparatus may further include a control unit for generating an input selection signal of the first multiplexer, the second multiplexer and the third multiplexer.

상기 제어부는 상기 제1 다중화기의 결과값과 상기 차수 검색부의 결과값을 이용하여 상기 다중화기들의 입력 선택 신호를 생성함을 특징으로 한다.The control unit may generate an input selection signal of the multiplexers using the result value of the first multiplexer and the result value of the order search unit.

아울러 본 발명의 목적 및 기술적 과제를 달성하기 위하여 본 발명이 제공하는 유한체 다항식 곱셈 방법은 (a)상기 제1 레지스터에 상기 승수 다항식이 저장되고, 상기 제2 레지스터에 0이 저장되며, 상기 승수 다항식 b의 차수로 카운터가 초기화되는 단계; (b)상기 카운터 값이 0이고, 상기 제1 레지스터의 저장값 중 상기 카운터 값이 지시하는 특정 한 비트가 1일 때에는, 상기 제2 레지스터의 저장값과 상기 피승수 다항식에 대한 배타적 논리합이 상기 제2 레지스터에 저장되고, 상기 카운터가 1 감소되는 단계; (c)상기 카운터 값이 0이고, 상기 제1 레지스터의 저장값 중 상기 카운터 값이 지시하는 특정 한 비트가 1이 아닐 때에는, 상기 카운터가 1 감소되는 단계; (d)상기 카운터가 0보다 크고, 상기 제1 레지스터의 저장값 중 상기 카운터 값이 지시하는 특정 한 비트가 1일 때에는, 상기 제2 레지스터(102, R2)의 저장값과 상기 피승수 다항식에 대한 배타적 논리합이 수행된 후 그 결과가 1비트 좌측 쉬프트되어 상기 제2 레지스터에 저장되는 단계; (e)상기 카운터가 0보다 크고, 상기 제1 레지스터의 저장값 중 상기 카운터 값이 지시하는 특정 한 비트가 1이 아닐 때에는, 상기 제2 레지스터의 저장값이 1비트 좌측 쉬프트되는 단계; (f)상기 (d)단계 또는 (e)단계가 수행된 후 상기 제2 레지스터 저장값의 최상위 비트가 1이면, 상기 제2 레지스터의 저장값과 상기 기약 다항식 f에 대한 배타적 논리합이 상기 제2 레지스터에 저장되고, 상기 카운터가 1 감소되는 단계; (g)상기 (d)단계 또는 (e)단계가 수행된 후 상기 제2 레지스터 저장값의 최상위 비트가 1이 아니면, 상기 카운터가 1 감소되는 단계; 및 (h)상기 카운터가 0보다 작을 때까지 상기 (b)단계 내지 (g)단계를 반복하고, 카운터가 0보다 작게 되면, 상기 제2 레지스터의 저장값이 나눗셈 연산의 결과값으로 출력되는 단계를 포함하여 본 발명의 목적 및 기술적 과제를 달성한다.In addition, in order to achieve the object and the technical problem of the present invention, the finite body polynomial multiplication method provided by the present invention (a) the multiplier polynomial is stored in the first register, 0 is stored in the second register, the multiplier Initializing a counter in the order of polynomial b; (b) when the counter value is 0 and a specific bit indicated by the counter value of the stored value of the first register is 1, an exclusive logical sum of the stored value of the second register and the multiplicand polynomial is set to the first value; Stored in two registers, the counter being decremented by one; (c) decrementing the counter by one when the counter value is zero and the specific bit indicated by the counter value among the stored values of the first register is not one; (d) When the counter is greater than zero and a specific bit indicated by the counter value among the stored values of the first register is 1, the stored value of the second registers 102 and R2 and After the exclusive OR is performed, the result is left shifted by one bit and stored in the second register; (e) shifting the stored value of the second register by one bit when the counter is greater than zero and one of the stored bits of the first register indicated by the counter value is not 1; (f) if the most significant bit of the second register stored value is 1 after step (d) or (e) is performed, an exclusive logical sum of the stored value of the second register and the shortened polynomial f is the second; Stored in a register, the counter being decremented by one; (g) if the most significant bit of the second register stored value is not 1 after step (d) or (e) is performed, decrementing the counter by one; And (h) repeating steps (b) to (g) until the counter is less than zero, and if the counter is less than zero, outputting the stored value of the second register as a result of the division operation. In order to achieve the object and technical problem of the present invention.

우선 이해의 편의를 위해 본 발명에 의한 유한체 다항식 곱셈의 과정을 간략히 제시하고자 한다.First of all, for the convenience of understanding, the process of finite polynomial multiplication according to the present invention will be briefly presented.

본 발명에 따른 유한체 다항식 곱셈은 기존의 m 비트 직렬 곱셈기의 연산 소요 클럭이 m 클럭으로 고정되는 것을 개선하여, 승수 다항식 또는 피승수 다항식의 차수를 이용하여 연산 소요 클럭 수를 줄이는 데 그 목적이 있다. 본 발명에 의한 유한체 곱셈이 수행하는 알고리즘은 다음과 같다.The finite field polynomial multiplication according to the present invention has an object of reducing the number of operation required clocks by using a multiplier polynomial or a multiplicand polynomial order by improving the fixed clock of m operation of an existing m-bit serial multiplier. . The algorithm performed by the finite field multiplication according to the present invention is as follows.

입력: 피승수 다항식 a(x), 승수 다항식 b(x)Input: multiplicand polynomial a (x), multiplier polynomial b (x)

출력: 곱셈 결과 다항식 c(x) = a(x)b(x) mod f(x)Output: Multiplication Result Polynomial c (x) = a (x) b (x) mod f (x)

step 1 : c ← 0step 1: c ← 0

step 2 : For i from deg(b) to 1 dostep 2: For i from deg (b) to 1 do

step 2.1 : If bi = 1 then c ← c + astep 2.1: If b i = 1 then c ← c + a

step 2.2 : c ← c ?? x mod f(x)step 2.2: c ← c ?? x mod f (x)

step 3 : If b0 = 1 then c ← c + astep 3: If b 0 = 1 then c ← c + a

step 4 : Return (c)step 4: Return (c)

상기 수학식 2의 step 2를 살펴보면, 반복문의 시작이 기존의 m-1부터 시작하는 것이 아니라, 승수 다항식 또는 피승수 다항식의 적은 차수[deg(b)]로부터 시작되어, 연산 소요 클럭을 승수 다항식 또는 피승수 다항식의 차수 중 적은 차수만큼의 클럭으로 줄일 수 있다. 최대 연산 소요 클럭은 기존의 m 클럭이 된다.Referring to step 2 of Equation 2, the start of the loop does not start from the existing m-1, but starts from the small order [deg (b)] of the multiplier polynomial or the multiplicand polynomial, and the operation required clock is multiplied by the multiplier polynomial or The order of the multiplicand polynomials can be reduced to the smaller number of clocks. The maximum computational clock is the conventional m clock.

이하, 본 발명의 구성, 작용 및 최적의 실시예를 첨부 도면을 참조하여 상세히 설명하되 도면의 구성요소들에 참조번호를 부여함에 있어서 동일 구성요소에 대해서는 비록 다른 도면상에 있더라도 동일 참조번호를 부여하였으며 당해 도면에 대한 설명시 필요한 경우 다른 도면의 구성요소를 인용할 수 있음을 미리 밝혀둔다.Hereinafter, with reference to the accompanying drawings, the configuration, operation and the best embodiments of the present invention will be described in detail with reference to the components of the drawings the same reference numerals are assigned to the same components, even if on different drawings. In the description of the drawings, if necessary, the components of other drawings may be cited in advance.

도 1은 본 발명이 제공하는 유한체 다항식 곱셈 장치의 바람직한 일실시예를 도시한 도면이다.1 is a diagram showing a preferred embodiment of the finite polynomial multiplication apparatus provided by the present invention.

제1 레지스터(101)는 승수 다항식 b를 저장하는 부분이다.The first register 101 is a portion for storing the multiplier polynomial b.

제2 레지스터(102)는 곱셈 연산 과정 중의 중간 계산값 및 곱셈 결과를 저장하는 부분이다.The second register 102 is a part for storing intermediate calculation values and multiplication results during the multiplication operation.

제1 배타적 논리합 연산부(103)는 제2 레지스터(102)의 저장값과 피승수 다항식 a와의 배타적 논리합을 연산하는 부분이다.The first exclusive OR calculation unit 103 is a part that calculates an exclusive OR between the stored value of the second register 102 and the multiplicand polynomial a.

쉬프트 연산부(104)는 제2 레지스터(102)의 저장값 그리고/또는 제1 배타적 논리합 연산부(103)의 결과값에 대하여 좌측 쉬프트를 수행하는 부분이다.The shift operator 104 performs a left shift on the stored value of the second register 102 and / or the result of the first exclusive OR operation 103.

제2 배타적 논리합 연산부(105)는 쉬프트 연산부(104)의 결과값과 기약 다항식 f에 대한 배타적 논리합을 연산하는 부분이다.The second exclusive AND operation unit 105 is a portion that calculates an exclusive OR for the resultant value of the shift operation unit 104 and the contracted polynomial f.

제1 다중화기(106)는 제1 레지스터(101)의 저장값 중 특정 한 비트를 선택하며, 제2 다중화기(107)는 제2 레지스터(102)의 입력을 선택하며, 제3 다중화기(108)는 쉬프트 연산부(104)의 입력을 선택한다.The first multiplexer 106 selects a particular bit of the stored value of the first register 101, the second multiplexer 107 selects the input of the second register 102, and the third multiplexer ( 108 selects an input of the shift calculator 104.

차수 검색부(109)는 승수 다항식의 차수를 구하는 부분이다.The order retrieving unit 109 obtains the order of the multiplier polynomial.

제어부(110)는 제1 다중화기(106), 제2 다중화기(107), 제3 다중화기(108)의 입력 선택 신호를 생성한다.The controller 110 generates an input selection signal of the first multiplexer 106, the second multiplexer 107, and the third multiplexer 108.

제1 다중화기(106)의 입력은 m비트의 승수 다항식 b를 저장하는 제1 레지스터(101)의 저장값이 된다. 제1 다중화기(106)는 m 비트의 승수 다항식 중에서 특정 한 비트를 선택하는 기능을 한다. 이는 위의 수학식 2의 step 2.1에서 b의 특정한 한 비트인 bi를 선택하기 위한 것으로, 승수 다항식 b의 최상위 비트부터 1비트 우측 쉬프트를 하여 승수 다항식 b의 최하위 비트까지 출력하게 된다. 제1 다중화기(106)가 선택한 특정 1비트는 제어부(110)의 입력 신호가 된다.The input of the first multiplexer 106 is a stored value of the first register 101 which stores the m-bit multiplier polynomial b. The first multiplexer 106 functions to select a particular bit from an m-bit multiplier polynomial. This is to select b i , a specific bit of b in step 2.1 of Equation 2 above, and outputs the most significant bit of the multiplier polynomial b from the most significant bit to the least significant bit of the multiplier polynomial b. The specific 1 bit selected by the first multiplexer 106 becomes an input signal of the controller 110.

차수 검색부(109)는 곱셈 연산 시작시에 승수 다항식 b의 차수를 검색하여 유한체 곱셈 장치가 수행하는 클럭 수를 결정하는 데 이용된다.The order search unit 109 is used to determine the number of clocks performed by the finite field multiplication apparatus by searching for the order of the multiplier polynomial b at the start of the multiplication operation.

제어부(110)는 제1 다중화기(106)의 결과값과 쉬프트 연산부(104)의 최상위 비트값 및 내부 카운터 값을 이용하여 제2 다중화기(107)와 제3 다중화기(108)의 입력 선택 신호를 생성한다. 제1 다중화기(106)의 결과값은 수학식 2의 step 2.1에서 bi 즉, b의 특정 1비트가 1인지를 판별하기 위하여 제어부(110)로 입력된다.The controller 110 selects inputs of the second multiplexer 107 and the third multiplexer 108 by using the result value of the first multiplexer 106, the most significant bit value of the shift calculator 104, and an internal counter value. Generate a signal. The result of the first multiplexer 106 is input to the controller 110 to determine the b i In other words, a particular one bit of b is 1 if at step 2.1 the following expression (2).

제2 레지스터(102)의 최상위 비트값은 수학식 2에서 step 2.2 가 수행됨에 있어, c의 값에 대한 좌측 쉬프트가 수행된 이후에 최상위 비트가 1이면 추가적으로 기약 다항식과의 배타적 논리합 연산이 필요하기 때문에, 이를 판별하기 위하여 제1 배타적 논리합 연산부(103)에 입력되고, 내부 카운터 값은 승수 다항식 b의 차수로부터 1씩 감소하여 0이 될 때까지 반복하는 수학식 2의 step 2의 반복문의 반복횟수[deg(b)]를 결정하는 데 활용된다.In step 2.2 of Equation 2, as the most significant bit value of the second register 102 is performed, if the most significant bit is 1 after the left shift of the value of c is performed, an exclusive OR operation with the weak polynomial is additionally required. Therefore, in order to determine this, the number of iterations of the repetition statement of step 2 of Equation 2 is input to the first exclusive OR operation unit 103 and the internal counter value is decreased by one from the order of the multiplier polynomial b and is repeated until it becomes 0. It is used to determine [deg (b)].

쉬프트 연산부(104)는 수학식 2의 step 2.2에서 c ?? x를 계산하기 위하여 필요하다. 쉬프트부(104)의 입력은 제1 배타적 논리합 연산부(103)의 결과값 또는 제2 레지스터(102)의 결과값으로 주어진다. 제1 다중화기(106)의 결과값인 승수 다항식 b의 특정 비트가 1인 경우에는, step 2.1의 유한체 덧셈을 수행한 제1 배타적 논리합 연산부(103)의 결과값에 대한 1비트 좌측 쉬프트를 수행하기 때문에 상기 제1 배타적 논리합 연산부(103)의 결과값이 쉬프트 연산부(104)의 입력으로 이용된다.The shift operation unit 104 performs c ?? in step 2.2 of Equation (2). It is necessary to calculate x. The input of the shift unit 104 is given as a result of the first exclusive OR operation 103 or as a result of the second register 102. When a specific bit of the multiplier polynomial b, which is the result of the first multiplexer 106, is 1, a 1-bit left shift with respect to the result of the first exclusive OR operation 103 that has performed the finite field addition of step 2.1 is obtained. As a result, the result value of the first exclusive OR operation unit 103 is used as an input of the shift operation unit 104.

제1 다중화기(106)의 결과값인 승수 다항식 b의 특정 비트가 1이 아닌 경우에는, step 2.1의 제2 레지스터(102)의 저장값과 피승수 다항식의 유한체 덧셈 연산을 생략하고 제2 레지스터(102)의 결과값에 대한 1비트 좌측 쉬프트를 수행하기 때문에 제2 레지스터(102)의 결과값이 쉬프트 연산부(104)의 입력으로 이용된다.If the specific bit of the multiplier polynomial b that is the result of the first multiplexer 106 is not 1, the stored value of the second register 102 of step 2.1 and the finite field addition operation of the multiplicand polynomial are omitted and the second register is omitted. Since the 1-bit left shift is performed on the resultant value of 102, the resultant value of the second register 102 is used as the input of the shift operator 104. FIG.

제1 배타적 논리합 연산부(103)는 step 2.2에서 제1 다중화기(106)의 결과값인 승수 다항식 b의 특정 비트가 1인 경우, 제2 레지스터(102)의 저장값과 피승수 다항식 a와의 유한체 덧셈을 수행하기 위한 것이다.When the specific bit of the multiplier polynomial b, which is the result of the first multiplexer 106, is 1 in step 2.2, the first exclusive-OR operator 103 is a finite body of the stored value of the second register 102 and the multiplicand polynomial a. It is to perform addition.

제2 배타적 논리합 연산부(105)는 step 2.2가 수행됨에 있어서, c의 값에 대한 좌측 쉬프트가 수행된 이후에 최상위 비트가 1일 때 추가적으로 수행되는 제2 레지스터(102)의 저장값과 기약 다항식과의 배타적 논리합 연산을 수행한다.In step 2.2, the second exclusive OR operation 105 performs a storage polynomial and a contract polynomial of the second register 102 that is additionally performed when the most significant bit is 1 after the left shift of the value of c is performed. Performs an exclusive OR operation.

제2 다중화기(107)의 입력은 제1 배타적 논리합 연산부(103)의 결과값, 쉬프트 연산부(104)의 결과값 및 제2 배타적 논리합 연산부(105)의 결과값이다.The input of the second multiplexer 107 is a result of the first exclusive OR operation 103, a result of the shift operation 104, and a result of the second exclusive OR operation 105.

도 2는 본 발명이 제공하는 유한체 다항식 곱셈 방법의 바람직한 일실시예를 도시한 도면이다.2 is a diagram illustrating a preferred embodiment of the finite body polynomial multiplication method provided by the present invention.

우선, 제1 레지스터(101, R1)에 승수 다항식 b가 저장되고, 제2 레지스터(102, R2)에 0이 저장되며, 승수 다항식 b의 차수로 카운터가 초기화된다(S201).First, the multiplier polynomial b is stored in the first registers 101 and R1, 0 is stored in the second registers 102 and R2, and the counter is initialized to the order of the multiplier polynomial b (S201).

다음으로 카운터 값이 0이고, 제1 레지스터(101, R1)의 저장값 중 카운터 값이 지시하는 특정 한 비트가 1일 때에는, 제2 레지스터(102, R2)의 저장값과 피승수 다항식 a에 대한 배타적 논리합이 제2 레지스터(102, R2)에 저장되고, 카운터는 1 감소된다(S202).Next, when the counter value is 0 and a specific bit indicated by the counter value is one among the stored values of the first registers 101 and R1, the stored value of the second registers 102 and R2 and the multiplicand polynomial a The exclusive OR is stored in the second registers 102 and R2, and the counter is decremented by one (S202).

다음으로 카운터 값이 0이고, 제1 레지스터(101, R1)의 저장값 중 카운터 값이 지시하는 특정 한 비트가 1이 아닐 때에는, 카운터가 1 감소된다(S203).Next, when the counter value is 0 and the specific bit indicated by the counter value among the stored values of the first registers 101 and R1 is not 1, the counter is decremented by one (S203).

다음으로 카운터가 0보다 크고, 제1 레지스터(101, R1)의 저장값 중 카운터 값이 지시하는 특정 한 비트가 1일 때에는, 제2 레지스터(102, R2)의 저장값과 피승수 다항식 a에 대한 배타적 논리합을 수행된 후 그 결과가 1비트 좌측 쉬프트되어 제2 레지스터(102, R2)에 저장된다(S204).Next, when the counter is greater than zero and one of the stored values of the first registers 101 and R1 is one bit indicated by the counter value, the stored value of the second registers 102 and R2 and the multiplicand polynomial a After the exclusive OR is performed, the result is left shifted by one bit and stored in the second register 102 (R2) (S204).

다음으로 카운터가 0보다 크고, 제1 레지스터(101, R1)의 저장값 중 카운터 값이 지시하는 특정 한 비트가 1이 아닐 때에는, 제2 레지스터의 저장값이 1비트 좌측 쉬프트된다(S205).Next, when the counter is larger than 0 and the specific bit indicated by the counter value among the stored values of the first registers 101 and R1 is not 1, the stored value of the second register is shifted left by one bit (S205).

다음으로 S204 단계 또는 S205 단계가 수행된 후 제2 레지스터(102, R2) 저장값의 최상위 비트가 1이면, 제2 레지스터(102, R2)의 저장값과 기약 다항식 f에 대한 배타적 논리합이 제2 레지스터(102, R2)에 저장되고, 카운터가 1 감소된다(S206).Next, after the step S204 or the step S205 is performed, if the most significant bit of the second register 102, R2 stored value is 1, the exclusive logical sum of the stored value of the second register 102, R2 and the shortened polynomial f is second. It is stored in the registers 102 and R2, and the counter is decremented by one (S206).

다음으로 S204 단계 또는 S205 단계가 수행된 후 제2 레지스터(102, R2) 저장값의 최상위 비트가 1이 아니면, 카운터가 1 감소된다(S207).Next, after step S204 or step S205 is performed, if the most significant bit of the second register 102, R2 stored value is not 1, the counter is decremented by 1 (S207).

다음으로 카운터가 0보다 작을 때까지 S202 단계 내지 S207단계를 반복하고, 카운터가 0보다 작게 되면, 제2 레지스터(102, R2)의 저장값이 출력된다(S208).Next, steps S202 to S207 are repeated until the counter is smaller than zero, and when the counter is smaller than zero, the stored values of the second registers 102 and R2 are output (S208).

본 발명에 의한 유한체 다항식 곱셈 연산을 하는 예를 들어본다.An example of performing a finite body polynomial multiplication operation according to the present invention is given.

도 3은 유한체 다항식 곱셈 예제의 중간값과 결과값을 제시한 것이다.Figure 3 shows the median and the result of the finite polynomial multiplication example.

곱셈 연산의 예는 (x3 + x2 +1) ?? (x2 + 1) mod (x4 + x + 1)를 계산하는 것이다. 즉, 피승수 다항식 a는 x3 + x2 +1 이며, 이진 벡터 1101으로 표현된다. 승수 다항식 b는 x2 + 1 이며, 이진 벡터 0101로 표현된다. 기약 다항식 f은 x4 + x + 1 이며, 이진 벡터 10011으로 표현된다.An example of a multiplication operation is (x 3 + x 2 +1) ?? (x 2 + 1) mod (x 4 + x + 1) That is, the multiplicand polynomial a is x 3 + x 2 + 1 and is represented by a binary vector 1101. The multiplier polynomial b is x 2 + 1, represented by binary vector 0101. The contract polynomial f is x 4 + x + 1 and is represented by binary vector 10011.

도 1 내지 도 3을 참조하여, 곱셈 예제의 구체적 실시 과정을 설명한다.1 to 3, a specific implementation process of the multiplication example will be described.

유한체 곱셈 연산 장치는 초기 설정값으로 제1 레지스터(101, R1)는 승수 다항식 b의 이진 벡터 0101을 저장하고, 제2 레지스터(102, R2)는 0으로 초기화되고, 카운터 i는 승수 다항식 b의 차수 2로 초기화된다(S201).In the finite field multiplication apparatus, the first registers 101 and R1 store binary vectors 0101 of the multiplier polynomial b, the second registers 102 and R2 are initialized to zero, and the counter i is a multiplier polynomial b. It is initialized to the order 2 of (S201).

초기 설정단계 후, 카운터 i값이 2이고, 제1 레지스터(101, R1)의 2번째 비트가 1이므로 제2 레지스터(102, R2)의 저장값 0000과 피승수 다항식 a의 이진 벡터 1101의 배타적 논리합 연산 결과에 1비트 좌측 쉬프트를 수행한다(S204). 이 수행한 결과가 11010으로서, 최상위 비트가 1이므로, 기약 다항식 f의 이진 벡터 10011과 배타적 논리합 연산을 수행한 결과인 01001을 제2 레지스터(102, R2)에 저장하고, 카운터 i값은 1감소하여 1이 된다(S206).After the initial setting step, since the value of the counter i is 2 and the second bit of the first register 101, R1 is 1, the exclusive logical sum of the stored value 0000 of the second register 102, R2 and the binary vector 1101 of the multiplicand polynomial a A 1-bit left shift is performed on the operation result (S204). Since the result of this operation is 11010 and the most significant bit is 1, 01001, which is the result of performing an exclusive OR operation with the binary vector 10011 of the weak polynomial f, is stored in the second registers 102 and R2, and the counter i value is decreased by one. To 1 (S206).

상기한 과정을 수행한 후, 카운터 i값이 1이고, 제1 레지스터(101, R1)의 1번째 비트가 0이므로, 제2 레지스터(102, R2)의 저장값 01001에 1비트 좌측 쉬프트를 수행한다(S204). 좌측 쉬프트 연산의 수행한 결과인 10010의 최상위 비트가 1이므로, 기약 다항식 f의 이진 벡터 10011과 배타적 논리합 연산을 수행한 결과인 00001을 제2 레지스터(102, R2)에 저장하고, 카운터 i값은 1감소하여 0 이 된다(S206).After the above process, since the counter i value is 1 and the first bit of the first registers 101 and R1 is 0, a 1-bit left shift is performed on the stored value 01001 of the second registers 102 and R2. (S204). Since the most significant bit of 10010, which is the result of the left shift operation, is 1, 00001, the result of performing the exclusive OR operation with the binary vector 10011 of the polynomial f, is stored in the second registers 102 and R2. 1 decreases to 0 (S206).

상기한 과정을 수행한 후, 카운터 i값이 0이고, 제1 레지스터의 0번째 비트 값이 1이므로, 제2 레지스터(102, R2)의 저장값인 00001과 피승수 다항식 a의 이진 벡터 1101과의 배타적 논리합 연산 결과인 01100을 제2 레지스터(102, R2)에 저장하고, 카운터 i값은 1 감소하여 -1이 된다(S202).After performing the above process, since the value of the counter i is 0 and the 0th bit value of the first register is 1, 00001, which is a stored value of the second register 102, R2, and the binary vector 1101 of the multiplicand polynomial a are multiplied. 01100, which is the result of the exclusive OR operation, is stored in the second registers 102 and R2, and the counter i value is decremented by one to become -1 (S202).

상기한 모든 과정을 수행한 후, 카운터 i값이 0보다 작으므로, 제2 레지스터(102, R2)의 저장값 01100을 곱셈 연산 결과값(즉, R2의 출력값)으로 출력한다.After performing all the above processes, since the value of the counter i is smaller than 0, the stored value 01100 of the second register 102 (R2) is output as a multiplication result (ie, an output value of R2).

본 명세서에서 개시하는 방법 발명은 또한 컴퓨터로 읽을 수 있는 기록매체에 컴퓨터가 읽을 수 있는 코드로서 구현하는 것이 가능하다. 컴퓨터가 읽을 수 있는 기록매체는 컴퓨터 시스템에 의하여 읽혀질 수 있는 데이터가 저장되는 모든 종류의 기록장치를 포함한다.The method disclosed herein may also be embodied as computer readable code on a computer readable recording medium. The computer-readable recording medium includes all kinds of recording devices in which data that can be read by a computer system is stored.

컴퓨터가 읽을 수 있는 기록매체의 예로는 ROM, RAM, CD-ROM, 자기 테이프, 플로피디스크, 광데이터 저장장치 등이 있으며 또한 캐리어 웨이브(예를 들어 인터넷을 통한 전송)의 형태로 구현되는 것도 포함한다. 또한 컴퓨터가 읽을 수 있는 기록매체는 네트워크로 연결된 컴퓨터 시스템에 분산되어 분산방식으로 컴퓨터가 읽을 수 있는 코드가 저장되고 실행될 수 있다.Examples of computer-readable recording media include ROM, RAM, CD-ROM, magnetic tape, floppy disks, optical data storage devices, and the like, which may also be implemented in the form of carrier waves (for example, transmission over the Internet). do. The computer readable recording medium can also be distributed over network coupled computer systems so that the computer readable code is stored and executed in a distributed fashion.

이제까지 본 발명에 대하여 그 바람직한 실시예들을 중심으로 살펴보았다. 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자는 본 발명이 본 발명의 본질적인 특성에서 벗어나지 않는 범위에서 변형된 형태로 구현될 수 있음을 이해할 수 있을 것이다.So far I looked at the center of the preferred embodiment for the present invention. Those skilled in the art will appreciate that the present invention can be implemented in a modified form without departing from the essential features of the present invention.

그러므로 개시된 실시예들은 한정적인 관점이 아니라 설명적인 관점에서 고려되어야 한다. 본 발명의 범위는 전술한 설명이 아니라 특허청구범위에 나타나 있으며, 그와 동등한 범위 내에 있는 모든 차이점은 본 발명에 포함된 것으로 해석되어야 할 것이다.Therefore, the disclosed embodiments should be considered in descriptive sense only and not for purposes of limitation. The scope of the present invention is shown in the claims rather than the foregoing description, and all differences within the scope will be construed as being included in the present invention.

상기한 바와 같이, 본 발명에 의하면, 기존의 유한체 곱셈기 및 그 방법 보다 고속으로 유한체 곱셈을 수행할 수 있다.As described above, according to the present invention, it is possible to perform finite field multiplication at a higher speed than existing finite field multipliers and methods.

기존의 유한체 곱셈기 및 방법에서는 m 비트의 승수 및 피승수 다항식에 대하여, m 클럭이 소요되지만, 본 발명에 의하면, 승수 다항식 또는 피승수 다항식의 차수 그 중에서 적은 차수를 이용하여, 유한체 연산 속도를 개선할 수 있다.In conventional finite field multipliers and methods, m clocks are required for multipliers and multiplicative polynomials of m bits, but according to the present invention, the order of multiplier polynomials or multiplicand polynomials is reduced to improve the finite field computation speed. can do.

또한, 기존의 하드웨어 구조가 간단한 직렬 곱셈기의 장점을 그대로 유지함으로 인하여, 제어 로직을 회로의 복잡도를 높이지 않고 간단하게 구성할 수 있다는 장점을 가진다.In addition, since the existing hardware structure retains the advantages of the simple serial multiplier, the control logic can be easily configured without increasing the complexity of the circuit.

따라서, 본 발명에 의한 유한체 곱셈기 및 그 방법을 활용하면, 스마트카드와 같이 컴퓨팅 능력이 제한되는 환경에서 고속의 타원 곡선 암호를 구현할 수 있다.Therefore, by utilizing the finite field multiplier and the method according to the present invention, it is possible to implement a high-speed elliptic curve cryptography in an environment where computing power is limited, such as a smart card.

도 1은 본 발명이 제공하는 유한체 곱셈기의 바람직한 일실시예를 도시한 도면이다.1 is a diagram showing a preferred embodiment of a finite multiplier provided by the present invention.

도 2는 본 발명이 제공하는 유한체 곱셈 방법의 바람직한 일실시예의 흐름을 나타내는 도면이다.2 is a diagram showing a flow of a preferred embodiment of the finite field multiplication method provided by the present invention.

도 3은 본 발명에 의한 유한체 다항식 곱셈 예제의 중간값과 결과값을 제시한 도면이다.3 is a diagram showing the median and the result of the finite body polynomial multiplication example according to the present invention.

<도면의 주요 부호에 대한 설명><Description of Major Symbols in Drawing>

101 : 제1 레지스터 102 : 제2 레지스터101: first register 102: second register

103 : 제1 배타적 논리합 연산부103: first exclusive OR operation unit

104 : 쉬프트 연산부 105 : 제2 배타적 논리합 연산부104: shift calculation unit 105: second exclusive logical OR calculation unit

106 : 제1 다중화기 107 : 제2 다중화기 108 : 제3 다중화기106: first multiplexer 107: second multiplexer 108: third multiplexer

109 : 차수 검색부109: order search unit

Claims (5)

승수 다항식을 저장하는 제1 레지스터;A first register for storing a multiplier polynomial; 상기 곱셈 연산 과정 중의 중간 계산값과 곱셈 결과를 저장하는 제2 레지스터;A second register configured to store an intermediate calculation value and a multiplication result during the multiplication operation; 상기 제2 레지스터의 저장값과 피승수 다항식과의 배타적 논리합을 연산하는 제1 배타적 논리합 연산부;A first exclusive OR calculation unit configured to calculate an exclusive OR between the stored value of the second register and the multiplicand polynomial; 상기 제2 레지스터의 저장값 그리고/또는 상기 제1 배타적 논리합 연산부의 결과값에 대하여 좌측 쉬프트를 수행하는 쉬프트 연산부;A shift calculator configured to perform left shift on a stored value of the second register and / or a result value of the first exclusive OR operation unit; 상기 쉬프트 연산부의 결과값과 기약 다항식 f에 대한 배타적 논리합을 연산하는 제2 배타적 논리합 연산부;A second exclusive OR calculation unit that calculates an exclusive OR between the result value of the shift operator and the short term polynomial f; 상기 제1 레지스터의 저장값 중 특정 한 비트를 선택하는 제1 다중화기;A first multiplexer that selects a particular bit of a stored value of the first register; 상기 제2 레지스터의 입력을 선택하는 제2 다중화기;A second multiplexer for selecting an input of the second register; 상기 쉬프트 연산부의 입력을 선택하는 제3 다중화기; 및A third multiplexer for selecting an input of the shift calculator; And 상기 승수 다항식의 차수를 구하는 차수 검색부를 포함함을 특징으로 하는 유한체 다항식 곱셈 장치.And an order retrieval unit for obtaining the order of the multiplier polynomial. 제 1 항에 있어서, 상기 제2 다중화기 및 제3 다중화기의 입력 선택 신호를 생성하는 제어부를 더 포함함을 특징으로 하는 유한체 다항식 곱셈 장치.The finite polynomial multiplication apparatus of claim 1, further comprising a control unit configured to generate input selection signals of the second multiplexer and the third multiplexer. 제 2 항에 있어서, 상기 제어부는 상기 제1 다중화기의 결과값과 상기 제2 레지스터의 최상위 비트값을 이용하여 상기 제2 다중화기와 제3 다중화기의 제어 신호를 생성함을 특징으로 하는 유한체 곱셈 장치.The finite body of claim 2, wherein the controller generates a control signal of the second multiplexer and the third multiplexer using the resultant value of the first multiplexer and the most significant bit value of the second register. Multiplication device. 제 1 항의 장치를 이용하여,Using the apparatus of claim 1, (a)상기 제1 레지스터에 상기 승수 다항식이 저장되고, 상기 제2 레지스터에 0이 저장되며, 상기 승수 다항식 b의 차수로 카운터가 초기화되는 단계;(a) storing the multiplier polynomial in the first register, storing zero in the second register, and initializing a counter in the order of the multiplier polynomial b; (b)상기 카운터 값이 0이고, 상기 제1 레지스터의 저장값 중 상기 카운터 값이 지시하는 특정 한 비트가 1일 때에는, 상기 제2 레지스터의 저장값과 상기 피승수 다항식에 대한 배타적 논리합이 상기 제2 레지스터에 저장되고, 상기 카운터가 1 감소되는 단계;(b) when the counter value is 0 and a specific bit indicated by the counter value of the stored value of the first register is 1, an exclusive logical sum of the stored value of the second register and the multiplicand polynomial is set to the first value; Stored in two registers, the counter being decremented by one; (c)상기 카운터 값이 0이고, 상기 제1 레지스터의 저장값 중 상기 카운터 값이 지시하는 특정 한 비트가 1이 아닐 때에는, 상기 카운터가 1 감소되는 단계;(c) decrementing the counter by one when the counter value is zero and the specific bit indicated by the counter value among the stored values of the first register is not one; (d)상기 카운터가 0보다 크고, 상기 제1 레지스터의 저장값 중 상기 카운터 값이 지시하는 특정 한 비트가 1일 때에는, 상기 제2 레지스터(102, R2)의 저장값과 상기 피승수 다항식에 대한 배타적 논리합이 수행된 후 그 결과가 1비트 좌측 쉬프트되어 상기 제2 레지스터에 저장되는 단계;(d) When the counter is greater than zero and a specific bit indicated by the counter value among the stored values of the first register is 1, the stored value of the second registers 102 and R2 and After the exclusive OR is performed, the result is left shifted by one bit and stored in the second register; (e)상기 카운터가 0보다 크고, 상기 제1 레지스터의 저장값 중 상기 카운터 값이 지시하는 특정 한 비트가 1이 아닐 때에는, 상기 제2 레지스터의 저장값이 1비트 좌측 쉬프트되는 단계;(e) shifting the stored value of the second register by one bit when the counter is greater than zero and one of the stored bits of the first register indicated by the counter value is not 1; (f)상기 (d)단계 또는 (e)단계가 수행된 후 상기 제2 레지스터 저장값의 최상위 비트가 1이면, 상기 제2 레지스터의 저장값과 상기 기약 다항식 f에 대한 배타적 논리합이 상기 제2 레지스터에 저장되고, 상기 카운터가 1 감소되는 단계;(f) if the most significant bit of the second register stored value is 1 after step (d) or (e) is performed, an exclusive logical sum of the stored value of the second register and the shortened polynomial f is the second; Stored in a register, the counter being decremented by one; (g)상기 (d)단계 또는 (e)단계가 수행된 후 상기 제2 레지스터 저장값의 최상위 비트가 1이 아니면, 상기 카운터가 1 감소되는 단계; 및(g) if the most significant bit of the second register stored value is not 1 after step (d) or (e) is performed, decrementing the counter by one; And (h)상기 카운터가 0보다 작을 때까지 상기 (b)단계 내지 (g)단계를 반복하고, 카운터가 0보다 작게 되면, 상기 제2 레지스터의 저장값이 나눗셈 연산의 결과값으로 출력되는 단계를 포함함을 특징으로 하는 유한체 다항식 곱셈 방법.(h) repeating steps (b) to (g) until the counter is less than zero, and if the counter is less than zero, outputting the stored value of the second register as a result of the division operation. A finite field polynomial multiplication method characterized by including. 제 1 항에 있어서, 상기 곱셈은The method of claim 1, wherein the multiplication is 상기 승수 다항식의 차수 또는 피승수 다항식의 차수 중 적은 차수만큼의 클럭으로 수행됨을 특징으로 하는 유한체 다항식 곱셈 장치.And a multiplier of the multiplier or the multiplicative polynomial of the clock.
KR1020030096895A 2003-12-24 2003-12-24 Finite field polynomial multiplier and Method thereof KR100564764B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020030096895A KR100564764B1 (en) 2003-12-24 2003-12-24 Finite field polynomial multiplier and Method thereof

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020030096895A KR100564764B1 (en) 2003-12-24 2003-12-24 Finite field polynomial multiplier and Method thereof

Publications (2)

Publication Number Publication Date
KR20050065128A true KR20050065128A (en) 2005-06-29
KR100564764B1 KR100564764B1 (en) 2006-03-27

Family

ID=37256655

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020030096895A KR100564764B1 (en) 2003-12-24 2003-12-24 Finite field polynomial multiplier and Method thereof

Country Status (1)

Country Link
KR (1) KR100564764B1 (en)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100670780B1 (en) * 2004-10-29 2007-01-17 한국전자통신연구원 Apparatus for hybrid multiplier in GF2^m and Method for multiplying
KR100954843B1 (en) * 2008-08-29 2010-04-28 고려대학교 산학협력단 Method and Apparatus of elliptic curve cryptographic operation based on block indexing on sensor mote and Recording medium using by the same
KR100974624B1 (en) * 2008-02-22 2010-08-09 고려대학교 산학협력단 Method and Apparatus of elliptic curve cryptography processing in sensor mote and Recording medium using it

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100670780B1 (en) * 2004-10-29 2007-01-17 한국전자통신연구원 Apparatus for hybrid multiplier in GF2^m and Method for multiplying
KR100974624B1 (en) * 2008-02-22 2010-08-09 고려대학교 산학협력단 Method and Apparatus of elliptic curve cryptography processing in sensor mote and Recording medium using it
KR100954843B1 (en) * 2008-08-29 2010-04-28 고려대학교 산학협력단 Method and Apparatus of elliptic curve cryptographic operation based on block indexing on sensor mote and Recording medium using by the same

Also Published As

Publication number Publication date
KR100564764B1 (en) 2006-03-27

Similar Documents

Publication Publication Date Title
Öztürk et al. Low-power elliptic curve cryptography using scaled modular arithmetic
US8862651B2 (en) Method and apparatus for modulus reduction
Großschädl A bit-serial unified multiplier architecture for finite fields GF (p) and GF (2 m)
Gutub et al. Scalable VLSI architecture for GF (p) Montgomery modular inverse computation
US7046800B1 (en) Scalable methods and apparatus for Montgomery multiplication
US7240204B1 (en) Scalable and unified multiplication methods and apparatus
US11502836B2 (en) Method for performing cryptographic operations on data in a processing device, corresponding processing device and computer program product
Abdulrahman et al. High-speed hybrid-double multiplication architectures using new serial-out bit-level mastrovito multipliers
CN113467750A (en) Large integer bit width division circuit and method for SRT algorithm with radix of 4
KR100478974B1 (en) Serial finite-field multiplier
Li et al. Research in fast modular exponentiation algorithm based on FPGA
KR100564764B1 (en) Finite field polynomial multiplier and Method thereof
US7174015B1 (en) Methods and apparatus for variable radix scalable modular multiplication
KR100670780B1 (en) Apparatus for hybrid multiplier in GF2^m and Method for multiplying
JP2002023999A (en) Multiplication module, multiplicative inverse computing circuit, multiplicative inverse computing control system, device using multiplicative inverse computing, encoding device and error correction decoder
JP2004125891A (en) Power remainder computer
KR100564765B1 (en) Finite field polynomial divider and Method thereof
KR100297110B1 (en) Modular multiplier
KR100946256B1 (en) Scalable Dual-Field Montgomery Multiplier On Dual Field Using Multi-Precision Carry Save Adder
US7471789B2 (en) Encryption circuit achieving higher operation speed
US7801937B1 (en) Method and apparatus for implementing a look-ahead for low radix Montgomery multiplication
Tian et al. Hardware implementation of a cryptographically secure pseudo-random number generators based on koblitz elliptic curves
Knezevic et al. Modular reduction without precomputational phase
WO2022022311A1 (en) Method and apparatus for generating pseudo-random sequence, electronic device, and storage medium
KR100858559B1 (en) Method for adding and multipying redundant binary and Apparatus for adding and multipying redundant binary

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: 20100226

Year of fee payment: 5

LAPS Lapse due to unpaid annual fee