KR101321221B1 - Cryptographic modular apparatus and cryptographic modular method - Google Patents

Cryptographic modular apparatus and cryptographic modular method Download PDF

Info

Publication number
KR101321221B1
KR101321221B1 KR1020130058329A KR20130058329A KR101321221B1 KR 101321221 B1 KR101321221 B1 KR 101321221B1 KR 1020130058329 A KR1020130058329 A KR 1020130058329A KR 20130058329 A KR20130058329 A KR 20130058329A KR 101321221 B1 KR101321221 B1 KR 101321221B1
Authority
KR
South Korea
Prior art keywords
bit
result
modulus
addition
multiplication
Prior art date
Application number
KR1020130058329A
Other languages
Korean (ko)
Inventor
정석원
이경효
홍휘승
김단환
하국용
Original Assignee
목포대학교산학협력단
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 목포대학교산학협력단 filed Critical 목포대학교산학협력단
Priority to KR1020130058329A priority Critical patent/KR101321221B1/en
Application granted granted Critical
Publication of KR101321221B1 publication Critical patent/KR101321221B1/en

Links

Images

Classifications

    • 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/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
    • G06F7/50Adding; Subtracting
    • 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/724Finite field arithmetic
    • G06F7/725Finite field arithmetic over elliptic curves
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/30Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
    • H04L9/3006Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy underlying computational problems or public-key parameters

Landscapes

  • Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Mathematical Analysis (AREA)
  • Pure & Applied Mathematics (AREA)
  • Computational Mathematics (AREA)
  • Computing Systems (AREA)
  • Mathematical Optimization (AREA)
  • General Engineering & Computer Science (AREA)
  • Mathematical Physics (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Complex Calculations (AREA)

Abstract

PURPOSE: A modular multiplication device for a password and a method are provided to repetitively perform a twice modulus operation and an add modulus operation, thereby implementing an elliptic curve on a finite field. CONSTITUTION: A coefficient selection unit (110) extracts a coefficient for each bit order for a multiplier from two elements. A twice modulus operation unit (120) performs a first twice modulus operation for a multiplication operation result for a most significant n-bit coefficient and a multiplicand. An add modulus operation unit (130) performs a first add modulus operation for a multiplication operation result for a (n-1) bit coefficient and the multiplicand. A control unit (140) repetitively performs the first twice modulus operation and the first add modulus operation for a lower bit coefficient and the multiplicand. [Reference numerals] (110) Coefficient selection unit; (120) Twice modulus operation unit; (130) Add modulus operation unit; (140) Control unit; (AA) Atom B; (BB) Atom A

Description

암호용 모듈러 곱셈 장치 및 그 방법{CRYPTOGRAPHIC MODULAR APPARATUS AND CRYPTOGRAPHIC MODULAR METHOD}Modular multiplication apparatus for cryptography and its method {CRYPTOGRAPHIC MODULAR APPARATUS AND CRYPTOGRAPHIC MODULAR METHOD}

본 발명은 유한체 상에서의 타원곡선 암호시스템을 위한 암호용 모듈러 곱셈장치 및 방법에 관한 것이다. The present invention relates to a cryptographic modular multiplication apparatus and method for an elliptic curve cryptographic system on a finite field.

타원곡선 암호의 장점들로 인하여, 유한체 위에서의 타원곡선을 하드웨어적으로 구현하기 위한 노력이 세계 각지에서 이루어 지고 있다. 홀수 특징(characteristic)과 2의 지수승에 가까운 소수 p 에 대하여 GF(p) 상에서의 타원 곡선의 효율적인 유한체 곱셈 구현을 위한 기법, Certicom 사의 ONB(Optimal Normal Basis) 에서의 효율적인 유한체 곱셈 구현 기법, Cylink 사의 ONB(Optimal Normal Basis) 에서의 효율적인 유한체 곱셈 구현 기법과 같은 다양한 기법들이 시도되고 있다.Due to the advantages of elliptic curve cryptography, efforts are being made worldwide to implement an elliptic curve on a finite body in hardware. Efficient finite field multiplication of elliptic curves on GF (p) for odd characteristic and exponent prime p near 2, efficient finite field multiplication in Certicom's Optimal Normal Basis (ONB) In addition, various techniques have been tried, such as efficient finite field multiplication implementation in Cylink's Optimal Normal Basis (ONB).

그러나, 이러한 최근의 다양한 기법들은 (1) 공개키와 개인키 전송을 수행하기 위해 요구되는 계산량이 많고, (2) 키 사이즈 측면에서 매우 많은 키 사이즈로 임의의 키를 저장하기 위해 요구되는 기억공간이 많으며, (3) 통신 대역폭(bandwidth) 측면에서 메시지를 암호화하거나 서명을 전송하기 위해 요구되는 통신 대역폭이 매우 큰 문제점이 있다.However, these recent various techniques have (1) a large amount of computation required to perform public and private key transmissions, and (2) a storage space required for storing arbitrary keys with very large key sizes in terms of key size. (3) In terms of communication bandwidth, there is a problem in that the communication bandwidth required for encrypting a message or transmitting a signature is very large.

또한, 암호 시스템의 이론적 안정성과 별도로, 전력 소모량과 알고리즘의 수행시간이나 전력 소모량의 차이, 전자파 방출량 등과 같은 부가 정보를 이용/분석하여 비밀키를 찾아내는 부채널 공격(SCA, Side Channel Attack)의 경우, IC 카드, 모바일 폰, PDA 등과 같은 내장된 하드웨어에서 암호 알고리즘의 구현에 대한 실질적인 위협이 되고 있다. 이에, 비밀키의 단위 비트당 연산 수행 시간이 길고 전력 소모량이 많으므로, 전력 소모량 분석(SPA 및 DPA) 기술 및 이에 대응하는 스칼라 곱셈 알고리즘에 관한 연구에 초점이 맞추어져 있다. In addition, in case of side channel attack (SCA) that finds a secret key by using / analyzing additional information such as power consumption, algorithm execution time, power consumption difference, electromagnetic wave emission amount, etc. This is a real threat to the implementation of cryptographic algorithms in embedded hardware such as ICs, mobile phones, PDAs, and the like. Accordingly, since the operation execution time per unit bit of the secret key is long and the power consumption is large, the focus on the power consumption analysis (SPA and DPA) technology and the corresponding scalar multiplication algorithm is focused.

대한민국 공개특허 제1020090037124호(2009.04.15), "모듈러 곱셈 방법, 모듈러 곱셈기 및 모듈러 곱셈기를 구비하는 암호 연산 시스템"Republic of Korea Patent Publication No. 1020090037124 (2009.04.15), "Cryptographic operation system having a modular multiplication method, a modular multiplier and a modular multiplier" 대한민국 공개특허 제1020000000770호(2000.01.15), "모듈러 곱셈장치"Republic of Korea Patent Publication No. 1020000000770 (2000.01.15), "Modular multiplication device" 대한민국 등록특허 제1006304560000호(2006.09.25), "유한체 상의 스케일러블 곱셈 연산기"Republic of Korea Patent No. 1006304560000 (September 25, 2006), "Scalable multiplication operator on the finite"

두배 모듈러스 연산과 덧셈 모듈러스 연산을 반복적으로 수행하여 유한체 위에서의 타원곡선을 하드웨어적으로 구현 가능한 암호용 곱셈장치를 제공하고자 한다.By repeatedly performing double modulus and addition modulus operations, we propose a cryptographic multiplying device that can implement an elliptic curve on a finite body in hardware.

또한, 올림수가 '0' 및 '1'인 경우의 덧셈 연산을 4비트 단위로 구분하여 병렬적으로 수행하여 덧셈 모듈러스 연산을 수행하여 지연시간을 감소시킬 수 있는 암호용 곱셈 장치 및 그 방법을 제공하고자 한다. In addition, the present invention provides an encryption multiplication apparatus and method for reducing the delay time by performing addition modulus operations by dividing the addition operations in the case of rounding numbers '0' and '1' in 4 bit units in parallel. I would like to.

일 실시예에 따른 타원곡선 하부 유한체의 두 원소에 대한 모듈러 곱셈 장치는 상기 두 원소 중 승수(multipilier)에 대한 비트 차수별 계수를 추출하는 계수 선택부, 상기 승수로부터 추출된 최상위 n 비트 계수 및 피승수(multiplicand)에 대한 곱셈 연산 결과에 대한 제1 두배 모듈러스 연산을 수행하는 두배 모듈러스 연산부, 및 수행된 제1 두배 모듈러스 연산 결과와, 상기 승수로부터 추출된 n-1 비트 계수 및 피승수에 대한 곱셈 연산 결과에 대한 제1 덧셈 모듈러스 연산을 수행하는 덧셈 모듈러스 연산부를 포함한다. Modular multiplication apparatus for two elements of the elliptic curve lower finite body according to an embodiment of the present invention is a coefficient selector for extracting the coefficient of the bit order for the multiplier (multipilier) of the two elements, the most significant n-bit coefficient and multiplier extracted from the multiplier a double modulus operator for performing a first double modulus operation on the multiplicand result of the multiplicand, and a result of the first double modulus operation performed, and a multiplication operation on the n-1 bit coefficient and the multiplier extracted from the multiplier An addition modulus operation unit for performing a first addition modulus operation on.

암호용 모듈러 곱셈 장치는 수행된 제1 덧셈 모듈러스 연산 수행 결과를 기반으로 상기 승수로부터 추출된 하위 비트 계수 및 피승수에 대하여 상기 제1 두배 모듈러스 연산 및 상기 제1 덧셈 모듈러스 연산을 순차적으로 반복 수행하도록 상기 두배 모듈러스 연산부 및 상기 덧셈 모듈러스 연산부를 제어하는 제어부를 더 포함할 수 있다. The cryptographic modular multiplication apparatus sequentially repeats the first double modulus operation and the first addition modulus operation on the lower bit coefficient and the multiplicand extracted from the multiplier based on the result of performing the first addition modulus operation. The apparatus may further include a controller controlling a double modulus calculator and the addition modulus calculator.

상기 두배 모듈러스 연산부는 수행된 제1 덧셈 모듈러스 연산 수행 결과에 대한 제2 두배 모듈러스 연산을 수행하고, 상기 덧셈 모듈러스 연산부는, 수행된 제2 두배 모듈러스 연산 결과와, n-2 비트 계수 및 피승수에 대한 곱셈 연산 결과에 대한 제2 덧셈 모듈러스 연산을 수행할 수 있다.The double modulus operation unit performs a second double modulus operation on the result of performing the first addition modulus operation, and the addition modulus operation unit performs the result of the second double modulus operation, n-2 bit coefficients, and multiplicands. A second addition modulus operation may be performed on the result of the multiplication operation.

상기 덧셈 모듈러스 연산부는 상기 제1 두배 모듈러스 연산 결과 및 상기 곱셈 연산 결과를 각각 4비트 단위로 구분하고, 4비트 단위의 제1 두배 모듈러스 연산 결과 및 4비트 단위의 곱셈 연산 결과에 대하여 병렬적으로 덧셈 연산을 수행할 수 있다.The addition modulus operation unit divides the first double modulus operation result and the multiplication operation result into 4 bit units, and adds the first double modulus operation result in 4 bit unit and the multiplication operation result in 4 bit unit in parallel. You can perform the operation.

상기 덧셈 모듈러스 연산부는, 4비트 단위의 제1 두배 모듈러스 연산 결과 및 4비트 단위의 곱셈 연산 결과에 대하여 올림수가 '0' 및 '1'인 경우의 덧셈 연산을 병렬적으로 수행하여 캐리값을 포함하는 5비트 결과를 출력하는 하나 이상의 4비트 덧셈기를 포함할 수 있다.The addition modulus operation unit includes a carry value by performing an add operation when the rounding numbers are '0' and '1' in parallel with a first double modulus operation result in 4-bit units and a multiplication operation result in 4-bit units. It may include one or more four-bit adder for outputting a five-bit result.

상기 하나 이상의 4비트 덧셈기 각각은, 상기 올림수가 '0'인 경우의 덧셈 연산을 수행하는 제1 결과 출력부; 상기 올림수가 '1'인 경우의 덧셈 연산을 수행하는 제2 결과 출력부; 및 하위 단위 4비트 덧셈기로부터 출력된 1비트의 캐리비트를 수신하고, 상기 수신된 캐리비트를 기반으로 상기 제1 결과 출력부 및 상기 제2 결과 출력부의 수행 결과값 중 중 어느 하나를 선택하는 멀티플렉서를 더 포함할 수 있다.Each of the one or more 4-bit adders includes: a first result output unit configured to perform an addition operation when the rounding number is '0'; A second result output unit configured to perform an addition operation when the rounding number is '1'; And a multiplexer which receives a 1-bit carry bit outputted from a lower unit 4-bit adder and selects one of an execution result value of the first result output unit and the second result output unit based on the received carry bit. It may further include.

본 발명의 일 실시에 따른 타원곡선 하부 유한체의 두 원소에 대한 암호용 모듈러 곱셈 방법은 상기 두 원소 중 승수에 대한 비트 차수별 계수를 추출하는 단계, 상기 승수로부터 추출된 최상위 n비트 계수 및 피승수에 대한 곱셈 연산 결과에 대한 제1 두배 모듈러스 연산을 수행하는 단계, 및 수행된 제1 두배 모듈러스 연산 결과와, 상기 승수로부터 추출된 n-1 비트 계수 및 피승수에 대한 곱셈 연산 결과에 대한 제1 덧셈 모듈러스 연산을 수행하는 단계를 포함한다.The cryptographic modular multiplication method for two elements of an elliptic curve lower finite body in accordance with an embodiment of the present invention comprises the steps of extracting the coefficient of the bit order for the multiplier of the two elements, the highest n-bit coefficient and the multiplier extracted from the multiplier Performing a first double modulus operation on the result of the multiplication operation for the first double modulus operation, and a first addition modulus on the result of the multiplication operation on the n-1 bit coefficient and the multiplier extracted from the multiplier. Performing the operation.

상기 암호용 모듈러 곱셈 방법은 수행된 제1 덧셈 모듈러스 연산 수행 결과를 기반으로 상기 승수로부터 추출된 하위 비트 계수 및 피승수에 대하여 상기 제1 두배 모듈러스 연산 및 상기 제1 덧셈 모듈러스 연산을 순차적으로 반복 수행하도록 제어하는 단계를 포함할 수 있다.The cryptographic modular multiplication method sequentially repeats the first double modulus operation and the first addition modulus operation on a lower bit coefficient and a multiplicand extracted from the multiplier based on a result of performing the first addition modulus operation. It may include the step of controlling.

제1 두배 모듈러스 연산을 수행하는 상기 단계는, 상기 제1 두배 모듈러스 연산 결과 및 상기 곱셈 연산 결과를 각각 4비트 단위로 구분하고, 4비트 단위의 제1 두배 모듈러스 연산 결과 및 4비트 단위의 곱셈 연산 결과에 대하여 병렬적으로 덧셈 연산을 수행하는 단계를 포함할 수 있다.In the performing of the first double modulus operation, the first double modulus operation result and the multiplication operation result are respectively divided into 4 bit units, and the first double modulus operation result and 4-bit multiplication operation are respectively performed in 4-bit units. Performing an addition operation on the result in parallel.

병렬적으로 덧셈 연산을 수행하는 상기 단계는, 4비트 단위의 제1 두배 모듈러스 연산 결과 및 4비트 단위의 곱셈 연산 결과에 대하여 올림수가 '0' 및 '1'인 경우의 덧셈 연산을 병렬적으로 수행하여 캐리값을 포함하는 5비트 결과를 출력하는 단계를 포함할 수 있다.In the step of performing an addition operation in parallel, the addition operation when the rounding number is '0' and '1' is parallel to the first double modulus operation result in 4-bit units and the multiplication operation result in 4-bit units. And outputting a 5-bit result including a carry value.

본 발명의 실시예에 따르면, 두배 모듈러스 연산과 덧셈 모듈러스 연산을 반복적으로 수행하여 유한체 위에서의 타원곡선을 하드웨어적으로 구현 가능하다.According to an embodiment of the present invention, an elliptic curve on a finite body may be hardware-implemented by repeatedly performing a double modulus operation and an addition modulus operation.

또한, 본 발명의 실시예에 따르면, 올림수가 '0' 및 '1'인 경우의 덧셈 연산을 4비트 단위로 구분하여 병렬적으로 덧셈 모듈러스 연산을 수행하여 지연시간을 감소시킬 수 있다. In addition, according to an embodiment of the present invention, the addition operation when the rounding numbers are '0' and '1' may be divided into 4 bit units to perform an add modulus operation in parallel to reduce the delay time.

도 1은 본 발명의 일 실시예에 따른 암호용 모듈러 곱셈 장치의 구성을 도시한 블록도이다.
도 2는 본 발명의 실시예에 따른 224비트 암호용 모듈러 곱셈 장치를 도시한 것이다.
도 3은 본 발명의 실시예에 따른 224비트 암호용 모듈러 곱셈 장치의 계수 선택부의 구성을 도시한 것이다.
도 4는 본 발명의 실시예에 따른 224비트 암호용 모듈러 곱셈 장치의 두배 모듈러스 연산부의 구성을 도시한 것이다.
도 5는 본 발명의 실시예에 따른 N비트 암호용 모듈러 곱셈 장치의 덧셈 모듈러스 연산부의 구성을 도시한 것이다.
도 6은 본 발명의 실시예에 따른 덧셈 모듈러스 연산부의 4비트 덧셈기를 설명하기 위해 도시한 것이다.
도 7은 본 발명의 일 실시예에 따른 암호용 모듈러 곱셈 장치의 모듈러스 연산부의 구성을 도시한 것이다.
도 8은 본 발명의 실시예에 따른 224비트 타원곡선 암호용 모듈러 곱셈 장치에 대한 합성 결과를 요약한 것이고, 도 9는 시뮬레이션 결과를 도시한 것이다.
도 10은 본 발명의 일 실시예에 따른 타원곡선 하부 유한체의 두 원소에 대한 암호용 모듈러 곱셈 방법을 도시한 흐름도이다.
1 is a block diagram illustrating a configuration of a cryptographic modular multiplication apparatus according to an embodiment of the present invention.
2 illustrates a modular multiplication device for 224 bits cryptography according to an embodiment of the present invention.
3 is a block diagram of a coefficient selector of a 224 bit cryptographic multiplication apparatus according to an embodiment of the present invention.
4 illustrates a configuration of a double modulus calculation unit of a 224-bit cryptographic modular multiplication apparatus according to an embodiment of the present invention.
5 is a block diagram of an addition modulus calculator of an N-bit cryptographic multiplication apparatus according to an exemplary embodiment of the present invention.
FIG. 6 illustrates a 4-bit adder of an add modulus calculator according to an exemplary embodiment of the present invention.
7 illustrates a configuration of a modulus calculation unit of a cryptographic modular multiplication apparatus according to an embodiment of the present invention.
FIG. 8 summarizes the synthesis result for the 224-bit elliptic curve cryptographic modular multiplication device according to an embodiment of the present invention, and FIG. 9 shows the simulation result.
10 is a flowchart illustrating a cryptographic modular multiplication method for two elements of an elliptic curve lower finite body according to an embodiment of the present invention.

이하 첨부 도면들 및 첨부 도면들에 기재된 내용들을 참조하여 본 발명의 실시예를 상세하게 설명하지만, 본 발명이 실시예에 의해 제한되거나 한정되는 것은 아니다.Hereinafter, embodiments of the present invention will be described in detail with reference to the accompanying drawings and accompanying drawings, but the present invention is not limited to or limited by the embodiments.

한편, 본 발명을 설명함에 있어서, 관련된 공지 기능 또는 구성에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우에는, 그 상세한 설명을 생략할 것이다. 그리고, 본 명세서에서 사용되는 용어(terminology)들은 본 발명의 실시예를 적절히 표현하기 위해 사용된 용어들로서, 이는 사용자, 운용자의 의도 또는 본 발명이 속하는 분야의 관례 등에 따라 달라질 수 있다. 따라서, 본 용어들에 대한 정의는 본 명세서 전반에 걸친 내용을 토대로 내려져야 할 것이다.
In the following description of the present invention, a detailed description of known functions and configurations incorporated herein will be omitted when it may make the subject matter of the present invention rather unclear. The terminology used herein is a term used for appropriately expressing an embodiment of the present invention, which may vary depending on the user, the intent of the operator, or the practice of the field to which the present invention belongs. Therefore, the definitions of these terms should be based on the contents throughout this specification.

도 1은 본 발명의 일 실시예에 따른 암호용 모듈러 곱셈 장치의 구성을 도시한 블록도이다.1 is a block diagram illustrating a configuration of a cryptographic modular multiplication apparatus according to an embodiment of the present invention.

도 1을 참조하면, 본 발명의 일 실시예에 따른 암호용 모듈러 곱셈 장치(100)는 계수 선택부(110), 두배 모듈러스 연산부(120) 및 덧셈 모듈러스 연산부(130)를 포함한다.Referring to FIG. 1, the cryptographic modular multiplication apparatus 100 according to an embodiment of the present invention includes a coefficient selector 110, a double modulus operator 120, and an add modulus operator 130.

도 1에 도시된 바와 같이 타원곡선 하부 유한체의 원소 A 및 원소 B에 대하여 본 발명의 일실시예에 따른 암호용 모듈러 곱셈 장치를 통하여 모듈러 곱셈 인 AB mod P 를 연산할 수 있다. 여기서, P=2n-t 이고, A=an -12n-1+ an -22n-2+ㅇㅇㅇㅇ+a12+a0 =(an -1, an -2, ㅇㅇㅇㅇ, a0) 과 B=bn -12n-1+ bn -22n-2+ㅇㅇㅇㅇ+b12+b0 =(bn-1, bn -2, ㅇㅇㅇㅇ, b0) 일 수 있다.As illustrated in FIG. 1, AB mod P, which is a modular multiplication, may be calculated for an element A and an element B of an elliptic curve lower fin through a cryptographic modular multiplier according to an embodiment of the present invention. Where P = 2 n −t and A = a n −1 2 n-1 + a n -2 2 n-2 + o + o + a 1 2 + a 0 = (a n -1 , a n -2 , ㅇㅇㅇ, a 0 ) and B = b n -1 2 n-1 + b n -2 2 n-2 + ㅇㅇㅇ + b 1 2 + b 0 = (b n-1 , b n -2 , ㅇ ㅇㅇㅇ, b 0 ).

계수 선택부(110)는 타원곡선 하부 유한체의 두 원소 중 승수(multipilier)에 대한 비트 차수별 계수를 추출한다. 도 1의 경우, 계수 선택부(110)는 승수인 원소 B 의 비트 차수별 계수인 bn -1 내지 b0 를 추출할 수 있다.The coefficient selector 110 extracts a coefficient for each bit order of the multipilier among two elements of the elliptic curve lower finite body. In the case of FIG. 1, the coefficient selector 110 may extract b n −1 to b 0, which are coefficients for each bit order of the element B that is a multiplier.

두배 모듈러스 연산부(120)는 계수 선택부(110)로부터 승수로부터 추출된 최상위 n 비트 계수 및 피승수(multiplicand)에 대한 곱셈 연산 결과에 대한 제1 두배 모듈러스 연산을 수행한다. 제1 두배 모듈러스 연산은 유한체 한 원소에 대한 두 배 mod P 기반 연산일 수 있다.The double modulus operator 120 performs a first double modulus operation on the multiplication result of the most significant n-bit coefficient and the multiplicand extracted from the multiplier from the coefficient selector 110. The first double modulus operation may be a double mod P based operation on one finite element.

도 1에 도시된 바와 같이, 두배 모듈러스 연산부(120)는 승수인 원소 B로부터 추출된 최상위 n 비트 계수인 bn -1 와 피승수인 원소 A 의 곱셈 연산 결과인 bn -1 A 에 대한 제1 두배 모듈러스 연산(2mod P)를 수행하여 제1 두배 모듈러스 연산의 결과(bn -1 A2mod P)를 출력할 수 있다.1, the double modulus calculating section 120 for the first multiplication result of b n -1 A of the n most significant bits of the coefficient b n -1 and the multiplicand element A extracted from the multiplier element B The result of the first double modulus operation b n -1 A2mod P may be output by performing a double modulus operation 2mod P.

덧셈 모듈러스 연산부(130)는 수행된 제1 두배 모듈러스 연산 결과와, 상기 승수로부터 추출된 n-1 비트 계수 및 피승수에 대한 곱셈 연산 결과에 대한 제1 덧셈 모듈러스 연산을 수행한다. 제1 덧셈 모듈러스 연산은 유한체 두 원소의 덧셈 mod P 기반 연산일 수 있다.The addition modulus operator 130 performs a first addition modulus operation on the first double modulus operation result and the multiplication operation result of the n−1 bit coefficient and the multiplier extracted from the multiplier. The first addition modulus operation may be an add mod P-based operation of two finite field elements.

도 1에 도시된 바와 같이, 덧셈 모듈러스 연산부(130)는 수행된 제1 두배 모듈러스 연산 결과인 bn -1 A2mod P 와, 승수인 원소 B로부터 최상위 비트의 인접 하위 비트인 bn -2 및 원소 A 에 대한 곱셈 연산 결과인 bn -2 A mod P를 기반으로 제1 덧셈 모듈러스 연산을 수행할 수 있고, 제1 덧셈 모듈러스 연산의 결과 (bn -1 A2mod P) + bn-2 A mod P 를 출력할 수 있다.As shown in FIG. 1, the addition modulus calculation unit 130 performs b n -1 A2mod P which is the result of the first double modulus operation performed, b n -2 which is the adjacent lower bit of the most significant bit from the element B that is a multiplier, and the element. A first addition modulus operation may be performed based on the result of the multiplication operation A on b n -2 A mod P, and the result of the first addition modulus operation (b n -1 A2mod P) + b n-2 A mod You can output P

본 발명의 일실시예에 따른 암호용 모듈러 곱셈 장치(100)는 수행된 제1 덧셈 모듈러스 연산 수행 결과를 기반으로 승수로부터 추출된 하위 비트 계수 및 피승수에 대하여 제1 두배 모듈러스 연산 및 제1 덧셈 모듈러스 연산을 순차적으로 반복 수행하도록 두배 모듈러스 연산부(120) 및 덧셈 모듈러스 연산부(130)를 제어하는 제어부(140)를 더 포함할 수 있다.The cryptographic modular multiplication apparatus 100 according to an embodiment of the present invention is a first double modulus operation and a first addition modulus with respect to a lower bit coefficient and a multiplicand extracted from a multiplier based on a result of performing a first addition modulus operation. The controller 140 may further include a controller 140 controlling the double modulus operator 120 and the add modulus operator 130 to sequentially repeat the operation.

실시예에 따라, 제어부(140)는 두배 모듈러스 연산부(120)가 수행된 제1 덧셈 모듈러스 연산 수행 결과에 대한 제2 두배 모듈러스 연산을 수행하도록 제어하고, 덧셈 모듈러스 연산부(130)가 수행된 제2 두배 모듈러스 연산 결과와, n-2 비트 계수 및 피승수에 대한 곱셈 연산 결과에 대한 제2 덧셈 모듈러스 연산을 수행하도록 제어할 수 있다.According to an embodiment, the controller 140 controls the double modulus operator 120 to perform a second double modulus operation on the result of performing the first addition modulus operation, and the second modulus operator 130 performs the second modulus operation. The second modulus operation may be performed to perform the double modulus operation result and the multiplication operation result of the n-2 bit coefficient and the multiplicand.

도 1에 도시된 바와 같이, 두배 모듈러스 연산부(120)는 수행된 제1 덧셈 모듈러스 연산 수행 결과인 (bn -1 A2mod P) + bn -2 A mod P 에 제2 두배 모듈러스 연산(2mod P)를 수행하여 제2 두배 모듈러스 연산의 결과, ((bn -1 A2mod P) + bn -2 A mod P))2mod P 를 출력할 수 있다.As shown in FIG. 1, the double modulus operator 120 performs a second double modulus operation on (b n -1 A2mod P) + b n -2 A mod P which is a result of performing the first addition modulus operation. ) To output ((b n -1 A2mod P) + b n -2 A mod P)) 2mod P as a result of the second double modulus operation.

또한, 덧셈 모듈러스 연산부(130)는 수행된 제2 두배 모듈러스 연산의 결과인 ((bn -1 A2mod P) + bn -2 A mod P))2mod P 와, n-2 비트 계수 및 피승수에 대한 곱셈 연산 결과인, bn -3 A mod P 에 대한 제2 덧셈 모듈러스 연산을 수행할 수 있고, 제2 덧셈 모듈러스 연산의 결과 ((bn -1 A2mod P) + bn -2 A mod P))2mod P + bn -3 A mod P 를 출력할 수 있다.In addition, the addition modulus calculation unit 130 may apply to (mod) (b n -1 A2mod P) + b n -2 A mod P) 2mod P, which is the result of the second double modulus operation, and n-2 bit coefficients and multiplicands. Can perform a second addition modulus operation on b n -3 A mod P, which is the result of the multiplication operation, and the result of the second addition modulus operation ((b n -1 A2mod P) + b n -2 A mod P 2) mod P + b n -3 A mod P can be printed.

제어부(140)는 수행된 제2 덧셈 모듈러스 연산 수행 결과를 기반으로 승수로부터 추출된 다음 하위 비트 계수 및 피승수에 대하여 두배 모듈러스 연산 및 덧셈 모듈러스 연산을 순차적으로 반복 수행하도록 두배 모듈러스 연산부(120) 및 덧셈 모듈러스 연산부(130)를 제어할 수 있다. 이하에서는 도 2를 참조하여, 본 발명의 실시예에 따른 224비트 타원곡선 암호용 모듈러 곱셈 장치를 상세히 설명하기로 한다.
The control unit 140 extracts from the multiplier based on the result of performing the second addition modulus operation and then double modulus operation unit 120 and addition to sequentially repeat the double modulus operation and the addition modulus operation on the lower bit coefficient and the multiplicand. The modulus calculator 130 may be controlled. Hereinafter, a modular multiplication apparatus for 224 bit elliptic curve cryptography according to an embodiment of the present invention will be described in detail with reference to FIG. 2.

도 2는 본 발명의 실시예에 따른 224비트 암호용 모듈러 곱셈 장치를 도시한 것이다.2 illustrates a modular multiplication device for 224 bits cryptography according to an embodiment of the present invention.

도 2를 참조하면, 본 발명의 실시예에 따른 암호용 모듈러 곱셈 장치(100)는 계수 선택부(110, Chooser), 두배 모듈러스 연산부(120, A2mod P) 및 덧셈 모듈러스 연산부(130, CPlusDmodP)를 포함하고, 암호용 모듈러 곱셈 장치(100)는 하기 수학식 1의 모듈러 곱셈 인 AB mod P 의 수행을 위하여 유한체 한 원소의 두 배 mod P 와, 유한체 두 원소의 덧셈 mod P 를 전술한 과정을 순차적 및 반복적으로 수행한다.
Referring to FIG. 2, the cryptographic modular multiplication apparatus 100 according to an embodiment of the present invention uses a coefficient selector 110, a chooser, a double modulus operation unit 120 (A2mod P), and an addition modulus operation unit 130 (CPlusDmodP). The cryptographic modular multiplication apparatus 100 includes the above-described process of performing mod P twice of one finite element and addition mod P of two finite elements for performing AB mod P, which is a modular multiplication of Equation 1 below. Is performed sequentially and repeatedly.

[수학식 1][Equation 1]

Figure 112013045587120-pat00001
Figure 112013045587120-pat00001

단, 상기 수학식 1에서 P=2n-t 이고, A=an -12n-1+ an -22n-2+.....+a12+a0 =(an -1, an-2,...., a0) 과 B=bn -12n-1+ bn -22n-2+....+b12+b0 =(bn -1, bn -2, ...., b0) 이다.
However, in Equation 1, P = 2 n −t and A = a n −1 2 n−1 + a n −2 2 n-2 + ..... + a 1 2 + a 0 = (a n -1 , a n-2 , ...., a 0 ) and B = b n -1 2 n-1 + b n -2 2 n-2 + .... + b 1 2 + b 0 = (b n -1 , b n -2 , ...., b 0 ).

계수 선택부(110, Chooser)는 타원곡선 하부 유한체의 두 원소 중 승수(multipilier)에 대한 비트 차수별 계수를 추출한다. 두 원소 A 및 B 는 224비트 타원곡선 하부 유한체의 원소일 수 있다. 이하에서는 도 3을 참조하여, 본 발명의 실시예에 따른 224비트 암호용 모듈러 곱셈 장치의 계수 선택부를 상세히 설명하기로 한다.
The coefficient selector 110 extracts a bit order coefficient for a multiplier of two elements of the elliptic curve lower finite field. Both elements A and B may be elements of a 224 bit elliptic curve lower finite body. Hereinafter, referring to FIG. 3, the coefficient selector of the 224 bit cryptographic multiplier according to the embodiment of the present invention will be described in detail.

도 3은 본 발명의 실시예에 따른 224비트 암호용 모듈러 곱셈 장치의 계수 선택부의 구성을 도시한 것이다.3 is a block diagram of a coefficient selector of a 224 bit cryptographic multiplication apparatus according to an embodiment of the present invention.

도 3을 참조하면, 본 발명의 실시예에 따른 암호용 모듈러 곱셈 장치(100)의 계수 선택부(110)는 승수에 대한 비트 차수별 계수를 추출하기 위하여, 시작 신호(S_chooser) 및 클럭(clk) 에 기반하여 입력되는 224비트 승수값(In_chooser)에 대하여 최상위 비트로부터 하위 차수 방향으로 단위 차수로 비트 차수를 조절하는 수단(112)과, 최상위 비트를 시작으로 차수별 계수를 선택하여 추출하는 추출수단(113)과, 추출된 차수별 계수를 조합하는 수단(11)을 포함할 수 있다.Referring to FIG. 3, the coefficient selector 110 of the cryptographic modular multiplication apparatus 100 according to an exemplary embodiment of the present invention may extract a start signal S_chooser and a clock clk in order to extract a coefficient for each bit order for a multiplier. Means for adjusting the bit order 112 from the most significant bit to the least order relative to the 224-bit multiplier value In_chooser inputted on the basis of; and an extraction means for selecting and extracting a coefficient for each order starting from the most significant bit ( 113, and means 11 for combining the extracted order-specific coefficients.

계수 선택부(110)는 종료 신호(d_chooser)에 따라 추출된 차수별 계수를 출력값(o_chooser)으로 출력한다.
The coefficient selector 110 outputs the coefficient for each order extracted according to the end signal d_chooser as an output value o_chooser.

다시 도 2를 참조하면, 두배 모듈러스 연산부(120, A2mod P)는 계수 선택부(110, Chooser)로부터 승수로부터 추출된 비트 계수 및 피승수(multiplicand)에 대한 곱셈 연산 결과에 대한 두배 모듈러스 연산을 수행한다. 두배 모듈러스 연산은 유한체 한 원소에 대한 두 배 mod P 기반 연산일 수 있다. 이하에서는 도 4를 참조하여 본 발명의 실시예에 따른 224비트 암호용 모듈러 곱셈 장치의 두배 모듈러스 연산부를 상세히 설명하기로 한다.
Referring back to FIG. 2, the double modulus arithmetic unit 120 (A2mod P) performs a double modulus operation on the result of the multiplication operation on the multiplicand and the bit coefficient extracted from the multiplier from the coefficient selector 110 (Chooser). . The double modulus operation may be a double mod P based operation on one finite element. Hereinafter, referring to FIG. 4, a double modulus calculation unit of a 224-bit cryptographic modular multiplication apparatus according to an embodiment of the present invention will be described in detail.

도 4는 본 발명의 실시예에 따른 224비트 암호용 모듈러 곱셈 장치의 두배 모듈러스 연산부의 구성을 도시한 것이다.4 illustrates a configuration of a double modulus calculation unit of a 224-bit cryptographic modular multiplication apparatus according to an embodiment of the present invention.

도 4를 참조하면, 본 발명의 실시예에 따른 암호용 모듈러 곱셈 장치(100)의 두배 모듈러스 연산부(120)는 224비트 입력값(In_A)로부터 2배 모듈러스 연산을 수행하여 출력값(o_A2)를 출력한다. 상기 224비트 입력값(In_A)은 승수의 차수별 비트 계수와 피승수의 곱셈 연산 결과일 수 있다. Referring to FIG. 4, the double modulus operator 120 of the cryptographic modular multiplication apparatus 100 according to an embodiment of the present invention outputs an output value o_A2 by performing a double modulus operation from a 224 bit input value In_A. do. The 224 bit input value In_A may be a multiplication result of a bit coefficient for each multiplier and a multiplicand.

이를 위해, 두배 모듈러스 연산부(120)는 224비트 입력값(In_A)로부터 2배 연산을 수행하여 결과(In_A2)를 출력하는 수단(121)과, 출력된 2배 연산의 결과(In_A2)에 모듈러스 연산을 수행하여 결과(o_u mod P)를 출력하는 수단(122, U mod P)을 포함할 수 있다.
To this end, the double modulus calculation unit 120 performs a double operation from the 224 bit input value In_A to output a result In_A2 121 and a modulus operation to the output In_A2 of the output double operation. It may include a means (122, U mod P) for performing the output (o_u mod P).

다시 도 2를 참조하면, 덧셈 모듈러스 연산부(130, CPlusDmodP)는 수행된 두배 모듈러스 연산 결과와, 승수로부터 추출된 하위 비트 계수 및 피승수에 대한 곱셈 연산 결과에 대한 덧셈 모듈러스 연산을 수행한다. 덧셈 모듈러스 연산은 유한체 두 원소의 덧셈 mod P 기반 연산일 수 있다. 이하에서는 도 5를 참조하여 본 발명의 실시예에 따른 N비트 암호용 모듈러 곱셈 장치의 덧셈 모듈러스 연산부를 상세히 설명하기로 한다.
Referring back to FIG. 2, the add modulus operator 130 (CPlusDmodP) performs an add modulus operation on the result of the double modulus operation performed and the multiplication operation result of the lower bit coefficient and the multiplier extracted from the multiplier. The addition modulus operation may be an addition mod P-based operation of two finite fields. Hereinafter, an addition modulus calculation unit of an N-bit cryptographic multiplication apparatus according to an embodiment of the present invention will be described in detail with reference to FIG. 5.

도 5는 본 발명의 실시예에 따른 N비트 암호용 모듈러 곱셈 장치의 덧셈 모듈러스 연산부의 구성을 도시한 것이다.5 is a block diagram of an addition modulus calculator of an N-bit cryptographic multiplication apparatus according to an exemplary embodiment of the present invention.

도 5를 참조하면, 본 발명의 실시예에 따른 암호용 모듈러 곱셈 장치(100)의 덧셈 모듈러스 연산부(130)는 입력되는 N비트의 두 원소 C 및 D 로부터 덧셈 모듈러스 연산을 수행을 위하여 원소 C 및 원소 D를 각각 4비트 단위로 구분한다. 실시예에 따라 도 5에 도시된 k 값은 4비트 단위의 구분을 위하여 224비트의 약수가 될 수 있다.Referring to FIG. 5, the addition modulus calculator 130 of the cryptographic modular multiplication apparatus 100 according to an embodiment of the present invention may perform the element modulus C and the addition modulus operation from two input elements C and D of N bits. Each element D is divided into 4 bit units. According to an embodiment, the k value shown in FIG. 5 may be a divisor of 224 bits to distinguish 4 bits.

실시예에 따라, 덧셈 모듈러스 연산부(130)는 원소 C의 4비트 단위 및 원소 D의 4비트 단위 각각에 대하여 올림수가 '0' 및 '1'인 경우의 덧셈 연산을 병렬적으로 수행하여 1비트의 캐리값(carry out)을 포함하는 5비트 결과를 출력하는 하나 이상의 4비트 덧셈기(210)를 포함할 수 있다. According to an embodiment, the add modulus operator 130 performs an add operation in the case where the rounding numbers are '0' and '1' in parallel for each of the 4-bit unit of the element C and the 4-bit unit of the element D, thereby performing one-bit addition operation. It may include one or more four-bit adder 210 for outputting a five-bit result containing a carry out of.

도 5에 도시된 바와 같이 상기 5비트 결과의 각각은 1비트의 캐리값(carry out)과, 구분된 원소 C의 4비트 단위 및 원소 D의 4비트 단위의 덧셈 연산 결과를 포함할 수 있다. As illustrated in FIG. 5, each of the 5-bit results may include a carry out of 1 bit, and an addition operation result of 4 bits of the divided element C and 4 bits of the element D. FIG.

덧셈 모듈러스 연산부(130)는 원소 C 및 원소 D 의 덧셈 연산의 결과로 N+1 비트의 결과값을 출력한다. 이하에서는 도 6을 참조하여 4비트 덧셈기(210)를 상세히 설명하기로 한다.
The addition modulus operator 130 outputs a result value of N + 1 bits as a result of the addition operation of the elements C and D. Hereinafter, the 4-bit adder 210 will be described in detail with reference to FIG. 6.

도 6은 본 발명의 실시예에 따른 덧셈 모듈러스 연산부의 4비트 덧셈기를 설명하기 위해 도시한 것이다.FIG. 6 illustrates a 4-bit adder of an add modulus calculator according to an exemplary embodiment of the present invention.

도 6을 참조하면, 덧셈 모듈러스 연산부(130)는 제1 결과 출력부(211), 제2 결과 출력부(212) 및 멀티플렉서(213)를 포함할 수 있다. Referring to FIG. 6, the add modulus calculator 130 may include a first result output unit 211, a second result output unit 212, and a multiplexer 213.

제1 결과 출력부(211, C+D)는 원소 C의 4비트 단위 및 원소 D의 4비트 단위에 대하여 올림수가 '0' 인 경우의 덧셈 연산을 수행한다. 제2 결과 출력부(212, C+D+1)는 원소 C의 4비트 단위 및 원소 D의 4비트 단위에 대하여 올림수가 '1' 인 경우의 덧셈 연산을 수행한다. The first result output unit 211 (C + D) performs an addition operation when the rounding number is '0' for the 4-bit unit of the element C and the 4-bit unit of the element D. FIG. The second result output unit 212 (C + D + 1) performs an addition operation when the rounding number is '1' for the 4-bit unit of the element C and the 4-bit unit of the element D. FIG.

또한, 멀티플렉서(213)는 하위 단위 4비트 덧셈기로부터 출력된 1비트의 캐리비트(Carry In)를 수신하고, 수신된 캐비비트를 기반으로 제1 결과 출력부(211) 및 제2 결과 출력부(212)의 결과값 중 어느 하나를 선택한다.
Also, the multiplexer 213 receives a 1-bit carry in output from the lower unit 4-bit adder and based on the received cavibit, the first result output unit 211 and the second result output unit ( Select any one of 212).

도 7은 본 발명의 일 실시예에 따른 암호용 모듈러 곱셈 장치의 모듈러스 연산부의 구성을 도시한 것이다.7 illustrates a configuration of a modulus calculation unit of a cryptographic modular multiplication apparatus according to an embodiment of the present invention.

도 7을 참조하면, 본 발명의 일 실시예에 따른 암호용 모듈러 곱셈 장치의 모듈러스 연산부(220)는 원소 C 및 원소 D의 덧셈 연산 결과인 n+1 비트(225비트) 결과값에서 U-P 값을 고려한다. 여기서, 상기 U-P 값은 U-P = U-(2n-t) = U+t-2n 식을 만족하고, U+t 값의 계산결과에서 n+1번째 비트 값을 뺀 값이 된다. Referring to FIG. 7, the modulus operation unit 220 of the cryptographic modular multiplication apparatus according to an embodiment of the present invention uses the UP value from the n + 1 bit (225 bit) result value of the addition operation of the elements C and D. Consider. Herein, the UP value satisfies the expression UP = U- (2 n -t) = U + t-2 n , and is a value obtained by subtracting the n + 1 th bit value from the calculation result of the U + t value.

모듈러스 연산부(220)는 U+t 값을 연산하고, 상기 U 의 n+1 번째 비트가 '1'이면, 상기 U+t 값은 2n 보다 크게 되어 U > P 임을 판단하며, 상기 U 의 n+1 번째 비트가 '0'이면, 상기 U+t 값의 계산 결과 n+1 번째 비트가 '1'이면 U > P 보다 크고, 그렇지 않으면 U < P 가 됨을 판단한다.The modulus calculation unit 220 calculates U + t, and if the n + 1 th bit of U is '1', determines that U + t is greater than 2 n and that U> P, and n of U If the +1 th bit is '0', the result of the calculation of the U + t value is greater than U> P if the n + 1 th bit is '1', otherwise U <P.

이를 위해 본 발명의 일 실시예에 따른 암호용 모듈러 곱셈 장치의 모듈러스 연산부(220)는 U Plus T 연산부(221), 제어부(222) 및 추출부(223)을 포함할 수 있다.To this end, the modulus calculator 220 of the cryptographic modular multiplication apparatus according to an embodiment of the present invention may include a U Plus T calculator 221, a controller 222, and an extractor 223.

U Plus T 연산부(221)는 두 원소의 덧셈 연산 결과(U = C+D)로부터 모듈러스 P 와의 차이(U-P)를 기반으로 U+t 값을 연산하고, 추출부(223)는 상기 연산된 U+t 값으로부터 n+1 번째 비트를 추출하며, 제어부(222)는 상기 추출된 n+1 번째 비트로부터 상기 두 원소의 상기 덧셈 연산 결과에 대한 모듈러스 연산(U mode P)을 제어한다.
The U Plus T operation unit 221 calculates a U + t value based on the difference UP with modulus P from the result of the addition operation of two elements (U = C + D), and the extraction unit 223 calculates the calculated U The n + 1 th bit is extracted from the + t value, and the controller 222 controls a modulus operation (U mode P) on the result of the addition operation of the two elements from the extracted n + 1 th bit.

도 8은 본 발명의 실시예에 따른 224비트 타원곡선 암호용 모듈러 곱셈 장치에 대한 합성 결과를 요약한 것이고, 도 9는 시뮬레이션 결과를 도시한 것이다.FIG. 8 summarizes the synthesis result for the 224-bit elliptic curve cryptographic modular multiplication device according to an embodiment of the present invention, and FIG. 9 shows the simulation result.

도 8 및 도 9를 참조하면, 본 발명의 실시예에 따른 224비트 타원곡선 암호용 모듈러 곱셈 장치에 의하면, 두배 모듈러스 연산과 올림수가 '0' 및 '1'인 경우의 덧셈 연산을 4비트 단위로 구분하여 병렬적으로 덧셈 모듈러스 연산을 수행하여 지연시간을 감소시킬 수 있다.8 and 9, according to the 224 bit elliptic curve cryptographic modular multiplication apparatus according to an embodiment of the present invention, a double modulus operation and an addition operation when the rounding numbers are '0' and '1' are each 4-bit unit. The delay time can be reduced by performing add modulus operations in parallel.

구체적으로, 본 발명의 모듈러 곱셈 장치는 4 비트 단위로 덧셈 연산을 수행하는 구성을 포함하여 종래의 순차적인 계산방법에 대비하여 지연시간(delay)이 발생하지 않는다. 예를 들면, 순차적인 계산의 경우 224번째 자릿 수까지의 계산을 위하여 223번째 아래의 모든 자리가 계산되어야 최종 계산이 가능하여, 다음 자릿수를 계산하기 위한 올림수(Carry)를 기다리는 지연시간(Delay)이 발생하는 문제점을 발생하는 반면, 본 발명의 경우 그러나 본 과제에서는 4비트 단위로 나누어 총 56단위로 224비트를 계산하여 올림수(Carry)값을 기다리는 지연시간(Delay)가 발생하지 않는다.Specifically, the modular multiplying apparatus of the present invention does not generate delay compared to the conventional sequential calculation method, including a configuration of performing an addition operation in units of 4 bits. For example, in the case of sequential calculation, the delay time waiting for carry to calculate the next digit is possible because all the 223th digits must be calculated for the calculation up to the 224th digit. On the other hand, in the present invention, however, the delay time waiting for the carry value is not generated by calculating 224 bits in total 56 units by dividing into 4 bit units.

즉, 본 발명에 의하는 경우, 각 4비트 단위로 나뉘어진 56단위는 각각 동시간에 독립적으로 수행되어 올림수가 있는 경우와 없는 경우를 모두 동시에 미리 계산해 놓고 올림수가 0인지 1인지를 선택하는 56번의 작업만이 필요하게 되어, 순차적으로 자리올림을 발생하여 계산하는 방법보다 효율적일 수 있으며 지연시간을 줄일 수 있다.
That is, according to the present invention, 56 units divided into 4 bit units are each independently performed at the same time, so that both cases with and without the number of rounds are calculated in advance, and 56 is selected to select whether the rounded number is 0 or 1. Only one operation is required, which can be more efficient than the sequential rounding calculation and can reduce latency.

도 10은 본 발명의 일 실시예에 따른 타원곡선 하부 유한체의 두 원소에 대한 암호용 모듈러 곱셈 방법을 도시한 흐름도이다.10 is a flowchart illustrating a cryptographic modular multiplication method for two elements of an elliptic curve lower finite body according to an embodiment of the present invention.

1010 단계에서 타원곡선 하부 유한체의 두 원소 중 승수에 대한 비트 차수별 계수를 추출한다.In step 1010, the coefficients of the bit order for the multiplier of the two elements of the lower elliptic curve are extracted.

1020 단계에서 승수로부터 추출된 최상위 n비트 계수 및 피승수에 대한 곱셈 연산 결과에 대한 제1 두배 모듈러스 연산을 수행한다.In operation 1020, a first double modulus operation is performed on the result of the multiplication operation on the most significant n-bit coefficient and the multiplicand extracted from the multiplier.

실시예에 따라, 1020 단계는 제1 두배 모듈러스 연산 결과 및 곱셈 연산 결과를 각각 4비트 단위로 구분하고, 4비트 단위의 제1 두배 모듈러스 연산 결과 및 4비트 단위의 곱셈 연산 결과에 대하여 병렬적으로 덧셈 연산을 수행하는 단계일 수 있다. 예를 들면, 4비트 단위의 제1 두배 모듈러스 연산 결과 및 4비트 단위의 곱셈 연산 결과에 대하여 올림수가 '0' 및 '1'인 경우의 덧셈 연산을 병렬적으로 수행하여 캐리값을 포함하는 5비트 결과를 출력하는 과정일 수 있다.According to an embodiment, step 1020 divides the first double modulus operation result and the multiplication operation result into 4 bit units, respectively, and parallelly performs the first double modulus operation result in 4 bit unit and the multiplication operation result in 4 bit unit. It may be a step of performing an addition operation. For example, an add operation when rounding numbers '0' and '1' are performed on the first double modulus operation result in 4-bit unit and the multiplication operation unit in 4-bit unit to include a carry value in parallel. It may be a process of outputting a bit result.

1030 단계에서 수행된 제1 두배 모듈러스 연산 결과와, 승수로부터 추출된 n-1 비트 계수 및 피승수에 대한 곱셈 연산 결과에 대한 제1 덧셈 모듈러스 연산을 수행한다.The first double modulus operation performed in step 1030 and the first addition modulus operation are performed on the multiplication operation result of the n−1 bit coefficient and the multiplier extracted from the multiplier.

1040 단계에서 수행된 제1 덧셈 모듈러스 연산 수행 결과를 기반으로 승수로부터 추출된 하위 비트 계수 및 피승수에 대하여 제1 두배 모듈러스 연산 및 제1 덧셈 모듈러스 연산을 순차적으로 반복 수행하도록 제어한다.The first double modulus operation and the first addition modulus operation are sequentially performed on the lower bit coefficient and the multiplicand extracted from the multiplier based on the result of the first addition modulus operation performed in step 1040.

실시예에 따른 방법은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 매체에 기록되는 프로그램 명령은 실시예를 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다. 상기된 하드웨어 장치는 실시예의 동작을 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.The method according to the embodiment may be embodied in the form of program instructions that can be executed by various computer means and recorded in a computer readable medium. The computer readable medium may include program instructions, data files, data structures, etc. alone or in combination. The program instructions recorded on the media may be those specially designed and constructed for the purposes of the embodiments, or they may be of the kind well-known and available to those having skill in the computer software arts. Examples of computer-readable recording media include magnetic media such as hard disks, floppy disks, and magnetic tape, optical media such as CD-ROMs, DVDs, and magnetic disks, such as floppy disks. Magneto-optical media, and hardware devices specifically configured to store and execute program instructions, such as ROM, RAM, flash memory, and the like. Examples of program instructions include not only machine code generated by a compiler, but also high-level language code that can be executed by a computer using an interpreter or the like. The hardware devices described above may be configured to operate as one or more software modules to perform the operations of the embodiments, and vice versa.

이상과 같이 실시예들이 비록 한정된 실시예와 도면에 의해 설명되었으나, 해당 기술분야에서 통상의 지식을 가진 자라면 상기의 기재로부터 다양한 수정 및 변형이 가능하다. 예를 들어, 설명된 기술들이 설명된 방법과 다른 순서로 수행되거나, 및/또는 설명된 시스템, 구조, 장치, 회로 등의 구성요소들이 설명된 방법과 다른 형태로 결합 또는 조합되거나, 다른 구성요소 또는 균등물에 의하여 대치되거나 치환되더라도 적절한 결과가 달성될 수 있다. While the present invention has been particularly shown and described with reference to exemplary embodiments thereof, it is to be understood that the invention is not limited to the disclosed exemplary embodiments. For example, it is to be understood that the techniques described may be performed in a different order than the described methods, and / or that components of the described systems, structures, devices, circuits, Lt; / RTI &gt; or equivalents, even if it is replaced or replaced.

그러므로, 다른 구현들, 다른 실시예들 및 특허청구범위와 균등한 것들도 후술하는 특허청구범위의 범위에 속한다.Therefore, other implementations, other embodiments, and equivalents to the claims are also within the scope of the following claims.

Claims (11)

타원곡선 하부 유한체의 두 원소에 대한 모듈러 곱셈 장치에 있어서,
상기 두 원소 중 승수(multipilier)에 대한 비트 차수별 계수를 추출하는 계수 선택부;
상기 승수로부터 추출된 최상위 n 비트 계수 및 피승수(multiplicand)에 대한 곱셈 연산 결과에 대한 제1 두배 모듈러스 연산을 수행하는 두배 모듈러스 연산부; 및
수행된 제1 두배 모듈러스 연산 결과와, 상기 승수로부터 추출된 n-1 비트 계수 및 피승수에 대한 곱셈 연산 결과에 대한 제1 덧셈 모듈러스 연산을 수행하는 덧셈 모듈러스 연산부
를 포함하는 암호용 모듈러 곱셈 장치.
In a modular multiplication apparatus for two elements of an elliptic curve lower finite body,
A coefficient selector for extracting coefficients for each bit order of multipliers of the two elements;
A double modulus operator configured to perform a first double modulus operation on a multiplication operation result of the most significant n-bit coefficient and the multiplicand extracted from the multiplier; And
An addition modulus operation unit configured to perform a first addition modulus operation on the first double modulus operation result and the multiplication operation result of the n-1 bit coefficient and the multiplier extracted from the multiplier
Modular multiplication device for cryptography comprising a.
제1항에 있어서,
수행된 제1 덧셈 모듈러스 연산 수행 결과를 기반으로 상기 승수로부터 추출된 하위 비트 계수 및 피승수에 대하여 상기 제1 두배 모듈러스 연산 및 상기 제1 덧셈 모듈러스 연산을 순차적으로 반복 수행하도록 상기 두배 모듈러스 연산부 및 상기 덧셈 모듈러스 연산부를 제어하는 제어부
를 더 포함하는 암호용 모듈러 곱셈 장치.
The method of claim 1,
The double modulus operation unit and the addition to sequentially repeat the first double modulus operation and the first addition modulus operation on the lower bit coefficient and the multiplicand extracted from the multiplier based on a result of performing the first addition modulus operation Control unit controlling the modulus operation unit
Modular multiplication device for cryptography further comprising.
제2항에 있어서,
상기 두배 모듈러스 연산부는
수행된 제1 덧셈 모듈러스 연산 수행 결과에 대한 제2 두배 모듈러스 연산을 수행하고,
상기 덧셈 모듈러스 연산부는,
수행된 제2 두배 모듈러스 연산 결과와, n-2 비트 계수 및 피승수에 대한 곱셈 연산 결과에 대한 제2 덧셈 모듈러스 연산을 수행하는 암호용 모듈러 곱셈 장치.
3. The method of claim 2,
The double modulus calculation unit
Perform a second double modulus operation on the result of performing the first addition modulus operation;
The addition modulus calculation unit,
A cryptographic modular multiplication apparatus for performing a second double modulus operation result and a second addition modulus operation for the multiplication operation result for n-2 bit coefficients and multiplicands.
제1항에 있어서,
상기 덧셈 모듈러스 연산부는
상기 제1 두배 모듈러스 연산 결과 및 상기 곱셈 연산 결과를 각각 4비트 단위로 구분하고, 4비트 단위의 제1 두배 모듈러스 연산 결과 및 4비트 단위의 곱셈 연산 결과에 대하여 병렬적으로 덧셈 연산을 수행하는 것을 특징으로 하는 암호용 모듈러 곱셈 장치.
The method of claim 1,
The addition modulus calculation unit
Dividing the first double modulus operation result and the multiplication operation result into 4 bit units and performing an addition operation in parallel on the first double modulus operation result in 4 bit units and the multiplication operation result in 4 bit units. A modular modular multiplication device for characterization.
제4항에 있어서,
상기 덧셈 모듈러스 연산부는,
4비트 단위의 제1 두배 모듈러스 연산 결과 및 4비트 단위의 곱셈 연산 결과에 대하여 올림수가 '0' 및 '1'인 경우의 덧셈 연산을 병렬적으로 수행하여 캐리값을 포함하는 5비트 결과를 출력하는 하나 이상의 4비트 덧셈기
를 포함하는 암호용 모듈러 곱셈 장치.
5. The method of claim 4,
The addition modulus calculation unit,
A 5-bit result including a carry value is output by performing an add operation when the rounding number is '0' and '1' in parallel to the first double modulus operation result in 4-bit unit and multiplication operation in 4-bit unit. One or more 4-bit adders
Modular multiplication device for cryptography comprising a.
제5항에 있어서,
상기 하나 이상의 4비트 덧셈기 각각은,
상기 올림수가 '0'인 경우의 덧셈 연산을 수행하는 제1 결과 출력부;
상기 올림수가 '1'인 경우의 덧셈 연산을 수행하는 제2 결과 출력부; 및
하위 단위 4비트 덧셈기로부터 출력된 1비트의 캐리비트를 수신하고, 상기 수신된 캐리비트를 기반으로 상기 제1 결과 출력부 및 상기 제2 결과 출력부의 수행 결과값 중 중 어느 하나를 선택하는 멀티플렉서
를 더 포함하는 암호용 모듈러 곱셈 장치.
The method of claim 5,
Each of the one or more 4-bit adders,
A first result output unit configured to perform an addition operation when the rounding number is '0';
A second result output unit configured to perform an addition operation when the rounding number is '1'; And
A multiplexer that receives a 1-bit carry bit output from a lower unit 4-bit adder and selects one of an execution result value of the first result output unit and the second result output unit based on the received carry bit.
Modular multiplication device for cryptography further comprising.
타원곡선 하부 유한체의 두 원소에 대한 암호용 모듈러 곱셈 방법에 있어서,
상기 두 원소 중 승수에 대한 비트 차수별 계수를 추출하는 단계;
상기 승수로부터 추출된 최상위 n비트 계수 및 피승수에 대한 곱셈 연산 결과에 대한 제1 두배 모듈러스 연산을 수행하는 단계; 및
수행된 제1 두배 모듈러스 연산 결과와, 상기 승수로부터 추출된 n-1 비트 계수 및 피승수에 대한 곱셈 연산 결과에 대한 제1 덧셈 모듈러스 연산을 수행하는 단계
를 포함하는 암호용 모듈러 곱셈 방법.
In the cryptographic modular multiplication method for two elements of an elliptic curve lower finite field,
Extracting a bit order coefficient for a multiplier of the two elements;
Performing a first double modulus operation on the result of the multiplication operation on the most significant n-bit coefficient and the multiplicand extracted from the multiplier; And
Performing a first addition modulus operation on the result of the first double modulus operation performed and the multiplication operation result on the n-1 bit coefficient and the multiplier extracted from the multiplier;
Modular multiplication method for cryptography comprising a.
제7항에 있어서,
수행된 제1 덧셈 모듈러스 연산 수행 결과를 기반으로 상기 승수로부터 추출된 하위 비트 계수 및 피승수에 대하여 상기 제1 두배 모듈러스 연산 및 상기 제1 덧셈 모듈러스 연산을 순차적으로 반복 수행하도록 제어하는 단계
를 포함하는 암호용 모듈러 곱셈 방법.
The method of claim 7, wherein
Controlling to sequentially repeat the first double modulus operation and the first addition modulus operation on the lower bit coefficient and the multiplicand extracted from the multiplier based on the result of performing the first addition modulus operation.
Modular multiplication method for cryptography comprising a.
제7항에 있어서,
제1 두배 모듈러스 연산을 수행하는 상기 단계는,
상기 제1 두배 모듈러스 연산 결과 및 상기 곱셈 연산 결과를 각각 4비트 단위로 구분하고, 4비트 단위의 제1 두배 모듈러스 연산 결과 및 4비트 단위의 곱셈 연산 결과에 대하여 병렬적으로 덧셈 연산을 수행하는 단계
를 포함하는 암호용 모듈러 곱셈 방법.
The method of claim 7, wherein
The step of performing a first double modulus operation,
Dividing the first double modulus operation result and the multiplication operation result in units of 4 bits, and performing an addition operation in parallel on the first double modulus operation result in units of 4 bits and the multiplication operation result in units of 4 bits
Modular multiplication method for cryptography comprising a.
제9항에 있어서,
병렬적으로 덧셈 연산을 수행하는 상기 단계는,
4비트 단위의 제1 두배 모듈러스 연산 결과 및 4비트 단위의 곱셈 연산 결과에 대하여 올림수가 '0' 및 '1'인 경우의 덧셈 연산을 병렬적으로 수행하여 캐리값을 포함하는 5비트 결과를 출력하는 단계
를 포함하는 암호용 모듈러 곱셈 방법.
10. The method of claim 9,
The step of performing an addition operation in parallel,
A 5-bit result including a carry value is output by performing an add operation when the rounding number is '0' and '1' in parallel to the first double modulus operation result in 4-bit unit and multiplication operation in 4-bit unit. Steps to
Modular multiplication method for cryptography comprising a.
제7항 내지 제10항 중 어느 한 항의 방법을 수행하기 위한 프로그램이 기록된 컴퓨터로 판독 가능한 기록 매체.A computer-readable recording medium having recorded thereon a program for performing the method of claim 7.
KR1020130058329A 2013-05-23 2013-05-23 Cryptographic modular apparatus and cryptographic modular method KR101321221B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020130058329A KR101321221B1 (en) 2013-05-23 2013-05-23 Cryptographic modular apparatus and cryptographic modular method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020130058329A KR101321221B1 (en) 2013-05-23 2013-05-23 Cryptographic modular apparatus and cryptographic modular method

Publications (1)

Publication Number Publication Date
KR101321221B1 true KR101321221B1 (en) 2013-10-22

Family

ID=49639100

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020130058329A KR101321221B1 (en) 2013-05-23 2013-05-23 Cryptographic modular apparatus and cryptographic modular method

Country Status (1)

Country Link
KR (1) KR101321221B1 (en)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100304693B1 (en) 1998-07-22 2001-09-29 윤종용 Modular arithmetic apparatus and IC card having the function for modular arithmetic
KR20010108780A (en) * 2000-05-31 2001-12-08 박종섭 Pipeline modulo operation device for realizing encryption hardware
KR20090037124A (en) * 2007-10-11 2009-04-15 삼성전자주식회사 Modular arithmetic method, modular multiplier and cryptosystem having the same
KR20090090881A (en) * 2008-02-22 2009-08-26 고려대학교 산학협력단 Method and apparatus of elliptic curve cryptography processing in sensor mote and recording medium using it

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100304693B1 (en) 1998-07-22 2001-09-29 윤종용 Modular arithmetic apparatus and IC card having the function for modular arithmetic
KR20010108780A (en) * 2000-05-31 2001-12-08 박종섭 Pipeline modulo operation device for realizing encryption hardware
KR20090037124A (en) * 2007-10-11 2009-04-15 삼성전자주식회사 Modular arithmetic method, modular multiplier and cryptosystem having the same
KR20090090881A (en) * 2008-02-22 2009-08-26 고려대학교 산학협력단 Method and apparatus of elliptic curve cryptography processing in sensor mote and recording medium using it

Similar Documents

Publication Publication Date Title
KR101255393B1 (en) Elliptic curve point multiplication
JP5179358B2 (en) Apparatus and method for protecting a data processing device against attack or analysis
KR102136911B1 (en) Cryptography method comprising an operation of multiplication by a scalar or an exponentiation
Salarifard et al. A low-latency and low-complexity point-multiplication in ECC
KR101914028B1 (en) Apparatus and method for performing operation being secure against side channel attack
JP4682852B2 (en) Cryptographic processing apparatus, cryptographic processing method, and computer program
JP5182364B2 (en) Cryptographic processing method with tamper resistance against side channel attack
JP2009500710A (en) Apparatus and method for protecting a data processing device against attack or analysis
JP4351987B2 (en) Montgomery conversion device, arithmetic device, IC card, encryption device, decryption device, and program
Sghaier et al. Fast hardware implementation of ECDSA signature scheme
JP4170267B2 (en) Multiplication remainder calculator and information processing apparatus
JP2010139544A (en) Apparatus and method for calculating remainder
KR101321221B1 (en) Cryptographic modular apparatus and cryptographic modular method
KR20150091691A (en) CRT-RSA encryption method and apparatus and computer readable storage medium therefore
KR101989950B1 (en) Apparatus and method for performing operation being secure against side channel attack
JP2007187908A (en) Modular exponentiation calculation device and method having tolerance to side-channel attack
KR101989943B1 (en) Apparatus and method for performing operation being secure against side channel attack
Hodjat et al. A scalable and high performance elliptic curve processor with resistance to timing attacks
KR102507861B1 (en) Apparatus and method for performing operation being secure against side channel attack
KR101321259B1 (en) Apparatus and method for calculating subtraction for montgomery inverse algorithm
KR20070062901A (en) Apparatus and method for modular multiplication using chhinese remainder theorem and carry save adder
KR101423947B1 (en) Modular multiplication and modular exponentiation using extended NIST prime
KR102510077B1 (en) Apparatus and method for performing operation being secure against side channel attack
KR100805272B1 (en) Appratus for multipying with sign encoding and Method thereof
KR101300915B1 (en) Method of generating pseduo-random sequences based on digit derivatives

Legal Events

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

Payment date: 20160907

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20170707

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20180831

Year of fee payment: 6