KR101321221B1 - Cryptographic modular apparatus and cryptographic modular method - Google Patents
Cryptographic modular apparatus and cryptographic modular method Download PDFInfo
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/60—Methods or arrangements for performing computations using a digital non-denominational number representation, i.e. number representation without radix; Computing devices using combinations of denominational and non-denominational quantity representations, e.g. using difunction pulse trains, STEELE computers, phase computers
- G06F7/72—Methods or arrangements for performing computations using a digital non-denominational number representation, i.e. number representation without radix; Computing devices using combinations of denominational and non-denominational quantity representations, e.g. using difunction pulse trains, STEELE computers, phase computers using residue arithmetic
- G06F7/722—Modular multiplication
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/38—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
- G06F7/48—Methods 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/50—Adding; Subtracting
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/60—Methods or arrangements for performing computations using a digital non-denominational number representation, i.e. number representation without radix; Computing devices using combinations of denominational and non-denominational quantity representations, e.g. using difunction pulse trains, STEELE computers, phase computers
- G06F7/72—Methods or arrangements for performing computations using a digital non-denominational number representation, i.e. number representation without radix; Computing devices using combinations of denominational and non-denominational quantity representations, e.g. using difunction pulse trains, STEELE computers, phase computers using residue arithmetic
- G06F7/724—Finite field arithmetic
- G06F7/725—Finite field arithmetic over elliptic curves
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/30—Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
- H04L9/3006—Public 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
Description
본 발명은 유한체 상에서의 타원곡선 암호시스템을 위한 암호용 모듈러 곱셈장치 및 방법에 관한 것이다. 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.
두배 모듈러스 연산과 덧셈 모듈러스 연산을 반복적으로 수행하여 유한체 위에서의 타원곡선을 하드웨어적으로 구현 가능한 암호용 곱셈장치를 제공하고자 한다.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
도 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
두배 모듈러스 연산부(120)는 계수 선택부(110)로부터 승수로부터 추출된 최상위 n 비트 계수 및 피승수(multiplicand)에 대한 곱셈 연산 결과에 대한 제1 두배 모듈러스 연산을 수행한다. 제1 두배 모듈러스 연산은 유한체 한 원소에 대한 두 배 mod P 기반 연산일 수 있다.The
도 1에 도시된 바와 같이, 두배 모듈러스 연산부(120)는 승수인 원소 B로부터 추출된 최상위 n 비트 계수인 bn -1 와 피승수인 원소 A 의 곱셈 연산 결과인 bn -1 A 에 대한 제1 두배 모듈러스 연산(2mod P)를 수행하여 제1 두배 모듈러스 연산의 결과(bn -1 A2mod P)를 출력할 수 있다.1, the double
덧셈 모듈러스 연산부(130)는 수행된 제1 두배 모듈러스 연산 결과와, 상기 승수로부터 추출된 n-1 비트 계수 및 피승수에 대한 곱셈 연산 결과에 대한 제1 덧셈 모듈러스 연산을 수행한다. 제1 덧셈 모듈러스 연산은 유한체 두 원소의 덧셈 mod P 기반 연산일 수 있다.The
도 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
본 발명의 일실시예에 따른 암호용 모듈러 곱셈 장치(100)는 수행된 제1 덧셈 모듈러스 연산 수행 결과를 기반으로 승수로부터 추출된 하위 비트 계수 및 피승수에 대하여 제1 두배 모듈러스 연산 및 제1 덧셈 모듈러스 연산을 순차적으로 반복 수행하도록 두배 모듈러스 연산부(120) 및 덧셈 모듈러스 연산부(130)를 제어하는 제어부(140)를 더 포함할 수 있다.The cryptographic
실시예에 따라, 제어부(140)는 두배 모듈러스 연산부(120)가 수행된 제1 덧셈 모듈러스 연산 수행 결과에 대한 제2 두배 모듈러스 연산을 수행하도록 제어하고, 덧셈 모듈러스 연산부(130)가 수행된 제2 두배 모듈러스 연산 결과와, n-2 비트 계수 및 피승수에 대한 곱셈 연산 결과에 대한 제2 덧셈 모듈러스 연산을 수행하도록 제어할 수 있다.According to an embodiment, the
도 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
또한, 덧셈 모듈러스 연산부(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
제어부(140)는 수행된 제2 덧셈 모듈러스 연산 수행 결과를 기반으로 승수로부터 추출된 다음 하위 비트 계수 및 피승수에 대하여 두배 모듈러스 연산 및 덧셈 모듈러스 연산을 순차적으로 반복 수행하도록 두배 모듈러스 연산부(120) 및 덧셈 모듈러스 연산부(130)를 제어할 수 있다. 이하에서는 도 2를 참조하여, 본 발명의 실시예에 따른 224비트 타원곡선 암호용 모듈러 곱셈 장치를 상세히 설명하기로 한다.
The
도 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
[수학식 1][Equation 1]
단, 상기 수학식 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
계수 선택부(110, Chooser)는 타원곡선 하부 유한체의 두 원소 중 승수(multipilier)에 대한 비트 차수별 계수를 추출한다. 두 원소 A 및 B 는 224비트 타원곡선 하부 유한체의 원소일 수 있다. 이하에서는 도 3을 참조하여, 본 발명의 실시예에 따른 224비트 암호용 모듈러 곱셈 장치의 계수 선택부를 상세히 설명하기로 한다.
The
도 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
계수 선택부(110)는 종료 신호(d_chooser)에 따라 추출된 차수별 계수를 출력값(o_chooser)으로 출력한다.
The
다시 도 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
이를 위해, 두배 모듈러스 연산부(120)는 224비트 입력값(In_A)로부터 2배 연산을 수행하여 결과(In_A2)를 출력하는 수단(121)과, 출력된 2배 연산의 결과(In_A2)에 모듈러스 연산을 수행하여 결과(o_u mod P)를 출력하는 수단(122, U mod P)을 포함할 수 있다.
To this end, the double
다시 도 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
실시예에 따라, 덧셈 모듈러스 연산부(130)는 원소 C의 4비트 단위 및 원소 D의 4비트 단위 각각에 대하여 올림수가 '0' 및 '1'인 경우의 덧셈 연산을 병렬적으로 수행하여 1비트의 캐리값(carry out)을 포함하는 5비트 결과를 출력하는 하나 이상의 4비트 덧셈기(210)를 포함할 수 있다. According to an embodiment, the
도 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
도 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
제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
도 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
모듈러스 연산부(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
이를 위해 본 발명의 일 실시예에 따른 암호용 모듈러 곱셈 장치의 모듈러스 연산부(220)는 U Plus T 연산부(221), 제어부(222) 및 추출부(223)을 포함할 수 있다.To this end, the
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
도 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
1020 단계에서 승수로부터 추출된 최상위 n비트 계수 및 피승수에 대한 곱셈 연산 결과에 대한 제1 두배 모듈러스 연산을 수행한다.In
실시예에 따라, 1020 단계는 제1 두배 모듈러스 연산 결과 및 곱셈 연산 결과를 각각 4비트 단위로 구분하고, 4비트 단위의 제1 두배 모듈러스 연산 결과 및 4비트 단위의 곱셈 연산 결과에 대하여 병렬적으로 덧셈 연산을 수행하는 단계일 수 있다. 예를 들면, 4비트 단위의 제1 두배 모듈러스 연산 결과 및 4비트 단위의 곱셈 연산 결과에 대하여 올림수가 '0' 및 '1'인 경우의 덧셈 연산을 병렬적으로 수행하여 캐리값을 포함하는 5비트 결과를 출력하는 과정일 수 있다.According to an embodiment,
1030 단계에서 수행된 제1 두배 모듈러스 연산 결과와, 승수로부터 추출된 n-1 비트 계수 및 피승수에 대한 곱셈 연산 결과에 대한 제1 덧셈 모듈러스 연산을 수행한다.The first double modulus operation performed in
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
실시예에 따른 방법은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 매체에 기록되는 프로그램 명령은 실시예를 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(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 > 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 덧셈 모듈러스 연산을 순차적으로 반복 수행하도록 상기 두배 모듈러스 연산부 및 상기 덧셈 모듈러스 연산부를 제어하는 제어부
를 더 포함하는 암호용 모듈러 곱셈 장치.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.
상기 두배 모듈러스 연산부는
수행된 제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 두배 모듈러스 연산 결과 및 상기 곱셈 연산 결과를 각각 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비트 단위의 제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.
상기 하나 이상의 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.
수행된 제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.
제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.
병렬적으로 덧셈 연산을 수행하는 상기 단계는,
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.
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)
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 |
-
2013
- 2013-05-23 KR KR1020130058329A patent/KR101321221B1/en active IP Right Grant
Patent Citations (4)
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 |