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 PDF

Info

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
Application number
KR1020190107140A
Other languages
Korean (ko)
Other versions
KR102253211B1 (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 KR1020190107140A priority Critical patent/KR102253211B1/en
Publication of KR20210026410A publication Critical patent/KR20210026410A/en
Application granted granted Critical
Publication of KR102253211B1 publication Critical patent/KR102253211B1/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
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/60Methods or arrangements for performing computations using a digital non-denominational number representation, i.e. number representation without radix; Computing devices using combinations of denominational and non-denominational quantity representations, e.g. using difunction pulse trains, STEELE computers, phase computers
    • G06F7/72Methods or arrangements for performing computations using a digital non-denominational number representation, i.e. number representation without radix; Computing devices using combinations of denominational and non-denominational quantity representations, e.g. using difunction pulse trains, STEELE computers, phase computers using residue arithmetic
    • G06F7/722Modular multiplication
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/60Methods or arrangements for performing computations using a digital non-denominational number representation, i.e. number representation without radix; Computing devices using combinations of denominational and non-denominational quantity representations, e.g. using difunction pulse trains, STEELE computers, phase computers
    • G06F7/72Methods or arrangements for performing computations using a digital non-denominational number representation, i.e. number representation without radix; Computing devices using combinations of denominational and non-denominational quantity representations, e.g. using difunction pulse trains, STEELE computers, phase computers using residue arithmetic
    • G06F7/728Methods 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/12Details relating to cryptographic hardware or logic circuitry

Abstract

The present invention relates to an operation device and an operation method for hardware implementation of a public-key encryption system supporting an elliptic curve on a prime field and a binary field. More specifically, the present invention relates to an operation device and an operation method capable of implementing hardware of a public key encryption system based on an elliptic curve such as EC-DSA, EC-ElGamal, and EC-DH while supporting elliptic curves of various sizes on a prime field and a binary field. To this end, the present invention comprises: a word-based finite field operator including a modular adder/subtractor having a size of ω-bit and a word-based Montgomery modular multiplier having a size of ω-bit; a memory for storing an intermediate result value of an elliptic curve domain parameter and a word-based finite field operation; a register block for storing a value for setting a motion mode and for storing an intermediate result value of the word-based finite field operation; and a motion mode control unit for controlling the word-based finite field operator, memory and register block. According to the present invention, the present invention can be applied in implementation of various public key encryption protocols, thereby exhibiting usability and cost-reducing effects.

Description

소수체와 이진체 상의 타원곡선을 지원하는 공개키 암호 시스템의 하드웨어 구현을 위한 연산장치 및 방법{Computing Apparatus and Method for Hardware Implementation of Public-Key Cryptosystem Supporting Elliptic Curves over Prime Field and Binary Field}Computing Apparatus and Method for Hardware Implementation of Public-Key Cryptosystem Supporting Elliptic Curves over Prime Field and Binary Field}

본 발명은 소수체와 이진체 상의 타원곡선을 지원하는 공개키 암호 시스템의 하드웨어 구현을 위한 연산장치 및 방법에 관한 것으로, 더욱 상세하게는 소수체와 이진체 상의 다양한 크기의 타원곡선을 지원하면서, 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.

아울러 상기 동작모드는 데이터를 몽고메리 도메인으로 매핑하기 위한

Figure pat00001
계산모드와, 몽고메리 도메인의 연산결과를 정수 도메인으로 변환하는 역매핑모드와, 좌표계 변환을 위한 연산과, 몽고메리 모듈러 곱셈 과정에서 합동(congruence)을 이용한 축약에 사용되기 위한
Figure pat00002
값의 계산모드와, 임의의 메시지 값을 타원곡선 상의 점으로 매핑하는 과정에서 필요한 모듈러 제곱근 계산모드를 포함한다. In addition, the operation mode is for mapping data to the Montgomery domain.
Figure pat00001
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.
Figure pat00002
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단계와; 동작모드 제어부의 제어에 따라 타원곡선에 따른 초기 파라미터 값으로서 워드기반 몽고메리 모듈러 곱셈을 위해 데이터를 몽고메리 도메인으로 매핑하는데 필요한

Figure pat00003
가 계산되고,
Figure pat00004
값과 데이터를 몽고메리 모듈러 곱셈하여 몽고메리 도메인으로 매핑하는 제2단계와; 동작모드에 따른 동작모드 제어부의 제어에 따라 타원곡선 점 연산(PSM, PA, PS, PD)과 유한체 모듈러 연산(MM, MD, MI, MA, MS)이 수행되는 제3단계와; 좌표계 변환 단계로, 소수체의 경우에는 자코비안(Jacobian) 좌표계에서 2차원 아핀(affine) 좌표계로, 이진체의 경우에는 로페즈-다합(Lopez-Dahab) 좌표계에서 2차원 아핀 좌표계로 변환이 수행되는 제4단계와; 몽고메리 도메인에서 계산된 연산결과에 포함되어 있는
Figure pat00005
을 제거하기 위해 리매핑되는 제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.
Figure pat00003
Is calculated,
Figure pat00004
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
Figure pat00005
A fifth step of being remapped to remove And a sixth step of outputting the result data of the fifth step.

여기서 상기 연산장치는 유한체 연산기의 비트 크기에 따라 반복적인 연산을 통해 다수의 형태를 가지는 타원곡선을 지원하며, 타원곡선에 따라 달라지는 모듈러 값 p를 외부에서 입력받은 후, 몽고메리 모듈러 곱셈 및 유한체 연산에 필요한

Figure pat00006
값과, 몽고메리 곱셈 과정에서 합동(congruence)을 이용한 축약 연산에 사용되는
Figure pat00007
를 계산하도록 구성된다. 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
Figure pat00006
Value and the congruence used in the Montgomery multiplication process.
Figure pat00007
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는 본 발명의 일실시예에 따라

Figure pat00008
계산 과정의 슈도코드를 나타내는 도면이다.
도 5는 본 발명의 일실시예에 따라
Figure pat00009
계산 과정의 슈도코드를 나타내는 도면이다.
도 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
Figure pat00008
It is a diagram showing the pseudocode of the calculation process.
5 is according to an embodiment of the present invention
Figure pat00009
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는 본 발명의 일실시예에 따라

Figure pat00010
계산 과정의 슈도코드를 나타내는 도면이며, 도 5는 본 발명의 일실시예에 따라
Figure pat00011
계산 과정의 슈도코드를 나타내는 도면이며, 도 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.
Figure pat00010
It is a diagram showing a pseudocode of a calculation process, and FIG. 5 is a diagram showing a pseudocode of a calculation process.
Figure pat00011
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 computing device 100 for hardware implementation according to an embodiment of the present invention includes a modular adder/subtracter 11 having an ω-bit size and a word-based Montgomery modular multiplier 12 having an ω-bit size. A word-based finite field operator 10 that includes, a memory 20 that stores an elliptic curve domain parameter and an intermediate result value of a word-based finite field operation, and a word-based finite field operation that stores a value for setting an operation mode. A register block 30 storing the intermediate result value of the word-based finite field operator 10, the memory 20, and an operation mode control unit 40 that controls the register block 30.

여기서 워드 기반 유한체 연산기(10)는 ω-비트 크기의 모듈러 가산/감산기(11)와, ω-비트 크기의 워드 기반 몽고메리 모듈러 곱셈기(12)로 구성되는데, ω는 기계어 명령어나 연산을 통해 레지스터에 옮겨놓을 수 있는 데이터의 단위를 의미하는 워드(word)의 크기이며, 자연수로서 바람직하게는 16-비트 또는 32-비트 또는 48-비트 또는 64-비트 등 필요에 따라 적절하게 선택되어 구현될 수 있다.Here, the word-based finite field operator 10 is composed of a ω-bit-sized modular adder/subtracter 11 and a ω-bit-sized word-based Montgomery modular multiplier 12, where ω is a register through machine language instructions or operations. It is the size of a word, which means a unit of data that can be replaced with, and is a natural number, preferably 16-bit, 32-bit, 48-bit, or 64-bit, and can be appropriately selected and implemented as needed. have.

메모리(20)는 외부에서 입력되는 타원곡선 계수 값, 키 값, 모듈러 값(소수체의 경우에는 소수 p, 이진체의 경우에는 기약다항식), 타원곡선의 생성점 값을 저장하며, 또한 몽고메리 모듈러 곱셈을 위해 데이터를 몽고메리 도메인으로 매핑하기 위해 내부적으로 계산된

Figure pat00012
((여기서 R=2N이고, N은 타원곡선의 크기를 나타내는 비트 수, p는 소수체의 경우 모듈러 값, 이진체의 경우 기약다항식을 나타냄)과 워드 기반 유한체 연산의 중간 결과값을 저장한다.The memory 20 stores an elliptic curve coefficient value, a key value, a modular value (a decimal p in the case of a decimal number, a short polynomial in the case of a binary body), and the value of the generation point of the elliptic curve, and also Montgomery Modular Internally calculated to map the data to the Montgomery domain for multiplication.
Figure pat00012
(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) and the intermediate result of word-based finite field operation is stored. do.

레지스터 블록(30)은 동작모드를 설정하기 위한 값을 저장하며, 또한 내부적으로 계산된

Figure pat00013
(여기서,
Figure pat00014
는 모듈러 값 p의 최하위 워드이고, ω는 워드의 크기)값을 저장하여 몽고메리 모듈러 곱셈 과정에서 합동을 이용한 축약에 사용되도록 한다. The register block 30 stores a value for setting the operation mode, and also internally calculated
Figure pat00013
(here,
Figure pat00014
Is the least significant word of the modular value p, and ω is the size of the word) so that it is used for contraction using congruence in the Montgomery modular multiplication process.

또한, 메모리(20)에 저장된 키 값을 워드 단위로 읽어 저장하여 점 연산과 유한체 모듈러 연산에 사용되도록 하며, 또한 워드 기반 유한체 연산의 중간 결과 값들을 저장한다.In addition, the key value stored in the memory 20 is read and stored in word units to be used for point operation and finite field modular operation, and intermediate result values of word-based finite field operation are also stored.

동작모드 제어부(40)는 레지스터 블록(30)의 동작모드설정 레지스터의 값에 따라 워드 기반 유한체 연산기(10)와 메모리(20)와 레지스터 블록(30)의 동작을 제어한다. The operation mode controller 40 controls the operation of the word-based finite field operator 10, the memory 20, and the register block 30 according to the value of the operation mode setting register of the register block 30.

본 발명의 일실시예에 따른 유한체 연산장치와 제어방법에 의한 동작모드는 타원곡선 점 연산(PSM, PA, PS, PD)과 유한체 모듈러 연산(MM, MD, MI, MA, MS)을 포함하며, 또한 데이터를 몽고메리 도메인으로 매핑하기 위한

Figure pat00015
계산과 그 역매핑, 좌표계 변환을 위한 연산과, 몽고메리 모듈러 곱셈 과정에서 합동을 이용한 축약에 사용되기 위한
Figure pat00016
값의 계산과, 임의의 메시지 값을 타원곡선 상의 점으로 매핑하는 과정에서 필요한 모듈러 제곱근 계산 등을 포함한다.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.
Figure pat00015
For use in calculations and inverse mapping, for coordinate system transformation, and for reduction using congruence in the Montgomery modular multiplication process.
Figure pat00016
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.

Figure pat00017
Figure pat00017

이러한 다양한 동작모드에 의해 타원곡선 기반 전자서명 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 modular multiplier 12 of the word-based finite field operator 10, and this word-based Montgomery modular multiplier 12 selectively calculates the multiplication on the prime number and the multiplication on the binary body. ω-bit sized dual field multiplier 12a, ω-bit sized dual field adder 12b, ω-bit sized register 12c, 1-bit carry storage register 12d, and 2- It comprises a bit carry storage register 12e, a 1-bit adder 12f, and a plurality of selectors 12g.

이와 같은 워드 기반 몽고메리 모듈러 곱셈기(12)를 통해 연산이 수행되는 과정은 도 3에 도시된 바와 같다. A process of performing an operation through the word-based Montgomery modular multiplier 12 is as shown in FIG. 3.

이를 살펴보면, 우선 단계 단계 1 내지 단계 4에서는 워드 기반 몽고메리 곱셈을 수행하기 전에, 유한체 곱셈 결과 S와, 곱셈에 의한 캐리 값 C1-1, C2-1와, 덧셈에 의한 캐리 값 cy1, cy2의 초기값을 모두 0으로 설정한 단계 1은 곱셈연산의 시작에서 초기값이 설정되고, 단계 3 및 단계 4는 i-루프가 시작될 때 마다 초기값이 설정된다.Looking at this, first, in Steps 1 to 4, before word-based Montgomery multiplication is performed, the finite field multiplication result S, the carry values C1 -1 and C2 -1 by the multiplication, and the carry values cy1 and cy2 by the addition are In step 1, in which all of the initial values are set to 0, the initial value is set at the start of the multiplication operation, and in steps 3 and 4, the initial value is set each time the i-loop is started.

또한 단계 7과 단계 18은 피승수의 워드 ai와 승수의 워드 bj의 곱셈 ai × bj을 연산한다. 곱셈 결과 값 중, 상위 워드 C1은 (j+1)-루프 연산에서 캐리 입력으로 사용되며, 하위 워드 P1은 j-루프의 부분 곱으로 사용된다.In addition, in steps 7 and 18, the multiplication of the word a i of the multiplicand and the word b j of the multiplier a i × b j is calculated. Among the multiplication result values, the upper word C1 is used as a carry input in the (j+1)-loop operation, and the lower word P1 is used as a partial product of the j-loop.

아울러 단계 8 과 단계 19는 소수체 상의 연산은 단계 8의 j-루프에서 계산된 부분 곱 P1,(j-1)-루프에서 계산된 곱셈의 캐리 값 C1j-1, 덧셈연산에 의한 캐리 값 cy1, (i-1)-루프에서 계산된 부분 곱의 합동 값 sj을 가산하여 부분 곱의 합 H와 캐리 출력 cy1을 계산한다. In addition, in Steps 8 and 19, the operation on the prime number is the partial product P1 calculated in the j-loop of Step 8, the carry value C1 j-1 of the multiplication calculated in the (j-1)-loop, and the carry value by the addition operation. Calculate the sum H of the partial products and the carry output cy1 by adding the sum s j of the partial products calculated in cy1, (i-1)-loop.

이진체 상에서 연산은 단계 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일 때, 모듈러 합동을 위한 데이터

Figure pat00018
와 부분 곱의 합 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
Figure pat00018
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 steps 12 and 13 in an operation on a decimal body and steps 23 and 24 in an operation on a binary body.

단계 12와 단계 13 및 단계 23와 단계 24는 덧셈연산에 의해 s-1=0인 모듈러 합동 값 S를 생성한다. 최하위 워드인 j=0인 경우에, 소수체 상의 연산에서 s-1=0이 되는 과정은 아래의 (1) 내지 (3)과 같으며, 이진체 상의 연산에서는 덧셈 연산이 XOR로 처리된다.Steps 12 and 13, and 23 and 24 generate a modular joint value S of s −1 = 0 by addition operation. In the case of j=0, which is the least significant word, the process of s -1 = 0 in the operation on the decimal body is the same as (1) to (3) below, and in the operation on the binary body, the addition operation is processed as XOR.

(1) 단계 10 :

Figure pat00019
(1) Step 10:
Figure pat00019

(2) 단계 12 :

Figure pat00020
(2) Step 12:
Figure pat00020

Figure pat00021
Figure pat00021

(3) 단계 13 :

Figure pat00022
(3) Step 13:
Figure pat00022

Figure pat00023
Figure pat00023

한편 단계 15와 단계 26은 곱셈연산 결과의 최상위 워드 sm-1을 계산한다. sm-1은 워드보다 1-비트 증가된 크기를 갖는다. 소수체 상의 연산에서는 덧셈에 의한 캐리가 발생하여 sm-1의 최상위 비트 smsb는 0 또는 1의 값을 가질 수 있으며, 이진체 상의 연산에서는 덧셈에 의한 캐리가 발생하지 않으므로, smsb=0이다.Meanwhile, in steps 15 and 26, the most significant word s m -1 of the result of the multiplication operation is calculated. s m-1 has a size that is increased by 1-bit than that of a word. In an operation on a decimal body, a carry occurs due to addition, so the most significant bit of s m-1 s msb can have a value of 0 or 1, and in an operation on a binary body, since carry by addition does not occur, s msb = 0 to be.

또한 단계 29는 i-루프의 반복이 완료되어 부분곱 가산이 완료되면, 소수체 상의 곱셈 결과값 S와 모듈러 값 p을 비교하여 S>p일 경우에는 S-p의 뺄셈 연산으로 축약을 수행한다. 최종 곱셈 결과 값의 모듈러 축약 연산은 모듈러 가산/감산기(11)에서 계산된다.In step 29, when the iteration of the i-loop is completed and the partial product addition is completed, the multiplication result S on the prime number and the modular value p are compared, and if S>p, the subtraction operation of S-p is performed. The modular reduction operation of the final multiplication result value is calculated by the modular adder/subtracter 11.

한편 데이터를 몽고메리 도메인으로 매핑하기 위한

Figure pat00024
계산모드에 따른 수행과정을 설명하도록 한다. Meanwhile, to map the data to the Montgomery domain
Figure pat00024
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.

Figure pat00025
Figure pat00025

몽고메리 도메인 매핑에 사용되는 R2 값은 R2=2N×2N mod p로 계산되며, 타원 곡선에 따라 모듈러 값 p와 p의 비트 수 N이 다르다. 본 발명에 따른 워드 기반 유한체 연산기(10)의 워드 기반 몽고메리 모듈러 곱셈기(12)는 몽고메리 모듈러 곱셈을 계산하므로,

Figure pat00026
가 되어 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 modular multiplier 12 of the word-based finite field operator 10 according to the present invention calculates the Montgomery modular multiplication,
Figure pat00026
It becomes impossible to calculate the value of R 2.

본 발명에서는 워드 기반 몽고메리 모듈러 곱셈기(12)를 이용하여 R2 값을 계산하기 위해 도 4의 슈도코드로 표현되는 계산 방법을 제공한다. In the present invention, in order to calculate the value of R 2 using the word-based Montgomery modular multiplier 12, a calculation method represented by the pseudocode of FIG. 4 is provided.

본 발명에서 제공하는 도 4의 슈도코드에 의한 방법은 단순한 시프트와 뺄셈 연산을 2(m×ω)-회 반복 계산하여 부가적인 하드웨어 없이

Figure pat00027
값을 효율적으로 계산할 수 있다. 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.
Figure pat00027
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.

한편 몽고메리 모듈러 곱셈 과정에서 합동을 이용한 축약에 사용되기 위한

Figure pat00028
값의 계산 과정을 살펴보도록 한다. Meanwhile, in Montgomery's modular multiplication process,
Figure pat00028
Let's look at the process of calculating the value.

도 2에 도시된 바와 같이 워드 기반 몽고메리 모듈러 곱셈기의 동작 슈도코드에 의한 몽고메리 모듈러 곱셈 연산 과정에서 합동을 이용하여 부분곱 가산 결과의 최하위 워드를 0으로 만들기 위해서는 상수 값

Figure pat00029
가 필요하다.As shown in Fig. 2, in order to make the least significant word of the partial product addition result 0 by using congruence in the Montgomery modular multiplication operation process by the operation pseudocode of the word-based Montgomery modular multiplier, a constant value
Figure pat00029
Need

여기서,

Figure pat00030
는 모듈러 값 p의 최하위 워드(ω-비트)를 나타내며, 타원곡선에 따라 모듈러 값 p와 p의 비트 수 N이 다르다. here,
Figure pat00030
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)를 이용하여

Figure pat00031
값을 계산하기 위해 도 5에 도시된 슈도코드로 표현되는 계산 방법을 제공한다. In the present invention, using the word-based finite field operator 10
Figure pat00031
In order to calculate the value, a calculation method represented by the pseudocode shown in FIG. 5 is provided.

본 발명에 따른 도 5의 슈도코드에 의한 방법은 워드 기반 몽고메리 곱셈을 (ω-2)-회 반복 계산하여

Figure pat00032
의 곱의 역원
Figure pat00033
을 구한 후, 그 결과를 0에서 뺄셈 연산하여 부가적인 하드웨어 없이
Figure pat00034
값을 효율적으로 계산할 수 있다.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
Figure pat00032
Inverse of the product of
Figure pat00033
After finding, the result is subtracted from zero without additional hardware.
Figure pat00034
You can calculate the value efficiently.

또한 타원곡선 기반의 EC-ElGamal 암호화를 위해 메시지 데이터 x를 타원곡선 상의 점 (x, y)로 매핑하는 과정이 필요한데, 이를 위해서는 아래 (식 1)의 타원곡선 방정식에 타원곡선 계수 a와 b 그리고 메시지 데이터 x를 대입하여 (식 2)에 의해 y2 equ 값을 계산하고, z=y2 equ 의 모듈러 제곱근

Figure pat00035
를 구하면, 메시지 x를 타원곡선 상의 점 (x,
Figure pat00036
)로 매핑할 수 있다. 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
Figure pat00035
If we get the message x, the point on the elliptic curve (x,
Figure pat00036
) Can be mapped.

Figure pat00037
Figure pat00037

z=y2에 대해 z(p-1)/2 = y(p-1) 이므로, 페르마 소정리(Fermat’s little theorem)에 의해

Figure pat00038
이 되며, 타원곡선의 모듈러 값 p에 대해 (p+1) mod 4=0인 경우에 대해 (식 3)이 성립하므로, z의 제곱근
Figure pat00039
은 (식 4)와 같이 표현된다. Since z (p-1)/2 = y (p-1) for z=y 2 , Fermat's little theorem
Figure pat00038
Is, and (Equation 3) holds for the case of (p+1) mod 4=0 for the modular value p of the elliptic curve, so the square root of z
Figure pat00039
Is expressed as (Equation 4).

Figure pat00040
Figure pat00040

따라서, (식 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 step 1 again.

본 발명은 도 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의

Figure pat00041
값 계산 방법에 의해 계산된다.First, step 1 maps the message data X and the elliptic curve coefficients A and B to the Montgomery domain, respectively.
Figure pat00041
It is calculated by the value calculation method.

단계 2는 (p+1) mod 4=0이 성립하는 경우(NIST 표준의 타원곡선 P-192, P-256, P-384, P-521)에 대해, (p+1)/4를 계산한다.Step 2 calculates (p+1)/4 for the case where (p+1) mod 4=0 holds (NIST standard elliptic curves P-192, P-256, P-384, P-521). do.

단계 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의 워드 기반 몽고메리 모듈러 곱셈 방법과 모듈러 가산/감산기에 의해 계산한다.Steps 4 to 7 calculate y 2 equ by (Equation 2) by the word-based Montgomery modular multiplication method and the modular adder/subtracter of FIG. 3 according to the present invention.

단계 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 step 16, the z sqrt value calculated in steps 8 to 15 is squared, and the y 2 cal value is calculated by the word-based Montgomery modular multiplication method of FIG. 3 according to the present invention.

단계 17 내지 단계 18은 y2 cal=y2 equ이면, 단계 8 내지 단계 15에서 계산된 zsqrt 값은 모듈러 제곱근 값이며, 단계 23으로 이동한다.If Steps 17 to 18 are y 2 cal =y 2 equ , the z sqrt value calculated in Steps 8 to 15 is a modular square root value, and the process moves to Step 23.

단계 19 내지 단계 21은 y2 cal≠y2 equ이면 단계 8 내지 단계 15에서 계산된 zsqrt 값은 모듈러 제곱근 값이 아니며, 이 경우에는 메시지 데이터 x를 x+1로 변경하기 위해 몽고메리 도메인에서 모듈러 가산 (XR+R) mod p을 계산하고, 단계 2로 이동하여 다시 계산한다.If Steps 19 to 21 are y 2 cal ≠y 2 equ, then the z sqrt value calculated in Steps 8 to 15 is not a modular square root value, in this case it is modular in the Montgomery domain to change the message data x to x+1. Calculate the addition (XR+R) mod p, go to step 2 and recalculate.

또는 새로운 메시지 데이터를 입력받아 단계 1부터 다시 반복할 수도 있다. Alternatively, new message data may be input and repeat from step 1 again.

단계 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) 값 입력 → ②

Figure pat00042
값과
Figure pat00043
값 계산 → ③ 워드 기반 몽고메리 곱셈 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 → ②
Figure pat00042
Value and
Figure pat00043
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) 값 입력 → ②

Figure pat00044
값과
Figure pat00045
값 계산 → ③ 워드 기반 몽고메리 곱셈 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 → ②
Figure pat00044
Value and
Figure pat00045
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입력 → ②

Figure pat00046
값과
Figure pat00047
값 계산 → ③ 워드 기반 몽고메리 곱셈 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 → ②
Figure pat00046
Value and
Figure pat00047
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)값 입력 → ②

Figure pat00048
값과
Figure pat00049
값 계산 → ③ 워드 기반 몽고메리 곱셈 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 → ②
Figure pat00048
Value and
Figure pat00049
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 computing device 100 according to the present invention 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. I can. The detailed operation sequence for modular operation is as follows.

우선 모듈러 덧셈은 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입력 → ②

Figure pat00050
값과
Figure pat00051
값 계산 → ③ 워드 기반 몽고메리 곱셈 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 → ②
Figure pat00050
Value and
Figure pat00051
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 입력 → ②

Figure pat00052
값과
Figure pat00053
값 계산 → ③ 워드 기반 몽고메리 곱셈 WMM(A, R2, p)=A*와, WMM(1, R2, p)=1*에 의해 몽고메리 도메인으로 매핑 → ④ 워드 기반 몽고메리 곱셈 WMM(A*, T, p)의 반복 연산에 의해 피연산자 A*의 모듈러 역원
Figure pat00054
을 계산 → ⑤ 워드 기반 몽고메리 곱셈 WMM(
Figure pat00055
, 1, p)에 의한 리매핑으로 모듈러 역원 Q=A-1 mod p 계산 → ⑥ 모듈러 역원 연산결과 값 Q를 출력한다. ① Input operand A and modular value p → ②
Figure pat00052
Value and
Figure pat00053
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 *
Figure pat00054
→ ⑤ word-based Montgomery multiplication WMM(
Figure pat00055
, 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 입력 → ②

Figure pat00056
값과
Figure pat00057
값 계산 → ③ 워드 기반 몽고메리 곱셈 WMM(B, R2, p)=B*와, WMM(1, R2, p)=1*에 의해 몽고메리 도메인으로 매핑 → ④ 워드 기반 몽고메리 곱셈 WMM(B*, T, p)의 반복 연산에 의해 피연산자 B*의 모듈러 역원
Figure pat00058
을 계산 → ⑤ 워드 기반 몽고메리 곱셈 WMM(A,
Figure pat00059
, p)에 의해 모듈러 나눗셈 Q=(A/B) mod p를 계산 → ⑥ 모듈러 나눗셈 연산결과 값 Q를 출력한다. ① Input operands A and B and modular value p → ②
Figure pat00056
Value and
Figure pat00057
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 *
Figure pat00058
→ ⑤ word-based Montgomery multiplication WMM(A,
Figure pat00059
Calculate the modular division Q=(A/B) mod p by, p) → ⑥ Output the modular division result value Q.

아울러 본 발명의 일실시예에 따른 연산방법으로 상기 연산장치를 통해 타원곡선 도메인 파라미터와 데이터가 연산장치에 입력되는 제1단계와, 동작모드 제어부(40)의 제어에 따라 타원곡선에 따른 초기 파라미터 값으로서 워드기반 몽고메리 모듈러 곱셈을 위해 데이터를 몽고메리 도메인으로 매핑하는데 필요한

Figure pat00060
가 계산되는 제2단계와, 동작모드에 따른 동작모드 제어부(40)의 제어에 따라 타원곡선 점 연산(PSM, PA, PS, PD)과 유한체 모듈러 연산(MM, MD, MI, MA, MS)이 수행되는 제3단계와, 좌표계 변환 단계로, 소수체의 경우에는 자코비안(Jacobian) 좌표계에서 2차원 아핀(affine) 좌표계로, 이진체의 경우에는 로페즈-다합(Lopez-Dahab) 좌표계에서 2차원 아핀 좌표계로 변환이 수행되는 제4단계와, 몽고메리 도메인에서 계산된 연산결과에 포함되어 있는
Figure pat00061
을 제거하기 위해 리매핑(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 operation mode controller 40. It is necessary to map the data to the Montgomery domain for word-based Montgomery modular multiplication as a value.
Figure pat00060
The second step in which is calculated and the elliptic curve point operation (PSM, PA, PS, PD) and finite field modular operation (MM, MD, MI, MA, MS) under the control of the operation mode controller 40 according to the operation mode. ) Is performed, in the case of a coordinate system conversion step, in the case of a minor body, from a Jacobian coordinate system to a two-dimensional affine coordinate system, and in the case of a binary body, in the Lopez-Dahab coordinate system. The fourth step in which the transformation is performed into a two-dimensional affine coordinate system, and included in the calculation result calculated in the Montgomery domain.
Figure pat00061
The fifth step is re-mapping in order to remove the data, and the sixth step is outputting the result data of the fifth step.

전술한 바와 같이 본 발명에 따른 연산방법은 연산장치에 타원곡선 도메인 파라미터와 데이터가 입력된 후 동작모드 제어부(40)의 제어에 따라 몽고메리 도메인으로 매핑하는데 필요한

Figure pat00062
가 계산된다.
Figure pat00063
의 계산 과정은 전술한 바와 같다. As described above, the calculation method according to the present invention is necessary for mapping to the Montgomery domain under the control of the operation mode controller 40 after the elliptic curve domain parameter and data are input to the computing device.
Figure pat00062
Is calculated.
Figure pat00063
The calculation process of is as described above.

그런 다음 동작모드 제어부(40)의 제어에 따라 타원곡선 점 연산(PSM, PA, PS, PD)과 유한체 모듈러 연산(MM, MD, MI, MA, MS)이 수행되며, 타원곡선 점 연산과 유한체 모듈러 연산 과정은 전술한 바와 같다. Then, under the control of the operation mode controller 40, elliptic curve point calculation (PSM, PA, PS, PD) and finite field modular calculation (MM, MD, MI, MA, MS) are performed, and the elliptic curve point calculation and The finite field modular calculation process is as described above.

그런 다음 좌표계를 변환하는 단계가 수행되는데, 소수체의 경우에는 자코비안(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.

다음으로 몽고메리 도메인에서 계산된 연산결과에 포함되어 있는

Figure pat00064
을 제거하기 위해 부가적인 하드웨어 없이 본 발명에 따른 연산장치를 이용하여 내부적으로 계산하는 리매핑(re-mapping) 단계가 수행되고, 최종적으로 결과가 출력되게 된다. Next, included in the calculation result calculated in the Montgomery domain
Figure pat00064
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를 외부에서 입력받은 후, 몽고메리 모듈러 곱셈 및 유한체 연산에 필요한

Figure pat00065
값과, 몽고메리 곱셈 과정에서 합동(congruence)을 이용한 축약 연산에 사용되는
Figure pat00066
를 계산하도록 구성되게 되며, 타원곡선 기반의 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
Figure pat00065
Value and the congruence used in the Montgomery multiplication process.
Figure pat00066
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)

ω-비트 크기의 모듈러 가산/감산기(11)와, ω-비트 크기의 워드 기반 몽고메리 모듈러 곱셈기(12)를 포함하는 워드 기반 유한체 연산기(10)와;
타원곡선 도메인 파라미터와 워드 기반 유한체 연산의 중간 결과값을 저장하는 메모리(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)
제1항에 있어서,
상기 레지스터 블록(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.
제2항에 있어서,
상기 동작모드는
데이터를 몽고메리 도메인으로 매핑하기 위한
Figure pat00067
계산모드와,
몽고메리 도메인의 연산결과를 정수 도메인으로 변환하는 역매핑모드와,
좌표계 변환을 위한 연산과, 몽고메리 모듈러 곱셈 과정에서 합동을 이용한 축약에 사용되기 위한
Figure pat00068
값의 계산모드와,
임의의 메시지 값을 타원곡선 상의 점으로 매핑하는 과정에서 필요한 모듈러 제곱근 계산모드를 더 포함하는 것을 특징으로 하는 소수체와 이진체 상의 타원곡선을 지원하는 공개키 암호 시스템의 하드웨어 구현을 위한 연산장치.
(여기서 R=2N이고, N은 타원곡선의 크기를 나타내는 비트 수, p는 소수체의 경우 모듈러 값, 이진체의 경우 기약다항식을 나타내며,
Figure pat00069
는 모듈러 값 p의 최하위 워드이고, ω는 워드의 크기를 나타내는 자연수)
The method of claim 2,
The operation mode is
To map the data to the Montgomery domain
Figure pat00067
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.
Figure pat00068
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,
Figure pat00069
Is the least significant word of the modular value p, ω is a natural number representing the size of the word)
제1항에 있어서,
상기 워드 기반 몽고메리 모듈러 곱셈기(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항 내지 제4항에 의한 연산장치를 통해 소수체와 이진체 상의 타원곡선을 지원하는 공개키 암호 시스템의 하드웨어 구현을 위한 연산 방법으로서,
타원곡선 도메인 파라미터와 데이터가 연산장치에 입력되는 제1단계와;
동작모드 제어부(40)의 제어에 따라 타원곡선에 따른 초기 파라미터 값으로서 워드기반 몽고메리 모듈러 곱셈을 위해 데이터를 몽고메리 도메인으로 매핑하는데 필요한
Figure pat00070
가 계산되는 제2단계와;
동작모드에 따른 동작모드 제어부(40)의 제어에 따라 타원곡선 점 연산(PSM, PA, PS, PD)과 유한체 모듈러 연산(MM, MD, MI, MA, MS)이 수행되는 제3단계와;
좌표계 변환 단계로, 소수체의 경우에는 자코비안(Jacobian) 좌표계에서 2차원 아핀(affine) 좌표계로, 이진체의 경우에는 로페즈-다합(Lopez-Dahab) 좌표계에서 2차원 아핀 좌표계로 변환이 수행되는 제4단계와;
몽고메리 도메인에서 계산된 연산결과에 포함되어 있는
Figure pat00071
을 제거하기 위해 리매핑되는 제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.
Figure pat00070
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
Figure pat00071
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)
제5항에 있어서,
상기 연산장치는
유한체 연산기의 비트 크기에 따라 반복적인 연산을 통해 다수의 형태를 가지는 타원곡선을 지원하며, 타원곡선에 따라 달라지는 모듈러 값 p를 외부에서 입력받은 후, 몽고메리 모듈러 곱셈 및 유한체 연산에 필요한
Figure pat00072
값과, 몽고메리 곱셈 과정에서 합동(congruence)을 이용한 축약 연산에 사용되는
Figure pat00073
를 계산하도록 구성되는 것을 특징으로 하는 소수체와 이진체 상의 타원곡선을 지원하는 공개키 암호 시스템의 하드웨어 구현을 위한 연산방법.
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.
Figure pat00072
Value and the congruence used in the Montgomery multiplication process.
Figure pat00073
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.
제5항에 있어서,
상기 연산장치는
타원곡선 기반의 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
KR1020190107140A 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 KR102253211B1 (en)

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)

* Cited by examiner, † Cited by third party
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

Patent Citations (2)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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
JP4067818B2 (en) Elliptic curve cryptography apparatus, elliptic curve cryptography program, and elliptic curve cryptography calculation method
US20090136025A1 (en) Method for scalarly multiplying points on an elliptic curve
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
US7187770B1 (en) Method and apparatus for accelerating preliminary operations for cryptographic processing
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
KR102006222B1 (en) Apparatus and Method for Integrated Hardware Implementation of Elliptic Curve Cryptography and RSA Public-key Cryptosystem
CN112350827A (en) Koblitz curve-based elliptic curve encryption and decryption method and system for acceleration scalar multiplication calculation
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
JP4502817B2 (en) Elliptic curve scalar multiplication method and apparatus
JP2002358012A (en) Information security device, exponentiation arithmetic unit, exponentiation remainder arithmetic unit, and elliptic exponentiation multiple arithmetic unit
KR100451570B1 (en) Method and apparatus for implementing elliptic curve cryptosystem resisting against simple power attacks
JP2004205870A (en) Method and device for hyperelliptic curve scalar multiple operation
JP2007212768A (en) Prior computing table creating device in elliptic curve cryptosystem
JP2005316038A (en) Scalar multiple computing method, device, and program in elliptic curve cryptosystem
CN117134900A (en) Structure for realizing asymmetric encryption and control method
JP2004053814A (en) Elliptic curve cryptosystem device and elliptic curve cryptosystem operation method

Legal Events

Date Code Title Description
E701 Decision to grant or registration of patent right
GRNT Written decision to grant