KR20120028432A - Calculating apparatus and method for elliptic curve cryptography - Google Patents

Calculating apparatus and method for elliptic curve cryptography Download PDF

Info

Publication number
KR20120028432A
KR20120028432A KR1020100090249A KR20100090249A KR20120028432A KR 20120028432 A KR20120028432 A KR 20120028432A KR 1020100090249 A KR1020100090249 A KR 1020100090249A KR 20100090249 A KR20100090249 A KR 20100090249A KR 20120028432 A KR20120028432 A KR 20120028432A
Authority
KR
South Korea
Prior art keywords
coordinate
scalar multiplication
elliptic curve
coordinate axis
point
Prior art date
Application number
KR1020100090249A
Other languages
Korean (ko)
Other versions
KR101233682B1 (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 KR1020100090249A priority Critical patent/KR101233682B1/en
Publication of KR20120028432A publication Critical patent/KR20120028432A/en
Application granted granted Critical
Publication of KR101233682B1 publication Critical patent/KR101233682B1/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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • G06F17/10Complex mathematical operations

Abstract

PURPOSE: An operation apparatus and a method thereof for ECC(Elliptic Curve Cryptography) are provided to reduce the number of operations and increase performance speed based on converted scalar multiplication. CONSTITUTION: Scalar multiplication about a point on an elliptic curve is set up through a first coordinate axis(310). The preset scalar multiplication is converted into a square form(320). The scalar multiplication of a square form is transformed into the form of a projective coordinate(330). The coordinate value about the first coordinate axis is calculated by using the scalar multiplication(340).

Description

타원곡선암호를 위한 연산 장치 및 방법{Calculating apparatus and method for elliptic curve cryptography}Calculating apparatus and method for elliptic curve cryptography

본 발명은 타원곡선을 이용한 암호를 위한 연산 장치 및 방법에 관한 것으로, 특히 타원곡선암호를 위해 타원곡선상에서 표현되는 점들에 대한 기하학적인 연산인 스칼라 곱셈을 처리하는 연산 장치, 방법 및 이를 기록한 기록매체에 관한 것이다.The present invention relates to a computing device and method for encryption using an elliptic curve, and more particularly, a computing device for processing a scalar multiplication, which is a geometric operation on points represented on an elliptic curve for an elliptic curve encryption, and a recording medium recording the same. It is about.

암호학은 정보를 보호하기 위한 언어학적 및 수학적 방법론을 다루는 학문으로 수학을 중심으로 컴퓨터 및 통신 등 여러 학분 분야에서 공동으로 연구, 개발되고 있다. 통상적인 암호 시스템에서 송신자가 메시지의 의미를 알 수 있는 평문을 암호화하여 송신하게 되면, 수신자는 수신된 암호문을 다시 복호화하여 평문으로 복원하게 된다. 이러한 암호화 및 복호화 과정에서 사용되는 일정한 규칙 내지 방법을 암호화 키(key)라고 한다.Cryptology is the study of linguistic and mathematical methodologies to protect information. It is jointly researched and developed in various disciplines such as computer and communication, mainly mathematics. In a typical cryptographic system, when a sender encrypts and transmits a plaintext that can know the meaning of a message, the receiver decrypts the received ciphertext again and restores the plaintext. Certain rules or methods used in the encryption and decryption process are called encryption keys.

키는 암호화 과정에서 사용되는 암호키와 복호화 과정에서 사용되는 복호키가 동일한 대칭 암호키(symmetric cipher key)와 암호키와 복호키가 다른 비대칭 암호키(asymmetric cipher key)로 구분될 수 있다. 암호 시스템의 안전성은 키의 길이 및 키의 안전한 관리에 의존하는데, 대칭 암호키 시스템에서는 암호키와 복호키가 동일하기 때문에 암호문의 작성자와 그 수신자가 키의 관리에 보다 주의하여야 할 필요가 있다. 즉, 대칭 암호키 시스템은 암호문의 작성자(송신자)와 수신자 모두가 폐쇄적인 사용자 그룹에 속하여 있는 것이 바람직하다. 그러나, 이러한 대칭 암호키 시스템은 키의 보안 유지에 어려움이 있을 뿐만 아니라, 해당 시스템 그룹에 속하는 사용자가 증가할수록 관리하여야 할 키의 개수가 급격하게 증가하게 된다는 불편함이 존재한다. The key may be classified into a symmetric cipher key having the same encryption key used in the encryption process and a decryption key used in the decryption process, and an asymmetric cipher key having a different encryption key and decryption key. The security of the cryptographic system depends on the length of the key and the secure management of the key. In a symmetric cryptographic key system, the cryptographic key and the decryption key are the same. That is, in the symmetric encryption key system, it is preferable that both the creator (sender) and the receiver of the ciphertext belong to a closed user group. However, such a symmetric cryptographic key system is not only difficult to maintain the security of the key, but also has the inconvenience that the number of keys to be managed increases rapidly as the number of users belonging to the system group increases.

이러한 한계를 보완하기 위해 등장한 암호 시스템이 비대칭 암호 시스템이다. 비대칭 암호 시스템에서 각 사용자는 두 개의 키를 부여받는다. 두 개의 키 중 하나(공개키, public key)는 공개되고, 다른 하나(비밀키, private key)는 사용자에 의해 비밀리에 관리되어야 한다. 따라서, 비대칭 암호 시스템은 공개키 암호 시스템이라고도 한다. 이러한 비대칭 암호 시스템은 암호키와 복호키가 서로 다르기 때문에 양자의 수학적 특성에 기반하여 암호화 및 복호화 과정에서 여러 단계의 산술 연산을 수행하게 된다. 그로 인해 비대칭 암호 시스템은 대칭 암호키 시스템에 비해 그 수행 속도가 상대적으로 느리다는 약점을 갖는다.A cryptographic system that emerged to overcome this limitation is an asymmetric cryptographic system. In asymmetric cryptography, each user is given two keys. One of the two keys (public key) is public and the other (private key) must be secretly managed by the user. Thus, asymmetric cryptosystems are also referred to as public key cryptosystems. Since the asymmetric encryption system has a different encryption key and decryption key, several arithmetic operations are performed in the encryption and decryption process based on the mathematical characteristics of both. As a result, the asymmetric cryptosystem has a weakness compared to the symmetric cryptographic key system.

본 발명이 해결하고자 하는 기술적 과제는 비대칭 암호 시스템에서 암호화 및 복호화 과정에 많은 연산이 필요함으로 인해 그 수행 속도가 느려지는 한계를 극복하고, 더불어 암호화 및 복호화를 위해 많은 시스템 자원이 소모됨으로써 암호화 및 복호화 시스템의 구현 환경이 제약받는 문제점을 해결하는데 있다.The technical problem to be solved by the present invention is to overcome the limitation that the performance slows down due to the need for many operations in the encryption and decryption process in the asymmetric encryption system, and also consumes a lot of system resources for encryption and decryption, so that encryption and decryption It is to solve the problem that the implementation environment of the system is restricted.

상기 기술적 과제를 해결하기 위하여, 본 발명에 따른 타원곡선암호를 위한 연산 방법은 타원곡선상의 점을 표현하는 좌표 공간 중 제 1 좌표축만을 사용하여 상기 점에 대한 스칼라 곱셈(scalar multiplication)을 설정하는 단계; 상기 설정된 스칼라 곱셈을 제곱 형태(square form)로 변환하는 단계; 상기 제곱 형태의 스칼라 곱셈을 투영 좌표(projective coordinate)의 형태로 변환하는 단계; 및 상기 투영 좌표 형태의 스칼라 곱셈을 이용하여 상기 제 1 좌표축에 대한 좌표값을 산출하는 단계를 포함한다.In order to solve the above technical problem, the operation method for the elliptic curve encryption according to the present invention is to set the scalar multiplication for the point using only the first coordinate axis of the coordinate space representing the point on the elliptic curve ; Converting the set scalar multiplication into a square form; Converting the scalar multiplication of the square form into a form of projective coordinate; And calculating a coordinate value with respect to the first coordinate axis using scalar multiplication in the form of the projection coordinate.

상기 기술적 과제를 해결하기 위하여, 본 발명에 따른 타원곡선암호를 위한 연산 방법은 제 1 좌표축에 대한 투영 좌표 형태의 스칼라 곱셈으로부터 좌표 공간상의 제 2 좌표축에 대한 좌표값을 산출하는 단계를 더 포함한다.In order to solve the above technical problem, the calculation method for the elliptic curve encryption according to the present invention further comprises the step of calculating the coordinate value for the second coordinate axis in the coordinate space from the scalar multiplication of the projection coordinate form for the first coordinate axis. .

상기 다른 기술적 과제를 해결하기 위하여, 본 발명에 따른 타원곡선암호를 위한 연산 방법은 비밀키를 입력받는 단계; 타원곡선상의 점을 표현하는 좌표 공간 중 제 1 좌표축만을 사용하여 상기 점에 대한 스칼라 곱셈을 설정하는 단계; 상기 설정된 스칼라 곱셈을 제곱 형태로 변환하고, 상기 변환된 제곱 형태의 스칼라 곱셈을 투영 좌표의 형태로 변환하며, 상기 변환된 투영 좌표 형태의 스칼라 곱셈을 이용하여 상기 제 1 좌표축에 대한 좌표값을 산출하는 단계; 상기 제 1 좌표축에 대한 투영 좌표 형태의 스칼라 곱셈으로부터 상기 좌표 공간상의 제 2 좌표축에 대한 좌표값을 산출하는 단계; 및 상기 입력받은 비밀키를 이용하여 상기 제 1 좌표축 및 제 2 좌표축에 대한 좌표값으로부터 공개키를 생성하는 단계를 포함한다. 또한, 상기 타원곡선암호를 위한 연산 방법은 생성된 공개키를 이용하여 암호화한 암호문을 수신하는 단계; 및 상기 비밀키를 이용하여 상기 수신된 암호문으로부터 평문을 복호화하는 단계를 더 포함할 수 있다.In order to solve the other technical problem, the operation method for the elliptic curve encryption according to the present invention comprises the steps of receiving a secret key; Setting a scalar multiplication for the point using only a first coordinate axis in a coordinate space representing a point on an elliptic curve; Converts the set scalar multiplication into a square form, converts the converted scalar multiplication into a form of projection coordinates, and calculates a coordinate value with respect to the first coordinate axis using scalar multiplication of the converted projection coordinate form Making; Calculating coordinate values for a second coordinate axis in the coordinate space from a scalar multiplication in the form of projection coordinates for the first coordinate axis; And generating a public key from the coordinate values for the first and second coordinate axes using the received secret key. In addition, the operation method for the elliptic curve encryption includes the steps of: receiving an encrypted cipher text using the generated public key; And decrypting the plain text from the received cipher text using the secret key.

상기 또 다른 기술적 과제를 해결하기 위하여, 본 발명에 따른 타원곡선암호를 위한 연산 방법은 소정 연산 방법을 이용하여 생성된 공개키를 수신하는 단계; 및 상기 수신된 공개키를 이용하여 평문으로부터 암호문을 생성하는 단계를 포함하고, 상기 소정 연산 방법은, 타원곡선상의 점을 표현하는 좌표 공간 중 제 1 좌표축만을 사용하여 상기 점에 대한 스칼라 곱셈을 설정하고, 상기 설정된 스칼라 곱셈을 제곱 형태로 변환하고, 상기 변환된 제곱 형태의 스칼라 곱셈을 투영 좌표의 형태로 변환하고, 상기 변환된 투영 좌표 형태의 스칼라 곱셈을 이용하여 상기 제 1 좌표축에 대한 좌표값을 산출하고, 상기 제 1 좌표축에 대한 투영 좌표 형태의 스칼라 곱셈으로부터 상기 좌표 공간상의 제 2 좌표축에 대한 좌표값을 산출하며, 상기 입력받은 비밀키를 이용하여 상기 제 1 좌표축 및 제 2 좌표축에 대한 좌표값으로부터 공개키를 생성하는 것이 바람직하다.In order to solve the another technical problem, the operation method for the elliptic curve encryption according to the present invention comprises the steps of receiving a public key generated using a predetermined operation method; And generating a cipher text from the plain text using the received public key, wherein the predetermined operation method sets a scalar multiplication for the point using only a first coordinate axis in a coordinate space representing a point on an elliptic curve. And converting the set scalar multiplication into a square form, converting the converted scalar multiplication into a form of projection coordinates, and using the scalar multiplication of the converted projected coordinate form, a coordinate value for the first coordinate axis. Calculates a coordinate value for a second coordinate axis in the coordinate space from a scalar multiplication in the form of projection coordinates with respect to the first coordinate axis, and uses the received secret key for the first and second coordinate axes. It is preferable to generate a public key from coordinate values.

또한, 이하에서는 상기 기재된 타원곡선암호를 위한 연산 방법을 컴퓨터에서 실행시키기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록매체를 제공한다.Further, hereinafter, a computer readable recording medium having recorded thereon a program for executing the calculation method for the elliptic curve cipher described above is provided.

상기 기술적 과제를 해결하기 위하여, 본 발명에 따른 타원곡선암호를 위한 연산 장치는 타원곡선상의 점을 표현하는 좌표값을 입력받는 입력부; 소정 연산 방법을 이용하여 상기 입력받은 좌표값으로부터 상기 타원곡선에 대한 스칼라 곱셈 결과값을 산출하는 연산부; 및 상기 산출된 스칼라 곱셈 결과값을 출력하는 출력부를 포함하고, 상기 소정 연산 방법은, 상기 타원곡선상의 점을 표현하는 좌표 공간 중 제 1 좌표축만을 사용하여 상기 점에 대한 스칼라 곱셈을 설정하고, 상기 설정된 스칼라 곱셈을 제곱 형태로 변환하고, 상기 제곱 형태의 스칼라 곱셈을 투영 좌표의 형태로 변환하며, 상기 투영 좌표 형태의 스칼라 곱셈을 이용하여 상기 제 1 좌표축에 대한 좌표값을 산출하는 것이 바람직하다.In order to solve the above technical problem, the computing device for the elliptic curve encryption according to the present invention comprises an input unit for receiving a coordinate value representing a point on the elliptic curve; A calculation unit for calculating a scalar multiplication result of the elliptic curve from the input coordinate value using a predetermined calculation method; And an output unit configured to output the calculated scalar multiplication result value, wherein the predetermined calculation method comprises setting a scalar multiplication of the point using only a first coordinate axis in a coordinate space representing a point on the elliptic curve, It is preferable to convert the set scalar multiplication into a square form, convert the square scalar multiplication into a projection coordinate form, and calculate a coordinate value with respect to the first coordinate axis using the scalar multiplication of the projection coordinate form.

본 발명은 변환된 스칼라 곱셈을 이용하여 타원곡선상의 점에 대한 좌표값을 산출함으로써 비대칭 암호 시스템의 암호화 및 복호화 과정에 상대적으로 적은 수의 연산이 필요하게 되고, 그로 인해 그 수행 속도가 향상되며, 더불어 암호화 및 복호화를 위해 요구되는 시스템 자원을 감소시킴으로써, 스마트 카드(smart cards)와 같이 보다 열약한 컴퓨팅 파워를 갖는 환경에서도 효과적이고 신뢰도 높은 암호화 및 복호화 시스템을 구현할 수 있다.According to the present invention, a relatively small number of operations are required for the encryption and decryption process of an asymmetric cryptographic system by calculating coordinate values for points on an elliptic curve using the transformed scalar multiplication, thereby improving the execution speed. In addition, by reducing the system resources required for encryption and decryption, it is possible to implement an effective and reliable encryption and decryption system even in an environment with weaker computing power, such as smart cards.

도 1은 공개키 암호 시스템에서 평문을 암호화하고 이를 다시 복호화하는 과정을 설명하기 위한 도면이다.
도 2는 타원곡선암호의 알고리즘을 설명하기 위해 예시한 몽고메리 래더 알고리즘(Montgomery ladder algorithm)의 의사 코드(pseudo code)이다.
도 3은 본 발명의 일 실시예에 따른 타원곡선암호를 위한 연산 방법을 도시한 흐름도이다.
도 4는 본 발명의 일 실시예에 따른 타원곡선암호를 위한 연산 방법에서 제 1 좌표축에 대한 투영 좌표 형태의 스칼라 곱셈으로부터 제 2 좌표축에 대한 좌표값을 복원하는 방법을 설명하기 위한 도면이다.
도 5는 본 발명의 일 실시예에 따른 타원곡선암호를 위한 연산 방법을 설명하기 위한 알고리즘을 예시한 의사 코드이다.
도 6은 본 발명의 다른 실시예에 따른 타원곡선암호를 위한 연산 방법에 대해 각각 암호문 송신자 및 암호문 수신자 측의 처리 과정을 설명하기 위한 도면이다.
도 7은 본 발명의 일 실시예에 따른 타원곡선암호를 위한 연산 장치를 도시한 도면이다.
1 is a view for explaining a process of encrypting a plain text and decrypting it again in a public key cryptosystem.
FIG. 2 is a pseudo code of the Montgomery ladder algorithm illustrated to explain an algorithm of an elliptic curve password.
3 is a flowchart illustrating a calculation method for an elliptic curve encryption according to an embodiment of the present invention.
4 is a diagram for describing a method of restoring coordinate values for a second coordinate axis from scalar multiplication in the form of projection coordinates for a first coordinate axis in an operation method for an elliptic curve cipher according to an embodiment of the present invention.
5 is a pseudo code illustrating an algorithm for explaining a calculation method for an elliptic curve encryption according to an embodiment of the present invention.
FIG. 6 is a diagram for describing a process of a ciphertext sender and a ciphertext receiver, respectively, for an operation method for an elliptic curve cipher according to another embodiment of the present invention.
FIG. 7 is a diagram illustrating an operation device for an elliptic curve encryption according to an embodiment of the present invention.

본 발명의 실시예들을 구체적으로 설명하기에 앞서, 본 발명의 실시예들이 구현될 수 있는 대표적인 환경인 공개키 암호 시스템에 대해 도 1을 참조하여 개괄적으로 소개하고자 한다. 도 1은 공개키 암호 시스템에서 평문을 암호화하고 이를 다시 복호화하는 과정을 설명하기 위한 도면으로서, 공개키 암호 시스템은 암호화 측을 나타내는 송신자(10), 복호화 측을 나타내는 수신자(20) 및 공개키 관리 시스템(30)을 포함한다. Before describing the embodiments of the present invention in detail, a public key cryptographic system, which is a representative environment in which embodiments of the present invention can be implemented, will be briefly described with reference to FIG. 1. 1 is a view for explaining a process of encrypting and decrypting plain text again in a public key cryptosystem, in which a public key cryptosystem includes a sender 10 representing an encryption side, a receiver 20 representing a decryption side, and a public key management. System 30.

앞서 간단히 소개하였듯이, 공개키 암호 시스템에서 각 사용자는 비밀키(41) 및 공개키(42)의 두 개의 키를 부여받는다. 공개키 암호 시스템에서 각 사용자는 자신의 비밀키만을 관리하면 되므로 키 관리의 어려움을 감소시킬 수 있다. 여기서, 키 교환시에는 공개키를 암호화키로 사용하여 일반에게 공개하게 되고, 비밀키를 이용하여 복호화한다고 가정하자. 통상적으로 공개키 암호 시스템은 상기된 바와 같은 구조를 갖는 것이 일반적이나, 전자서명시에는 반대로 이용될 수도 있다. 이하에서 도 1의 실시예에서는 수신자(20)를 기준으로 공개키와 비밀키를 설명하도록 하겠다. As briefly introduced above, in a public key cryptosystem, each user is given two keys, a secret key 41 and a public key 42. In the public key cryptosystem, each user only needs to manage his or her private key, thereby reducing the difficulty of key management. In this case, it is assumed that the public key is used as an encryption key when the key is exchanged, and the public key is decrypted using the secret key. Typically, public key cryptosystems generally have the same structure as described above, but they can also be used in reverse when signing electronically. Hereinafter, in the embodiment of FIG. 1, a public key and a private key will be described based on the receiver 20.

공개키 관리 시스템(30)은 공개키 디렉터리라고도 불리며, 공개키 암호 시스템을 이용하는 사용자는 이러한 관리 시스템(30)에 자유롭게 접근하여 다른 사용자의 공개키를 열람할 수 있다. 한편, 공개키 관리 시스템(30)의 물리적인 위치는 구현의 편의에 따라 송신자(10)나 수신자(20) 측에 위치할 수도 있고, 도 1에 도시된 바와 같이 별도의 공간에 위치할 수도 있다. 도 1에서 공개키 관리 시스템(30)에는 다수의 공개키들이 저장될 수 있으며, 수신자(20)의 비밀키(41)에 대응하는 공개키(42) 역시 저장되어 있음을 볼 수 있다.The public key management system 30 is also called a public key directory, and a user using the public key cryptosystem can freely access the management system 30 to read other users' public keys. On the other hand, the physical location of the public key management system 30 may be located on the sender 10 or the receiver 20 side for convenience of implementation, or may be located in a separate space as shown in FIG. . In FIG. 1, a plurality of public keys may be stored in the public key management system 30, and a public key 42 corresponding to the secret key 41 of the receiver 20 may also be stored.

우선, 송신자(10)는 공개키 관리 시스템(30)에 접근하여 수신자(20)의 공개키(42)를 이용하여 평문을 암호화함으로써 암호문을 생성한다. 이렇게 생성된 암호문은 수신자(20)에게 전달된다. 다음으로 수신자(20)는 수신한 암호문을 자신의 비밀키(41)를 이용하여 복호화한다. 즉, 수신자(20)는 암호문을 해독하여 평문을 복원한다.First, the sender 10 accesses the public key management system 30 to generate a cipher text by encrypting the plain text using the public key 42 of the receiver 20. The cipher text thus generated is transmitted to the receiver 20. Next, the receiver 20 decrypts the received cipher text using its secret key 41. That is, the receiver 20 decrypts the cipher text and restores the plain text.

이상의 암호 시스템의 구조에서 비록 공개키 관리 시스템(30)에는 다양한 사용자의 공개키들이 저장되어 있고, 이를 이용하여 누구나 자유롭게 암호문을 생성할 수 있지만, 생성된 암호문을 평문으로 복호화할 수 있는 것은 해당 암호화 과정에 사용된 공개키에 대응하는 비밀키를 소유한 사용자만이 가능하다. 예를 들어, 도 1의 예에서 수신자(20) 이외의 제 3자가 송신자(10)가 생성한 암호문을 중간에서 가로채더라도 수신자(20) 고유의 비밀키가 없는 이상 암호문을 복호화할 수 없다.Although the public key management system 30 stores public keys of various users in the structure of the cipher system above, anyone can freely generate a cipher text using the public key management system. However, the cipher text can be decrypted as plain text. Only the user who owns the private key corresponding to the public key used in the process is allowed. For example, in the example of FIG. 1, even if a third party other than the receiver 20 intercepts the cipher text generated by the sender 10 in the middle, the cipher text cannot be decrypted unless there is a secret key unique to the receiver 20.

이상과 같이 공개키 암호 시스템에서 각 사용자에게 부여되는 공개키와 비밀키에는 수학적 연관이 있기 때문에 암호화 및 복화화가 가능하다. 즉, 공개키 암호 방식은 그 설계자만이 알고 있는 특정한 종류의 정보 없이는 매우 풀기 어려운 수학적 문제를 바탕으로 만들어진다. 키를 만드는 사람은 이 문제(공개키)를 일반에 공개하고 특정한 정보(비밀키)는 자신만이 알 수 있도록 숨긴다. 그러면 어떤 사람이건 이 문제를 이용해 메시지를 암호화하더라도 키를 만든 사람만이 이 문제를 풀어 원래의 메시지를 해독할 수 있다.As described above, since the public key and the private key granted to each user in the public key cryptosystem are mathematically related, encryption and decryption are possible. In other words, public key cryptography is based on mathematical problems that are very difficult to solve without a specific kind of information that only the designer knows. The creator of the key exposes the problem (public key) to the public and hides certain information (secret key) so that only he or she can know it. Then, no matter whoever uses the problem to encrypt the message, only the creator of the key can solve the problem and decrypt the original message.

본 발명의 실시예들은 이러한 공개키 암호 시스템에 기반하면서도 특히 이러한 수학적 문제에 타원곡선암호라는 방식을 채용하고 있다. 타원곡선암호(Elliptic Curve Cryptography, ECC)는 타원곡선 이론에 기반한 공개키 암호 방식의 일종으로, 유한체(finite field)에서 해법이 어렵다고 알려진 타원곡선 이산로그문제(Elliptic Curve Discrete Logarithm Problem, ECDLP)를 바탕으로 만들어진 암호이다. 타원곡선 이산로그문제는 타원곡선상의 임의의 한 점 P에 정수 k를 곱한 값이 Q=kP일 때, 점 Q와 P를 알고 있더라도 정수 k를 계산하기 어려움을 의미한다. 따라서, 타원곡선암호 시스템의 핵심 연산은 스칼라 곱셈(scalar multiplication), 즉 Q=kP를 구하는 것이며, 이러한 스칼라 곱셈은 타원곡선암호 시스템의 안전성과 효율성에 가장 큰 영향을 준다.Embodiments of the present invention are based on such a public key cryptographic system, but employ a method called elliptic curve cryptography, particularly for this mathematical problem. Elliptic Curve Cryptography (ECC) is a type of public key cryptography based on elliptic curve theory that solves the Elliptic Curve Discrete Logarithm Problem (ECDLP), which is known to be difficult to solve in finite fields. The password is based on. The elliptic curve discrete log problem means that when Q = kP is multiplied by an arbitrary point P on an elliptic curve, it is difficult to calculate the integer k even if the points Q and P are known. Therefore, the key operation of the elliptic curve cryptosystem is to find the scalar multiplication, that is, Q = kP, and this scalar multiplication has the greatest impact on the safety and efficiency of the elliptic curve cryptosystem.

공간 상에서 타원곡선은 (x, y)의 점들로 구성되어지고, x 및 y 좌표간의 관계로 표현된 타원곡선의 형태를 갖는다. 스칼라 곱셈을 연산은 동일한 두 점의 합을 구하는 더블링(doubling) 연산과 서로 다른 두 점의 합을 구하는 애디션(addition) 연산을 반복적으로 이용함으로써 연산이 수행된다. 그런데, 타원곡선 스칼라 곱셈에 사용되는 타원곡선 더블링(ECDBL) 연산과 타원곡선 애디션(ECADD) 연산은 키 비트(key bit)에 따라 실행되는 연산에 차이가 생기기 때문에 단순전력분석(Simple Power Analysis, SPA)에 의해 분석이 많이 진행되었다. The elliptic curve in space is composed of points of (x, y) and has the form of an elliptic curve represented by the relationship between the x and y coordinates. The scalar multiplication operation is performed by iteratively using a doubling operation that sums two identical points and an addition operation that sums two different points. However, the elliptic curve doubling (ECDBL) operation and the elliptic curve addition (ECADD) operation used in the elliptic curve scalar multiplication have a difference in the operation performed according to the key bit. Many analyzes were performed by SPA).

타원곡선 스칼라 곱셈 알고리즘에 대한 단순전력분석이 진행되면서 이를 방어하기 위한 많은 대응방법들이 제안되었다. 이러한 대응방법들 중, 몽고메리 알고리즘(Montgomery algorithm)은 몽고메리에 의해서 처음으로 제안된 알고리즘으로 몽고메리 폼(Montgomery form) 상에서의 스칼라 곱셈 연산을 x 좌표만을 사용하여 연산함으로서 연산을 빠르게 할 수 있는 방법이다. 그 이후, Lopez and Dahab과 Izu and Takagi등에 의해서 일반적인 바이어슈트라스 폼(Weierstrass form)에서의 x 좌표만을 이용한 몽고메리 래더 알고리즘(Montgomery ladder algorithm)의 연산식이 제안되었다. 몽고메리 래더 알고리즘은 x 좌표만을 사용함으로써 타원곡선에서의 스칼라 곱셈을 빠르고 효율적으로 할 수 있고, 포인트(point) 압축면에서도 매우 효율적인 방법으로 알려져 있다.As simple power analysis of elliptic curve scalar multiplication algorithm proceeds, many countermeasures have been proposed to defend against this. Among these countermeasures, the Montgomery algorithm is the first algorithm proposed by Montgomery, and it is a method that can speed up operations by performing scalar multiplication operations on Montgomery forms using only x coordinates. Since then, Lopez and Dahab and Izu and Takagi have proposed equations for the Montgomery ladder algorithm using only x-coordinates in the general Weierstrass form. The Montgomery ladder algorithm is known to be able to perform fast and efficient scalar multiplication on elliptic curves by using only x coordinates, and is known to be very efficient in terms of point compression.

도 2는 타원곡선암호의 알고리즘을 설명하기 위해 예시한 몽고메리 래더 알고리즘의 의사 코드(pseudo code)로서, 다음과 같은 단계로 수행된다.FIG. 2 is a pseudo code of the Montgomery ladder algorithm exemplified for explaining an algorithm of an elliptic curve password, which is performed in the following steps.

우선 입력 값으로 타원곡선상의 한 점 P와 상수(스칼라를 의미한다.) d를 입력받는다. 도 2의 몽고메리 래더 알고리즘은 매 루프(loop)마다 타원곡선 더블링(ECDBL) 연산과 타원곡선 애디션(ECADD) 연산이 반복적으로 수행된다. 따라서, 몽고메리 래더 알고리즘은 스칼라 곱셈의 매 루프마다 동일한 연산을 수행하므로 단순전력분석에 안전할 수 있다. 이러한 몽고메리 래더 알고리즘은 바이어슈트라스 폼에서 점 P, Q와 P-Q 세 점의 X 좌표만을 이용하여 P+Q의 x 좌표를 구할 수 있다는 특징이 있다.First, input a point P on the elliptic curve and a constant d (scalar). In the Montgomery ladder algorithm of FIG. 2, an elliptic curve doubling (ECDBL) operation and an elliptic curve addition (ECADD) operation are repeatedly performed in each loop. Therefore, the Montgomery ladder algorithm performs the same operation every loop of scalar multiplication and thus may be safe for simple power analysis. The Montgomery ladder algorithm is characterized in that the x coordinate of P + Q can be obtained using only the X coordinates of three points P, Q and P-Q in the Bayerstrass form.

그러나, 이러한 타원곡선 스칼라 곱셈을 위해 이상에서 제안된 다양한 방법들 역시 많은 연산이 필요함으로 인해 수행 속도가 느려지고, 과도한 시스템 자원을 요구한다는 문제점이 여전히 내재되어 있다. 따라서, 본 발명의 실시예들은 스칼라 연산에 필요한 연산 수와 각각의 연산에 요구되는 자원을 줄일 수 있는 방법을 제안하고자 한다. 이하에서 도면을 참조하여 본 발명의 다양한 실시예들을 상세하게 설명한다.However, the various methods proposed above for the elliptic curve scalar multiplication also require a lot of calculations, resulting in slow performance and excessive system resources. Accordingly, embodiments of the present invention propose a method capable of reducing the number of operations required for a scalar operation and the resources required for each operation. Hereinafter, various embodiments of the present invention will be described in detail with reference to the accompanying drawings.

도 3은 본 발명의 일 실시예에 따른 타원곡선암호를 위한 연산 방법을 도시한 흐름도이다. 설명의 편의를 위해 이하의 본 발명의 실시예들은 타원곡선 함수로서 자코비 4차 형태(Jacobi quartic form)의 타원곡선을 예시하고 있다. 자코비 4차 형태의 타원곡선은 x의 차수가 4차인 다음의 수학식 1과 같이 표현될 수 있으며, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자는 이러한 자코비 4차 타원곡선 이외에 이에 상응하는 다양한 타원곡선이 본 발명의 기술적 사상을 구현하는데 활용될 수 있음을 알 수 있다.3 is a flowchart illustrating a calculation method for an elliptic curve encryption according to an embodiment of the present invention. For convenience of description, the following embodiments of the present invention illustrate an elliptic curve of Jacobi quartic form as an elliptic curve function. The elliptic curve of the Jacobi fourth order can be expressed as Equation 1 below, where the degree of x is the fourth order, and a person having ordinary knowledge in the art to which the present invention pertains has various equivalents in addition to the Jacobi fourth elliptic curve. It can be seen that the elliptic curve can be used to implement the technical idea of the present invention.

Figure pat00001
Figure pat00001

즉,

Figure pat00002
이고 소수 p를 선택하였다고 가정하면, 유한체 Fp 상의 자코비 4차 타원곡선은 상기된 수학식 1과 같이 정의될 수 있다. 이 타원곡선 위의 점
Figure pat00003
,
Figure pat00004
Figure pat00005
과 두 점의 차가 다음의 수학식 2와 같이 유지되면 이하에서 소개될 수학식 3 내지 수학식 5를 만족한다.In other words,
Figure pat00002
Assuming a select small number p, the finite field F p The Jacobian fourth-order elliptic curve of the image may be defined as in Equation 1 above. A point on this elliptic curve
Figure pat00003
,
Figure pat00004
And
Figure pat00005
If the difference between and is maintained as in Equation 2 below, Equations 3 to 5 described below are satisfied.

Figure pat00006
Figure pat00006

특히 수학식 2는 몽고메리 래더 알고리즘에 관한 도 2의 알고리즘 역시 만족하는 것을 나타내고 있으며, 매 루프(loop)마다 두 개의 점의 차는 일정한 값 P를 유지한다.In particular, Equation 2 indicates that the algorithm of FIG. 2 regarding the Montgomery ladder algorithm is also satisfied, and the difference between two points in each loop maintains a constant value P.

이상의 내용에 기초하여 도 3을 순서대로 설명하면 다음과 같다.Referring to FIG. 3 in order based on the above contents, it is as follows.

310 단계에서 타원곡선상의 점을 표현하는 좌표 공간 중 제 1 좌표축만을 사용하여 상기 점에 대한 스칼라 곱셈을 설정한다. 본 발명의 실시예에서는 자코비 4차 타원곡선에서 몽고메리 래더 알고리즘을 적용함에 있어서, x2 좌표만을 이용하여 스칼라 곱셈 연산을 수행한다. 즉, (x, y)의 2차원 좌표 공간에서 하나의 좌표축인 x 좌표축의 좌표값만을 이용하게 된다.In step 310, a scalar multiplication is set for the point using only the first coordinate axis in the coordinate space representing the point on the elliptic curve. In the embodiment of the present invention, in applying the Montgomery ladder algorithm in the Jacobi fourth order elliptic curve, a scalar multiplication operation is performed using only x 2 coordinates. That is, only the coordinate value of the x coordinate axis which is one coordinate axis in the two-dimensional coordinate space of (x, y) is used.

보다 구체적으로 스칼라 곱셈에서 활용되는 애디션 연산과 더블링 연산은 각각 다음의 수학식 3과 같이 정의된다.More specifically, the addition operation and the doubling operation used in scalar multiplication are defined as in Equation 3 below.

Figure pat00007
Figure pat00007

320 단계에서는 310 단계를 통해 설정된 스칼라 곱셈을 제곱 형태(square form)로 변환한다. 즉, 상기 수학식 3을 x 좌표의 제곱에 관한 식으로 정리하면 다음의 수학식 4와 같다.In step 320, the scalar multiplication set in step 310 is converted into a square form. That is, Equation 3 can be summarized as Equation 4 below with respect to the square of the x coordinate.

Figure pat00008
Figure pat00008

이러한 변환을 통해 x2 좌표를 이용하여 스칼라 곱셈 연산의 주요 연산인 애디션 연산과 더블링 연산을 표현할 수 있게 되었다. 이와 같이 x2 좌표를 이용한 표현 방법을 사용할 경우 기존의 x 좌표를 이용한 스칼라 곱셈 연산보다 제곱 연산이 줄어드는 효과를 얻을 수 있다. 타원곡선에서 스칼라 곱셈 과정에서 두 점의 합을 계산하기 위해서는 이상의 수학식 3 내지 수학식 4에서 볼 수 있듯이 곱셈, 나눗셈 및 덧셈 연산이 필요하다. 이 중에서 가장 많은 시간과 자원이 소모되는 연산은 나눗셈 연산에 해당한다. 왜냐하면 이러한 나눗셈 연산에는 역원(inverse) 연산이 포함되기 때문이다. 따라서, 타원곡선암호 방법에서 스칼라 곱셈의 성능을 향상시키기 위해서는 연산의 효율을 위해 이러한 역원 연산을 가능한 배제시킬 필요가 있다.Through this transformation, it is possible to express addition and doubling operations, which are major operations of scalar multiplication operations, using x 2 coordinates. As such, when the expression method using the x 2 coordinate is used, the square operation is reduced compared to the scalar multiplication using the x coordinate. In order to calculate the sum of two points in the scalar multiplication process in an elliptic curve, multiplication, division and addition operations are required as shown in Equations 3 to 4 above. Among these, the operation that consumes the most time and resources corresponds to the division operation. This is because these division operations include inverse operations. Therefore, in order to improve the performance of scalar multiplication in the elliptic curve cryptography method, it is necessary to exclude such inverse arithmetic operation as much as possible for the efficiency of the computation.

330 단계에서는 320 단계를 통해 변환된 제곱 형태의 스칼라 곱셈을

Figure pat00009
의 투영 좌표(projective coordinate)의 형태로 변환한다. 이러한 투영 좌표 변환은 나눗셈 연산(역원 연산)을 소거시키는 역할을 한다. 따라서, 상기 수학식 4는 투영 좌표계
Figure pat00010
에 의해 다음의 수학식 5와 같이 표현될 수 있다.In step 330, the scalar multiplication of the square form transformed in step 320 is performed.
Figure pat00009
Convert to the form of projective coordinates. This projection coordinate transformation serves to cancel the division operation (inverse operation). Therefore, Equation 4 is a projection coordinate system
Figure pat00010
It can be expressed by the following equation (5).

Figure pat00011
Figure pat00011

이 때, 타원곡선 애디션 연산

Figure pat00012
의 연산량은 '4M+2S'로 표현될 수 있으며, 타원곡선 더블링 연산
Figure pat00013
의 연산량은 '2M+2S+1C'로 표현될 수 있다. 여기서, M은 곱셈(multiplication)을 의미하고, S는 제곱(square)을 의미하며, C는 상수(constant)를 의미한다.At this time, elliptic curve addition calculation
Figure pat00012
Can be expressed as '4M + 2S' and elliptic curve doubling operation
Figure pat00013
May be expressed as '2M + 2S + 1C'. Here, M means multiplication, S means square, and C means constant.

340 단계에서는 330 단계를 통해 변환된 투영 좌표 형태의 스칼라 곱셈을 이용하여 제 1 좌표축에 대한 좌표값을 산출한다. 즉, 340 단계는 kP의 x 좌표의 제곱값을 산출한다.In operation 340, a coordinate value of the first coordinate axis is calculated using scalar multiplication of the converted projection coordinates in operation 330. That is, step 340 calculates the square value of the x coordinate of kP.

이상에서 기술한 310 단계 내지 340 단계는 설정된 스칼라 곱셈을 보다 적은 연산을 통해 수행 가능하도록 변환하고, 그 변환식에 따른 연산 결과를 산출하는 과정에 해당하므로, 전자적 형태의 정보 및 수학식을 처리할 수 있는 처리기(processor) 및 이러한 연산에 필요한 기억공간(memory)을 통해 구현될 수 있으며, 필요에 따라서는 처리기와 기억공간 간의 데이터 처리를 적절하게 제어할 수 있는 제어기(controller)가 활용될 수도 있을 것이다. 이러한 처리기, 기억공간 및 제어기는 본 발명이 속하는 기술분야의 활용 환경이나 동작 환경을 고려하여 통상의 기술자에 의해 적절하게 선택될 수 있을 것이다. 나아가, 이러한 스칼라 곱셈의 설정 및 변환 과정에는 이상에서 예시된 하드웨어들을 제어하기 위한 부가적인 소프트웨어 코드(code)도 활용될 수 있을 것이다.Steps 310 to 340 described above correspond to a process of converting the set scalar multiplication to be performed through fewer operations and calculating a calculation result according to the conversion formula, so that information and mathematical expressions in electronic form can be processed. It can be implemented through a processor and a memory required for such an operation, and a controller capable of appropriately controlling data processing between the processor and the storage space may be utilized as necessary. . Such a processor, a storage space, and a controller may be appropriately selected by those skilled in the art in consideration of the utilization environment or operating environment of the technical field to which the present invention belongs. Furthermore, additional software code for controlling the hardware exemplified above may be utilized in the process of setting and converting the scalar multiplication.

한편, 350 단계에서는 상기된 과정에 이어 y 좌표를 복원하는 과정을 기술하고 있는 것으로 이러한 350 단계는 추가적으로 수행될 수 있다. 이상의 310 단계 내지 340 단계를 통해 본 발명의 실시예는 제안된 스칼라 곱셈을 통해 kP의 x 좌표의 제곱값을 얻을 수 있다. 그런데, 타원곡선암호 시스템에서는 암호학적으로 x 좌표뿐만 아니라, y 좌표의 값이 필요하기 때문에 이를 복원할 필요가 있다.Meanwhile, step 350 describes a process of restoring the y coordinate after the above-described process, and step 350 may be additionally performed. Through the above steps 310 to 340, the embodiment of the present invention can obtain the square value of the x coordinate of kP through the proposed scalar multiplication. However, in the elliptic curve cryptography system, since not only the x coordinate but also the y coordinate value is needed, it is necessary to restore it.

따라서, 350 단계에서는 제 1 좌표축에 대한 투영 좌표 형태의 스칼라 곱셈으로부터 좌표 공간상의 제 2 좌표축에 대한 좌표값을 산출한다. 즉, 제 1 좌표축인 x 축에 대한 스칼라 곱셈으로부터 제 2 좌표축인 y 축에 대한 좌표값을 산출한다. 보다 구체적으로 y 좌표값을 복원하기 위해서 다음의 수학식 6이 사용된다.Therefore, in operation 350, a coordinate value for the second coordinate axis in the coordinate space is calculated from a scalar multiplication in the form of projection coordinates for the first coordinate axis. In other words, a coordinate value for the y axis that is the second coordinate axis is calculated from the scalar multiplication for the x axis that is the first coordinate axis. More specifically, the following equation (6) is used to restore the y coordinate value.

Figure pat00014
Figure pat00014

수학식 6은 y 좌표를 복원하는 데 필요한 연산량을 줄이기 위해 도입된 것으로,

Figure pat00015
의 연산량은 '4M+4S'이다.Equation 6 is introduced to reduce the amount of computation required to restore the y coordinate,
Figure pat00015
The computation amount of is '4M + 4S'.

이제 도 4를 참조하여 y 좌표를 복원하는 방법이 제시된다. 도 4는 본 발명의 일 실시예에 따른 타원곡선암호를 위한 연산 방법에서 제 1 좌표축에 대한 투영 좌표 형태의 스칼라 곱셈으로부터 제 2 좌표축에 대한 좌표값을 복원하는 방법을 설명하기 위한 도면이다.A method of restoring y coordinates is now presented with reference to FIG. 4. 4 is a diagram for describing a method of restoring coordinate values for a second coordinate axis from scalar multiplication in the form of projection coordinates for a first coordinate axis in an operation method for an elliptic curve cipher according to an embodiment of the present invention.

도 4에서도 역시 자코비 4차 타원곡선을 예시하고 있으며, 타원곡선 상의 점

Figure pat00016
,
Figure pat00017
Figure pat00018
과 두 점의 차
Figure pat00019
는 일정한 값으로 유지된다. 즉, 타원곡선상에 위치한 2개의 점들의 차이가 P로서 유지되는 특징을 갖는다.Figure 4 also illustrates the Jacobian fourth elliptic curve, the point on the elliptic curve
Figure pat00016
,
Figure pat00017
And
Figure pat00018
And the difference between two points
Figure pat00019
Is kept constant. That is, the difference between the two points located on the elliptic curve is maintained as P.

도 4를 참조하면, 우선 몽고메리 래더 알고리즘에서 i=1일 때의 루프 종료 후, Q[0]=((k-k0)/2)P이고, Q[1]=((k-k0)/2)P+P 를 얻을 수 있다.Referring to FIG. 4, first, after the end of the loop when i = 1 in the Montgomery ladder algorithm, Q [0] = ((kk 0 ) / 2) P, and Q [1] = ((kk 0 ) / 2) You can get P + P.

그런 다음,

Figure pat00020
를 이용하여 Q[0], Q[1] 및 -P=(-x,y)로부터 Q[0]-P를 산출한다. 이어서,
Figure pat00021
를 이용하여 Q[0]-P, Q[1] 및 2P로부터 2Q[0]=(k-k0)P를 산출하고, Q[0], Q[1] 및 P로부터 2Q[0]+P=(k-k0)P+P를 각각 산출한다.after that,
Figure pat00020
Calculate Q [0] -P from Q [0], Q [1] and -P = (-x, y) using. next,
Figure pat00021
Calculate 2Q [0] = (kk 0 ) P from Q [0] -P, Q [1] and 2P using 2Q [0] + P = from Q [0], Q [1] and P Compute (kk 0 ) P + P respectively.

그 결과, kP는 다음과 같이 산출된다. 만약 k0=0(마지막 비트가 0임을 의미한다.)이라면 2Q[0]=kP-k0P 로서 y 좌표를 복원하고, 만약 k0=1(마지막 비트가 1임을 의미한다.)이라면 2Q[0]=kP-k0P+P 로서 y 좌표를 복원한다.As a result, kP is calculated as follows. If k 0 = 0 (which means the last bit is 0), then restore the y coordinate as 2Q [0] = kP-k 0 P; if k 0 = 1 (which means the last bit is 1), 2Q. [0] = kP-k 0 Restore the y coordinate as P + P.

이러한 복원 절차를 통해 y 좌표를 산출하는 방법은 다음의 수학식 7과 같이 표현된다.The method of calculating the y coordinate through this restoration procedure is expressed by Equation 7 below.

Figure pat00022
Figure pat00022

상기 수학식 7의 연산량은 '1I+4M'과 같이 표현될 수 있다. 여기서 I는 역원(inverse)를 의미한다.The calculation amount of Equation 7 may be expressed as '1I + 4M'. Where I stands for inverse.

도 5는 본 발명의 일 실시예에 따른 타원곡선암호를 위한 연산 방법을 설명하기 위한 알고리즘을 예시한 의사 코드로서, 제곱 형태 및 투영 좌표의 형태로 변환된 스칼라 곱셈을 이용하여 타원곡선상의 점에 대한 x 좌표값을 산출하고,

Figure pat00023
,
Figure pat00024
Figure pat00025
를 사용하여 y 좌표를 복원하는 본 발명의 실시예를 전체적으로 도시하고 있다.FIG. 5 is a pseudo code illustrating an algorithm for explaining an operation method for an elliptic curve cipher according to an embodiment of the present invention, wherein the scalar multiplication transformed into a square form and a projection coordinate form is applied to a point on an elliptic curve. Compute the x coordinate value for
Figure pat00023
,
Figure pat00024
And
Figure pat00025
The embodiment of the present invention for restoring the y coordinate using is illustrated as a whole.

도 5에서 본 발명의 예시 알고리즘은 타원곡선상의 점 P와 스칼라 d를 입력받는다. 이제 본 알고리즘은 for 구문의 루프를 통해 각각 x 좌표의 제곱값에 대한 타원곡선 더블링 연산(

Figure pat00026
)과 타원곡선 애디션 연산(
Figure pat00027
)을 수행한다. 여기서, 타원곡선 애디션 연산과 타원곡선 더블링 연산은 각각 다른 저장공간을 활용하여 각각 다른 점들에 대한 연산을 수행하므로 병렬적으로 수행될 수 있다.In FIG. 5, the exemplary algorithm of the present invention receives a point P and a scalar d on an elliptic curve. The algorithm now uses an elliptic curve doubling operation on the square of the x coordinate,
Figure pat00026
) And elliptic curve addition operations (
Figure pat00027
). Here, the elliptic curve addition operation and the elliptic curve doubling operation may be performed in parallel because each operation is performed on different points using different storage spaces.

이어서 도 5의 알고리즘은 line 8, 9를 통해 ECADD 연산이 (x,z)의 값을 산출하므로 '4M'의 연산량을 갖는다. 마지막으로 ECRE(x, y) 연산을 통해 y 좌표를 산출한다.Subsequently, the algorithm of FIG. 5 has a computation amount of '4M' because the ECADD operation yields a value of (x, z) through lines 8 and 9. Finally, we compute the y coordinates using the ECRE (x, y) operation.

상기된 본 발명의 실시예들에 따르면 제곱 형태 및 투영 좌표의 형태로 변환된 스칼라 곱셈을 이용하여 타원곡선상의 점에 대한 좌표값을 산출함으로써 비대칭 암호 시스템의 암호화 및 복호화 과정에 상대적으로 적은 수의 연산이 필요하게 되고, 그로 인해 그 수행 속도가 향상된다. 더불어 암호화 및 복호화를 위해 요구되는 시스템 자원을 감소시킴으로써, 낮은 컴퓨팅 파워를 갖는 환경에서도 효과적이고 신뢰도 높은 암호화 및 복호화 시스템을 구현하는 것이 가능하다.According to the embodiments of the present invention described above, by using a scalar multiplication transformed into a square form and a projection coordinate form, a coordinate value for a point on an elliptic curve is calculated so that a relatively small number of encryption and decryption processes of an asymmetric encryption system are performed. Operation is required, which speeds up its execution. In addition, by reducing the system resources required for encryption and decryption, it is possible to implement an effective and reliable encryption and decryption system even in an environment with low computing power.

이렇게 개선된 본 발명의 실시예들에서 제안하는 타원곡선암호를 위한 연산 방법을 기존에 알려진 연산 방법과 비교하면 다음과 같다.Comparing the operation method for the elliptic curve encryption proposed in the improved embodiments of the present invention with the known operation method as follows.

Figure pat00028
Figure pat00028

상기 표 1에서 본 발명의 실시예에서 제안하고 있는 타원곡선 애디션 연산(

Figure pat00029
)을 수행하기 위해 필요공간(데이터 저장을 위한 레지스터를 의미한다.)이 2로 감소하였고, 연산량도 감소함으로 인해 연산 속도가 향상될 수 있음을 알 수 있다.Elliptic curve addition calculation proposed in the embodiment of the present invention in Table 1
Figure pat00029
The required space (meaning a register for storing data) is reduced to 2, and the computation speed can be improved by reducing the amount of computation.

Figure pat00030
Figure pat00030

이어서, 상기 표 2에서도 본 발명의 실시예에서 제안하고 있는 타원곡선 더블링 연산(

Figure pat00031
)을 수행하기 위해 필요공간(데이터 저장을 위한 레지스터를 의미한다.)이 2로 감소하였고, 연산량도 감소함으로 인해 연산 속도가 향상될 수 있음을 알 수 있다.Subsequently, in Table 2, an elliptic curve doubling operation proposed in the embodiment of the present invention (
Figure pat00031
The required space (meaning a register for storing data) is reduced to 2, and the computation speed can be improved by reducing the amount of computation.

이러한 필요공간의 감소는 앞서 설명한 도 5에 예시된 알고리즘을 참조하면 보다 분명히 확인할 수 있다. 즉, 도 4에서 타원곡선 애디션 연산은 각각 Q[0], Q[1]을 저장하기 위한 레지스터(register)를 사용하게 되고, 타원곡선 더블링 연산은 각각 Q[0], Q[2]을 저장하기 위한 레지스터(register)를 사용하게 된다.This reduction in required space can be more clearly seen with reference to the algorithm illustrated in FIG. 5 described above. That is, in FIG. 4, the elliptic curve addition operation uses registers for storing Q [0] and Q [1], respectively, and the elliptic curve doubling operation uses Q [0] and Q [2], respectively. We will use register to save.

이제 이상에서 제안한 타원곡선암호를 위한 연산 방법을 활용하여 실질적인 공개키 암호 시스템에 적용하는 실시예들을 제안하고자 한다.Now, an embodiment of applying to a practical public key cryptosystem by using the operation method for elliptic curve cryptography proposed above is proposed.

도 6은 본 발명의 다른 실시예에 따른 타원곡선암호를 위한 연산 방법에 대해 각각 암호문 송신자 및 암호문 수신자 측의 처리 과정을 설명하기 위한 도면으로, 시간 순서에 따라 암호화 및 복호화 과정에서 이상에서 제안된 스칼라 곱셈 연산이 활용되는 방법을 도시하고 있다.FIG. 6 is a diagram for describing a process of a ciphertext sender and a ciphertext receiver, respectively, for an operation method for an elliptic curve cipher according to another embodiment of the present invention. It illustrates how the scalar multiplication operation is utilized.

수신자(20)의 측면에서의 활용 과정은 다음과 같다. 우선, 21 단계에서 수신자(20)는 비밀키를 입력받는다. 이러한 입력은 수신자(20)가 직접 입력할 수도 있으며, 필요에 따라서는 수신자(20)의 암호 시스템에서 자동으로 생성할 수도 있을 것이다.The utilization process in terms of the receiver 20 is as follows. First, in step 21, the receiver 20 receives a secret key. This input may be directly input by the receiver 20, or may be automatically generated by the encryption system of the receiver 20 as necessary.

다음으로 22 단계에서는 변환된 스칼라 곱셈을 이용하여 타원곡선상의 점에 대한 제 1 좌표축 및 제 2 좌표축에 대한 좌표값을 산출한다. 여기서 변환된 스칼라 곱셈이란, 앞서 설명한 제곱 형태의 변환 및 투영 좌표의 형태로 변환된 스칼라 곱셈을 의미한다. 즉, 22 단계는 본 발명의 실시예들을 통해 제안한 스칼라 곱셈을 이용하여 x, y 좌표값을 산출한다.Next, in step 22, coordinate values for the first and second coordinate axes of the points on the elliptic curve are calculated using the transformed scalar multiplication. Herein, the transformed scalar multiplication means the scalar multiplication transformed into the above-described square form and projection coordinates. That is, step 22 calculates x and y coordinate values by using a scalar multiplication proposed through embodiments of the present invention.

23 단계에서 수신자(20)는 21 단계를 통해 입력받은 비밀키를 이용하여 22 단계를 통해 산출한 제 1 좌표축 및 제 2 좌표축에 대한 좌표값으로부터 공개키를 생성한다. 이렇게 생성된 공개키는 앞서 도 1을 통해 설명한 공개키 관리 시스템에 등록될 수 있으며, 이후에 암호문을 작성하고자 하는 송신자(10)에 의해 열람될 수 있다.In step 23, the receiver 20 generates a public key from coordinate values for the first and second coordinate axes calculated in step 22 using the secret key input in step 21. The generated public key may be registered in the public key management system described above with reference to FIG. 1, and then may be viewed by the sender 10 who wants to create a cipher text.

이제, 송신자(10)의 측면으로 넘어오면, 송신자(10)는 11 단계를 통해 수신자(20)가 생성한 공개키를 획득(공개키 열람을 의미한다.)한다. 다음으로 12 단계에서 송신자(10)는 이러한 공개키를 이용하여 평문으로부터 암호문을 생성한다. 이렇게 생성된 암호문은 수신자(20)의 비밀키로만 복원이 가능하며, 설사 제 3자에 의해 획득되더라도 복호화가 불가능하다.Now, when it comes to the side of the sender 10, the sender 10 obtains the public key generated by the receiver 20 in step 11 (meaning public key reading). Next, in step 12, the sender 10 generates a cipher text from the plain text using this public key. The generated cipher text can be restored only by the secret key of the receiver 20, and even if obtained by a third party, decryption is impossible.

다시 수신자(20)의 측면으로 돌아오면, 수신자(20)는 24 단계에서 송신자(10)에 의해 암호화된 암호문을 수신한다. 마지막으로 수신자(20)는 25 단계에서 자신의 비밀키를 이용하여 암호문으로부터 평문을 복호화한다.Returning to the side of the receiver 20 again, the receiver 20 receives the encrypted text encrypted by the sender 10 in step 24. Finally, the receiver 20 decrypts the plain text from the cipher text using its private key in step 25.

상기된 본 발명의 다른 실시예에 따르면 공개키 암호 시스템의 암호화 및 복호화 과정에 상대적으로 적은 수의 연산이 필요하게 되고, 그로 인해 그 수행 속도가 향상되며, 적은 시스템 자원만으로도 타원곡선 암호화 시스템을 구현하는 것이 가능하다.According to another embodiment of the present invention described above, a relatively small number of operations are required for the encryption and decryption process of the public key cryptographic system, thereby improving its execution speed and implementing an elliptic curve encryption system with only a small amount of system resources. It is possible to do

도 7은 본 발명의 일 실시예에 따른 타원곡선암호를 위한 연산 장치(700)를 도시한 도면으로 입력부(721), 연산부(722) 및 출력부(723)를 포함한다. 또한, 스칼라 곱셈을 실질적으로 구현하는 애디션 연산과 더블링 연산을 위해 선택적으로 저장부(724)를 포함할 수 있다.FIG. 7 illustrates an operation device 700 for elliptic curve encryption according to an embodiment of the present invention, and includes an input unit 721, an operation unit 722, and an output unit 723. In addition, the storage unit 724 may be optionally included for an addition operation and a doubling operation for substantially implementing scalar multiplication.

입력부(721)는 타원곡선상의 점을 표현하는 좌표값을 입력받는다. 이러한 입력부(721)는 전자적인 형태의 데이터를 수신할 수 있는 입력 장치로서 구현될 수 있으며, 필요에 따라 물리적인 인터페이스를 포함할 수 있다.The input unit 721 receives a coordinate value representing a point on an elliptic curve. The input unit 721 may be implemented as an input device capable of receiving data in an electronic form, and may include a physical interface as necessary.

연산부(722)는 본 발명의 실시예들이 제안하는 변환된 스칼라 곱셈 연산 방법을 이용하여 입력부(721)를 통해 입력받은 좌표값으로부터 타원곡선에 대한 스칼라 곱셈 결과값을 산출한다. 이러한 연산부(722)는 앞서 도 3을 통해 설명한 310 단계 내지 350 단계에 대응하는 것으로 여기서는 구체적인 설명을 생략한다.The calculation unit 722 calculates a scalar multiplication result of the elliptic curve from the coordinate value received through the input unit 721 using the transformed scalar multiplication calculation method proposed by the embodiments of the present invention. The operation unit 722 corresponds to steps 310 to 350 described above with reference to FIG. 3 and a detailed description thereof will be omitted.

다만 본 실시예의 연산 장치를 하드웨어로 구현함에 있어서, 연산부(722)는 열거된 연산을 수행하기 위한 모듈러 곱셈기(modular multiplier), 모듈러 덧셈기(adder) 및 뺄셈기(subtracter)의 조합으로 구현될 수 있다. 이러한 하드웨어의 설계는 본 발명이 속하는 기술분야에서 회로 설계에 관한 통상의 지식을 가진 자에 의해 구현 가능한 것이다.However, in implementing the arithmetic unit of the present embodiment in hardware, the arithmetic unit 722 may be implemented as a combination of a modular multiplier, a modular adder, and a subtractor for performing the enumerated operations. . The design of such hardware can be implemented by those skilled in the art of circuit design in the technical field to which the present invention belongs.

출력부(723)는 연산부(722)를 통해 산출된 스칼라 곱셈 결과값을 출력한다. 이러한 출력부(723)는 전자적인 형태로 가공된 데이터를 출력할 수 있는 입력 장치로서 구현될 수 있으며, 필요에 따라 물리적인 인터페이스를 포함할 수 있다.The output unit 723 outputs a scalar multiplication result value calculated through the operation unit 722. The output unit 723 may be implemented as an input device capable of outputting data processed in an electronic form, and may include a physical interface as necessary.

한편, 연산부(722)에서 설정된 스칼라 곱셈은 타원곡선 애디션 연산과 타원곡선 더블링 연산을 포함하므로, 타원곡선 애디션 연산과 타원곡선 더블링 연산을 수행하기 위해 각각 적어도 2개의 저장부(724)를 활용할 수 있다. 앞서 표 1 및 표 2를 통해 설명한 바와 같이 스칼라 곱셈의 2가지 연산은 각각 2개의 레지스터를 필요로 한다. 나아가 본 실시예의 연산 장치에는 상기된 하드웨어 장치들을 제어하기 위한 제어기(controller)와 입출력 데이터들을 전송하기 위한 데이터 버스(bus)가 포함될 수 있다.On the other hand, since the scalar multiplication set by the operation unit 722 includes an elliptic curve addition operation and an elliptic curve doubling operation, each of the at least two storage units 724 is used to perform the elliptic curve addition operation and the elliptic curve doubling operation. Can be. As described above in Tables 1 and 2, the two operations of scalar multiplication require two registers each. Furthermore, the computing device of this embodiment may include a controller for controlling the hardware devices described above and a data bus for transmitting input / output data.

상기된 본 발명의 실시예에 따르면 스칼라 곱셈 연산 과정에 상대적으로 적은 수의 연산이 필요하게 되고, 그로 인해 그 수행 속도가 향상되며, 적은 시스템 자원만으로도 타원곡선 암호화 시스템을 구현하는 것이 가능하다.According to the above-described embodiments of the present invention, a relatively small number of operations are required for the scalar multiplication operation process, thereby improving its execution speed, and it is possible to implement an elliptic curve encryption system with only a few system resources.

한편, 본 발명은 컴퓨터로 읽을 수 있는 기록 매체에 컴퓨터가 읽을 수 있는 코드로 구현하는 것이 가능하다. 컴퓨터가 읽을 수 있는 기록 매체는 컴퓨터 시스템에 의하여 읽혀질 수 있는 데이터가 저장되는 모든 종류의 기록 장치를 포함한다.Meanwhile, 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.

컴퓨터가 읽을 수 있는 기록 매체의 예로는 ROM, RAM, CD-ROM, 자기 테이프, 플로피디스크, 광 데이터 저장장치 등이 있으며, 또한 캐리어 웨이브(예를 들어 인터넷을 통한 전송)의 형태로 구현하는 것을 포함한다. 또한, 컴퓨터가 읽을 수 있는 기록 매체는 네트워크로 연결된 컴퓨터 시스템에 분산되어, 분산 방식으로 컴퓨터가 읽을 수 있는 코드가 저장되고 실행될 수 있다. 그리고 본 발명을 구현하기 위한 기능적인(functional) 프로그램, 코드 및 코드 세그먼트들은 본 발명이 속하는 기술 분야의 프로그래머들에 의하여 용이하게 추론될 수 있다.Examples of computer-readable recording media include ROM, RAM, CD-ROM, magnetic tape, floppy disks, optical data storage devices, and the like, which may also be implemented in the form of carrier waves (for example, transmission over the Internet). Include. 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. In addition, functional programs, codes, and code segments for implementing the present invention can be easily deduced by programmers skilled in the art to which the present invention belongs.

이상에서 본 발명에 대하여 그 다양한 실시예들을 중심으로 살펴보았다. 본 발명에 속하는 기술 분야에서 통상의 지식을 가진 자는 본 발명이 본 발명의 본질적인 특성에서 벗어나지 않는 범위에서 변형된 형태로 구현될 수 있음을 이해할 수 있을 것이다. 그러므로 개시된 실시예들은 한정적인 관점이 아니라 설명적인 관점에서 고려되어야 한다. 본 발명의 범위는 전술한 설명이 아니라 특허청구범위에 나타나 있으며, 그와 동등한 범위 내에 있는 모든 차이점은 본 발명에 포함된 것으로 해석되어야 할 것이다.The present invention has been described above with reference to various embodiments thereof. Those skilled in the art will understand that the present invention can be implemented in a modified form without departing from the essential features of the present invention. Therefore, the disclosed embodiments should be considered in an illustrative rather than a restrictive sense. The scope of the present invention is shown in the claims rather than the foregoing description, and all differences within the scope will be construed as being included in the present invention.

10 : 송신자 (암호화 측) 20 : 수신자 (복호화 측)
30 : 공개키 관리 시스템 (공개키 디렉터리)
41 : 비밀키 42 : 공개키
700 : 타원곡선암호화 장치
721 : 입력부 722 : 연산부
723 : 출력부 724 : 저장부
10: sender (encryption side) 20: receiver (decoding side)
30: public key management system (public key directory)
41: secret key 42: public key
700: elliptic curve encryption device
721 input unit 722 operation unit
723: output unit 724: storage unit

Claims (12)

타원곡선상의 점을 표현하는 좌표 공간 중 제 1 좌표축만을 사용하여 상기 점에 대한 스칼라 곱셈(scalar multiplication)을 설정하는 단계;
상기 설정된 스칼라 곱셈을 제곱 형태(square form)로 변환하는 단계;
상기 제곱 형태의 스칼라 곱셈을 투영 좌표(projective coordinate)의 형태로 변환하는 단계; 및
상기 투영 좌표 형태의 스칼라 곱셈을 이용하여 상기 제 1 좌표축에 대한 좌표값을 산출하는 단계를 포함하는 타원곡선암호를 위한 연산 방법.
Setting a scalar multiplication for the point using only a first coordinate axis in a coordinate space representing a point on an elliptic curve;
Converting the set scalar multiplication into a square form;
Converting the scalar multiplication of the square form into a form of projective coordinate; And
Calculating a coordinate value with respect to the first coordinate axis by using a scalar multiplication in the form of the projection coordinate.
제 1 항에 있어서,
상기 제 1 좌표축에 대한 투영 좌표 형태의 스칼라 곱셈으로부터 상기 좌표 공간상의 제 2 좌표축에 대한 좌표값을 산출하는 단계를 더 포함하는 타원곡선암호를 위한 연산 방법.
The method of claim 1,
Calculating coordinate values for a second coordinate axis in the coordinate space from scalar multiplication in the form of projection coordinates for the first coordinate axis.
제 2 항에 있어서,
상기 설정된 스칼라 곱셈은 상기 타원곡선상에 위치한 2개의 점들의 차이가 소정값으로 유지되는 것을 특징으로 하는 타원곡선암호를 위한 연산 방법.
The method of claim 2,
The set scalar multiplication method of claim 2, wherein the difference between the two points located on the elliptic curve is maintained at a predetermined value.
제 1 항에 있어서,
상기 설정된 스칼라 곱셈은 타원곡선 애디션(addition) 연산과 타원곡선 더블링(doubling) 연산을 포함하고,
상기 타원곡선 애디션 연산과 상기 타원곡선 더블링 연산은 병렬적으로 수행되는 것을 특징으로 하는 타원곡선암호를 위한 연산 방법.
The method of claim 1,
The set scalar multiplication includes an elliptic curve addition operation and an elliptic curve doubling operation,
The elliptic curve addition operation and the elliptic curve doubling operation are performed in parallel.
비밀키를 입력받는 단계;
타원곡선상의 점을 표현하는 좌표 공간 중 제 1 좌표축만을 사용하여 상기 점에 대한 스칼라 곱셈을 설정하는 단계;
상기 설정된 스칼라 곱셈을 제곱 형태로 변환하고, 상기 변환된 제곱 형태의 스칼라 곱셈을 투영 좌표의 형태로 변환하며, 상기 변환된 투영 좌표 형태의 스칼라 곱셈을 이용하여 상기 제 1 좌표축에 대한 좌표값을 산출하는 단계;
상기 제 1 좌표축에 대한 투영 좌표 형태의 스칼라 곱셈으로부터 상기 좌표 공간상의 제 2 좌표축에 대한 좌표값을 산출하는 단계; 및
상기 입력받은 비밀키를 이용하여 상기 제 1 좌표축 및 제 2 좌표축에 대한 좌표값으로부터 공개키를 생성하는 단계를 포함하는 타원곡선암호를 위한 연산 방법.
Receiving a secret key;
Setting a scalar multiplication for the point using only a first coordinate axis in a coordinate space representing a point on an elliptic curve;
Converts the set scalar multiplication into a square form, converts the converted scalar multiplication into a form of projection coordinates, and calculates a coordinate value with respect to the first coordinate axis using scalar multiplication of the converted projection coordinate form Making;
Calculating coordinate values for a second coordinate axis in the coordinate space from a scalar multiplication in the form of projection coordinates for the first coordinate axis; And
And generating a public key from the coordinate values of the first and second coordinate axes using the received secret key.
제 5항에 있어서,
상기 생성된 공개키를 이용하여 암호화한 암호문을 수신하는 단계; 및
상기 비밀키를 이용하여 상기 수신된 암호문으로부터 평문을 복호화하는 단계를 더 포함하는 타원곡선암호를 위한 연산 방법.
6. The method of claim 5,
Receiving an encrypted cipher text using the generated public key; And
And decrypting the plain text from the received cipher text using the secret key.
소정 연산 방법을 이용하여 생성된 공개키를 수신하는 단계; 및
상기 수신된 공개키를 이용하여 평문으로부터 암호문을 생성하는 단계를 포함하고,
상기 소정 연산 방법은,
타원곡선상의 점을 표현하는 좌표 공간 중 제 1 좌표축만을 사용하여 상기 점에 대한 스칼라 곱셈을 설정하고,
상기 설정된 스칼라 곱셈을 제곱 형태로 변환하고, 상기 변환된 제곱 형태의 스칼라 곱셈을 투영 좌표의 형태로 변환하고, 상기 변환된 투영 좌표 형태의 스칼라 곱셈을 이용하여 상기 제 1 좌표축에 대한 좌표값을 산출하고,
상기 제 1 좌표축에 대한 투영 좌표 형태의 스칼라 곱셈으로부터 상기 좌표 공간상의 제 2 좌표축에 대한 좌표값을 산출하며,
상기 입력받은 비밀키를 이용하여 상기 제 1 좌표축 및 제 2 좌표축에 대한 좌표값으로부터 공개키를 생성하는 것을 특징으로 하는 타원곡선암호를 위한 연산 방법.
Receiving a public key generated using a predetermined calculation method; And
Generating a cipher text from the plain text using the received public key,
The predetermined calculation method,
Sets a scalar multiplication for the point using only the first coordinate axis of the coordinate space representing the point on the elliptic curve,
Converts the set scalar multiplication into a square form, converts the converted scalar multiplication into a projection coordinate form, and calculates a coordinate value with respect to the first coordinate axis by using scalar multiplication of the converted projection coordinate form and,
Calculating a coordinate value for a second coordinate axis in the coordinate space from a scalar multiplication in the form of projection coordinates for the first coordinate axis,
And a public key is generated from the coordinate values of the first and second coordinate axes using the received secret key.
제 1 항 내지 제 7 항 중에 어느 한 항의 방법을 컴퓨터에서 실행시키기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록매체.A computer-readable recording medium storing a program for causing a computer to execute the method according to any one of claims 1 to 7. 타원곡선상의 점을 표현하는 좌표값을 입력받는 입력부;
소정 연산 방법을 이용하여 상기 입력받은 좌표값으로부터 상기 타원곡선에 대한 스칼라 곱셈 결과값을 산출하는 연산부; 및
상기 산출된 스칼라 곱셈 결과값을 출력하는 출력부를 포함하고,
상기 소정 연산 방법은,
상기 타원곡선상의 점을 표현하는 좌표 공간 중 제 1 좌표축만을 사용하여 상기 점에 대한 스칼라 곱셈을 설정하고,
상기 설정된 스칼라 곱셈을 제곱 형태로 변환하고,
상기 제곱 형태의 스칼라 곱셈을 투영 좌표의 형태로 변환하며,
상기 투영 좌표 형태의 스칼라 곱셈을 이용하여 상기 제 1 좌표축에 대한 좌표값을 산출하는 것을 특징으로 하는 타원곡선암호를 위한 연산 장치.
An input unit for receiving a coordinate value representing a point on an elliptic curve;
A calculation unit for calculating a scalar multiplication result of the elliptic curve from the input coordinate value using a predetermined calculation method; And
An output unit for outputting the calculated scalar multiplication result value,
The predetermined calculation method,
Sets a scalar multiplication for the point using only a first coordinate axis in a coordinate space representing a point on the elliptic curve,
Convert the set scalar multiplication into a square form,
Converts the scalar multiplication of the square form into the form of projection coordinates,
And calculating a coordinate value with respect to the first coordinate axis by using scalar multiplication of the projection coordinate type.
제 9 항에 있어서,
상기 연산부는 상기 제 1 좌표축에 대한 투영 좌표 형태의 스칼라 곱셈으로부터 상기 좌표 공간상의 제 2 좌표축에 대한 좌표값을 더 산출하는 것을 특징으로 하는 타원곡선암호를 위한 연산 장치.
The method of claim 9,
And the calculating unit further calculates a coordinate value for a second coordinate axis in the coordinate space from a scalar multiplication in the form of projection coordinates for the first coordinate axis.
제 10 항에 있어서,
상기 설정된 스칼라 곱셈은 상기 타원곡선상에 위치한 2개의 점들의 차이가 소정값으로 유지되는 것을 특징으로 하는 타원곡선암호를 위한 연산 장치.
The method of claim 10,
The set scalar multiplication apparatus of claim 11, wherein the difference between the two points on the elliptic curve is kept at a predetermined value.
제 9 항에 있어서,
상기 설정된 스칼라 곱셈은 타원곡선 애디션 연산과 타원곡선 더블링 연산을 포함하고,
상기 타원곡선 애디션 연산과 상기 타원곡선 더블링 연산을 수행하기 위해 각각 적어도 2개의 저장부를 더 포함하는 것을 특징으로 하는 타원곡선암호를 위한 연산 장치.
The method of claim 9,
The set scalar multiplication includes an elliptic curve addition operation and an elliptic curve doubling operation,
And at least two storage units for performing the elliptic curve addition operation and the elliptic curve doubling operation, respectively.
KR1020100090249A 2010-09-15 2010-09-15 Calculating apparatus and method for elliptic curve cryptography KR101233682B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020100090249A KR101233682B1 (en) 2010-09-15 2010-09-15 Calculating apparatus and method for elliptic curve cryptography

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020100090249A KR101233682B1 (en) 2010-09-15 2010-09-15 Calculating apparatus and method for elliptic curve cryptography

Publications (2)

Publication Number Publication Date
KR20120028432A true KR20120028432A (en) 2012-03-23
KR101233682B1 KR101233682B1 (en) 2013-02-15

Family

ID=46133232

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020100090249A KR101233682B1 (en) 2010-09-15 2010-09-15 Calculating apparatus and method for elliptic curve cryptography

Country Status (1)

Country Link
KR (1) KR101233682B1 (en)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20220071047A (en) 2020-11-23 2022-05-31 부산대학교 산학협력단 System and Method for Calculating Faster ECC scalar multiplication on FPGA
CN114650135A (en) * 2022-04-01 2022-06-21 浙江大学 Software and hardware cooperative SM2 elliptic curve cryptographic algorithm implementation method
KR102536397B1 (en) * 2022-10-26 2023-05-26 주식회사 시옷 Signature verification method performed in a computing device and a computing device performing the same method
KR102649929B1 (en) * 2022-11-28 2024-03-21 (주)드림시큐리티 Digital signature generation and verification method for low-end PLC

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102006013515A1 (en) 2006-03-23 2007-10-04 Siemens Ag Cryptographic method with elliptic curves
KR101524661B1 (en) * 2014-04-03 2015-06-03 고려대학교 산학협력단 Calculating apparatus and method for Triple-Base Chain elliptic curve scalar multiplication by reordering
KR102187267B1 (en) 2020-07-08 2020-12-04 국방과학연구소 Method and apparatus for Supersingular Diffie-Hellman key exchange based on elliptic curve
KR20240045557A (en) 2022-09-30 2024-04-08 주식회사 디지트로그 Key derivation function based double encryption device and method using elliptic curve cryptography

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20220071047A (en) 2020-11-23 2022-05-31 부산대학교 산학협력단 System and Method for Calculating Faster ECC scalar multiplication on FPGA
US11368303B2 (en) 2020-11-23 2022-06-21 Pusan National University Industry-University Cooperation Foundation System and method for calculating faster ECC scalar multiplication on FPGA
CN114650135A (en) * 2022-04-01 2022-06-21 浙江大学 Software and hardware cooperative SM2 elliptic curve cryptographic algorithm implementation method
CN114650135B (en) * 2022-04-01 2024-01-02 浙江大学 Software and hardware cooperated SM2 elliptic curve cryptography algorithm implementation method
KR102536397B1 (en) * 2022-10-26 2023-05-26 주식회사 시옷 Signature verification method performed in a computing device and a computing device performing the same method
KR102649929B1 (en) * 2022-11-28 2024-03-21 (주)드림시큐리티 Digital signature generation and verification method for low-end PLC

Also Published As

Publication number Publication date
KR101233682B1 (en) 2013-02-15

Similar Documents

Publication Publication Date Title
KR101233682B1 (en) Calculating apparatus and method for elliptic curve cryptography
US9503259B2 (en) System and method for generating and protecting cryptographic keys
JP3862500B2 (en) High-speed elliptic curve encryption method and apparatus by direct embedding method
US7688973B2 (en) Encryption apparatus, decryption apparatus, key generation apparatus, program, and method
US11323255B2 (en) Methods and systems for encryption and homomorphic encryption systems using Geometric Algebra and Hensel codes
KR101449239B1 (en) Homomorphic Encryption and Decryption Method using Ring Isomorphism and apparatus using the same
JP2013178589A (en) Secret sharing system, sharing apparatus, sharing management device, acquisition device, processing methods thereof, secret sharing method and program
CN109039640A (en) A kind of encryption and decryption hardware system and method based on rsa cryptosystem algorithm
Dawahdeh et al. A new modification for menezes-vanstone elliptic curve cryptosystem
Vigila et al. Nonce Based Elliptic Curve Cryptosystem for Text and Image Applications.
US7177422B2 (en) Elliptic curve encryption processing method, elliptic curve encryption processing apparatus, and program
Alam et al. A Comparative Study of RSA and ECC and Implementation of ECC on Embedded Systems
JP4626148B2 (en) Calculation method of power-residue calculation in decryption or signature creation
KR100817048B1 (en) Method and apparatus of Different Faults AnalysisDFA countermeasure based on different point representation for Elliptic Curve CryptographyECC
JP4706811B2 (en) Arithmetic device and recording medium using request calculation
Chakraborty et al. A secure cloud computing authentication using cryptography
Wang et al. Secure outsourced calculations with homomorphic encryption
JP4783061B2 (en) Scalar multiplication unit for elliptic curve cryptography
John et al. Elliptic-Curve Groups in Quantum-Era Cryptography
Rao et al. Secure and practical outsourcing of linear programming in cloud computing: A survey
Sarma et al. Public key cryptosystem based on Pell's equation using the Gnu Mp library
JP5506633B2 (en) Proxy calculation system, terminal device, proxy calculation device, proxy calculation method, and program
Bhirud et al. Data Security Using Elliptic Curve Cryptography
JP2008064853A (en) Key management system, cipher processing method, and data creation method of granting decryption right
KR101006358B1 (en) Elliptic curve cryptography system based on real domain and method thereof

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
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: 20160201

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20170109

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20180108

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20190201

Year of fee payment: 7

FPAY Annual fee payment

Payment date: 20200128

Year of fee payment: 8