KR101636809B1 - Binary field reduction method for Elliptic Curve Cryptography - Google Patents
Binary field reduction method for Elliptic Curve Cryptography Download PDFInfo
- Publication number
- KR101636809B1 KR101636809B1 KR1020140194809A KR20140194809A KR101636809B1 KR 101636809 B1 KR101636809 B1 KR 101636809B1 KR 1020140194809 A KR1020140194809 A KR 1020140194809A KR 20140194809 A KR20140194809 A KR 20140194809A KR 101636809 B1 KR101636809 B1 KR 101636809B1
- Authority
- KR
- South Korea
- Prior art keywords
- words
- binary
- elliptic curve
- memory
- register
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/38—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
- G06F7/48—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
- G06F7/491—Computations with decimal numbers radix 12 or 20.
- G06F7/492—Computations with decimal numbers radix 12 or 20. using a binary weighted representation within each denomination
- G06F7/493—Computations with decimal numbers radix 12 or 20. using a binary weighted representation within each denomination the representation being the natural binary coded representation, i.e. 8421-code
- G06F7/494—Adding; Subtracting
Landscapes
- Engineering & Computer Science (AREA)
- Computing Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Computational Mathematics (AREA)
- Mathematical Analysis (AREA)
- Mathematical Optimization (AREA)
- Pure & Applied Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Complex Calculations (AREA)
Abstract
Description
본 발명은 타원 곡선 암호용 이진체의 감산 방법에 관한 것으로, 특히 8-비트 ATmega 128 프로세서 환경에서 효율적으로 이진체를 감산할 수 있는 타원 곡선 암호용 이진체의 감산 방법에 관한 것이다.
The present invention relates to a method of subtracting an elliptic curve cryptography binary, and more particularly, to a subtraction method of an elliptic curve cryptography binary that can efficiently subtract a binary value in an 8-bit ATmega 128 processor environment.
각종 전자 상거래의 급격한 증가로 인하여, 전자 상거래 시스템뿐만 아니라, 보안 시스템에서도 다양한 암호 방식이 널리 연구되고 있다. Due to the rapid increase of various electronic commerce, various cryptosystems have been widely studied not only in electronic commerce systems but also in security systems.
그 중에서도 타원 곡선 시스템을 이용한 공개키 암호방식(ECC: Elliptic Curve Cryptosystem, 이하 ECC라고 한다.)은 이산대수의 난해성에 기반을 둔 공개키 방식의 암호 알고리즘으로서, RSA 알고리즘에 이어 전자 상거래의 핵심기술로 최근 주목받고 있다. 이산대수의 난해성에 기반을 둔 타원곡선 암호체계는 DSA 알고리즘과 소인수분해 기반의 RSA 등과 함께 공개키 방식의 일종이다. 상기 ECC는 지난 85년 N.Koblitz와 V.S.Miller 가 RSA 암호화방식에 대한 대안으로 처음 제안하였으며, 현재 보안시스템 및 전자상거래 솔루션업체들에 의해 폭넓게 채용되고 있는 추세이다. Among them, a public key cryptosystem (ECC) using an elliptic curve system is a public key cryptographic algorithm based on the disadvantage of discrete logarithm, and is a core technology of e-commerce following the RSA algorithm Has recently attracted attention. The elliptic curve cryptosystem based on the difficulty of discrete algebra is a kind of public key system together with DSA algorithm and RSA based on factorial decomposition. The ECC was first proposed in 1985 by N. Koblitz and V.S. Miller as an alternative to RSA encryption, and is currently being widely adopted by security systems and e-commerce solution providers.
특히, 상기 ECC는 타원곡선을 이용하여 유한체위에서 새로운 공개키 암호알고리즘을 만들지는 않지만 기존의 공개키 알고리즘을 타원곡선을 이용하여 구현했다는 특징을 지니고 있다. 보다 정확하게는 상기 ECC는 특정 암호알고리즘이 아니라 암호알고리즘을 구현해 볼 수 있는 수학적인 장소를 제공하고 있는 것으로 RSA, 디피 헬만(Diffie-Hellman), 엘가말(Elgamal) 등의 알고리즘을 기존의 정수공간이 아닌 타원 곡선위에서 구현할 수 있게 한다. 타원 곡선위에서의 암호 구현은 수학적 복잡도 때문에 동일한 키 크기의 정수위에서 구현하는 것 보다 훨씬 강도가 강하므로 향후 암호 알고리즘의 대부분이 ECC로 바뀔 가능성이 매우 높다. In particular, the ECC has a feature that an existing public key algorithm is implemented using an elliptic curve, although a new public key cryptographic algorithm is not made at a finite position using an elliptic curve. More precisely, the ECC provides a mathematical place where a cryptographic algorithm can be implemented rather than a specific cryptographic algorithm, and it is possible to use algorithms such as RSA, Diffie-Hellman, Elgamal, To be implemented on non-elliptic curves. Cryptographic implementations on elliptic curves are much more robust than those implemented on integers of the same key size because of their mathematical complexity, so it is very likely that most of the future cryptographic algorithms will turn into ECC.
이러한 타원곡선 암호시스템은 유한체의 곱셈 군에 근거한 시스템으로서 다양한 암호 시스템을 설계할 수 있고, 안전한 특성을 갖는다. This elliptic curve cryptosystem is a system based on multiplicative group of finite fields and can design various cryptosystems and has a safe characteristic.
특히, 군(group)을 제공할 수 있는 다양한 타원곡선을 활용할 수 있다. 즉, 다양한 암호시스템 설계가 용이하다. 또한, 모든 사용자가 같은 기저체 K를 사용한다 할 지라도 각 사용자가 다른 곡선을 선택할 수 있다는 것이다. 즉, 모든 사용자는 연산을 수행하기 위해 같은 하드웨어를 사용할 수 있으며, 추가 보안을 위해 주기적으로 곡선을 바꿀 수 있다. In particular, various elliptic curves that can provide a group can be utilized. That is, it is easy to design various cryptographic systems. Also, even if all users use the same base K, each user can select a different curve. That is, all users can use the same hardware to perform operations, and can periodically change the curve for additional security.
또한, 공개키 암호시스템의 이론적 안전도를 조사하기 위해서는 먼저 시스템을 공격하는 데에 있어 그 시스템의 기반이 되는 수학적 문제를 푸는 것이 어느 정도 요구되는가를 분석하는 것이다. 실제 소인수문제에 기반을 둔 공개키 암호시스템 RSA, 이산대수문제에 기반을 둔 공개키 암호시스템 DSA 및 타원곡선 암호시스템 모두 수년간 정밀한 분석이 이루어져 왔고, 그러한 시스템 공격방법은 그 기반이 되는 수학적 분제를 푸는 것이라고 알려져 있다. 따라서, 이제 "기반이 되는 어려운 문제"가 무엇인지를 분석하여야 한다. 타원곡선 이산대수문제는 타원곡선의 작은 클래스인 초 특이 타원곡선일 때 상대적으로 쉽다는 것이 알려져 있다. 그러나 이러한 취약점은 쉽게 확인될 수 있으며, 그러므로 쉽게 피할 수도 있다. 모듈러 p에서의 소인수 분해 문제와 이산대수문제는 일반적으로 Sub-exponential time 알고리즘이 알려져 있다. Sub-expoinential time 알고리즘이란 여전히 어려운 문제로 알려져 있으나, 완전지수복잡도(fully expoenetail time) 알고리즘만을 허용하는 문제보다는 쉽다는 것을 의미한다. 이 알고리즘의 수행시간은 상수 c에 대하여 그러나(초 특이 타원곡선을 피하면서) 이 군에서의 sub-exponential time algorithms 이 존재하지 않는다. 즉, 안전한 암호시스템을 설계하는 것이 용이하다. RSA와 DSA가 1024비트의 모듈러를 사용하는 반면, ECC는 160비트 모듈러로도 충분함을 보여준다. 더욱이 키 크기가 증가할수록 그 비율은 더욱 증가한다. In order to investigate the theoretical safety of a public key cryptosystem, it is necessary to analyze how much it is necessary to solve the mathematical problem underlying the system in attacking the system. Public key cryptosystem RSA based on real small number problem, public key cryptosystem based on discrete logarithm problem Both DSA and elliptic curve cryptosystem have been analyzed for many years and precise analysis of such system attacks is based on mathematical analysis It is said to be loose. Therefore, it should now be analyzed what is the "underlying problem". Elliptic Curve Discrete logarithm problem is known to be relatively easy when it is a small class of elliptic curves, a super-specific elliptic curve. However, these vulnerabilities can be easily identified and therefore easily avoided. The sub-exponential time algorithm is generally known as the sub-algebraic problem and the discrete logarithm problem in modular p. The sub-exponential time algorithm is still known to be a difficult problem, but it is easier than a problem that allows only a fully exponetail time algorithm. The execution time of this algorithm is constant for c but there is no sub-exponential time algorithms in this group (avoiding the super-specific elliptic curve). That is, it is easy to design a secure cryptosystem. While RSA and DSA use 1024 bit modular, ECC shows that 160 bit modular is sufficient. Moreover, as the key size increases, the ratio increases further.
이러한 ECC에 적용하기 위한 이진체 감산 방법을 수행하기 위해서는 자원이 제한된 환경에서 중복되는 메모리 접근에 대한 부하가 상대적으로 크다는 문제점이 발생했다.
In order to perform the binary subtraction method to be applied to the ECC, there is a problem that the load on the redundant memory access is relatively large in a resource limited environment.
상기와 같은 종래 기술의 문제점을 해결하기 위해, 본 발명은 8 비트 기반 ATmega 128 프로세서와 같이 자원이 제한된 환경에서는 이진체의 감산 방법을 통해 레지스터를 효율적으로 사용하여 메모리 접근 중복에 대한 부하를 감소시킬 수 있는 타원 곡선 암호용 이진체의 감산 방법을 제공하고자 한다.
In order to solve the problems of the prior art as described above, the present invention reduces the load on memory access redundancy by efficiently using a register through a binary subtraction method in an environment where resources are limited, such as an 8-bit based ATmega 128 processor And to provide a method for subtracting binary codes for elliptic curve cryptosystems.
위와 같은 과제를 해결하기 위한 본 발명의 한 실시 예에 따른 타원 곡선 암호용 이진체의 감산 방법은 입력부가 이진체의 차수를 나타낸 복수 개의 워드를 메모리부로부터 입력받아 레지스터에 로드하는 단계; 및 감산부가 상기 레지스터에 로드된 복수 개의 워드에 대하여 삼항 또는 오항 다항식으로 이루어지는 기약다항식으로 감산 연산하는 단계;를 포함한다. According to an aspect of the present invention, there is provided a method of subtracting an elliptic curve cryptography binary from a memory, the method comprising: inputting a plurality of words representing a degree of an input binary object into a register; And a subtracting step of subtracting a plurality of words loaded in the register by a ternary polynomial of a ternary or a five-polynomial.
보다 바람직하게는 상기 메모리부가 감산된 상기 복수 개의 워드를 갱신하여 내부에 저장하는 단계;를 더 포함할 수 있다. More preferably, the memory unit may update and store the plurality of subtracted words.
보다 바람직하게는 상기 복수 개의 워드를 1-비트 레프트 시프트 및 워드 시프트 연산을 통해 감산하는 감산부가 상기 레지스터에 로드된 복수 개의 워드를 상기 기약다항식으로 감산 연산하는 단계를 포함할 수 있다.
More preferably, the step of subtracting a plurality of words loaded in the register by a subtracting unit for subtracting the plurality of words through the 1-bit left shift and word shift operations may be performed by the irreducible polynomial.
본 발명의 타원 곡선 암호용 이진체의 감산 방법은 메모리에 저장된 데이터를 레지스터로 로드하고, 감산 연산에 따른 결과값을 다시 메모리에 저장하여 메모리 로드와 저장을 최소한으로 설계하여 어셈블리 언어로 구현함으로써, 감산 연산 향상율이 증가할 수 있는 효과가 있다.
A method of subtracting an elliptic curve cryptography binary according to the present invention comprises the steps of: loading data stored in a memory into a register, storing the result of the subtraction operation in a memory, There is an effect that the improvement ratio of the subtraction operation can be increased.
도 1은 32 비트 프로세서 기반의 이진체 감산 방법을 나타낸 도면이다.
도 2는 32 비트 프로세서에 적용된 종래 기술에 따른 이진체의 감산 방법을 나타낸 도면이다.
도 3은 본 발명의 일 실시 예에 따른 타원 곡선 암호용 이진체의 감산 방법의 순서도이다.
도 4는 8비트 기반 ATmega128 프로세서의 범용 레지스터를 나타낸 도면이다.
도 5는 8 비트 프로세서 기반 타원 곡선 암호용 이진체의 감산 방법을 나타낸 도면이다.
도 6은 감산 연산에 대한 루프 카운터별 감산과정의 동작과정을 나타낸 도면이다.
도 7은 감산 과정에서 각 워드가 감산 연산되어 최종적으로 이동하는 워드를 나타낸 테이블이다.
도 8은 종래 기술과 본 발명간의 효율성을 비교를 나타낸 표이다.1 is a diagram illustrating a 32-bit processor-based binary subtraction method.
FIG. 2 is a diagram illustrating a method of subtracting a binary body according to a conventional technique applied to a 32-bit processor.
3 is a flowchart of a method of subtracting an elliptic curve cryptography binary according to an embodiment of the present invention.
4 shows a general purpose register of an 8 bit based ATmega 128 processor.
FIG. 5 is a diagram illustrating a method of subtracting an 8-bit processor-based binary code for elliptic curve cryptosystem.
6 is a diagram illustrating an operation process of a subtraction process for each loop counter for a subtraction operation.
FIG. 7 is a table showing words that are finally shifted by subtracting each word in the subtraction process.
8 is a table showing a comparison of efficiency between the prior art and the present invention.
이하, 본 발명을 바람직한 실시 예와 첨부한 도면을 참고로 하여 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자가 용이하게 실시할 수 있도록 상세히 설명한다. 그러나 본 발명은 여러 가지 상이한 형태로 구현될 수 있으며, 여기에서 설명하는 실시 예에 한정되는 것은 아니다. DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENT Hereinafter, the present invention will be described in detail with reference to preferred embodiments and accompanying drawings, which will be easily understood by those skilled in the art. The present invention may, however, be embodied in many different forms and should not be construed as limited to the embodiments set forth herein.
이하에서는 차세대 공개키 암호로 대두되고 있는 타원 곡선 암호(ECC: Elliptic Curve Cryptography)에 사용되는 이진체 감산 방법에 대하여 자세히 살펴보도록 한다. Hereinafter, a binary subtraction method used in ECC (Elliptic Curve Cryptography), which is the next generation public key cryptosystem, will be described in detail.
먼저, 본 발명이 사용되는 타원 곡선 암호에 간략히 살펴보면, 타원곡선암호체계는 이산대수의 난해성에 기반을 둔 공개키 방식의 암호 알고리즘으로 RSA 알고리즘에 이어 전자 상거래의 핵심기술로 최근 주목받고 있다. 이산대수의 난해성에 기반을 둔 타원곡선 암호체계는 DSA 알고리즘과 소인수분해 기반의 RSA 등과 함께 공개키 방식의 일종이다. ECC는 지난 85년 N.Koblitz와 V.S.Miller 가 RSA 암호화방식에 대한 대안으로 처음 제안하였으며, 현재 보안시스템 및 전자상거래 솔루션업체들에 의해 폭넓게 채용되고 있는 추세이다. ECC는 타원곡선을 이용, 유한체위에서 새로운 공개키 암호알고리즘을 만들지는 않지만 기존의 공개키 알고리즘을 타원곡선을 이용해 구현했다는 특징을 지니고 있다. First, the elliptic curve cryptosystem using the present invention will be briefly described. The elliptic curve cryptosystem is a public key cryptographic algorithm based on the disadvantage of discrete logarithm, and has recently attracted attention as a core technology of e-commerce following RSA algorithm. The elliptic curve cryptosystem based on the difficulty of discrete algebra is a kind of public key system together with DSA algorithm and RSA based on factorial decomposition. ECC was first proposed in 1985 by N. Koblitz and V.S. Miller as an alternative to RSA encryption, and is now widely adopted by security systems and e-commerce solution providers. ECC does not make a new public key cryptographic algorithm in the finite position using elliptic curves, but it has the feature that it implemented the existing public key algorithm with elliptic curves.
또한 이진체는 임의 m(유한체의 차수)에 대한 2m 원소를 갖는 유한체 GF(2m)이다. 이 유한체의 원소는 길이 m의 비트 스트링이며, 유한체 산술은 비트의 연산 용어로 구현된다. 이러한 이진체에 적용 가능한 타원 곡선은 y2 + xy = x3 + ax2 + b 형식을 취한다. Also, the binary body is a finite field GF (2m) with 2m elements for arbitrary m (order of finite field). The element of this finite field is a bit string of length m, and finite field arithmetic is implemented in terms of bits. The elliptic curve applicable to this binary form takes the form y2 + xy = x3 + ax2 + b.
방정식을 만족하는 가능한 곡선의 수는 실제로 무한대라고 할 수 있지만, ECC에 관련해서는 소수의 곡선만 사용된다. 이 곡선들은 FIPS 186에 명시되어 있으며, NIST 권장 타원 곡선이라고 한다. 각각의 곡선은 각 이름과 소수 모듈로 p, 소수 위수 n, 계수 a, 계수 b 및 곡선상의 기저점 G(x, y)의 x와 y 좌표로 이루어진 영역 매개변수 세트로 구성된다.The number of possible curves satisfying the equation is actually infinity, but only a small number of curves are used for ECC. These curves are specified in FIPS 186 and are called NIST recommended elliptic curves. Each curve consists of a set of area parameters consisting of the x and y coordinates of the base point G (x, y) on each name and fractional module p, the prime number n, the coefficient a, the coefficient b and the curve.
이진체 의 원소들을 비트(bit)의 나열하여 기약다항식으로 표현할 수 있다. 이때, 각 비트들은 최고차항이 이하인 다항식의 계수들을 나타낼 수 있다. 상기 이진체의 원소들은 기약다항식에 따라 구성방식이 달라지며 각 원소들끼리의 곱셈 연산은 기약다항식을 이용한 감산 연산을 통해서 수행 될 수 있다. Binary Can be expressed in terms of irreducible polynomials by arranging the bits. At this time, Or less. The elements of the binary body are structured according to the irreducible polynomial, and the multiplication operation between the elements can be performed by the subtraction operation using the irreducible polynomial.
이하에서는 종래기술에 따라 이진체에서 기약다항식에 의존하는 감산 방법인 Fast reduction 방법에 대하여 살펴보도록 한다. Hereinafter, a fast reduction method, which is a subtraction method that depends on an irreducible polynomial in a binary form according to the prior art, will be described.
도 1은 32 비트 프로세서 기반의 이진체 감산 방법을 나타낸 도면이다. 1 is a diagram illustrating a 32-bit processor-based binary subtraction method.
도 1에 도시된 바와 같이, 종래 기술에 따른 이진체 감산 방법은 루프 한 번당 한 워드씩 감산을 진행한다. 예를 들어, 32 비트 프로세서 환경에서 기약다항식이 일 때, 입력 값의 10번째 워드 를 하기의 수학식 1과 같이 표현할 수 있다.As shown in FIG. 1, in the binary subtraction method according to the related art, subtraction is performed by one word per loop. For example, in a 32-bit processor environment, , The tenth word of the input value Can be expressed by the following equation (1).
상기 합동식의 오른쪽 4열을 고려해볼 때, C[9]의 감산 연산은 해당하는 하위 워드 C[5], C[4], C[3]에 4번의 배타적 논리합(XOR) 연산으로 처리가 가능하다. C[9]의 최하위 비트는 각각 132, 131, 128, 125번째 비트들에 배타적 논리합(XOR) 연산으로 처리된다. Considering the right four columns of the joint expression, the subtraction operation of C [9] is performed by performing four exclusive OR operations (XOR) on the corresponding lower words C [5], C [4], and C [ It is possible. The least significant bits of C [9] are processed by exclusive-OR (XOR) operations on 132, 131, 128, and 125th bits, respectively.
도 2는 32 비트 프로세서에 적용된 종래기술에 따른 이진체 감산 방법을 나타낸 도면이다.2 is a diagram illustrating a binary subtraction method according to the prior art applied to a 32-bit processor.
도 2에 도시된 바와 같이, 32 비트 프로세서 환경에서 곱셈 연산이나 제곱 연산의 결과로 워드 크기가 2배로 늘어난 값을 입력값을 수신하여 기약다항식 에 대한 Fast reduction 방법을 수행한다. As shown in FIG. 2, in a 32-bit processor environment, a value obtained by doubling the word size as a result of a multiplication operation or a square operation is received as an input value, The fast reduction method is performed.
이하, 도 3을 참조하여 본 발명의 일 실시 예에 따른 타원 곡선 암호용 이진체의 감산 방법에 대하여 살펴보도록 한다.Hereinafter, a method of subtracting an elliptic curve cryptography binary according to an embodiment of the present invention will be described with reference to FIG.
도 3은 본 발명의 타원 곡선 암호용 이진체의 감산 방법의 순서도이다. 3 is a flowchart of a method of subtracting an elliptic curve cryptographic binary according to the present invention.
도 3에 도시된 바와 같이, 본 발명의 타원 곡선 암호용 이진체의 감산 방법은 입력부가 이진체의 차수를 나타낸 복수 개의 워드를 메모리부로부터 입력받아 레지스터에 로드한다(S110). As shown in FIG. 3, in the method for subtracting an elliptic curve cryptographic binary according to the present invention, a plurality of words indicating the degree of an input binary object are input from a memory unit and loaded into a register (S110).
감산부가 상기 레지스터에 로드된 복수 개의 워드에 대하여 선택된 상기 기약다항식으로 감산 연산한다(S120). The subtraction unit subtracts the plurality of words loaded in the register by the selected irreducible polynomial (S120).
특히, 상기 다항식은 삼항 또는 오항 다항식으로 이루어지는데, 이진체 연산을 위해, 삼항다항식 또는 오항다항식 을 기약다항식으로 선택한다. 예를 들어, 만약 삼항 기약다항식이 존재한다면 그 중에서 가장 차수가 낮은 를 선택하고, 삼항 기약다항식이 존재하지 않으면 오항 기약다항식에서 차수가 가장 낮은 를 선택한다. 이어서, 도 차수가 가장 낮은 것으로 기약다항식을 선택한다. 위와 같은 방식으로 모든 에 대해 기약다항식을 선택할 수 있다. In particular, the polynomial is made up of a ternary or five-polynomial. For binomial calculations, the ternary polynomial Or a pentagon polynomial As an irreducible polynomial. For example, if a ternary irreducible polynomial exists, , And if the ternary irrational polynomial does not exist, . next, Select the irreducible polynomial with the lowest order. All of the above Can choose an irreducible polynomial.
또한, 상기 복수 개의 워드를 1-비트 레프트 시프트 및 워드 시프트 연산을 통해 감산할 수 있다. In addition, the plurality of words can be subtracted through 1-bit left shift and word shift operations.
상기 메모리부가 감산된 상기 복수 개의 워드를 갱신하여 내부에 저장한다(S130). The memory unit updates the subtracted words and stores the words therein (S130).
상술한 본 발명은 32 비트 기반 프로세서 환경이 아닌 8 비트 기반 ATmega128 프로세서 환경에서 Fast reduction 알고리즘을 기약다항식 적용하는 경우를 살펴보기에 앞서, 본 발명이 적용되는 8 비트 기반의 ATmega128 프로세서에 대하여 간략히 살펴보도록 한다. The present invention is not limited to a 32-bit based processor environment but a fast reduction algorithm in an 8-bit based ATmega128 processor environment, Hereinafter, an ATmega128 processor based on 8 bits according to an embodiment of the present invention will be briefly described.
이러한 ATmega128 프로세서는 무선 센서네트워크 환경에서 대표적으로 사용되는 MICA2/MICAz 센서모트에 탑재된 8 비트 기반의 마이크로프로세서이다. 이러한 ATmega128 프로세서는 성능과 병렬성을 최대화하기 위해, 프로그램과 데이터를 위한 메모리와 버스를 구분하는 하버드(Havard) 구조이며 프로그램 메모리 내의 명령어들은 하나의 명령어가 수행될 때, 다음에 수행될 명령어가 프로그램 메모리로부터 프리페치(prefetch)되는 한 단계의 파이프라인으로 처리된다. 이러한 처리 과정을 통하여 ATmega128 프로세서는 매 클럭 사이클마다 명령어를 수행할 수 있다.The ATmega128 processor is an 8-bit based microprocessor in the MICA2 / MICAz sensor motto, which is typically used in wireless sensor networks. In order to maximize performance and parallelism, the ATmega 128 processor has a Havard structure for distinguishing memory and bus for programs and data. When an instruction is executed in a program memory, a command to be executed next is stored in a program memory Lt; RTI ID = 0.0 > prefetched < / RTI > Through this process, the ATmega128 processor can execute instructions every clock cycle.
이러한 ATmega128 CPU 내의 범용 레지스터 파일은 도 4에 도시된 바와 같이, ALU가 1 클럭 사이클 안에 레지스터 파일로부터 두 개의 데이터에 대하여 명령어가 수행되고, 그 결과값이 다시 레지스터 파일에 저장된다. 32개의 레지스터 중 6개의 레지스터(R31:R30, R29:R28, R27:R26)는 세 개의 16-bit 간접주소 레지스터(X, Y, Z)로 사용되어 효율적인 주소 계산이 가능하다. 나머지 26개의 레지스터들을 이용하여 유한체 연산을 수행할 수 있다. The general register file in the ATmega128 CPU is executed by the ALU for two data items from the register file in one clock cycle, and the result is stored in the register file again, as shown in Fig. Six of the 32 registers (R31: R30, R29: R28, R27: R26) are used as three 16-bit indirect address registers (X, Y, Z) The remaining 26 registers can be used to perform finite field operations.
이러한 8 비트 기반 ATmega128 프로세서 환경에서 Fast reduction 알고리즘을 기약다항식 에 적용하면 도 5와 같이 나타낼 수 있다. 특히, 8 비트 프로세서 환경에서 271 비트 원소는 34개의 8 비트 워드로 구성되는데, 유한체의 감산 연산 시에는 유한체 곱셈 연산과 유한체 제곱 연산의 결과를 입력받기 때문에 최대 68개의 워드를 입력받는다. 따라서 C[67]부터 C[0]까지의 입력을 C[33] 부터 C[0]으로 감산 연산이 진행된다. In this 8 bit based ATmega128 processor environment, the fast reduction algorithm is called the irreducible polynomial It can be expressed as shown in FIG. In particular, in an 8-bit processor environment, the 271-bit element is composed of 34 8-bit words. When subtracting a finite field, the result of finite field multiplication and finite field operation is input. Therefore, the subtraction operation from C [67] to C [0] is performed from C [33] to C [0].
도 6은 본 발명에 따른 타원 곡선 암호용 이진체의 감산 방법을 수행하는데 있어서, 감산 연산에 대한 루프 카운터의 동작과정을 나타낸 도면이다. FIG. 6 is a flowchart illustrating an operation of a loop counter for a subtraction operation in the method of subtracting an elliptic curve cryptographic binary according to the present invention.
도 6에 도시된 바와 같이, 유한체 곱셈 연산과 유한체 제곱 연산의 결과값을 기약다항식 으로 감산하는 루프 카운터 가 66에서 62에 대하여 동작할 때를 나타낸 것이다. As shown in FIG. 6, the result of the finite-field multiplication operation and the finite field multiplication operation is called the irreducible polynomial Loop counter Lt; RTI ID = 0.0 > 66 < / RTI >
도 6에서 한 줄 밑줄로 표기된 연산은 데이터가 메모리로부터 중복 로드하거나 결과값을 중복 저장하는 부분을 표시한 것이다. 이처럼 한줄 밑줄로 표기된 C[32], C[30], C[29], C[28]은 5번의 루프를 수행할 때 각각 두 번씩 메모리로부터 로드하고 감산 연산을 수행하여 갱신한 후에 두 번씩 다시 저장한다. 이와 같이 중복 로드하거나 저장하는 값들을 레지스터에서 재사용하여 메모리 접근으로 인한 부하를 줄일 수 있다.In FIG. 6, an underline of a line indicates a portion where data is redundantly loaded from memory or a result value is redundantly stored. In this case, C [32], C [30], C [29], and C [28], which are underlined in a single line, are loaded twice from the memory each time when five loops are executed, . This redundant load or store value can be reused in the register to reduce the load due to memory access.
또한 루프 카운터 가 66일 때와 가 62일 때 두줄 밑줄로 표기된 C[54]를 각각 로드하여 감산 연산 루프를 수행하여 다시 저장하게 된다. 이처럼 루프 카운터가 진행됨에 따라서 동일한 워드를 다시 호출하는 경우가 발생하게 된다. 따라서 이를 효율적으로 처리할 수 있는 방법이 필요하다.The loop counter When it was 66 Is 62, C [54] indicated by two underlines are loaded, respectively, and a subtraction operation loop is performed and stored again. As the loop counter proceeds, the same word is called again. Therefore, there is a need for a method that can efficiently handle this.
감산하고자하는 대상의 상위 워드를 살펴보면 부터 차례로 8 비트씩 각각 하나의 워드를 형성한다. 여기서 각 워드들은 오직 1-비트 레프트 시프트(1-bit left shift)와 워드 시프트 연산을 통해 감산을 수행한다. Looking at the upper word of the object to be subtracted One word each in 8-bit order. Where each word performs subtraction through only a 1-bit left shift and a word shift operation.
예를 들어, 이고 272와 208, 176, 112의 차는 각각 64, 32, 64로 모두 8의 배수이므로 워드 시프트 연산으로 처리 가능하고 는 1-비트 레프트 시프트로 처리하여 감산이 가능하다. E.g, And the difference between 272 and 208, 176, and 112 is 64, 32, and 64, which are all multiples of 8, so that they can be processed by a word shift operation Can be processed by a 1-bit left shift and subtracted.
도 7은 감산 과정에서 각 워드가 감산되어 최종적으로 이동하는 워드를 나타낸 테이블이다. FIG. 7 is a table showing words that are finally shifted by subtracting each word in the subtraction process.
도 7에 도시된 바와 같이, 감산된 1번째 워드 C[0]에는 C[34], C[42], C[46], C[50], C[54], C[62] 워드가 각각 1 비트 레프트 시프트된 상태로 배타적 논리합(XOR) 연산이 발생한다. 또한 15 번째 워드 C[14]에는 C[48], C[56], C[60], C[64]가 1비트 레프트 시프트된 상태와 C[34], C[42], C[46], C[50], C[54], C[62]가 배타적 논리합 연산이 발생한다. C [34], C [42], C [46], C [50], C [54], and C [62] are written in the first word C [0] An exclusive-OR (XOR) operation is performed in a state of being left-shifted by one bit. C [34], C [42], C [46], and C [64] are shifted leftward by one bit in the fifteenth word C [ , C [50], C [54], and C [62] generate an exclusive OR operation.
이러한 특성을 고려하여 효율적으로 워드를 레지스터로 로드하여 재사용하고 감산 연산이 끝난 후에만 메모리에 저장함으로써 메모리 접근 연산을 최소화 할 수 있다. Considering these characteristics, memory access operations can be minimized by efficiently loading the word into the register and reusing it and storing it in the memory only after the subtraction operation is completed.
이에 따라, 본 발명에 따른 감산 연산을 수행 시 메모리에서 로드하는 연산은 C[0]부터 C[41]까지 1회, C[42] 부터 C[67]까지는 2회가 필요하며 연산이 끝난 후 메모리로 저장하는 연산은 각 워드의 연산이 종료된 후에만 저장하기 때문에 C[0]부터 C[33]까지 1회만 사용하게 된다. Accordingly, in the case of performing the subtraction operation according to the present invention, the operation of loading from the memory requires 1 time from C [0] to C [41], twice from C [42] to C [67] Since the operation to be stored in memory is stored only after the operation of each word is completed, it is used only once from C [0] to C [33].
특히, 본 발명의 타원 곡선 암호용 이진체의 감산 방법은 레지스터 내부의 데이터에 대하여 수행되는 연산에는 1클럭 사이클만이 소요되는데 비하여, 메모리에 저장된 데이터를 레지스터로 로드하거나 연산의 결과값을 다시 메모리에 저장하는 데는 2클럭 사이클이 소모된다. 따라서 감산 알고리즘에 메모리 로드와 저장을 최소한으로 설계하여 어셈블리 언어로 구현하였다. In particular, in the method of subtracting an elliptic curve cryptographic binary according to the present invention, only one clock cycle is required for an operation performed on data in a register, while the data stored in the memory is loaded into a register, Lt; RTI ID = 0.0 > 2 < / RTI > clock cycles. Therefore, memory load and storage are minimized and implemented in assembly language.
도 8은 종래 기술에 따른 Fast reduction 방법과 본 발명에 따른 감산 방법을 각각 어셈블리 언어로 구현 시, 성능을 클럭 사이클 단위로 비교한 표이다.FIG. 8 is a table comparing performance in terms of clock cycles when implementing the fast reduction method according to the related art and the subtraction method according to the present invention in an assembly language.
도 8에 도시된 바와 같이, 에서 기약다항식 에 Fast reduction을 구현 시 1,084 클럭 사이클이 소모되었고, 제안하는 감산 연산 알고리즘을 사용하여 구현 시 482 클럭 사이클이 소모되어 약 56% 정도 속도가 향상된 것을 알 수 있다. As shown in Fig. 8, In this case, , It is shown that 1,084 clock cycles are consumed when fast reduction is implemented, and 482 clock cycles are consumed in the implementation using the proposed subtraction algorithm, resulting in a speed improvement of about 56%.
다만 이러한 수치는 본 발명인 이진체의 감산 방법에 대한 향상율이고, 실제 공개키 암호시스템의 구현을 위해서는 부가적인 처리들이 필수적으로 추가된다. 예를 들어, 입력 또는 출력 메모리의 주소 값이 들어 있는 레지스터는 사용하기 전에 미리 push 명령어로 스택에 넣었다가 감산이 종료된 후에 다시 pop 명령어로 주소 값을 받아와야 다음 연산을 진행하는데 지장을 주지 않는다. 추가 연산으로 인해 종래 기술에 따른 Fast reduction은 1,084 클럭 사이클에서 1,126 클럭 사이클로 늘어나고, 본 발명에서는 482 클럭 사이클에서 524 클럭 사이클로 늘어난다. 추가된 클럭 사이클은 전체적인 향상율을 저하시키게 된다. 따라서 실질적인 감산 연산 향상율은 약 53%로 나타났다.However, such a value is an improvement rate of the subtraction method of the present invention, and additional processing is indispensably added to realize a real public key cryptosystem. For example, a register that contains an address value in an input or output memory is put into the stack with the push instruction before using it, and then the address value is received by the pop instruction again after the subtraction is finished, . Due to the additional operation, the fast reduction according to the prior art increases from 1,084 clock cycles to 1,126 clock cycles, and in the present invention, from 482 clock cycles to 524 clock cycles. The added clock cycle lowers the overall improvement rate. Therefore, the actual improvement ratio of the subtraction operation is about 53%.
본 발명의 실시예들은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 매체에 기록되는 프로그램 명령은 본 발명을 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다. 상기된 하드웨어 장치는 본 발명의 일 실시예들의 동작을 수행하기 위해 적어도 하나의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.Embodiments of the present invention may be implemented in the form of program instructions that can be executed on various computer means and recorded on a computer readable medium. The computer-readable medium may include program instructions, data files, data structures, and the like, alone or in combination. The program instructions recorded on the medium may be those specially designed and constructed for the present invention or may be available to those skilled in the art of computer software. Examples of computer-readable media include magnetic media such as hard disks, floppy disks and magnetic tape; optical media such as CD-ROMs and DVDs; magnetic media such as floppy disks; Examples of program instructions, such as magneto-optical and ROM, RAM, flash memory and the like, can be executed by a computer using an interpreter or the like, as well as machine code, Includes a high-level language code. The hardware devices described above may be configured to operate as at least one software module to perform operations of one embodiment of the present invention, and vice versa.
본 발명의 타원 곡선 암호용 이진체의 감산 방법은 메모리에 저장된 데이터를 레지스터로 로드하거나 연산의 결과값을 다시 메모리에 저장하는 데는 2 클럭 사이클이 소모됨에 따라, 감산 알고리즘에 메모리 로드와 저장을 최소한으로 설계하여 어셈블리 언어로 구현함으로써, 감산 연산 향상율이 증가할 수 있는 효과가 있다. The method of subtracting an elliptic curve cryptography binary according to the present invention requires a memory load and a storage to be minimized by a subtraction algorithm as the data stored in the memory is loaded into the register or the result of the operation is stored in the memory again for 2 clock cycles. So that the improvement rate of the subtraction operation can be increased.
상기에서는 본 발명의 바람직한 실시 예에 대하여 설명하였지만, 본 발명은 이에 한정되는 것이 아니고 본 발명의 기술 사상 범위 내에서 여러 가지로 변형하여 실시하는 것이 가능하고 이 또한 첨부된 특허청구범위에 속하는 것은 당연하다.While the present invention has been described in connection with what is presently considered to be practical exemplary embodiments, it is to be understood that the invention is not limited to the disclosed embodiments, but, on the contrary, Do.
Claims (4)
감산부가 상기 레지스터에 로드된 복수 개의 워드에 대하여 삼항 또는 오항 다항식으로 이루어지는 기약다항식으로 감산 연산하는 단계;를 포함하되,
상기 기약다항식으로 감산 연산하는 단계는,
상기 복수 개의 워드를 1-비트 레프트 시프트 및 워드 시프트 연산을 통해 감산하는 것을 특징으로 하는 타원 곡선 암호용 이진체의 감산 방법.
Inputting a plurality of words representing the order of the binary input unit from the memory unit and loading the words into the register; And
Subtracting a plurality of words loaded in the register by a ternary polynomial of a ternary or a five-polynomial,
Wherein the step of performing the subtraction operation with the irreducible polynomial expression comprises:
And subtracting the plurality of words by a 1-bit left shift and a word shift operation.
상기 메모리부가 감산된 상기 복수 개의 워드를 갱신하여 내부에 저장하는 단계;
를 더 포함하는 것을 특징으로 하는 타원 곡선 암호용 이진체의 감산 방법.
The method according to claim 1,
Updating the plurality of words by the memory unit and storing the updated words;
Further comprising the steps of: (a) inputting a binary code for the elliptic curve cryptography code;
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020140194809A KR101636809B1 (en) | 2014-12-31 | 2014-12-31 | Binary field reduction method for Elliptic Curve Cryptography |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020140194809A KR101636809B1 (en) | 2014-12-31 | 2014-12-31 | Binary field reduction method for Elliptic Curve Cryptography |
Publications (1)
Publication Number | Publication Date |
---|---|
KR101636809B1 true KR101636809B1 (en) | 2016-07-07 |
Family
ID=56500030
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020140194809A KR101636809B1 (en) | 2014-12-31 | 2014-12-31 | Binary field reduction method for Elliptic Curve Cryptography |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR101636809B1 (en) |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20090090881A (en) * | 2008-02-22 | 2009-08-26 | 고려대학교 산학협력단 | Method and apparatus of elliptic curve cryptography processing in sensor mote and recording medium using it |
KR20100025403A (en) | 2008-08-27 | 2010-03-09 | 고려대학교 산학협력단 | Parallel apparatus and method for polynomial basis multiplication over gf(2^n), and microprocessor using thereof |
KR20100026358A (en) * | 2008-08-29 | 2010-03-10 | 고려대학교 산학협력단 | Method and apparatus of elliptic curve cryptographic operation based on block indexing on sensor mote and recording medium using by the same |
-
2014
- 2014-12-31 KR KR1020140194809A patent/KR101636809B1/en active IP Right Grant
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20090090881A (en) * | 2008-02-22 | 2009-08-26 | 고려대학교 산학협력단 | Method and apparatus of elliptic curve cryptography processing in sensor mote and recording medium using it |
KR20100025403A (en) | 2008-08-27 | 2010-03-09 | 고려대학교 산학협력단 | Parallel apparatus and method for polynomial basis multiplication over gf(2^n), and microprocessor using thereof |
KR20100026358A (en) * | 2008-08-29 | 2010-03-10 | 고려대학교 산학협력단 | Method and apparatus of elliptic curve cryptographic operation based on block indexing on sensor mote and recording medium using by the same |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Hossain et al. | High‐performance elliptic curve cryptography processor over NIST prime fields | |
JP6058245B2 (en) | Random number expansion apparatus, random number expansion method and random number expansion program | |
US11983280B2 (en) | Protection of cryptographic operations by intermediate randomization | |
Koziel et al. | Low-resource and fast binary edwards curves cryptography | |
Azarderakhsh et al. | Efficient implementations of a quantum-resistant key-exchange protocol on embedded systems | |
US9405729B2 (en) | Cryptographic method comprising a modular exponentiation operation | |
Yalçin | Compact ECDSA engine for IoT applications | |
US9571281B2 (en) | CRT-RSA encryption method and apparatus | |
US20150180652A1 (en) | Modular exponentiation optimization for cryptographic systems | |
Seo et al. | Optimized SIKE Round 2 on 64-bit ARM | |
US9841950B2 (en) | Modular multiplier and modular multiplication method thereof | |
Elkhatib et al. | Cryptographic engineering a fast and efficient SIKE in FPGA | |
US11502836B2 (en) | Method for performing cryptographic operations on data in a processing device, corresponding processing device and computer program product | |
US20090028325A1 (en) | Circuit arrangement for and method of performing an inversion operation in a cryptographic calculation | |
Kim et al. | Efficient Combined Algorithm for Multiplication and Squaring for Fast Exponentiation over Finite Fields | |
Bard | Accelerating cryptanalysis with the method of four russians | |
KR101636809B1 (en) | Binary field reduction method for Elliptic Curve Cryptography | |
JP7055142B2 (en) | How to generate prime numbers for cryptographic applications | |
WO2023141934A1 (en) | Efficient masking of secure data in ladder-type cryptographic computations | |
Jahani et al. | Efficient big integer multiplication and squaring algorithms for cryptographic applications | |
Gövem et al. | A fast and compact FPGA implementation of elliptic curve cryptography using lambda coordinates | |
Koç | A New Algorithm for Inversion mod $ p^ k$ | |
Das et al. | Secure public key hardware for IoT applications | |
KR101423947B1 (en) | Modular multiplication and modular exponentiation using extended NIST prime | |
US8605895B2 (en) | Computing the eth root of a number using a variant of the RSA algorithm (for even e's) |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant |