KR101707334B1 - Apparatus for efficient elliptic curve cryptography processor and method for the same - Google Patents
Apparatus for efficient elliptic curve cryptography processor and method for the same Download PDFInfo
- Publication number
- KR101707334B1 KR101707334B1 KR1020150154992A KR20150154992A KR101707334B1 KR 101707334 B1 KR101707334 B1 KR 101707334B1 KR 1020150154992 A KR1020150154992 A KR 1020150154992A KR 20150154992 A KR20150154992 A KR 20150154992A KR 101707334 B1 KR101707334 B1 KR 101707334B1
- Authority
- KR
- South Korea
- Prior art keywords
- point
- scalar
- elliptic curve
- multiplier
- value
- Prior art date
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/30—Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
- H04L9/3066—Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy involving algebraic varieties, e.g. elliptic or hyper-elliptic curves
-
- 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
- G06F7/725—Finite field arithmetic over elliptic curves
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Analysis (AREA)
- Mathematical Optimization (AREA)
- Pure & Applied Mathematics (AREA)
- Mathematical Physics (AREA)
- Computing Systems (AREA)
- Computational Mathematics (AREA)
- Algebra (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- General Engineering & Computer Science (AREA)
- Complex Calculations (AREA)
Abstract
Description
아래의 설명은 타원곡선을 이용한 암호를 위한 효율적인 연산 장치 및 그 방법에 관한 것이다. 더욱 상세하게는 타원곡선 암호화를 위해 타원곡선 상에서 표현되는 점들에 대한 기하학적인 연산인 스칼라 포인트 곱셈을 처리하는 연산 장치 및 그 방법에 관한 것이다.
The following description relates to an efficient computation apparatus and method for encryption using elliptic curves. More particularly, to a computing device and method for processing scalar point multiplication, which is a geometric operation for points represented on an elliptic curve for elliptic curve encryption.
인터넷 및 무선통신이 성장함에 따라 정보 보호를 위한 암호 시스템의 필요성 또한 증가하고 있다. 통상적인 암호 시스템에서 송신자가 메시지의 의미를 알 수 있는 평문을 암호화하여 송신하게 되면, 수신자는 수신된 암호문을 다시 복호화하여 평문으로 복원하게 된다. 이러한 암호화 및 복호화 과정에서 사용되는 일정한 규칙 내지 방법을 암호화 키(Key)라고 한다. As Internet and wireless communications grow, the need for cryptographic systems to protect information is also increasing. In a typical cryptosystem, when a sender enciphers a plaintext to know the meaning of a message and transmits the plaintext, the recipient decrypts the received ciphertext again and restores the plaintext. A certain rule or method used in the encryption and decryption process is called an encryption key.
키는 암호화 과정에서 사용되는 암호키와 복호화 과정에서 사용되는 복호키가 동일한 대칭 암호키(Symmetric Cipher Key)와 암호키와 복호키가 다른 비대칭 암호키(Asymmetric Cipher Key)로 구분될 수 있다. 암호 시스템들 중 타원곡선 암호화 시스템(Elliptic Curve Cryptosystem, ECC)이 최근 학계나 산업계로부터 많은 관심을 모으고 있다. ECC는 공개 키 암호 시스템으로서 데이터의 암호화에는 공개 키가 사용되고 복호화에는 비밀 키가 사용되는 암호시스템으로서, 타원곡선이라 불리는 수학적 객체 상에서 정의되는 특수한 가산법을 기반으로 하여 암호화/복호화를 구현하는 암호 시스템이다. ECC의 장점은 RSA(Rivest Shamir Adleman)와 같은 기존의 다른 암호 시스템들에 비해 현저히 작은 크기의 키를 사용하면서도 동일한 안전도를 가진다는 점이다.The key may be divided into a symmetric cipher key having the same encryption key used in the encryption process and a decryption key used in the decryption process, and an asymmetric cipher key having a different encryption key and decryption key. Of the cryptographic systems, the elliptic curve cryptosystem (ECC) has recently attracted a great deal of attention from academia and industry. ECC is a public key cryptosystem that uses a public key for data encryption and a secret key for decryption. It is a cryptographic system that implements encryption / decryption based on a special addition method defined on a mathematical object called an elliptic curve to be. The advantage of ECC is that it uses a significantly smaller key compared to other cryptographic systems such as RSA (Rivest Shamir Adleman), but has the same security.
유한체(Galois Field, GF)상의 타원곡선은 수학식1을 만족하는 해들의 집합이다.The elliptic curve on the Galois Field (GF) is a set of solutions satisfying Equation (1).
수학식 1:Equation 1:
타원곡선 상에서의 연산 결과 Q는 타원곡선 상의 점 P와 스칼라 값 k의 스칼라 포인트 곱셈에 의해 수행된다. 이진 유한체 GF()상에서 m-bit의 크기를 갖는 스칼라 값 k는 수학식2와 같이 표현가능 하다.The operation result Q on the elliptic curve is performed by scalar point multiplication of the point P on the elliptic curve and the scalar value k. The scalar value k having the size of m-bits on the binary finite field GF () can be expressed by Equation (2).
수학식 2:Equation 2:
스칼라 포인트 곱셈의 결과인 Q는 수학식3과 같이 표현할 수 있다.The result Q of the scalar point multiplication can be expressed by Equation (3).
수학식 3:Equation (3)
포인트 곱셈 연산을 계산하기 위한 세 가지 주요 단계는 다음과 같다.The three main steps for calculating a point multiply operation are as follows.
(1) 점 P를 아핀 좌표(Affine Coordinate)에서 투영 좌표(Projective Coordinate)로 변환한다.(1) Converts point P from Affine Coordinate to Projective Coordinate.
(2) 투영 좌표 상에서 Q=kP를 계산한다.(2) Calculate Q = kP on the projection coordinates.
(3) 점 Q를 투영 좌표에서 아핀 좌표로 변환한다.(3) Converts point Q from projected coordinates to affine coordinates.
유한체를 이용한 연산에는 곱셈, 제곱연산, 덧셈, 뺄셈, 반전이 있다. 덧셈, 뺄셈 연산은 XOR(exclusive OR)연산을 통해 계산할 수 있다. 이진 유한체 GF()의 원소인 다항식을 a(x), b(x)라고 하여 수학식4와 같이 나타낼 수 있다.There are multiplication, squaring, addition, subtraction, and inversion in the finite field operation. Addition and subtraction operations can be calculated using an exclusive OR (XOR) operation. The polynomials of the elements of the binary finite field GF () can be expressed as Equation (4) as a (x) and b (x).
수학식 4:Equation 4:
이진 유한체 GF()의 원소인 다항식을 수학식4와 같이 a(x), b(x)라고 할 때, 유한체의 곱셈 연산은 수학식5과 같이 나타낼 수 있다. 이때, 사용된 연산은 부분합 과 기약다항식 f(x)의 modulo연산이다.When a polynomial, which is an element of the binary finite field GF (), is a (x) and b (x) as shown in Equation (4), the multiplication operation of the finite field can be expressed as Equation (5). At this time, the computation used is a modulo operation of the subtotal and irreducible polynomial f (x).
수학식 5:Equation 5:
흔히 사용되는 유한체 곱셈 연산으로는 Digit-Serial 곱셈연산과 Bit-Serial 곱셈연산이 있다. Digit-Serial 곱셈연산은 시스템의 지연을 줄이기 위해 사용되지만 하드웨어의 복잡도가 증가하는 반면, Bit-Serial 곱셈연산은 하드웨어의 복잡도는 줄어들지만 시스템의 지연이 증가하는 특징을 가지고 있다.Commonly used finite-field multiplication operations are Digit-Serial multiplication and Bit-Serial multiplication. Although the Digit-Serial multiplication operation is used to reduce the system delay, the complexity of the hardware increases, while the bit-serial multiplication operation has the feature that the hardware complexity decreases but the system delay increases.
제곱연산은 같은 입력을 이용하여 곱셈연산을 수행한 것과 같다. Lopez-Dahab 알고리즘은 ECC에 있어서 타원곡선 상에 존재하는 점들의 스칼라 포인트 곱셈 연산을 수행할 때 사용하는 알고리즘이다.The squaring operation is the same as performing the multiplication operation using the same input. The Lopez-Dahab algorithm is an algorithm used in ECC to perform scalar point multiplication of points on elliptic curves.
Motgomery Ladder Method는 Lopez-Dahab 알고리즘을 이용해 타원곡선 상의 스칼라 포인트 곱셈 연산을 할 때 가장 흔히 사용하는 알고리즘으로 아핀 좌표뿐만 아니라 투영 좌표에서도 연산이 가능하다.The Motgomery Ladder Method is the most commonly used algorithm for scalar point multiplication on an elliptic curve using the Lopez-Dahab algorithm. It can be operated on projected coordinates as well as affine coordinates.
하기의 표 1은 Montgomery Ladder Method 곱셈 연산 과정의 의사코드를 도시한다.Table 1 below shows the pseudo code of the Montgomery Ladder Method multiplication operation process.
표 1:Table 1:
이러한 연산을 수행하기 위해서는 포인트 덧셈 연산과 포인트 두 배 연산이 효율적으로 결합되어야 한다.To perform such an operation, the point addition operation and the point double operation must be efficiently combined.
점 , 가 타원곡선 위의 두 점이라고 할 때, 점 A와 B의 x좌표의 합인 와 는 수학식6과 같이 표현 가능하다.point , Is the two points on the elliptic curve, it is the sum of the x-coordinates of the points A and B Wow Can be expressed by Equation (6).
수학식 6:Equation (6)
투영 좌표를 사용하여를 , 로 다시 표현하면 수학식6은 수학식7로 표현할 수 있다.Using projection coordinates To , Expression (6) can be expressed by Equation (7).
수학식 7:Equation (7)
수학식7과 같이 새롭게 표현된 좌표와 Left-To-Right 알고리즘을 이용하여 스칼라 포인트 곱셈 연산을 수행한다.The scalar point multiply operation is performed using the newly expressed coordinates and the Left-To-Right algorithm as shown in Equation (7).
하기의 표 2는 Left-To-Right 곱셈 연산 과정의 의사코드를 도시한다.Table 2 below shows the pseudo code of the left-to-right multiplication operation.
표 2:Table 2:
실시예들은 타원곡선 암호화 장치 설계에 있어 종래의 Lopez-Dahab 알고리즘과 Left-To-Right 알고리즘을 개선하여 새로운 효율적인 Lopez-Dahab, Left-To-Right 알고리즘을 제안하고, 제안한 알고리즘을 이용하여 불필요한 반복을 줄여 낮은 하드웨어 복잡도를 가지는 효율적인 타원곡선 암호화 장치 및 그 방법을 제공한다. The embodiments propose a new efficient Lopez-Dahab and Left-To-Right algorithm by improving the conventional Lopez-Dahab algorithm and the left-to-right algorithm in designing an elliptic curve cryptosystem device. And provides an efficient elliptic curve encryption apparatus and method therefor with low hardware complexity.
실시예들은 Bit-Serial 구조의 스칼라 포인트 곱셈기를 사용하고 필드 연산을 제어하는 제어신호를 사용하여 적은 수준의 하드웨어 복잡도를 갖는 타원곡선 암호화 장치를 제공한다.
Embodiments provide a elliptic curve encryption device having a low level of hardware complexity using a control signal for controlling a field operation by using a scalar point multiplier of Bit-Serial structure.
일 실시예에 따르면, 타원곡선 암호화 방법은, 아핀 좌표에서 타원곡선 상의 점을 투영 좌표로 변환하는 단계; 상기 투영 좌표 상에서 상기 점에 대한 스칼라 포인트 곱셈 연산을 수행하는 단계; 상기 스칼라 포인트 곱셈 연산을 수행한 수행값을 Lopez-Dahab 알고리즘의 스칼라 포인트 곱셈 연산을 통하여 획득한 값과 비교하여 조정하는 단계; 상기 조정된 수행값을 상기 투영 좌표에서 상기 아핀 좌표로 변환함에 따라 결과값을 획득하는 단계; 및 상기 아핀 좌표로 변환함에 따라 획득된 결과값을 기반으로 암호화된 암호값를 산출하는 단계를 포함할 수 있다.According to one embodiment, an elliptic curve encryption method comprises: converting a point on an elliptic curve to projection coordinates in affine coordinates; Performing a scalar point multiply operation on the point on the projection coordinate; Comparing the performance value obtained by performing the scalar point multiplication operation with a value obtained through a scalar point multiply operation of the Lopez-Dahab algorithm; Acquiring a result value by converting the adjusted performance value from the projection coordinate to the affine coordinate; And calculating an encrypted encryption value based on the obtained result by transforming to affine coordinates.
일측에 따르면, 상기 투영 좌표 상에서 상기 점에 대한 스칼라 포인트 곱셈 연산을 수행하는 단계는, 수정된 Lopez-Dahab알고리즘, Left-To-Right알고리즘이 사용되어 스칼라 포인트 덧셈 연산을 줄임으로써 상기 스칼라 포인트 곱셈 연산의 수행 시간을 감소시키는 단계를 포함할 수 있다.According to one aspect, performing a scalar point multiply operation on the point on the projection coordinate may include using a modified Lopez-Dahab algorithm and a Left-To-Right algorithm to reduce the scalar point addition operation, Lt; RTI ID = 0.0 > a < / RTI >
또 다른 일측에 따르면, 상기 투영 좌표 상에서 상기 점에 대한 스칼라 포인트 곱셈 연산을 수행하는 단계는, 키의 비트값에 기초하여 상기 투영 좌표 상에서 상기 스칼라 포인트 덧셈 연산과 상기 스칼라 포인트 곱셈 연산이 결정되는 단계를 포함할 수 있다.According to another aspect, performing a scalar point multiply operation on the point on the projection coordinate may include determining the scalar point addition operation and the scalar point multiply operation on the projection coordinate based on a bit value of the key . ≪ / RTI >
또 다른 일측에 따르면, 상기 투영 좌표 상에서 상기 점에 대한 스칼라 포인트 곱셈 연산을 수행하는 단계는, 상기 키의 비트값이 0일 경우, 4번의 필드 제곱 연산과 1번의 필드 덧셈 연산 및 1번의 필드 곱셈 연산을 수행하는 포인트 두 배 연산을 수행하고, 상기 키의 비트값이 1일 경우, 상기 포인트 두 배 연산을 수행한 뒤, 4번의 필드 곱셈 연산과 2번의 필드 덧셈 연산 및 1번의 필드 제곱 연산을 수행하는 포인트 덧셈 연산을 수행하는 단계를 포함할 수 있다.According to another aspect, performing a scalar point multiply operation on the point on the projection coordinate may include performing four field squaring operations, one field addition operation, and one field multiplication operation when the bit value of the key is zero Performing a double operation on a point performing the operation and performing a double operation on the point when the bit value of the key is 1 and then performing a field multiplication operation of 4 times and a field addition operation of 2 times and a field square operation of 1 And performing a point addition operation to perform a point addition operation.
또 다른 일측에 따르면, 상기 투영 좌표 상에서 상기 점에 대한 스칼라 포인트 곱셈 연산을 수행하는 단계는, 상기 필드 곱셈 연산을 계산하기 위하여 Bit-Serial 구조를 갖는 필드 곱셈 연산기를 사용하는 단계를 포함할 수 있다.According to another aspect, performing the scalar point multiply operation on the point on the projection coordinate may include using a field multiply operator having a Bit-Serial structure to calculate the field multiply operation .
또 다른 일측에 따르면, 상기 투영 좌표 상에서 상기 점에 대한 스칼라 포인트 곱셈 연산을 수행하는 단계는, 제1 곱셈기와 제2 곱셈기를 동시에 계산하고 제1 신호와 제2 신호를 통하여 제3 곱셈기 및 제4 곱셈기를 사용가능(Enable)상태로 전환하고, 상기 제3 곱셈기 및 상기 제4 곱셈기를 병렬로 계산하는 단계를 포함할 수 있다.According to another aspect, performing a scalar point multiply operation on the point on the projection coordinate may include calculating a first multiplier and a second multiplier simultaneously and outputting a third multiplier and a fourth multiplier through a first signal and a second signal, Turning the multiplier to an enabled state, and calculating the third multiplier and the fourth multiplier in parallel.
또 다른 일측에 따르면, 상기 투영 좌표 상에서 상기 점에 대한 스칼라 포인트 곱셈 연산을 수행하는 단계는, 상기 제3 곱셈기 및 상기 제4 곱셈기의 출력값을 XOR 게이트를 통하여 XOR 연산을 수행하고, 상기 XOR 연산을 수행한 출력값을 다중화기와 제곱연산기를 통하여 수행값을 획득하는 단계를 포함할 수 있다.According to another aspect of the present invention, performing the scalar point multiply operation on the point on the projection coordinate may include performing an XOR operation on an output value of the third multiplier and the fourth multiplier through an XOR gate, And obtaining the execution value through the multiplexer and the squared calculator.
일 실시예에 따르면, 타원곡선 암호화 장치는, 아핀 좌표에서 타원곡선 상의 점을 투영 좌표로 변환하는 제1 변환부; 상기 투영 좌표 상에서 상기 점에 대한 스칼라 포인트 곱셈 연산을 수행하는 연산부; 상기 스칼라 포인트 곱셈 연산을 수행한 수행값을 Lopez-Dahab 알고리즘의 스칼라 포인트 곱셈 연산을 통하여 획득한 값과 비교하여 조정하는 조정부; 상기 조정된 수행값을 상기 투영 좌표에서 상기 아핀 좌표로 변환함에 따라 결과값을 획득하는 제2 변환부; 및 상기 아핀 좌표로 변환함에 따라 획득된 결과값을 기반으로 암호화된 암호값를 산출하는 획득부를 포함할 수 있다.
According to one embodiment, an elliptic curve encryption apparatus includes: a first conversion unit for converting a point on an elliptic curve to projection coordinates in affine coordinates; An operation unit for performing a scalar point multiply operation on the point on the projection coordinate system; An adjustment unit for comparing the performance value obtained by performing the scalar point multiplication operation with a value obtained through a scalar point multiply operation of the Lopez-Dahab algorithm; A second transform unit for transforming the adjusted performance value from the projection coordinate to the affine coordinate to obtain a result value; And an obtaining unit for calculating an encrypted value based on the result obtained by transforming to affine coordinates.
실시예들에 따르면, 타원곡선 암호화 장치 설계에 있어서 제안하는 알고리즘을 사용함으로써, 불필요한 스칼라 포인트 덧셈 연산을 줄일 수 있는 효율적인 타원곡선 암호화 장치 및 그 방법을 제공할 수 있다. According to embodiments, an efficient elliptic curve encryption apparatus and method can be provided that can reduce unnecessary scalar point addition operations by using an algorithm proposed in the design of an elliptic curve cryptosystem apparatus.
실시예들에 따르면, 타원곡선 암호화 장치 설계에 있어서 스칼라 포인트 곱셈 연산부에서 Bit-Serial 구조와 필드 연산 제어신호를 사용함으로써, 낮은 하드웨어 복잡도를 가지며 시스템의 지연을 줄일 수 있는 효율적인 타원곡선 암호화 장치 및 그 방법을 제공할 수 있다.
According to embodiments, an efficient elliptic curve encryption device having a low hardware complexity and reducing a system delay by using a bit-serial structure and a field operation control signal in a scalar point multiply operation unit in the design of an elliptic curve cryptosystem device, and Method can be provided.
도 1은 일 실시예에 따른 타원곡선 암호화 장치의 구성을 나타내는 도면이다.
도 2는 일 실시예에 따른 스칼라 포인트 곱셈 연산부를 나타내는 도면이다.
도 3은 일 실시예에 따른 필드 곱셈 연산부를 나타내는 도면이다.
도 4는 일 실시예에 따른 스칼라 포인트 곱셈 연산 방법의 흐름도를 나타내는 도면이다.
도 5는 일 실시예에 따른 타원곡선 암호화 장치의 구성을 나타낸 블록도이다. 1 is a block diagram illustrating a configuration of an elliptic curve encryption apparatus according to an embodiment of the present invention.
2 is a diagram illustrating a scalar point multiply operation unit according to an embodiment.
3 is a diagram illustrating a field multiplication operation unit according to an embodiment of the present invention.
4 is a flowchart illustrating a scalar point multiply operation method according to an embodiment of the present invention.
5 is a block diagram illustrating a configuration of an elliptic curve encryption apparatus according to an embodiment of the present invention.
이하, 실시예를 첨부한 도면을 참조하여 상세히 설명한다.
Hereinafter, embodiments will be described in detail with reference to the accompanying drawings.
일 실시예에 따른 타원곡선 암호화 장치는 다양한 암호 시스템을 위한 타원곡선 암호화 장치에 동일하게 적용될 수 있다. 아래에서는 GF()의 크기를 갖는 이진 유한체를 기준으로 설명하기로 한다.The elliptic curve cryptosystem according to one embodiment can be equally applied to an elliptic curve cryptosystem for various cryptosystems. In the following, a binary finite element having a size of GF () will be described.
일 실시예에 따른 타원곡선 암호화 장치는 타원곡선 암호화 장치를 위한 알고리즘으로서 키의 길이가 163비트인 경우 최적화 된 낮은 하드웨어 복잡도를 가지는 수정된 Lopez-Dahab알고리즘, Left-To-Right알고리즘이 사용될 수 있다.The elliptic curve cryptosystem according to one embodiment is an algorithm for an elliptic curve cryptosystem, and a modified Lopez-Dahab algorithm and a left-to-right algorithm having optimized low hardware complexity can be used when the key length is 163 bits .
도 1은 일 실시예에 따른 타원곡선 암호화 장치의 구성을 나타내는 도면이다.1 is a block diagram illustrating a configuration of an elliptic curve encryption apparatus according to an embodiment of the present invention.
타원곡선 암호화 장치는 아핀 좌표에서 타원곡선 상의 점을 투영 좌표로 변환할 수 있다. 타원곡선 암호화 장치는 투영 좌표 상에서 점에 대한 스칼라 포인트 곱셈 연산을 수행할 수 있다. 타원곡선 암호화 장치는 스칼라 포인트 곱셈 연산을 수행한 수행값을 Lopez-Dahab 알고리즘의 스칼라 포인트 곱셈 연산을 통하여 획득한 값과 비교하여 조정할 수 있다. 타원곡선 암호화 장치는 조정된 수행값을 투영 좌표에서 아핀 좌표로 변환함에 따라 결과값을 획득할 수 있다. 타원곡선 암호화 장치는 아핀 좌표로 변환함에 따라 획득된 결과값을 기반으로 암호화된 암호값을 산출할 수 있다. An elliptic curve cryptographic device can convert a point on an elliptic curve to a projected coordinate in affine coordinates. An elliptic curve cryptographic device can perform a scalar point multiply operation on a point on a projection coordinate. The elliptic curve encryption device can adjust the performance value obtained by performing the scalar point multiply operation by comparing it with the value obtained through the scalar point multiply operation of the Lopez-Dahab algorithm. The elliptic curve cryptographic device can obtain the result by converting the adjusted performance value from projected coordinates to affine coordinates. The elliptic curve cryptographic device can calculate the encrypted cryptographic value based on the obtained result as it is converted into affine coordinates.
본 발명에서는 제안된 알고리즘을 사용하는 타원곡선 암호화 장치는 불필요한 스칼라 포인트 곱셈 연산을 줄임으로써, 효율적으로 연산을 수행한다.In the present invention, the elliptic curve cryptosystem using the proposed algorithm performs computation efficiently by reducing the unnecessary scalar point multiply operation.
하기의 표 3은 제안하는 알고리즘의 곱셈 연산 과정의 의사코드를 도시한다.Table 3 below shows the pseudo code of the multiplication operation of the proposed algorithm.
표 3:Table 3:
제안하는 알고리즘은 네 가지 단계를 거쳐 포인트 곱셈 연산을 수행한다.The proposed algorithm performs point multiplication operation through four steps.
(1) 타원곡선 상의 점 P를 아핀 좌표(Affine Coordinate)에서 투영 좌표(Projective Coordinate)로 변환한다.(1) Converts the point P on the elliptic curve from Affine Coordinate to Projective Coordinate.
(2) 투영 좌표 상에서 포인트 곱셈 연산을 수행한다.(2) Perform point multiplication operation on projection coordinates.
(3) Lopez-Dahab 알고리즘과 비교하여 정확한 값을 얻는다.(3) Obtain accurate values compared with the Lopez-Dahab algorithm.
(4) 투영 좌표에서 아핀 좌표로 변환하고 결과값 Q를 얻는다.(4) Transform from projection coordinate to affine coordinate and obtain result Q.
제안하는 수정된 Lopez-Dahab 알고리즘과 Left-To-Right 알고리즘은 스칼라 포인트 곱셈 연산을 수행함에 있어서 많은 수의 스칼라 포인트 덧셈 연산을 줄이는 장점을 갖는다.The proposed modified Lopez-Dahab algorithm and Left-To-Right algorithm have the advantage of reducing the number of scalar point addition operations in scalar point multiply operation.
제안하는 알고리즘의 첫 번째 단계에서 타원곡선 상의 점 P를 아핀 좌표에서 투영 좌표로 변환하고 로 초기 값을 설정할 수 있다. 과 값은 키 값의 LSB인 에 의해 결정될 수 있다. 이면 이고 이면 과 은 0이다.In the first step of the proposed algorithm, the point P on the elliptic curve is transformed from affine coordinates to projection coordinates Can be set to the initial value. and The value is the LSB of the key value. Lt; / RTI > If ego If and Is zero.
투영 좌표 상에서 포인트 곱셈 연산을 수행하는 단계에서는, 이후 키의 비트 값인 에 따라 투영 좌표 상에서 스칼라 포인트 덧셈 연산과 스칼라 포인트 곱셈 연산이 결정될 수 있다. 개선된 알고리즘에 의한 이 단계의 장점은 키의 비트 값인 가 0일 경우 불필요한 스칼라 포인트 덧셈 연산을 줄일 수 있다. 그러므로 스칼라 포인트 곱셈 연산을 수행하는데 소요되는 시간이 확연히 줄어들게 된다.In performing the point multiply operation on the projection coordinates, A scalar point addition operation and a scalar point multiplication operation can be determined on the projection coordinate. The advantage of this step with the improved algorithm is that the bit value of the key Is 0, it is possible to reduce unnecessary scalar point addition operations. Therefore, the time required to perform the scalar point multiplication operation is significantly reduced.
표3에 나온 것과 같이 타원곡선 암호화 장치는 키의 비트 값이 0일 경우, 네 번의 필드 제곱 연산()과 한 번의 필드 덧셈 연산(), 한 번의 필드 곱셈 연산()을 수행하는 포인트 두 배 연산만을 수행할 수 있다. 타원곡선 암호화 장치는 키의 비트 값이 1일 경우 포인트 두 배 연산을 수행한 뒤, 네 번의 필드 곱셈 연산()과 두 번의 필드 덧셈 연산(), 한 번의 필드 제곱 연산을 수행하는 포인트 덧셈 연산을 추가로 수행할 수 있다.As shown in Table 3, the elliptic curve cryptosystem can perform four field squared operations ( ) And one field addition operation ( ), One field multiplication operation ). ≪ / RTI > An elliptic curve encryption device performs a double-point operation if the bit value of the key is 1, and then performs four field multiplication operations ) And two field addition operations ( ), One field square operation A point addition operation can be performed.
타원곡선 암호화 장치는 모든 연산의 반복이 종료되면 점과 점에 대한 스칼라 포인트 곱셈 연산을 수행한 수행값 값과 기존의 Lopez-Dahab 알고리즘의 값 사이의 차이가 발생함을 판단할 수 있다. 타원곡선 암호화 장치는 기존의 Lopez-Dahab 알고리즘의 스칼라 포인트 곱셈 연산을 통해 얻은 값과 수정된 Lopez-Dahab 알고리즘의 수행값을 비교함으로써 수행값 값을 정확하게 수정해주는 과정을 수행할 수 있다.The elliptic curve cryptographic device performs the scalar point multiply operation on points and points when the iteration of all operations is completed. Values of the conventional Lopez-Dahab algorithm It can be determined that a difference between values occurs. The elliptic curve encryption device compares the value obtained by the scalar point multiply operation of the existing Lopez-Dahab algorithm with the performance value of the modified Lopez-Dahab algorithm, The process of correcting the value can be performed.
일 실시예에 따른 타원곡선 암호화 장치에 있어서, 타원곡선 암호화 장치의 구조는 알고리즘의 반복과정에서 다섯 개의 필드 곱셈기를 사용할 수 있다.In the elliptic curve cryptosystem according to the embodiment, the structure of the elliptic curve cryptosystem may use five field multipliers in an iteration of the algorithm.
타원곡선 암호화 장치는 수정된 투영 좌표 상에서 점에 대한 스칼라 포인트 곱셈 연산을 수행하고, 투영 좌표 상에서 포인트 두 배 연산을 수행할 수 있다. 타원곡선 암호화 장치는 제안된 구조에서 두 개의 제곱 연산은 제곱 연산 장치1(Squarer1)과 제곱 연산 장치3(Squarer3)에 의해 병렬로 수행되며 과 의 계산은 제곱 연산 장치2(Squarer2)와 제곱 연산 장치4(Squarer4)에 의해 동시에 수행될 수 있다. 제곱 연산 장치2(Squarer2)의 결과 와 제곱 연산 장치4(Squarer4)의 결과 는 곱셈기5에서 곱셈 연산을 통해 계산될 수 있다. 제곱 연산 장치1(Squarer2)과 제곱 연산 장치3(Squarer3)의 결과는 163비트 XOR게이트에서 XOR연산에 의해 계산될 수 있다.The elliptic curve cryptographic device may perform a scalar point multiply operation on the points on the modified projection coordinates and perform a double point operation on the projection coordinates. The elliptic curve cryptographic device uses two squared operations Are performed in parallel by a squaring unit 1 (Squarer 1) and a squaring unit 3 (Squarer 3) and Can be performed simultaneously by the squaring apparatus 2 (Squarer 2) and the squaring apparatus 4 (Squarer 4). The result of
도 3을 참고하면, 필드 곱셈 연산부를 나타낸 것이다. Referring to FIG. 3, a field multiplication operation unit is shown.
타원곡선 암호화 장치의 스칼라 포인트 곱셈 장치를 설계함에 있어서 가장 많이 사용되는 모듈은 필드 곱셈기이다. 필드 곱셈 연산을 계산하기 위해 Bit-Serial 방법을 사용 할 경우 Digit-Serial 방법을 사용한 경우보다 클럭 사이클 수는 많지만 낮은 하드웨어 복잡도를 갖는다. 일 실시예에 따른 타원곡선 암호화 장치는 Bit-Serial 방법을 사용한 곱셈기와 필드 연산 제어신호를 이용하여 낮은 하드웨어의 복잡도를 가지면서 시스템의 지연의 적은 타원곡선 암호화 장치 및 그 방법을 제공한다.The most popular module in designing a scalar point multiplier for an elliptic curve cryptosystem is a field multiplier. When using the Bit-Serial method to compute the field multiply operation, the number of clock cycles is larger than that of using the Digit-Serial method, but the hardware complexity is low. The elliptic curve encryption apparatus according to an embodiment provides an elliptic curve encryption apparatus and a method using the multiplier and the field operation control signal using the Bit-Serial method and having low hardware complexity and low system delay.
도 2는 일 실시예에 따른 스칼라 포인트 곱셈 연산부를 나타내는 도면이다.2 is a diagram illustrating a scalar point multiply operation unit according to an embodiment.
도2에서 도시한 것처럼 곱셈기1은 , 곱셈기2는 를 동시에 계산하고 m_done1신호와 m_done2신호를 통해 곱셈기3과 곱셈기4를 사용 가능(enable)상태로 바꾸며 곱셈기3과 곱셈기4는 와 를 병렬로 계산할 수 있다. As shown in FIG. 2, the
타원곡선 암호화 장치는 제안한 알고리즘의 수행시간을 두 배로 줄일 수 있는 방법을 제공할 수 있다. 곱셈기3과 곱셈기4의 출력값은 163비트 XOR 게이트를 통해 XOR 연산을 하며 결과값은 다중화기(Multiplexer)와 제곱연산장치5(Squarer5)를 통해 새로운 , 값을 출력할 수 있다.The elliptic curve encryption device can provide a way to reduce the execution time of the proposed algorithm to twice. The output values of
일 실시예에 따른 타원곡선 암호화 장치는 수정된 Lopez-Dahab 알고리즘, Left-To-Right 알고리즘을 사용함으로써 불필요한 계산과정을 줄이고 반복해서 사용하는 모듈을 재사용함으로써 낮은 하드웨어 복잡도를 가진다는 점이다. The elliptic curve cryptosystem according to an embodiment uses a modified Lopez-Dahab algorithm and a left-to-right algorithm, thereby reducing unnecessary calculation processes and reusing modules repeatedly used, resulting in low hardware complexity.
타원곡선 암호화 장치는 투영 좌표를 아핀 좌표로 변환함에 따라 결과값을 반환할 수 있다. An elliptic curve cryptographic device can return a result as it transforms the projection coordinates into affine coordinates.
도 4는 일 실시예에 따른 스칼라 포인트 곱셈 연산 방법의 흐름도를 나타내는 도면이다. 4 is a flowchart illustrating a scalar point multiply operation method according to an embodiment of the present invention.
타원곡선 암호화 장치는 아핀 좌표에서 타원곡선 상의 점을 투영 좌표로 변환할 수 있다(410). 타원곡선 암호화 장치는 타원곡선 상의 점 P를 아핀 좌표에서 투영 좌표로 변환하고, 로 초기 값을 설정할 수 있다. 과 값은 키 값의 LSB인 에 의해 결정될 수 있다. 이면 이고 이면 과 은 0이다.An elliptic curve cryptographic device may transform a point on the elliptic curve to projection coordinates in affine coordinates (410). The elliptic curve cryptographic apparatus converts the point P on the elliptic curve from affine coordinates to projection coordinates, Can be set to the initial value. and The value is the LSB of the key value. Lt; / RTI > If ego If and Is zero.
타원곡선 암호화 장치는 키의 비트 값인 에 따라 투영 좌표 상에서 스칼라 포인트 덧셈 연산과 스칼라 포인트 곱셈 연산이 결정될 수 있다. 타원곡선 암호화 장치는 키의 비트 값이 0일 경우, 네 번의 필드 제곱 연산()과 한 번의 필드 덧셈 연산(), 한 번의 필드 곱셈 연산()을 수행하는 포인트 두 배 연산만을 수행할 수 있다. 타원곡선 암호화 장치는 키의 비트 값이 1일 경우, 알고리즘은 포인트 두 배 연산을 수행한 뒤, 네 번의 필드 곱셈 연산()과 두 번의 필드 덧셈 연산(), 한 번의 필드 제곱 연산을 수행하는 포인트 덧셈 연산을 추가로 수행할 수 있다.An elliptic curve encryption device is a key bit value A scalar point addition operation and a scalar point multiplication operation can be determined on the projection coordinate. An elliptic curve cryptographic device uses four field squared operations when the bit value of the key is zero ) And one field addition operation ( ), One field multiplication operation ). ≪ / RTI > An elliptic curve cryptographic device, if the bit value of the key is 1, then the algorithm performs a double-point operation and then performs four field multiplication operations ) And two field addition operations ( ), One field square operation A point addition operation can be performed.
타원곡선 암호화 장치는 투영 좌표 상에서 점과 스칼라 포인트 곱셈 연산을 수행함에 따라 획득된 수행값 과 종래의 Lopez-Dahab 알고리즘의 값 사이의 차이가 발생한다. 이에 따라 타원곡선 암호화 장치는 종래의 Lopez-Dahab 알고리즘에서 스칼라 포인트 곱셈 연산을 통해 얻은 값과 수정된 Lopez-Dahab 알고리즘에서 스칼라 포인트 곱셈 연산을 통하여 획득된 수행값을 비교하여 값을 정확하게 수정해주는 과정을 수행할 수 있다.The elliptic curve encryption device performs point and scalar point multiply operations on the projection coordinates, And the conventional Lopez-Dahab algorithm There is a difference between the values. Accordingly, the elliptic curve encryption device compares the value obtained through the scalar point multiplication operation in the conventional Lopez-Dahab algorithm with the execution value obtained through the scalar point multiply operation in the modified Lopez-Dahab algorithm The process of correcting the value can be performed.
예를 들면, 타원곡선 암호화 장치는 다섯 개의 필드 곱셈기를 사용할 수 있다. 타원곡선 암호화 장치는 투영 좌표 상에서 점에 대한 스칼라 포인트 곱셈 연산을 수행하고, 투영 좌표 상에서 포인트 두 배 연산을 수행할 수 있다. 타원곡선 암호화 장치는 제안된 구조에서 두 개의 제곱 연산은 제곱 연산 장치1(Squarer1)과 제곱 연산 장치3(Squarer3)에 의해 병렬로 수행되며 과 의 계산은 제곱 연산 장치2(Squarer2)와 제곱 연산 장치4(Squarer4)에 의해 동시에 수행될 수 있다. 제곱 연산 장치2(Squarer2)의 결과 와 제곱 연산 장치4(Squarer4)의 결과 는 곱셈기5에서 곱셈 연산을 통해 계산될 수 있다. 제곱 연산 장치1(Squarer2)과 제곱 연산 장치3(Squarer3)의 결과는 163비트 XOR게이트에서 XOR연산에 의해 계산될 수 있다.For example, an elliptic curve cryptographic device can use five field multipliers. The elliptic curve cryptographic device may perform a scalar point multiply operation on the point on the projection coordinate and perform a point double operation on the projection coordinate. The elliptic curve cryptographic device uses two squared operations Are performed in parallel by a squaring unit 1 (Squarer 1) and a squaring unit 3 (Squarer 3) and Can be performed simultaneously by the squaring apparatus 2 (Squarer 2) and the squaring apparatus 4 (Squarer 4). The result of
타원곡선 암호화 장치는 스칼라 포인트 곱셈 장치를 필드 곱셈기로 사용할 수 있다. 타원곡선 암호화 장치는 Bit-Serial 방법을 사용한 곱셈기와 필드 연산 제어신호를 이용할 수 있다. An elliptic curve cryptographic device can use a scalar point multiplier as a field multiplier. The elliptic curve encryption device can use the multiplier and the field operation control signal using the bit-serial method.
곱셈기1은 , 곱셈기2는 를 동시에 계산하고 m_done1신호와 m_done2신호를 통해 곱셈기3과 곱셈기4를 사용 가능(enable)상태로 바꾸며 곱셈기3과 곱셈기4는 와 를 병렬로 계산할 수 있다. The
타원곡선 암호화 장치는 곱셈기3과 곱셈기4의 출력값을 163비트 XOR 게이트를 통해 XOR 연산을 수행할 수 있으며, 결과값은 다중화기(Multiplexer)와 제곱연산장치5(Squarer5)를 통해 새로운 , 값을 출력할 수 있다. The elliptic curve cryptosystem uses the 163-bit XOR gate to XOR the output values of the
타원곡선 암호화 장치는 조정된 수행값을 투영 좌표에서 아핀 좌표로 변환함에 따라 결과값을 획득할 수 있다(420). 타원곡선 암호화 장치는 결과값 Q를 획득할 수 있다. 이를 통하여 타원곡선 암호화 장치는 아핀 좌표로 변환됨에 따라 획득된 결과값을 기반으로 암호화된 암호값을 산출할 수 있다. The elliptic curve cryptographic device may obtain the result by transforming the adjusted performance value from projected coordinates to affine coordinates (420). The elliptic curve encryption device can obtain the result value Q. Thus, the elliptic curve cryptosystem can calculate the encrypted cryptographic value based on the acquired result as it is converted into affine coordinates.
도 5는 일 실시예에 따른 타원곡선 암호화 장치의 구성을 나타낸 블록도이다. 5 is a block diagram illustrating a configuration of an elliptic curve encryption apparatus according to an embodiment of the present invention.
타원곡선 암호화 장치는 제1 변환부(510), 연산부(520), 조정부(530), 제2 변환부(540) 및 획득부(550)를 포함할 수 있다. The elliptic curve cryptographic apparatus may include a
제1 변환부(510)는 아핀 좌표에서 타원곡선 상의 점을 투영 좌표로 변환할 수 있다. The
연산부(520)는 투영 좌표 상에서 점에 대한 스칼라 포인트 곱셈 연산을 수행할 수 있다. 연산부(520)는 수정된 Lopez-Dahab알고리즘, Left-To-Right알고리즘이 사용되어 스칼라 포인트 덧셈 연산을 줄임으로써 스칼라 포인트 곱셈 연산의 수행 시간을 감소시킬 수 있다.The
연산부(520)는 키의 비트값에 기초하여 상기 투영 좌표 상에서 스칼라 포인트 덧셈 연산과 스칼라 포인트 곱셈 연산이 결정될 수 있다. 연산부(520)는 키의 비트값이 0일 경우, 4번의 필드 제곱 연산과 1번의 필드 덧셈 연산 및 1번의 필드 곱셈 연산을 수행하는 포인트 두 배 연산을 수행하고, 키의 비트값이 1일 경우, 포인트 두 배 연산을 수행한 뒤, 4번의 필드 곱셈 연산과 2번의 필드 덧셈 연산 및 1번의 필드 제곱 연산을 수행하는 포인트 덧셈 연산을 수행할 수 있다. The
연산부(520)는 필드 곱셈 연산을 계산하기 위하여 Bit-Serial 구조를 갖는 필드 곱셈 연산기를 사용할 수 있다.The
연산부(520)는 제1 곱셈기와 제2 곱셈기를 동시에 계산하고 제1 신호와 제2 신호를 통하여 제3 곱셈기 및 제4 곱셈기를 사용가능(Enable)상태로 전환하고, 제3 곱셈기 및 제4 곱셈기를 병렬로 계산할 수 있다. 연산부(520)는 제3 곱셈기 및 제4 곱셈기의 출력값을 XOR 게이트를 통하여 XOR 연산을 수행하고, XOR 연산을 수행한 출력값을 다중화기와 제곱연산기를 통하여 수행값을 획득할 수 있다. The
조정부(530)는 스칼라 포인트 곱셈 연산을 수행한 Lopez-dahab 알고리즘의 스칼라 포인트 곱셈 연산을 통하여 획득한 값과 비교하여 조정할 수 있다. The adjusting
제2 변환부(540)는 조정된 수행값을 투영 좌표에서 아핀 좌표로 변환함에 따라 결과값을 획득할 수 있다. The
획득부(550)는 아핀 좌표로 변환함에 따라 획득된 결과값을 기반으로 암호화된 암호값을 산출할 수 있다. The acquiring
이상에서 설명된 장치는 하드웨어 구성요소, 소프트웨어 구성요소, 및/또는 하드웨어 구성요소 및 소프트웨어 구성요소의 조합으로 구현될 수 있다. 예를 들어, 실시예들에서 설명된 장치 및 구성요소는, 예를 들어, 프로세서, 콘트롤러, ALU(arithmetic logic unit), 디지털 신호 프로세서(digital signal processor), 마이크로컴퓨터, FPGA(field programmable gate array), PLU(programmable logic unit), 마이크로프로세서, 또는 명령(instruction)을 실행하고 응답할 수 있는 다른 어떠한 장치와 같이, 하나 이상의 범용 컴퓨터 또는 특수 목적 컴퓨터를 이용하여 구현될 수 있다. 처리 장치는 운영 체제(OS) 및 상기 운영 체제 상에서 수행되는 하나 이상의 소프트웨어 애플리케이션을 수행할 수 있다. 또한, 처리 장치는 소프트웨어의 실행에 응답하여, 데이터를 접근, 저장, 조작, 처리 및 생성할 수도 있다. 이해의 편의를 위하여, 처리 장치는 하나가 사용되는 것으로 설명된 경우도 있지만, 해당 기술분야에서 통상의 지식을 가진 자는, 처리 장치가 복수 개의 처리 요소(processing element) 및/또는 복수 유형의 처리 요소를 포함할 수 있음을 알 수 있다. 예를 들어, 처리 장치는 복수 개의 프로세서 또는 하나의 프로세서 및 하나의 콘트롤러를 포함할 수 있다. 또한, 병렬 프로세서(parallel processor)와 같은, 다른 처리 구성(processing configuration)도 가능하다.The apparatus described above may be implemented as a hardware component, a software component, and / or a combination of hardware components and software components. For example, the apparatus and components described in the embodiments may be implemented within a computer system, such as, for example, a processor, a controller, an arithmetic logic unit (ALU), a digital signal processor, a microcomputer, a field programmable gate array (FPGA) , A programmable logic unit (PLU), a microprocessor, or any other device capable of executing and responding to instructions. The processing device may execute an operating system (OS) and one or more software applications running on the operating system. The processing device may also access, store, manipulate, process, and generate data in response to execution of the software. For ease of understanding, the processing apparatus may be described as being used singly, but those skilled in the art will recognize that the processing apparatus may have a plurality of processing elements and / As shown in FIG. For example, the processing unit may comprise a plurality of processors or one processor and one controller. Other processing configurations are also possible, such as a parallel processor.
소프트웨어는 컴퓨터 프로그램(computer program), 코드(code), 명령(instruction), 또는 이들 중 하나 이상의 조합을 포함할 수 있으며, 원하는 대로 동작하도록 처리 장치를 구성하거나 독립적으로 또는 결합적으로(collectively) 처리 장치를 명령할 수 있다. 소프트웨어 및/또는 데이터는, 처리 장치에 의하여 해석되거나 처리 장치에 명령 또는 데이터를 제공하기 위하여, 어떤 유형의 기계, 구성요소(component), 물리적 장치, 가상 장치(virtual equipment), 컴퓨터 저장 매체 또는 장치, 또는 전송되는 신호 파(signal wave)에 영구적으로, 또는 일시적으로 구체화(embody)될 수 있다. 소프트웨어는 네트워크로 연결된 컴퓨터 시스템 상에 분산되어서, 분산된 방법으로 저장되거나 실행될 수도 있다. 소프트웨어 및 데이터는 하나 이상의 컴퓨터 판독 가능 기록 매체에 저장될 수 있다.The software may include a computer program, code, instructions, or a combination of one or more of the foregoing, and may be configured to configure the processing device to operate as desired or to process it collectively or collectively Device can be commanded. The software and / or data may be in the form of any type of machine, component, physical device, virtual equipment, computer storage media, or device , Or may be permanently or temporarily embodied in a transmitted signal wave. The software may be distributed over a networked computer system and stored or executed in a distributed manner. The software and data may be stored on one or more computer readable recording media.
실시예에 따른 방법은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 매체에 기록되는 프로그램 명령은 실시예를 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다. 상기된 하드웨어 장치는 실시예의 동작을 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.The method according to an embodiment may be implemented in the form of a program command that can be executed through various computer means and recorded in a computer-readable medium. The computer-readable medium may include program instructions, data files, data structures, and the like, alone or in combination. The program instructions to be recorded on the medium may be those specially designed and configured for the embodiments or may be available to those skilled in the art of computer software. Examples of computer-readable media include magnetic media such as hard disks, floppy disks and magnetic tape; optical media such as CD-ROMs and DVDs; magnetic media such as floppy disks; Magneto-optical media, and hardware devices specifically configured to store and execute program instructions such as ROM, RAM, flash memory, and the like. Examples of program instructions include machine language code such as those produced by a compiler, as well as high-level language code that can be executed by a computer using an interpreter or the like. The hardware devices described above may be configured to operate as one or more software modules to perform the operations of the embodiments, and vice versa.
이상과 같이 실시예들이 비록 한정된 실시예와 도면에 의해 설명되었으나, 해당 기술분야에서 통상의 지식을 가진 자라면 상기의 기재로부터 다양한 수정 및 변형이 가능하다. 예를 들어, 설명된 기술들이 설명된 방법과 다른 순서로 수행되거나, 및/또는 설명된 시스템, 구조, 장치, 회로 등의 구성요소들이 설명된 방법과 다른 형태로 결합 또는 조합되거나, 다른 구성요소 또는 균등물에 의하여 대치되거나 치환되더라도 적절한 결과가 달성될 수 있다.While the present invention has been particularly shown and described with reference to exemplary embodiments thereof, it is to be understood that the invention is not limited to the disclosed exemplary embodiments. For example, it is to be understood that the techniques described may be performed in a different order than the described methods, and / or that components of the described systems, structures, devices, circuits, Lt; / RTI > or equivalents, even if it is replaced or replaced.
그러므로, 다른 구현들, 다른 실시예들 및 특허청구범위와 균등한 것들도 후술하는 특허청구범위의 범위에 속한다.
Therefore, other implementations, other embodiments, and equivalents to the claims are also within the scope of the following claims.
Claims (8)
아핀 좌표(Affine Coordinate)에서 타원곡선 상의 점을 투영 좌표(Projective Coordinate)로 변환하는 단계;
상기 투영 좌표 상에서 상기 점에 대한 스칼라 포인트 곱셈 연산을 수행하는 단계;
상기 스칼라 포인트 곱셈 연산을 수행한 수행값을 Lopez-Dahab 알고리즘의 스칼라 포인트 곱셈 연산을 통하여 획득한 값과 비교하여 조정하는 단계;
상기 조정된 수행값을 상기 투영 좌표에서 상기 아핀 좌표로 변환함에 따라 결과값을 획득하는 단계; 및
상기 아핀 좌표로 변환함에 따라 획득된 결과값을 기반으로 암호화된 암호값을 산출하는 단계
를 포함하고,
상기 투영 좌표 상에서 상기 점에 대한 스칼라 포인트 곱셈 연산을 수행하는 단계는,
Bit-Serial 구조의 곱셈 연산기 및 필드 연산을 사용하는 제어 신호를 사용하여 상기 투영 좌표 상에서 상기 점에 대한 스칼라 포인트 곱셈 연산을 수행하고, 상기 투영 좌표 상에서 포인트 두 배 연산을 수행하는 단계
를 포함하는 타원곡선 암호화 방법. In an elliptic curve encryption method,
Transforming a point on the elliptic curve to a projective coordinate in Affine Coordinate;
Performing a scalar point multiply operation on the point on the projection coordinate;
Comparing the performance value obtained by performing the scalar point multiplication operation with a value obtained through a scalar point multiply operation of the Lopez-Dahab algorithm;
Acquiring a result value by converting the adjusted performance value from the projection coordinate to the affine coordinate; And
Calculating an encrypted password value based on the obtained result value by transforming to affine coordinates
Lt; / RTI >
Wherein performing a scalar point multiply operation on the point on the projection coordinate comprises:
Performing a scalar point multiply operation on the point on the projection coordinate using a control signal using a Bit-Serial structured multiplication operator and a field operation, and performing a point double operation on the projection coordinate
/ RTI >
상기 투영 좌표 상에서 상기 점에 대한 스칼라 포인트 곱셈 연산을 수행하는 단계는,
수정된 Lopez-Dahab알고리즘, Left-To-Right알고리즘이 사용되어 스칼라 포인트 덧셈 연산을 줄임으로써 상기 스칼라 포인트 곱셈 연산의 수행 시간을 감소시키는 단계
를 포함하는 타원곡선 암호화 방법.The method according to claim 1,
Wherein performing a scalar point multiply operation on the point on the projection coordinate comprises:
A modified Lopez-Dahab algorithm and a Left-To-Right algorithm are used to reduce the execution time of the scalar point multiply operation by reducing the scalar point addition operation
/ RTI >
상기 투영 좌표 상에서 상기 점에 대한 스칼라 포인트 곱셈 연산을 수행하는 단계는,
키의 비트값에 기초하여 상기 투영 좌표 상에서 상기 스칼라 포인트 덧셈 연산과 상기 스칼라 포인트 곱셈 연산이 결정되는 단계
를 포함하는 타원곡선 암호화 방법. 3. The method of claim 2,
Wherein performing a scalar point multiply operation on the point on the projection coordinate comprises:
Wherein the scalar point addition operation and the scalar point multiply operation are determined on the projection coordinate based on a bit value of a key
/ RTI >
상기 투영 좌표 상에서 상기 점에 대한 스칼라 포인트 곱셈 연산을 수행하는 단계는,
상기 키의 비트값이 0일 경우, 4번의 필드 제곱 연산과 1번의 필드 덧셈 연산 및 1번의 필드 곱셈 연산을 수행하는 포인트 두 배 연산을 수행하고,
상기 키의 비트값이 1일 경우, 상기 포인트 두 배 연산을 수행한 뒤, 4번의 필드 곱셈 연산과 2번의 필드 덧셈 연산 및 1번의 필드 제곱 연산을 수행하는 포인트 덧셈 연산을 수행하는 단계
를 포함하는 타원곡선 암호화 방법.The method of claim 3,
Wherein performing a scalar point multiply operation on the point on the projection coordinate comprises:
When the bit value of the key is 0, performing a field double operation that performs four field squaring operations, one field addition operation and one field multiplication operation,
If the bit value of the key is 1, performing a point addition operation that performs four times field multiplication operation, two field addition operation and one field square operation after performing the point double operation,
/ RTI >
상기 투영 좌표 상에서 상기 점에 대한 스칼라 포인트 곱셈 연산을 수행하는 단계는,
제1 곱셈기와 제2 곱셈기를 동시에 계산하고 제1 신호와 제2 신호를 통하여 제3 곱셈기 및 제4 곱셈기를 사용가능(Enable)상태로 전환하고, 상기 제3 곱셈기 및 상기 제4 곱셈기를 병렬로 계산하는 단계
를 포함하는 타원곡선 암호화 방법. The method according to claim 1,
Wherein performing a scalar point multiply operation on the point on the projection coordinate comprises:
The first multiplier and the second multiplier are simultaneously calculated and the third multiplier and the fourth multiplier are enabled through the first signal and the second signal, and the third multiplier and the fourth multiplier are connected in parallel Steps to calculate
/ RTI >
상기 투영 좌표 상에서 상기 점에 대한 스칼라 포인트 곱셈 연산을 수행하는 단계는,
상기 제3 곱셈기 및 상기 제4 곱셈기의 출력값을 XOR 게이트를 통하여 XOR 연산을 수행하고, 상기 XOR 연산을 수행한 출력값을 다중화기와 제곱연산기를 통하여 수행값을 획득하는 단계
를 포함하는 타원곡선 암호화 방법. The method according to claim 6,
Wherein performing a scalar point multiply operation on the point on the projection coordinate comprises:
Performing an XOR operation on an output value of the third multiplier and the fourth multiplier through an XOR gate, and obtaining an output value of the XOR operation through a multiplexer and a squared operator
/ RTI >
아핀 좌표에서 타원곡선 상의 점을 투영 좌표로 변환하는 제1 변환부;
상기 투영 좌표 상에서 상기 점에 대한 스칼라 포인트 곱셈 연산을 수행하는 연산부;
상기 스칼라 포인트 곱셈 연산을 수행한 수행값을 Lopez-Dahab 알고리즘의 스칼라 포인트 곱셈 연산을 통하여 획득한 값과 비교하여 조정하는 조정부;
상기 조정된 수행값을 상기 투영 좌표에서 상기 아핀 좌표로 변환함에 따라 결과값을 획득하는 제2 변환부; 및
상기 아핀 좌표로 변환함에 따라 획득된 결과값을 기반으로 암호화된 암호값을 산출하는 획득부
를 포함하고,
상기 연산부는,
Bit-Serial 구조의 곱셈 연산기 및 필드 연산을 사용하는 제어 신호를 사용하여 상기 투영 좌표 상에서 상기 점에 대한 스칼라 포인트 곱셈 연산을 수행하고, 상기 투영 좌표 상에서 포인트 두 배 연산을 수행하는
타원곡선 암호화 장치.
In an elliptic curve cryptosystem,
A first conversion unit for converting a point on the elliptic curve to projection coordinates in affine coordinates;
An operation unit for performing a scalar point multiply operation on the point on the projection coordinate system;
An adjustment unit for comparing the performance value obtained by performing the scalar point multiplication operation with a value obtained through a scalar point multiply operation of the Lopez-Dahab algorithm;
A second transform unit for transforming the adjusted performance value from the projection coordinate to the affine coordinate to obtain a result value; And
An acquiring unit for calculating an encrypted value based on the acquired result by transforming the affine coordinate into an affine coordinate,
Lt; / RTI >
The operation unit,
Performing a scalar point multiply operation on the point on the projection coordinate using a control signal using a bit-serial structure multiplier and a field operation, and performing a point double operation on the projection coordinate
Elliptic curve encryption device.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020150154992A KR101707334B1 (en) | 2015-11-05 | 2015-11-05 | Apparatus for efficient elliptic curve cryptography processor and method for the same |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020150154992A KR101707334B1 (en) | 2015-11-05 | 2015-11-05 | Apparatus for efficient elliptic curve cryptography processor and method for the same |
Publications (1)
Publication Number | Publication Date |
---|---|
KR101707334B1 true KR101707334B1 (en) | 2017-02-15 |
Family
ID=58112243
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020150154992A KR101707334B1 (en) | 2015-11-05 | 2015-11-05 | Apparatus for efficient elliptic curve cryptography processor and method for the same |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR101707334B1 (en) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101925614B1 (en) * | 2017-11-08 | 2018-12-05 | 부산대학교 산학협력단 | Method for processing scalar multiplication in elliptic curve cryptosystem, and elliptic curve cryptosystem |
KR20190083891A (en) * | 2018-01-05 | 2019-07-15 | 금오공과대학교 산학협력단 | Apparatus and Method for Integrated Hardware Implementation of Elliptic Curve Cryptography and RSA Public-key Cryptosystem |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20090070060A (en) * | 2007-12-26 | 2009-07-01 | 대구대학교 산학협력단 | Lopez-dahab algorithm based high speed elliptic curve cryptographic processor on finite field |
-
2015
- 2015-11-05 KR KR1020150154992A patent/KR101707334B1/en active IP Right Grant
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20090070060A (en) * | 2007-12-26 | 2009-07-01 | 대구대학교 산학협력단 | Lopez-dahab algorithm based high speed elliptic curve cryptographic processor on finite field |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101925614B1 (en) * | 2017-11-08 | 2018-12-05 | 부산대학교 산학협력단 | Method for processing scalar multiplication in elliptic curve cryptosystem, and elliptic curve cryptosystem |
KR20190083891A (en) * | 2018-01-05 | 2019-07-15 | 금오공과대학교 산학협력단 | Apparatus and Method for Integrated Hardware Implementation of Elliptic Curve Cryptography and RSA Public-key Cryptosystem |
KR102006222B1 (en) | 2018-01-05 | 2019-08-01 | 금오공과대학교 산학협력단 | Apparatus and Method for Integrated Hardware Implementation of Elliptic Curve Cryptography and RSA Public-key Cryptosystem |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6244728B2 (en) | Information processing method and program | |
US7908641B2 (en) | Modular exponentiation with randomized exponent | |
KR101449239B1 (en) | Homomorphic Encryption and Decryption Method using Ring Isomorphism and apparatus using the same | |
JP2019515353A (en) | Countermeasures against Safe-Error Fault Injection Attack on Cryptographic Power-up Algorithm | |
TWI553548B (en) | Method, device and computer software product for cryptographic computation | |
Ghosh et al. | A speed area optimized embedded co-processor for McEliece cryptosystem | |
JP5852518B2 (en) | Authentication encryption device, authentication decryption device, and program | |
US8548161B2 (en) | Crytographically transforming data text | |
KR101233682B1 (en) | Calculating apparatus and method for elliptic curve cryptography | |
KR101707334B1 (en) | Apparatus for efficient elliptic curve cryptography processor and method for the same | |
JP3794266B2 (en) | Elliptic curve scalar multiplication method and apparatus, and storage medium | |
US11502836B2 (en) | Method for performing cryptographic operations on data in a processing device, corresponding processing device and computer program product | |
JP2006259735A (en) | Elliptic curve point octupling using single instruction multiple data processing | |
KR20150091691A (en) | CRT-RSA encryption method and apparatus and computer readable storage medium therefore | |
US7177422B2 (en) | Elliptic curve encryption processing method, elliptic curve encryption processing apparatus, and program | |
JP2004227344A (en) | Multiplier and code circuit | |
KR101929984B1 (en) | Modular multiplicator and modular multiplication method thereof | |
TWI602119B (en) | Computational method, computational device andcomputer software product for montgomery domain | |
KR100817048B1 (en) | Method and apparatus of Different Faults AnalysisDFA countermeasure based on different point representation for Elliptic Curve CryptographyECC | |
KR102541388B1 (en) | Apparatus and method for ring-lwe cryptoprocessor using mdf based ntt | |
US12034850B2 (en) | Encryption device, decryption device, encryption method, decryption method, and computer program products | |
KR20190022023A (en) | Hardware-implemented modular inversion module | |
JP3959076B2 (en) | Finite field square computing method and square computing device | |
JPWO2021171543A5 (en) | Authentication encryption device, authentication decryption device, authentication encryption method, authentication decryption method and program | |
KR102451633B1 (en) | Apparatus and Method of Cryptographic Processing for Homomorphic Encryption |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant | ||
FPAY | Annual fee payment |
Payment date: 20200102 Year of fee payment: 4 |