[go: up one dir, main page]
More Web Proxy on the site http://driver.im/

KR100194769B1 - Using memory to find inverses on finite fields - Google Patents

Using memory to find inverses on finite fields Download PDF

Info

Publication number
KR100194769B1
KR100194769B1 KR1019960056154A KR19960056154A KR100194769B1 KR 100194769 B1 KR100194769 B1 KR 100194769B1 KR 1019960056154 A KR1019960056154 A KR 1019960056154A KR 19960056154 A KR19960056154 A KR 19960056154A KR 100194769 B1 KR100194769 B1 KR 100194769B1
Authority
KR
South Korea
Prior art keywords
odd number
result
exponent
determining whether
inverse
Prior art date
Application number
KR1019960056154A
Other languages
Korean (ko)
Other versions
KR19980037406A (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 KR1019960056154A priority Critical patent/KR100194769B1/en
Publication of KR19980037406A publication Critical patent/KR19980037406A/en
Application granted granted Critical
Publication of KR100194769B1 publication Critical patent/KR100194769B1/en

Links

Landscapes

  • Complex Calculations (AREA)

Abstract

1. 청구 범위에 기재된 발명이 속한 기술분야1. Technical field to which the invention described in the claims belongs

메모리를 사용하여 유한체상에서 역원을 구하는 방법Using memory to find inverses on finite fields

2. 발명이 해결하려고 하는 기술적 과제2. Technical Challenges to be Solved by the Invention

지수부 축약 과정에서 m-1이 짝수, 3의 배수인 홀수, 또는 3의 배수가 아닌 홀수인지를 판단하여 3의 배수인 홀수이면 쉬프팅을 이용하여 처리하는 유한체상에서 역원을 구하는 방법을 제공하고자 함.In the exponent reduction process, it is determined whether m-1 is an even number, an odd number that is a multiple of 3, or an odd number that is not a multiple of 3, and provides a method of computing the inverse on a finite field that processes using an odd number that is a multiple of 3 box.

3. 발명의 해결방법의 요지3. The point of the solution of the invention

유한체의 지수부를 파악하여 지수 m을 설정하는 제 1 단계; m-1이 짝수, 3의 배수이며 홀수, 또는 3의 배수가 아닌 홀수인지를 판별한 후에 m-1이 3의 배수가 아닌 홀수일 경우에는 인수분해를 수행하여 지수부 연산을 수행한 후에 그 결과를 중간 저장수단(Tj)에 저장하고, 짝수이거나 3의 배수인 홀수일 경우에는 인수분해를 수행한 후에 쉬프팅으로 지수부를 연산하여 저장하는 제 2 단계; 및 저장된 값을 이용하여 역원을 계산하는 제 3 단계를 포함한다.A first step of determining an exponent part of a finite field and setting an exponent m; If it is determined that m-1 is an even number, a multiple of 3 and an odd number, or an odd number that is not a multiple of 3, then if m-1 is an odd number other than a multiple of 3, Storing the result in the intermediate storage means (T j ), calculating a exponent part by shifting after factor decomposition if the number is an odd number or an odd number that is a multiple of 3, and storing the result; And a third step of computing the inverse using the stored value.

4. 발명의 중요한 용도4. Important Uses of the Invention

통신망 접속인증 시스템이나 스마트카드에 이용됨.Used for communication network authentication system or smart card.

Description

메모리를 사용하여 유한체상에서 역원을 구하는 방법Using memory to find inverses on finite fields

본 발명은 정보 보호를 위한 통신망 접속 인증 시스템이나 스마트카드 등에서 메시지의 서명값을 빠른 시간내에 얻기 위하여 신속하게 역원을 구하는 방법에 관한 것이다.The present invention relates to a method for quickly obtaining a signature value of a message in a communication network access authentication system or a smart card for information protection in a short time.

현대 사회에서 정보 통신 장비를 이용한 정보의 대량 생산과 유통은 정보화 사회에서 필수불가결한 하나의 과정이 되었다. 이러한 과정중에 우리가 흔히 간과하고 살아가는 것들이 있다. 그것은 바로 그 과정에서의 정보 보호에 관한 문제이다. 정보의 생산과 유통 과정이 안전하지 않다면 누구도 그 시스템을 사용하지 않을 것이기 때문이다.Mass production and distribution of information using information and communication equipment in modern society has become an indispensable process in information society. During this process, there are things we often overlook. It is a matter of information security in the process. If the production and distribution processes of information are unsafe, no one will use the system.

바로 위에서 제기된 문제를 해결하기 위해서 사용되는 하나의 방법이 스마트카드의 사용이다. 따라서, 이 스마트카드를 소유한 정당한 사용자는 필요할 때 언제, 어디서나 신속히 업무를 처리할 수 있다.One method used to solve the problems raised directly above is the use of smart cards. Thus, a legitimate user who owns this smart card can quickly process the job anytime, anywhere.

스마트카드의 역할은 디지탈 서명과 같은 암호학적 메카니즘에 의해 결재서비스를 할 경우에, 8비트의 프로세스와 적은 양의 메모리를 이용해서 메시지의 서명값을 빠른 시간내에 얻어내는 데 있다. 그런데, 디지탈 서명 메카니즘에서는 서명값의 생성시 역원의 계산을 신속히 수행해야 하는 경우가 종종 있게 된다. 일반적으로 우리들이 쓰고 있는 컴퓨터는 32비트 프로세서인데 반해 스마트카드는 8비트 프로세스로서 상대적으로 그 처리 속도가 느리다. 이러한 취약점을 해소하기 위한 유한체상에서의 효율적인 역원 계산 방법은 수학, 전산, 그리고 전자공학 등의 여러 분야에 개발의 필요성을 인식시켜 주었다.The role of the smart card is to obtain the signature value of the message in a short time by using 8 bit process and a small amount of memory when performing a payment service by a cryptographic mechanism such as a digital signature. However, in the digital signature mechanism, it is often necessary to quickly calculate the inverse when generating the signature value. Generally, the computer we are using is a 32-bit processor, whereas the smart card is an 8-bit process and its processing speed is relatively slow. Effective inversion calculation methods on the finite field to solve these vulnerabilities have recognized the need for development in various fields such as mathematics, computation, and electronics.

대부분 고속승산에 관한 개념은 유한체 GF(2m)상에서의 연산으로 일반화시켜 그 이론들을 전개해 나간다. 정규기저(Normal Basis)의 응용과 마세이-오무라(Massey-Omura) 고속 승산법의 발표는 스마트카드 기술의 발전을 진일보시킨 대표적인 예이다. 더욱이, 이러한 발명과 관련된 유한체상에서의 역원 계산은 몇몇 디지탈 서명 또는 사용자 인증 과정에서 중요하게 인식되고 있다.In general, the concept of fast multiplication is generalized to operations on a finite field GF (2 m ), and the theories are expanded. The application of the Normal Basis and the presentation of the Massey-Omura Fast Multiplication Method are typical examples of the development of smart card technology. Moreover, inversion calculations on finite fields related to this invention are recognized as important in some digital signatures or user authentication processes.

유한체상에서의 역원 계산의 유형은 우선 그 유한체의 정규기저를 정하고 그 기저를 이용한 제곱 연산의 효율성을 이용하기 위하여 역원 계산을 고정된 어떤 수의 멱승 계산으로 변환하고, 그 고정된 수를 표현하는 방법에 따라 나누어진다. 이는 또한 계산 과정에서 레지스터와 같은 메모리의 사용여부에 따라 나누어질 수 있다. 현재까지 발표된 방법들중 메모리를 사용한 방법중에서는 이토(Itoh)의 방법이 가장 빠른 계산 방법으로 알려져 있다.The type of inverse calculation on a finite field first determines the normal basis of the finite field, transforms the inverse calculation to a fixed number of exponentiation computations to take advantage of the efficiency of the square operation using the base, How to do it. It can also be divided by the use of memory such as registers in the calculation process. Of the methods that have been published so far, Itoh's method is known as the fastest method of using memory.

정규기저는 GF(2m)상의 기저로서, 먼저 그 기저를 찾았다고 가정했을 때, 그 기저로 표시된 원소들의 제곱 연산을 아주 편리하게 해주는 성질을 갖고 있다.α∈ GF(2m)에 대하여가 유한체 GF(2)에 관하여 GF(2m)의 기저가 될 때, 우리는를 GF(2m)의 정규기저라고 한다. GF(2m)의 어떤 원소 χ가로 표현되었다고 가정하면,가 되어서은 χ의 계수을 오른쪽으로 한 번 쉬프팅시킨 것과 같게 된다. 결국의 계수는가 된다. 여기서, 우리가 생각할 수 있는 것은 GF(2m)의 어떤 원소를 다항식 기저를 사용하여 제곱하면 GF(2)에서 m2회의 곱셈을 수행하여야 하지만 정규기저를 사용하면 한 번의 쉬프팅으로 연산이 가능해져 그 만큼 수행속도에 있어서 이득이다. 참고로 모든 유한체는 정규기저를 가지는 것으로 알려져 있고, 특정한 m들에 대해서는 GF(2m)의 정규기저를 생성하는 α가 GF(2m)*의 생성자도 된다는 사실이 알려져 있다.Normal basis is a base on the GF (2 m), before the assumption we have found that the base, and has the property that it is very convenient to the square operation of the elements shown in the base with respect to the .α∈ GF (2 m) Becomes the basis of GF (2 m ) with respect to the finite field GF (2), we Is the normal basis of GF (2 m ). An element χ of GF (2 m ) , It is assumed that < RTI ID = Become The coefficient of χ Is shifted to the right one time. finally The coefficient of . What we can think of here is that if we multiply an element of GF (2 m ) by a polynomial basis, we must perform m 2 multiplications in GF (2), but if we use a normal basis, we can do it with a single shifting That is the gain in performance speed. Note all the finite field is normal is known as having a base, it is for certain α m for generating a normal basis for GF (2 m) is known for the fact that the constructor of GF (2 m) * a.

한편, 유한체를 이용한 디지탈 서명과 같은 암호화적 기법에서는 역원 계산의 소요가 높은 편인데 특히 E1 Gamal, 미국의 DSS(Digital Signature Standard) 등에 기초한 서명 방식에서 서명자의 서명 생성 시간은 역원 계산 시간이 포함된다. 이러한 계산에서 정규기저의 사용은 이용자들로 하여금 시간의 절약을 가능하게 해줄 뿐만아니라 이론적인 측면에서도 중요한 가치를 가지고 있다.On the other hand, in the encryption method such as digital signature using the finite sieve, inversion calculation is highly required. In particular, in the signature scheme based on E1 Gamal and the US Digital Signature Standard (DSS), the signer's signature generation time includes the inversion calculation time do. The use of regular bases in these calculations not only allows users to save time, but also has important value in the theoretical aspect.

먼저, α가 GF(2m)의 0이 아닌 원소라고 할 때, α-1는 다음의 [수학식 1]과 같다.First, if α is a nonzero element of GF (2 m ), α -1 is expressed by the following equation (1).

위의 방법을 이용하면 m-2회의 곱셈을 필요로 하게 되는데 다음에 서술될 이토(Itoh)의 방법은 곱셈의 회수에 있어서 상기 방법보다는 많은 이득을 얻는다.Using the above method, m-2 times multiplication is required. The Itoh's method, which will be described next, obtains more advantages than the above method in the number of multiplications.

이토(Itoh)에 의해 제안된 역원 계산 방법은 곱셈 횟수를 줄이는데 있어서 지금까지 알려진 가장 효율적인 기술로서 이를 설명하면 다음과 같다.The inverse calculation method proposed by Itoh is the most efficient technique known to reduce the number of multiplications.

GF(2m)상에서 다음의 [수학식 2]와 같은 소인수 분해를 생각해 보자.Consider GF (2 m ) factorization as in the following equation (2).

상기 [수학식 2]에서 m이 홀수인 경우에는 이미 계산이 되었다고 가정하면,을 계산하기 위해서는 1회의 곱셈이 필요하다. m이 짝수인 경우에는 홀수인 경우와 같이 가정하면을 계산하기 위해서는 2회의 곱셈이 필요하다. 결국 GF(2m)에서 α-1를 계산하기 위해서는 연역적으로 이 과정을 사용해서 요구되어지는 곱셈의 횟수가 다음의 [수학식 3]과 같이 됨이 제시되었다.In the case of m being an odd number in the above equation (2) Lt; / RTI > has already been calculated, It is necessary to perform one multiplication. Assuming that m is an odd number, It is necessary to perform two multiplications. In order to calculate α -1 in GF (2 m ), it is suggested that the number of multiplications required by using this process in a deductive manner is as shown in the following equation (3).

nb(m-1)+ω(m-1) -2nb (m-1) +? (m-1) -2

단, 여기서 nb(χ)는 정수χ를 표현하기 위해 필요한 최소의 비트수를 말하며 ω(m-1)은 m-1의 이진 표현에서 해밍 웨이트(Hamming weight)이다.Where nb (χ) is the minimum number of bits needed to represent the integer χ, and ω (m-1) is the Hamming weight in the binary representation of m-1.

GF(2593)을 예로들어 살펴보면 다음의 [수학식 4]와 같다.GF (2 593 ) is taken as an example, and it is expressed by the following Equation (4).

위의 방법을 구현하려면 상기 [수학식 4]의 등식들을 다음의 몇 과정으로 나누어 처리하여야 한다.In order to implement the above method, the equations in [Equation 4] should be divided into the following processes.

제 1 과정 :를 계산한 후에 이를 저장한다.First Course: And stores it.

어떤 수의 제곱은 한 번의 쉬프팅에 해당되므로 γ는 4회의 곱셈과 556회의 쉬프팅을 필요로 한다.Since a certain number of squares corresponds to a single shifting, γ requires 4 multiplications and 556 shiftings.

제 2 과정 :를 계산한 후에 이를 저장한다.Step 2: And stores it.

β는 2회의 곱셈과 28회의 쉬프팅을 요구한다.β requires two multiplications and 28 shiftings.

제 3 과정 :를 계산한다.Step 3: .

δ는 3회의 곱셈과 8회의 쉬프팅을 필요로 한다.delta requires 3 multiplications and 8 shiftings.

제 4 과정 : 마지막으로 δβγ를 계산한다.Step 4: Finally calculate δβγ.

이 과정에서 2회의 곱셈을 더 필요로 하게 된다.In this process, two more multiplications are required.

결과적으로 α-1를 구하기 위해서는 11회의 곱셈(참고로 nb(592)=10이며 ω(592)=3)과 2개의 중간값을 저장하기 위한 2개의 기억장소(593 비트)를 필요로 하게 된다. 만약, 최적 정규기저를 이용하면 1회의 곱셈 처리를 m회의 쉬프팅으로 수행 가능하게 된다. 그리하여 GF(2m)에서 상기 정규기저 이용 방법으로 역원을 구하기 위해서는 전체적으로 7115회의 쉬프팅 연산을 필요로 하게 된다.(592) = 10 and ω (592) = 3) and two storage locations (593 bits) to store two intermediate values to obtain α -1 . If the optimal normal basis is used, it is possible to perform one multiplication process with m shifting operations. Thus, 7115 shifting operations are required to obtain the inverse of the normal basis using GF (2 m ).

이처럼 종래의 이토(Itoh) 역원 계산 방법은 처리 방식이 효율적이지 못하고 메모리를 많이 필요로 하는 문제점이 있었다.As described above, the conventional Itoh inversion calculation method has a problem that a processing method is not efficient and a large amount of memory is required.

상기 문제점을 해결하기 위하여 안출된 본 발명은, 지수부 축약 과정에서 m-1이 짝수, 3의 배수인 홀수, 또는 3의 배수가 아닌 홀수인지를 판단하여 짝수이거나 3의 배수가 아닌 홀수이면 이토(Itoh) 역원 계산 방법으로 처리하고 3의 배수인 홀수이면 쉬프팅을 이용하여 처리하는 유한체상에서 역원을 구하는 방법을 제공하는데 그 목적이 있다.In order to solve the above problems, the present invention has been made to solve the above problems, and it is an object of the present invention to provide a method and apparatus for reducing the exponent part in a multi- (Itoh) is an inverse calculation method, and if it is an odd number that is a multiple of 3, it is aimed to provide a method for obtaining inverses on a finite field which is processed by shifting.

제 1 도는 본 발명에 따른 처리 흐름도.FIG. 1 is a processing flowchart according to the present invention. FIG.

상기 목적을 달성하기 위하여 본 발명은, 메모리를 사용하여 유한체상에서 역원을 구하는 방법에 있어서, 역원이 요구되는 유한체의 지수부를 파악하여 지수 m을 설정하고 초기화하는 선처리 과정을 수행하는 제 1 단계; m-1이 짝수, 3의 배수이며 홀수, 또는 3의 배수가 아닌 홀수인지를 판별하는 지수부 축약판별 처리를 수행한 후에 m-1이 3의 배수가 아닌 홀수일 경우에는 인수분해를 수행하여 지수부 연산을 수행한 후에 그 결과를 중간 저장수단(Tj)에 저장하고, 짝수이거나 3의 배수인 홀수일 경우에는 인수분해를 수행한 후에 쉬프팅으로 지수부를 연산하여 저장하는 제 2 단계; 및 m-1이 소정의 값보다 큰지를 판단하여 소정의 값보다 크면 상기 제 2 단계부터 반복 수행하고, 소정의 값 이하이면 지수부 인수분해를 종료하고 저장된 값을 이용하여 역원을 계산하는 제 3 단계를 포함한다.According to an aspect of the present invention, there is provided a method for obtaining inversions on a finite field using a memory, the method comprising: a first step of performing a preprocessing process of setting and initializing an exponent m, ; If m-1 is an odd number other than a multiple of 3 after performing an exponent part reduction discrimination process for determining whether m-1 is an even number, a multiple of 3 and an odd number, or an odd number other than a multiple of 3, factor decomposition is performed Storing the result in the intermediate storage means (T j ) after the exponent sub-operation, storing the result in the intermediate storage means (T j ), calculating the exponent portion by shifting after performing factor decomposition when it is an odd number or an odd multiple of 3; Determining whether m-1 is greater than a predetermined value, repeating the steps from the second step if the value is greater than a predetermined value, and terminating exponent factor decomposition when the value is less than a predetermined value, .

이하, 첨부된 도면을 참조하여 본 발명에 따른 일실시예를 상세히 설명한다.Hereinafter, embodiments of the present invention will be described in detail with reference to the accompanying drawings.

이제 이토(Itoh)의 역원 계산 방법을 개량한 본 발명에 따른 방법을 상세히 서술하면 다음과 같다.Now, the method according to the present invention, which has improved the in-house calculation method of Itoh, will be described in detail as follows.

본 발명에 따른 역원 계산 방법의 핵심적인 원리는 아래의 [수학식 5]와 같이 m-1이 짝수일 때나 혹은 3의 배수가 아닌 홀수일 때는 이토(Itoh)의 역원 계산 방법을 그대로 이용하지만, m-1이 3의 배수인 홀수일 때는 쉬프팅을 이용하여 처리한다.The core principle of the inversion calculation method according to the present invention is to use the inversion method of Itoh when m-1 is an even number or an odd number that is not a multiple of 3 as in the following Equation (5) When m-1 is an odd multiple of 3, it is processed by shifting.

여기서 우리가 주목해야 할 것은 m-1이 3의 배수인 홀수일 때와 m-1이 3의 배수가 아닌 홀수일 때의 곱셈 횟수가 2회로서 같지만 m이 4보다 큰 경우에는 (m-1)/3 < (m-2)/2이 항상 성립되므로 본 발명의 쉬프팅 반복 횟수와 필요한 곱셈의 횟수는 이토(Itoh)가 제안한 역원 계산 방법보다 작거나 같아져서 연산처리 속도를 개선할 수 있다. 뿐만아니라 중간에 임시로 값을 저장해야 할 메모리의 갯수도 줄어들어 여러 가지면에서 이득을 볼 수 있다.Here, it should be noted that when m-1 is an odd number that is a multiple of 3 and m-1 is an odd number but not a multiple of 3, the number of times of multiplication is equal to twice, ) / 3 < (m-2) / 2 is always established, the number of shifting repetitions and the number of necessary multiplications of the present invention are smaller than or equal to the inverse calculation method proposed by Itoh. In addition, the number of memories to temporarily store values in the middle is also reduced, which can be beneficial in many ways.

참고로 이토(Itoh)의 역원 계산 방법을 사용하면 지수부의 평균 반복 인수분해 횟수는 m-1의 전체 비트수에 대하여 [log2(m-1)]이다. 또한, 각 i번째 비트에서 그 비트가 0일 확률 Pr(0|i)은 1/2이며 필요한 곱셈 횟수는 2회가 되고 그 비트가 1일 확률 Pr(1|i)은 1/2이며 필요한 곱셈 횟수는 1회가 되어서 평균 곱셈 횟수는 (Pr(0|i)×2+Pr(1|i)×1)×[log2(m-1)]=×[log2(m-1)]이다.For reference, using Itoh's inversion method, the average number of iterations of the exponent is [log 2 (m-1)] for the total number of bits of m-1. The probability Pr (0 | i) at which each bit of the i-th bit is 0 is 1/2, the required number of multiplications is twice, and the probability Pr (1 | i) The number of times of multiplication is one and the number of times of the average number of multiplications is (Pr (0 | i) × 2 + Pr (1 | i) × 1) × log 2 (m-1) × [log 2 (m-1)].

한편, 상기 방법을 본 발명에 적용하면 m-1에 대한 지수부의 평균 반복 인수분해 횟수는 위의 지수부 축약판별 처리식을 기초로 계산해 보면 (Pr(6k, 6k+1, 6k+2, 6k+4, 6k+5))[log2(m-1)]+(Pr(6k+3))[log3(m-1)]이 됨을 알 수 있다. 여기서, Pr(6k, 6k+1, 6k+2, 6k+4, 6k+5)은 5/6이고, Pr(6k+3)은 1/6이다. 또한, 각 i번째 단계에서 그 숫자가 2의 배수가 될 확률 Pr(6k, 6k+2, 6k+4|i)은 3/6이며 필요한 곱셈 횟수는 1번이 되고 그 숫자가 3의 배수인 홀수일 확률 Pr(6k+1|i)은 1/6이며 필요한 곱셈 횟수는 2번이 되고 다시 그 숫자가 3의 배수가 아닌 홀수일 확률 Pr(6k+3,6k+5|i)은 2/6이며 필요한 곱셈 횟수는 2번이 되어서 평균 곱셈회수는,On the other hand, when the above method is applied to the present invention, the average number of iterative factor decompositions of the exponent part for m-1 can be calculated based on the above exponential deconvolution formula (Pr (6k, 6k + 1, 6k + 2, 6k +4, 6k + 5)) it can be seen that [log 2 (m-1) ] + (Pr (6k + 3)) [log 3 (m-1)] a. Here, Pr (6k, 6k + 1, 6k + 2, 6k + 4, 6k + 5) is 5/6 and Pr (6k + 3) is 1/6. In addition, the probability Pr (6k, 6k + 2, 6k + 4 | i) that the number becomes a multiple of 2 in each i-th stage is 3/6, the necessary number of multiplications is 1, The odd odd probability Pr (6k + 3, 6k + 5 | i) is 1/6, the necessary multiplication number is 2, and the odd odd probability Pr / 6, and the required multiplication number is 2, and the average number of multiplications is < RTI ID = 0.0 >

가 된다. 따라서, 본 발명의 평균 곱셈 횟수는 이토(Itoh)의 역원 계산 방법에 비하여 적게 요구됨을 알 수 있어 적은 계산 능력을 갖는 환경에서는 보다 효율적으로 처리가 가능하다. . Therefore, it can be seen that the number of times of the mean multiplication of the present invention is less than that of the Itoh inverse calculation method, so that it can be processed more efficiently in an environment having a small calculation capacity.

제 1 도는 본 발명에 따른 처리 흐름도이다.FIG. 1 is a processing flowchart according to the present invention. FIG.

Gf(2112)의 예를 본 발명의 방법을 이용하여 설명해 보기로 한다.An example of Gf (2 112 ) will be described using the method of the present invention.

본 발명은 역원을 구하기 위한 선처리 과정, 지수부 축약 및 인수분해 과정, 지수부 연산 과정으로 구성되어 있다.The present invention comprises a preprocessing process for obtaining inverses, an exponent reduction and factorization process, and an exponent operation process.

먼저, 선처리 과정에서는 역원이 요구되는 유한체의 지수부를 파악하여 지수 m을 정하는 것이다. 위 예에서 m은 112이다.First, in the preprocessing process, the exponent part of the finite element requiring the inverse is determined and the exponent m is determined. In the above example, m is 112.

다음에는 지수부 축약 및 인수분해 과정을 수행하게 되며, 이를 위하여 지수부 축약판별 처리에서는 m-1이 짝수, 3의 배수이며 홀수, 아니면 3의 배수가 아닌 홀수인가를 판별한다. 여기서는 m-1이 111로서 3의 배수인 홀수가 된다. 그러면, [수학식 5]에 의해 [수학식 7]과 같이 지수부를 (2x-1) f(y)의 형태로 인수분해한다. 그런 후에 지수부 연산을 한다. 즉,을 처리함에 있어 Ai의 초기값은 α이고 f(y)의 낮은 차수부터 상향으로 차례로 처리하되 해당 차수만큼 쉬프팅하고 그 결과를 다음번 높은 차수만큼 쉬프팅한 결과와 곱하여 저장한다. 이를 반복 처리함으로써 최고 차수에 대하여 처리한 결과와 이전까지 처리하여 저장한 결과와 곱함으로써를 처리하게 되고 이를 다시 Ai에 저장한다. m-1이 짝수인 경우에도 이와같이 처리한다.Next, the exponent reduction and factorization process is performed. In the exponent division reduction process, it is determined whether m-1 is an even number, a multiple of 3, an odd number, or an odd number that is not a multiple of 3. Here, m-1 is 111, which is an odd number that is a multiple of 3. Then, the exponent part is factorized in the form of (2 x -1) f (y) according to the equation (5) as in the equation (7). Then, exponentiation is performed. In other words, The initial value of A i is α, and the process is performed from the low order to the high order of f (y), shifted by the corresponding order, and the result is multiplied by the result of shifting by the next higher order. By repeating this processing, the result of processing for the highest order is multiplied by the result of processing and storing before And stores it again in A i . This is the case even when m-1 is an even number.

한편, 지수부의 (2x-1)에서 x를 m-1로 간주하여 지수부 축약 판별을 하여 이것이 3의 배수가 아닌 홀수인 경우에 Ai값을 중간 레지스터인 Tj에 저장한다. 그런 후에 x가 3보다 크면 다시 지수부 축약판별식으로 되돌아 간다.On the other hand, when exponent part is abbreviated by considering x as m-1 in the exponent part (2 x -1), the value of A i is stored in the intermediate register T j when it is an odd number instead of a multiple of 3. Then, if x is greater than 3, it goes back to the exponent part abbreviation.

이와 같은 방법으로 축차적으로 처리함으로써 [수학식 11]을 얻을 수 있다. [수학식 11]에서 얻은 지수부의 인수분해 결과가 (29-1) g(z)을 포함하여 다시 최종적인 지수부 축약판별 처리를 수행하게 된다. 한편 이 처리가 되면 23-1=(2-1)(22+2+1)=22+2+1(또는 22-1=2+1)이 되어 [수학식 13]과 같은 형태를 얻을 수 있다. 이는 도 1 에서 지수부 축약판별 후에 지수부의 m-1 값이 2 또는 3이 되면 해당 지수부를 각각 22-1은 2+1로 대치시키고 23-1는 22+2+1로 대치시켜 지수부 축약 및 인구분해 처리 과정을 끝낸다. 특히, 이 과정에서 지수부 인수분해의 결과가 [수학식 9]와 같은 (2y-1)g(z)+1의 형태가 도출될 경우에는 (2x-1)f(y)과 같은 방법으로 지수부 연산을 구하여을 처리하면 된다.By performing the processing in a cyclic manner in this manner, the following formula (11) can be obtained. The result of factorization of the exponent obtained in the equation (11) includes (2 9 -1) g (z) and the final exponent part reduction discrimination process is performed. On the other hand, when this processing is performed, 2 3 -1 = (2-1) (2 2 + 2 + 1) = 2 2 + 2 + 1 (or 2 2 -1 = 2 + 1) Shape can be obtained. In FIG. 1, when the m-1 value of the exponent is 2 or 3 after exponent reduction, 2 2 -1 is replaced by 2 + 1 and 2 3 -1 is replaced by 2 2 + 2 + 1 End exponent reduction and population decomposition process. In particular, if the exponent factor decomposition results in the form of (2 y -1) g (z) +1 as in (9), then (2 x -1) f The exponent sub-operation is obtained .

이와 같은 방법으로 우리가 구하고자 하는 역원은를 처리함으로써 구할 수 있으며, 역원 계산을 종료하게 된다. 여기서 j는 1부터 k(지수부 축약 판별 처리시 3의 배수가 아닌 홀수인 경우)까지이다.In this way, the officer we are seeking , And inverse calculation is terminated. Here, j is from 1 to k (when the exponent part reduction discrimination processing is an odd number instead of a multiple of 3).

위의 [수학식 14]에서 보는 것처럼 곱셈 횟수는 9회이며 중간의 값을 저장하기 위한 메모리의 갯수는 1개만 필요하다. 하지만 이토(Itoh)의 방법을 이용하면 nb(111)+ω(111)-1=11회의 곱셈이 요구되며 중간 메모리는 5개가 필요하여 그 차이를 명확히 알 수 있다.As shown in Equation (14) above, the number of times of multiplication is nine, and only one memory is required to store the intermediate value. However, with Itoh's method, nb (111) + ω (111) -1 = 11 times multiplication is required and five intermediate memories are needed, so the difference can be clearly seen.

더욱이, 위의 예에서 보는 것처럼 m-1이 3의 배수일 때에는 본 발명의 방법이 훨씬 유리하다는 것을 알 수 있으며, 뿐만아니라 m-1이 큰 수일수록 본 발명의 방법은 더욱더 유용하다. 일반적으로 통용되는 디지탈 서명 기법에서는 이산대수의 안전도 측면에서 지수부의 계수를 160비트 이상으로 사용하고 있다.Moreover, it can be seen that the method of the present invention is much more advantageous when m-1 is a multiple of 3, as shown in the above example, and the method of the present invention is even more useful as long as m-1 is larger. Generally, digital signature techniques use exponent coefficients more than 160 bits in terms of safety of discrete logarithms.

본 발명의 다른 한 방법은, 본 발명의 지수부 축약판별 처리식을 역원계산시 적용할 때 지수부 축약판별 처리식을 m-1이 3의 배수가 됨을 먼저 처리하여 3의 배수일 경우에는 지수부 인수분해를 3의 배수로 처리하고 그렇지 않으면 이전과 같이 짝수와 홀수로 나누어 처리하면된다.In another method of the present invention, when applying the exponent reduction discrimination processing expression of the present invention to the inverse calculation, the exponent reduction discrimination processing is firstly performed such that m-1 is a multiple of 3, Sub-factorization is done in multiples of three, otherwise it can be divided into even and odd numbers as before.

이와 같이 개선된 지수부 축약판별 처리식을 적용해보면 몇몇의 예이지만 본 발명의 첫번째 방법과는 달리 메모리 갯수의 절약면에서 보다 이익이었다.However, unlike the first method of the present invention, it is advantageous in terms of saving the number of memories.

이토(Itoh)의 방법에서 든 예로 개선된 본 발명을 생각해보면, 다음과 같이 됨을 알 수 있다.Considering the improved invention as an example of Itoh's method, it can be seen that

이를 비교해보면 곱셈의 횟수는 변화없이 같지만 메모리의 개수는 1개로서 이토(Itoh)의 방법(2개)보다 이득이다.In comparison, the number of multiplications is the same without change, but the number of memories is one, which is more profitable than the two methods of Itoh.

이상에서 설명한 본 발명은, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에 있어 본 발명의 기술적 사상을 벗어나지 않는 범위내에서 여러 가지 치환, 변형 및 변경이 가능하므로 전술한 실시예 및 첨부된 도면에 한정되는 것이 아니다.It will be apparent to those skilled in the art that various modifications and variations can be made in the present invention without departing from the spirit or scope of the invention. The present invention is not limited to the drawings.

상기와 같은 본 발명은 종래의 이토(Itoh)의 역원 계산 방법에 비하여 처리 속도를 크게 향상시킬 수 있으며, 메모리를 많이 절약할 수 있는 효과가 있다.The present invention as described above can greatly improve the processing speed and save a lot of memory compared to the conventional Itoh inversion calculation method.

Claims (6)

메모리를 사용하여 유한체상에서 역원을 구하는 방법에 있어서,In a method for obtaining an inverse on a finite field using a memory, 역원이 요구되는 유한체의 지수부를 파악하여 지수 m을 설정하고 초기화하는 선처리 과정을 수행하는 제 1 단계;A first step of performing a preprocessing process of setting the exponent m and initializing the exponent part of the finite field requiring the inverse process; m-1이 짝수, 3의 배수이며 홀수, 또는 3의 배수가 아닌 홀수인지를 판별하는 지수부 축약판별 처리를 수행한 후에 m-1이 3의 배수가 아닌 홀수일 경우에는 인수분해를 수행하여 지수부 연산을 수행한 후에 그 결과를 중간 저장수단(Tj)에 저장하고, 짝수이거나 3의 배수인 홀수일 경우에는 인수분해를 수행한 후에 쉬프팅으로 지수부를 연산하여 저장하는 제 2 단계; 및If m-1 is an odd number other than a multiple of 3 after performing an exponent part reduction discrimination process for determining whether m-1 is an even number, a multiple of 3 and an odd number, or an odd number other than a multiple of 3, factor decomposition is performed Storing the result in the intermediate storage means (T j ) after the exponent sub-operation, storing the result in the intermediate storage means (T j ), calculating the exponent portion by shifting after performing factor decomposition when it is an odd number or an odd multiple of 3; And m-1이 소정의 값보다 큰지를 판단하여 소정의 값보다 크면 상기 제 2 단계부터 반복 수행하고, 소정의 값 이하이면 지수부 인수분해를 종료하고 저장된 값을 이용하여 역원을 계산하는 제 3 단계를 포함하여 이루어진 유한체상에서 역원을 구하는 방법.determining whether m-1 is larger than a predetermined value, repeating the steps from the second step if the value is greater than a predetermined value, and terminating exponent factor decomposition when the value is less than a predetermined value, To find the inverse on the finite field. 제 1 항에 있어서,The method according to claim 1, 상기 제 2 단계는,The second step comprises: m-1이 짝수, 3의 배수이며 홀수, 또는 3의 배수가 아닌 홀수인지를 판별하는 지수부 축약판별 처리를 수행하는 단계;performing an exponent part reduction discrimination process for determining whether m-1 is an even number, a multiple of 3 and an odd number, or an odd number that is not a multiple of 3; 상기 단계의 판별 결과, 짝수일 경우에는로 인수분해하고, 3의 배수이며 홀수일 경우에는로 인수분해하고, 3의 배수가 아닌 홀수일 경우에는로 인수분해하는 인수분해 처리과정을 수행하는 단계; 및As a result of the determination in the above step, of And if it is a multiple of 3 and an odd number of And when it is an odd number other than a multiple of 3 of Performing an factorization process to factorize the input signal; And 상기 단계의 지수부 인수분해 결과가 (2x-1)f(y) 또는 (2x-1)f(y)+1의 형태인 경우에는을 처리하여 그 결과를 Ai에 저장하고, 지수부의 (2x-1)에서 x가 3의 배수가 아닌 홀수인 경우에는 Ai값을 중간 레지스터(Tj)에 저장하는 단계를 포함하는 것을 특징으로 하는 유한체상에서 역원을 구하는 방법.If the exponent factor decomposition result of the above step is in the form of (2 x -1) f (y) or (2 x -1) f (y) +1 Storing the result in A i and storing the value of A i in the intermediate register (T j ) when x is an odd number other than a multiple of 3 in (2 x -1) of the exponent part To find the inverse on a finite field. 제 2 항에 있어서,3. The method of claim 2, 상기 지수부 축약판별 처리를 수행하는 단계는,Wherein the step of performing the exponent part reduction discrimination processing comprises: m-1이 짝수인지를 판단하는 단계; 및determining whether m-1 is an even number; And 상기 단계의 판단 결과, 짝수가 아니면 3의 배수이며 홀수인지 또는 3의 배수가 아닌 홀수인지를 판단하는 단계를 포함하는 것을 특징으로 하는 유한체상에서 역원을 구하는 방법.Determining whether the odd number is an even number or an odd number if the odd number is not an even number or an odd number if the odd number is not an odd number. 제 2 항에 있어서,3. The method of claim 2, 상기 지수부 축약판별 처리를 수행하는 단계는,Wherein the step of performing the exponent part reduction discrimination processing comprises: m-1이 3의 배수이며 홀수인지를 판단하는 단계; 및determining whether m-1 is a multiple of 3 and an odd number; And 상기 단계의 판단 결과, 3의 배수인 홀수가 아니면 짝수인지 또는 3의 배수가 아닌 홀수인지를 판단하는 단계를 포함하는 것을 특징으로 하는 유한체상에서 역원을 구하는 방법.Determining whether the odd number is an odd number that is not an odd number that is a multiple of 3 or an odd number that is not a multiple of 3. The method of claim 1, 제 2 항에 있어서,3. The method of claim 2, 상기 단계의을 처리하여 그 결과를 Ai에 저장하는 과정은,In the step And storing the result in A i , 을 처리함에 있어 Ai의 초기값은 α이며, f(y)의 낮은 차수부터 상향으로 차례로 처리하되 해당 차수만큼 쉬프팅하고 그 결과를 다음번 높은 차수만큼 쉬프팅한 결과와 곱하여 저장한 후에 이를 반복 처리함으로써 최고 차수에 대하여 처리한 결과와 이전까지 처리하여 저장한 결과와 곱함으로써를 처리하여 Ai에 저장하는 것을 특징으로 하는 유한체상에서 역원을 구하는 방법. , The initial value of A i is α, which is processed in order from low order to high order of f (y), shifted by the corresponding order, multiplied by the result of shifting the result by the next higher order, By multiplying the result of processing for the highest order with the result of processing and storing it before The process how to obtain the inverse on a finite field characterized in that stored in A i. 제 1 항 내지 제 5 항중 어느 한 항에 있어서,6. The method according to any one of claims 1 to 5, 상기 제 3 단계는,In the third step, m-1이 3보다 큰지를 판단하는 단계;determining whether m-1 is greater than 3; 상기 단계의 판단 결과, 3보다 크면 상기 제 2 단계부터 반복 수행하는 단계;Repeating the steps from the second step if it is determined to be greater than 3; m-1인 3 이하인 경우에는 m-1이 3인지 또는 2인지를 확인하는 단계;determining whether m-1 is 3 or 2 when m-1 is 3 or less; 상기 단계의 확인 결과, x가 3인 경우에는 23-1=(2-1)(22+2+1)=22+2+1로 정한 후에를 처리하여 그 결과를 Ai에 저장하고, m-1이 2인 경우에는 22-1=2+1로 정한 후에를 처리하여 그 결과를 Ai에 저장하는 단계; 및As a result of the above step, when x is 3, 2 3 -1 = (2-1) (2 2 + 2 + 1) = 2 2 + 2 + 1 And stores the result in A i . When m-1 is 2, 2 2 -1 = 2 + 1 is set And storing the result in A i ; And 를 계산하여 역원을 계산하는 단계를 포함하는 것을 특징으로 하는 유한체상에서 역원을 구하는 방법. And computing the inverse of the finite field.
KR1019960056154A 1996-11-21 1996-11-21 Using memory to find inverses on finite fields KR100194769B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1019960056154A KR100194769B1 (en) 1996-11-21 1996-11-21 Using memory to find inverses on finite fields

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1019960056154A KR100194769B1 (en) 1996-11-21 1996-11-21 Using memory to find inverses on finite fields

Publications (2)

Publication Number Publication Date
KR19980037406A KR19980037406A (en) 1998-08-05
KR100194769B1 true KR100194769B1 (en) 1999-06-15

Family

ID=66321111

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019960056154A KR100194769B1 (en) 1996-11-21 1996-11-21 Using memory to find inverses on finite fields

Country Status (1)

Country Link
KR (1) KR100194769B1 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20210009723A (en) 2019-07-17 2021-01-27 주식회사 포윈 Apparatus, System and Method for Managing Repeater Using Wireless Communication

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20030003435A (en) * 2001-06-30 2003-01-10 주식회사 시큐리티테크놀로지스 Optimal finite field inversion method and device for use in a elliptic curve cryptosystem
KR100444905B1 (en) * 2001-12-17 2004-08-21 이용석 Finite field multiplier

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20210009723A (en) 2019-07-17 2021-01-27 주식회사 포윈 Apparatus, System and Method for Managing Repeater Using Wireless Communication

Also Published As

Publication number Publication date
KR19980037406A (en) 1998-08-05

Similar Documents

Publication Publication Date Title
Arno et al. Signed digit representations of minimal Hamming weight
US7505587B2 (en) Elliptic curve cryptosystem apparatus, storage medium storing elliptic curve cryptosystem program, and elliptic curve cryptosystem arithmetic method
EP0933695B1 (en) IC card equipped with elliptic curve encryption processing facility
KR101062558B1 (en) Computer-readable storage media, systems, and methods for computing cryptographic techniques
US8862651B2 (en) Method and apparatus for modulus reduction
US20080044013A1 (en) Koblitz Exponentiation with Bucketing
Aranha et al. Faster implementation of scalar multiplication on Koblitz curves
Hasan Look-up table-based large finite field multiplication in memory constrained cryptosystems
Bernstein et al. On the correct use of the negation map in the Pollard rho method
Kocabaş et al. Implementation of binary Edwards curves for very-constrained devices
Paar Implementation of cryptographic schemes 1
KR20040067779A (en) Information processing means
US6609141B1 (en) Method of performing modular inversion
Koc et al. Fast software exponentiation in GF (2/sup k/)
Phillips et al. Implementing 1,024-bit RSA exponentiation on a 32-bit processor core
KR100194769B1 (en) Using memory to find inverses on finite fields
Thomé Fast computation of linear generators for matrix sequences and application to the block Wiedemann algorithm
KR102241252B1 (en) Method, apparatus and system for performing modular arithmetic
KR100257123B1 (en) High-speed exponentiation method using a modified montgomery modular multiplication
Seo Compact software implementation of public-key cryptography on MSP430X
Balasubramanian et al. A survey of fermat factorization algorithms for factoring RSA composite numbers
KR100297110B1 (en) Modular multiplier
Beckwith et al. A high-performance hardware implementation of the less digital signature scheme
Ko et al. Montgomery multiplication in
KR100257124B1 (en) High-speed exponentiation method using common-multiplicand modular multiplication

Legal Events

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

Payment date: 20100129

Year of fee payment: 12

LAPS Lapse due to unpaid annual fee