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 PDF

Info

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
Application number
KR1020070004695A
Other languages
Korean (ko)
Other versions
KR20080067429A (en
Inventor
유영갑
김용대
최종화
박진섭
안영일
Original Assignee
충북대학교 산학협력단
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 충북대학교 산학협력단 filed Critical 충북대학교 산학협력단
Priority to KR1020070004695A priority Critical patent/KR100865678B1/en
Publication of KR20080067429A publication Critical patent/KR20080067429A/en
Application granted granted Critical
Publication of KR100865678B1 publication Critical patent/KR100865678B1/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/721Modular inversion, reciprocal or quotient calculation
    • 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

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

고속 공개키 암호시스템의 고속 곱셈 역원 방법 및 시스템{method and system for fast inversion of high-speed public-key crypto system}Method and system for fast inversion of high-speed public-key crypto system

도 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 public key cryptosystem 100 includes a main controller 110 including a program memory 140, an arithmetic control unit 120, and a computing device 130 including a data memory 150. do. The main controller 110 receives a control signal from a host system (not shown) and controls the operation controller 120. The arithmetic unit 130 under the control of the arithmetic controller 120 performs addition, square power, multiplication, and inversion in GF (p).

일반적으로 전통적인 모듈러 역원(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

비트수 (Bits)Bits 연산 횟수Operation count 종래대비 효율증가율Efficiency increase rate Sun'sSun's Zhou'sZhou's 본 발명The present invention Sun (%)Sun (%) Zhou (%)Zhou (%) 128128 1064 1064 649 649 424 424 60.2 60.2 34.7 34.7 160160 1336 1336 816 816 553 553 58.6 58.6 32.2 32.2 192192 1607 1607 983 983 658 658 59.0 59.0 33.1 33.1 224224 1878 1878 1150 1150 763 763 59.4 59.4 33.7 33.7 256256 2149 2149 1317 1317 876 876 59.2 59.2 33.5 33.5 384384 3233 3233 1984 1984 1344 1344 58.4 58.4 32.3 32.3 521521 4425 4425 2723 2723 1715 1715 61.2 61.2 37.0 37.0

<표 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 control unit 201 is formed for selecting the calculation method of odd and even discrimination and addition / subtraction. The first to fourth MUXs 202A to 202D receive the decimal value p of the finite field GF (p), the modular inverse x, and the initial variables 0 and 1 which are input variables for the multiplication inverse calculation and are controlled by the controller 201. Print the selected value. On the output side of the first to fourth MUXs 202A to 202D, the control unit 201 receives the selected input variable value, the shifted variable value, and the output value through the correction unit as the variables u, v, r, and s, respectively. First to fourth registers 204A to 204D for storing and shifting operations are connected.

제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 control unit 201 on the output side of the first to fourth registers 204A to 204D. Fifth to sixth MUXs 206A to 206B for selecting and outputting 0 and p values are connected. A correction unit 208 that receives the control signal of the control unit 201 and performs addition and subtraction of each variable output from the fifth to sixth MUXs 206A to 206B on the output side of the fifth to sixth MUXs 206A to 206B. Is connected.

본 발명에 따른 곱셈역원 시스템은 쉬프트와 덧셈, 뺄셈연산의 반복에 따른 간단한 구조를 가진다. 곱셈역원을 위해 각 변수 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 control unit 201 is output. In the multiplicative inverse system according to the present invention, the first to fourth registers 204A to 204D use the shift register without using a divider having a large delay to obtain u / 2, v / 2, r / 2, and s / 2 values. To get a fast value. The correction unit 208 is composed of one adder without a separate subtractor to add or subtract two input values. At this time, the controller 201 determines whether to add or subtract data from the first to fourth registers 204A to 204D or output a data value according to the even and odd discrimination conditions. The correction unit 208 outputs through the s register 204D when the condition is satisfied, and inputs to each register otherwise.

본 발명에 따른 유한체 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)

ⅰ)p는 0이 아닌 소수이고, 입력값 x∈(0,p) 일 때, p는 u 변수, x는 v변수, r변수에는 0이 입력되며, s변수에는 1이 입력되는 단계(S1); Ⅰ) p is a nonzero fractional number, when input value x∈ (0, p), p is a u variable, x is a v variable, 0 is input to r variable, and 1 is input to s variable (S1 ); ⅱ)상기 ⅰ단계후에, 상기 u 변수에 입력되는 값이 짝수라면, 상기 r 변수에는 r을 2로 나눈 후 모듈러 p한 결과를, 상기 u 변수에는 u를 2로 나눈 결과를 입력시키며, 상기 v 변수에 입력되는 값이 짝수라면, 상기 s 변수에는 s를 2로 나눈 후 모듈러 p한 결과를, 상기 v 변수에는 v를 2로 나눈 결과를 입력키는 과정을 반복하는 단계 (S2~S5); Ii) After step iv, 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, and the v If the value input to the variable is even, repeating the process of inputting the result of modular p after dividing s by 2 for the s variable and the result of dividing v by 2 for the v variable (S2 to S5); ⅲ) 상기 ⅱ단계후에, 상기 u 변수 및 v 변수의 입력이 홀수이고, 상기 u 변수의 입력이 v 변수의 입력보다 크다면, 상기 u 변수에는 u 변수의 입력값에서 v 변수의 입력값을 뺄셈 연산하여 2로 나눈 결과를 입력시키고, 상기 r 변수에는 r 변수의 입력값과 s 변수의 입력값을 덧셈 연산하여 2로 나눈 후 모듈러 p한 결과를 입력시키고 상기 ⅱ단계로 복귀하는 단계;(S6,S7) Iii) after step ii, if the input of the u variable and the v variable is odd and the input of the u variable is greater than the input of the v variable, then the u variable is subtracted from the input value of the u variable. Inputting the result obtained by dividing by 2, adding the input value of the variable r and the input value of the variable s to the variable r, dividing by 2, inputting the result of the modular p, and returning to step ii; (S6 S7) ⅲ) 상기 ⅱ단계후에, 상기 u 변수 및 v 변수의 입력이 홀수이고 u 변수의 입력값이 v 변수의 입력값보다 작다면, v 변수의 입력은 v 변수의 입력값에서 u 변수의 입력값을 뺄셈 연산하여 2로 나눈 결과를 입력시키고, 상기 s 변수에는 s 변수의 입력값과 r 변수의 입력값을 덧셈 연산하여 2로 나눈 후 모듈러 p한 결과를 입력시키고 상기 ⅱ단계로 복귀하는 단계;(S6,S8) 그리고, Iii) after step ii, if the input of the u variable and the v variable is odd and the input value of the u variable is less than the input value of the v variable, then the input of the v variable takes the input value of the u variable from the input value of the v variable. Subtracting the result of dividing by 2, inputting the value of the variable s and the value of the variable r into the s variable, dividing by 2, inputting the result of modular p, and returning to step ii; S6, S8) and ⅳ) 상기 ⅱ단계후에 상기 v변수의 입력값이 1이면 상기 s의 변수의 값을 출력값 y로 선택하는 단계;(S10)를 포함하는 고속 공개키 암호시스템의 고속 곱셈 역원 방법. Iv) after the step ii, if the input value of the v variable is 1, selecting the value of the variable of s as the output value y; (S10). 입력되는 변수값들의 홀수(odd) 및 짝수(even)판별하고 가/감산의 연산방법을 선택하며 곱셈역원연산을 위한 제어를 수행하는 제어부(201);A control unit 201 for determining odd and even of the input variable values, selecting an addition / subtraction operation method, and performing control for multiplicative inverse calculation; 상기 제어부(201)의 제어신호에 의하여 각각 0이 아닌 소수값인 p, 입력값인 x, 0 및 1을 입력받아 선택된 값을 출력하기 위한 제 1 ~제 4MUX(202A~202D); First to fourth MUXs 202A to 202D for outputting selected values by receiving non-zero fractional values, input values x, 0, and 1 according to control signals of the control unit 201; 상기 제 1 ~제 4MUX(202A~202D)의 출력측에 접속되어 각각 0이 아닌 소수값인 p, 입력값인 x, 0 및 1을 각각 변수 u, v, r, s로 입력받아 이를 저장하고 쉬프트 연산하기 위한 제1~제4 레지스터(204A~204D); It is connected to the output side of the first to fourth MUXs 202A to 202D and receives p, input values x, 0, and 1, respectively, as non-zero fractional values, and stores them as variables u, v, r, and s, respectively, and shifts them. First to fourth registers 204A to 204D for operation; 상기 제1~제4 레지스터(204A~204D)의 출력측에 접속되어 상기 제어부(201)의 제어신호를 받아 제1~제4 레지스터(204A~204D)에 저장된 변수 u, v, r, s값을 선택하여 출력시키기 위한 제 5~제 6MUX(206A~206B); 그리고,Are connected to the output side of the first to fourth registers 204A to 204D and receive control signals from the controller 201 to store the values of the variables u, v, r, and s stored in the first to fourth registers 204A to 204D. Fifth to sixth MUXs 206A to 206B for selecting and outputting the selected outputs; And, 상기 제 5~제 6MUX(206A~206B)의 출력측에 접속되고 상기 제어부(201)의 제어신호를 받아 제 5~제 6MUX(206A~206B)에서 출력된 각 변수의 덧셈, 뺄셈 연산을 수행하는 보정부(208)를 포함하는 고속 공개키 암호시스템의 고속 곱셈 역원 시스템.A beam connected to an output side of the fifth to sixth MUXs 206A to 206B and receiving a control signal from the control unit 201 to perform addition and subtraction operations for each variable output from the fifth to sixth MUXs 206A to 206B. A fast multiplication inverse system of a fast public key cryptosystem, including a government (208).
KR1020070004695A 2007-01-16 2007-01-16 method and system for fast inversion of high-speed public-key crypto system KR100865678B1 (en)

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)

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

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

Patent Citations (3)

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