KR20020086005A - Inverse operator for elliptic curve cryptosystems - Google Patents

Inverse operator for elliptic curve cryptosystems Download PDF

Info

Publication number
KR20020086005A
KR20020086005A KR1020010025594A KR20010025594A KR20020086005A KR 20020086005 A KR20020086005 A KR 20020086005A KR 1020010025594 A KR1020010025594 A KR 1020010025594A KR 20010025594 A KR20010025594 A KR 20010025594A KR 20020086005 A KR20020086005 A KR 20020086005A
Authority
KR
South Korea
Prior art keywords
output
multiplexer
elliptic curve
data
multiplication
Prior art date
Application number
KR1020010025594A
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 KR1020010025594A priority Critical patent/KR20020086005A/en
Publication of KR20020086005A publication Critical patent/KR20020086005A/en

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/30Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
    • H04L9/3066Public 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

Abstract

PURPOSE: An inverse element operator for elliptic curve cryptosystem is provided to perform a high-speed operation for a point on an elliptic curve by using a processor for performing a high-speed operation. CONSTITUTION: The first multiplexer(100) outputs selectively input data of m bits and feedback data. The first rotation portion(110) rotates output data of the first multiplexer(100) according to a rotation number control signal and outputs the rotated data. The second multiplexer(140) outputs selectively the input data of m bits and the feedback data. The first multiplication circuit(130) outputs a result of m bits by performing a basis multiplication operation for output signals of the second multiplexer(120) and the first rotation portion(110). The second rotation portion(140) rotates an output of the first multiplication circuit(130). The second multiplication circuit(150) outputs a result by performing the basis multiplication operation for an output of the second rotation portion(140) and the input data of m bits. The third multiplexer(160) outputs selectively outputs of the first multiplication circuit(130) and the second multiplication circuit(150). A register(170) stores output data of the third multiplexer(160). The third rotation portion(180) outputs inverse element data of the input data by rotating an output of the register(170). A control portion(190) outputs control signals for controlling the first to the third multiplexers(100,120,160) and the first rotation portion(110) according to input clocks.

Description

타원곡선 암호 시스템을 위한 역원 연산기{INVERSE OPERATOR FOR ELLIPTIC CURVE CRYPTOSYSTEMS}INVERSE OPERATOR FOR ELLIPTIC CURVE CRYPTOSYSTEMS} for Elliptic Curve Cryptography

본 발명은 타원 곡선 암호 시스템에 관한 것으로, 특히 타원곡선 암호 시스템을 위한 역원 연산기에 관한 것이다.The present invention relates to an elliptic curve cryptographic system, and more particularly to an inverted operator for an elliptic curve cryptographic system.

최근 들어 통신망상의 보안이 원활한 정보 통신 세계를 구축하기 위해 중요한 요소가 됨에 따라 정보의 암호 기술 또한 점차 발달하게 되었다.Recently, as the security of the communication network has become an important factor for building a smooth information communication world, information encryption technology has also gradually developed.

초기의 암호 기술은 간단한 대치 및 전치방식을 사용했으나, 근래 컴퓨터의 계산능력이 비약적으로 증대되고 암호를 해독할 수 있는 새로운 알고리즘 및 수학적 이론들의 등장으로 인해 원하는 수준의 보안을 유지하기 위해 제안되는 암호 방식은 점점 더 복잡해 지고 있다. 그러나 암호 방식의 복잡도가 증가함에 따라, 이를 응용하고 사용하기 위해 암호 알고리즘을 실제로 구현하는 것이 또 다른 문제로 대두되었다. 즉, 계산량이 커지고 암/복호화 시간이 오래 걸리며, 시스템을 구현하기 위해서는 사양이 높은 하드웨어가 필요하게 되었다.Early cryptographic techniques used simple substitution and transposition, but the cryptography that has been proposed to maintain the desired level of security due to the dramatic increase in computational power of computers and the emergence of new algorithms and mathematical theories that can decrypt them. The way is getting more complicated. However, as the complexity of cryptography increases, the realization of cryptographic algorithms for applying and using them has become another problem. In other words, the computational amount is large, the encryption / decryption time is long, and the high specification hardware is needed to implement the system.

1985년 N. Kobiltz와 V. Miller가 각각 독립적으로 제안한 타원곡선 암호 시스템(ECC:Elliptic Curve Cryptosystems)은 보다 짧은 비트 길이의 키만으로도 다른 공개키 시스템과 동일한 수준의 안전도를 유지할 수 있는 장점으로 인해, IC카드와 같은 메모리와 처리능력이 제한된 하드웨어에도 이식 가능하다[Working Draft IEEE P1363, Part6]. 또한 동일한 유한체 연산을 사용하면서도 다른 타원곡선을 선택할 수 있어서 추가적인 보안이 가능하기 때문에, 고수준의 안전도를 유지하기 위한 차세대 암호 알고리즘으로 각광 받고 있다.Elliptic Curve Cryptosystems (ECC), independently proposed by N. Kobiltz and V. Miller, respectively, in 1985, has the advantage of maintaining the same level of security as other public key systems with shorter bit length keys. It is also portable to memory such as IC cards and hardware with limited processing capacity [Working Draft IEEE P1363, Part 6]. In addition, it is possible to select another elliptic curve while using the same finite field arithmetic, so that additional security is possible.

타원곡선 암호화는 이미 차세대 암호 기법으로 인정받고 있으며, HP, Motorola, NTT, Fujitsu 등 세계 주요 IT 업체들이 타원곡선 암호기술을 기반으로 한 새 표준 암호 기술을 개발중이다. 또한 외국에서는 타원곡선 암호와 관련된 연구 및 소프트웨어, 하드웨어 구현이 다수 이루어지고 있다.Elliptic curve encryption is already recognized as the next-generation encryption technique, and major IT companies such as HP, Motorola, NTT, and Fujitsu are developing new standard encryption technology based on elliptic curve encryption technology. In addition, many studies, software, and hardware implementation related to elliptic curve cryptography have been conducted abroad.

그러나 국내에서는 아직 타원곡선 암호에 대한 연구가 미비한 실정이며, 하드웨어 구현 사례는 없다. 이에 타원곡선이 정의된 기저체 상의 연산을 고속으로 수행할 수 있는 전용 프로세서의 개발을 통해 IC 카드, 이동 통신 단말기 등, 낮은 사양의 하드웨어에서도 강력한 보안이 필요한 여러 분야로의 응용을 가능케 하는 ECC를 위한 기저체 연산기의 개발이 절실하다.However, in Korea, studies on elliptic curve cryptography are still insufficient, and there are no hardware implementation cases. Therefore, by developing a dedicated processor that can perform calculations on a base body with an elliptic curve defined at high speed, ECC is used to enable applications in various fields requiring strong security even on low-spec hardware such as IC cards and mobile communication terminals. The development of a base body calculator for this is urgent.

따라서 본 발명의 목적은 타원곡선 암호시스템을 구현하기 위한 일환으로 타원곡선 상의 점을 고속으로 연산할 수 있는 전용의 역원 연산기를 제공함에 있다.Accordingly, an object of the present invention is to provide a dedicated inverted operator capable of computing a point on an elliptic curve at high speed as part of implementing an elliptic curve cryptographic system.

본 발명의 또 다른 목적은 유한체를 사용하는 다양한 응용 분야로 확장이 용이한 역원 연산기를 제공함에 있다.It is still another object of the present invention to provide an inverted operator that can be easily extended to various applications using finite bodies.

도 1은 본 발명의 실시예에 따른 역원 연산기 구성도.1 is a block diagram of an inverted operator according to an embodiment of the present invention.

상기 목적을 달성하기 위한 본 발명의 일 양상에 따른 역원 연산기는;Inverse operator according to an aspect of the present invention for achieving the above object;

m비트 입력데이터와 귀환 데이터중 하나를 선택 출력하기 위한 제1멀티플렉서와;a first multiplexer for selectively outputting one of m-bit input data and feedback data;

상기 제1멀티플렉서의 출력데이터를 로테이션 횟수 제어신호에 따라 로테이션시켜 출력하는 제1로테이션부와;A first rotation unit configured to rotate and output the output data of the first multiplexer according to a rotation number control signal;

상기 m비트 입력데이터와 귀환 데이터중 하나를 선택 출력하기 위한 제2멀티플렉서와;A second multiplexer for selectively outputting one of the m-bit input data and feedback data;

상기 제2멀티플렉서와 제1로테이션부의 출력신호를 입력받아 타원곡선 암호를 위한 기저체 승법연산에 따라 연산 수행하여 m비트 결과를 출력하는 제1승산 회로와;A first multiplier circuit for receiving the output signals of the second multiplexer and the first rotation unit and performing an operation according to a base multiplication operation for an elliptic curve cryptography to output an m-bit result;

상기 제1승산 회로의 출력을 로테이션 출력하는 제2로테이션부와;A second rotation unit configured to rotate and output the output of the first multiplication circuit;

상기 제2로테이션부의 출력과 상기 m비트 입력데이터를 타원곡선 암호를 위한 기저체 승법연산에 따라 연산 수행하여 출력하는 제2승산 회로와;A second multiplication circuit configured to perform arithmetic operation on the output of the second rotation unit and the m-bit input data according to a base body multiplication operation for an elliptic curve encryption;

상기 제1승산 회로와 제2승산 회로의 출력중 하나를 선택 출력하기 위한 제3멀티플렉서와;A third multiplexer for selectively outputting one of the outputs of the first multiplication circuit and the second multiplication circuit;

상기 제3멀티플렉서의 출력데이터를 저장하기 위한 레지스터와;A register for storing output data of the third multiplexer;

상기 레지스터의 출력을 로테이션하여 상기 입력 데이터의 역원 데이터를 출력하는 제3로테이션부와;A third rotation unit rotating the output of the register to output inverse data of the input data;

입력 클럭에 따라 상기 멀티플렉서들과 제1로테이션부를 제어하기 위한 신호를 발생하여 출력하는 제어부로 구성함을 특징으로 한다.And a controller for generating and outputting signals for controlling the multiplexers and the first rotation unit according to an input clock.

이하에서는 본 발명의 이해를 돕기 위해 우선적으로 타원곡선 암호의 수학적인 배경에 대하여 설명하고, 그 다음으로 구현의 핵심이 되는 기저체 연산을 분석하고, 체 원소의 표현법에 따른 연산 방법의 차이에 대하여 우선 설명한 다음, 이러한 분석을 통해 얻은 하드웨어로의 효율적인 구현을 위한 알고리즘과 방법론을 제시한 뒤, 최종적으로 도출된 이론을 바탕으로 제작된 본 발명의 구성 및 동작을 설명하기로 한다.In the following, the mathematical background of the elliptic curve cryptography is first described in order to facilitate understanding of the present invention, and then, the analysis of the base body operations, which are the core of the implementation, and the differences in the calculation methods according to the representation method of the body elements. First, the algorithm and methodology for efficient implementation in hardware obtained through such analysis will be described, and then the configuration and operation of the present invention produced based on the finally derived theory will be described.

우선 타원곡선을 암호시스템에 적용하기 위해서는 우선 적절한 타원곡선을 선택하고 그에 따른 타원곡선 군을 구해야 한다. 기저체 상의 타원곡선을 나타내기 위해서 여러 가지 좌표계를 사용할 수 있으나, Affine 좌표계나 Projective 좌표계를 주로 사용한다. Affine 좌표계를 사용하면 점 연산시 곱셈과 덧셈의 횟수가 줄어들지만 역원을 구하는 과정이 필요하다. 반면 Projective 좌표계를 사용하면 역원 연산은 없으나 곱셈과 덧셈의 횟수가 증가한다. 타원곡선을 표현함에 있어서 좌표계의 선택은 역원을 얼마나 효율적으로 구할 수 있는가에 달려 있다. 역원을 구하는 과정 역시 여러 단계의 곱셈 및 덧셈으로 이루어져 있기 때문에 전체적인 연산량을 비교 검토한 후에 좌표계를 선택하는 것이 바람직하다. 유한체 상에서 역원을 구하는 효율적인 알고리즘이 최근 다수 발표되었고, 본 발명에서도 역원을 구하는 효율적인 하드웨어 알고리즘을 제시하고 있으므로, Affine 좌표계에 타원곡선을 나타내는 방법을 선택하였다.First of all, in order to apply the elliptic curve to the cryptographic system, we first need to select an appropriate elliptic curve and obtain a group of elliptic curves accordingly. Various coordinate systems can be used to represent the elliptic curve on the base body, but the Affine coordinate system or the projective coordinate system is mainly used. Using the Affine coordinate system reduces the number of multiplications and additions during point operations, but requires the inverse process. Projective coordinate systems, on the other hand, do not have inverse operations but increase the number of multiplications and additions. In representing an elliptic curve, the choice of coordinate system depends on how efficiently the inverse can be found. The process of finding the inverse also consists of several stages of multiplication and addition, so it is advisable to select a coordinate system after comparing the overall computation. Recently, a number of efficient algorithms for obtaining inverses on a finite body have been recently published, and since the present invention proposes an efficient hardware algorithm for obtaining inverses, the method of representing an elliptic curve in the Affine coordinate system is selected.

타원곡선 군을 얻는 방법은 다음과 같다. 우선 K를 임의의 체라 하면, 하기 수학식 1의 non-homogeneous(affine) Weierstrass 방정식을 만족하는 해와 무한원점(point at infinity) O는 K상의 타원곡선을 정의한다.The method of obtaining an elliptic curve group is as follows. First, if K is an arbitrary sieve, a solution satisfying the non-homogeneous (affine) Weierstrass equation And the point at infinity O define an elliptic curve on K.

단, only,

이때 체 K의 표수가 2가 아니라면로 변형할 수 있다(만약 표수 K > 3 이면로 변형할 수 있다). 그리고 체 K의 표수가 2인 경우에 상기 수학식 1은 수학식 2 또는 3중 어느 하나로 변환할 수 있다.If the surface of sieve K is not 2 We can transform into (if surface number K> 3 Can be transformed into). And when the number of sieves K is 2, Equation 1 may be converted to either Equation 2 or 3.

만약 E가 이 곡선상에 있는 점들의 집합이라면, 덧셈 연산을 잘 정의함으로써 집합 E ∪ {O}는 가환군(abelian group)이 될 수 있으며, 이것을 E(K)로 나타낸다. 이 가환군은 항등원인 무한원점 O와 함께 타원곡선 군이 된다.If E is a set of points on this curve, by defining the addition operation well, the set E ∪ {O} can be an abelian group, denoted by E (K). This Gahwan group becomes an elliptic curve group with infinite origin O, the identity.

이하 타원곡선 상에 있는 점들간의 가법 연산을 정의한다. 다음과 같이 가법 연산을 정의하면 타원곡선 상의 점 집합은 가환군을 이룬다.Hereinafter, the additive operation between points on an elliptic curve is defined. If you define the additive operation as follows, the set of points on the elliptic curve constitutes the test group.

정의 E를 실수상의 타원곡선 이라 하고, P와 Q를 타원곡선 E상에 있는 2개의 점이라 한다. 여기에서 아래와 같은 방법에 의해 P의 음 -P와 합 P+Q를 정의한다.Definition E is called the real elliptic curve, and P and Q are the two points on the elliptic curve E. Here, the negative P of P and the sum P + Q are defined by the following method.

① 만약 P가 무한원점 O이라면, -P를 O라 하고, P+Q를 Q라 정의한다. 즉, 무한원점 O가 여기에서 생각하고 있는 점의 군에 있어서 가법의 단위원인 zero원에 상당한다고 생각할 수 있다. 이것으로부터 후술하는 부분에서는 두 점 P와 Q의 어느 것도 무한원점이 아니라고 가정한다.① If P is infinite point O, -P is defined as O and P + Q is defined as Q. In other words, it can be considered that the infinite point O corresponds to the zero circle, which is a unit member of the additive in the group of points considered here. In the following description, it is assumed that neither of the two points P and Q is an infinite origin.

② -P는 P와 동일한 x좌표값을 가지며, P의 y좌표의 음의 값을 가진다. 즉, -(x, y) = (x, -y)라 한다. 점 (x, y)가 곡선상의 점이라면 점 (x, -y)도 곡선상의 점이 되는 것은 명백하다.② -P has the same x-coordinate value as P and negative value of y-coordinate of P. That is,-(x, y) = (x, -y). If point (x, y) is a point on the curve, it is obvious that point (x, -y) also becomes a point on the curve.

③ 만약 2점 P와 Q가 서로 다른 x좌표값을 가질 때, 직선와 곡선은 반드시 또 하나의 교점 R을 가지는 것은 명백하다.(단, 직선이 점 P에 있어서 곡선과 접하지 않는 것으로 한다. 만약 점 P에서 접하고 있을 경우에는 R=P가 되고, 점 Q에서 접하고 있을 때에는 R=Q로 한다). 이때 P+Q를 -R, 즉 제 3번째 교점의 x축에 대한 대칭상이라고 정의한다.③ If two points P and Q have different x coordinates, It is clear that the and curves must always have another intersection point R, unless the straight line is in contact with the curve at point P. If it is in contact with point P, R = P, If any, R = Q). In this case, P + Q is defined as -R, that is, a symmetric image about the x-axis of the third intersection point.

④ 만약 Q=-P일때(즉, Q가 P에 대해서 동일한 x좌표값을 가지고 음인 y좌표값을 가짐), P+Q=O(무한원점)이라 정의한다.If Q = -P (that is, Q has the same x coordinate for P and has a negative y coordinate), it is defined as P + Q = O (infinity).

⑤ 나머지 생각할 수 있는 경우는 P=Q일 때이다. 이 경우 l을 곡선상의 점 P에서의 접선이라 하고, R을 곡선과 접선 l의 접점 이외의 유일한 교점이라 하면, P+Q = -R이라고 정의한다(만약 생각하고 있는 접선이 곡선과 2중으로 접하고 있는, 즉 P가 변곡점(point of inflection)인 경우에는 R을 P라 한다).(5) The other thing to think about is when P = Q. In this case, let l be the tangent at the point P on the curve, and if R is the only intersection point between the curve and the tangent l, then define P + Q = -R. Where P is the point of inflection, R is called P).

이와 같은 정의를 바탕으로, K의 표수가 2와 3이 아닌 경우에 P+Q의 좌표값을 유도해 보자. 기저체 K의 표수가 2도 아니고 3도 아닌 경우, 타원곡선은 무한원점 O와 하기 수학식 4를 만족하는인 점 (x, y)의 집합을 나타낸다.Based on this definition, let's derive the coordinates of P + Q when K is not 2 and 3. If the surface of the base K is neither 2 nor 3, the elliptic curve satisfies the infinite zero point O and the following Equation 4. Represents a set of points (x, y).

우선,를 각각 P, Q, P+Q의 좌표값이라고 하자.를 사용하여 나타내면 P+Q의 좌표값을 구하는 것이 된다.를 두 점 P, Q를 지나는 직선(여기에서 생각하는 ③의 직선은 y축에 평행하지 않다)의 방정식이라 한다. 이때임은 명백하다. 곡선상의 두 점 P와 Q에 의한 직선 상의 점, 즉 점()은을 만족할때, 그리고 그때에 한해서 곡선상에도 있다. 이것으로부터 3차 방정식의 근의 개수만큼 교점이 존재하는 것을 알 수 있다. 이제,은 각각 P, Q라 하는 곡선상의 두 점인 것을 알고 있으므로, 앞의 방정식의 근 중 두 개의 근이임을 알 수 있다. 또한, 모닉 다항식의 해의 합은, 다항식에서 두 번째로 높은 차수인 항의 계수에 음을 취한 값과 동일하므로, 이 경우에 구하고자 하는 세 번째의 해는가 된다. 이것으로부터에 대해서를 이용하여 구하는 것이 가능하며, 따라서도 구해진다. 결과적으로 P+Q는 하기 수학식 5와 같이 된다.first, Let be the coordinate values of P, Q, and P + Q, respectively. Wow To In this case, the coordinate value of P + Q is obtained. Is the equation of a straight line passing through two points P and Q (the straight line ③ is not parallel to the y-axis). At this time Im obvious. A point on a straight line by two points P and Q on a curve, that is, a point ( )silver Is satisfied, and only then on the curve. Cubic equation from this It can be seen that as many intersection points exist as the roots of. now, Wow We know that are two points on the curve, P and Q, so two of the roots of the equation It can be seen that. Also, the sum of the solutions of the moniker polynomials is equal to the negative value of the coefficient of the second highest order term in the polynomial, so in this case the third solution Becomes From this about It is possible to obtain using Is also obtained. As a result, P + Q becomes as shown in Equation 5 below.

그리고 상기 정의 ⑤의 P=Q인 경우에 대해서도 α를 점 P의 미분계수 dy/dx로 하는 것 이외에는 동일하다. 타원곡선 식의 음함수 미분(implicit differentiation)으로부터 식이 유도되며, P의 2배의 좌표값을 나타낸 하기 수학식 6이 유도된다.Also in the case of P = Q in the definition (5) above, α is the same except that the differential coefficient dy / dx of the point P is used. Equation from Implicit Differentiation of Elliptic Curve Equation Is derived, and the following equation (6) representing the coordinate value twice P is derived.

마찬가지로, K의 표수가 2인 경우 P+Q의 좌표값을 유도하면 하기 수학식 7, 8과 같다.Similarly, in the case where the number of K's surface is 2, a coordinate value of P + Q is derived.

유도된 P+Q의 좌표값에 대한 식은 K의 표수가 2이고 타원곡선이 non-supersingular curve인 경우에 대한 것이다. 본 발명에서는 하드웨어로의 구현을 목적으로 하고 있기 때문에 이후로는 기저체 K를 표수가 2인 GF() 또는형태로 생각한다.The equation for the coordinates of the derived P + Q is for the case where the number of K's surface is 2 and the elliptic curve is a non-supersingular curve. In the present invention, since it is intended to be implemented in hardware, the base body K is represented by GF ( ) or Think in form.

이하 타원곡선 암호화를 적용한 암호 시스템의 일예에 대하여 간략히 설명하기로 한다.Hereinafter, an example of an encryption system using elliptic curve encryption will be briefly described.

우선 기저체를 선택한다.상의 타원곡선을 E로 나타내고, E상의 한 점 P를 선택한다. P의 위수는 n으로 나타낸다. 그리고 시스템 파라미터는 기저체, 타원곡선 E, 점 P, 위수 n이며 모두 공개정보이다.First basement Select. The elliptic curve of the phase is represented by E, and one point P of the E phase is selected. The rank of P is represented by n. And system parameters , Elliptic curve E, point P, order n and all are public information.

·키 발생(key generation)Key generation

각 엔티티(entity)는 다음의 동작을 수행한다.Each entity performs the following operations.

1. 구간 [1, n-1] 사이에서 랜덤한 정수 d를 선택한다.1. Select a random integer d between intervals [1, n-1].

2. 점 Q: = dP를 계산한다.2. Calculate point Q: = dP.

3. 엔티티의 공개키는 점 Q로 구성된다.3. The entity's public key consists of point Q.

4. 엔티티의 비밀키는 정수 d이다.4. The private key of the entity is the integer d.

·암호화 프로세스Encryption process

엔티티 B가 엔티티 A에게 메세지 M을 보내는 경우를 가정하면, 엔티티 B는 다음을 수행한다.Assuming that entity B sends message M to entity A, entity B does the following:

1. A의 공개키 Q를 확인한다.1. Check A's public key Q.

2. 메세지 M을 기저체의 원소 ()로 나타낸다. 단,이다.2. The message M is based on the element ). only, to be.

3. 구간 [1, n-1] 사이에서 랜덤한 정수 k를 선택한다.3. Select a random integer k between the intervals [1, n-1].

4. 점 () : = kP를 계산한다.4. points ( ): = compute kP.

5. 점 () : = kQ를 계산한다.5. Point ( ): = compute kQ.

6. 미리 정해진 연산방법으로 기저체 원소와 연산하여를 구한다. 단는 기저체의 원소에 포함되어야 한다.6. Basal body element by predetermined calculation method To With and and Obtain only and Must be included in the element of the base body.

7. 데이터 c : = ()를 A에게 송신한다.7. Data c: = ( ) To A.

· 복호화 프로세스Decryption process

엔티티 A가 B로부터 수신한 암호문 c : = ()를 해독하는 과정이다. 엔티티 A는 다음을 수행한다.Ciphertext received from B by entity c: = ( ) Is the process of deciphering. Entity A does the following:

1. 자신의 비밀키 d를 사용하여 점을 계산한다.1. a dot using his private key d Calculate

2.로부터 메세지를 복원한다.2. From and Restore it.

이하 유한체에서의 최적 정규 기저(ONB:Optimal Normal Bases)에 대하여 설명하면,Finite field Explaining Optimal Normal Bases (ONB) in

타원곡선을 이용한 암호 시스템을 설계할 경우 가장 기본이 되는 연산은 타원곡선 상에 있는 점들간의 가법 연산이다. 그런데 유한체 상의 타원곡선 위에 있는 점들이 군을 형성할 수 있도록 정의된 가법연산은 앞에서 유도한 바와 같이 기저체 연산, 즉 타원곡선이 정의된 유한체의 연산으로 이루어져 있다. 따라서 타원곡선을 이용한 암호 시스템의 성능, 즉 암/복호화 속도는 기저체 연산기의 성능에 의해 결정된다. 유한체 상의 연산은 근본적으로는 동일하지만, 체의 원소 표현법에 따라 세부적인 계산법이 달라진다. 체의 원소 표현법은 크게 polynomunal basis representation과 normal basis representation이 있는데, 하드웨어 구현 시에는 비트 단위의 연산이 간단해 지는, 표수 2인 체 상의 정규기저 표현식(normal basis representation)이 보다 적합하다. 유한체상의 원소는 최적정규기저(ONB) 표현식을 사용하여 표현될 수 있다. ONB는에서 특정한 m값에서만 존재한다. 두 종류의 ONB가 있으며 그에 대한 자세한 내용은 Working Draft IEEE P1363, Part 6과 Michael Rosing, "Implementing Elliptic Curve Cryptography", Manning pub., 1999을 참조하길 바란다. ONB에 대한 구체적인 사항은 다음과 같다.When designing an encryption system using an elliptic curve, the most basic operation is additive operation between points on the elliptic curve. However, the additive operation defined so that the points on the elliptic curve on the finite body can form a group consists of a base body operation, that is, a finite body operation in which an elliptic curve is defined as described above. Therefore, the performance of the encryption system using the elliptic curve, that is, the encryption / decryption speed, is determined by the performance of the base body calculator. The operations on the finite field are essentially the same, but the details of the calculation differ depending on the elemental representation of the body. The elemental representation of the sieve is largely polynomunal basis representation and normal basis representation. In hardware implementation, a normal basis representation on a sieve of 2 is more suitable, which simplifies bitwise operation. Finite body The elements of the phase can be expressed using an ONB expression. ONB It exists only at the specific m value in. There are two types of ONB, see Working Draft IEEE P1363, Part 6 and Michael Rosing, "Implementing Elliptic Curve Cryptography", Manning pub., 1999. Details of ONB are as follows.

1. 만약이 타입(type) Ⅰ ONB만을 가진다면이라 한다. 그렇지 않고이 타입 Ⅱ ONB를 가진다면 다음의 점화식을 사용하여를 계산한다.1. If If you only have this type I ONB This is called. other If you have this Type II ONB, use the following ignition Calculate

는 계수가의 원소이고 차수가 m인 다항식이다. 다항식의 집합 {}은상에 있는의 기저를 형성한다. 이 기저를 정규기저(normal basis)라 한다. Is the coefficient Is a polynomial of order m and order m. Set of polynomials { }silver On To form the basis of. This basis is called the normal basis.

2. 다항식를 mod f(x)하여 생성된 바이너리 벡터를 i번째 열로 해서 m×m 행렬 A를 구성한다. 단,이다. A의 각 엔트리는의 원소로 이루어져 있다.2. Polynomial Mod f (x) to form the m × m matrix A using the i-th column as the binary vector. only, to be. Each entry in A is It consists of elements of.

3. A의 역행렬를 구한다.3. Inverse of A Obtain

4. 다항식를 mod f(x)하여 생성된 바이너리 벡터를라 하자.를 i번째 열로 해서 m×m 행렬 T를 구성한다.4. Polynomial Is a binary vector generated by mod f (x) Let's do it. Let m be the i-th column to form the m × m matrix T.

5.라 한다. 단,이다. 여기에서는 T의 ()엔트리를 나타낸다. 각각의의 원소로 이루어져 있다. i가 0일 경우에는 단 하나의 j에 대해서이 성립하며, i가인 경우에는 정확히 2개의 j에 대해서이 성립한다. 그러므로 행렬 T에 있는개의 엔트리 중에서 2m-1개의 엔트리만이 1이며, 나머지는 모두 0이다. 이러한 이유 때문에 이러한 정규기저는 특별히 최적정규기저(ONB)라 칭한다.5. It is called. only, to be. From here Of t ( Indicates an entry. Each Is It consists of elements of. if i is 0 for only one j This holds true, i For exactly 2 j This holds true. Therefore, in matrix T Of 2 entries, only 2m-1 entries are 1, all others are 0. For this reason, this normal basis is specifically called ONB.

예를 들어,인 경우 ONB 표현식을 사용한 연산을 살펴보면의 원소는 다음과 같은 4-tuple의 집합이다.E.g, If you look at the operation using the ONB expression The element of is a set of 4-tuple

(0000) (0001) (0010) (0011) (0100) (0101) (0110) (0111)(0000) (0001) (0010) (0011) (0100) (0101) (0110) (0111)

(1000) (1001) (1010) (1011) (1100) (1101) (1110) (1111)(1000) (1001) (1010) (1011) (1100) (1101) (1110) (1111)

그러면 가법(addition) 및 승법(multiplication)은 아래와 같다.The addition and multiplication are then as follows.

·필드 가법 :이다. 단,의 원소이다. 즉, 가법연산은 벡터 표현을 XOR(exclusive or)한 것이다.Field additive: to be. only, Is Is an element of. In other words, the additive operation is an XOR (exclusive or) of a vector representation.

·필드 승법 : 승법을 위한 준비 과정은 다음과 같다.Field multiplication: The preparation process for multiplication is as follows.

1.이다.One. to be.

2. 행렬 A를 계산하면 아래와 같은 결과가 된다.2. Calculating matrix A gives the following result.

3. A의 역행렬은 다음과 같다.3. The inverse of A is

4. 행렬 T의 계산 결과는 다음과 같이 된다.4. The result of calculating the matrix T is as follows.

5. 1이 되는항은이다.5. Being 1 Term to be.

그러므로 승법의 결과는 하기 수학식 9와 같이 정의된다. 단,이다.Therefore The result of is defined as in Equation 9 below. only, to be.

이와 같이 연산을 정의하면 체의 성질을 만족하며, 더욱이 정의된 승법연산에 대한 항등원은 (1111)이 되며 하기 수학식 10이 성립한다.The definition of the operation satisfies the properties of the sieve. Furthermore, the identity for the defined multiplication operation is (1111) and Equation 10 is established.

즉, 어떤 원소의 제곱은 회전이 된다. 또한의 생성원는 (1100)이다.That is, the square of an element is rotated. Also Source of Is (1100).

이러한 표현법을 최적 정규 기저 표현식(optimal normal basis representation)이라 부르며, 유한체에서의 연산기를 효율적으로 구현하기 위한 수학적인 기반이 된다.This representation is called the optimal normal basis representation and is a finite field. It is a mathematical basis for efficiently implementing arithmetic operators in.

이상에서 살펴보았듯이, ONB 표현식을 사용하면 유한체의 임의의 두 원소간의 가법연산은 간단히 비트별 XOR가 되며, 제곱연산은 로테이션이 된다. 또한의 원소라 하고를 승법연산의 결과라 하면, m-tuple c는 하기 수학식 11과 같이 나타내어진다.As we have seen above, using ONB expressions The additive operation between any two elements of is simply a bitwise XOR, and the squared operation is rotated. Also Wow To Is an element of When m is a result of the multiplication operation, m-tuple c is expressed as in Equation 11 below.

단, 여기서 각 첨자는 모듈러 m을 취한다.Where each subscript takes the modular m.

상기 수학식 11을 바탕으로 승법 연산기를 하드웨어로 설계하는 방법은 크게 두 가지가 있는데, 첫 번째는 시리얼(serial)하게 설계하는 것이고, 두 번째는 패러랠(parallel)하게 설계하는 것이다. 전자의 방법은 "Sarwono Sutikno, Ronny Effendi, Andy Surya, 'Design and Implementation of Arithmetic Processorfor Elliptic Curve Cryptosystems', IEEE APCCAS, 1998, Pages: 647-650"에서 구현되었으며 회로 사이즈가 작은 대신 한 번의 승법연산을 수행하는데 여러 클럭(약 m 클럭)이 소요되는 단점이 있다. 본 발명에서는 연산기를 속도면에서 최적화하고 제어회로를 단순화하여 trade-off를 고려한 전체적인 관점에서의 퍼포먼스 향상을 위해 승법 연산기를 병렬적인 조합회로로 설계하였다.Based on Equation 11, there are two methods of designing a multiplier operator in hardware. The first is to design serially and the second is to design parallel. The former method is "Sarwono Sutikno, Ronny Effendi, Andy Surya, 'Design and Implementation of Arithmetic Processor' for Elliptic Curve Cryptosystems', IEEE APCCAS, 1998, Pages: 647-650. The multiplication operator is designed in parallel combination circuit to improve the performance in terms of speed and simplify the control circuit to improve the overall performance in consideration of trade-off.

이하 승법연산에 대한 역원을 위한 하드웨어 구성을 설명하면,Hereinafter, the hardware configuration for the inverse of the multiplication operation,

우선 임의의 체 K에서 정의된 승법연산에 대한 역원은 일반적으로 하기 수학식 12와 같이 나타낼 수 있다.First, the inverse for the multiplication operation defined in any sieve K can be represented by Equation 12 below.

따라서 a가의 원소일 때에도 상기 수학식 12를 적용할 수 있다. 단, 이 경우 승법연산은 전술한 정의에 따르며, 승법연산에 대한 항등원 "1"은 m-tuple (11..1)이 된다. 상기 수학식 12에 페르마 정리를 적용하면,So a Equation 12 may also be applied to the element. In this case, however, the multiplication operation follows the above definition, and the identity "1" for the multiplication operation is m-tuple (11..1). When Fermat's theorem is applied to Equation 12,

이 된다. 이때 지수만 살펴보면 아래 수학식 13이 된다.Becomes At this time, only the exponent is expressed by Equation 13 below.

상기 수학식 13의 우변을 인수분해할 수 있다면 역원연산은 제곱과 승산으로 계산될 수 있다. 인수분해 과정은 하기 수학식 14와 같다.If the right side of Equation 13 can be factored, the inverse operation may be calculated by square and multiplication. Factorization process is as shown in Equation 14.

이러한 인수분해 과정은 "Michael Rosing, "Implementing Elliptic Curve Cryptography", Manning pub., 1999"에 따른 것이며, 각각의 항에 대해서 이러한 인수분해는 반복적으로 적용 가능하다. 특별히, 하드웨어 구현에서는 2의 멱승 연산이 로테이션으로 간단하게 처리될 수 있으므로, 2의 멱승 형태의 연산을 최대화시키는 위의 인수분해는 매우 바람직하다. 그러나 이러한 지수의 인수분해가 이루어졌다 하더라도, 이 수식을 하드웨어로 옮기는 것은 또 다른 문제이다. 즉, 하드웨어 구현의 특징이자 장점인 병렬성을 이용해 단순히 모든 항을 병렬로 계산한다면 역원 연산의 특성상 하드웨어의 면적 및 지연이 지나치게 커져, 전체를 모두 병렬로 구현하는 것은 실제적인 구현에 적합하지 않다.This factoring process is in accordance with "Michael Rosing," Implementing Elliptic Curve Cryptography ", Manning pub., 1999, and this factoring is applicable repeatedly for each term. In particular, in a hardware implementation, the power of 2 power can be handled simply by rotation, so the above factorization to maximize the power of power of 2 is highly desirable. But even if these factors are factored, moving this formula to hardware is another matter. In other words, if all the terms are simply calculated in parallel using the parallelism, which is a characteristic and advantage of the hardware implementation, the area and delay of the hardware are excessively large due to the characteristics of inverse arithmetic, and it is not suitable to implement all of them in parallel.

사실 역원 연산기의 설계에 대해서 이러한 논의를 하기 위해서는 승법 연산기의 개수와 실행시간 사이의 trade-off에 대해서 고찰할 필요가 있다. 분명히 승법 연산기를 많이 사용할수록 역원을 구하기 위한 연산시간은 줄어든다. 다시 말해서 한 클럭에 수행할 연산의 단위항을 크게 분할할수록 필요한 승법 연산기의 수는 증가하고, 역원 연산에 소요되는 시간은 감소한다. 역원 연산기를 설계함에 있어서 승법 연산기의 게이트 카운트가 전체 회로사이즈의 대부분을 차지하므로, 역원 연산기의 게이트 카운트를 추정하기 위해서 승법 연산기의 게이트 카운트만 고려해도 무방하다.In fact, in order to discuss the design of the inverse operator, it is necessary to consider the trade-off between the number of multiplier operators and the execution time. Obviously, the more multiplication operators you use, the less computation time you need to find the inverse. In other words, as the unit term of the operation to be performed in one clock is divided into larger portions, the number of multiplication operators required increases, and the time required for inverse operation decreases. In designing the inverted operator, the gate count of the multiplier operator occupies most of the total circuit size. Therefore, only the gate count of the multiplier operator may be considered to estimate the gate count of the inverted operator.

한편 역원을 구하기 위해서 필요한 승법연산의 횟수는 기저체의 선택에 따라서 비선형적으로 변화한다. 기저체를이라 할때, 필요한 승법의 횟수는 다음과 같은 수학식 15로 표현될 수 있다.On the other hand, the number of multiplication operations required to find the inverse varies nonlinearly depending on the choice of the base body. Basal body In this case, the number of times required multiplication can be expressed by the following equation (15).

그리고 연산을 수행하는데 걸리는 시간은 다음과 같다.And the time taken to perform the operation is as follows.

역원 연산기를 실제 회로로 설계하기 위해서는 위의 분석 결과를 토대로 승법 연산기의 지연과 제어 회로의 복잡도, 사용 가능한 디바이스 등을 고려해 응용 목적에 적합하도록 단위항을 분할하여 적용할 수 있을 것이다.In order to design the inverted operator into the actual circuit, the unit term may be divided and applied to the application purpose in consideration of the delay of the multiplication operator, the complexity of the control circuit, and the available devices.

본 발명에서는 FPGA 디바이스를 사용해 속도면에서 최적화한 역원 연산기를 설계하기 위해, 전술한 바와 같이 단위항을 다음과 형태로 분할하였다.In the present invention, in order to design an inverse operator optimized for speed using an FPGA device, the unit terms are divided into the following forms as described above.

유도한 단위항을 계산할 수 있는 연산기를 설계하고 이 연산기를 반복적으로 사용하면 역원연산을 수행할 수 있다. 기저체상에서 역원 연산기의 하드웨어 구현을 위해 유도한 식은 다음과 같다.By designing an operator that can calculate the derived unit term and using it repeatedly, inverse computation can be performed. Basal body The equation derived for the hardware implementation of the inverse operator is given by

위와 같이 단위항을 유도하면 역원연산의 결과는가 된다. 각각의 단위항는 병렬로 수행할 연산을 의미하며, 회로로 구현시 2개의 승산회로, 3개의 로테이션(rotation)회로, 3개의 MUX, 1개의 레지스터로 구성된다. 각각의 비트 사이즈는 m에 의해 결정되며, 역원을 계산하는데 걸리는 시간은항이 n개 이므로 총 n×(하나의 승산을 위해 필요한 클럭 사이클)이 소요된다. 예를 들어 기저체가인 경우 역원은 7×(하나의 승산을 위해 필요한 클럭 사이클) 시간동안 계산될 수 있다. 상기 유도한 식을 바탕으로 설계한 본 발명의 역원 연산기 구성을 살펴보면,If we derive the unit term as above, the result of inverse operation Becomes Each unit term Means an operation to be performed in parallel, and when implemented as a circuit, it consists of two multiplication circuits, three rotation circuits, three MUXs, and one register. Each bit size is determined by m, and the time it takes to calculate the inverse Since there are n terms, it takes a total of n × (clock cycles needed for one multiplication). For example, if the basal body The inverse can be calculated for 7x (clock cycles needed for one multiplication). Looking at the configuration of the inversion operator of the present invention designed based on the derived equation,

도 1은 본 발명의 실시예에 따른 역원 연산기의 구성을 도시한 것으로, 3개의 멀티플렉서(100, 120, 160), 3개의 로테이션부(110, 140, 180), 2개의 승산 회로(130,150), 레지스터(170) 및 제어부(190)로 구성되어 있다.1 illustrates a configuration of an inverted operator according to an exemplary embodiment of the present invention, including three multiplexers 100, 120, and 160, three rotation units 110, 140, and 180, two multiplication circuits 130 and 150, It consists of a register 170 and a controller 190.

도 1을 참조하면, 제1멀티플렉서(100)는 m비트 입력데이터(A)와 m비트의 귀환 데이터중 하나를 제어부(190)로부터 출력되는 선택신호 입력에 따라 선택 출력한다. 제1로테이션부(110)는 상기 제1멀티플렉서(100)의 출력데이터를 제어부(190)로부터 출력되는 로테이션 횟수 제어신호에 따라 로테이션시켜 출력한다. IEEE에서 정한 타원곡선 암호 표준을 보면, 기저체로을 사용하는 경우 2의 멱승 연산은 비트 로테이션으로 정의되어 있다. 따라서 상기 로테이션부(110)는 왼쪽이 MSB일 경우 입력된 m비트 값을 레프트 로테이션하는 역할을 수행한다. 상기 로테이션 횟수 제어신호에 따라 m비트 데이터를 0회 로테이션부터 m-1회 로테이션시키는 것이 가능하다.Referring to FIG. 1, the first multiplexer 100 selectively outputs one of m-bit input data A and m-bit feedback data according to a selection signal input from the controller 190. The first rotation unit 110 rotates the output data of the first multiplexer 100 according to the rotation number control signal output from the controller 190 and outputs the rotated data. If you look at the elliptic curve cryptography standards set by the IEEE, If you use, the power of 2 is defined as bit rotation. Therefore, the rotation unit 110 performs a left rotation of the input m-bit value when the left side is the MSB. According to the rotation number control signal, it is possible to rotate m-bit data from zero rotation to m-1 times.

한편 제2멀티플렉서(120)는 상기 m비트 입력데이터(A)와 귀환 데이터중 하나를 선택 출력한다. 한편 제1승산회로(130)는 상기 제2멀티플렉서(120)와 제1로테이션부(110)의 출력신호를 입력받아 IEEE 1363에 정의된 타원곡선 암호를 위한 기저체 승법연산에 따라 연산 수행하여 m비트 결과를 출력한다. 제2로테이션부(140)는 상기 제1승산 회로(130)의 출력을 1회 로테이션 출력하고, 상기 제2로테이션부(140)의 출력은 상기 m비트 입력데이터(A)와 함께 제2승산회로(150)에 입력되어 타원곡선 암호를 위한 기저체 승법연산에 따라 연산 수행된다. 따라서 상기 제1승산회로(130)와 제2승산회로(150)의 출력중 하나가 제어부(190)의 선택에 의해 제3멀티플렉서(170)로부터 출력되며, 이러한 제3멀티플렉서(170)의 출력은 레지스터(170)에 저장된후 다시 제3로테이션부(180)에 입력되어 1회 로테이션된후 입력데이터 A의 역원데이터로 출력된다. 상술한 구성의 역원 연산기에서 제어부(190)는 입력 클럭(clk)에 따라 상기 멀티플렉서들(100,120,160)과 제1로테이션부(110)를 제어하기 위한 신호들을 발생함으로써, 단위항들을 차례대로 연산기에 입력하고 연산형태의 변화를 제어해 주는 역할을 수행한다.Meanwhile, the second multiplexer 120 selectively outputs one of the m-bit input data A and feedback data. Meanwhile, the first multiplication circuit 130 receives the output signals of the second multiplexer 120 and the first rotation unit 110 and performs operations according to the base multiplication operation for the elliptic curve encryption defined in IEEE 1363. Output the bit result. The second rotation unit 140 rotates the output of the first multiplication circuit 130 once, and the output of the second rotation unit 140 together with the m-bit input data A is a second multiplication circuit. Inputted to 150 is performed according to the base multiplication operation for the elliptic curve cryptography. Accordingly, one of the outputs of the first multiplication circuit 130 and the second multiplication circuit 150 is output from the third multiplexer 170 by selection of the controller 190, and the output of the third multiplexer 170 is output. After being stored in the register 170 and inputted to the third rotation unit 180 again, it is rotated once and output as inverse data of the input data A. In the inverse calculator of the above-described configuration, the controller 190 generates signals for controlling the multiplexers 100, 120, 160 and the first rotation unit 110 according to an input clock clk, thereby sequentially inputting unit terms to the calculator. It controls the change of operation form.

상술한 구성을 가지는 역원 연산기의 속도를 이미 공지된 레퍼런스인 "Design and Implementation of Arithmetic Processorfor Elliptic Curve Cryptosystems"와 동일한 조건에서 비교해 보면, 상기 레퍼런스는 역원을 구하기 위해 23개의 승산과정과 23(승법연산 1회 수행시 소요되는 클럭 수) 의 시간이 요구된다. 이에 반하여, 본 발명은 역원을 구하기 위해 10개의 승산 과정이 요구되고 필요한 시간은 7(승법연산 1회 수행시 소요되는 클럭 수) 에 불과하다.The speed of the inverse operator having the above-described configuration is known as "Design and Implementation of Arithmetic Processor". for Elliptic Curve Cryptosystems ", the reference compares 23 multiplications and 23 to find the inverse. The time required (the number of clocks required to perform one multiplicative operation) is required. On the contrary, the present invention requires 10 multiplication processes and the time required to obtain the inverse. It is only (the number of clocks required to perform one multiplicative operation).

따라서 단위항을 본 발명에서와 같이 유도하여 역원 연산기를 구현하면 승법 연산기의 속도에 관계 없이 역원 연산의 수행시간은× (승법연산 1회 수행시 소요되는 클럭 수) 가 되므로, 결과적으로 승법연산속도와 역원 연산속도가 빨라지게 되는 것이다.Therefore, if the unit term is derived as in the present invention and the inverse operator is implemented, the execution time of the inverse operation is independent of the speed of the multiplication operator. X (the number of clocks required to perform one multiplicative operation), the result is that the multiplicative operation speed and the inverse calculation speed become faster.

상술한 바와 같이 본 발명은 승법 연산기의 속도에 관계 없이 역원 연산의 수행시간을× (1회 승법연산시의 클럭 사이클)로 단축시킬 수 있기 때문에 고속의 역원 연산기를 제공할 수 있는 이점이 있으며,As described above, the present invention provides the execution time of the inverse operation regardless of the speed of the multiplication operator. Since it can be shortened to × (clock cycle in one multiplication operation), there is an advantage that a high-speed inverse operator can be provided.

본 발명에 따른 역원 연산기를 임의의 유한체에 적용 가능하기 때문에유한체를 사용하는 다양한 응용 분야로 확장할 수 있는 장점이 있다.The inverse operator according to the present invention can be any finite field Because it can be applied to, there is an advantage that it can be extended to various applications using the fins.

Claims (2)

타원곡선 암호 시스템을 위한 역원 연산기에 있어서,In inverse operator for elliptic curve cryptosystem, m비트 입력데이터와 귀환 데이터중 하나를 선택 출력하기 위한 제1멀티플렉서와;a first multiplexer for selectively outputting one of m-bit input data and feedback data; 상기 제1멀티플렉서의 출력데이터를 로테이션 횟수 제어신호에 따라 로테이션시켜 출력하는 제1로테이션부와;A first rotation unit configured to rotate and output the output data of the first multiplexer according to a rotation number control signal; 상기 m비트 입력데이터와 귀환 데이터중 하나를 선택 출력하기 위한 제2멀티플렉서와;A second multiplexer for selectively outputting one of the m-bit input data and feedback data; 상기 제2멀티플렉서와 제1로테이션부의 출력신호를 입력받아 타원곡선 암호를 위한 기저체 승법연산에 따라 연산 수행하여 m비트 결과를 출력하는 제1승산 회로와;A first multiplier circuit for receiving the output signals of the second multiplexer and the first rotation unit and performing an operation according to a base multiplication operation for an elliptic curve cryptography to output an m-bit result; 상기 제1승산 회로의 출력을 로테이션 출력하는 제2로테이션부와;A second rotation unit configured to rotate and output the output of the first multiplication circuit; 상기 제2로테이션부의 출력과 상기 m비트 입력데이터를 타원곡선 암호를 위한 기저체 승법연산에 따라 연산 수행하여 출력하는 제2승산 회로와;A second multiplication circuit configured to perform arithmetic operation on the output of the second rotation unit and the m-bit input data according to a base body multiplication operation for an elliptic curve encryption; 상기 제1승산 회로와 제2승산 회로의 출력중 하나를 선택 출력하기 위한 제3멀티플렉서와;A third multiplexer for selectively outputting one of the outputs of the first multiplication circuit and the second multiplication circuit; 상기 제3멀티플렉서의 출력데이터를 저장하기 위한 레지스터와;A register for storing output data of the third multiplexer; 상기 레지스터의 출력을 로테이션하여 상기 입력 데이터의 역원 데이터를 출력하는 제3로테이션부와;A third rotation unit rotating the output of the register to output inverse data of the input data; 입력 클럭에 따라 상기 멀티플렉서들과 제1로테이션부를 제어하기 위한 신호를 발생하여 출력하는 제어부로 구성함을 특징으로 하는 역원 연산기.And a controller configured to generate and output a signal for controlling the multiplexers and the first rotation unit according to an input clock. 청구항 1에 있어서, 상기 제어부는 아래와 같이 유도된 입력데이터들의 단위항()별로 연산이 이루어지도록 연산기 각 부를 제어함을 특징으로 하는 역원 연산기.The method of claim 1, wherein the control unit is a unit term of the input data derived as follows ( An inverted calculator characterized in that each part of the calculator is controlled to perform a calculation for each unit. ; ;
KR1020010025594A 2001-05-10 2001-05-10 Inverse operator for elliptic curve cryptosystems KR20020086005A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020010025594A KR20020086005A (en) 2001-05-10 2001-05-10 Inverse operator for elliptic curve cryptosystems

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020010025594A KR20020086005A (en) 2001-05-10 2001-05-10 Inverse operator for elliptic curve cryptosystems

Publications (1)

Publication Number Publication Date
KR20020086005A true KR20020086005A (en) 2002-11-18

Family

ID=27704464

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020010025594A KR20020086005A (en) 2001-05-10 2001-05-10 Inverse operator for elliptic curve cryptosystems

Country Status (1)

Country Link
KR (1) KR20020086005A (en)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20030003435A (en) * 2001-06-30 2003-01-10 주식회사 시큐리티테크놀로지스 Optimal finite field inversion method and device for use in a elliptic curve cryptosystem
KR100416291B1 (en) * 2001-06-08 2004-01-31 이광엽 Apparatus and method of finite-field inversion and multiplication based on elliptic curve cryptography
KR100451570B1 (en) * 2002-10-29 2004-10-08 (주)미래스멕스 Method and apparatus for implementing elliptic curve cryptosystem resisting against simple power attacks
KR100606435B1 (en) * 2005-02-04 2006-08-01 고려대학교 산학협력단 Apparatus for calculating inverse in gf(2m)and method of the same
US7680272B2 (en) 2003-12-24 2010-03-16 Samsung Electronics Co., Ltd. Inverse calculation circuit, inverse calculation method, and storage medium encoded with computer-readable computer program code

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH1152854A (en) * 1997-07-31 1999-02-26 Nippon Telegr & Teleph Corp <Ntt> Arithmetic unit device on finite field and group computing device on elliptic curve
US5982895A (en) * 1997-12-24 1999-11-09 Motorola, Inc. Finite field inverse circuit for use in an elliptic curve processor
US6038581A (en) * 1997-01-29 2000-03-14 Nippon Telegraph And Telephone Corporation Scheme for arithmetic operations in finite field and group operations over elliptic curves realizing improved computational speed
KR20000026250A (en) * 1998-10-19 2000-05-15 Samsung Electronics Co Ltd Method and apparatus for operating finite field
US6141420A (en) * 1994-07-29 2000-10-31 Certicom Corp. Elliptic curve encryption systems
JP2000353077A (en) * 1999-04-07 2000-12-19 Matsushita Electric Ind Co Ltd Mutifold length arithmetic unit

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6141420A (en) * 1994-07-29 2000-10-31 Certicom Corp. Elliptic curve encryption systems
US6038581A (en) * 1997-01-29 2000-03-14 Nippon Telegraph And Telephone Corporation Scheme for arithmetic operations in finite field and group operations over elliptic curves realizing improved computational speed
JPH1152854A (en) * 1997-07-31 1999-02-26 Nippon Telegr & Teleph Corp <Ntt> Arithmetic unit device on finite field and group computing device on elliptic curve
US5982895A (en) * 1997-12-24 1999-11-09 Motorola, Inc. Finite field inverse circuit for use in an elliptic curve processor
KR20000026250A (en) * 1998-10-19 2000-05-15 Samsung Electronics Co Ltd Method and apparatus for operating finite field
JP2000353077A (en) * 1999-04-07 2000-12-19 Matsushita Electric Ind Co Ltd Mutifold length arithmetic unit

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100416291B1 (en) * 2001-06-08 2004-01-31 이광엽 Apparatus and method of finite-field inversion and multiplication based on elliptic curve cryptography
KR20030003435A (en) * 2001-06-30 2003-01-10 주식회사 시큐리티테크놀로지스 Optimal finite field inversion method and device for use in a elliptic curve cryptosystem
KR100451570B1 (en) * 2002-10-29 2004-10-08 (주)미래스멕스 Method and apparatus for implementing elliptic curve cryptosystem resisting against simple power attacks
US7680272B2 (en) 2003-12-24 2010-03-16 Samsung Electronics Co., Ltd. Inverse calculation circuit, inverse calculation method, and storage medium encoded with computer-readable computer program code
KR100606435B1 (en) * 2005-02-04 2006-08-01 고려대학교 산학협력단 Apparatus for calculating inverse in gf(2m)and method of the same

Similar Documents

Publication Publication Date Title
US7961874B2 (en) XZ-elliptic curve cryptography with secret key embedding
US6876745B1 (en) Method and apparatus for elliptic curve cryptography and recording medium therefore
US7904498B2 (en) Modular multiplication processing apparatus
KR20150107784A (en) Cryptography method comprising an operation of multiplication by a scalar or an exponentiation
KR100442218B1 (en) Power-residue calculating unit using montgomery algorithm
CA2369537A1 (en) Method and apparatus for performing finite field calculations
Kerins et al. Fully parameterizable elliptic curve cryptography processor over GF (2 m)
Harb et al. FPGA implementation of the ECC over GF (2m) for small embedded applications
Aoki et al. Elliptic curve arithmetic using SIMD
Moon et al. Fast VLSI arithmetic algorithms for high-security elliptic curve cryptographic applications
KR100457177B1 (en) Serial-Parallel Multiplier to Multiply Two Elements in the Finite Field
KR20020086005A (en) Inverse operator for elliptic curve cryptosystems
US20060282491A1 (en) Method for countermeasuring by masking the accumulators in an electronic component while using a public key cryptographic algorithm
JP2005055488A (en) Scalar multiple calculating method in elliptic curve cryptosystem, device and program for the same
Al-Haija et al. Cost-effective design for binary Edwards elliptic curves crypto-processor over GF (2N) using parallel multipliers and architectures
Clancy Analysis of FPGA-based hyperelliptic curve cryptosystems
Realpe-Muñoz et al. High-performance elliptic curve cryptoprocessors over GF (2^ m) GF (2 m) on Koblitz curves
JP4502817B2 (en) Elliptic curve scalar multiplication method and apparatus
US20070121935A1 (en) Method for countermeasuring in an electronic component
JP2000181347A (en) Method for computing point on elliptic curve on element assembly and apparatus therefor
Shylashree et al. Efficient Implementation of Scalar Multiplication for Elliptic Curve Cryptography using Ancient Indian Vedic Mathematics over GF (p)
US7403965B2 (en) Encryption/decryption system for calculating effective lower bits of a parameter for Montgomery modular multiplication
Mahboob et al. Lookup table based multiplication technique for GF (2m) with cryptographic significance
JP2004177582A (en) Elliptic curve ciphering system, and elliptic curve ciphering operation method
KR20030003435A (en) Optimal finite field inversion method and device for use in a elliptic curve cryptosystem

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E601 Decision to refuse application