KR100865678B1 - method and system for fast inversion of high-speed public-key crypto system - Google Patents
method and system for fast inversion of high-speed public-key crypto system Download PDFInfo
- Publication number
- KR100865678B1 KR100865678B1 KR1020070004695A KR20070004695A KR100865678B1 KR 100865678 B1 KR100865678 B1 KR 100865678B1 KR 1020070004695 A KR1020070004695 A KR 1020070004695A KR 20070004695 A KR20070004695 A KR 20070004695A KR 100865678 B1 KR100865678 B1 KR 100865678B1
- Authority
- KR
- South Korea
- Prior art keywords
- variable
- input
- value
- result
- dividing
- Prior art date
Links
- 238000000034 method Methods 0.000 title claims abstract description 35
- 238000004364 calculation method Methods 0.000 claims abstract description 7
- 238000010586 diagram Methods 0.000 description 4
- 238000004422 calculation algorithm Methods 0.000 description 3
- 238000012152 algorithmic method Methods 0.000 description 1
- 238000007796 conventional method Methods 0.000 description 1
- 230000004044 response Effects 0.000 description 1
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/721—Modular inversion, reciprocal or quotient calculation
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Physics & Mathematics (AREA)
- Mathematical Analysis (AREA)
- Pure & Applied Mathematics (AREA)
- Mathematical Optimization (AREA)
- Computing Systems (AREA)
- Computational Mathematics (AREA)
- Mathematical Physics (AREA)
- General Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Complex Calculations (AREA)
Abstract
가/감산, 쉬프트만을 이용하여 곱셈 역원기의 연산 동작을 수행할 수 있도록 함으로써 곱셈 역원기의 계산 속도를 향상시킬 수 있는 유한체 GF(p)에서 고속 공개키 암호시스템의 고속 곱셈 역원 방법 및 시스템이 개시된다. 본 발명은 암호 연산시 유한체 GF(p)에서의 연산 수행시간에서 가장 많이 차지하는 곱셈역원시 연산 동작에서 모듈러 연산 또는 곱셈/나눗셈을 필요로 하지 않고 단지 가/감산, 쉬프트만을 이용하여 계산 속도를 향상시킬 수 있는 장점이 있다. 또한 기존의 다른 역원 방식보다 반복 연산을 줄임으로서 계산 속도를 높일 수 있다. Fast Multiplication Inverter Method and System of Fast Public Key Cryptosystem in Finite Field GF (p) That Can Improve the Computation Speed of Multiply Inverter by Using Addition / Subtraction and Shift Only This is disclosed. The present invention does not require modular operation or multiplication / division in the multiplication inverse operation operation, which occupies the most in the operation time in the finite field GF (p) during encryption operation, and uses only addition, subtraction, and shift to increase the calculation speed. There is an advantage that can be improved. In addition, the computational speed can be increased by reducing the iterative operation compared to other inverted methods.
Description
도 1은 일반적인 공개키 암호 시스템의 전체적인 구성도이다. 1 is an overall configuration diagram of a general public key cryptosystem.
도 2는 본 발명에 따른 유한체 GF(p)에서의 공개키 암호 시스템에서 고속 곱셈 역원을 수행하기 위한 개략적인 흐름도이다. 2 is a schematic flowchart for performing a fast multiplication inverse in a public key cryptosystem in a finite field GF (p) according to the present invention.
도 3은 본 발명에 따른 유한체 GF(p)에서의 고속 곱셈 역원 시스템의 개략적인 구성도이다.3 is a schematic diagram of a fast multiplication inverse system in a finite field GF (p) according to the present invention.
도 4는 도 3의 고속 곱셈 역원 회로에서 입ㆍ출력 도메인 변경 방법을 보여주기 위한 흐름도이다.4 is a flowchart illustrating a method of changing an input / output domain in the fast multiplication inverse circuit of FIG. 3.
<도면의 주요 부분에 대한 부호의 설명> <Explanation of symbols for the main parts of the drawings>
100 : 공개키 암호 시스템 110 : 메인 콘트롤러100: public key cryptosystem 110: main controller
120 : 연산 제어부 130 : 연산 장치120: arithmetic control unit 130: arithmetic unit
140 : 프로그램 메모리 150 : 프로그램 메모리140: program memory 150: program memory
201 : 제어부 202, 206 : MUX201: control unit 202, 206: MUX
204 : 레지스터 208 : 보정부204: Register 208: Correction unit
본 발명은 유한체 GF(p)에서 고속 공개키 암호시스템의 고속 곱셈 역원 방법 및 시스템에 관한 것으로, 보다 상세하게는 가/감산, 쉬프트만을 이용하여 곱셈 역원기의 연산 동작을 수행할 수 있도록 함으로써 곱셈 역원기의 계산 속도를 향상시킬 수 있는 고속 공개키 암호시스템의 고속 곱셈 역원 방법 및 시스템에 관한 것이다. The present invention relates to a fast multiplication inverse method and system of a fast public key cryptosystem in finite field GF (p), and more specifically, to perform a multiplication inverse operation operation using only addition / subtraction and shift. The present invention relates to a fast multiplication inverse method and system of a fast public key cryptosystem that can improve the computation speed of a multiplier inverse.
일반적으로, 공개키 암호시스템이란 인터넷에서 보안을 유지하기 위한 암호 방식 중 암호화와 복호화 과정에서 서로 다른 키를 사용하는 비대칭 방식을 말한다. 즉, 공개키 암호 시스템은 타인이 메시지를 암호화할 때 사용하는 공개키(Public Key)와 암호문을 원래의 메시지로 복원할 때 쓰는 비밀키(Private key)로 구성돼 있어 두개의 키를 사용한다. 메시지를 보낼 때 메시지에 비밀키를 이용해 암호화 알고리즘에 의해 계산된 값을 첨부해 보내면 수신자는 공개키를 이용해 역으로 계산하여 이 메시지의 진위여부를 확인하는 것이다. In general, a public key cryptosystem refers to an asymmetric method that uses different keys during encryption and decryption among encryption methods for maintaining security on the Internet. In other words, the public key cryptosystem consists of a public key used by others to encrypt a message and a private key used to restore a ciphertext to the original message. When sending a message, the message is sent with the private key and the value calculated by the encryption algorithm. The receiver then checks the authenticity of the message by using the public key to reverse the calculation.
이러한 공개키 암호 시스템 연산은 기본적으로 유한체 연산을 포함하고 있으며 이 연산에 따라 암호 시스템의 효율성이 결정된다. 공개키 암호 시스템의 수행시간은 곱셈 및 역원 연산이 가장 많이 차지하며 이 중 역원 연산은 곱셈에 비해 시간 복잡도가 크므로 많은 연구의 대상이 되고 있다. 유한체 GF(p)에서 역원 연산은 0이 아닌 GF(p)의 원소 x의 역원 x-1은 xy = 1을 만족하는 원소 y이다. These public key cryptosystem operations basically include finite field operations, which determine the efficiency of the cryptosystem. The execution time of the public key cryptosystem is the most frequent multiplication and inversion operation. Among these, inversion operation is the subject of many studies because it has more time complexity than multiplication. In finite field GF (p), the inverse operation is nonzero and the inverse x- 1 of element x of GF (p) is element y satisfying xy = 1.
유한체 GF(p)의 역원 연산은 주로 확장된 유클리드 알고리즘 (extended euclidean algorithm)과 몽고메리 역원 알고리즘(Montgomery inverse algorithm) 방법을 기반으로 한다. 1997년 유한체 GF(p)에서 모듈러 인버젼을 위한 간단한 알고리즘 방법들이 발표되었다. 그것은 바이너리 버전의 확장된 유클리드 모듈러 인버젼 방법이다. 이 방법은 입력된 값에 따라 반복문을 수행하면서 주어진 유한체에서의 쉬프트 연산, 덧셈이나 뺄셈 연산을 수행하면서 역원을 계산한다.The inverse computation of the finite field GF (p) is mainly based on the extended euclidean algorithm and Montgomery inverse algorithm. In 1997 finite field GF (p) presented simple algorithmic methods for modular inversion. It is a binary version of the extended Euclidean modular inversion method. This method calculates the inverse by performing an iteration based on the input value and performing a shift operation, addition or subtraction operation on a given finite field.
유클리드 모듈러 인버젼 방법은 종래의 바이너리 인버젼 방법 보다 빠르다. 또한 바이너리 버전의 확장된 유클리드 모듈러 인버젼 방법의 연산 동작에 필요한 하드웨어 구현 시 세 개의 덧셈기와 뺄셈기로 구성할 수 있다. The Euclidean modular inversion method is faster than the conventional binary inversion method. In addition, three adders and subtractors can be used to implement the hardware required for the operation of the binary version of the extended Euclidean modular inversion method.
그러나 유클리드 모듈러 인버젼 방법은 불필요한 연산 동작과 특정한 연산 동작 시 어떠한 처리동작도 할 수 없는 상태가 되어 비능률적인 연산처리의 원인이 되는 문제점이 있었다. However, the Euclidean modular inversion method has a problem in that unnecessary processing operations and specific processing operations cannot perform any processing operations, resulting in inefficient processing.
본 발명은 상기의 문제점을 해소하기 위하여 발명된 것으로, 유한체 GF(p)에서의 공개키 암호 시스템에 사용되는 곱셈 역원기 연산 동작에서 모듈러 연산 또는 곱셈/나눗셈을 필요로 하지 않고 단지 가/감산, 쉬프트만을 이용하여 계산 속도를 향상시키고, 기존의 곱셈역원방식보다 개선된 공개키 암호 시스템의 유한체 GF(p)에서의 효율적인 곱셈역원 방법 및 이를 수행하는 고속 역원기를 제공하는 데 그 목적이 있다. The present invention has been invented to solve the above problems, and does not require modular operation or multiplication / division in multiplication inverse operation operation used in public key cryptosystem in finite field GF (p). The purpose of the present invention is to improve the computation speed by using only the shift, and to provide an efficient multiplication inverse method in the finite field GF (p) of the public key cryptosystem, which is an improvement over the conventional multiplication inverse method, and a high speed inverse unit for performing the same. .
이와 같은 목적을 달성하기 위한 본 발명은,The present invention for achieving such an object,
p는 0이 아닌 소수이고, 입력값 x∈(0,p) 일 때, p는 u 변수, x는 v변수, r변수에는 0이 입력되며, s변수에는 1이 입력되는 단계; p is a non-zero decimal number, when input value x∈ (0, p), p is u variable, x is v variable, 0 is input to r variable, and 1 is input to s variable;
u 변수에 입력되는 값이 짝수라면, r 변수에는 r을 2로 나눈 후 모듈러 p한 결과를, u 변수에는 u를 2로 나눈 결과를 입력시키며, 상기 v 변수에 입력되는 값이 짝수라면, 상기 s 변수에는 s를 2로 나눈 후 모듈러 p한 결과를, 상기 v 변수에는 v를 2로 나눈 결과를 입력키는 과정을 반복하는 단계; If the value input to the u variable is even, the result of dividing r by 2 and then modular p for the variable r, and the result of dividing u by 2 for the u variable, and if the value input to the variable v is even, repeating a process of inputting a result of dividing s by 2 and then performing a modular p on the variable s and a result of dividing v by 2 on the variable v;
u 변수 및 v 변수의 입력이 홀수이고, u 변수의 입력이 v 변수의 입력보다 크다면, u 변수에는 u 변수의 입력값에서 v 변수의 입력값을 뺄셈 연산하여 2로 나눈 결과를 입력시키고, r 변수에는 r 변수의 입력값과 s 변수의 입력값을 덧셈 연산하여 2로 나눈 후 모듈러 p한 결과를 입력시키는 단계; If the input of u variable and v variable is odd, and the input of u variable is greater than the input of v variable, input the result of dividing the value of v variable by 2 by subtracting the input value of u variable into the u variable, r-adding the input value of the variable r and the input value of the variable s by r and dividing the result by two and inputting the result of modular p;
u 변수 및 v 변수의 입력이 홀수이고 u 변수의 입력값이 v 변수의 입력값보다 작다면, v 변수의 입력은 v 변수의 입력값에서 u 변수의 입력값을 뺄셈 연산하여 2로 나눈 결과를 입력시키고, s 변수에는 s 변수의 입력값과 r 변수의 입력값을 덧셈 연산하여 2로 나눈 후 모듈러 p한 결과를 입력시키는 단계; 그리고, If the input of u and v variables is odd and the input of the u variable is less than the input of the variable v, then the input of the variable v is divided by 2 by subtracting the input of the variable u from the input of the variable v. Inputting the result of adding the result of the variable s and the value of the variable r to the variable s, dividing the result by two, and inputting the result of the modular p; And,
v변수의 입력값이 1이면 상기 s의 변수의 값을 출력값 y로 선택하는 단계를 포함한다. If the input value of the v variable is 1, selecting the value of the variable of s as an output value y.
이하 첨부된 도면을 참조하여 본 발명의 바람직한 실시예를 상세히 설명하면 다음과 같다.Hereinafter, exemplary embodiments of the present invention will be described in detail with reference to the accompanying drawings.
첨부된 도 1은 일반적인 공개키 암호 시스템의 전체적인 구성도이고, 도 2는 본 발명에 따른 유한체 GF(p)에서의 공개키 암호 시스템에서 고속 곱셈 역원을 수행하기 위한 개략적인 흐름도이다. 또한, 도 3은 본 발명에 따른 유한체 GF(p)에서의 고속 곱셈 역원 회로의 개략적인 구성도이고, 도 4는 도 3의 고속 곱셈 역원 회로에서 입ㆍ출력 도메인 변경 방법을 보여주기 위한 흐름도이다.1 is a schematic diagram of a general public key cryptosystem, and FIG. 2 is a schematic flowchart for performing a fast multiplication inverse in a public key cryptosystem in a finite field GF (p) according to the present invention. 3 is a schematic configuration diagram of a fast multiplication inverse circuit in the finite field GF (p) according to the present invention, and FIG. 4 is a flowchart illustrating a method of changing an input / output domain in the fast multiplication inverse circuit of FIG. 3. to be.
공개키 암호 시스템(100)은 도 1에서 보는 바와 같이, 프로그램 메모리(140)를 포함하는 메인 콘트롤러(110), 연산 제어부(120) 및 데이터 메모리(150)를 포함하는 연산 장치(130)로 구성된다. 메인 콘트롤러(110)는 호스트 시스템(도시되지 않음)으로부터 제어신호를 받아 연산 제어부(120)를 제어한다. 연산 제어부(120)의 제어를 받는 연산 장치(130)는 GF(p)에서의 덧셈, 제곱승, 곱셈 그리고 역원(inversion)을 수행한다. As shown in FIG. 1, the
일반적으로 전통적인 모듈러 역원(modular inversion)방법으로 모듈러 지수 (modular exponent)방법과 확장된 유클리드(extended Euclidean)방법이 있는 데, 이 방법들은 곱셈, 제곱, 나눗셈과 같은 복잡한 연산 동작이 포함되어 동작속도가 느리다. Traditional modular inversion methods generally include the modular exponent method and the extended Euclidean method, which include complex computational operations such as multiplication, squares, and division. slow.
본 발명에 따른 공개키 암호 시스템에서의 고속곱셈역원방법은 도 2에서 보는 바와 같이, 입력조건에서 p는 0이 아닌 소수이고, 입력값 x∈(0,p) 일 때, p는 u 변수, x는 v변수, r변수에는 0이 입력되며, s변수에는 1이 입력된다. (단계 S1)
단계 S1에서, u 변수에 입력되는 값이 짝수라면, r 변수에는 r을 2로 나눈 후 모듈러 p한 결과를, u 변수에는 u를 2로 나눈 결과를 입력시킨다.(단계 S2~S3) As shown in FIG. 2, p is a non-zero prime number in an input condition, and p is a u variable, when the input value x∈ (0, p) is shown in FIG. 2. x is input for v variable, 0 for r variable, and 1 for s variable. (Step S1)
In step S1, if the value input to the u variable is even, the result of dividing r by 2 and then modular p is input to the r variable, and the result of dividing u by 2 is input to the u variable (steps S2 to S3).
또한, 단계 S1에서, v 변수에 입력되는 값이 짝수라면, s 변수에는 s를 2로 나눈 후 모듈러 p한 결과를, v 변수에는 v를 2로 나눈 결과를 입력시킨다.(단계 S4~S5) In addition, in step S1, if the value input to the v variable is even, the result of dividing s by 2 and then modular p is input to the s variable, and the result of dividing v by 2 is input to the v variable (steps S4 to S5).
삭제delete
단계 S2 및 단계 S4후에 u 변수 및 v 변수의 입력이 짝수가 아닐 경우, 즉 u 변수 및 v 변수의 입력이 홀수일 때, 만약 u 변수의 입력이 v 변수의 입력보다 크다면(단계 S6), u 변수에는 u 변수의 입력값에서 v 변수의 입력값을 뺄셈 연산하여 2로 나눈 결과를 입력시키고, r 변수에는 r 변수의 입력값과 s 변수의 입력값을 덧셈 연산하여 2로 나눈 후 모듈러 p한 결과를 입력시키고 단계 2로 복귀한다.(단계 S7) If after step S2 and after step S4 the inputs of the u and v variables are not even, that is, when the inputs of the u and v variables are odd, if the input of the u variable is greater than the input of the v variable (step S6), For the u variable, subtract the input value of the v variable from the input value of the u variable and divide the result by 2, and for the r variable, divide the input value of the r variable and the input value of the s variable by 2, and then modular p. The result is entered and the process returns to step 2 (step S7).
단계 S2 및 단계 S4후에서 u 변수 및 v 변수의 입력이 홀수일 때, 만약 u 변수의 입력값이 v 변수의 입력값보다 작다면(단계 S6), v 변수의 입력은 v 변수의 입력값에서 u 변수의 입력값을 뺄셈 연산하여 2로 나눈 결과를 입력시키고, s 변수에는 s 변수의 입력값과 r 변수의 입력값을 덧셈 연산하여 2로 나눈 후 모듈러 p한 결과를 입력시키고 단계 4로 복귀한다.(단계 S8)When the input of the u variable and the v variable is odd after steps S2 and S4, if the input value of the u variable is smaller than the input value of the v variable (step S6), the input of the v variable is determined from the input value of the v variable. Subtract the input value of the variable u by dividing by 2 and input the result of the variable s and the value of the variable r by adding to the variable s, divide the value by 2, enter the result of modular p, and return to step 4. (Step S8)
그리고 단계 S4후에 v변수의 입력값이 1이면, (단계 S9) s의 변수의 값이 출력값 y로 된다.(단계 S10) Then, after step S4, if the input value of the v variable is 1 (step S9), the value of the variable of s becomes the output value y (step S10).
본 발명에 따른 공개키 암호 시스템에서의 고속곱셈역원방법은 홀수 데이터와 홀수 데이터의 뺄셈 결과가 짝수라는 사실을 이용하여 두변수가 홀수일 경우에는 두 변수의 뺄셈으로 중간값을 감소시킨다. 뺄셈의 결과로 생성된 짝수 중간값은 다음 반복 연산에서 쉬프트 연산을 한번에 수행하는 것이 가장 큰 특징이다. The fast multiplication method in the public key cryptosystem according to the present invention uses the fact that the result of subtraction of odd data and odd data is even, and when two variables are odd, the median value is reduced by subtraction of two variables. The even middle value generated as a result of subtraction is characterized by the fact that the shift operation is performed all at once in the next iteration operation.
즉, 종래의 곱셈역원방법이 u, v변수의 입력값 중 한 개가 짝수이고 다른 나머지가 홀수일 경우 다음 반복 연산으로 상기의 S2~S3 단계 또는 S4~S5단계를 한번 더 실행되어야 하며, 더욱이 만약 u 또는 v 변수의 입력값을 2로 나눌 때 오로지 상기의 S2~S3 또는 S4~S5 단계만을 되풀이하여 실행되어 연산속도가 저하되는 반면에 본 발명에 따른 유한체 GF(p)에서의 고속 곱셈역원방법은 u, v변수의 입력값이 홀수 일 경우 뺄셈을 수행한 후 다음 단계의 반복연산과정에서 수행하는 쉬프트 연산을 한번에 처리할 수 있는 구조를 이용하여 연산의 반복횟수를 감소시키는 것이다. That is, in the conventional multiplication inverse method, if one of the input values of the u and v variables is even and the other is odd, the above step S2 to S3 or S4 to S5 should be executed once more. When the input value of the u or v variable is divided by 2, only the above steps S2 to S3 or S4 to S5 are executed repeatedly, resulting in a decrease in computational speed, while a fast multiplication station in the finite field GF (p) according to the present invention. The method is to reduce the number of repetitions of the operation by using a structure that can process the shift operation performed in the iterative operation of the next step after subtraction after the input value of the u and v variables is odd.
<표 1> 각 곱셈역원방식에 따른 평균 계산량 비교<Table 1> Comparison of Mean Computations According to Multiplication Inverse Methods
<표 1>은 본 발명에 따른 유한체 GF(p)에서의 곱셈 역원기와 종래의 자오(Zhou)와 선(Sun)등이 개발한 곱셈역원기를 비교했을 경우 비트수에 대한 평균 계산량을 나타낸다.<표 1>에서 보는 바와 같이, 비교결과 각 비트에서 전체적으로 본 발명에 따른 곱셈역원방법이 종래의 선(Sun) 및 자오(Zhou)등이 개발한 방법보다 평균 계산횟수가 작은 것을 확인할 수 있다. <Table 1> shows the average amount of calculation for the number of bits when comparing the multiplication inverse in the finite field GF (p) according to the present invention and the multiplication inverse developed by the conventional Zhou and Sun. As shown in Table 1, the result of the comparison shows that the multiplication inverse method according to the present invention has a smaller average count than the conventional methods developed by Sun and Zhou.
본 발명에 따른 고속곱셈역원방법을 수행하기 위한 곱셈 역원 시스템은 도 3에서 보는 바와 같이, 기존의 역원 장치와는 다르게 가산기, 감산기를 따로 구성하지 않고, 입력되는 변수값들의 빠른 계산을 위한 홀수(odd) 및 짝수(even)판별 및 가/감산의 연산방법을 선택하기 위한 제어부(201)가 형성된다. 제 1 ~제 4MUX(202A~202D)는 곱셈 역원 계산을 위한 입력 변수인 유한체GF(p)의 소수값 p, 모듈러 역원 x, 초기 변수 0 및 1을 입력받아 제어부(201)의 제어를 받아 선택된 값을 출력한다. 제 1 ~제 4MUX(202A~202D)의 출력측에는 제어부(201)에서 제어를 받아 선택된 입력변수 값 및 쉬프트 된 변수값, 보정부를 통해 나온 출력값을 각각 변수 u, v, r, s로 입력받아 이를 저장하고 쉬프트 연산하기 위한 제1~제4 레지스터(204A~204D)가 접속된다. As shown in FIG. 3, the multiplicative inverse system for performing the fast multiplication inverse method according to the present invention does not constitute an adder or a subtractor, unlike the conventional inverse device, and has an odd number for fast calculation of input variable values ( A
제1~제4 레지스터(204A~204D)의 출력측에는 제어부(201)의 제어신호를 받아 제1~제4 레지스터(204A~204D)에 저장된 변수 u, v, r, s의 쉬프트 값 및 초기변수 0, p값을 선택하여 출력시키기 위한 제 5~제 6MUX(206A~206B)가 접속된다. 제 5~제 6MUX(206A~206B)의 출력측에는 제어부(201)의 제어신호를 받아 제 5~제 6MUX(206A~206B)에서 출력된 각 변수의 덧셈, 뺄셈 연산을 수행하는 보정부(208)가 접속된다.Shift values and initial variables of the variables u, v, r, and s stored in the first to fourth registers 204A to 204D in response to the control signal of the
본 발명에 따른 곱셈역원 시스템은 쉬프트와 덧셈, 뺄셈연산의 반복에 따른 간단한 구조를 가진다. 곱셈역원을 위해 각 변수 u, v, r, s값을 입력받는 제 1~제 4 레지스터(204A~204D)는 정해진 초기 입력 값으로 세팅되며, 제 1 ~제4 MUX(202A~202D)는 짝수(even) 및 홀수(odd)를 판별하며, 제어부(201)에 의하여 선택된 데이터를 출력한다. 본 발명에 따른 곱셈역원 시스템에서는 u/2, v/2, r/2, s/2값을 얻기 위해 지연이 큰 나눗셈기를 사용하지 않고 제 1~제 4 레지스터(204A~204D)는 쉬프트 레지스터를 사용하여 빠른 값을 얻는다. 보정부(208)는 별도의 감산기가 없이 한개의 가산기로 구성되어 두 입력 값을 더하거나 뺀다. 이때 제어부(201)로부터 짝수(even) 및 홀수(odd)판별조건에 따라 제 1~제 4 레지스터(204A~204D)의 데이터를 더하거나 뺄 것인지 데이터 값을 출력 할 것 인지 결정한다. 보정부(208)는 조건이 만족했을 경우 s 레지스터(204D)를 거쳐 출력하고 그렇지 않을 경우 각 레지스터에 입력된다.The multiplicative inverse system according to the present invention has a simple structure according to the repetition of shift, addition and subtraction operations. The first to fourth registers 204A to 204D, which receive the values of the variables u, v, r, and s for the multiplication inverse, are set to predetermined initial input values, and the first to fourth MUXs 202A to 202D are even. (even) and odd (odd) are discriminated, and the data selected by the
본 발명에 따른 유한체 GF(p)에서의 곱셈역원 시스템은 입ㆍ출력도메인의 확장이 가능한데 이는 도 4에서 보는 바와 같이 유한체상에서의 입ㆍ출력조건이 정수도메인 뿐만 아니라 몽고메리도메인까지 확장이 가능하다. 기본적으로 정수도메인 입력조건에 대해 정수도메인 출력의 경우, 정수 도메인 입력 x에 대해 모듈러 인버젼한 결과인 x-1이 정수도메인 출력으로 결정된다. 몽고메리도메인 입력 x2n은 몽고메리 프로덕트와 모듈러 인버젼 방법에 의해 몽고메리 도메인 x-12n 으로 출력된다. 여기서 몽고메리 프로덕트와 모듈러 인버젼 방법으로 같은 도메인간의 입ㆍ출력뿐만 아니라 다른 도메인간의 확장 입ㆍ출력이 가능하다. 정수도메인 입력에서 몽고메리도메인 출력으로, 몽고메리도메인 입력에서 정수도메인 출력으로의 확장도 가능하다. 이러한 확장은 공개키암호시스템의 효율성을 높일 수 있다.The multiplication inverse system in the finite field GF (p) according to the present invention is capable of expanding the input and output domains, as shown in FIG. Do. By default, for integer domain output for integer domain input conditions, x -1 , the result of modular inversion for integer domain input x, is determined as integer domain output. Montgomery domain input x2 n is output to Montgomery domain x -1 2 n by the Montgomery product and modular inversion method. Here, Montgomery Product and Modular Inversion method allow not only I / O between the same domain but also I / O between different domains. It is also possible to extend from an integer domain input to a Montgomery domain output and from a Montgomery domain input to an integer domain output. This extension can increase the efficiency of the public key cryptosystem.
상술한 바와 같이, 본 발명에 따른 유한체 GF(p)에서의 고속곱셈역원방법은 유한체 GF(p)에서의 곱셈역원시 연산 동작 모듈러 연산 또는 곱셈/나눗셈을 필요로 하지 않고 단지 가/감산, 쉬프트만을 이용하여 연산 속도를 향상시킬 수 있는 장점이 있다. 또한 기존의 다른 역원 방식보다 반복 연산을 줄임으로서 계산 속도를 높일 수 있어서, 고속이 요구되는 공개키암호시스템에 효과적으로 사용할 수 있다.As described above, the fast multiplication inverse method in the finite field GF (p) according to the present invention does not require multiplication inverse operation operation modular operation or multiplication / division in the finite field GF (p). Therefore, there is an advantage that the operation speed can be improved by using only the shift. In addition, it is possible to increase the computation speed by reducing the iterative operation compared to other inverted methods, which can be effectively used for a public key encryption system requiring high speed.
이상에서 첨부된 도면을 참조하여 본 발명의 바람직한 실시예를 상세히 설명하였으나, 본 발명은 이에 한정되는 것이 아니며 본 발명의 기술적 사상의 범위 내에서 당업자에 의해 그 개량이나 변형이 가능하다.Although the preferred embodiments of the present invention have been described in detail with reference to the accompanying drawings, the present invention is not limited thereto and may be improved or modified by those skilled in the art within the scope of the technical idea of the present invention.
Claims (2)
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020070004695A KR100865678B1 (en) | 2007-01-16 | 2007-01-16 | method and system for fast inversion of high-speed public-key crypto system |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020070004695A KR100865678B1 (en) | 2007-01-16 | 2007-01-16 | method and system for fast inversion of high-speed public-key crypto system |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20080067429A KR20080067429A (en) | 2008-07-21 |
KR100865678B1 true KR100865678B1 (en) | 2008-10-29 |
Family
ID=39821689
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020070004695A KR100865678B1 (en) | 2007-01-16 | 2007-01-16 | method and system for fast inversion of high-speed public-key crypto system |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR100865678B1 (en) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117014208B (en) * | 2023-08-09 | 2024-04-09 | 海光信息技术股份有限公司 | Data encryption method, device, system, electronic equipment and storage medium |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100478974B1 (en) | 2002-12-03 | 2005-03-25 | 한국전자통신연구원 | Serial finite-field multiplier |
KR100564765B1 (en) * | 2003-12-24 | 2006-03-27 | 한국전자통신연구원 | Finite field polynomial divider and Method thereof |
KR100606435B1 (en) * | 2005-02-04 | 2006-08-01 | 고려대학교 산학협력단 | Apparatus for calculating inverse in gf(2m)and method of the same |
-
2007
- 2007-01-16 KR KR1020070004695A patent/KR100865678B1/en not_active IP Right Cessation
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100478974B1 (en) | 2002-12-03 | 2005-03-25 | 한국전자통신연구원 | Serial finite-field multiplier |
KR100564765B1 (en) * | 2003-12-24 | 2006-03-27 | 한국전자통신연구원 | Finite field polynomial divider and Method thereof |
KR100606435B1 (en) * | 2005-02-04 | 2006-08-01 | 고려대학교 산학협력단 | Apparatus for calculating inverse in gf(2m)and method of the same |
Also Published As
Publication number | Publication date |
---|---|
KR20080067429A (en) | 2008-07-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Javeed et al. | Radix-4 and radix-8 booth encoded interleaved modular multipliers over general F p | |
KR101326078B1 (en) | Modular Arithmetic Method, Modular Multiplier and Cryptosystem having the same | |
US7412474B2 (en) | Montgomery modular multiplier using a compressor and multiplication method | |
JP3213628B2 (en) | An arithmetic unit for multiplying long integers modulo M and an R.M. S. A. converter | |
CN115048076A (en) | SM2 specific domain-based fast modular multiplication chip implementation device and method | |
EP1600852B1 (en) | Method and apparatus for calculating a modular inverse | |
US7050579B1 (en) | Cryptographic methods and apparatus using word-wise montgomery multiplication | |
JP3302043B2 (en) | Encryption communication method and system | |
KR102496446B1 (en) | Word-parallel calculation method for modular arithmetic | |
KR100508092B1 (en) | Modular multiplication circuit with low power | |
KR100865678B1 (en) | method and system for fast inversion of high-speed public-key crypto system | |
Zalekian et al. | Efficient implementation of NTRU cryptography using residue number system | |
Jarvinen et al. | Efficient circuitry for computing τ-adic non-adjacent form | |
WO2023043467A1 (en) | A method and architecture for performing modular addition and multiplication sequences | |
CN115270155A (en) | Method for obtaining maximum common divisor of big number expansion and hardware architecture | |
KR100480997B1 (en) | APPARATUS OF FIELD MULTIPLICATION OVER GF(p) AND GF(2^m) | |
CN111064567B (en) | Rapid modular multiplication method for SIDH special domain | |
US10318245B2 (en) | Device and method for determining an inverse of a value related to a modulus | |
Nadjia et al. | High throughput parallel montgomery modular exponentiation on FPGA | |
Zeng et al. | An Efficient Module Arithmetic Logic Unit in Dual Field for Internet of Things Applications | |
Wu et al. | Modular multiplier by folding Barrett modular reduction | |
CN113467752B (en) | Division operation device, data processing system and method for private calculation | |
da Costa et al. | Design of a 1024 bit RSA coprocessor with SPI slave interface | |
Reddy et al. | MNHOKA-PPA Efficient M-Term Non-Homogeneous Hybrid Overlap-free Karatsuba Multiplier for GF (2 n) Polynomial Multiplier | |
KR102348797B1 (en) | RSA circuit module of RSA encryption system |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
E902 | Notification of reason for refusal | ||
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant | ||
FPAY | Annual fee payment |
Payment date: 20121018 Year of fee payment: 5 |
|
FPAY | Annual fee payment |
Payment date: 20131018 Year of fee payment: 6 |
|
FPAY | Annual fee payment |
Payment date: 20141014 Year of fee payment: 7 |
|
FPAY | Annual fee payment |
Payment date: 20151020 Year of fee payment: 8 |
|
FPAY | Annual fee payment |
Payment date: 20161005 Year of fee payment: 9 |
|
FPAY | Annual fee payment |
Payment date: 20170928 Year of fee payment: 10 |
|
LAPS | Lapse due to unpaid annual fee |