KR101006358B1 - Elliptic curve cryptography system based on real domain and method thereof - Google Patents

Elliptic curve cryptography system based on real domain and method thereof Download PDF

Info

Publication number
KR101006358B1
KR101006358B1 KR1020080112836A KR20080112836A KR101006358B1 KR 101006358 B1 KR101006358 B1 KR 101006358B1 KR 1020080112836 A KR1020080112836 A KR 1020080112836A KR 20080112836 A KR20080112836 A KR 20080112836A KR 101006358 B1 KR101006358 B1 KR 101006358B1
Authority
KR
South Korea
Prior art keywords
elliptic curve
public key
real
coordinates
equation
Prior art date
Application number
KR1020080112836A
Other languages
Korean (ko)
Other versions
KR20100053943A (en
Inventor
김준모
조성제
구은희
최천원
Original Assignee
단국대학교 산학협력단
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 단국대학교 산학협력단 filed Critical 단국대학교 산학협력단
Priority to KR1020080112836A priority Critical patent/KR101006358B1/en
Publication of KR20100053943A publication Critical patent/KR20100053943A/en
Application granted granted Critical
Publication of KR101006358B1 publication Critical patent/KR101006358B1/en

Links

Images

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
    • 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/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • H04L9/0819Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s)
    • H04L9/0825Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s) using asymmetric-key encryption or public key infrastructure [PKI], e.g. key signature or public key certificates
    • 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/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0861Generation of secret information including derivation or calculation of cryptographic keys or passwords

Abstract

실수체 기반의 타원 곡선 암호 방식에서의 공개키 생성 방법, 상기 방법을 이용한 메시지 암호/ 복호화 방법, 및 그 시스템이 개시된다. 상기 타원 곡선 암호 방식의 공개키 생성 방법은, 유한체로 정의되는 타원 곡선 상에서 적어도 어느 하나의 점을 선택하는 단계; 및 상기 타원 곡선을 정의하는 타원곡선 방정식 및 특성 방정식을 이용하여 실수체 군의 공개키를 생성하는 단계를 포함할 수 있다.Disclosed are a public key generation method, a message encryption / decryption method using the method, and a system thereof. The elliptic curve cryptography method for generating a public key may include selecting at least one point on an elliptic curve defined as a finite body; And generating a public key of a real body group using an elliptic curve equation and a characteristic equation defining the elliptic curve.

타원 곡선, 암호, 복호 Elliptic curve, password, decryption

Description

실수체 기반의 타원 곡선 암호 시스템 및 그 방법{ELLIPTIC CURVE CRYPTOGRAPHY SYSTEM BASED ON REAL DOMAIN AND METHOD THEREOF}Real Elliptic Curve Cryptosystem and Its Method {ELLIPTIC CURVE CRYPTOGRAPHY SYSTEM BASED ON REAL DOMAIN AND METHOD THEREOF}

본 발명은 타원 곡선 암호 기술에 관한 것으로, 보다 상세하게는 유한체로 정의되는 타원 곡선에 기초하여 실수체 기반의 공개키를 생성하는 방법, 상기 방법을 이용한 메시지 암호/ 복호화 방법, 및 그 시스템에 관한 것이다.The present invention relates to an elliptic curve cryptography technique, and more particularly, to a method for generating a real object-based public key based on an elliptic curve defined by a finite body, a message encryption / decryption method using the method, and a system thereof. will be.

타원곡선을 이용한 암호(ECC: Elliptic Curve Cryptography) 알고리즘은 1985년 N.Koblitz와 V.Miller가 독립적으로 제안한 공개키 알고리즘으로, 유한체 위에서 정의된 타원곡선 군에서의 이산대수 문제의 어려움을 극복하기 위한 암호 알고리즘이다.Elliptic Curve Cryptography (ECC) algorithm is a public key algorithm independently proposed by N. Koblitz and V.Miller in 1985. Is a cryptographic algorithm.

최근 타원곡선방법(ECM, Elliptic Curve Method)은 RSA 암호시스템의 근간이 되는 인수분해 문제와 소수 판정법 및 공개키 암호 등, 다양한 알고리즘을 설계하는데 활용되고 있다. Recently, Elliptic Curve Method (ECM) has been used to design various algorithms such as factorization problem, decimal decision method and public key cryptography which are the basis of RSA cryptosystem.

한편, 대표적인 공개키 암호 시스템인 RSA(Rivest Shamir Adleman)는 많이 알려지고 사용되는 공개키 암호 시스템이지만, 충분한 안전성을 위해서는 큰 비트의 키를 사용하여 암/복호를 해야 하고 많은 연산 시간이 걸리는 단점이 있다.On the other hand, RSA (Rivest Shamir Adleman), which is a representative public key cryptosystem, is a public key cryptosystem that is widely known and used.However, for sufficient security, it is necessary to encrypt / decrypt using a large bit of key and takes a lot of computation time. have.

이에 반해 타원곡선을 이용한 암호화 방법은 그 이외의 암호화 방법에 비해 볼 때 필요한 비트수가 상대적으로 적다. 즉, 타원곡선을 이용한 암호화 방법에 의하면, 연산에 필요한 자원 및 시간이 적어지므로, 실제로 상기 타원곡선을 이용한 암호화 방법이 소프트웨어로서 시스템에 적용되는 경우 높은 성능을 얻을 수 있다.On the other hand, the encryption method using an elliptic curve has a relatively small number of bits in comparison with other encryption methods. That is, according to the encryption method using the elliptic curve, since the resources and time required for the operation are reduced, high performance can be obtained when the encryption method using the elliptic curve is actually applied to the system as software.

도 1은 일반적인 타원곡선 상에 포함되는 유한체의 특성을 설명하기 위한 그래프이다. 도 1을 참조하면, y2 = x3 - x로 정의될 수 있는 타원곡선을 구성하는 군(또는, 점들)은 덧셈상의 군이기 때문에 두 점(예컨대, P, Q)에 대한 덧셈이 수행된는 경우, 타원곡선 암호화 시스템은 점 P와 점 Q를 잇는 선을 긋는다.1 is a graph for explaining the characteristics of a finite body included on a general elliptic curve. Referring to FIG. 1, since the group (or points) constituting an elliptic curve, which may be defined as y 2 = x 3 − x, is an addition group, addition to two points (eg, P and Q) is performed. In this case, the elliptic curve encryption system draws a line connecting point P and point Q.

이어서, 타원곡선 암호화 시스템은 점 P와 점 Q를 잇는 선이 다른 타원과 만나는 점(R)의 수직선이 타원곡선과 만나는 다른 점(S)을 덧셈결과로서 산출할 수 있다.Subsequently, the elliptic curve encryption system can calculate another point S where the vertical line of the point R where the line connecting the point P and the point Q meets another ellipse meets the elliptic curve.

이때, 타원곡선 암호화 시스템은 두 점(예컨대, P, Q)이 같은 경우, 상기 타원곡선 위의 점에 대한 접선을 긋고, 상기 선이 다른 타원과 만나는 점의 수직선이 타원곡선과 만나는 점을 덧셈결과로서 산출한다.In this case, if two points (for example, P and Q) are the same, the elliptic curve encryption system draws a tangent to the point on the elliptic curve, and adds a point where the vertical line of the point where the line meets another ellipse meets the elliptic curve. Calculate as a result.

그러나, 유한체 위에서의 타원곡선 군은 유한한 점들의 집합으로 구성되기 때문에 상기 유한체의 타원곡선 군을 그대로 사용하는 경우 타원곡선 암호시스템의 안전도는 떨어질 수 있는바 이에 대한 방안이 필요한 실정이다.However, since the elliptic curve group on the finite body is composed of a set of finite points, if the elliptic curve group of the finite body is used as it is, the safety of the elliptic curve cryptographic system may be reduced.

따라서, 본 발명이 해결하고자 하는 기술적 과제는 실수체(real number domain) 기반의 타원 곡선을 이용하여 안전도가 높은 공개키를 생성하는 방법, 상기 방법을 이용한 메시지 암호/ 복호화 방법, 및 그 시스템을 제공하는 것이다.Accordingly, a technical problem to be solved by the present invention is to provide a method for generating a high security public key using an elliptic curve based on a real number domain, a message encryption / decryption method using the method, and a system thereof. It is.

상기 기술적 과제를 달성하기 위한 공개키 생성 방법은, 유한체로 정의되는 타원 곡선상에서 적어도 어느 하나의 점을 선택하는 단계; 및 상기 타원 곡선을 정의하는 타원곡선 방정식 및 특성 방정식을 이용하여 실수체 군의 공개키를 생성하는 단계를 포함할 수 있다.The public key generation method for achieving the technical problem comprises the steps of selecting at least one point on the elliptic curve defined by a finite body; And generating a public key of a real body group using an elliptic curve equation and a characteristic equation defining the elliptic curve.

상기 타원 곡선 방정식은, y2 = a*x3 + b*x + c(여기서, a, b, 및 c는 실수)와 상응할 수 있으며, 상기 a는 1, 상기 b는 -1, 및 상기 c는 1일 수 있다.The elliptic curve equation may correspond to y 2 = a * x 3 + b * x + c, where a, b, and c are real, wherein a is 1, b is -1, and c may be 1.

상기 타원곡선 방정식은, y2 = x3 - p*x - q(여기서, p 및 q는 실수)와 상응하고, 상기 특성 방정식은, 수학식(s = (3xp 2 - p) / (2yp) (여기서, xp는 상기 선택된 점의 x 좌표, 및 yp는 상기 선택된 점의 y 좌표))과 상응하며, 상기 실수체 군을 생성하는 단계는, 상기 특성 방정식의 해를 이용하여 적어도 하나의 실수체군 좌표를 생성하는 단계를 포함하고, 상기 적어도 하나의 실수체군의 x 좌표는 s2- 2 * xp(여기서, s는 상기 특성 방정식의 해)와 상응하고, 상기 적어도 하나의 실수체군의 y좌표는 yp + s*(xR - xp)와 상응할 수 있다.The elliptic curve equation corresponds to y 2 = x 3 -p * x-q, where p and q are real, and the characteristic equation is: (s = (3x p 2 -p) / (2y p ) (where x p is the x coordinate of the selected point and y p is the y coordinate of the selected point), and generating the real object group comprises at least using a solution of the characteristic equation. generating a single real chegun coordinates, x-coordinate of the at least one real chegun is s 2 - 2 * x p corresponds to the (here, s is a solution of the characteristic equation), and the at least one real number The y-coordinate of the body group may correspond to y p + s * (x R -x p ).

상기 실수체 군을 생성하는 단계는, 상기 s를 이용하여 생성된 적어도 하나의 실수체군의 좌표를 상기 타원 곡선상의 유한체의 좌표로 매칭시키고 매칭된 좌표를 상기 실수체 군의 좌표로서 대체시키는 단계를 더 포함할 수 있다.Generating the real object group, matching the coordinates of the at least one real body group generated using the s with the coordinates of the finite body on the elliptic curve and replacing the matched coordinates with the coordinates of the real body group It may further include.

상기 타원 곡선 암호 방식의 공개키 생성 방법은, 상기 매칭된 좌표와 상응하는 적어도 하나의 실수체군을 변경하고 변경된 실수체군을 상기 공개키로서 설정하는 단계를 더 포함할 수 있다.The elliptic curve cryptographic public key generation method may further include changing at least one real object group corresponding to the matched coordinates and setting the changed real object group as the public key.

상기 기술적 과제를 달성하기 위한 암호화 방법은 상기 타원 곡선 암호 방식의 공개키 생성 방법에 의해서 생성된 공개키를 이용하여 메시지를 암호화할 수 있다.The encryption method for achieving the technical problem can encrypt the message using the public key generated by the public key generation method of the elliptic curve encryption method.

상기 기술적 과제를 달성하기 위한 복호화 방법 상기 타원 곡선 암호 방식의 공개키 생성 방법에 의해서 생성된 공개키를 이용하여 암호문을 복호화할 수 있다.Decryption method for achieving the technical problem It is possible to decrypt the cipher text using the public key generated by the public key generation method of the elliptic curve encryption method.

상기 기술적 과제를 달성하기 위한 메시지 암호화 방법은, 유한체로 정의되는 타원 곡선상에서 미리 결정된 유한체 군을 선택하는 단계; 및 상기 미리 결정된 유한체 군을 이용하여 공개키를 생성하고, 생성된 공개키 상에 존재하는 송신자 개인키와 수신자 공개키를 이용하여 메시지에 대한 암호문을 생성하는 단계를 포함할 수 있다.Message encryption method for achieving the above technical problem, the step of selecting a predetermined finite group on the elliptic curve is defined as a finite body; And generating a public key using the predetermined finite group, and generating a cipher text for a message using a sender private key and a receiver public key existing on the generated public key.

상기 메시지 암호화 방법은, 미리 결정된 유한체 군에 대한 정보를 암호화하 는 단계를 더 포함하며, 암호화된 유한체 군에 대한 정보 및 암호문을 수신자에게 전송하는 단계를 더 포함할 수 있다.The message encryption method may further include encrypting information about a predetermined finite group, and may further include transmitting information on the encrypted finite field and a ciphertext to a receiver.

상기 기술적 과제를 달성하기 위한 공개키 생성기는, 유한체로 정의되는 타원 곡선상에서 적어도 어느 하나의 점을 선택하는 선택부; 및 상기 타원 곡선을 정의하는 타원곡선 방정식 및 특성 방정식을 이용하여 공개키를 생성하는 단계를 포함하는 공개키 생성부를 포함할 수 있다.The public key generator for achieving the technical problem, the selection unit for selecting at least one point on the elliptic curve defined by a finite body; And a public key generator including generating a public key using an elliptic curve equation and a characteristic equation defining the elliptic curve.

상기 타원곡선 방정식은, y2 = x3 - p*x - q(여기서, a, b, 및 c는 실수)와 상응하고, 상기 특성 방정식은, 수학식(s = (3xp 2 - p) / (2yp) (여기서, xp는 상기 선택된 점의 x 좌표, 및 yp는 상기 선택된 점의 y 좌표))과 상응하며, 상기 공개키 생성부는, 상기 특성 방정식의 해를 이용하여 적어도 하나의 실수체군의 좌표를 생성하는 단계를 포함하고, 상기 적어도 하나의 실수체군의 x 좌표(xR)는 s2- 2 * xp(여기서, s는 상기 특성 방정식의 해)와 상응하고, 상기 적어도 하나의 실수체군의 y좌표(yR)는 yp + s*(xR - xp)와 상응할 수 있다.The elliptic curve equation corresponds to y 2 = x 3 -p * x-q (where a, b, and c are real numbers), and the characteristic equation is: (s = (3x p 2 -p) / (2y p ), where x p is the x coordinate of the selected point and y p is the y coordinate of the selected point), and the public key generator is at least one using a solution of the characteristic equation. for generating a coordinate of the real chegun is, x coordinate (x R) of the at least one real chegun is s 2 - 2 * x p corresponds to the (here, s is a solution of the characteristic equation), and the The y coordinate (y R ) of the at least one real body group may correspond to y p + s * (x R − x p ).

상기 공개키 생성부는, 상기 s를 이용하여 생성된 적어도 하나의 실수체군의 좌표를 상기 타원 곡선상의 유한체의 좌표로 매칭시키고 매칭된 좌표를 상기 실수체 군의 좌표로서 대체시킬 수 있다.The public key generator may match the coordinates of at least one real body group generated using the s with the coordinates of the finite body on the elliptic curve, and replace the matched coordinates with the coordinates of the real body group.

상기 기술적 과제를 달성하기 위한 메시지 암호화 시스템은 상기 공개키 생 성기을 포함할 수 있다.Message encryption system for achieving the technical problem may include the public key generator.

본 발명에 따른 타원 곡선 암호 방식에서의 공개키 생성 방법, 상기 방법을 이용한 메시지 암호/ 복호화 방법, 및 그 시스템은 실수체 기반의 타원곡선 암호시스템을 구축함으로써, 기존의 유한체 기반의 타원곡선 암호시스템 보다 신뢰성 있는 암호화 성능을 제공할 수 있는 효과가 있다.The public key generation method in the elliptic curve cryptography method, the message encryption / decryption method using the method, and the system construct an elliptic curve cryptographic system based on a real object, thereby establishing an existing finite body based elliptic curve cryptography. There is an effect that can provide more reliable encryption performance than the system.

본 발명에 따른 타원 곡선 암호 방식에서의 공개키 생성 방법, 상기 방법을 이용한 메시지 암호/ 복호화 방법, 및 그 시스템은 유한체 기반의 타원곡선상의 점들을 변경하고 변경된 점들을 이용하여 공개키를 생성하고 암호화를 수행함으로써 새로운 암호화 알고리즘을 만들어 내는 효과를 제공할 수 있다.The public key generation method in the elliptic curve cryptography method, the message encryption / decryption method using the method, and the system change the points on the elliptic curve based on the finite field and generate the public key using the changed points. Performing encryption can provide the effect of creating a new encryption algorithm.

본 발명과 본 발명의 동작상의 이점 및 본 발명의 실시에 의하여 달성되는 목적을 충분히 이해하기 위해서는 본 발명의 바람직한 실시 예를 예시하는 첨부 도면 및 첨부 도면에 기재된 내용을 참조하여야만 한다. 이하, 첨부한 도면을 참조하여 본 발명의 바람직한 실시 예를 설명함으로써, 본 발명을 상세히 설명한다. 각 도면에 제시된 동일한 참조부호는 동일한 부재를 나타낸다.In order to fully understand the present invention, the operational advantages of the present invention, and the objects achieved by the practice of the present invention, reference should be made to the accompanying drawings which illustrate preferred embodiments of the present invention and the contents described in the accompanying drawings. Hereinafter, exemplary embodiments of the present invention will be described in detail with reference to the accompanying drawings. Like reference numerals in the drawings denote like elements.

도 2는 본 발명의 실시 예에 따른 암호화/ 복호화 시스템의 블록도이고, 도 3은 본 발명의 실시 예에 따라 생성된 실수체 군을 나타내는 그래프이고, 도 4는 본 발명의 실시 예에 따라 생성된 실수체 군이 유한체에 매칭되는 과정을 설명하기 위한 그래프이다.2 is a block diagram of an encryption / decryption system according to an embodiment of the present invention, FIG. 3 is a graph showing a real object group generated according to an embodiment of the present invention, and FIG. 4 is created according to an embodiment of the present invention. It is a graph for explaining the process of matching the real body group to the finite body.

도 5는 본 발명의 실시 예에 따라 생성된 실수체 군이 유한체에 매칭된 결과를 나타내는 그래프이다. 도 2 내지 도 5를 참조하면, 암호화/ 복호화 시스템(10)은 공개키 생성기(11), 암호화기(12) 및 복호화기(18)를 포함할 수 있다.5 is a graph showing a result of matching a real body group generated according to an embodiment of the present invention to a finite body. 2 to 5, the encryption / decryption system 10 may include a public key generator 11, an encoder 12, and a decoder 18.

이때, 암호화기(12) 및 복호화기(18)는 암호화/ 복호화 시스템(10)과는 별도로 독립적으로 구현될 수 있으며, 암호화/ 복호화 시스템(10), 암호화기(12), 및/ 또는 복호화기(18)는 휴대용 어플리케이션(portalble application)으로 구현될 수 있다.In this case, the encryptor 12 and the decryptor 18 may be implemented independently of the encryption / decryption system 10, and the encryption / decryption system 10, the encryptor 12, and / or the decryptor. 18 may be implemented as a portable application.

상기 휴대용 어플리케이션은, 휴대용 컴퓨터(portable computer), 디지털 카메라(digital camera), PDA(personal digital assistance), 휴대 전화기(cellular telephone), MP3 플레이어, PMP(portable multimedia player), 차량자동항법장치(automotive navigation system), 메모리 카드(memory card), 시스템 카드(system card), 게임기, 전자 사전, 또는 솔리드 스테이트 디스크(solid state disk)를 포함할 수 있다.The portable application includes a portable computer, a digital camera, a personal digital assistance (PDA), a cellular telephone, an MP3 player, a portable multimedia player, and a vehicle navigation system. system, memory card, system card, game machine, electronic dictionary, or solid state disk.

또한, 암호화/ 복호화 시스템(10),공개키 생성기(11), 암호화기(12), 및/ 또는 복호화기(18)는 통신 시스템(미도시)에 구현될 수 있으며, 이때, 상기 통신 시스템(미도시)은 휴대용 단말기, PDA, 휴대용 컴퓨터, 무선 전화기(wireless telephone), 인공 위성 시스템, 페이저(pager), RFID 리더, 또는 RFID 시스템과 같은 모든 무선 시스템을 포함할 수 있다.In addition, the encryption / decryption system 10, the public key generator 11, the encryptor 12, and / or the decryptor 18 may be implemented in a communication system (not shown), wherein the communication system ( Not shown) may include any wireless system, such as a portable terminal, PDA, portable computer, wireless telephone, satellite system, pager, RFID reader, or RFID system.

또한, 통신 시스템은 WLAN(Wireless Local Area Network) 시스템 또는 WPAN(Wireless Personal Area network) 시스템일 수 있다.In addition, the communication system may be a wireless local area network (WLAN) system or a wireless personal area network (WPAN) system.

암호화기(12) 및 복호화기(18)의 내부에 구현될 수도 있는 공개키 생성기(11)는 유한체(예컨대, 도 5의 G1 내지 G17, 이하, 'G'라 한다.)로 정의되는 타원 곡선(ECC1) 상에서 적어도 어느 하나의 점(예컨대, 도 3의 P)을 선택하고, 상기 타원 곡선(ECC1)을 정의하는 타원곡선 방정식 및 특성 방정식을 이용하여 실수체 군(E(G), 예컨대, EG1, EG2, ..., EGn))의 공개키를 생성할 수 있다.The public key generator 11, which may be implemented inside the encryptor 12 and the decryptor 18, is defined as a finite body (e.g., G 1 to G 17 in FIG. 5, hereinafter referred to as 'G'). Real body group E (G) by selecting at least one point (eg, P in FIG. 3) on the elliptic curve ECC1 to be obtained, and using an elliptic curve equation and a characteristic equation defining the elliptic curve ECC1. For example, EG 1 , EG 2 , ..., EG n )) may be generated.

이때, 타원 곡선(ECC1)의 타원 곡선방정식은 다음의 수학식 1과 상응할 수 있다.In this case, the elliptic curve equation of the elliptic curve ECC1 may correspond to Equation 1 below.

y2 = a*x3 + b*x + c(여기서, a, b, 및 c는 실수)y 2 = a * x 3 + b * x + c, where a, b, and c are real

이때, a는 1, b는 -1, 및 c는 1일 수 있으나 이에 한정되지는 않는다. 한편, 상기 수학식 1이 아래의 수학식 2와 같이 정의되는 경우,In this case, a may be 1, b may be -1, and c may be 1, but is not limited thereto. Meanwhile, when Equation 1 is defined as Equation 2 below,

y2 = x3 - p*x - q(여기서, p와 q는 실수)y 2 = x 3 -p * x-q, where p and q are real

공개키 생성기(11)는 특성 방정식의 해를 이용하여 적어도 하나의 실수체군(E(G), 예컨대, EG1, EG2, ..., EGn))의 좌표를 생성할 수 있으며, 이때, 상기 특성 방정식은 다음의 수학식 3과 상응할 수 있다.The public key generator 11 may generate coordinates of at least one real body group (E (G), for example, EG 1 , EG 2 , ..., EG n ) using a solution of a characteristic equation. The characteristic equation may correspond to Equation 3 below.

s = (3xp 2 - p) / (2yp) (여기서, s는 특성 방정식의 해, xp는 상기 선택된 점의 x 좌표, 및 yp는 상기 선택된 점의 y 좌표)s = (3x p 2 -p) / (2y p ), where s is the solution of the characteristic equation, x p is the x coordinate of the selected point, and y p is the y coordinate of the selected point

또한, 공개키 생성기(11)는 상기 수학식 3의 계산 결과에 기초하여 다음의 수학식 4에 의해서 적어도 하나의 실수체군(E(G))의 x좌표를 산출 할 수 있다.In addition, the public key generator 11 may calculate the x-coordinate of the at least one real object group E (G) by the following Equation 4 based on the calculation result of Equation 3 above.

xR = s2- 2 * xp(여기서, xR은 적어도 하나의 실수체군(E(G))의 x좌표)x R = s 2 - (x-coordinate of where, R x is at least one real chegun (E (G))) 2 * x p

또한, 공개키 생성기(11)는 상기 수학식 3의 계산 결과에 기초하여 다음의 수학식 5에 의해서 적어도 하나의 실수체군(E(G))의 y좌표를 산출 할 수 있다.In addition, the public key generator 11 may calculate the y-coordinate of at least one real object group E (G) by the following Equation 5 based on the calculation result of Equation 3 above.

yR= yp + s*(xR - xp)(여기서, yR은 적어도 하나의 실수체군(E(G))의 y좌표)y R = y p + s * (x R -x p ), where y R is the y-coordinate of at least one real family (E (G))

이때, 공개키 생성기(11)는 수학식 3 내지 수학식 5를 반복적으로 수행(또는, 연산) 함으로써 복수개의 실수체군(E(G))을 산출할 수 있다.In this case, the public key generator 11 may calculate the plurality of real object groups E (G) by repeatedly performing (or calculating) Equations 3 to 5.

예컨대, 공개키 생성기(11)는 최초 수학식 5의 연산결과와 상응하는 제1 실수체 좌표(xR1, yR1)를 수학식 3의 (xp, yp) 대신에 입력하고, 입력된 값의 계산결과(s)를 수학식 4와 수학식 5에 대입함으로써 제2 실수체 좌표(xR2, yR2)를 산출할 수 있다.For example, the public key generator 11 inputs a first real object coordinate (x R1 , y R1 ) corresponding to the operation result of the first equation (5) instead of (x p , y p ) of the equation (3), By substituting the calculation result s of the value into equations (4) and (5), the second real object coordinates (x R2 , y R2 ) can be calculated.

또한, 공개키 생성기(11)는 제2 실수체 좌표(xR2, yR2)를 수학식 3의 (xp, yp) 대신에 입력하고, 입력된 값의 계산결과(s)를 수학식 4와 수학식 5에 대입함으로써 제3 실수체 좌표(xR3, yR3)를 산출할 수 있다.In addition, the public key generator 11 inputs the second real object coordinates (x R2 , y R2 ) instead of (x p , y p ) in Equation 3, and inputs the calculation result (s) of the input value. By substituting into 4 and (5), the third real object coordinates (x R3 , y R3 ) can be calculated.

위와 같은 방법으로, 공개키 생성기(11)는 수학식 3 내지 수학식 5를 n(n은 자연수)회 반복함으로써, n개의 실수체군(E(G), 예컨대, EG1(xR1, yR1), EG2(xR2 yR2), ..., EGn(xRn, yRn))을 산출할 수 있다.In the same manner as above, the public key generator 11 repeats Equations 3 to 5 n times (n is a natural number), whereby n real object groups (E (G), for example, EG 1 (x R1 , y R1) ), EG 2 (x R2 y R2 ), ..., EG n (x Rn , y Rn )).

예컨대, 공개키 생성기(11)는 도 3과 같이 수학식 2 내지 수학식 5를 통하여 적어도 하나의 실수체군(E(G)) 각각의 실수좌표(EG1(xR1, yR1), EG2(xR2 yR2), ..., EGn(xRn, yRn))를 산출할 수 있다.For example, the public key generator 11 may use the real coordinates EG 1 (x R1 , y R1 ) and EG 2 of each of the at least one real object group E (G) through Equations 2 to 5 as shown in FIG. 3. (x R2 y R2 ), ..., EG n (x Rn , y Rn )) can be calculated.

이때, 수학식 2 내지 수학식 5를 통하여 산출되는 적어도 하나의 실수체군(E(G)) 각각의 실수좌표(EG1(xR1, yR1), EG2(xR2 yR2), ..., EGn(xRn, yRn))는 도 3과 같이 타원 곡선(ECC1) 상에 위치하지 않을 수 있다.At this time, each of the real coordinates (EG 1 (x R1 , y R1 ), EG 2 (x R2 y R2 ), ... of each of the at least one real body group E (G) calculated through the equations (2) to (5). , EG n (x Rn , y Rn ) may not be located on the elliptic curve ECC1 as shown in FIG. 3.

즉, 본 발명의 실시 예에 따른, 공개키 생성기(11)는 공개키 생성시 유한체(G)로 정의되는 타원 곡선(ECC1) 상의 좌표만을 공개키로 선정하지 않는다. 따라서, 공개키 생성기(11)에 의해서 생성되는 공개키는 그 안정성이 더 높아지는바. 암호화 및 복호화의 신뢰성을 높일 수 있는 효과가 있다.That is, according to the embodiment of the present invention, the public key generator 11 does not select only the coordinates on the elliptic curve ECC1 defined by the finite body G as the public key when the public key is generated. Therefore, the public key generated by the public key generator 11 has higher stability. There is an effect that can increase the reliability of encryption and decryption.

한편, 공개키 생성기(11)는 적어도 하나의 실수체군(E(G))의 좌표(EG1(xR1, yR1), EG2(xR2 yR2), ..., EGn(xRn, yRn))를 상기 타원 곡선상의 유한체의 좌표(예컨대, 도 4의 G1, G2, ..., Gn)로 매칭시키고 매칭된 좌표(G1, G2, ..., Gn)를 공개키로서 선정할 수 있다.On the other hand, the public key generator 11 has coordinates EG 1 (x R1 , y R1 ), EG 2 (x R2 y R2 ), ..., EG n (x) of at least one real object group E (G). R n , y R n )) to the coordinates of the finite body on the elliptic curve (eg, G 1 , G 2 , ..., G n in FIG. 4) and matched coordinates G 1 , G 2 , ... , G n ) can be selected as the public key.

보다 상세하게는, 공개키 생성기(11)는 수학식 2 내지 수학식 5를 통하여 산출되는 적어도 하나의 실수체군(E(G))들 각각의 실수좌표(EG1(xR1, yR1), EG2(xR2 yR2), ..., EGn(xRn, yRn))를 타원 곡선(ECC1) 상에 위치하는 유한체(Q)의 좌표값(G1, G2, ..., Gn)으로 매칭할 수 있다.In more detail, the public key generator 11 includes the real coordinates EG 1 (x R1 , y R1 ) of each of the at least one real object group E (G) calculated through Equations 2 to 5; EG 2 (x R2 y R2 ), ..., EG n (x Rn , y Rn ) coordinates (G 1 , G 2 , ..) of the finite body (Q) located on the elliptic curve (ECC1). ., G n ).

이때, 적어도 하나의 실수체군(E(G)) 각각에 매칭되는 유한체(Q)의 좌표값은 상기 적어도 하나의 실수체군(E(G))들과 가장 가까운 거리에 있는 타원 곡선(ECC1) 상의 좌표값들 일 수 있으며, 공개키 생성기(11)는 도 5와 같이 상기 적어도 하나의 실수체군(E(G))과 매칭되는 타원 곡선(ECC1) 상의 근사점들(G1, G2, ..., Gn)을 공개키로 선정할 수 있다.In this case, the coordinate value of the finite body Q matching each of the at least one real body group E (G) is the elliptic curve ECC1 at the closest distance to the at least one real body group E (G). The public key generator 11 may have approximate points G 1 , G 2 , and the like on the elliptic curve ECC1 matching the at least one real object group E (G), as shown in FIG. 5. ..., G n ) can be chosen as the public key.

또한, 암호화기(12)는 타원 곡선(ECC1) 상의 근사점들(G1, G2, ..., Gn)을 변경하고 변경된 근사점들을 공개키로 선정할 수 있다. 예컨대, 암호화기(12)는 타원 곡선(ECC1) 상의 근사점들(G1, G2, ..., Gn) 중에서 적어도 어느 하나의 근사점을 소거하고 소거결과 남은 근사점들을 공개키로 선정할 수 있다.In addition, the encoder 12 may change the approximations G 1 , G 2 ,..., G n on the elliptic curve ECC1 and select the changed approximations as the public key. For example, the encoder 12 erases at least one approximation point among the approximations G 1 , G 2 ,..., G n on the elliptic curve ECC1 and selects the remaining approximations as the public key. can do.

이 경우, 암호화기(12)는 소거결과 남은 근사점들에 대한 정보를 암호화하여 복호화기(18)에 전송할 수 있다.In this case, the encryptor 12 may encrypt information about the approximate points remaining in the erased result and transmit the encrypted information to the decryptor 18.

암호화기(12)는 공개키 생성기(11)에 의해서 생성되는 실수체군(E(G))의 공개키에 기초하여 Diffie-Hellman의 키 교환 스킴, ElGamal, 및 Schnorr와 NIST 서 명스킴 등을 이용하여 메시지(또는, 평문, m)를 암호화할 수 있다.The encryptor 12 uses Diffie-Hellman's key exchange scheme, ElGamal, and Schnorr and NIST signature schemes based on the public keys of the real object group E (G) generated by the public key generator 11. Messages (or plain text, m) can be encrypted.

예컨대, 암호화기(12)는 공개키 생성기(11)에 의해서 생성되는 실수체군(E(G))의 공개키를 이산대수에 기반을 둔 ElGamal 공개키 암호로 전환하여 메시지(m)를 암호화할 수 있다.For example, the encryptor 12 converts the public key of the real object group E (G) generated by the public key generator 11 into an ElGamal public key cryptography based on a discrete logarithm to encrypt the message m. Can be.

암호화기(12)는 송신자 개인키(j)와 송신자 공개키(c1)를 생성하고 생성된 상기 송신자 개인키(j)와 상기 송신자 공개키(c1)를 이용하여 메시지(m)에 대한 암호문(c2)을 생성할 수 있다.Encryptor 12 using the sender's private key (j) and the sender's public key (c 1) the generation and the generated the sender's private key (j) and the sender's public key, (c 1) of the message (m) It is possible to generate a cipher text (c 2 ).

이때, 송신자 개인키(j), 송신자 공개키(c1), 암호문(c2) 중에서 적어도 어느 하나는 상기 실수체 군의 좌표(예컨대, EG1(xR1, yR1), EG2(xR2 yR2), ..., EGn(xRn, yRn))에 포함될 수 있으며, 상기 송신자 공개키(c1)는 상기 송신자 개인키(j)와 타원 곡선상(ECC1) 상에서 선택되는 적어도 하나의 점에 대한 좌표의 연산결과(예컨대, 곱연산)일 수 있다.At this time, at least one of the sender private key (j), the sender public key (c 1 ), the cipher text (c 2 ) is the coordinates of the real object group (eg, EG 1 (x R1 , y R1 ), EG 2 (x R2 y R2 ), ..., EG n (x Rn , y Rn )), and the sender public key c 1 is selected on the sender private key j and on an elliptic curve ECC1. It may be an operation result (eg, a multiplication) of coordinates for at least one point.

최종적으로, 암호화기(12)는 생성된 송신자 공개키(c1)와 메시지(m)에 대한 암호문(c2)을 복호화기(18)에 전송할 수 있다.Finally, the encryptor 12 may transmit the generated sender public key c 1 and the cipher text c 2 for the message m to the decryptor 18.

한편, 암호화기(12)는 송신자 키 생성부(14)와 메시지 암호화부(16)을 포함할 수 있다. 상기 송신자 키 생성부(14)는 송신자 개인키(j)와 송신자 공개키(c1)를 생성할 수 있다.Meanwhile, the encryptor 12 may include a sender key generator 14 and a message encryptor 16. The sender key generation unit 14 may generate a sender private key j and a sender public key c 1 .

이때, 송신자 공개키(c1)는 송신자 개인키(j)와 적어도 하나의 점(예컨대, 도 3의 P)에 대한 좌표의 연산결과일 수 있다.In this case, the sender public key c 1 may be a calculation result of coordinates of the sender private key j and at least one point (for example, P of FIG. 3).

메시지 암호화부(16)는 송신자 키 생성부(14)에서 생성된 송신자 개인키(j)와 송신자 공개키(c1)를 이용하여 메시지(m)에 대한 암호문(c2)을 생성할 수 있다.The message encryptor 16 may generate a ciphertext c 2 for the message m using the sender private key j and the sender public key c 1 generated by the sender key generator 14. .

예컨대, 메시지 암호화부(16)는 메시지(m)에 송신자 개인키(j) 및 수신자 공개키(j)와의 연산(예컨대, 곱 연산)을 수행함으로써 메시지(m)에 대한 암호문(c2)을 생성할 수 있다.For example, the message encryptor 16 performs an operation (e.g., a multiplication operation) on the message m with the sender private key j and the receiver public key j to generate the ciphertext c 2 for the message m. Can be generated.

또한, 암호화기(12)는 상기에서 설명한 실수체 군의 좌표(예컨대, (xR1, yR1), (xR2 yR2), ..., (xRn, yRn))와 상관없이 타원 곡선상에서 미리 결정된 유한체 군을 선택하고, 선택된 유한체 군을 이용하여 공개키를 생성하고, 생성된 공개키 상에 존재하는 송신자 개인키(j)와 수신자 공개키(h)를 이용하여 메시지(m)에 대한 암호문(c2)을 생성할 수도 있다.Further, the encryptor 12 is an ellipse irrespective of the coordinates of the real object group described above (for example, (x R1 , y R1 ), (x R2 y R2 ), ..., (x Rn , y Rn )). Select a predetermined finite group on the curve, generate a public key using the selected finite group, and use the sender private key (j) and the recipient public key (h) on the generated public key It is also possible to generate a ciphertext c 2 for m).

이때, 암호화기(12)는 미리 결정된 유한체 군에 대한 정보를 암호화할 수 있으며, 암호화된 유한체 군에 대한 정보 및 암호문(c2)를 복호화기(18)에 전송할 수 있다.In this case, the encryptor 12 may encrypt information about the predetermined finite body group, and may transmit information about the encrypted finite body group and the ciphertext c 2 to the decryptor 18.

또한, 암호화기(12)는 적어도 하나의 실수체군(E(G))의 좌표가 타원 곡선상의 유한체의 좌표(예컨대, G1, G2, ..., Gn)로 매칭된 근사점들의 좌표들 중에서 임의로 선택된 좌표값들 만을 공개키로 선정하고 선정 결과에 기초하여 메시지(m)의 암호화를 수행할 수도 있다.In addition, the encoder 12 has an approximation point in which the coordinates of at least one real body group E (G) are matched with the coordinates of the finite body on the elliptic curve (for example, G 1 , G 2 , ..., G n ). Only coordinates arbitrarily selected from among the coordinates of the above may be selected as the public key and encryption of the message m may be performed based on the selection result.

이 경우, 암호화기(12)는 임의로 선택된 좌표값들에 대한 정보를 암호화할 수 있으며, 상기 임의로 선택된 좌표값들이 암호화된 정보와 암호문(c2)를 복호화기(18)에 전송할 수 있다.In this case, the encryptor 12 may encrypt information on arbitrarily selected coordinate values, and transmit the encrypted information and the ciphertext c 2 to the decryptor 18.

복호화기(18)는 공개키 생성기(11)에 의해서 생성되는 실수체군(E(G))의 공개키에 기초하여 Diffie-Hellman의 키 교환 교환 스킴, ElGamal, 및 Schnorr와 NIST 서명스킴 등을 이용하여 암호문(c2)를 복호화할 수 있다.The decoder 18 uses Diffie-Hellman's key exchange exchange scheme, ElGamal, and Schnorr and NIST signature schemes based on the public keys of the real object group E (G) generated by the public key generator 11. The ciphertext c 2 can be decrypted.

예컨대, 복호화기(18)는 공개키 생성기(11)에 의해서 생성되는 실수체군(E(G))의 공개키를 이산대수에 기반을 둔 ElGamal 공개키 암호로 전환하여 암호문(c2)를 복호화할 수 있다.For example, the decoder 18 decrypts the ciphertext c 2 by converting the public key of the real object group E (G) generated by the public key generator 11 into an ElGamal public key cryptography based on a discrete logarithm. can do.

복호화기(18)는 암호화기(12)로부터 송신자 공개키(c1)와 메시지(m)에 대한 암호문(c2)을 수신하고, 수신자 개인키(k), 수신자 공개키(h), 및 송신자 공개키(c1) 중에서 적어도 어느 하나에 기초하여 메시지(m)에 대한 암호문(c2)을 복호화 할 수 있다.The decryptor 18 receives the sender public key c 1 and the cipher text c 2 for the message m from the encryptor 12, the receiver private key k, the receiver public key h, and The ciphertext c 2 for the message m can be decrypted based on at least one of the sender public key c 1 .

복호화기(18)는 수신자 키 저장부(20)과 메시지 복호화부(22)를 포함할 수 있다. 상기 수신자 키 저장부(20)는 암호화기(12)로부터 송신자 공개키(c1)와 메시지(m)에 대한 암호문(c2)을 수신할 수 있으며, 메시지 복호화부(22)는 수신자 개인 키(k), 수신자 공개키(h), 및 송신자 공개키(c1) 중에서 적어도 어느 하나에 기초하여 메시지(m)에 대한 암호문(c2)을 복호화 할 수 있다.The decryptor 18 may include a receiver key storage unit 20 and a message decryption unit 22. The receiver key storage unit 20 may receive a sender public key (c 1 ) and a cipher text (c 2 ) for the message (m) from the encryptor 12, the message decryption unit 22 is the receiver private key The cipher text c 2 for the message m can be decrypted based on at least one of (k), the recipient public key h, and the sender public key c 1 .

이때, 수신자 공개키(h)는 수신자 개인키(k)와 타원 곡선상(ECC1) 상에서 선택되는 적어도 하나의 점(예컨대, 도 3의 P)에 대한 좌표의 연산결과(예컨대, 곱연산)일 수 있다.In this case, the receiver public key h is a result of calculation of coordinates for at least one point (for example, P of FIG. 3) selected on the receiver private key k and the elliptic curve ECC1. Can be.

메시지 복호화부(22)는 다음의 수학식 6을 이용하여 암호문(c2)을 복호화할 수 있다.The message decryption unit 22 may decrypt the cipher text c 2 using Equation 6 below.

Figure 112008078544482-pat00001
Figure 112008078544482-pat00002
Figure 112008078544482-pat00003
Figure 112008078544482-pat00004
(여기서, 는 실수체에서 정의되는 연산으로, 은 를 연산후(즉, 타원 곡선(ECC1) 상의 점(예컨대, 도 3의 P)에 대하여 상기 수학식 2 내지 수학식 5를 k번 수행하고, k번 수행된 연산결과에 대하여 상기 수학식 2 내지 수학식 5를 c1회 더 수행함을 의미한다.)
Figure 112008078544482-pat00001
Figure 112008078544482-pat00002
Figure 112008078544482-pat00003
Figure 112008078544482-pat00004
(Wherein, is an operation defined in the real body, and after performing the operation (that is, performing the above Equations 2 to 5 k times on the point on the elliptic curve (ECC1) (for example, P in Fig. 3), Equations 2 to 5 are performed c 1 more times for the result of the calculation performed k times.)

상기 수학식 6은 다음의 수학식 7과 상응할 수 있으며,Equation 6 may correspond to Equation 7 below.

Figure 112008078544482-pat00005
Figure 112008078544482-pat00005

상기 수학식 7은 다음의 수학식 8과 상응할 수 있다.Equation 7 may correspond to Equation 8 below.

Figure 112008078544482-pat00006
Figure 112008078544482-pat00006

상기 수학식 8에서

Figure 112008078544482-pat00007
Figure 112008078544482-pat00008
은 동일하다. 이에 대해서 보다 상세히 설명하면, 도 6은 본 발명의 실시 예에 따라 생성된 실수체 군들의 특성을 설명하기 위한 그래프로서, 타원 곡선(ECC1) 상에서 제1 점(2P)와 제2 점(3P)의 연산시(즉, 2P
Figure 112008078544482-pat00009
3P), 5P가 연산결과로서 출력되고, 제2 점(3P)과 제1 점(2P)의 연산시(즉, 3P
Figure 112008078544482-pat00010
2P), 5P가 연산결과로서 출력된다.In Equation 8
Figure 112008078544482-pat00007
and
Figure 112008078544482-pat00008
Is the same. In more detail, FIG. 6 is a graph illustrating characteristics of the real object groups generated according to an exemplary embodiment of the present invention, and includes a first point 2P and a second point 3P on an elliptic curve ECC1. In operation of (i.e. 2P
Figure 112008078544482-pat00009
3P), 5P is outputted as a calculation result, and when computing the 2nd point 3P and the 1st point 2P (that is, 3P)
Figure 112008078544482-pat00010
2P) and 5P are output as calculation results.

결국, 연산의 교환법칙이 성립되는바 메시지 복호화부(22)는 수학식 8에 의해서 메시지(m)를 복원(또는, 출력)할 수 있다.As a result, as the exchange law of operation is established, the message decoder 22 may restore (or output) the message m by Equation (8).

도 7은 본 발명의 실시 예에 따른 타원 곡선 암호 방식의 공개키 생성 방법의 흐름도이다. 도 2, 도 3, 및 도 7을 참조하면, 공개키 생성기(11)의 선택부(11-1)는 유한체로 정의되는 타원 곡선(ECC1)상에서 적어도 어느 하나의 점(P)을 선택한다(S10).7 is a flowchart of a method for generating an elliptic curve cryptography public key according to an embodiment of the present invention. 2, 3, and 7, the selector 11-1 of the public key generator 11 selects at least one point P on an elliptic curve ECC1 defined by a finite body ( S10).

공개키 생성부(11-3)는 타원 곡선을 정의하는 타원곡선 방정식 및 특성 방정식(예컨대, 수학식 3)을 이용하여 실수체 군의 공개키를 생성할 수 있다(S12).The public key generator 11-3 may generate a public key of a real object group using an elliptic curve equation and a characteristic equation (for example, Equation 3) defining an elliptic curve (S12).

도 8은 본 발명의 실시 예에 따른 메시지 암호화 방법의 흐름도이다. 도 2, 도 3, 및 도 8을 참조하면, 공개키 생성기(11)의 선택부(11-1)는 유한체로 정의되는 타원 곡선(ECC1)상에서 적어도 어느 하나의 점(P)을 선택한다(S20).8 is a flowchart illustrating a message encryption method according to an embodiment of the present invention. 2, 3, and 8, the selector 11-1 of the public key generator 11 selects at least one point P on an elliptic curve ECC1 defined by a finite body ( S20).

공개키 생성부(11-3)는 타원 곡선을 정의하는 타원곡선 방정식 및 특성 방정식(예컨대, 수학식 3)을 이용하여 실수체 군의 공개키를 생성할 수 있다(S22).The public key generator 11-3 may generate a public key of a real object group using an elliptic curve equation and a characteristic equation (for example, Equation 3) defining an elliptic curve (S22).

암호화기(12)는 공개키 S22 단계에 의해서 생성된 공개키, 송신자 개인키(j), 및 수신자 공개키(k) 중에서 적어도 어느 하나에 기초하여 메시지(m)에 대한 암호문(c2)을 생성할 수 있다(S24).The encryptor 12 generates the ciphertext c 2 for the message m based on at least one of the public key, the sender private key j, and the recipient public key k generated by the public key S22. Can be generated (S24).

도 9는 본 발명의 다른 실시 예에 따른 메시지 암호화 방법의 흐름도이다. 도 2, 도 3, 및 도 9를 참조하면, 암호화기(12)의 송신자 키생성부(14)는 유한체로 정의되는 타원 곡선상(ECC1)에서 미리 결정된 유한체 군을 선택한다(S30).9 is a flowchart illustrating a message encryption method according to another embodiment of the present invention. 2, 3, and 9, the sender key generation unit 14 of the encryptor 12 selects a predetermined finite group on an elliptic curve ECC1 defined as a finite body (S30).

메시지 암호화부(16)는 S30에 의해서 선택된 유한체 군을 이용하여 공개키를 생성하고, 생성된 공개키 상에 존재하는 송신자 개인키(j)와 수신자 공개키(h)를 이용하여 메시지(m)에 대한 암호문(c2)을 생성할 수 있다(S32).The message encryptor 16 generates a public key using the finite group selected by S30, and uses the sender private key j and the recipient public key h on the generated public key to send the message m. Ciphertext c 2 for ) can be generated (S32).

도 10은 본 발명의 실시 예에 따른 메시지 복호화 방법의 흐름도이다. 도 2, 도 3, 및 도 10를 참조하면, 공개키 생성기(11)의 선택부(11-1)는 유한체로 정의되는 타원 곡선(ECC1)상에서 적어도 어느 하나의 점(P)을 선택한다(S40).10 is a flowchart illustrating a message decoding method according to an embodiment of the present invention. 2, 3, and 10, the selector 11-1 of the public key generator 11 selects at least one point P on an elliptic curve ECC1 defined by a finite body ( S40).

공개키 생성부(11-3)는 타원 곡선을 정의하는 타원곡선 방정식 및 특성 방정식(예컨대, 수학식 3)을 이용하여 실수체 군의 공개키를 생성할 수 있다(S42).The public key generator 11-3 may generate a public key of a real object group using an elliptic curve equation and a characteristic equation (for example, Equation 3) defining an elliptic curve (S42).

복호화기(18)는 S42 단계의 의해서 생성된 공개키, 암호화기(12)로부터 수신된 수신자 개인키(k), 수신자 공개키(h), 및 송신자 공개키(c1) 중에서 적어도 어느 하나에 기초하여 메시지(m)에 대한 암호문(c2)을 복호화 할 수 있다(S44).The decryptor 18 is configured to at least one of the public key generated by step S42, the receiver private key k received from the encryptor 12, the receiver public key h, and the sender public key c 1 . Based on the ciphertext (c 2 ) for the message (m) can be decrypted (S44).

본 발명은 컴퓨터로 읽을 수 있는 기록매체에 컴퓨터가 읽을 수 있는 코드로서 구현하는 것이 가능하다. 컴퓨터가 읽을 수 있는 기록매체는 컴퓨터 시스템에 의하여 읽혀질 수 있는 데이터가 저장되는 모든 종류의 기록장치를 포함한다. 컴퓨터가 읽을 수 있는 기록매체의 예로는 ROM, RAM, CD-ROM, 자기 테이프, 광 데이터 저장장치 등이 있다. 또한 컴퓨터가 읽을 수 있는 기록매체는 네트워크로 연결된 컴퓨터 시스템에 분산되어, 분산방식으로 컴퓨터가 읽을 수 있는 코드가 저장되고 실행될 수 있다. 그리고 본 발명을 구현하기 위한 기능적인(Functional) 프로그램, 코드 및 코드 세그먼트들은 본 발명이 속하는 기술분야의 프로그래머들에 의해 용이하게 추론될 수 있다.The present invention can be embodied as computer readable codes on a computer readable recording medium. The computer-readable recording medium includes all kinds of recording devices in which data that can be read by a computer system is stored. Examples of computer-readable recording media include ROM, RAM, CD-ROM, magnetic tape, optical data storage, and the like. The computer readable recording medium can also be distributed over network coupled computer systems so that the computer readable code is stored and executed in a distributed fashion. And functional programs, codes and code segments for implementing the present invention can be easily inferred by programmers in the art to which the present invention belongs.

본 발명은 도면에 도시된 일 실시 예를 참고로 설명되었으나 이는 예시적인 것에 불과하며, 본 기술 분야의 통상의 지식을 가진 자라면 이로부터 다양한 변형 및 균등한 타 실시 예가 가능하다는 점을 이해할 것이다. 따라서, 본 발명의 진정한 기술적 보호 범위는 첨부된 등록청구범위의 기술적 사상에 의해 정해져야 할 것이다.Although the present invention has been described with reference to one embodiment shown in the drawings, this is merely exemplary, and those skilled in the art will understand that various modifications and equivalent other embodiments are possible therefrom. Therefore, the true technical protection scope of the present invention will be defined by the technical spirit of the appended claims.

본 발명의 상세한 설명에서 인용되는 도면을 보다 충분히 이해하기 위하여 각 도면의 간단한 설명이 제공된다.BRIEF DESCRIPTION OF THE DRAWINGS In order to better understand the drawings cited in the detailed description of the invention, a brief description of each drawing is provided.

도 1는 일반적인 타원곡선 상에 포함되는 유한체의 특성을 설명하기 위한 그래프이다.1 is a graph for explaining the characteristics of a finite body included on a general elliptic curve.

도 2는 본 발명의 실시 예에 따른 암호화/ 복호화 시스템의 블록도이다.2 is a block diagram of an encryption / decryption system according to an embodiment of the present invention.

도 3은 본 발명의 실시 예에 따라 생성된 실수체 군을 나타내는 그래프이다.3 is a graph showing a group of real bodies generated according to an embodiment of the present invention.

도 4는 본 발명의 실시 예에 따라 생성된 실수체 군이 유한체에 매칭되는 과정을 설명하기 위한 그래프이다.4 is a graph illustrating a process of matching a real body group generated according to an embodiment of the present invention to a finite body.

도 5는 본 발명의 실시 예에 따라 생성된 실수체 군이 유한체에 매칭된 결과를 나타내는 그래프이다.5 is a graph showing a result of matching a real body group generated according to an embodiment of the present invention to a finite body.

도 6은 본 발명의 실시 예에 따라 생성된 실수체 군들의 특성을 설명하기 위한 그래프이다.6 is a graph illustrating characteristics of the real object groups generated according to an embodiment of the present invention.

도 7은 본 발명의 실시 예에 따른 타원 곡선 암호 방식의 공개키 생성 방법의 흐름도이다.7 is a flowchart of a method for generating an elliptic curve cryptography public key according to an embodiment of the present invention.

도 8은 본 발명의 실시 예에 따른 메시지 암호화 방법의 흐름도이다.8 is a flowchart illustrating a message encryption method according to an embodiment of the present invention.

도 9는 본 발명의 다른 실시 예에 따른 메시지 암호화 방법의 흐름도이다.9 is a flowchart illustrating a message encryption method according to another embodiment of the present invention.

도 10은 본 발명의 실시 예에 따른 메시지 복호화 방법의 흐름도이다.10 is a flowchart illustrating a message decoding method according to an embodiment of the present invention.

Claims (15)

유한체로 정의되는 타원 곡선상에서 적어도 어느 하나의 점을 선택하는 단계; Selecting at least one point on an elliptic curve defined by a finite body; 상기 타원 곡선을 정의하는 타원곡선 방정식 및 특성 방정식을 이용하여 적어도 하나의 실수체 군을 산출하는 단계;Calculating at least one real body group using an elliptic curve equation and a characteristic equation defining the elliptic curve; 상기 적어도 하나의 실수체 군을, 상기 적어도 하나의 실수체 군과 가장 가까운 거리에 있는 상기 타원 곡선상의 유한체 좌표로 매칭하는 단계; 및Matching the at least one real body group to finite body coordinates on the elliptic curve at a distance closest to the at least one real body group; And 상기 매칭된 타원 곡선상의 좌표를 공개키로 생성하는 단계를 포함하는 타원 곡선 암호 방식의 공개키 생성 방법.And generating a public key coordinates on the matched elliptic curve. 제1항에 있어서, 상기 타원 곡선 방정식은,The method of claim 1, wherein the elliptic curve equation, y2 = a*x3 + b*x + c(여기서, a, b, 및 c는 실수)와 상응하는 타원 곡선 암호 방식의 공개키 생성 방법.y 2 = a * x 3 + b * x + c (where a, b, and c are real numbers) corresponding to elliptic curve cryptography. 제2항에 있어서, 상기 a는 1, 상기 b는 -1, 및 상기 c는 1인 타원 곡선 암호 방식의 공개키 생성 방법.3. The method of claim 2, wherein a is 1, b is −1, and c is 1. 4. 제1항에 있어서, 상기 타원곡선 방정식은,The method of claim 1, wherein the elliptic curve equation, y2 = x3 - p*x - q(여기서, p 및 q는 실수)와 상응하고, 상기 특성 방정식은, 수학식 9와 상응하며,y 2 = x 3 − p * x − q where p and q are real numbers, and the characteristic equation corresponds to Equation 9, 상기 실수체 군을 산출하는 단계는,Computing the real object group, 상기 특성 방정식의 해를 이용하여 적어도 하나의 실수체군 좌표를 생성하는 단계를 포함하고, 상기 적어도 하나의 실수체군의 x 좌표(xR)는 s2- 2 * xp(여기서, s는 상기 특성 방정식의 해)와 상응하고, 상기 적어도 하나의 실수체군의 y좌표(yR)는 yp + s*(xR - xp)와 상응하는 타원 곡선 암호 방식의 공개키 생성 방법.The x coordinate (x R) for generating a least one of the real chegun coordinates by using the solutions of the characteristic equation, and the at least one real chegun is s 2 - 2 * x p (where, s is the characteristic And y coordinate (y R ) of the at least one real object group corresponds to y p + s * (x R -x p ). s = (3xp 2 - p) / (2yp) (여기서, xp는 상기 선택된 점의 x 좌표, 및 yp는 상기 선택된 점의 y 좌표)s = (3x p 2 -p) / (2y p ), where x p is the x coordinate of the selected point and y p is the y coordinate of the selected point 제4항에 있어서, 상기 매칭하는 단계는,The method of claim 4, wherein the matching comprises: 상기 s를 이용하여, 상기 적어도 하나의 실수체 군을, 상기 적어도 하나의 실수체 군과 가장 가까운 거리에 있는 상기 타원 곡선상의 유한체 좌표로 매칭하고, 상기 타원 곡선상의 매칭된 좌표를 상기 적어도 하나의 실수체 군의 좌표로 대체하는 단계를 포함하는 타원 곡선 암호 방식의 공개키 생성 방법.Using the s, matching the at least one real body group to finite field coordinates on the elliptic curve at a distance closest to the at least one real body group, and matching the matched coordinates on the elliptic curve to the at least one. Elliptic curve cryptography public key generation method comprising the step of replacing the coordinates of the real object group of. 제5항에 있어서, 상기 공개키로 생성하는 단계는,The method of claim 5, wherein the generating with the public key comprises: 상기 타원 곡선상의 매칭된 좌표 중 적어도 하나를 제외한 나머지 좌표를 공개키로 생성하는 단계를 포함하는 타원 곡선 암호 방식의 공개키 생성 방법.And generating a public key other than at least one of the matched coordinates on the elliptic curve as a public key. 제1항의 타원 곡선 암호 방식의 공개키 생성 방법에 의해서 생성된 공개키에 기초하여 메시지의 암호화를 수행하는 암호화 방법.An encryption method for encrypting a message based on a public key generated by the elliptic curve cryptography public key generation method of claim 1. 제1항의 타원 곡선 암호 방식의 공개키 생성 방법에 의해서 생성된 공개키에 기초하여 암호문의 복호화를 수행하는 복호화 방법.A decryption method for decrypting a cipher text based on a public key generated by the public key generation method of the elliptic curve cryptography method of claim 1. 유한체로 정의되는 타원 곡선상에서 적어도 어느 하나의 점을 선택하는 단계; Selecting at least one point on an elliptic curve defined by a finite body; 상기 타원 곡선을 정의하는 타원곡선 방정식 및 특성 방정식을 이용하여 적어도 하나의 실수체 군을 산출하는 단계;Calculating at least one real body group using an elliptic curve equation and a characteristic equation defining the elliptic curve; 상기 적어도 하나의 실수체 군을, 상기 적어도 하나의 실수체 군과 가장 가까운 거리에 있는 상기 타원 곡선상의 유한체 좌표로 매칭하는 단계; Matching the at least one real body group to finite body coordinates on the elliptic curve at a distance closest to the at least one real body group; 상기 매칭된 타원 곡선상의 좌표를 공개키로 생성하는 단계; 및Generating coordinates on the matched elliptic curve with a public key; And 상기 생성된 공개키 상에 존재하는 송신자 개인키와 수신자 공개키를 이용하여 메시지에 대한 암호문을 생성하는 단계를 포함하는 메시지 암호화 방법.Generating a cipher text for the message using a sender private key and a receiver public key existing on the generated public key. 삭제delete 제1항 또는 제9항의 방법을 수행하기 위한 프로그램을 기록한 컴퓨터로 판독가능한 기록 매체.A computer-readable recording medium having recorded thereon a program for performing the method of claim 1. 유한체로 정의되는 타원 곡선상에서 적어도 어느 하나의 점을 선택하는 선택부; 및A selection unit for selecting at least one point on an elliptic curve defined by a finite body; And 상기 타원 곡선을 정의하는 타원곡선 방정식 및 특성 방정식을 이용하여 적어도 하나의 실수체 군을 산출하고,Calculating at least one real body group using an elliptic curve equation and a characteristic equation defining the elliptic curve, 상기 적어도 하나의 실수체 군을, 상기 적어도 하나의 실수체 군과 가장 가까운 거리에 있는 상기 타원 곡선상의 유한체 좌표로 매칭하며,Matching the at least one real body group with finite field coordinates on the elliptic curve at a distance closest to the at least one real body group, 상기 매칭된 타원 곡선상의 좌표를 공개키로 생성하는 공개키 생성부를 포함하는 타원 곡선 암호 방식의 공개키 생성기.An elliptic curve cryptography public key generator comprising a public key generator for generating coordinates on the matched elliptic curve as a public key. 제12항에 있어서, 상기 타원곡선 방정식은,The method of claim 12, wherein the elliptic curve equation, y2 = x3 - p*x - q(여기서, a, b, 및 c는 실수)와 상응하고, 상기 특성 방정식은, 수학식 10과 상응하며,y 2 = x 3 -p * x-q, where a, b, and c are real, and the characteristic equation corresponds to Equation 10, 상기 공개키 생성부는,The public key generation unit, 상기 특성 방정식의 해를 이용하여 적어도 하나의 실수체군의 좌표를 생성하고, 상기 적어도 하나의 실수체군의 x 좌표(xR)는 s2- 2 * xp(여기서, s는 상기 특성 방정식의 해)와 상응하고, 상기 적어도 하나의 실수체군의 y좌표(yR)는 yp + s*(xR - xp)와 상응하는 타원 곡선 암호 방식의 공개키 생성기.The x coordinate (x R) of generating at least one coordinate of the real chegun of using the solutions of the characteristic equation, and the at least one real chegun is s 2 - 2 * x p (Here, s is a solution of the characteristic equation And y-coordinate (y R ) of the at least one real object group corresponds to y p + s * (x R -x p ). s = (3xp 2 - p) / (2yp) (여기서, xp는 상기 선택된 점의 x 좌표, 및 yp는 상기 선택된 점의 y 좌표)s = (3x p 2 -p) / (2y p ), where x p is the x coordinate of the selected point and y p is the y coordinate of the selected point 제12항에 있어서, 상기 공개키 생성부는,The method of claim 12, wherein the public key generation unit, 상기 s를 이용하여, 상기 적어도 하나의 실수체 군을, 상기 적어도 하나의 실수체 군과 가장 가까운 거리에 있는 상기 타원 곡선상의 유한체 좌표로 매칭하고, 상기 타원 곡선상의 매칭된 좌표를 상기 적어도 하나의 실수체 군의 좌표로 대체하는 타원 곡선 암호 방식의 공개키 생성기.Using the s, matching the at least one real body group to finite field coordinates on the elliptic curve at a distance closest to the at least one real body group, and matching the matched coordinates on the elliptic curve to the at least one. Elliptic curve cryptographic public key generator that substitutes the coordinates of the real family of. 제12항의 공개키 생성기을 포함하는 메시지 암호화 시스템.A message encryption system comprising the public key generator of claim 12.
KR1020080112836A 2008-11-13 2008-11-13 Elliptic curve cryptography system based on real domain and method thereof KR101006358B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020080112836A KR101006358B1 (en) 2008-11-13 2008-11-13 Elliptic curve cryptography system based on real domain and method thereof

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020080112836A KR101006358B1 (en) 2008-11-13 2008-11-13 Elliptic curve cryptography system based on real domain and method thereof

Publications (2)

Publication Number Publication Date
KR20100053943A KR20100053943A (en) 2010-05-24
KR101006358B1 true KR101006358B1 (en) 2011-01-10

Family

ID=42278791

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020080112836A KR101006358B1 (en) 2008-11-13 2008-11-13 Elliptic curve cryptography system based on real domain and method thereof

Country Status (1)

Country Link
KR (1) KR101006358B1 (en)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102496583B1 (en) * 2021-09-17 2023-02-06 이정훈 Encryption device and encryption method using the same

Citations (3)

* 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
JP4067818B2 (en) * 2001-12-10 2008-03-26 富士通株式会社 Elliptic curve cryptography apparatus, elliptic curve cryptography program, and elliptic curve cryptography calculation method
KR20080055378A (en) * 2006-12-15 2008-06-19 삼성전자주식회사 Method for generating public key in elliptic curve cryptography and system for executing the method

Patent Citations (3)

* 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
JP4067818B2 (en) * 2001-12-10 2008-03-26 富士通株式会社 Elliptic curve cryptography apparatus, elliptic curve cryptography program, and elliptic curve cryptography calculation method
KR20080055378A (en) * 2006-12-15 2008-06-19 삼성전자주식회사 Method for generating public key in elliptic curve cryptography and system for executing the method

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
Elliptic Curve Cryptography - An Implementation Tutorial, Tata Elxsi Ltd, India, 2007.01.05*

Also Published As

Publication number Publication date
KR20100053943A (en) 2010-05-24

Similar Documents

Publication Publication Date Title
AU2004218638B2 (en) Use of isogenies for design of cryptosystems
US6154541A (en) Method and apparatus for a robust high-speed cryptosystem
JP4546231B2 (en) ID-based signature and encryption system and method
JPH08504962A (en) Encryption method
US11323255B2 (en) Methods and systems for encryption and homomorphic encryption systems using Geometric Algebra and Hensel codes
US20120323981A1 (en) Proxy calculation system, proxy calculation method, proxy calculation requesting apparatus, and proxy calculation program and recording medium therefor
CN111404952B (en) Transformer substation data encryption transmission method and device, computer equipment and storage medium
EP2813029A1 (en) System and method for generating and protecting cryptographic keys
Reyad Text message encoding based on elliptic curve cryptography and a mapping methodology
CN109921905B (en) Anti-quantum computation key negotiation method and system based on private key pool
CN109905229B (en) Anti-quantum computing Elgamal encryption and decryption method and system based on group asymmetric key pool
Dawahdeh et al. A new modification for menezes-vanstone elliptic curve cryptosystem
KR101233682B1 (en) Calculating apparatus and method for elliptic curve cryptography
Reyad et al. Image encryption using koblitz’s encoding and new mapping method based on elliptic curve random number generator
JP6294882B2 (en) Key storage device, key storage method, and program thereof
HS et al. Comparative study and performance analysis of encryption in RSA, ECC and Goldwasser-Micali cryptosystems
CN101567783B (en) Elliptical curve encryption and decryption method and device based on II-type Gaussian base field
KR101006358B1 (en) Elliptic curve cryptography system based on real domain and method thereof
JP2007187908A (en) Modular exponentiation calculation device and method having tolerance to side-channel attack
Barman et al. An Efficient Hybrid Elliptic Curve Cryptography System with DNA Encoding
US11616994B2 (en) Embedding information in elliptic curve base point
US11288985B2 (en) Encryption device, decryption device, encryption method, decryption method, encryption program product, and decryption program product
KR100564599B1 (en) Inverse calculation circuit, inverse calculation method, and storage medium encoded with computer-readable computer program code
CN109905236B (en) Anti-quantum computing Elgamal encryption and decryption method and system based on private key pool
KR101440680B1 (en) Homomorphic Encryption and Decryption Method using Chinese Remainder Theorem and apparatus using the same

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20131004

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20141001

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20151005

Year of fee payment: 6

LAPS Lapse due to unpaid annual fee