KR20210026410A - Computing Apparatus and Method for Hardware Implementation of Public-Key Cryptosystem Supporting Elliptic Curves over Prime Field and Binary Field - Google Patents
Computing Apparatus and Method for Hardware Implementation of Public-Key Cryptosystem Supporting Elliptic Curves over Prime Field and Binary Field Download PDFInfo
- Publication number
- KR20210026410A KR20210026410A KR1020190107140A KR20190107140A KR20210026410A KR 20210026410 A KR20210026410 A KR 20210026410A KR 1020190107140 A KR1020190107140 A KR 1020190107140A KR 20190107140 A KR20190107140 A KR 20190107140A KR 20210026410 A KR20210026410 A KR 20210026410A
- Authority
- KR
- South Korea
- Prior art keywords
- modular
- word
- elliptic curve
- value
- montgomery
- Prior art date
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/30—Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
- H04L9/3066—Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy involving algebraic varieties, e.g. elliptic or hyper-elliptic curves
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/60—Methods or arrangements for performing computations using a digital non-denominational number representation, i.e. number representation without radix; Computing devices using combinations of denominational and non-denominational quantity representations, e.g. using difunction pulse trains, STEELE computers, phase computers
- G06F7/72—Methods or arrangements for performing computations using a digital non-denominational number representation, i.e. number representation without radix; Computing devices using combinations of denominational and non-denominational quantity representations, e.g. using difunction pulse trains, STEELE computers, phase computers using residue arithmetic
- G06F7/722—Modular multiplication
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/60—Methods or arrangements for performing computations using a digital non-denominational number representation, i.e. number representation without radix; Computing devices using combinations of denominational and non-denominational quantity representations, e.g. using difunction pulse trains, STEELE computers, phase computers
- G06F7/72—Methods or arrangements for performing computations using a digital non-denominational number representation, i.e. number representation without radix; Computing devices using combinations of denominational and non-denominational quantity representations, e.g. using difunction pulse trains, STEELE computers, phase computers using residue arithmetic
- G06F7/728—Methods or arrangements for performing computations using a digital non-denominational number representation, i.e. number representation without radix; Computing devices using combinations of denominational and non-denominational quantity representations, e.g. using difunction pulse trains, STEELE computers, phase computers using residue arithmetic using Montgomery reduction
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2209/00—Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
- H04L2209/12—Details relating to cryptographic hardware or logic circuitry
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Mathematical Analysis (AREA)
- Mathematical Optimization (AREA)
- Pure & Applied Mathematics (AREA)
- Computational Mathematics (AREA)
- Mathematical Physics (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Algebra (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Complex Calculations (AREA)
Abstract
Description
본 발명은 소수체와 이진체 상의 타원곡선을 지원하는 공개키 암호 시스템의 하드웨어 구현을 위한 연산장치 및 방법에 관한 것으로, 더욱 상세하게는 소수체와 이진체 상의 다양한 크기의 타원곡선을 지원하면서, EC-DSA, EC-ElGamal, EC-DH 등 타원곡선 기반 공개키 암호 시스템의 하드웨어 구현이 가능한 연산장치 및 방법에 관한 것이다. The present invention relates to a computing device and method for hardware implementation of a public key cryptographic system that supports elliptic curves on prime numbers and binary bodies, and more specifically, to support elliptic curves of various sizes on prime numbers and binary bodies, The present invention relates to a computing device and method capable of hardware implementation of an elliptic curve-based public key cryptosystem such as EC-DSA, EC-ElGamal, and EC-DH.
5G 이동통신기술이 상용화됨에 따라 무선 네트워크를 통해 연결되는 장치와 전송되는 정보 량이 기하급수적으로 증가하고 있으며 특히, 사물인터넷(Internet of Things), 자율주행 자동차, 무인 비행체(드론), 스마트 홈, 스마트 헬스 기기, 개인정보 단말기, 전자지갑, 가상화폐 등 유선 및 무선 네트워크에 연결되어 정보를 전송, 저장, 처리하는 장치와 시스템이 증가함에 따라 사이버 공격으로부터 정보와 장치를 보호하기 위한 정보보안 기술의 중요성이 더욱 커지고 있다.With the commercialization of 5G mobile communication technology, the amount of information transmitted and devices connected through wireless networks is increasing exponentially.In particular, the Internet of Things, self-driving cars, unmanned aerial vehicles (drones), smart homes, smart The importance of information security technology to protect information and devices from cyber attacks as devices and systems that are connected to wired and wireless networks such as health devices, personal information terminals, electronic wallets, and virtual currency that transmit, store, and process information are increasing. This is getting bigger.
기밀성(Confidentiality), 인증(Authentication), 그리고 무결성(Integrity) 검증 등의 정보보안 기능을 위해 비밀키(대칭키) 암호 방식, 공개키 암호 방식, 그리고 암호학적 해시 함수 등이 사용되고 있다. 전자서명, 키 교환, 인증 등을 위한 공개키 암호 방식으로는 RSA(Rivest, Shamir, Adleman) 암호와 타원곡선 암호(Elliptic Curve Cryptography)가 대표적으로 널리 사용되고 있다. RSA 암호 방식은 1024-비트 또는 2048-비트의 매우 큰 키 길이를 필요로 하여 메모리와 하드웨어 요구량이 크다는 단점이 있다. 반면에, 타원곡선 암호는 수 백 비트 정도의 키 길이로 RSA와 유사한 보안 강도를 가져, 하드웨어 및 소프트웨어 구현에 유리하다는 장점을 가지며, 최근에는 자율주행 자동차, 드론, 전자지갑, 가상화폐 등의 보안을 위해 타원곡선 공개키 암호 방식의 사용이 급속히 확대되고 있다.For information security functions such as confidentiality, authentication, and integrity verification, a secret key (symmetric key) encryption method, a public key encryption method, and a cryptographic hash function are used. RSA (Rivest, Shamir, Adleman) encryption and Elliptic Curve Cryptography are widely used as public key encryption methods for digital signatures, key exchange, and authentication. The RSA encryption method has a disadvantage in that it requires a very large key length of 1024-bit or 2048-bit, and thus requires large memory and hardware requirements. On the other hand, elliptic curve encryption has the advantage of being advantageous in hardware and software implementation by having a security strength similar to that of RSA with a key length of several hundred bits, and recently, security for autonomous vehicles, drones, electronic wallets, virtual currency, etc. For this, the use of the elliptic curve public key encryption method is rapidly expanding.
타원곡선 공개키 암호 방식에 사용되는 타원곡선은 미국 국립표준기술연구소(NIST)와 SEC-2의 표준 문서에 다양한 크기(키 길이)의 타원곡선들이 정의되고 있으며, 이를 기반으로 타원곡선 기반 전자서명 프로토콜인 EC-DSA, 타원곡선 기반 키 교환 프로토콜인 EC-DH(Diffie-Hellman), 타원곡선 기반 메시지 암호 및 복호 프로토콜인 EC-ElGamal 등 다양한 공개키 암호 프로토콜들이 구현되고 있다.Elliptic Curves Elliptic curves of various sizes (key lengths) are defined in the standard documents of the National Institute of Standards and Technology (NIST) and SEC-2, and based on this, the elliptic curve-based electronic signature Various public key cryptographic protocols are being implemented, such as EC-DSA, a protocol, Diffie-Hellman (EC-DH), an elliptic curve-based key exchange protocol, and EC-ElGamal, a message encryption and decryption protocol based on an elliptic curve.
타원곡선 암호는 적용되는 유한체(finite field)에 따라 소수체 상의 타원곡선 암호와 이진체 상의 타원곡선 암호로 구분되며, 체의 크기도 여러 가지가 사용된다. NIST의 전자서명 표준인 FIPS 186-4에는 소수체 상의 5가지(192, 224, 256, 384, 521 비트) 크기와 이진체 상의 5가지(163, 233, 283, 409, 571 비트) 크기의 타원곡선이 규정되어 있으며, SEC-2에는 소수체상의 8가지(secp192k1, secp192r1, secp224k1, secp224r1, secp256k1, secp256r1, secp384r1, secp521r1)와 이진체 상의 12가지(sect163k1, sect163r1, sect163r2, sect233k1, sect233r1, sect239k1, sect283k1, sect283r1, sect409k1, sect409r1, sect571k1, sect571r1) 타원곡선이 규정되어 있다. Elliptic curve ciphers are classified into an elliptic curve cipher on a minority body and an elliptic curve cipher on a binary body according to the applied finite field, and various sizes of sieves are used. In FIPS 186-4, NIST's digital signature standard, there are five (192, 224, 256, 384, 521 bits) sized ellipses on a minor body and five (163, 233, 283, 409, 571 bits) sizes on a binary body. The curve is defined, and in SEC-2, there are 8 types of hydrophobic bodies (secp192k1, secp192r1, secp224k1, secp224r1, secp256k1, secp256r1, secp384r1, secp521r1) and 12 types of binary bodies (sect163k1, sect163r1, sect163r2, sect2331, sect163r2, sect2331, sect233k1 , sect283k1, sect283r1, sect409k1, sect409r1, sect571k1, sect571r1) Elliptic curves are defined.
타원곡선 암호는 응용 분야와 시스템에 따라 유한체와 타원곡선의 크기가 다르며, 이에 따라 타원곡선 방정식 계수, 생성점 값, 모듈러 값 등 도메인 파라미터가 달라진다. 타원곡선 암호의 전용 하드웨어 구현을 위해서는 국내외 표준에 규정되어 있는 다양한 타원곡선을 지원할 수 있도록 연산장치와 연산방법의 유연성이 필요하다. The elliptic curve cipher has different sizes of finite fields and elliptic curves according to application fields and systems, and domain parameters such as elliptic curve equation coefficients, generation point values, and modular values vary accordingly. In order to implement the dedicated hardware for elliptic curve encryption, flexibility of the operation device and operation method is required to support various elliptic curves specified in domestic and foreign standards.
또한, EC-DSA, EC-ElGamal, EC-DH 등 타원곡선 암호 응용 프로토콜의 구현을 위해서는 점 스칼라 곱셈(point scalar multiplication; PSM), 점 덧셈(point addition; PA), 점 뺄셈(point subtraction; PS), 점 두배(point doubling; PD)의 타원곡선 점 연산뿐만아니라 모듈러 덧셈(modular addition; MA), 모듈러 뺄셈(modular subtraction; MS), 모듈러 곱셈(modular multiplication; MM), 모듈러 나눗셈(modular division; MD), 모듈러 역원(modular inversion; MI)의 유한체 모듈러 산술연산이 필요하다. 또한, EC-ElGamal의 암호화를 위해서는 메시지 데이터를 타원곡선 상의 점으로 매핑하는 과정이 필요하며, 이를 위해서는 모듈러 제곱근(modular square root; MSQRT) 계산이 필요하다.In addition, point scalar multiplication (PSM), point addition (PA), point subtraction (PS) for implementation of elliptic curve encryption application protocols such as EC-DSA, EC-ElGamal, and EC-DH ), modular addition (MA), modular subtraction (MS), modular multiplication (MM), modular division, as well as elliptic point operation of point doubling (PD). MD), modular inversion (MI) finite field modular arithmetic operation is required. In addition, for encryption of EC-ElGamal, a process of mapping message data to a point on an elliptic curve is required, and for this, a modular square root (MSQRT) calculation is required.
이에 따라 하나의 하드웨어 장치를 이용하여 다양한 크기의 소수체 및 이진체 타원곡선을 지원하며, 타원곡선 점 연산, 유한체 모듈러 산술연산, 그리고 메시지의 타원곡선 점 매핑기능을 제공하는 효율적 연산장치 및 연산방법의 개발이 필요한 실정이다. Accordingly, an efficient operation device and operation that supports decimal and binary elliptic curves of various sizes using one hardware device, and provides elliptic curve point operation, finite field modular arithmetic operation, and elliptic curve point mapping function of messages. There is a need to develop a method.
본 발명은 상기의 문제점을 해결하기 위해 안출된 것으로서 워드기반 유한체 연산장치와 메모리 그리고 이들에 대한 효율적인 제어방법을 통해 미국 국립표준기술연구소와 SEC-2의 표준문서에 정의된 다양한 키 길이의 타원곡선들을 지원함으로써 타원곡선 기반 전자서명(EC-DSA), EC-ElGamal, EC-DH(Diffie-Hellman) 등 타원곡선 공개키 암호 시스템의 하드웨어 구현이 가능한 연산장치 및 방법을 제공함에 그 목적이 있다. The present invention was conceived to solve the above problems, and through a word-based finite field computing device and memory, and an efficient control method for them, ellipses of various key lengths defined in the standard document of the US National Institute of Standards and Technology and Its purpose is to provide a computing device and method capable of hardware implementation of an elliptic curve public key cryptosystem such as an elliptic curve-based electronic signature (EC-DSA), EC-ElGamal, and EC-DH (Diffie-Hellman) by supporting curves. .
본 발명은 상기의 목적을 달성하기 위해 아래와 같은 특징을 갖는다.The present invention has the following features to achieve the above object.
ω-비트 크기의 모듈러 가산/감산기와, ω-비트 크기의 워드 기반 몽고메리 모듈러 곱셈기를 포함하는 워드 기반 유한체 연산기와; 타원곡선 도메인 파라미터와 워드 기반 유한체 연산의 중간 결과값을 저장하는 메모리와; 동작모드를 설정하기 위한 값을 저장하며 워드 기반 유한체 연산의 중간 결과값을 저장하는 레지스터 블록과; 상기 워드 기반 유한체 연산기, 메모리 및 레지스터 블록을 제어하는 동작모드 제어부;를 포함한다. a word-based finite field operator including a ω-bit sized modular add/subtracter and an ω-bit sized word-based Montgomery modular multiplier; A memory for storing an elliptic curve domain parameter and an intermediate result value of a word-based finite field operation; A register block that stores a value for setting an operation mode and stores an intermediate result value of a word-based finite field operation; And an operation mode control unit for controlling the word-based finite field operator, memory, and register block.
여기서 상기 레지스터 블록에 저장되며, 동작모드 제어부에 의해 제어되는 동작모드는 타원곡선 점 연산모드과, 유한체 모듈러 연산모드를 포함한다. Here, the operation modes stored in the register block and controlled by the operation mode controller include an elliptic curve point operation mode and a finite field modular operation mode.
아울러 상기 동작모드는 데이터를 몽고메리 도메인으로 매핑하기 위한 계산모드와, 몽고메리 도메인의 연산결과를 정수 도메인으로 변환하는 역매핑모드와, 좌표계 변환을 위한 연산과, 몽고메리 모듈러 곱셈 과정에서 합동(congruence)을 이용한 축약에 사용되기 위한 값의 계산모드와, 임의의 메시지 값을 타원곡선 상의 점으로 매핑하는 과정에서 필요한 모듈러 제곱근 계산모드를 포함한다. In addition, the operation mode is for mapping data to the Montgomery domain. A calculation mode, an inverse mapping mode that converts the operation result of the Montgomery domain into an integer domain, an operation for transforming the coordinate system, and a reduction using congruence in the Montgomery modular multiplication process. It includes a value calculation mode and a modular square root calculation mode required in the process of mapping an arbitrary message value to a point on an elliptic curve.
또한 상기 워드 기반 몽고메리 모듈러 곱셈기는 소수체 상의 곱셈과 이진체 상의 곱셈을 선택적으로 계산하는 ω-비트 크기의 듀얼 필드 곱셈기와, ω-비트 크기의 듀얼 필드 가산기와, ω-비트 크기의 레지스터와, 1-비트 캐리저장 레지스터와, 2-비트 캐리저장 레지스터와, 1-비트 가산기와, 복수 개의 선택기를 포함한다. In addition, the word-based Montgomery modular multiplier includes an ω-bit sized dual field multiplier that selectively calculates multiplication on a prime number and a multiplication on binary, a dual field adder of ω-bit size, and a register of ω-bit size, It includes a 1-bit carry storage register, a 2-bit carry storage register, a 1-bit adder, and a plurality of selectors.
아울러 본 발명의 일실시예에 따른 연산방법으로 상기 연산장치를 통해 타원곡선 도메인 파라미터와 데이터가 연산장치에 입력되는 제1단계와; 동작모드 제어부의 제어에 따라 타원곡선에 따른 초기 파라미터 값으로서 워드기반 몽고메리 모듈러 곱셈을 위해 데이터를 몽고메리 도메인으로 매핑하는데 필요한 가 계산되고, 값과 데이터를 몽고메리 모듈러 곱셈하여 몽고메리 도메인으로 매핑하는 제2단계와; 동작모드에 따른 동작모드 제어부의 제어에 따라 타원곡선 점 연산(PSM, PA, PS, PD)과 유한체 모듈러 연산(MM, MD, MI, MA, MS)이 수행되는 제3단계와; 좌표계 변환 단계로, 소수체의 경우에는 자코비안(Jacobian) 좌표계에서 2차원 아핀(affine) 좌표계로, 이진체의 경우에는 로페즈-다합(Lopez-Dahab) 좌표계에서 2차원 아핀 좌표계로 변환이 수행되는 제4단계와; 몽고메리 도메인에서 계산된 연산결과에 포함되어 있는 을 제거하기 위해 리매핑되는 제5단계와; 상기 제5단계의 결과데이터가 출력되는 제6단계;를 포함한다. In addition, a first step of inputting an elliptic curve domain parameter and data to a computing device through the computing device in a calculation method according to an embodiment of the present invention; As an initial parameter value according to an elliptic curve under the control of the operation mode controller, it is necessary to map data to the Montgomery domain for word-based Montgomery modular multiplication. Is calculated, A second step of performing a Montgomery modular multiplication of values and data to map them to a Montgomery domain; A third step of performing elliptic curve point calculations (PSM, PA, PS, PD) and finite field modular calculations (MM, MD, MI, MA, MS) according to the control of the operation mode controller according to the operation mode; In the case of a coordinate system conversion step, in the case of a minor body, the conversion is performed from a Jacobian coordinate system to a two-dimensional affine coordinate system, and in the case of a binary body, a two-dimensional affine coordinate system is performed. A fourth step; Included in the calculation result calculated in the Montgomery domain A fifth step of being remapped to remove And a sixth step of outputting the result data of the fifth step.
여기서 상기 연산장치는 유한체 연산기의 비트 크기에 따라 반복적인 연산을 통해 다수의 형태를 가지는 타원곡선을 지원하며, 타원곡선에 따라 달라지는 모듈러 값 p를 외부에서 입력받은 후, 몽고메리 모듈러 곱셈 및 유한체 연산에 필요한 값과, 몽고메리 곱셈 과정에서 합동(congruence)을 이용한 축약 연산에 사용되는 를 계산하도록 구성된다. Here, the computing device supports elliptic curves having multiple shapes through repetitive calculations according to the bit size of the finite field calculator, and after receiving a modular value p that varies according to the elliptic curve from the outside, Montgomery's modular multiplication and finite field Required for calculation Value and the congruence used in the Montgomery multiplication process. Is configured to calculate.
또한 상기 연산장치는 타원곡선 기반의 EC-ElGamal 암호화를 위해 메시지 데이터를 타원곡선 상의 점으로 매핑하는 과정에서 필요한 모듈러 제곱근 연산을 계산하도록 구성된다. In addition, the computing device is configured to calculate a modular square root operation required in the process of mapping message data to points on the elliptic curve for EC-ElGamal encryption based on an elliptic curve.
본 발명에 따르면 유한체 연산기와 메모리 및 이들의 동작 제어를 통해 소수체와 이진체 상의 다양한 크기의 타원곡선 암호를 단일 하드웨어로 처리하는 방법을 제공하며, 또한 부가적인 연산 장치 없이 모듈러 산술연산과 메시지의 타원곡선 점 매핑 방법을 제공함으로써 하드웨어 복잡도를 감소시키고, 타원곡선 암호를 기반으로 하는 다양한 공개키 암호 프로토콜의 구현에 적용될 수 있어 유용성과 비용절감의 효과가 있다.According to the present invention, a finite field operator, a memory, and a method of processing various sizes of elliptic curve ciphers on a decimal field and a binary body with a single hardware through their operation control, and a modular arithmetic operation and a message without an additional computing device. By providing an elliptic curve point mapping method of, hardware complexity is reduced, and since it can be applied to the implementation of various public key cryptographic protocols based on elliptic curve encryption, it is effective in reducing utility and cost.
도 1은 본 발명의 일실시예에 따른 소수체와 이진체 상의 타원곡선을 지원하는 공개키 암호 시스템의 하드웨어 구현을 위한 연산장치를 개략적으로 나타내는 블럭도이다.
도 2는 본 발명의 일실시예에 따른 도 1의 워드기반 몽고메리 모듈러 곱셈기의 내부 구성을 나타내는 블럭도이다.
도 3은 본 발명의 일실시예에 따른 소수체와 이진체를 지원하는 워드 기반 몽고메리 곱셈기의 동작 슈도코드를 나타내는 도면이다.
도 4는 본 발명의 일실시예에 따라 계산 과정의 슈도코드를 나타내는 도면이다.
도 5는 본 발명의 일실시예에 따라 계산 과정의 슈도코드를 나타내는 도면이다.
도 6은 본 발명의 다른 실시예에 따른 메시지 데이터 X를 타원곡선 상의 점 (X,Y)로 매핑하는 방법의 슈도코드의 나타내는 도면이다. FIG. 1 is a block diagram schematically showing an operation device for hardware implementation of a public key cryptographic system supporting elliptic curves on a prime number and a binary body according to an embodiment of the present invention.
2 is a block diagram showing the internal configuration of the word-based Montgomery modular multiplier of FIG. 1 according to an embodiment of the present invention.
3 is a diagram illustrating an operation pseudocode of a word-based Montgomery multiplier that supports decimal and binary characters according to an embodiment of the present invention.
4 is according to an embodiment of the present invention It is a diagram showing the pseudocode of the calculation process.
5 is according to an embodiment of the present invention It is a diagram showing the pseudocode of the calculation process.
6 is a diagram illustrating a pseudocode of a method of mapping message data X to points (X,Y) on an elliptic curve according to another embodiment of the present invention.
본 발명과 본 발명의 동작상의 이점 및 본 발명의 실시에 의하여 달성되는 목적을 설명하기 위하여 이하에서는 본 발명의 바람직한 실시예를 예시하고 이를 참조하여 살펴본다.In order to explain the present invention and the operational advantages of the present invention and the object achieved by the implementation of the present invention, the following describes a preferred embodiment of the present invention and looks at with reference thereto.
먼저, 본 출원에서 사용한 용어는 단지 특정한 실시예를 설명하기 위해 사용된 것으로서, 본 발명을 한정하려는 의도가 아니며, 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함할 수 있다. 또한 본 출원에서, "포함하다" 또는 "가지다" 등의 용어는 명세서 상에 기재된 특징, 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.First, terms used in the present application are only used to describe specific embodiments, and are not intended to limit the present invention, and expressions in the singular may include a plurality of expressions unless clearly differently in context. In addition, in the present application, terms such as "comprise" or "have" are intended to designate the existence of features, numbers, steps, actions, components, parts, or a combination thereof described in the specification, but one or more other It is to be understood that the presence or addition of features, numbers, steps, actions, components, parts, or combinations thereof, does not preclude the possibility of preliminary exclusion.
본 발명을 설명함에 있어서, 관련된 공지 구성 또는 기능에 대한 구체적인 설명이 본 발명의 요지를 흐릴 수 있다고 판단되는 경우에는 그 상세한 설명은 생략한다.In describing the present invention, when it is determined that a detailed description of a related known configuration or function may obscure the subject matter of the present invention, a detailed description thereof will be omitted.
도 1은 본 발명의 일실시예에 따른 소수체와 이진체 상의 타원곡선을 지원하는 공개키 암호 시스템의 하드웨어 구현을 위한 연산장치를 개략적으로 나타내는 블럭도이며, 도 2는 본 발명의 일실시예에 따른 도 1의 워드기반 몽고메리 모듈러 곱셈기의 내부 구성을 나타내는 블럭도이다. FIG. 1 is a block diagram schematically showing a computing device for hardware implementation of a public key cryptographic system supporting elliptic curves on a prime number and a binary body according to an embodiment of the present invention, and FIG. 2 is an embodiment of the present invention. 1 is a block diagram showing the internal configuration of the word-based Montgomery modular multiplier according to FIG.
또한 도 3은 본 발명의 일실시예에 따른 소수체와 이진체를 지원하는 워드 기반 몽고메리 곱셈기의 동작 슈도코드를 나타내는 도면이고, 도 4는 본 발명의 일실시예에 따라 계산 과정의 슈도코드를 나타내는 도면이며, 도 5는 본 발명의 일실시예에 따라 계산 과정의 슈도코드를 나타내는 도면이며, 도 6은 본 발명의 일실시예에 따른 메시지 데이터 X를 타원곡선 상의 점 (X,Y)로 매핑하는 방법의 슈도코드의 나타내는 도면이다. In addition, FIG. 3 is a diagram showing an operation pseudocode of a word-based Montgomery multiplier supporting decimal and binary characters according to an embodiment of the present invention, and FIG. 4 is a diagram illustrating an operation pseudocode according to an embodiment of the present invention. It is a diagram showing a pseudocode of a calculation process, and FIG. 5 is a diagram showing a pseudocode of a calculation process. Fig. 6 is a diagram showing a pseudocode of a calculation process, and FIG. 6 is a diagram showing a pseudocode of a method of mapping message data X to points (X,Y) on an elliptic curve according to an embodiment of the present invention.
도면을 참조하면 본 발명의 일실시예에 따른 하드웨어 구현을 위한 연산장치(100)는 ω-비트 크기의 모듈러 가산/감산기(11)와, ω-비트 크기의 워드 기반 몽고메리 모듈러 곱셈기(12)를 포함하는 워드 기반 유한체 연산기(10)와, 타원곡선 도메인 파라미터와 워드 기반 유한체 연산의 중간 결과값을 저장하는 메모리(20)와, 동작모드를 설정하기 위한 값을 저장하며 워드 기반 유한체 연산의 중간 결과값을 저장하는 레지스터 블록(30)과, 상기 워드 기반 유한체 연산기(10), 메모리(20) 및 레지스터 블록(30)을 제어하는 동작모드 제어부(40)로 이루어진다. Referring to the drawings, the
여기서 워드 기반 유한체 연산기(10)는 ω-비트 크기의 모듈러 가산/감산기(11)와, ω-비트 크기의 워드 기반 몽고메리 모듈러 곱셈기(12)로 구성되는데, ω는 기계어 명령어나 연산을 통해 레지스터에 옮겨놓을 수 있는 데이터의 단위를 의미하는 워드(word)의 크기이며, 자연수로서 바람직하게는 16-비트 또는 32-비트 또는 48-비트 또는 64-비트 등 필요에 따라 적절하게 선택되어 구현될 수 있다.Here, the word-based
메모리(20)는 외부에서 입력되는 타원곡선 계수 값, 키 값, 모듈러 값(소수체의 경우에는 소수 p, 이진체의 경우에는 기약다항식), 타원곡선의 생성점 값을 저장하며, 또한 몽고메리 모듈러 곱셈을 위해 데이터를 몽고메리 도메인으로 매핑하기 위해 내부적으로 계산된 ((여기서 R=2N이고, N은 타원곡선의 크기를 나타내는 비트 수, p는 소수체의 경우 모듈러 값, 이진체의 경우 기약다항식을 나타냄)과 워드 기반 유한체 연산의 중간 결과값을 저장한다.The
레지스터 블록(30)은 동작모드를 설정하기 위한 값을 저장하며, 또한 내부적으로 계산된 (여기서, 는 모듈러 값 p의 최하위 워드이고, ω는 워드의 크기)값을 저장하여 몽고메리 모듈러 곱셈 과정에서 합동을 이용한 축약에 사용되도록 한다. The
또한, 메모리(20)에 저장된 키 값을 워드 단위로 읽어 저장하여 점 연산과 유한체 모듈러 연산에 사용되도록 하며, 또한 워드 기반 유한체 연산의 중간 결과 값들을 저장한다.In addition, the key value stored in the
동작모드 제어부(40)는 레지스터 블록(30)의 동작모드설정 레지스터의 값에 따라 워드 기반 유한체 연산기(10)와 메모리(20)와 레지스터 블록(30)의 동작을 제어한다. The
본 발명의 일실시예에 따른 유한체 연산장치와 제어방법에 의한 동작모드는 타원곡선 점 연산(PSM, PA, PS, PD)과 유한체 모듈러 연산(MM, MD, MI, MA, MS)을 포함하며, 또한 데이터를 몽고메리 도메인으로 매핑하기 위한 계산과 그 역매핑, 좌표계 변환을 위한 연산과, 몽고메리 모듈러 곱셈 과정에서 합동을 이용한 축약에 사용되기 위한 값의 계산과, 임의의 메시지 값을 타원곡선 상의 점으로 매핑하는 과정에서 필요한 모듈러 제곱근 계산 등을 포함한다.The operation mode according to the finite field operation device and control method according to an embodiment of the present invention includes elliptic curve point operation (PSM, PA, PS, PD) and finite field modular operation (MM, MD, MI, MA, MS). And also for mapping data to the Montgomery domain. For use in calculations and inverse mapping, for coordinate system transformation, and for reduction using congruence in the Montgomery modular multiplication process. It includes the calculation of the value and the calculation of the modular square root required in the process of mapping an arbitrary message value to a point on an elliptic curve.
동작모드설정 레지스터의 설정 값의 한 예로 아래 [표 1]과 같다.An example of the setting value of the operation mode setting register is shown in [Table 1] below.
이러한 다양한 동작모드에 의해 타원곡선 기반 전자서명 EC-DSA, 타원곡선 기반 키 교환 프로토콜인 EC-DH(Diffie-Hellman), 타원곡선 기반 메시지 암호 및 복호 프로토콜인 EC-ElGamal 등의 다양한 공개키 암호 프로토콜 구현이 가능해진다. Various public key cryptographic protocols such as EC-DSA, an elliptic curve-based electronic signature, EC-DH (Diffie-Hellman), an elliptic curve-based key exchange protocol, and EC-ElGamal, an elliptic curve-based message encryption and decryption protocol. Implementation becomes possible.
여기서 상기 타원곡선 점 연산모드는 공개키 암호 프로토콜에서 사용되는 타원곡선 상의 점(point) 스칼라 곱셈(PSM), 점 덧셈(PA), 점 두배(PD), 점 뺄셈(PS) 연산을 구현할 수 있으며, 소수체 상의 타원곡선 점 연산과 이진체 상의 타원곡선 점 연산을 선택적으로 계산한다.Here, the elliptic curve point operation mode can implement point scalar multiplication (PSM), point addition (PA), point doubling (PD), and point subtraction (PS) operations on the elliptic curve used in the public key cryptographic protocol. , Selectively calculate the elliptic curve point operation on the decimal body and the elliptic curve point operation on the binary body.
아울러 유한체 모듈러 연산모드는 공개키 암호 프로토콜에서 사용되는 모듈러 덧셈(MA), 모듈러 뺄셈(MS), 모듈러 곱셈(MM), 모듈러 나눗셈(MD), 모듈러 역원(MI) 연산을 구현할 수 있다.In addition, the finite field modular operation mode can implement modular addition (MA), modular subtraction (MS), modular multiplication (MM), modular division (MD), and modular inverse (MI) operations used in public key cryptographic protocols.
이때 모듈러 곱셈은 워드 기반 유한체 연산기(10)의 워드 기반 몽고메리 모듈러 곱셈기(12)를 통해 수행되는데, 이러한 워드 기반 몽고메리 모듈러 곱셈기(12)는 소수체 상의 곱셈과 이진체 상의 곱셈을 선택적으로 계산하는 ω-비트 크기의 듀얼 필드 곱셈기(12a)와, ω-비트 크기의 듀얼 필드 가산기(12b)와, ω-비트 크기의 레지스터(12c)와, 1-비트 캐리저장 레지스터(12d)와, 2-비트 캐리저장 레지스터(12e)와, 1-비트 가산기(12f)와, 복수 개의 선택기(12g)를 포함하여 구성된다. At this time, the modular multiplication is performed by the word-based Montgomery
이와 같은 워드 기반 몽고메리 모듈러 곱셈기(12)를 통해 연산이 수행되는 과정은 도 3에 도시된 바와 같다. A process of performing an operation through the word-based Montgomery
이를 살펴보면, 우선 단계 단계 1 내지 단계 4에서는 워드 기반 몽고메리 곱셈을 수행하기 전에, 유한체 곱셈 결과 S와, 곱셈에 의한 캐리 값 C1-1, C2-1와, 덧셈에 의한 캐리 값 cy1, cy2의 초기값을 모두 0으로 설정한 단계 1은 곱셈연산의 시작에서 초기값이 설정되고, 단계 3 및 단계 4는 i-루프가 시작될 때 마다 초기값이 설정된다.Looking at this, first, in
또한 단계 7과 단계 18은 피승수의 워드 ai와 승수의 워드 bj의 곱셈 ai × bj을 연산한다. 곱셈 결과 값 중, 상위 워드 C1은 (j+1)-루프 연산에서 캐리 입력으로 사용되며, 하위 워드 P1은 j-루프의 부분 곱으로 사용된다.In addition, in
아울러 단계 8 과 단계 19는 소수체 상의 연산은 단계 8의 j-루프에서 계산된 부분 곱 P1,(j-1)-루프에서 계산된 곱셈의 캐리 값 C1j-1, 덧셈연산에 의한 캐리 값 cy1, (i-1)-루프에서 계산된 부분 곱의 합동 값 sj을 가산하여 부분 곱의 합 H와 캐리 출력 cy1을 계산한다. In addition, in
이진체 상에서 연산은 단계 19를 통해서 P1, C1j-1, sj을 XOR연산하여 부분 곱의 합 H를 계산한다.In the operation on the binary body, the sum of partial products H is calculated by performing an XOR operation of P1, C1 j-1 and s j through step 19.
또한 단계 9 내지 단계-11과 단계 20 내지 단계 22는 최하위 워드인 j=0일 때, 모듈러 합동을 위한 데이터 와 부분 곱의 합 H를 곱하여 s-1=0인 모듈러 합동 값 S를 만들기 위한 데이터 qi 값을 계산한다. 계산된 qi 값은 소수체 상의 연산에서는 단계 12 및 단계 13, 이진체 상의 연산에서는 단계 23 및 단계 24를 통해서 모듈러 합동 값 sj-1이 계산된다.In addition, when step 9 to step 11 and step 20 to step 22 are the least significant word j = 0, data for modular congruence By multiplying by the sum of the partial products H and s -1 = 0, the data q i value is calculated to produce a modular congruent value S. The calculated q i value is a modular joint value s j-1 is calculated through
단계 12와 단계 13 및 단계 23와 단계 24는 덧셈연산에 의해 s-1=0인 모듈러 합동 값 S를 생성한다. 최하위 워드인 j=0인 경우에, 소수체 상의 연산에서 s-1=0이 되는 과정은 아래의 (1) 내지 (3)과 같으며, 이진체 상의 연산에서는 덧셈 연산이 XOR로 처리된다.
(1) 단계 10 : (1) Step 10:
(2) 단계 12 : (2) Step 12:
(3) 단계 13 : (3) Step 13:
한편 단계 15와 단계 26은 곱셈연산 결과의 최상위 워드 sm-1을 계산한다. sm-1은 워드보다 1-비트 증가된 크기를 갖는다. 소수체 상의 연산에서는 덧셈에 의한 캐리가 발생하여 sm-1의 최상위 비트 smsb는 0 또는 1의 값을 가질 수 있으며, 이진체 상의 연산에서는 덧셈에 의한 캐리가 발생하지 않으므로, smsb=0이다.Meanwhile, in
또한 단계 29는 i-루프의 반복이 완료되어 부분곱 가산이 완료되면, 소수체 상의 곱셈 결과값 S와 모듈러 값 p을 비교하여 S>p일 경우에는 S-p의 뺄셈 연산으로 축약을 수행한다. 최종 곱셈 결과 값의 모듈러 축약 연산은 모듈러 가산/감산기(11)에서 계산된다.In
한편 데이터를 몽고메리 도메인으로 매핑하기 위한 계산모드에 따른 수행과정을 설명하도록 한다. Meanwhile, to map the data to the Montgomery domain The execution process according to the calculation mode will be described.
모듈러 값 p에 대해 데이터 A, B를 몽고메리 곱셈 알고리듬으로 모듈러 곱셈을 계산하면, MM(A,B,p)=A×B×R-1 mod p가 되며, 곱셈 결과에 R-1=2-N(여기서, N은 모듈러 값 p의 비트 수를 나타냄)이 곱해진 형태로 출력된다. When calculating the data A, B in the modular multiplication algorithm the Montgomery multiplications for the modular value p, and a MM (A, B, p) = A × B × R -1 mod p, R -1 = 2 in the multiplication result - Output is multiplied by N (here, N represents the number of bits of the modular value p).
R-1이 곱해진 형태로 곱셈 결과가 얻어지는 이유는, 합동 성질을 이용하여 부분곱 가산 결과의 최하위 워드를 0으로 만들고, 이를 제거하여 축약 연산을 처리하기 때문이다. 따라서 몽고메리 알고리듬에 의한 모듈러 곱셈을 위해서는 아래 [표 2]와 같이, 곱셈의 피연산자 A와 B에 R2=22N을 곱해서 몽고메리 도메인으로 변환하는 매핑과, 몽고메리 곱셈 결과인 ABR을 역매핑해서 곱셈 결과 AB를 만드는 계산이 필요하다. The reason that the multiplication result is obtained in the form of multiplying R -1 is that the least significant word of the partial product addition result is made 0 using the congruence property, and the reduction operation is processed by removing it. Therefore, for modular multiplication by the Montgomery algorithm, as shown in [Table 2] below, the multiplication result by multiplying the operands A and B of the multiplication by R 2 =2 2N and transforming it into a Montgomery domain, and by inverse mapping the Montgomery multiplication result, ABR. We need a calculation to make AB.
몽고메리 도메인 매핑에 사용되는 R2 값은 R2=2N×2N mod p로 계산되며, 타원 곡선에 따라 모듈러 값 p와 p의 비트 수 N이 다르다. 본 발명에 따른 워드 기반 유한체 연산기(10)의 워드 기반 몽고메리 모듈러 곱셈기(12)는 몽고메리 모듈러 곱셈을 계산하므로, 가 되어 R2 값을 계산할 수 없다. R 2 values used in the Montgomery domain mapping, R 2 = 2 N × 2 N mod p is calculated by, a different number of bits of the modular value of p and p in accordance with the elliptic curve N. Since the word-based Montgomery
본 발명에서는 워드 기반 몽고메리 모듈러 곱셈기(12)를 이용하여 R2 값을 계산하기 위해 도 4의 슈도코드로 표현되는 계산 방법을 제공한다. In the present invention, in order to calculate the value of R 2 using the word-based Montgomery
본 발명에서 제공하는 도 4의 슈도코드에 의한 방법은 단순한 시프트와 뺄셈 연산을 2(m×ω)-회 반복 계산하여 부가적인 하드웨어 없이 값을 효율적으로 계산할 수 있다. The method according to the pseudo-code of FIG. 4 provided by the present invention performs a simple shift and subtraction operation 2 (m×ω)-times iterative calculation without additional hardware. You can calculate the value efficiently.
여기서, ω는 워드 기반 유한체 연산기에서 처리되는 워드의 크기를 나타내며, m=N/ω 는 모듈러 값 p를 구성하는 ω-비트 워드의 개수를 나타낸다.Here, ω represents the size of a word processed by the word-based finite field operator, and m=N/ω represents the number of ω-bit words constituting the modular value p.
한편 몽고메리 모듈러 곱셈 과정에서 합동을 이용한 축약에 사용되기 위한 값의 계산 과정을 살펴보도록 한다. Meanwhile, in Montgomery's modular multiplication process, Let's look at the process of calculating the value.
도 2에 도시된 바와 같이 워드 기반 몽고메리 모듈러 곱셈기의 동작 슈도코드에 의한 몽고메리 모듈러 곱셈 연산 과정에서 합동을 이용하여 부분곱 가산 결과의 최하위 워드를 0으로 만들기 위해서는 상수 값 가 필요하다.As shown in Fig. 2, in order to make the least significant word of the partial
여기서, 는 모듈러 값 p의 최하위 워드(ω-비트)를 나타내며, 타원곡선에 따라 모듈러 값 p와 p의 비트 수 N이 다르다. here, Denotes the least significant word (ω-bit) of the modular value p, and the number of bits N of the modular value p and p differs according to the elliptic curve.
본 발명에서는 워드 기반 유한체 연산기(10)를 이용하여 값을 계산하기 위해 도 5에 도시된 슈도코드로 표현되는 계산 방법을 제공한다. In the present invention, using the word-based
본 발명에 따른 도 5의 슈도코드에 의한 방법은 워드 기반 몽고메리 곱셈을 (ω-2)-회 반복 계산하여 의 곱의 역원 을 구한 후, 그 결과를 0에서 뺄셈 연산하여 부가적인 하드웨어 없이 값을 효율적으로 계산할 수 있다.In the method according to the pseudocode of FIG. 5 according to the present invention, the word-based Montgomery multiplication is repeatedly calculated (ω-2)-times Inverse of the product of After finding, the result is subtracted from zero without additional hardware. You can calculate the value efficiently.
또한 타원곡선 기반의 EC-ElGamal 암호화를 위해 메시지 데이터 x를 타원곡선 상의 점 (x, y)로 매핑하는 과정이 필요한데, 이를 위해서는 아래 (식 1)의 타원곡선 방정식에 타원곡선 계수 a와 b 그리고 메시지 데이터 x를 대입하여 (식 2)에 의해 y2 equ 값을 계산하고, z=y2 equ 의 모듈러 제곱근 를 구하면, 메시지 x를 타원곡선 상의 점 (x, )로 매핑할 수 있다. In addition, for EC-ElGamal encryption based on an elliptic curve, a process of mapping the message data x to the points (x, y) on the elliptic curve is required.To this end, the elliptic curve coefficients a and b and the elliptic curve coefficients a and b are in the elliptic curve equation of (Equation 1) below. Substituting the message data x and calculating the value of y 2 equ by (Equation 2), z=y 2 equ Modular square root of If we get the message x, the point on the elliptic curve (x, ) Can be mapped.
z=y2에 대해 z(p-1)/2 = y(p-1) 이므로, 페르마 소정리(Fermat’s little theorem)에 의해 이 되며, 타원곡선의 모듈러 값 p에 대해 (p+1) mod 4=0인 경우에 대해 (식 3)이 성립하므로, z의 제곱근 은 (식 4)와 같이 표현된다. Since z (p-1)/2 = y (p-1) for z=y 2 , Fermat's little theorem Is, and (Equation 3) holds for the case of (p+1)
따라서, (식 2)에 의해 z=y2 equ을 계산하고, (식 4)에 의해 z의 모듈러 제곱근 zsqrt를 구할 수 있다. 그러나 z=y2 equ의 모듈러 제곱근이 존재하지 않는 경우도 있으므로, 계산된 zsqrt 값을 제곱하여 y2 cal=z2 sqrt을 계산하고, (식 2)로 계산된 y2 equ와 비교해서 모듈러 제곱근의 존재 여부를 판단해야 한다. 만약 y2 cal=y2 equ이면, (식 4)에 의해 계산된 zsqrt 값은 z=y2 equ의 제곱근이며, 메시지 데이터 x를 타원곡선 상의 점 (x, y)=(x, zsqrt)로 매핑이 완료된다. 만약, y2 cal≠y2 equ이면, (식 4)에 의해 계산된 값은 z=y2 equ의 제곱근 값이 아니며, 이 경우에는 메시지 데이터를 x+1로 변경하여, 앞에서 설명된 과정을 반복한다. Therefore, z=y 2 equ is calculated by (Equation 2), and the modular square root z sqrt of z can be obtained by (Equation 4). However, in some cases, the modular square root of z=y 2 equ does not exist, so y 2 cal =z 2 sqrt is calculated by squaring the calculated z sqrt value, and it is compared with y 2 equ calculated by (Equation 2). It is necessary to determine whether the square root is present or not. If y 2 cal =y 2 equ , the z sqrt value calculated by (Equation 4) is the square root of z=y 2 equ , and the message data x is the point on the elliptic curve (x, y) = (x, z sqrt ) To complete the mapping. If y 2 cal ≠y 2 equ, then the value calculated by (Equation 4) is not the square root of z=y 2 equ . In this case, the message data is changed to x+1, and the previously described process is performed. Repeat.
물론 새로운 메시지 데이터를 입력받아 단계 1부터 다시 반복할 수도 있다. Of course, new message data may be input and repeat from
본 발명은 도 1의 워드 기반 유한체 연산기를 이용하여 앞에서 설명된 과정에 따라 메시지 데이터 x를 타원곡선 상의 점 (x, y)로 매핑하기 위한 도 6의 슈도코드로 표현되는 방법을 제공한다. The present invention provides a method represented by the pseudocode of FIG. 6 for mapping message data x to points (x, y) on an elliptic curve according to the process described above using the word-based finite field operator of FIG. 1.
본 발명에 의한 도 6의 슈도코드에서 A와 B는 (식 1)의 타원곡선 방정식의 계수 a와 b를 각각 나타내며, X는 메시지 데이터 x를 나타내고, p는 타원곡선의 모듈러 값을 나타낸다. In the pseudocode of FIG. 6 according to the present invention, A and B represent the coefficients a and b of the elliptic curve equation of (Equation 1), respectively, X represents the message data x, and p represents the modular value of the elliptic curve.
도 6의 슈도코드에 의한 상세 연산 과정은 아래와 같다.The detailed operation process according to the pseudo code of FIG. 6 is as follows.
우선 단계 1은 메시지 데이터 X와 타원곡선 계수 A와 B를 각각 몽고메리 도메인으로 매핑하며, 본 발명에 의한 도 4의 값 계산 방법에 의해 계산된다.First,
단계 2는 (p+1) mod 4=0이 성립하는 경우(NIST 표준의 타원곡선 P-192, P-256, P-384, P-521)에 대해, (p+1)/4를 계산한다.
단계 3은 y2 cal의 제곱근 zsqrt를 계산하기 위한 초기 값을 설정한다.Step 3 sets an initial value for calculating the square root z sqrt of y 2 cal.
단계 4 내지 단계 7은 (식 2)에 의해 y2 equ를 본 발명에 의한 도 3의 워드 기반 몽고메리 모듈러 곱셈 방법과 모듈러 가산/감산기에 의해 계산한다.
단계 8 내지 단계 15는 (식 4)의 관계를 이용하여 zsqrt 값을 본 발명에 의한 도 3의 워드 기반 몽고메리 모듈러 곱셈 방법으로 계산한다. In steps 8 to 15, z sqrt values are calculated by the word-based Montgomery modular multiplication method of FIG. 3 according to the present invention using the relationship of (Equation 4).
단계 16은 단계 8 내지 단계 15에서 계산된 zsqrt 값을 제곱 연산하여 y2 cal 값을 본 발명에 의한 도 3의 워드 기반 몽고메리 모듈러 곱셈 방법으로 계산한다.In
단계 17 내지 단계 18은 y2 cal=y2 equ이면, 단계 8 내지 단계 15에서 계산된 zsqrt 값은 모듈러 제곱근 값이며, 단계 23으로 이동한다.If
단계 19 내지 단계 21은 y2 cal≠y2 equ이면 단계 8 내지 단계 15에서 계산된 zsqrt 값은 모듈러 제곱근 값이 아니며, 이 경우에는 메시지 데이터 x를 x+1로 변경하기 위해 몽고메리 도메인에서 모듈러 가산 (XR+R) mod p을 계산하고, 단계 2로 이동하여 다시 계산한다.If
또는 새로운 메시지 데이터를 입력받아 단계 1부터 다시 반복할 수도 있다. Alternatively, new message data may be input and repeat from
단계 23 및 단계 24는 단계-17에 의해 유효한 모듈러 제곱근으로 확인된 zsqrt는 몽고메리 도메인의 값이므로, 본 발명에 의한 도 3의 워드 기반 몽고메리 모듈러 곱셈 방법에 의한 역매핑을 통해 타원곡선 상의 x-좌표 값 X와 y-좌표 값 Y로 변환된다. In Steps 23 and 24, since z sqrt identified as a valid modular square root in Step-17 is a value of the Montgomery domain, x- on an elliptic curve through inverse mapping by the word-based Montgomery modular multiplication method of FIG. 3 according to the present invention. It is converted into a coordinate value X and a y-coordinate value Y.
한편 타원곡선 점 연산 방법은 본 발명에 따른 연산장치에 의해 공개키 암호 프로토콜에서 사용되는 타원곡선 상의 점(point) 스칼라 곱셈(PSM), 점 덧셈(PA), 점 두배(PD), 점 뺄셈(PS) 연산을 구현할 수 있으며, 소수체 상의 타원곡선 점 연산과 이진체 상의 타원곡선 점 연산을 선택적으로 계산한다. On the other hand, the elliptic curve point calculation method includes points on the elliptic curve used in the public key cryptographic protocol by the computing device according to the present invention, scalar multiplication (PSM), addition of points (PA), doubling of points (PD), and subtraction of points ( PS) operation can be implemented, and it selectively calculates the elliptic curve point operation on the decimal body and the elliptic curve point operation on the binary body.
소수체 상의 타원곡선 점 연산 과정에는 자코비안(Jacobian) 투영(projection) 좌표계가 적용되며, 2차원 아핀(affine) 좌표계를 적용하는 방식에서 필요한 유한체 나눗셈 연산 없이 유한체 곱셈, 유한체 덧셈, 유한체 뺄셈으로 점 연산을 계산할 수 있다. 이진체 상의 타원곡선 점 연산 과정에는 로페즈-다합(Lopez-Dahab) 투영 좌표계가 적용되며, 2차원 아핀(affine) 좌표계를 적용하는 방식에서 필요한 유한체 나눗셈 연산 없이 유한체 곱셈, 유한체 덧셈, 유한체 뺄셈으로 점 연산을 계산할 수 있다. The Jacobian projection coordinate system is applied to the process of calculating the elliptic curve point on a prime number. You can calculate point operations with sieve subtraction. The Lopez-Dahab projection coordinate system is applied to the process of calculating the elliptic curve point on a binary body. You can calculate point operations with sieve subtraction.
본 발명의 장치와 방법에 의한 타원곡선 상의 점 연산을 위한 상세 동작순서는 다음과 같다.A detailed operation sequence for calculating a point on an elliptic curve by the apparatus and method of the present invention is as follows.
우선 점 덧셈은,First of all, point addition,
「① 타원곡선 도메인 파라미터와, 타원곡선 상의 점 (Ax, Ay)와 (Bx, By) 값 입력 → ② 값과 값 계산 → ③ 워드 기반 몽고메리 곱셈 WMM(Ax, R2, p)=A* x, WMM(Ay, R2, p)=A* y와 WMM(Bx, R2, p)=B* x, WMM(By, R2, p)=B* y, WMM(1, R2, p)=1*에 의해 몽고메리 도메인으로 매핑 → ④ 자코비안 좌표계(소수체 상의 타원곡선의 경우) 또는 로페즈-다합 좌표계(이진체 상의 타원곡선의 경우)로 매핑된 점 Az=(A* x, A* y, 1*)와 Bz=(B* x, B* y, 1*)에 대해 모듈러 가산 및 감산과 몽고메리 모듈러 곱셈의 반복 연산에 의해 점 덧셈 (Q* x, Q* y, Q* z)=Az+Bz을 계산 → ⑤ 점 덧셈 연산결과 (Q* x, Q* y, Q* z)를 아핀 좌표계의 점 (Q* x/(Q* z)c, Q* y/(Q* z)d)=(P* x, P* y)으로 좌표계 변환하며, 이 때, 자코비안 좌표계의 경우에 c=2, d=3 을 적용하여 계산하고, 로페즈-다합 좌표계의 경우에는 c=1, d=2 를 적용하여 계산함 → ⑥ 아핀 좌표계로 변환된 점 (P* x, P* y)를 워드 기반 몽고메리 곱셈 WMM(P* x, 1, p)=Px와 WMM(P* y, 1, p)=Py에 의한 리매핑으로 점 덧셈 연산결과 (Px, Py)를 계산 → ⑦ 점 덧셈 연산결과 값 (Px, Py)를 출력」「① Enter the elliptic curve domain parameter and the points on the elliptic curve (A x , A y ) and (B x , B y ) values → ② Value and Value calculation → ③ Word-based Montgomery multiplication WMM(A x , R 2 , p)=A * x , WMM(A y , R 2 , p)=A * y and WMM(B x , R 2 , p)=B Mapping to Montgomery's domain by * x , WMM(B y , R 2 , p)=B * y , WMM(1, R 2 , p)=1 * → ④ Jacobian coordinate system (in case of elliptic curve on a decimal point) Or to the point A z =(A * x , A * y , 1 * ) and B z =(B * x , B * y , 1 * ) mapped to the Lopez-Multisum coordinate system (for an elliptic curve on a binary body). Calculate point addition (Q * x , Q * y , Q * z )=A z +B z → ⑤ Calculate point addition operation result (Q * x , Q * ) by iterative operations of modular addition and subtraction and Montgomery's modular multiplication. y , Q * z ) into affine coordinate system points (Q * x /(Q * z ) c , Q * y /(Q * z ) d )=(P * x , P * y ) In the case of the Jacobian coordinate system, c=2, d=3 is applied, and in the case of the Lopez-multiple coordinate system, c=1, d=2 is applied → ⑥ The point converted to the affine coordinate system (P * x , P * y ) by word-based Montgomery multiplication WMM(P * x , 1, p)=P x and WMM(P * y , 1, p)=P y by remapping by point addition operation result (P x , Calculate P y ) → ⑦ Output the result of point addition operation (P x , P y )」
으로 계산된다. Is calculated as.
다음으로 점 두배는, Next, double the point,
「① 타원곡선 도메인 파라미터와, 타원곡선 상의 점 (Ax, Ay) 값 입력 → ② 값과 값 계산 → ③ 워드 기반 몽고메리 곱셈 WMM(Ax, R2, p)=A* x, WMM(Ay, R2, p)=A* y와 WMM(1, R2, p)=1*에 의해 몽고메리 도메인으로 매핑 → ④ 자코비안 좌표계(소수체 상의 타원곡선의 경우) 또는 로페즈-다합 좌표계(이진체 상의 타원곡선의 경우)로 매핑된 점 Az=(A* x, A* y, 1*)에 대해 모듈러 가산 및 감산과 몽고메리 모듈러 곱셈의 반복 연산에 의해 점 두배 (Q* x, Q* y, Q* z)=2Az를 계산 → ⑤ 점 두배 연산결과 (Q* x, Q* y, Q* z)를 아핀 좌표계의 점 (Q* x/(Q* z)c, Q* y/(Q* z)d)=(P* x, P* y)으로 좌표계 변환하며, 이 때, 자코비안 좌표계의 경우에 c=2, d=3을 적용하여 계산하고, 로페즈-다합 좌표계의 경우에는 c=1, d=2를 적용하여 계산함 → ⑥ 아핀 좌표계로 변환된 점 (P* x, P* y)를 워드 기반 몽고메리 곱셈 WMM(P* x, 1, p)=Px와 WMM(P* y, 1, p)=Py에 의한 리매핑으로 점 두배 연산결과 (Px, Py)를 계산 → ⑦ 점 두배 연산결과 값 (Px, Py)를 출력」「① Enter the elliptic curve domain parameter and the point (A x , A y) value on the elliptic curve → ② Value and Value calculation → ③ Word-based Montgomery multiplication WMM(A x , R 2 , p)=A * x , WMM(A y , R 2 , p)=A * y and WMM(1, R 2 , p)=1 * Mapped to Montgomery's domain by → ④ Points mapped to the Jacobian coordinate system (for elliptic curves on decimal bodies) or Lopez-multiple coordinates (for elliptic curves on binary bodies) A z =(A * x , A * y , Calculate point doubling (Q * x , Q * y , Q * z ) = 2A z by iterative operation of modular addition and subtraction and Montgomery's modular multiplication for 1 * ) → ⑤ Calculation of point doubling result (Q * x , Q * y , Q * z ) into affine coordinate system points (Q * x /(Q * z ) c , Q * y /(Q * z ) d )=(P * x , P * y ), At this time, in the case of the Jacobian coordinate system, c=2 and d=3 are applied to the calculation, and in the case of the Lopez-multiple coordinate system, the calculation is performed by applying c=1, d=2 → ⑥ The point converted to the affine coordinate system ( P * x, P * y) (P a word-based Montgomery multiplication WMM * x, 1, p) = P x and WMM (P * y, 1, p) = point doubling calculation result to remapping by P y (P Calculate x , P y ) → ⑦ Output the point doubling operation result (P x , P y )」
으로 계산된다. Is calculated as.
다음으로 점 스칼라 곱셈은 ① 타원곡선 도메인 파라미터와, 타원곡선 상의 점 (Ax, Ay) 값과 키 값 K입력 → ② 값과 값 계산 → ③ 워드 기반 몽고메리 곱셈 WMM(Ax, R2, p)=A* x, WMM(Ay, R2, p)=A* y와 WMM(1, R2, p)=1*에 의해 몽고메리 도메인으로 매핑 → ④ 자코비안 좌표계(소수체 상의 타원곡선의 경우) 또는 로페즈-다합 좌표계(이진체 상의 타원곡선의 경우)로 매핑된 점 Az=(A* x, A* y, 1*)에 대해 상기 점 덧셈 연산과 상기 점 두배 연산에 의해 점 스칼라 곱셈 을 계산 (Q* x, Q* y, Q* z)=K×Az을 계산 → ⑤ 점 스칼라 곱셈 연산결과 (Q* x, Q* y, Q* z)를 아핀 좌표계의 점 (Q* x/(Q* z)c, Q* y/(Q* z)d)=(P* x, P* y)으로 좌표계 변환하며, 이 때 자코비안 좌표계의 경우에 c=2, d=3을 적용하여 계산하고, 로페즈-다합 좌표계의 경우에는 c=1, d=2를 적용하여 계산함 → ⑥ 아핀 좌표계로 변환된 점 (P* x, P* y)를 워드 기반 몽고메리 곱셈 WMM(P* x, 1, p)=Px와 WMM(P* y, 1, p)=Py에 의한 리매핑으로 점 스칼라 곱셈 연산결과 (Px, Py)를 계산 → ⑦ 점 스칼라 곱셈 연산결과 값 (Px, Py)를 출력」Next, the point scalar multiplication is ① elliptic curve domain parameter, point on elliptic curve (A x , A y ) value and key value K input → ② Value and Value calculation → ③ Word-based Montgomery multiplication WMM(A x , R 2 , p)=A * x , WMM(A y , R 2 , p)=A * y and WMM(1, R 2 , p)=1 * Mapped to Montgomery's domain by → ④ Points mapped to the Jacobian coordinate system (for elliptic curves on decimal bodies) or Lopez-multiple coordinates (for elliptic curves on binary bodies) A z =(A * x , A * y , Calculate point scalar multiplication for 1 * ) by the point addition operation and the point doubling operation (Q * x , Q * y , Q * z ) = K×A z → ⑤ Point scalar multiplication result (Q * x , Q * y , Q * z ) into points in the affine coordinate system (Q * x /(Q * z ) c , Q * y /(Q * z ) d )=(P * x , P * y ) The coordinate system is converted, and calculated by applying c=2 and d=3 in the case of Jacobian coordinate system, and calculating by applying c=1, d=2 in the case of Lopez-multiple coordinate system → ⑥ Converted to affine coordinate system the point (P * x, P * y ) the word-based Montgomery multiplication WMM (P * x, 1, p) = P x and WMM point scalar multiplication as a remapping by (P * y, 1, p ) = P y Calculate the operation result (P x , P y ) → ⑦ Output the point scalar multiplication operation result value (P x , P y )」
으로 계산된다. Is calculated as.
다음으로 점 뺄셈은, Next, the point subtraction is,
「① 타원곡선 도메인 파라미터와, 타원곡선 상의 점 (Ax, Ay)와 (Bx, By)값 입력 → ② 값과 값 계산 → ③ 워드 기반 몽고메리 곱셈 WMM(Ax, R2, p)=A* x, WMM(Ay, R2, p)=A* y와 WMM(Bx, R2, p)=B* x, WMM(By, R2, p)=B* y, WMM(1, R2, p)=1*에 의해 몽고메리 도메인으로 매핑 → ④ 몽고메리 도메인으로 매핑된 점 B의 y-좌표 값 B* y에 대해 0-B* y mod p의 모듈러 뺄셈 연산으로 x-축에 대한 대칭점 -B* y를 계산 → ⑤ 자코비안 좌표계(소수체 상의 타원곡선의 경우) 또는 로페즈-다합 좌표계(이진체 상의 타원곡선의 경우)로 매핑된 점 Az=(A* x, A* y, 1*)와 Bz=(B* x,-B* y, 1*)에 대해 모듈러 가산 및 감산과 몽고메리 모듈러 곱셈의 반복 연산에 의해 점 뺄셈 (Q* x, Q* y, Q* z)=Az -B z 을 계산 → ⑥ 점 뺄셈 연산결과 (Q* x, Q* y, Q* z)를 아핀 좌표계의 점 (Q* x/(Q* z)c, Q* y/(Q* z)d)=(P* x, P* y)으로 좌표계 변환 연산하며, 자코비안 좌표계의 경우에 c=2, d=3이고, 로페즈-다합 좌표계의 경우에는 c=1, d=2를 적용 → ⑦ 아핀 좌표계로 변환된 점 (P* x, P* y)를 워드 기반 몽고메리 곱셈 WMM(P* x, 1, p)=Px와 WMM(P* y, 1, p)=Py에 의한 리매핑으로 점 뺄셈 연산결과 (Px, Py)를 계산 → ⑧ 점 뺄셈 연산결과 값 (Px, Py)를 출력」「① Enter the elliptic curve domain parameter and the points (A x , A y ) and (B x , B y) values on the elliptic curve → ② Value and Value calculation → ③ Word-based Montgomery multiplication WMM(A x , R 2 , p)=A * x , WMM(A y , R 2 , p)=A * y and WMM(B x , R 2 , p)=B * x , WMM(B y , R 2 , p)=B * y , WMM(1, R 2 , p)=1 * mapped to Montgomery domain → ④ y-coordinate value of point B mapped to Montgomery domain for B * y modular subtraction operations of the 0-B * y mod p calculate daechingjeom * -B y for the x- axis → ⑤ Jacobian coordinate system (in the case of an elliptic curve on the prime number form) or Lopez-Dahab coordinate system (binary For elliptic curves on a body), the mapped points A z = (A * x , A * y , 1 * ) and B z = (B * x , -B * y , 1 * ), with modular addition and subtraction Subtract points by iterative operation of Montgomery's modular multiplication (Q * x , Q * y , Q * z )=A z -B z → ⑥ Point subtraction operation result (Q * x , Q * y , Q * z ) affine the point of coordinate system (Q * x /(Q * z ) c , Q * y /(Q * z ) d )= (P * x , P * y ) converts the coordinate system and applies c=2, d=3 in the Jacobian coordinate system, and c=1, d=2 in the Lopez-multiple coordinate system → ⑦ Affine coordinate system The converted point (P * x , P * y ) to the word-based Montgomery multiplication WMM(P * x , 1, p)=P x and WMM(P * y , 1, p)=P y by remapping Calculate the result of the subtraction operation (P x , P y ) → ⑧ Output the value of the point subtraction operation result (P x , P y )」
으로 계산된다. Is calculated as.
한편 본 발명에 따른 연산장치(100)는 공개키 암호 프로토콜에 사용되는 모듈러 덧셈(MA), 모듈러 뺄셈(MS), 모듈러 곱셈(MM), 모듈러 나눗셈(MD), 모듈러 역원(MI) 연산을 구현할 수 있다. 모듈러 연산을 위한 상세 동작순서는 다음과 같다.Meanwhile, the
우선 모듈러 덧셈은 First of all, modular addition
① 피연산자 A, B와 모듈러 값 p 입력 → ② 모듈러 덧셈 연산 Q=A+B mod p를 계산 → ③ 모듈러 덧셈 연산결과 값 Q를 출력한다.① Input operands A and B and the modular value p → ② Calculate the modular addition operation Q=A+B mod p → ③ Output the modular addition operation result Q.
다음으로 모듈러 뺄셈은 Next, modular subtraction
① 피연산자 A, B와 모듈러 값 p 입력 → ② 모듈러 뺄셈 연산 Q=A-B mod p를 계산 → ③ 모듈러 뺄셈 연산결과 값 Q를 출력한다. ① Input operands A and B and the modular value p → ② Calculate the modular subtraction operation Q=A-B mod p → ③ Output the modular subtraction result Q.
또한 모듈러 곱셈은 Also modular multiplication is
① 피연산자 A, B와 모듈러 값 p입력 → ② 값과 값 계산 → ③ 워드 기반 몽고메리 곱셈 WMM(A, R2, p)=A*에 의해 피연산자 A를 몽고메리 도메인으로 매핑 → ④ 워드 기반 몽고메리 곱셈 WMM(A*, B, p)에 의해 모듈러 곱셈 연산 Q=A×B mod p를 계산 → ⑤ 모듈러 곱셈 연산결과 값 Q를 출력한다. ① Input operands A and B and modular value p → ② Value and Value calculation → ③ Word-based Montgomery multiplication WMM(A, R 2 , p)=A * Map operand A to Montgomery domain → ④ Word-based Montgomery multiplication WMM(A * , B, p) by modular multiplication operation Q =A×B mod p is calculated → ⑤ Modular multiplication result value Q is output.
아울러 모듈러 역원은 In addition, the modular station
① 피연산자 A와 모듈러 값 p 입력 → ② 값과 값 계산 → ③ 워드 기반 몽고메리 곱셈 WMM(A, R2, p)=A*와, WMM(1, R2, p)=1*에 의해 몽고메리 도메인으로 매핑 → ④ 워드 기반 몽고메리 곱셈 WMM(A*, T, p)의 반복 연산에 의해 피연산자 A*의 모듈러 역원 을 계산 → ⑤ 워드 기반 몽고메리 곱셈 WMM(, 1, p)에 의한 리매핑으로 모듈러 역원 Q=A-1 mod p 계산 → ⑥ 모듈러 역원 연산결과 값 Q를 출력한다. ① Input operand A and modular value p → ② Value and Value calculation → ③ Word-based Montgomery multiplication WMM(A, R 2 , p)=A * Mapped to Montgomery domain by WMM(1, R 2 , p)=1 * → ④ Word-based Montgomery multiplication WMM(A * , T, p) modular inverse of operand A * → ⑤ word-based Montgomery multiplication WMM( , 1, p) Calculate modular inverse Q=A -1 mod p by remapping → ⑥ Modular inverse calculation result value Q is output.
마지막으로 모듈러 나눗셈은Finally, modular division
① 피연산자 A, B와 모듈러 값 p 입력 → ② 값과 값 계산 → ③ 워드 기반 몽고메리 곱셈 WMM(B, R2, p)=B*와, WMM(1, R2, p)=1*에 의해 몽고메리 도메인으로 매핑 → ④ 워드 기반 몽고메리 곱셈 WMM(B*, T, p)의 반복 연산에 의해 피연산자 B*의 모듈러 역원 을 계산 → ⑤ 워드 기반 몽고메리 곱셈 WMM(A,, p)에 의해 모듈러 나눗셈 Q=(A/B) mod p를 계산 → ⑥ 모듈러 나눗셈 연산결과 값 Q를 출력한다. ① Input operands A and B and modular value p → ② Value and Value calculation → ③ Word-based Montgomery multiplication WMM(B, R 2 , p)=B * and WMM(1, R 2 , p)=1 * Mapped to Montgomery domain → ④ Word-based Montgomery multiplication WMM(B * , T, p) modular inverse of operand B * → ⑤ word-based Montgomery multiplication WMM(A, Calculate the modular division Q=(A/B) mod p by, p) → ⑥ Output the modular division result value Q.
아울러 본 발명의 일실시예에 따른 연산방법으로 상기 연산장치를 통해 타원곡선 도메인 파라미터와 데이터가 연산장치에 입력되는 제1단계와, 동작모드 제어부(40)의 제어에 따라 타원곡선에 따른 초기 파라미터 값으로서 워드기반 몽고메리 모듈러 곱셈을 위해 데이터를 몽고메리 도메인으로 매핑하는데 필요한 가 계산되는 제2단계와, 동작모드에 따른 동작모드 제어부(40)의 제어에 따라 타원곡선 점 연산(PSM, PA, PS, PD)과 유한체 모듈러 연산(MM, MD, MI, MA, MS)이 수행되는 제3단계와, 좌표계 변환 단계로, 소수체의 경우에는 자코비안(Jacobian) 좌표계에서 2차원 아핀(affine) 좌표계로, 이진체의 경우에는 로페즈-다합(Lopez-Dahab) 좌표계에서 2차원 아핀 좌표계로 변환이 수행되는 제4단계와, 몽고메리 도메인에서 계산된 연산결과에 포함되어 있는 을 제거하기 위해 리매핑(re-mapping)되는 제5단계와, 상기 제5단계의 결과데이터가 출력되는 제6단계로 이루어진다. In addition, a first step in which the elliptic curve domain parameter and data are input to the calculating device through the calculating device by the operation method according to an embodiment of the present invention, and the initial parameter according to the elliptic curve under the control of the
전술한 바와 같이 본 발명에 따른 연산방법은 연산장치에 타원곡선 도메인 파라미터와 데이터가 입력된 후 동작모드 제어부(40)의 제어에 따라 몽고메리 도메인으로 매핑하는데 필요한 가 계산된다. 의 계산 과정은 전술한 바와 같다. As described above, the calculation method according to the present invention is necessary for mapping to the Montgomery domain under the control of the
그런 다음 동작모드 제어부(40)의 제어에 따라 타원곡선 점 연산(PSM, PA, PS, PD)과 유한체 모듈러 연산(MM, MD, MI, MA, MS)이 수행되며, 타원곡선 점 연산과 유한체 모듈러 연산 과정은 전술한 바와 같다. Then, under the control of the
그런 다음 좌표계를 변환하는 단계가 수행되는데, 소수체의 경우에는 자코비안(Jacobian) 좌표계에서 2차원 아핀(affine) 좌표계로, 이진체의 경우에는 로페즈-다합(Lopez-Dahab) 좌표계에서 2차원 아핀 좌표계로 변환을 수행하게 된다. Then, the step of transforming the coordinate system is performed. In the case of a minor body, the two-dimensional affine from the Jacobian coordinate system to a two-dimensional affine coordinate system, and in the case of a binary body, a two-dimensional affine from the Lopez-Dahab coordinate system. Transformation is performed in the coordinate system.
다음으로 몽고메리 도메인에서 계산된 연산결과에 포함되어 있는 을 제거하기 위해 부가적인 하드웨어 없이 본 발명에 따른 연산장치를 이용하여 내부적으로 계산하는 리매핑(re-mapping) 단계가 수행되고, 최종적으로 결과가 출력되게 된다. Next, included in the calculation result calculated in the Montgomery domain In order to remove the data, a re-mapping step that is internally calculated using the computing device according to the present invention without additional hardware is performed, and the result is finally output.
본 발명에 따른 연산방법에서 연산장치는 유한체 연산기의 비트 크기에 따라 반복적인 연산을 통해 다수의 형태를 가지는 타원곡선을 지원하며, 타원곡선에 따라 달라지는 모듈러 값 p를 외부에서 입력받은 후, 몽고메리 모듈러 곱셈 및 유한체 연산에 필요한 값과, 몽고메리 곱셈 과정에서 합동(congruence)을 이용한 축약 연산에 사용되는 를 계산하도록 구성되게 되며, 타원곡선 기반의 EC-ElGamal 암호화를 위해 메시지 데이터를 타원곡선 상의 점으로 매핑하는 과정에서 필요한 모듈러 제곱근 연산을 계산할 수 있어 외부의 별도 하드웨어 부가 없이 효율적이며 신속하게 계산이 이루어질 수 있다. In the calculation method according to the present invention, the computing device supports elliptic curves having multiple shapes through repetitive calculations according to the bit size of the finite field calculator, and after receiving a modular value p that varies according to the elliptic curve from the outside, Montgomery Required for modular multiplication and finite field operations Value and the congruence used in the Montgomery multiplication process. In the process of mapping message data to points on the elliptic curve for EC-ElGamal encryption based on an elliptic curve, the required modular square root operation can be calculated, so that the calculation can be performed efficiently and quickly without additional external hardware. I can.
이와 같이 본 발명은 도면에 도시된 일실시예를 참고로 설명되었으나, 이는 예시적인 것에 불과하며, 본 기술 분야의 통상의 지식을 가진 자라면 이로부터 다양한 변형 및 균등한 타 실시예가 가능하다는 점을 이해할 것이다. As described above, the present invention has been described with reference to an embodiment shown in the drawings, but this is only exemplary, and those of ordinary skill in the art can recognize that various modifications and other equivalent embodiments are possible therefrom. I will understand.
따라서, 본 발명의 진정한 기술적 보호범위는 첨부된 특허청구범위의 기술적 사상에 의해 정해져야 할 것이다.Therefore, the true technical protection scope of the present invention should be determined by the technical spirit of the appended claims.
10 : 워드 기반 유한체 연산기
20 : 메모리
30 : 레지스터 블록
40 : 동작모드 제어부
100 : 연산장치10: word-based finite field operator 20: memory
30: register block 40: operation mode control unit
100: operation device
Claims (7)
타원곡선 도메인 파라미터와 워드 기반 유한체 연산의 중간 결과값을 저장하는 메모리(20)와;
동작모드를 설정하기 위한 값을 저장하며 워드 기반 유한체 연산의 중간 결과값을 저장하는 레지스터 블럭(30)과;
상기 워드 기반 유한체 연산기(10), 메모리(20) 및 레지스터 블록(30)을 제어하는 동작모드 제어부(40);를
포함하는 것을 특징으로 하는 소수체와 이진체 상의 타원곡선을 지원하는 공개키 암호 시스템의 하드웨어 구현을 위한 연산장치.
(여기서 ω는 워드의 크기를 나타내는 자연수)
a word-based finite field operator 10 including a ω-bit sized modular adder/subtracter 11 and a ω-bit sized word-based Montgomery modular multiplier 12;
A memory 20 for storing an elliptic curve domain parameter and an intermediate result value of a word-based finite field operation;
A register block 30 that stores a value for setting an operation mode and stores an intermediate result value of a word-based finite field operation;
An operation mode control unit 40 that controls the word-based finite field operator 10, the memory 20, and the register block 30;
A computing device for hardware implementation of a public key cryptographic system that supports elliptic curves on prime numbers and binary bodies, comprising:
(Where ω is a natural number representing the size of a word)
상기 레지스터 블록(30)에 저장되며, 동작모드 제어부(40)에 의해 제어되는 동작모드는
타원곡선 점 연산모드과,
유한체 모듈러 연산모드를 포함하는 것을 특징으로 하는 소수체와 이진체 상의 타원곡선을 지원하는 공개키 암호 시스템의 하드웨어 구현을 위한 연산장치.
The method of claim 1,
The operation mode stored in the register block 30 and controlled by the operation mode control unit 40 is
Elliptic curve point operation mode,
A computing device for hardware implementation of a public key cryptographic system that supports elliptic curves on prime numbers and binary bodies, comprising a finite field modular operation mode.
상기 동작모드는
데이터를 몽고메리 도메인으로 매핑하기 위한 계산모드와,
몽고메리 도메인의 연산결과를 정수 도메인으로 변환하는 역매핑모드와,
좌표계 변환을 위한 연산과, 몽고메리 모듈러 곱셈 과정에서 합동을 이용한 축약에 사용되기 위한 값의 계산모드와,
임의의 메시지 값을 타원곡선 상의 점으로 매핑하는 과정에서 필요한 모듈러 제곱근 계산모드를 더 포함하는 것을 특징으로 하는 소수체와 이진체 상의 타원곡선을 지원하는 공개키 암호 시스템의 하드웨어 구현을 위한 연산장치.
(여기서 R=2N이고, N은 타원곡선의 크기를 나타내는 비트 수, p는 소수체의 경우 모듈러 값, 이진체의 경우 기약다항식을 나타내며, 는 모듈러 값 p의 최하위 워드이고, ω는 워드의 크기를 나타내는 자연수)
The method of claim 2,
The operation mode is
To map the data to the Montgomery domain With the calculation mode,
An inverse mapping mode that converts the operation result of the Montgomery domain into an integer domain,
For use in operations for transforming the coordinate system and for contraction using congruence in the Montgomery modular multiplication process. The calculation mode of the value,
A computing device for hardware implementation of a public key cryptosystem supporting an elliptic curve on a prime number and a binary body, further comprising a modular square root calculation mode required in a process of mapping an arbitrary message value to a point on an elliptic curve.
(Where R = 2 N , N is the number of bits representing the size of the elliptic curve, p represents a modular value for a prime number, and a short polynomial for a binary body, Is the least significant word of the modular value p, ω is a natural number representing the size of the word)
상기 워드 기반 몽고메리 모듈러 곱셈기(12)는
소수체 상의 곱셈과 이진체 상의 곱셈을 선택적으로 계산하는 ω-비트 크기의 듀얼 필드 곱셈기(12a)와,
ω-비트 크기의 듀얼 필드 가산기(12b)와,
ω-비트 크기의 레지스터(12c)와,
1-비트 캐리저장 레지스터(12d)와,
2-비트 캐리저장 레지스터(12e)와,
1-비트 가산기(12f)와,
복수 개의 선택기(12g)를 포함하는 것을 특징으로 하는 소수체와 이진체 상의 타원곡선을 지원하는 공개키 암호 시스템의 하드웨어 구현을 위한 연산장치.
The method of claim 1,
The word-based Montgomery modular multiplier 12 is
An ω-bit-sized dual field multiplier 12a that selectively calculates multiplication on a fractional body and multiplication on a binary body,
a dual field adder 12b of ω-bit size,
a ω-bit sized register 12c, and
1-bit carry storage register (12d),
A 2-bit carry storage register (12e),
A 1-bit adder (12f),
A computing device for hardware implementation of a public key cryptographic system that supports elliptic curves on prime numbers and binary bodies, comprising a plurality of selectors (12g).
타원곡선 도메인 파라미터와 데이터가 연산장치에 입력되는 제1단계와;
동작모드 제어부(40)의 제어에 따라 타원곡선에 따른 초기 파라미터 값으로서 워드기반 몽고메리 모듈러 곱셈을 위해 데이터를 몽고메리 도메인으로 매핑하는데 필요한 가 계산되는 제2단계와;
동작모드에 따른 동작모드 제어부(40)의 제어에 따라 타원곡선 점 연산(PSM, PA, PS, PD)과 유한체 모듈러 연산(MM, MD, MI, MA, MS)이 수행되는 제3단계와;
좌표계 변환 단계로, 소수체의 경우에는 자코비안(Jacobian) 좌표계에서 2차원 아핀(affine) 좌표계로, 이진체의 경우에는 로페즈-다합(Lopez-Dahab) 좌표계에서 2차원 아핀 좌표계로 변환이 수행되는 제4단계와;
몽고메리 도메인에서 계산된 연산결과에 포함되어 있는 을 제거하기 위해 리매핑되는 제5단계와;
상기 제5단계의 결과데이터가 출력되는 제6단계;를 포함하는 것을 특징으로 하는 소수체와 이진체 상의 타원곡선을 지원하는 공개키 암호 시스템의 하드웨어 구현을 위한 연산방법.
(여기서 R=2N이고, N은 타원곡선의 크기를 나타내는 비트 수, p는 소수체의 경우 모듈러 값, 이진체의 경우 기약다항식을 나타냄)
An operation method for hardware implementation of a public key cryptographic system that supports elliptic curves on a decimal body and a binary body through the computing device according to claims 1 to 4, comprising:
A first step of inputting an elliptic curve domain parameter and data to a computing device;
As an initial parameter value according to an elliptic curve under the control of the operation mode controller 40, it is necessary to map data to the Montgomery domain for word-based Montgomery modular multiplication. A second step in which is calculated;
The third step in which elliptic curve point calculations (PSM, PA, PS, PD) and finite field modular calculations (MM, MD, MI, MA, MS) are performed under the control of the operation mode controller 40 according to the operation mode. ;
In the case of a coordinate system conversion step, in the case of a minor body, the conversion is performed from a Jacobian coordinate system to a two-dimensional affine coordinate system, and in the case of a binary body, a two-dimensional affine coordinate system is performed. A fourth step;
Included in the calculation result calculated in the Montgomery domain A fifth step of being remapped to remove
A sixth step of outputting the result data of the fifth step; an operation method for hardware implementation of a public key cryptographic system that supports elliptic curves on decimal and binary bodies.
(Where R = 2 N , N is the number of bits representing the size of the elliptic curve, p is a modular value for a prime number, and a short polynomial for a binary body)
상기 연산장치는
유한체 연산기의 비트 크기에 따라 반복적인 연산을 통해 다수의 형태를 가지는 타원곡선을 지원하며, 타원곡선에 따라 달라지는 모듈러 값 p를 외부에서 입력받은 후, 몽고메리 모듈러 곱셈 및 유한체 연산에 필요한 값과, 몽고메리 곱셈 과정에서 합동(congruence)을 이용한 축약 연산에 사용되는 를 계산하도록 구성되는 것을 특징으로 하는 소수체와 이진체 상의 타원곡선을 지원하는 공개키 암호 시스템의 하드웨어 구현을 위한 연산방법.
The method of claim 5,
The operation device is
It supports elliptic curves having multiple shapes through repetitive operation according to the bit size of the finite field calculator, and after receiving the modular value p that varies according to the elliptic curve from the outside, it is necessary for Montgomery modular multiplication and finite field calculation. Value and the congruence used in the Montgomery multiplication process. An operation method for hardware implementation of a public key cryptographic system that supports elliptic curves on prime numbers and binary bodies, characterized in that it is configured to calculate.
상기 연산장치는
타원곡선 기반의 EC-ElGamal 암호화를 위해 메시지 데이터를 타원곡선 상의 점으로 매핑하는 과정에서 필요한 모듈러 제곱근 연산을 계산하도록 구성되는 것을 특징으로 하는 소수체와 이진체 상의 타원곡선을 지원하는 공개키 암호 시스템의 하드웨어 구현을 위한 연산방법.
The method of claim 5,
The operation device is
A public-key cryptographic system that supports elliptic curves on decimal and binary bodies, characterized in that it is configured to calculate a modular square root operation required in the process of mapping message data to points on an elliptic curve for EC-ElGamal encryption based on an elliptic curve. Method of operation for hardware implementation of
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020190107140A KR102253211B1 (en) | 2019-08-30 | 2019-08-30 | Computing Apparatus and Method for Hardware Implementation of Public-Key Cryptosystem Supporting Elliptic Curves over Prime Field and Binary Field |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020190107140A KR102253211B1 (en) | 2019-08-30 | 2019-08-30 | Computing Apparatus and Method for Hardware Implementation of Public-Key Cryptosystem Supporting Elliptic Curves over Prime Field and Binary Field |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20210026410A true KR20210026410A (en) | 2021-03-10 |
KR102253211B1 KR102253211B1 (en) | 2021-05-17 |
Family
ID=75148263
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020190107140A KR102253211B1 (en) | 2019-08-30 | 2019-08-30 | Computing Apparatus and Method for Hardware Implementation of Public-Key Cryptosystem Supporting Elliptic Curves over Prime Field and Binary Field |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR102253211B1 (en) |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20030051992A (en) * | 2001-12-20 | 2003-06-26 | 한국전자통신연구원 | apparatus for RSA Crypto Processing of IC card |
KR20190083891A (en) * | 2018-01-05 | 2019-07-15 | 금오공과대학교 산학협력단 | Apparatus and Method for Integrated Hardware Implementation of Elliptic Curve Cryptography and RSA Public-key Cryptosystem |
-
2019
- 2019-08-30 KR KR1020190107140A patent/KR102253211B1/en active IP Right Grant
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20030051992A (en) * | 2001-12-20 | 2003-06-26 | 한국전자통신연구원 | apparatus for RSA Crypto Processing of IC card |
KR20190083891A (en) * | 2018-01-05 | 2019-07-15 | 금오공과대학교 산학협력단 | Apparatus and Method for Integrated Hardware Implementation of Elliptic Curve Cryptography and RSA Public-key Cryptosystem |
Non-Patent Citations (2)
Title |
---|
Sakiyama, Kazuo, et al. "A PARALLEL PROCESSING HARDWARE ARCHITECTURE FOR ELLIPTIC CURVE CRYPTOSYSTEMS", IEEE (2006.)* * |
이상현, 신경욱, GF(2^m) 상의 타원곡선 B-233을 지원하는 32-비트 WMM 기반 ECC 프로세서, 한국정보통신학회 (2018.05.)* * |
Also Published As
Publication number | Publication date |
---|---|
KR102253211B1 (en) | 2021-05-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7904498B2 (en) | Modular multiplication processing apparatus | |
TW200844847A (en) | Chinese remainder theorem-based computation method for cryptosystems | |
US20090136025A1 (en) | Method for scalarly multiplying points on an elliptic curve | |
CN117972761B (en) | Data processing method and device based on SM2 cryptographic algorithm | |
JP4351987B2 (en) | Montgomery conversion device, arithmetic device, IC card, encryption device, decryption device, and program | |
JP2006259735A (en) | Elliptic curve point octupling using single instruction multiple data processing | |
Vijayakumar et al. | Comparative study of hyperelliptic curve cryptosystem over prime field and its survey | |
US7187770B1 (en) | Method and apparatus for accelerating preliminary operations for cryptographic processing | |
CN117134900A (en) | Structure for realizing asymmetric encryption and control method | |
CN112350827A (en) | Koblitz curve-based elliptic curve encryption and decryption method and system for acceleration scalar multiplication calculation | |
US10057064B2 (en) | Computational method, computational device and computer software product for montgomery domain | |
KR102253211B1 (en) | Computing Apparatus and Method for Hardware Implementation of Public-Key Cryptosystem Supporting Elliptic Curves over Prime Field and Binary Field | |
JP4423900B2 (en) | Scalar multiplication calculation method, apparatus and program for elliptic curve cryptography | |
CN110233727B (en) | SM2 operation method, system, equipment and computer storage medium | |
JP4502817B2 (en) | Elliptic curve scalar multiplication method and apparatus | |
KR102006222B1 (en) | Apparatus and Method for Integrated Hardware Implementation of Elliptic Curve Cryptography and RSA Public-key Cryptosystem | |
Realpe-Muñoz et al. | High-performance elliptic curve cryptoprocessors over GF (2^ m) GF (2 m) on Koblitz curves | |
JP3515306B2 (en) | Inverse operation unit | |
Seo et al. | MoTE-ECC based encryption on MSP430 | |
JPH1152854A (en) | Arithmetic unit device on finite field and group computing device on elliptic curve | |
KR20020086005A (en) | Inverse operator for elliptic curve cryptosystems | |
JP2002358012A (en) | Information security device, exponentiation arithmetic unit, exponentiation remainder arithmetic unit, and elliptic exponentiation multiple arithmetic unit | |
JP2005316038A (en) | Scalar multiple computing method, device, and program in elliptic curve cryptosystem | |
KR100451570B1 (en) | Method and apparatus for implementing elliptic curve cryptosystem resisting against simple power attacks | |
JP2007212768A (en) | Prior computing table creating device in elliptic curve cryptosystem |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant |