KR101925614B1 - Method for processing scalar multiplication in elliptic curve cryptosystem, and elliptic curve cryptosystem - Google Patents

Method for processing scalar multiplication in elliptic curve cryptosystem, and elliptic curve cryptosystem Download PDF

Info

Publication number
KR101925614B1
KR101925614B1 KR1020170147844A KR20170147844A KR101925614B1 KR 101925614 B1 KR101925614 B1 KR 101925614B1 KR 1020170147844 A KR1020170147844 A KR 1020170147844A KR 20170147844 A KR20170147844 A KR 20170147844A KR 101925614 B1 KR101925614 B1 KR 101925614B1
Authority
KR
South Korea
Prior art keywords
expression
group
scalar
elliptic curve
processing
Prior art date
Application number
KR1020170147844A
Other languages
Korean (ko)
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 KR1020170147844A priority Critical patent/KR101925614B1/en
Application granted granted Critical
Publication of KR101925614B1 publication Critical patent/KR101925614B1/en

Links

Images

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

Landscapes

  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Engineering & Computer Science (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Computing Systems (AREA)
  • Mathematical Physics (AREA)
  • General Engineering & Computer Science (AREA)
  • Advance Control (AREA)

Abstract

Disclosed are a method for processing scalar multiplication in an elliptic curve cryptosystem and an elliptic curve cryptosystem. According to an embodiment of the present invention, the method for processing scalar multiplication in an elliptic curve cryptosystem comprises the steps of: generating a scalar operation expression for performing scalar multiplication on two arbitrary points on an elliptic curve; grouping each of the calculation expression constituting the scalar calculation expression according to a predetermined criterion and rewriting the scalar calculation expression into a combinatorial calculation expression; parallel-processing the combinatorial calculation expression by group using a plurality of processors; and outputting a result of encrypting the two arbitrary points as a result of the parallel processing.

Description

타원곡선 암호화 시스템에서의 스칼라 곱셈 처리 방법 및 타원곡선 암호화 시스템{METHOD FOR PROCESSING SCALAR MULTIPLICATION IN ELLIPTIC CURVE CRYPTOSYSTEM, AND ELLIPTIC CURVE CRYPTOSYSTEM}[0001] METHOD FOR PROCESSING SCALAR MULTIPLICATION IN ELLIPTIC CURVE CRYPTOSYSTEM, AND ELLIPTIC CURVE CRYPTOSYSTEM [0002]

본 발명은 타원곡선 암호화(Elliptic curve cryptography, ECC) 관련 기술로, 타원곡선(예, 'Curve25519')을 기반으로 공개키를 암호화 하는 타원곡선 암호화 시스템에서, 몽고메리 더블 & 애드(Montgomery Double-and-Add) 또는 몽고메리 사다리(Montgomery ladder) 방식에 따라 GPGPU 상에서 스칼라 곱셈 연산을 수행 시, 복수의 프로세서를 이용하여 연산을 그룹 별로 병렬 처리 함으로써 처리 성능을 향상시키는, 타원곡선 암호화 시스템에서의 스칼라 곱셈 처리 방법 및 타원곡선 암호화 시스템에 관한 것이다.The present invention relates to an elliptic curve cryptography (ECC) -related technique, in which an elliptic curve cryptosystem for encrypting a public key based on an elliptic curve (eg, 'Curve25519'), a Montgomery double- A scalar multiplication processing method in an elliptic curve cryptosystem, which improves processing performance by parallel processing operations on a group basis using a plurality of processors when a scalar multiplication operation is performed on GPGPU according to a Montgomery ladder method or a Montgomery ladder method And an elliptic curve encryption system.

미국표준기술연구소(NIST)에서 권장하는 타원곡선 암호화(ECC) 기술과 관련하여, 타원곡선을 이용한 DUAL_EC_DRBG에서 백도어(backdoor)가 발견됨에 따라 타원곡선 암호화에 대한 안전성 문제가 제기되고 있다.In connection with the elliptic curve cryptography (ECC) technique recommended by the National Institute of Standards and Technology (NIST), safety problems with elliptic curve encryption have been raised as backdoors have been found in DUAL_EC_DRBG using elliptic curves.

이에 따라, 안전한 타원곡선(SafeCurves)을 찾기 위한 여러 가지 연구가 새롭게 진행되고 있으며, 그 중, 타원곡선 'Curve25519'는,

Figure 112017110697893-pat00001
의 형태를 갖는 몽고메리 커브(Montgomery Curve)를 바탕으로, 다니엘 번스타인(Daniel J. Bernstein)에 의해 제안된 타원곡선으로서, 다음과 같은 식으로 표현되고 있다(비특허문헌 1 참조).Accordingly, various researches for finding a safe elliptic curve (SafeCurves) have been newly carried out. Among them, the elliptic curve 'Curve25519'
Figure 112017110697893-pat00001
Based on Montgomery Curve having the form of a curve of the shape of a circle, and expressed by Daniel J. Bernstein as an elliptic curve expressed by the following equation (see Non-Patent Document 1).

Figure 112017110697893-pat00002
Figure 112017110697893-pat00002

타원곡선 암호화는 이산대수문제(Discrete Logrithm Problem)을 기반으로 하는 암호화 방식으로서, 타원곡선 상의 미리 정해진 상수, 즉 기저(Base point)를 복수 회 스칼라 곱셈(scalar multiplication) 하였을 때 타원곡선 상에 존재하는 점으로 나타나게 되며, 이때 스칼라 곱셈이 수행된 횟수를 알기 어려운 점을 이용한 공개키 암호화 방식이다.Elliptic curve encryption is a cryptosystem based on the discrete logarithm problem. It is a cryptographic scheme based on a discrete logarithm problem. It is a cryptosystem in which a predetermined constant on an elliptic curve, that is, a base point is scalar multiplication multiple times, Point, and it is difficult to know the number of scalar multiplications performed at this time.

한편, 종래에는 타원곡선 암호화를 위한 스칼라 곱셈 수행 시, 몽고메리 더블 엔 애드(Montgomery double-and-add) 혹은 몽고메리 사다리(Montgomery ladder) 방식을 이용하여, 두 점(Q, Q')의 합 혹은 점(Q)의 더블링(doubling)의 결과를 동시에 출력할 수 있으며, 이러한 방식은 부채널 공격에 강한 특징을 가지고 있다.Conventionally, when the scalar multiplication for the elliptic curve encryption is performed, the sum of the two points (Q, Q ') or the sum of the points (Q, Q') using the Montgomery double-and-add or Montgomery ladder method, It is possible to simultaneously output the result of the doubling of the quadrature (Q).

이러한 몽고메리 사다리 방식에서는 두 점을 여러 번 더하는 방식을 이용하여 타원곡선의 스칼라 곱셈을 수행하고 있으며, 두 개의 결과가 동시에 나와 필요한 결과 만 이용하고 있어, 더블링이 필요한 경우 더블링만 수행하고, 덧셈이 필요한 경우 덧셈을 수행하는 방식 보다 처리 속도가 떨어질 수 있다.In the Montgomery ladder method, the scalar multiplication of an elliptic curve is performed by adding two points at a plurality of times, and the two results are used at the same time and only the necessary result is used. When doubling is required, only doubling is performed. The processing speed may be lower than the method of performing addition.

다시 말해, 몽고메리 사다리 방식에 따른 타원곡선('Curve25519')의 스칼라 곱셈을 하나의 프로세서를 이용하여 처리할 경우, 하나의 사이클 당 하나의 연산만 수행하게 되므로, 도 2에 도시된 것처럼 총 18번의 연산을 각각 수행하게 되어 처리 시간이 많이 소요될 수 있다.In other words, when the scalar multiplication of the elliptic curve ('Curve25519') according to the Montgomery ladder system is processed using one processor, only one operation is performed per one cycle. Therefore, as shown in FIG. 2, It may take a lot of processing time.

비특허문헌 1: Daniel J. Bernstein, (2005), Curve25519: new Diffe-Hellman speed records ('https://cr.yp.to/ecdh/curve25519-20051115.pdf')Non-Patent Document 1: Daniel J. Bernstein, (2005), Curve25519: new Diffe-Hellman speed records ('https://cr.yp.to/ecdh/curve25519-20051115.pdf')

본 발명의 실시예는 몽고메리 사다리 방식에 따라 스칼라 곱셈 처리를 수행 시 같은 연산자를 사용하는 연산식을 동일한 그룹으로 그룹핑 하고, 그룹 내의 각 연산식을 복수의 프로세서(예컨대, '4개')에 의해 각각 병렬 처리 함으로써, 총 처리 횟수를 줄여 처리 속도를 높이고 타원곡선의 암호화 성능을 보다 향상시키는 것을 목적으로 한다.In the embodiment of the present invention, the arithmetic expressions using the same operator are grouped into the same group when the scalar multiplication processing is performed according to the Montgomery ladder method, and each arithmetic expression in the group is divided into a plurality of processors (for example, four arrays) Parallel processing to increase the processing speed by reducing the total number of processing times and to improve the encryption performance of the elliptic curve.

본 발명의 일실시예에 따른 타원곡선 암호화 시스템에서 스칼라 곱셈 처리 방법은, 타원곡선 상의 임의의 두 점을 스칼라 곱셈 처리하는 스칼라 연산식을 작성하는 단계와, 상기 스칼라 연산식을 이루는 연산식 각각을, 선정된 기준에 따라 그룹핑 하여, 상기 스칼라 연산식을 조합 연산식으로 재작성하는 단계와, 복수의 프로세서를 이용하여, 상기 조합 연산식을 그룹 별로 병렬 처리하는 단계, 및 상기 병렬 처리에 대한 결과로서, 상기 임의의 두 점을 암호화 한 결과값을 출력하는 단계를 포함한다.The scalar multiplication processing method in an elliptic curve cryptosystem according to an embodiment of the present invention includes a step of creating a scalar operation expression for performing scalar multiplication on arbitrary two points on an elliptic curve, A step of grouping according to a predetermined criterion and rewriting the scalar expression expression into a combination expression expression, a step of parallel processing the combination expression expression by group using a plurality of processors, and a result of the parallel processing And outputting a result of encrypting the arbitrary two points.

또한, 본 발명의 일실시예에 따른 타원곡선 암호화 시스템은, 타원곡선 상의 임의의 두 점을 스칼라 곱셈 처리하는 스칼라 연산식을 작성하는 작성부와, 상기 스칼라 연산식을 이루는 연산식 각각을, 선정된 기준에 따라 그룹핑 하여, 상기 스칼라 연산식을 조합 연산식으로 재작성하는 그룹핑부, 및 복수의 프로세서를 이용하여, 상기 조합 연산식을 그룹 별로 병렬 처리하고, 상기 병렬 처리에 대한 결과로서, 상기 임의의 두 점을 암호화 한 결과값을 출력하는 처리부를 포함한다.According to another aspect of the present invention, there is provided an elliptic curve cryptosystem comprising: a generator for generating a scalar multiplication expression for performing scalar multiplication on arbitrary two points on an elliptic curve; A grouping unit for grouping the scalar expressions into groups according to a criterion, and rewriting the scalar expressions into a combination operation expression; and a grouping unit for parallel processing the combination operation expressions by groups using a plurality of processors, And a processing unit for outputting a result value obtained by encrypting any two points.

본 발명의 일실시예에 따르면, 몽고메리 사다리 방식에 따라 스칼라 곱셈 처리를 수행 시 같은 연산자를 사용하는 연산식을 동일한 그룹으로 그룹핑 하고, 그룹 내의 각 연산식을 복수의 프로세서(예컨대, '4개')에 의해 병렬 처리하여 총 처리 횟수를 줄임으로써 처리 속도를 높이고 성능을 향상시킬 수 있다.According to an embodiment of the present invention, when the scalar multiplication process is performed according to the Montgomery ladder method, operation expressions using the same operator are grouped into the same group, and each expression in the group is divided into a plurality of processors (for example, ) To reduce the total number of processes, thereby improving processing speed and performance.

또한, 본 발명의 일실시예에 따르면, 복수의 프로세서를 이용한 병렬 처리를 통해, 기존의 단일 프로세서로 연산하는 몽고메리 사다리 방식의 스칼라 곱셈 처리 속도를 개선하고, 한 번에 대량의 데이터를 처리하는 GPGPU를 사용하여 기존 부채널 공격에 대한 내성을 보다 강화시킬 수 있다.In addition, according to an embodiment of the present invention, a Montgomery ladder-type scalar multiplication processing speed which is calculated by an existing single processor through parallel processing using a plurality of processors is improved, and a GPGPU Can be used to further enhance immunity to existing subchannel attacks.

도 1은 본 발명의 일실시예에 따른 타원곡선 암호화 시스템의 내부 구성을 도시한 블록도이다.
도 2는 본 발명의 일실시예에 따른 타원곡선 암호화 시스템에서, 스칼라 연산식의 일례를 도시한 도면이다.
도 3은 본 발명의 일실시예에 따른 타원곡선 암호화 시스템에서, 조합 연산식의 일례를 도시한 도면이다.
도 4는 본 발명의 일실시예에 따른 타원곡선 암호화 시스템에서의 스칼라 곱셈 처리 방법의 순서를 도시한 흐름도이다.
도 5는, 도 4에 도시된 단계(430)을 구체적으로 나타낸 상세 흐름도이다.
1 is a block diagram illustrating an internal configuration of an elliptic curve cryptosystem according to an embodiment of the present invention.
2 is a diagram illustrating an example of a scalar operation expression in an elliptic curve encryption system according to an embodiment of the present invention.
3 is a diagram illustrating an example of a combination operation expression in an elliptic curve encryption system according to an embodiment of the present invention.
4 is a flowchart illustrating a procedure of a scalar multiplication processing method in an elliptic curve encryption system according to an embodiment of the present invention.
FIG. 5 is a detailed flowchart showing step 430 shown in FIG.

이하, 첨부된 도면들을 참조하여 본 발명의 일실시예에 따른 응용프로그램 업데이트 장치 및 방법에 대해 상세히 설명한다. 그러나, 본 발명이 실시예들에 의해 제한되거나 한정되는 것은 아니다. 각 도면에 제시된 동일한 참조 부호는 동일한 부재를 나타낸다.Hereinafter, an apparatus and method for updating an application program according to an embodiment of the present invention will be described in detail with reference to the accompanying drawings. However, the present invention is not limited to or limited by the embodiments. Like reference symbols in the drawings denote like elements.

도 1은 본 발명의 일실시예에 따른 타원곡선 암호화 시스템의 내부 구성을 도시한 블록도이다.1 is a block diagram illustrating an internal configuration of an elliptic curve cryptosystem according to an embodiment of the present invention.

도 1을 참조하면, 본 발명의 일실시예에 따른 타원곡선 암호화 시스템(100)은, 작성부(110), 그룹핑부(120) 및 처리부(130)를 포함하여 구성할 수 있다.Referring to FIG. 1, an elliptic curve encryption system 100 according to an exemplary embodiment of the present invention may include a creation unit 110, a grouping unit 120, and a processing unit 130.

작성부(110)는 타원곡선 상의 임의의 두 점(Q 및 Q')을 스칼라 곱셈 처리하는 스칼라 연산식을 작성한다.The creating unit 110 creates a scalar operation expression for performing scalar multiplication on any two points (Q and Q ') on the elliptic curve.

본 명세서에서는,

Figure 112017110697893-pat00003
으로 표현되는 '커브25519(Curve25519)'을 타원곡선으로 예시하고 있다.In the present specification,
Figure 112017110697893-pat00003
Quot; Curve 25519 (Curve 25519) " represented by an elliptic curve.

작성부(110)는 상기 타원곡선('커브25519')를 기반으로, 몽고메리 더블&애드(Montgomery Double-and-Add) 방식 또는 몽고메리 사다리(Montgomery ladder) 방식에 기초하여, 상기 스칼라 연산식을 작성할 수 있다.The creating unit 110 creates the scalar operation expression based on the elliptic curve (curve 25519) based on the Montgomery double-and-add method or the Montgomery ladder method .

본 명세서에서 몽고메리 사다리 방식은 도 2와 같은 구조를 가질 수 있다. 이 때 각 변수는 다음을 의미한다.In this specification, the Montgomery ladder system can have the structure as shown in FIG. In this case, each variable means the following.

Figure 112017110697893-pat00004
Figure 112017110697893-pat00004

예를 들어, 도 2를 참조하면, 작성부(110)는 타원곡선 상의 임의의 두 점(Q(x, z) 및 Q'(x', z'))을 이루는 복수의 변수(x, z, x', z') 각각을 초기 입력값으로 하는 가산(+), 감산(-) 및 승산(×) 중 적어도 하나의 연산자와 관련한 연산식(1, 2, 3, 4)을 포함하여, 제1 연산식을 작성할 수 있다.2, the creating unit 110 includes a plurality of variables (x, z, z) that make up two arbitrary points (Q (x, z) and Q ' (1, 2, 3, 4) relating to at least one of an addition (+), a subtraction (-) and a multiplication (x) The first calculation expression can be generated.

작성부(110)는 상기 초기 입력값을 이용한 연산식 각각의 처리값((x+z), (x'+z'), (x-z) 및 (x'-z'))이 차기의 연산식(5, 6, 12, 13)의 입력값이 되도록, 연산식(5, 6, 12, 13)을 포함하여 제2 연산식을 작성할 수 있다.(X '+ z'), (x '- z') and (x'-z ')) of each of the arithmetic expressions using the initial input values are added to the next arithmetic expression (5, 6, 12, 13) so as to be the input values of the input signals (5, 6, 12, 13)

작성부(110)는 이전 연산식에서의 처리값 또는 미리 정해진 상수('(A-2)/4' 및 'bp_x')를 입력값으로 하는 연산식(7 내지 11 및 14 내지 18)을 포함하여 제3 연산식을 작성할 수 있다. 상술한 것처럼, 몽고메리 사다리 방식에서 변수 A는 '486662'이므로, 연산식(16)에는 상수 '121665'가 입력되고, 변수 x1 은 기저 포인트(base point, bp_x)로서 상수 '9'가 입력될 수 있다.The creating unit 110 includes arithmetic expressions 7 to 11 and 14 to 18 that use the processed values in the previous arithmetic expression or predetermined constants ('(A-2) / 4' and 'bp_x') as input values A third calculation expression can be created. As described above, since the variable A is '486662' in the Montgomery ladder system, the constant '121665' is input to the operation expression (16), and the constant '9' is input to the variable x 1 as the base point (bp_x) .

작성부(110)는 상기 제1 연산식 내지 상기 제3 연산식('18개의 연산식')을 포함하여, 상기 임의의 두 점(Q, Q')을 암호화 한 결과값(x2, z2, x'3, z'3)을 출력하는 스칼라 연산식(200)을 작성할 수 있다.The creation unit 110 generates a result value (x 2 , z) obtained by encrypting the arbitrary two points (Q, Q ') including the first to third computation expressions 2 , x ' 3 , z' 3 ).

즉, 작성부(110)는 몽고메리 사다리 방식을 이용하여 스칼라 곱셈을 처리 시, 총 18개의 연산식을 포함하여 스칼라 연산식(200)을 작성할 수 있다.That is, when the scalar multiplication process is performed using the Montgomery ladder method, the creating unit 110 can create a scalar expression 200 including a total of 18 arithmetic expressions.

그룹핑부(120)는 상기 스칼라 연산식을 이루는 연산식 각각을, 선정된 기준(연산자, 처리 순서, 입력값 등)에 따라 그룹핑 하여, 상기 스칼라 연산식을 조합 연산식으로 재작성한다.The grouping unit 120 groups each of the arithmetic expressions constituting the scalar arithmetic expression according to a predetermined criterion (an operator, a processing order, an input value, and the like), and rewrites the scalar arithmetic expression into the arithmetic expression.

일례로, 그룹핑부(120)는, 후술하는 처리부(130)에서는 하나의 사이클 당 가산, 감산 및 승산 중 어느 한 종류의 연산만 수행할 수 있다는 점을 이용하여, 상기 스칼라 연산식 내의 각 연산식을 같은 연산끼리 묶어서 동일한 그룹에 속하도록 그룹핑 할 수 있다.For example, the grouping unit 120 may use the fact that the processing unit 130, which will be described later, can perform only one kind of operation among addition, subtraction and multiplication per one cycle, Can be grouped to belong to the same group by grouping the same operations.

그룹핑부(120)는 상기 연산식 각각을 연산자(+, -, ×) 별로 분류하고, 같은 연산자로 분류된 적어도 하나의 연산식을, 동일한 그룹으로 그룹핑 하고, 상기 그룹핑에 따라 생성된 각 그룹을, 그룹에 속한 연산식 간의 처리 순서에 따라 배치하여, 상기 조합 연산식을 재작성할 수 있다. 이때, 그룹핑부(120)는 연산의 동시 처리를 가능하게 하는 프로세서의 개수가 p개(상기 p는 4 이상의 자연수)일 경우, 최대 p개까지의 연산식을 동일한 그룹으로 그룹핑 할 수 있다.The grouping unit 120 classifies each of the operation expressions by operators (+, -, x), groups at least one operation expression classified by the same operator into the same group, and groups each group generated according to the grouping , And arranging them in accordance with the processing order among the processing expressions belonging to the group, so that the above-mentioned combination expressions can be rewritten. At this time, when the number of processors that enable simultaneous processing of operations is p (p is a natural number of 4 or more), the grouping unit 120 can group up to p operation expressions into the same group.

예를 들어, 도 2 및 도 3을 참조하면, 그룹핑부(120)는 도 2에 도시된 스칼라 연산식(200) 내의 연산식(1 내지 18) 중에서, 동일한 연산자(+)를 가지는 연산식(1, 3)을 1번 그룹으로 그룹핑 하고, 동일한 연산자(-)를 가지는 연산식(2, 4)를 2번 그룹으로 그룹핑 하고, 동일한 연산자(×)를 가지는 연산식(5, 6, 12, 13)을 3번 그룹으로 그룹핑 하고, 연산자(+)를 가지는 연산식(7)을 4번 그룹으로 그룹핑 하고, 동일한 연산자(-)를 가지는 연산식(8, 15)를 5번 그룹으로 그룹핑 하고, 동일한 연산자(×)를 가지는 연산식(9, 10, 14, 16)을 6번 그룹으로 그룹핑 하고, 연산자(+)를 가지는 연산식(17)을 7번 그룹으로 그룹핑 하고, 연산자(×)를 가지는 연산식(18)을 8번 그룹으로 그룹핑 할 수 있다.For example, referring to FIGS. 2 and 3, the grouping unit 120 may include an arithmetic expression having the same operator (+) among the arithmetic expressions (1 to 18) in the scalar arithmetic expression 200 shown in FIG. 1, 3) are grouped into a group of 1, and the operation formulas (2, 4) having the same operator (-) are grouped into the second group and the operation formulas (5, 6, 12, 13) are grouped into 3 groups, the operation expression (7) having the operator (+) is grouped into 4 groups and the operation expressions (8, 15) having the same operator (-) are grouped into 5 groups Grouping operation expressions (9,10,14,16) having the same operator (X) into groups of 6, grouping operation expressions (17) having an operator (+) into group 7, (18) can be grouped into 8 groups.

또한, 그룹핑부(120)는 같은 연산자로 분류된 복수의 연산식이라도, 연산식의 처리 순서, 이전 연산식으로부터 입력되는 처리값, 및 입력되는 상수(Base pointer) 중 적어도 하나에 따라, 상이한 그룹으로 구분하여 그룹핑 하고, 상이한 그룹핑에 따라 생성된 각 그룹을 상기 스칼라 연산식과 동일한 결과값을 출력하도록 배치하여 상기 조합 연산식을 재작성 할 수 있다.In addition, the grouping unit 120 may group the plurality of operation expressions classified into the same group according to at least one of a processing procedure of an operation expression, a processing value input from a previous operation expression, and a base pointer, And arranges the groups so that each group generated according to different grouping outputs the same result as that of the scalar operation expression, so that the combination operation expression can be rewritten.

다시 말해, 그룹핑부(120)는 같은 연산자로 분류된 연산식을 동일한 그룹으로 그룹핑 하려 할 때, 상기 스칼라 연산식 내에서 각 연산식의 처리 순서와, 이전 연산식으로부터 차기의 연산식으로 입력되는 처리값 및 입력되는 상수('(A-2)/4' 및 'bp_x') 중 적어도 하나를 더 고려하여, 서로 다른 그룹으로 구분하여 그룹핑 할 수도 있다. 그룹핑부(120)는 상기 스칼라 연산식과 동일한 결과값(x2, z2, x'3, z'3)을 출력하도록 각 그룹을 재배치하여 조합 연산식을 재작성할 수 있다.In other words, when grouping the operation expressions classified by the same operator into the same group, the grouping unit 120 inputs the processing order of each operation expression in the scalar expression expression and the next operation expression from the previous operation expression It is also possible to group them by dividing them into different groups considering at least one of the processing value and the input constants ('(A-2) / 4' and 'bp_x'). Grouping unit 120 may be relocated to the respective group so as to output the same result value (x 2, z 2, x '3, z' 3) expression and the scalar operation to rewrite the equation in combination.

예를 들어, 도 2 및 도 3을 참조하면, 그룹핑부(120)는 도 2에 도시된 스칼라 연산식(200) 내의 연산식(1 내지 18) 중에서, 동일한 연산자(+)를 가지는 모든 연산식(1, 3, 7, 17)을 하나의 그룹으로 그룹핑 하지 않고, 각 연산식의 처리 순서와 이전 연산식으로부터 입력되는 처리값을 고려하여, 연산식(1, 3), 연산식(7) 및 연산식(17)을 상이한 그룹으로 그룹핑 할 수 있다.For example, referring to FIG. 2 and FIG. 3, the grouping unit 120 may include all of the arithmetic expressions (1 to 18) having the same operator (+) among the arithmetic expressions 1 to 18 in the scalar arithmetic expression 200 shown in FIG. (1), (3), (7), and (17) are not grouped into one group and the processing values of the respective arithmetic expressions and the processing value input from the previous arithmetic expression are considered, And the equation (17) into different groups.

이와 같이, 그룹핑부(120)는 m(상기 m은 2 이상의 자연수)개의 연산식이 포함되는 스칼라 연산식을, 상기 m 보다 작은 n(상기 n은 자연수)개의 그룹으로 그룹핑 하여, 상기 조합 연산식을 재작성할 수 있다.As described above, the grouping unit 120 groups the scalar operation expressions including m operation expressions (where m is a natural number of 2 or more) into n groups (n is a natural number) smaller than the m, Can be rewritten.

예를 들어, 도 2 및 도 3을 참조하면, 그룹핑부(120)는 스칼라 연산식(200)에 포함된 18개의 연산식(1 내지 18)을, 같은 연산자끼리 묶어서 8개의 그룹으로 그룹핑 하고, 각 그룹을, 각 연산식(1 내지 18)의 처리 순서를 고려해 배치하여, 도 3과 같은 조합 연산식(300)으로 재작성할 수 있다.For example, referring to FIGS. 2 and 3, the grouping unit 120 groups 18 operators (1 to 18) included in the scalar expression 200 into 8 groups, Each group can be rearranged into a combination expression 300 as shown in FIG. 3 by arranging the groups in consideration of the processing sequence of each of the calculation expressions (1 to 18).

처리부(130)는 복수의 프로세서를 이용하여, 상기 조합 연산식을 그룹 별로 병렬 처리하고, 상기 병렬 처리에 대한 결과로서, 상기 임의의 두 점을 암호화 한 결과값을 출력한다.The processing unit 130 uses the plurality of processors to parallel-process the combination expression equations for each group, and outputs a result of encrypting the arbitrary two points as a result of the parallel processing.

여기서, 처리부(130)는 복수의 프로세서를 포함할 수 있으며, 예를 들어, p개(상기 p는 4 이상의 자연수)의 프로세서(미도시)로 구현될 수 있다. 특히, 처리부(130)는 명령어 병렬이라는 특성을 가지는 GPGPU와 같은 프로세서를 이용하여 구현되어, 같은 코어 집단에서 하나의 명령어(한 종류의 연산)만 처리할 수 있다. 즉, 처리부(130)는 하나의 프로세서가 가산을 처리하는 동안, 다른 프로세서에서 감산을 동시에 처리할 수는 없으며, 가산 처리가 진행되는 동안 감산 처리를 대기하도록 할 수 있다.Here, the processing unit 130 may include a plurality of processors, and may be implemented by a processor (not shown), for example, p (p is a natural number of 4 or more) processors. In particular, the processor 130 may be implemented using a processor such as a GPGPU having the property of instruction parallelism, and may process only one instruction (one type of operation) in the same core group. That is, the processing unit 130 can not simultaneously process subtraction in another processor while one processor is processing the addition, and can wait for the subtraction processing while the addition processing is in progress.

처리부(130)는 작업 병렬(Task Parallel) 및 데이터 병렬(Data Parallel) 중 적어도 하나의 병렬 방식에 따라 그룹 내의 연산식을 동시에 처리할 수 있다. 여기서, 작업 병렬 방식은 서로 다른 연산 방식에 대하여 동시에 수행될 때에 데이터 간 상호 의존성이 없다면 각각의 프로세서가 나눠서 수행하는 방식이며, 데이터 병렬처리는 데이터에 대하여 상호 의존성이 없을 때 동일한 연산을 여러 개의 프로세서에서 수행하는 방식을 지칭할 수 있다.The processing unit 130 may simultaneously process an operation expression in a group according to at least one parallel method of task parallel and data parallel. In this case, the parallel operation method is a method in which each processor performs a division operation when there is no interdependency between data when the operation methods are simultaneously performed on different operation methods. In the case of data parallel processing, And the like.

예를 들어, 처리부(130)는 SMP(Symmetric Multi Processor)를 가지는 CPU와, GPGPU와 같은 여러 개의 코어를 가진 프로세서를 이용하여 동시에 대량의 데이터를 처리하는 방식으로, 상기 조합 연산식에서 그룹 내의 각 연산식을 병렬 처리 함으로써, 같은 종류의 연산이나 연속된 데이터에 대한 반복 연산의 성능을 향상시킬 수 있다.For example, the processor 130 processes a large amount of data at the same time using a CPU having a Symmetric Multi Processor (SMP) and a processor having a plurality of cores such as a GPGPU. In the combination operation expression, By performing parallel processing of expressions, it is possible to improve the performance of the same kind of operation or the iterative operation on continuous data.

일례로, 처리부(130)는 상기 조합 연산식에서 동일한 그룹으로 그룹핑 된 하나 이상의 연산식을, 상기 복수의 프로세서를 이용하여 동시에 처리할 수 있다.For example, the processing unit 130 may simultaneously process one or more operation expressions grouped into the same group in the combination operation expression using the plurality of processors.

본 명세서에서, 처리부(130)는 하나의 사이클 당 가산, 감산 및 승산 중 어느 한 종류의 연산만 처리할 수 있으므로, 복수의 프로세서를 이용하여, 같은 종류의 연산을 처리하는 동일 그룹 내의 각 연산식을 병렬 처리할 수 있다.In this specification, the processing unit 130 can process only one kind of operation among addition, subtraction and multiplication per one cycle. Therefore, it is possible to use a plurality of processors, Can be processed in parallel.

예를 들어, 처리부(130)는 상기 타원곡선 암호화 시스템이, 상기 임의의 두 점을 이루는 변수의 개수를 고려한 p(상기 p는 4 이상의 자연수)개의 프로세서를 포함하는 경우, p개의 프로세서를 이용하여, 각 그룹에 속하는 최대 p개의 연산을 동시에 처리할 수 있다. 즉, 처리부(130)는 같은 그룹으로 묶인 최대 p개까지의 연산식을 동시에 병렬 처리할 수 있다.For example, when the elliptic curve cryptosystem includes p processors (p is a natural number equal to or greater than 4) considering the number of variables constituting the arbitrary two points, the processor 130 uses p processors , It is possible to simultaneously process at most p operations belonging to each group. That is, the processing unit 130 can concurrently process a maximum of p calculation expressions grouped in the same group at the same time.

또한, 처리부(130)는 상기 조합 연산식을, 같은 연산자로 묶인 그룹 별로 처리하여, 한 종류의 연산을 처리하는 동안 다른 종류의 연산을 대기시킬 수 있다.In addition, the processing unit 130 may process the combination expression expressions for each group grouped by the same operator, and wait for another type of operation while processing one type of operation.

구체적으로, 처리부(130)는 상기 스칼라 연산식을, 제1 그룹 및 제2 그룹을 순차적으로 포함한 복수의 그룹을 갖는 조합 연산식으로 재작성하는 경우, 상기 제1 그룹에 속하는 하나 이상의 연산을 복수의 프로세서를 이용하여 동시에 처리하되, 상기 제1 그룹에 대한 처리가 수행되는 동안, 상기 제1 그룹과 상이한 제2 그룹에 속하는 하나 이상의 연산의 처리를 대기할 수 있다.Specifically, when the processing unit 130 rewrites the scalar expression expression into a combination operation expression having a plurality of groups that sequentially include the first group and the second group, the processing unit 130 may perform one or more operations belonging to the first group Processing of one or more operations belonging to a second group different from the first group can be performed while the processing for the first group is being performed.

예를 들어, 도 3을 참조하면, 처리부(130)는 조합 연산식(300)을 그룹(1 내지 8) 각각이 배치된 순서대로 처리하되, 복수의 프로세서를 통해 각 그룹 내의 모든 연산식을 동시에 처리할 수 있다.For example, referring to FIG. 3, the processing unit 130 processes the combining expression 300 in the order in which the groups 1 to 8 are arranged, Can be processed.

즉, 처리부(130)는 4개의 프로세서를 이용하여, 그룹(1) 내의 2개의 가산(+) 연산식을 병렬 처리하고, 이후 그룹(2) 내의 2개의 가산(-) 연산식을 병렬 처리하고, 이후 그룹(3) 내의 4개의 승산(×) 연산식을 병렬 처리하고, 이후 그룹(4) 내의 1개의 가산(+) 연산식을 처리하고, 이후 그룹(5) 내의 2개의 감산(-) 연산식을 병렬 처리하고, 이후 그룹(6) 내의 4개의 승산(×) 연산식을 병렬 처리하고, 이후 그룹(7) 내의 1개의 가산(+) 연산식을 처리하고, 이후 그룹(8) 내의 2개의 승산(×) 연산식을 병렬 처리할 수 있다.That is, the processor 130 performs parallel processing of two addition (+) arithmetic expressions in the group 1 by using four processors, and then parallel processing of two addition (-) arithmetic expressions in the group 2 (X) expression in the group 3 is processed in parallel and then one additive (+) expression in the group 4 is processed and then two subtractions (-) in the group 5 are processed. (X) in the group 6 is processed in parallel and then one additive (+) operation expression in the group 7 is processed, and thereafter, in the group 8 Two multiplication (x) arithmetic expressions can be processed in parallel.

처리부(130)는 m(상기 m은 2 이상의 자연수)개의 연산식이 포함되는 스칼라 연산식을, 상기 m 보다 작은 n(상기 n은 자연수)개의 그룹으로 그룹핑하여 상기 조합 연산식으로 재작성하는 경우, 상기 p개의 프로세서를 이용하여, 상기 조합 연산식을, 상기 m 보다 작은 n회에 처리할 수 있다.When the processing unit 130 groups the scalar operation expressions including m arithmetic expressions of m (where m is a natural number of 2 or more) into n groups (n is a natural number) smaller than the m and rewrites them into the combination operation expression, The combination operation expression can be processed n times smaller than m using the p processors.

예를 들어, 도 2 및 도 3을 참조하면, 처리부(130)는, 18개의 연산식을 포함하여 작성한 스칼라 연산식(200)을 단일의 프로세서로 처리 시 총 18회에 걸쳐 처리하게 되지만, 같은 연산끼리 그룹핑해서 재작성한 조합 연산식(300)을 복수(예컨대, '4개')의 프로세서로 그룹 별로 병렬 처리 시, 총 8회에 걸쳐 처리를 완료할 수 있다.For example, referring to FIG. 2 and FIG. 3, the processing unit 130 processes a scalar expression 200 including 18 arithmetic expressions over a total of 18 arrays in a single processor. Processing can be completed for a total of eight times when a plurality of (for example, four) processors are parallel-processed by grouping operation expressions 300 in which the operations are grouped and rewritten.

즉, 처리부(130)는 몽고메리 사다리 방식에 따른 스칼라 곱셈 처리를, 같은 연산끼리 묶은 후 복수의 프로세서로 병렬 처리 함으로써, 처리 횟수를 획기적으로 단축시켜 처리 속도를 높일 수 있으며 타원곡선의 암호화 처리 성능 향상시킬 수 있다.That is, the processing unit 130 can perform the scalar multiplication processing according to the Montgomery ladder method in parallel with a plurality of processors after bundling together the same operations, thereby increasing the processing speed by drastically shortening the processing frequency and improving the encryption processing performance of the elliptic curve .

이때, 처리부(130)는 상기 조합 연산식에 포함되는 연산식 각각의 처리값이, 상기 타원곡선에 대한 소수로서 선정된 프라임 필드(Prime Field) 이내의 범위가 되도록 처리할 수 있다.At this time, the processing unit 130 may process the processing value of each operation expression included in the combination operation expression to be within a range of a prime field (prime field) selected as a prime number for the elliptic curve.

일례로, 처리부(130)는 타원곡선 '커브25519'에 대해 프라임 필드를 위한 소수(P)로서 '2255-19'를 선정할 수 있으며, GPU 환경에서, 모든 변수를 소수(P)값을 기준으로 하는 프라임 필드 상에서 상기 조합 연산식을 처리하여, 각 연산식의 처리값이 '0'부터 '(2255-19)'까지의 범위에 들어가도록 할 수 있다. 예를 들어, 처리부(130)는 각 연산식의 처리값이 '(2255-19) + 1'이면 다시 돌아가 '0'으로 처리하고, 각 연산식의 처리값이 '(2255-19) + 2'이면 '1'로 처리할 수 있다.For example, the processing unit 130 may select '2 255 -19' as a prime number (P) for the prime field for the elliptic curve 'curve 25519'. In the GPU environment, It is possible to process the combination expression expression on the basis of a prime field so that the processing value of each expression expression falls within a range from '0' to (2 255 -19) '. For example, processor 130 is processed values of each operation expression "(2255-19) + 1 ', back to the process to" 0 ", and the process value of each operation expression" (2255-19) + 2 ', it can be processed as'1'.

처리부(130)는 상기 임의의 두 점(Q(x, z) 및 Q'(x', z'))을 이루는 변수(x, z, x', z') 각각을, 상기 조합 연산식에 따라 스칼라 곱셈 처리하여 암호화 한 변수(x2, z2, x'3, z'3)를, 상기 결과값으로 각각 출력할 수 있다.The processing unit 130 converts each of the variables x, z, x ', z' constituting the arbitrary two points Q (x, z) and Q '(x', z ' (X 2 , z 2 , x ' 3 , z' 3 ) encrypted by scalar multiplication may be output as the resultant value.

예를 들어, 도 3을 참조하면, 처리부(130)는 그룹(6)의 연산식(12) '{(x+z)×(x+z)} × {(x-z)×(x-z)}'의 처리값을, 변수 x를 암호화 한 변수 x2로서 출력할 수 있다.For example, referring to FIG. 3, the processing unit 130 may calculate an equation (12) '(x + z) x (x + z)} x { Can be output as the variable x 2 obtained by encrypting the variable x.

또한, 처리부(130)는 그룹(8)의 연산식(17) '{(((x+z)×(x+z))+(121665×(((x+z)×(x+z))-((x-z)×(x-z)))))} × {(((x+z)×(x+z))-((x-z)×(x-z)))}'의 처리값을, 변수 z를 암호화 한 변수 z2로서 출력할 수 있다.Further, the processing unit 130 may calculate an equation (17) '(((x + z) x (x + z)) + (121665 x ) - ((xz) x))}) ', which is a function of the variable x (xz) x z as an encrypted variable z 2 .

또한, 처리부(130)는 그룹(6)의 연산식(14) '{((x-z)×(x'+z'))+((x+z)×(x'-z'))} × {((x-z)×(x'+z'))+((x+z)×(x'-z'))}'의 처리값을, 변수 x'를 암호화 한 변수 x'3으로서 출력할 수 있다.In addition, the processing unit 130 may calculate the value of the expression (14) '((xz) x (x' + z ')) + ((x + z) x the processing value of {((xz) x (x '+ z')) + ((x + z) x (x'-z '))}' is output as the variable x ' 3 obtained by encrypting the variable x' .

또한, 처리부(130)는 그룹(8)의 연산식(18) '{(((x-z)×(x'+z'))-((x+z)×(x'-z'))×((x-z)×(x'+z'))-((x+z)×(x'-z')))} × {상수('bp_x')}'의 처리값을, 변수 z'를 암호화 한 변수 z'3으로서 출력할 수 있다.In addition, the processing unit 130 may calculate the expression (18) '(((xz) x (x' + z ')) - ((x + z) x ('bp_x')} 'to a variable z' ((xz) × (x '+ z')) - And output it as an encrypted variable z ' 3 .

이와 같이, 본 발명의 일실시예에 따르면, 몽고메리 사다리 방식에 따라 스칼라 곱셈 처리를 수행 시 같은 연산자를 사용하는 연산식을 동일한 그룹으로 그룹핑 하고, 그룹 내의 각 연산식을 복수의 프로세서(예컨대, '4개')에 의해 병렬 처리하여 총 처리 횟수를 줄임으로써 처리 속도를 높이고 성능을 향상시킬 수 있다.As described above, according to an embodiment of the present invention, when the scalar multiplication process is performed according to the Montgomery ladder method, operation expressions using the same operator are grouped into the same group, and each expression in the group is divided into a plurality of processors 4 ') in order to increase the processing speed and improve the performance.

또한, 본 발명의 일실시예에 따르면, 복수의 프로세서를 이용한 병렬 처리를 통해, 기존의 단일 프로세서로 연산하는 몽고메리 사다리 방식의 스칼라 곱셈 처리 속도를 개선하고, 한 번에 대량의 데이터를 처리하는 GPGPU를 사용하여 기존 부채널 공격에 대한 내성을 보다 강화시킬 수 있다.In addition, according to an embodiment of the present invention, a Montgomery ladder-type scalar multiplication processing speed which is calculated by an existing single processor through parallel processing using a plurality of processors is improved, and a GPGPU Can be used to further enhance immunity to existing subchannel attacks.

도 2는 본 발명의 일실시예에 따른 타원곡선 암호화 시스템에서, 스칼라 연산식의 일례를 도시한 도면이다.2 is a diagram illustrating an example of a scalar operation expression in an elliptic curve encryption system according to an embodiment of the present invention.

도 2를 참조하면, 본 발명의 일실시예에 따른 타원곡선 암호화 시스템은, 몽고메리 사다리 방식을 이용하여 스칼라 곱셈을 처리 시, 총 18개의 연산식(1 내지 18)을 포함하여 스칼라 연산식(200)을 작성할 수 있다.Referring to FIG. 2, the elliptic curve encryption system according to an embodiment of the present invention includes a total of 18 arithmetic expressions (1 to 18) in scalar multiplication using the Montgomery ladder scheme, Can be created.

구체적으로, 타원곡선 암호화 시스템은, 타원곡선 상의 임의의 두 점(Q(x, z) 및 Q'(x', z'))을 이루는 복수의 변수(x, z, x', z') 각각을 초기 입력값으로 하는 가산(+), 감산(-) 및 승산(×) 중 적어도 하나의 연산자와 관련한 연산식(1, 2, 3, 4)을 포함하여, 제1 연산식을 작성할 수 있다.Specifically, the elliptic curve encryption system includes a plurality of variables (x, z, x ', z') constituting arbitrary two points (Q (x, z) and Q ' (1, 2, 3, 4) relating to at least one of addition (+), subtraction (-) and multiplication have.

또한, 타원곡선 암호화 시스템은 상기 초기 입력값을 이용한 연산식 각각의 처리값((x+z), (x'+z'), (x-z) 및 (x'-z'))이 차기의 연산식(5, 6, 12, 13)의 입력값이 되도록, 연산식(5, 6, 12, 13)을 포함하여 제2 연산식을 작성할 수 있다.In addition, the elliptic curve cryptosystem is configured such that each of the processing values (x + z), (x '+ z'), (xz) and (x'- The second arithmetic expression can be formed including the arithmetic expressions (5, 6, 12, 13) so as to be the input values of the expressions (5, 6, 12, 13).

또한, 타원곡선 암호화 시스템은 이전 연산식에서의 처리값 또는 미리 정해진 상수('(A-2)/4' 및 'bp_x')를 입력값으로 하는 연산식(7 내지 11 및 14 내지 18)을 포함하여 제3 연산식을 작성할 수 있다. 몽고메리 사다리 방식에서 변수 A는 '486662'이므로, 연산식(16)에는 상수 '121665'가 입력되고, 변수 x1 은 기저 포인트(base point, bp_x)로서 상수 '9'가 입력될 수 있다.The elliptic curve encryption system also includes arithmetic expressions (7 to 11 and 14 to 18) having input values of the processing values in the previous arithmetic expression or predefined constants ('(A-2) / 4' and 'bp_x') A third calculation expression can be created. Since the variable A is '486662' in the Montgomery ladder system, the constant '121665' is input to the equation (16), and the constant '9' is input to the variable x 1 as the base point (bp_x).

타원곡선 암호화 시스템은 상기 제1 연산식 내지 상기 제3 연산식('18개의 연산식')을 포함하여, 타원곡선('커브25519') 상의 임의의 두 점(Q, Q')을 암호화 하기 위한 스칼라 곱셈 처리식, 스칼라 연산식(200)을 작성할 수 있다.The elliptic curve cryptosystem includes the first to the third computational expressions ('18 computational expressions') to encrypt any two points (Q, Q') on the elliptic curve ('curve 25519') The scalar multiplication processing expression and the scalar expression expression 200 can be generated.

도 3은 본 발명의 일실시예에 따른 타원곡선 암호화 시스템에서, 조합 연산식의 일례를 도시한 도면이다.3 is a diagram illustrating an example of a combination operation expression in an elliptic curve encryption system according to an embodiment of the present invention.

도 3을 참조하면, 본 발명의 일실시예에 따른 타원곡선 암호화 시스템은, 도 2에 도시된 스칼라 연산식(200)에 포함된 18개의 연산식(1 내지 18)을, 같은 연산자끼리 묶어서 8개의 그룹으로 그룹핑 하고, 각 그룹을, 각 연산식(1 내지 18)의 처리 순서를 고려해 배치하여, 조합 연산식(300)으로 재작성할 수 있다.Referring to FIG. 3, the elliptic curve encryption system according to the embodiment of the present invention includes 18 operation expressions (1 to 18) included in the scalar operation expression 200 shown in FIG. 2, Groups, and each group can be rearranged into the combination expression 300 by arranging the groups in consideration of the processing order of the respective arithmetic expressions (1 to 18).

타원곡선 암호화 시스템은, 연산식 각각을 연산자(+, -, ×) 별로 분류하고, 같은 연산자로 분류된 적어도 하나의 연산식을, 동일한 그룹으로 그룹핑 할 수 있다.The elliptic curve encryption system can classify each of the operation expressions by operators (+, -, ×), and group at least one operation expression classified by the same operator into the same group.

이때, 타원곡선 암호화 시스템은, 연산의 동시 처리를 가능하게 하는 프로세서의 개수가 p개(상기 p는 4 이상의 자연수)일 경우, 최대 p개까지의 연산식을 동일한 그룹으로 그룹핑 할 수 있다.The elliptic curve cryptosystem can group up to p operation expressions into the same group when p number of processors (p is a natural number equal to or larger than 4) capable of simultaneous processing of operations are grouped.

타원곡선 암호화 시스템은, 도 2에 도시된 스칼라 연산식(200) 내의 연산식(1 내지 18) 중에서, 동일한 연산자(+)를 가지는 연산식(1, 3)을 1번 그룹으로 그룹핑 하고, 동일한 연산자(-)를 가지는 연산식(2, 4)를 2번 그룹으로 그룹핑 하고, 동일한 연산자(×)를 가지는 연산식(5, 6, 12, 13)을 3번 그룹으로 그룹핑 하고, 연산자(+)를 가지는 연산식(7)을 4번 그룹으로 그룹핑 하고, 동일한 연산자(-)를 가지는 연산식(8, 15)를 5번 그룹으로 그룹핑 하고, 동일한 연산자(×)를 가지는 연산식(9, 10, 14, 16)을 6번 그룹으로 그룹핑 하고, 연산자(+)를 가지는 연산식(17)을 7번 그룹으로 그룹핑 하고, 연산자(×)를 가지는 연산식(18)을 8번 그룹으로 그룹핑 할 수 있다.The elliptic curve encryption system groups the operation expressions (1, 3) having the same operator (+) among the operation expressions (1 to 18) in the scalar operation expression (200) shown in FIG. 2 into one group Grouping the operation expressions (2 and 4) having the operator (-) into the second group and grouping the operation expressions (5, 6, 12, 13) having the same operator (X) into the third group, (7) are grouped into groups of 4, the operation equations (8, 15) having the same operator (-) are grouped into groups of 5 and the operation equations (9, Grouping the operation formulas 17 having the operator (+) into the group No. 7 and grouping the operation formulas (18) having the operator (X) into the 8 groups can do.

타원곡선 암호화 시스템은, 8개의 그룹(1 내지 8)을, 스칼라 연산식(200) 내에서 각 연산식(1 내지 18)의 처리 순서를 고려해 배치하여, 도 3과 같은 조합 연산식(300)으로 재작성할 수 있다.The elliptic curve encryption system arranges eight groups (1 to 8) in consideration of the processing order of the arithmetic expressions (1 to 18) in the scalar arithmetic expression (200) As shown in Fig.

이와 같이, 타원곡선 암호화 시스템은, 단일의 프로세서로 총 18회에 걸쳐 처리할 수 있던 스칼라 연산식(200)을, 4개의 프로세서로 병렬 처리 가능한 조합 연산식(300)으로 재작성 함으로써, 총 8회의 적은 처리 횟수로 스칼라 곱셈을 처리할 수 있다.As described above, the elliptic curve encryption system rewrites the scalar operation expression 200, which can be processed 18 times in total by a single processor, into a combination operation expression 300 that can be processed in parallel by four processors, Conferencing can handle scalar multiplication with fewer processing times.

이하, 도 4 내지 도 5에서는 본 발명의 실시예들에 따른 타원곡선 암호화 시스템(100)의 작업 흐름을 상세히 설명한다.4 to 5, the operation flow of the elliptic curve cryptosystem 100 according to the embodiments of the present invention will be described in detail.

도 4는 본 발명의 일실시예에 따른 타원곡선 암호화 시스템에서의 스칼라 곱셈 처리 방법의 순서를 도시한 흐름도이다.4 is a flowchart illustrating a procedure of a scalar multiplication processing method in an elliptic curve encryption system according to an embodiment of the present invention.

본 실시예에 따른 스칼라 곱셈 처리 방법은, 상술한 타원곡선 암호화 시스템(100)에 의해 수행될 수 있다.The scalar multiplication processing method according to the present embodiment can be performed by the elliptic curve encryption system 100 described above.

도 4를 참조하면, 단계(410)에서, 타원곡선 암호화 시스템(100)은, 타원곡선 상의 임의의 두 점을 스칼라 곱셈 처리하는 스칼라 연산식을 작성한다.Referring to FIG. 4, in step 410, the elliptic curve encryption system 100 creates a scalar operation expression for performing scalar multiplication on any two points on an elliptic curve.

타원곡선 암호화 시스템(100)은 타원곡선('커브25519')를 기반으로, 몽고메리 더블&애드 방식 또는 몽고메리 사다리 방식에 기초하여, 가산, 감산 및 승산 중 적어도 하나의 연산을 포함하는 스칼라 연산식을 작성할 수 있다.The elliptic curve cryptosystem 100 may generate a scalar expression including at least one of addition, subtraction, and multiplication based on an elliptic curve (curve 25519) based on the Montgomery double & add scheme or the Montgomery ladder scheme Can be created.

예를 들어, 도 2를 참조하면, 타원곡선 암호화 시스템(100)은 몽고메리 사다리 방식을 이용해 스칼라 곱셈을 처리 시 총 18개의 연산식을 포함하여 스칼라 연산식(200)을 작성할 수 있다.For example, referring to FIG. 2, the elliptic curve encryption system 100 can generate a scalar expression 200 including a total of 18 arithmetic expressions when performing a scalar multiplication using the Montgomery ladder method.

단계(420)에서, 타원곡선 암호화 시스템(100)은, 상기 스칼라 연산식을 이루는 연산식 각각을, 선정된 기준(예컨대, 연산자, 처리 순서, 입력값 등)에 따라 그룹핑 하여, 상기 스칼라 연산식을 조합 연산식으로 재작성한다.In step 420, the elliptic curve encryption system 100 groups each of the arithmetic expressions constituting the scalar expression expression according to a predetermined criterion (e.g., an operator, a processing order, an input value, etc.) Is rewritten as a combination operation expression.

일례로, 타원곡선 암호화 시스템(100)은, 하나의 사이클 당 가산, 감산 및 승산 중 어느 한 종류의 연산만 수행할 수 있다는 점을 이용하여, 스칼라 연산식 내의 각 연산식을 같은 연산끼리 묶어서 동일한 그룹에 속하도록 그룹핑 할 수 있다.For example, the elliptic curve cryptosystem 100 can use the fact that only one type of operation can be performed, one of addition, subtraction and multiplication per cycle, so that each operation expression in the scalar operation expression is grouped into the same operation Group to belong to the group.

예를 들어, 도 2 및 도 3을 참조하면, 타원곡선 암호화 시스템(100)은, 스칼라 연산식(200)에 포함된 18개의 연산식(1 내지 18)을, 같은 연산자끼리 묶어서 8개의 그룹으로 그룹핑 하고, 각 그룹을, 각 연산식(1 내지 18)의 처리 순서를 고려해 배치하여, 도 3과 같은 조합 연산식(300)으로 재작성할 수 있다.2 and 3, for example, the elliptic curve encryption system 100 divides 18 operation expressions (1 to 18) included in the scalar operation expression 200 into 8 groups Grouping, and arranging each group in consideration of the processing order of each of the arithmetic expressions (1 to 18), and rewriting them into the combination arithmetic expression (300) as shown in FIG.

단계(430)에서, 타원곡선 암호화 시스템(100)은, 복수의 프로세서를 이용하여, 상기 조합 연산식을 그룹 별로 병렬 처리한다.In step 430, the elliptic curve encryption system 100 uses the plurality of processors to parallel-process the combination formula for each group.

타원곡선 암호화 시스템(100)은 명령어 병렬 특성을 가지는 GPGPU와 같은 복수의 프로세서를 포함할 수 있으며, 하나의 프로세서가 가산을 처리하는 동안, 다른 프로세서에서 감산을 동시에 처리할 수는 없어, 가산 처리가 진행되는 동안 감산 처리를 대기하도록 할 수 있다.The elliptic curve cryptosystem 100 may include a plurality of processors, such as a GPGPU with command parallelism, and while one processor is processing the addition, it may not simultaneously process subtraction in the other processor, It is possible to wait for the subtraction processing during the progress.

예를 들어, 타원곡선 암호화 시스템(100)은 도 3에 도시된 조합 연산식(300)을 그룹(1 내지 8) 각각이 배치된 순서대로 처리하되, 복수의 프로세서를 통해 각 그룹 내의 모든 연산식을 동시에 처리할 수 있다.For example, the elliptic curve encryption system 100 processes the combination expression 300 shown in FIG. 3 in the order in which the groups 1 to 8 are arranged, Can be processed at the same time.

이에 따라, 타원곡선 암호화 시스템(100)은 18개의 연산식을 포함하여 작성한 스칼라 연산식(도 2의 200)을 단일의 프로세서로 처리 시 총 18회에 걸쳐 처리하게 되지만, 같은 연산끼리 그룹핑해서 재작성한 조합 연산식(도 3의 300)을 예컨대, '4개'의 프로세서로 그룹 별로 병렬 처리 시, 총 8회에 걸쳐 처리를 완료할 수 있다.Accordingly, the elliptic curve encryption system 100 processes the scalar expression (200 in FIG. 2) formed by including 18 arithmetic expressions over a total of 18 arrays in a single processor. However, When the prepared combination expression (300 in FIG. 3) is parallel-processed for each group with, for example, "four" processors, the processing can be completed eight times in total.

단계(440)에서, 타원곡선 암호화 시스템(100)은, 상기 병렬 처리에 대한 결과로서, 상기 임의의 두 점을 암호화 한 결과값을 출력한다.In step 440, the elliptic curve encryption system 100 outputs the result of encrypting the two arbitrary points as a result of the parallel processing.

즉, 타원곡선 암호화 시스템(100)은, 상기 임의의 두 점(Q(x, z) 및 Q'(x', z'))을 이루는 변수(x, z, x', z') 각각을, 상기 조합 연산식에 따라 스칼라 곱셈 처리하여 암호화 한 변수(x2, z2, x'3, z'3)를, 상기 결과값으로 각각 출력할 수 있다.That is, the elliptic curve cryptosystem 100 determines the variables (x, z, x ', z') constituting the arbitrary two points Q (x, z) and Q ' , may each output a variable (x 2, z 2, x '3, z' 3) encrypted by the scalar multiplication processing in accordance with the combination of an expression, as the return value.

이와 같이, 타원곡선 암호화 시스템(100)은 몽고메리 사다리 방식에 따른 스칼라 곱셈 처리를, 같은 연산끼리 묶은 후 복수의 프로세서(예컨대, '4개' 이상)로 병렬 처리 함으로써, 처리 횟수를 획기적으로 단축시켜 처리 속도를 높일 수 있으며 타원곡선의 암호화 처리 성능 향상시킬 수 있다.As described above, the elliptic curve cryptosystem 100 performs a parallel processing of a plurality of processors (for example, four or more) by grouping the same operations into the scalar multiplication processing according to the Montgomery ladder system, thereby dramatically shortening the number of processing The processing speed can be increased and the encryption processing performance of the elliptic curve can be improved.

도 5는, 도 4에 도시된 단계(430)를 구체적으로 나타낸 상세 흐름도이다.5 is a detailed flowchart specifically illustrating step 430 shown in FIG.

도 5에는, 재작성된 조합 연산식(도 3의 300)을 복수의 프로세서를 이용하여 그룹 별로 처리하는 구체적인 과정이 도시되어 있다.FIG. 5 shows a concrete procedure of processing the rewritten combination formula (300 in FIG. 3) on a group-by-group basis using a plurality of processors.

도 5를 참조하면, 도 4의 단계(420)에서 같은 연산끼리 그룹핑 하여 조합 연산식이 재작성되면, 단계(510)에서, 타원곡선 암호화 시스템(100)은, + 연산을 수행하는 1번 그룹 내의 연산식(1, 2)를 병렬 처리한다.Referring to FIG. 5, when the same operation is grouped in step 420 in FIG. 4 to rewrite the combination operation expression, the elliptic curve encryption system 100, in step 510, The equations (1, 2) are processed in parallel.

(1) (x+z)(1) (x + z)

(2) (x'+z')(2) (x '+ z')

단계(520)에서, 타원곡선 암호화 시스템(100)은, - 연산을 수행하는 2번 그룹 내의 연산식(3, 4)를 병렬 처리한다.In step 520, the elliptic curve encryption system 100 parallelizes the computation equations (3, 4) in the second group performing the - computation.

(3) (x-z)(3) (x-z)

(4) (x'-z')(4) (x'-z ')

단계(530)에서, 타원곡선 암호화 시스템(100)은, 단계(510 및 520)에서의 처리값을 이용하여, × 연산을 수행하는 3번 그룹 내의 연산식(5 내지 8)을 병렬 처리한다.In step 530, the elliptic curve encryption system 100 uses the process values in steps 510 and 520 to parallelize the operation expressions 5 to 8 in the third group for performing the x operation.

(5) (x+z) × (x+z)(5) (x + z) x (x + z)

(6) (x-z) × (x-z)(6) (x-z) x (x-z)

(7) (x-z) × (x'+z')(7) (x-z) x (x '+ z')

(8) (x+z) × (x'-z')(8) (x + z) x (x'-z ')

단계(540)에서, 타원곡선 암호화 시스템(100)은, 단계(530)에서의 처리값을 이용하여, + 연산을 수행하는 4번 그룹 내의 연산식(9)를 처리한다.In step 540, the elliptic curve cryptographic system 100 processes the computation equation 9 in the fourth group performing the + computation, using the process values in step 530.

(9) {(x-z)×(x'+z')} + {(x+z)×(x'-z')}(9) {(x-z) x (x '+ z')} + {(x + z) x

단계(550)에서, 타원곡선 암호화 시스템(100)은, 단계(530)에서의 처리값을 이용하여, - 연산을 수행하는 5번 그룹 내의 연산식(10, 11)을 병렬 처리한다.In step 550, the elliptic curve cryptosystem 100 uses the process values in step 530 to parallelize the computation equations 10, 11 in the fifth group performing the - computation.

(10) {(x+z)×(x+z)} - {(x-z)×(x-z)}(10) {(x + z) x (x + z)} - {(x-z) x

(11) {(x-z)×(x'+z')} - {(x+z)×(x'-z'))}(11) {(x-z) x (x '+ z')} - {(x + z) x

단계(560)에서, 타원곡선 암호화 시스템(100)은, 단계(530 내지 550)에서의 처리값 및 상수('121665')를 이용하여, × 연산을 수행하는 6번 그룹 내의 연산식(12 내지 15)를 병렬 처리한다.In step 560, the elliptic curve cryptosystem 100 uses the process value in step 530 to 550 and the constant ('121665' 15) are processed in parallel.

(12) {(x+z)×(x+z)} × {(x-z)×(x-z)}(12) {(x + z) x (x + z)} x (x-z) x

(13) 121665 × {((x+z)×(x+z))-((x-z)×(x-z))}(13) 121665 x {((x + z) x (x + z)) - ((xz) x

(14) {((x-z)×(x'+z'))+((x+z)×(x'-z'))} × {((x-z)×(x'+z'))+((x+z)×(x'-z'))}Z '))} x {(xz) x (x' + z ')) + (x' ((x + z) x (x'-z '))}

(15) {((x-z)×(x'+z'))-((x+z)×(x'-z'))} × {((x-z)×(x'+z'))-((x+z)×(x'-z'))}Z '))} x {(xz) x (x' + z ')) - ((xz) ((x + z) x (x'-z '))}

단계(570)에서, 타원곡선 암호화 시스템(100)은, 단계(530 및 560)에서의 처리값을 이용하여, + 연산을 수행하는 7번 그룹 내의 연산식(16)을 처리한다.At step 570, the elliptic curve encryption system 100 processes the equation 16 in group 7 to perform the + operation using the process values at steps 530 and 560.

(16) {((x+z)×(x+z))} + {(121665×(((x+z)×(x+z))-((x-z)×(x-z))))}(16) {((x + z) x (x + z))} + {121665 x ((x + z) x + z)

단계(580)에서, 타원곡선 암호화 시스템(100)은, 단계(550 내지 570)에서의 처리값 및 상수(bp_x)를 이용하여, × 연산을 수행하는 8번 그룹 내의 연산식(17, 18)을 병렬 처리하고, 도 4의 단계(440)으로 돌아간다.In step 580, the elliptic curve encryption system 100 uses the processing value and the constant bp_x in steps 550 to 570 to calculate the arithmetic expressions 17 and 18 in the group 8 that performs the x operation. And returns to step 440 of FIG.

(17) {(((x+z)×(x+z))+(121665×(((x+z)×(x+z))-((x-z)×(x-z)))))} × {(((x+z)×(x+z))-((x-z)×(x-z)))}(17) {((x + z) x (x + z)) + 121665 x ((x + z) x + z) X {((x + z) x (x + z)) - ((xz) x (xz))}

(18) {(((x-z)×(x'+z'))-((x+z)×(x'-z'))×((x-z)×(x'+z'))-((x+z)×(x'-z')))} × {상수('bp_x')}(18) {((xz) x (x '+ z')) - ((xz z) (x + z) x (x'-z '))} x {constant (' bp_x ')}

본 발명의 실시예에 따른 방법은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 매체에 기록되는 프로그램 명령은 실시예를 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다. 상기된 하드웨어 장치는 실시예의 동작을 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.The method according to an embodiment of the present invention 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.

100: 타원곡선 암호화 시스템
110: 작성부
120: 그룹핑부
130: 처리부
100: Elliptic Curve Encryption System
110:
120:
130:

Claims (15)

타원곡선 상의 임의의 두 점을 스칼라 곱셈 처리하는 스칼라 연산식을 작성하는 단계;
상기 스칼라 연산식을 이루는 연산식 각각을, 선정된 기준에 따라 그룹핑 하여, 상기 스칼라 연산식을 조합 연산식으로 재작성하는 단계;
복수의 프로세서를 이용하여, 상기 조합 연산식을 그룹 별로 병렬 처리하는 단계; 및
상기 병렬 처리에 대한 결과로서, 상기 임의의 두 점을 암호화 한 결과값을 출력하는 단계
를 포함하고,
상기 타원곡선이, '커브25519(Curve25519)'일 경우,
상기 스칼라 연산식을 작성하는 단계는,
상기 커브25519를 기반으로, 몽고메리 더블&애드(Montgomery Double-and-Add) 방식 또는 몽고메리 사다리(Montgomery ladder) 방식에 기초하여, 상기 스칼라 연산식을 작성하는 단계
를 포함하고,
상기 그룹 별로 병렬 처리하는 단계는,
상기 조합 연산식에 포함되는 연산식 각각의 처리값이, 상기 커브25519에 대한 소수로서 선정된 프라임 필드 이내의 범위가 되도록 처리하는 단계
를 포함하는 타원곡선 암호화 시스템에서의 스칼라 곱셈 처리 방법.
Creating a scalar operation expression for performing scalar multiplication on arbitrary two points on an elliptic curve;
Grouping each of the arithmetic expressions constituting the scalar arithmetic expression according to a predetermined criterion and rewriting the scalar arithmetic expression into a combinatorial arithmetic expression;
Parallel processing the combination expression by groups using a plurality of processors; And
As a result of the parallel processing, outputting a result value obtained by encrypting the arbitrary two points
Lt; / RTI >
If the elliptic curve is 'Curve 25519 (Curve 25519)',
The step of generating the scalar expression may include:
Based on the curve 25519, the step of creating the scalar expression expression based on the Montgomery double-and-add method or the Montgomery ladder method
Lt; / RTI >
The step of performing parallel processing for each group includes:
The processing value of each of the operation formulas included in the combination expression is set to be within a predetermined prime field as a prime number for the curve 25519
Wherein the scalar multiplication is performed in an elliptic curve cryptosystem.
제1항에 있어서,
상기 조합 연산식으로 재작성하는 단계는,
상기 연산식 각각을 연산자 별로 분류하고, 같은 연산자로 분류된 연산식 중에서 상기 프로세서의 개수에 따른 최대 p개(상기 p는 4 이상의 자연수)의 연산식을, 동일한 그룹으로 그룹핑 하는 단계; 및
상기 그룹핑에 따라 생성된 각 그룹을, 그룹에 속한 연산식 간의 처리 순서에 따라 배치하여, 상기 조합 연산식을 재작성하는 단계
를 포함하는 타원곡선 암호화 시스템에서의 스칼라 곱셈 처리 방법.
The method according to claim 1,
Wherein the step of rewriting with the combination formula includes:
Grouping the arithmetic expressions of each of the arithmetic expressions into the same group, and grouping the arithmetic expressions of at most p (where p is a natural number of 4 or more) according to the number of processors among the arithmetic expressions classified by the same operator into the same group; And
Arranging each group generated in accordance with the grouping according to a processing order among the computing equations belonging to the group, and re-creating the combining equations
Wherein the scalar multiplication is performed in an elliptic curve cryptosystem.
제2항에 있어서,
상기 조합 연산식으로 재작성하는 단계는,
같은 연산자로 분류된 복수의 연산식이라도, 연산식의 처리 순서, 이전 연산식으로부터 입력되는 처리값, 및 입력되는 상수(Base pointer) 중 적어도 하나에 따라, 상이한 그룹으로 구분하여 그룹핑 하는 단계; 및
상기 상이한 그룹핑에 따라 생성된 각 그룹을 상기 스칼라 연산식과 동일한 결과값을 출력하도록 배치하여 상기 조합 연산식을 재작성하는 단계
를 더 포함하는 타원곡선 암호화 시스템에서의 스칼라 곱셈 처리 방법.
3. The method of claim 2,
Wherein the step of rewriting with the combination formula includes:
Grouping into different groups according to at least one of a processing order of an operation expression, a processing value input from a previous operation expression, and a base pointer, even if a plurality of operation expressions classified by the same operator are included; And
Arranging each group generated according to the different grouping so as to output the same result value as the scalar operation expression, and rewriting the combination operation expression
Wherein the scalar multiplication in the elliptic curve encryption system further comprises:
제1항에 있어서,
상기 조합 연산식으로 재작성하는 단계는,
m(상기 m은 2 이상의 자연수)개의 연산식이 포함되는 스칼라 연산식을, 상기 m 보다 작은 n(상기 n은 자연수)개의 그룹으로 그룹핑 하여, 상기 조합 연산식을 재작성하는 단계
를 포함하는 타원곡선 암호화 시스템에서의 스칼라 곱셈 처리 방법.
The method according to claim 1,
Wherein the step of rewriting with the combination formula includes:
grouping the scalar operation expressions including m arithmetic expressions of m (where m is a natural number of 2 or more) into n groups (where n is a natural number) smaller than m, and rewriting the combination operation expressions
Wherein the scalar multiplication is performed in an elliptic curve cryptosystem.
제1항에 있어서,
상기 그룹 별로 병렬 처리하는 단계는,
상기 조합 연산식에서 동일한 그룹으로 그룹핑 된 하나 이상의 연산식을, 상기 복수의 프로세서를 이용하여 동시에 처리하는 단계
를 포함하는 타원곡선 암호화 시스템에서의 스칼라 곱셈 처리 방법.
The method according to claim 1,
The step of performing parallel processing for each group includes:
Simultaneously processing one or more operation expressions grouped into the same group in the combination operation expression using the plurality of processors
Wherein the scalar multiplication is performed in an elliptic curve cryptosystem.
제1항에 있어서,
상기 타원곡선 암호화 시스템이, 상기 임의의 두 점을 이루는 변수의 개수를 고려한 p(상기 p는 4 이상의 자연수)개의 프로세서를 포함하는 경우,
상기 그룹 별로 병렬 처리하는 단계는,
상기 p개의 프로세서를 이용하여, 각 그룹에 속하는 최대 p개의 연산을 동시에 처리하는 단계
를 포함하는 타원곡선 암호화 시스템에서의 스칼라 곱셈 처리 방법.
The method according to claim 1,
When the elliptic curve encryption system includes p processors (p is a natural number of 4 or more) in consideration of the number of variables constituting the arbitrary two points,
The step of performing parallel processing for each group includes:
Processing the maximum of p operations belonging to each group simultaneously using the p processors
Wherein the scalar multiplication is performed in an elliptic curve cryptosystem.
제6항에 있어서,
m(상기 m은 2 이상의 자연수)개의 연산식이 포함되는 스칼라 연산식을, 상기 m 보다 작은 n(상기 n은 자연수)개의 그룹으로 그룹핑하여 상기 조합 연산식으로 재작성하는 경우,
상기 그룹 별로 병렬 처리하는 단계는,
상기 p개의 프로세서를 이용하여, 상기 조합 연산식을 상기 m 보다 작은 n회에 처리하는 단계
를 더 포함하는 타원곡선 암호화 시스템에서의 스칼라 곱셈 처리 방법.
The method according to claim 6,
when a scalar expression expression including m arithmetic expressions of m (where m is a natural number of 2 or more) is grouped into n (n is a natural number) group smaller than m and rewritten into the combination operation expression,
The step of performing parallel processing for each group includes:
Processing the combination expression expression n times smaller than m using the p processors,
Wherein the scalar multiplication in the elliptic curve encryption system further comprises:
제1항에 있어서,
상기 스칼라 연산식을, 제1 그룹 및 제2 그룹을 순차적으로 포함한 복수의 그룹을 갖는 조합 연산식으로 재작성하는 경우,
상기 그룹 별로 병렬 처리하는 단계는,
상기 제1 그룹에 속하는 하나 이상의 연산을 상기 복수의 프로세서를 이용하여 동시에 처리하되, 상기 제1 그룹에 대한 처리가 수행되는 동안, 상기 제1 그룹과 상이한 제2 그룹에 속하는 하나 이상의 연산의 처리를 대기하는 단계
를 포함하는 타원곡선 암호화 시스템에서의 스칼라 곱셈 처리 방법.
The method according to claim 1,
When the scalar expression expression is rewritten into a combination operation expression having a plurality of groups sequentially including the first group and the second group,
The step of performing parallel processing for each group includes:
Processing one or more operations belonging to the first group at the same time using the plurality of processors, while processing for the first group is performed, processing of one or more operations belonging to a second group different from the first group Steps to wait
Wherein the scalar multiplication is performed in an elliptic curve cryptosystem.
제1항에 있어서,
상기 스칼라 연산식을 작성하는 단계는,
상기 임의의 두 점을 이루는 복수의 변수 각각을 초기 입력값으로 하는 가산, 감산 및 승산 중 적어도 하나의 연산자와 관련한 연산식을 포함하여, 제1 연산식을 작성하는 단계;
상기 초기 입력값을 이용한 연산식 각각의 처리값이 차기 연산식의 입력값이 되도록, 제2 연산식을 작성하는 단계; 및
상기 제1 연산식 및 상기 제2 연산식을 포함하여, 상기 임의의 두 점을 암호화 한 결과값을 출력하는 상기 스칼라 연산식을 작성하는 단계
를 포함하는 타원곡선 암호화 시스템에서의 스칼라 곱셈 처리 방법.
The method according to claim 1,
The step of generating the scalar expression may include:
Generating a first calculation expression including an operation expression related to at least one operator among addition, subtraction, and multiplication with an initial input value of each of the plurality of variables constituting the arbitrary two points;
Creating a second computation expression such that each processed value of the computation expression using the initial input value is an input value of a next computation expression; And
Generating the scalar expression for outputting a result obtained by encrypting the arbitrary two points including the first expression and the second expression;
Wherein the scalar multiplication is performed in an elliptic curve cryptosystem.
삭제delete 타원곡선 상의 임의의 두 점을 스칼라 곱셈 처리하는 스칼라 연산식을 작성하는 작성부;
상기 스칼라 연산식을 이루는 연산식 각각을, 선정된 기준에 따라 그룹핑 하여, 상기 스칼라 연산식을 조합 연산식으로 재작성하는 그룹핑부; 및
복수의 프로세서를 이용하여, 상기 조합 연산식을 그룹 별로 병렬 처리하고, 상기 병렬 처리에 대한 결과로서, 상기 임의의 두 점을 암호화 한 결과값을 출력하는 처리부
를 포함하고,
상기 타원곡선이, '커브25519(Curve25519)'일 경우,
상기 작성부는,
상기 커브25519를 기반으로, 몽고메리 더블&애드(Montgomery Double-and-Add) 방식 또는 몽고메리 사다리(Montgomery ladder) 방식에 기초하여, 상기 스칼라 연산식을 작성하고,
상기 처리부는,
상기 조합 연산식에 포함되는 연산식 각각의 처리값이, 상기 커브25519에 대한 소수로서 선정된 프라임 필드 이내의 범위가 되도록 처리하는 타원곡선 암호화 시스템.
A generating unit for generating a scalar operation expression for scalar multiplying an arbitrary two points on an elliptic curve;
A grouping unit for grouping each of the arithmetic expressions constituting the scalar arithmetic expression according to a predetermined criterion and rewriting the scalar arithmetic expression into a combinatorial expression; And
A processing unit for performing parallel processing of the combination expression equations by groups using a plurality of processors and outputting result values obtained by encrypting the arbitrary two points as a result of the parallel processing;
Lt; / RTI >
If the elliptic curve is 'Curve 25519 (Curve 25519)',
Wherein the creating unit comprises:
Based on the curve 25519, the scalar expression is generated based on the Montgomery double-and-add method or the Montgomery ladder method,
Wherein,
Wherein the processing value of each of the operation formulas included in the combination expression is in a range within a predetermined prime field as a prime number for the curve 25519. [
제11항에 있어서,
상기 그룹핑부는,
상기 연산식 각각을 연산자 별로 분류하고, 같은 연산자로 분류된 연산식 중에서 상기 프로세서의 개수에 따른 최대 p개(상기 p는 4 이상의 자연수)의 연산식을, 동일한 그룹으로 그룹핑 하고,
상기 그룹핑에 따라 생성된 각 그룹을, 그룹에 속한 연산식 간의 처리 순서에 따라 배치하여, 상기 조합 연산식을 재작성하는
타원곡선 암호화 시스템.
12. The method of claim 11,
The grouping unit,
Grouping the arithmetic expressions of a maximum number p (where p is a natural number of 4 or more) according to the number of processors among the arithmetic expressions classified by the same operator into the same group,
Arranging the groups generated in accordance with the grouping in accordance with the order of processing among the groups of calculation expressions belonging to the group to rewrite the combination expression
Elliptic Curve Encryption System.
제11항에 있어서,
상기 그룹핑부는,
m(상기 m은 2 이상의 자연수)개의 연산식이 포함되는 스칼라 연산식을, 상기 m 보다 작은 n(상기 n은 자연수)개의 그룹으로 그룹핑 하여, 상기 조합 연산식을 재작성하는
타원곡선 암호화 시스템.
12. The method of claim 11,
The grouping unit,
grouping the scalar operation expressions including m arithmetic expressions of m (where m is a natural number of 2 or more) into n groups (n is a natural number) smaller than m, and rewriting the combination expression expressions
Elliptic Curve Encryption System.
제11항에 있어서,
상기 처리부는,
상기 조합 연산식에서 동일한 그룹으로 그룹핑 된 하나 이상의 연산식을, 상기 복수의 프로세서를 이용하여 동시에 처리하는
타원곡선 암호화 시스템.
12. The method of claim 11,
Wherein,
One or more operation expressions grouped into the same group in the combination operation expression are simultaneously processed using the plurality of processors
Elliptic Curve Encryption System.
제11항에 있어서,
상기 스칼라 연산식을, 제1 그룹 및 제2 그룹을 순차적으로 포함한 복수의 그룹을 갖는 조합 연산식으로 재작성하는 경우,
상기 처리부는,
상기 제1 그룹에 속하는 하나 이상의 연산을 상기 복수의 프로세서를 이용하여 동시에 처리하되, 상기 제1 그룹에 대한 처리가 수행되는 동안, 상기 제1 그룹과 상이한 제2 그룹에 속하는 하나 이상의 연산의 처리를 대기하는
타원곡선 암호화 시스템.
12. The method of claim 11,
When the scalar expression expression is rewritten into a combination operation expression having a plurality of groups sequentially including the first group and the second group,
Wherein,
Processing one or more operations belonging to the first group at the same time using the plurality of processors, while processing for the first group is performed, processing of one or more operations belonging to a second group different from the first group Waiting
Elliptic Curve Encryption System.
KR1020170147844A 2017-11-08 2017-11-08 Method for processing scalar multiplication in elliptic curve cryptosystem, and elliptic curve cryptosystem KR101925614B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020170147844A KR101925614B1 (en) 2017-11-08 2017-11-08 Method for processing scalar multiplication in elliptic curve cryptosystem, and elliptic curve cryptosystem

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020170147844A KR101925614B1 (en) 2017-11-08 2017-11-08 Method for processing scalar multiplication in elliptic curve cryptosystem, and elliptic curve cryptosystem

Publications (1)

Publication Number Publication Date
KR101925614B1 true KR101925614B1 (en) 2018-12-05

Family

ID=64743694

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020170147844A KR101925614B1 (en) 2017-11-08 2017-11-08 Method for processing scalar multiplication in elliptic curve cryptosystem, and elliptic curve cryptosystem

Country Status (1)

Country Link
KR (1) KR101925614B1 (en)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111897578A (en) * 2020-07-31 2020-11-06 中国科学院信息工程研究所 Parallel processing method and device for scalar multiplication on elliptic curve with characteristic of 2
KR20220071047A (en) 2020-11-23 2022-05-31 부산대학교 산학협력단 System and Method for Calculating Faster ECC scalar multiplication on FPGA

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004177582A (en) * 2002-11-26 2004-06-24 Fujitsu Ltd Elliptic curve ciphering system, and elliptic curve ciphering operation method
JP2014138194A (en) * 2013-01-15 2014-07-28 Mitsubishi Electric Corp Information processing device
KR101707334B1 (en) * 2015-11-05 2017-02-15 인하대학교 산학협력단 Apparatus for efficient elliptic curve cryptography processor and method for the same

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004177582A (en) * 2002-11-26 2004-06-24 Fujitsu Ltd Elliptic curve ciphering system, and elliptic curve ciphering operation method
JP2014138194A (en) * 2013-01-15 2014-07-28 Mitsubishi Electric Corp Information processing device
KR101707334B1 (en) * 2015-11-05 2017-02-15 인하대학교 산학협력단 Apparatus for efficient elliptic curve cryptography processor and method for the same

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111897578A (en) * 2020-07-31 2020-11-06 中国科学院信息工程研究所 Parallel processing method and device for scalar multiplication on elliptic curve with characteristic of 2
KR20220071047A (en) 2020-11-23 2022-05-31 부산대학교 산학협력단 System and Method for Calculating Faster ECC scalar multiplication on FPGA
US11368303B2 (en) 2020-11-23 2022-06-21 Pusan National University Industry-University Cooperation Foundation System and method for calculating faster ECC scalar multiplication on FPGA

Similar Documents

Publication Publication Date Title
Rathee et al. Cryptflow2: Practical 2-party secure inference
Wang et al. Accelerating fully homomorphic encryption using GPU
WO2018212920A1 (en) Quantum resource estimates for computing elliptic curve discrete logarithms
Kepley et al. Quantum circuits for F _ 2^ n F 2 n-multiplication with subquadratic gate count
Bigou et al. Single base modular multiplication for efficient hardware RNS implementations of ECC
Imran et al. Hardware design and implementation of ECC based crypto processor for low-area-applications on FPGA
Bisheh Niasar et al. Efficient hardware implementations for elliptic curve cryptography over Curve448
Bini et al. Semi-infinite quasi-Toeplitz matrices with applications to QBD stochastic processes
KR101925614B1 (en) Method for processing scalar multiplication in elliptic curve cryptosystem, and elliptic curve cryptosystem
Oliveira et al. Fast point multiplication algorithms for binary elliptic curves with and without precomputation
Niasar et al. Optimized architectures for elliptic curve cryptography over Curve448
CN106464484A (en) Obfuscated performance of a predetermined function
Farzam et al. Implementation of supersingular isogeny-based Diffie-Hellman and key encapsulation using an efficient scheduling
KR102075848B1 (en) Method, Apparatus and Recording Medium Of Polynomial Operation Optimization Processing
US10333697B2 (en) Nondecreasing sequence determining device, method and program
CN104506316A (en) Point multiplication operation method based on SM2 base points
WO2020167254A1 (en) Method and system for determining an order of encrypted inputs
JPWO2018008547A1 (en) Secret calculation system, secret calculation device, secret calculation method, and program
US20170324546A1 (en) Electronic generation device
El-Kady et al. High-level synthesis design approach for number-theoretic transform implementations
Valencia et al. The design space of the number theoretic transform: A survey
Foster et al. Flexible HLS-based implementation of the Karatsuba multiplier targeting homomorphic encryption schemes
Joux A Tutorial on High Performance Computing Applied to Cryptanalysis: (Invited Talk Abstract)
US11681498B2 (en) Neural network arithmetic processing device and neural network arithmetic processing method
Judge et al. A hardware-accelerated ECDLP with high-performance modular multiplication

Legal Events

Date Code Title Description
A302 Request for accelerated examination
E701 Decision to grant or registration of patent right
GRNT Written decision to grant