KR100974624B1 - Method and Apparatus of elliptic curve cryptography processing in sensor mote and Recording medium using it - Google Patents
Method and Apparatus of elliptic curve cryptography processing in sensor mote and Recording medium using it Download PDFInfo
- Publication number
- KR100974624B1 KR100974624B1 KR1020080016421A KR20080016421A KR100974624B1 KR 100974624 B1 KR100974624 B1 KR 100974624B1 KR 1020080016421 A KR1020080016421 A KR 1020080016421A KR 20080016421 A KR20080016421 A KR 20080016421A KR 100974624 B1 KR100974624 B1 KR 100974624B1
- Authority
- KR
- South Korea
- Prior art keywords
- elliptic curve
- polynomial
- intermediate result
- generating
- multiplication
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/60—Methods or arrangements for performing computations using a digital non-denominational number representation, i.e. number representation without radix; Computing devices using combinations of denominational and non-denominational quantity representations, e.g. using difunction pulse trains, STEELE computers, phase computers
- G06F7/72—Methods or arrangements for performing computations using a digital non-denominational number representation, i.e. number representation without radix; Computing devices using combinations of denominational and non-denominational quantity representations, e.g. using difunction pulse trains, STEELE computers, phase computers using residue arithmetic
- G06F7/724—Finite field arithmetic
- G06F7/725—Finite field arithmetic over elliptic curves
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F5/00—Methods or arrangements for data conversion without changing the order or content of the data handled
- G06F5/06—Methods or arrangements for data conversion without changing the order or content of the data handled for changing the speed of data flow, i.e. speed regularising or timing, e.g. delay lines, FIFO buffers; over- or underrun control therefor
- G06F5/08—Methods or arrangements for data conversion without changing the order or content of the data handled for changing the speed of data flow, i.e. speed regularising or timing, e.g. delay lines, FIFO buffers; over- or underrun control therefor having a sequence of storage locations, the intermediate ones not being accessible for either enqueue or dequeue operations, e.g. using a shift register
Abstract
센서 모트에서의 효율적인 타원 곡선 암호 연산 방법, 그 장치 및 이를 기록한 기록매체가 개시된다.Disclosed are an elliptic curve cryptographic calculation method, an apparatus and a recording medium recording the same.
본 발명에 따른 센서 모트에서의 효율적인 타원 곡선 암호 연산 방법은,An efficient elliptic curve cryptography method in the sensor mote according to the present invention,
8비트 기반의 유한체 의 두 원소인 에 있어서 상기 에 대한 다항식을 라하고, 상기 에 대한 다항식을 라고 할 때, 상기 및 를 이용하여 유한체 곱셈의 결과값 를 생성하는 센서 모트에서의 효율적인 타원 곡선 암호 연산 방법에 있어서, 상기 를 구성하는 j번째 워드(1 ≤ j ≤ t, 여기서 t는 상기 를 메모리에 저장하기 위해 필요한 워드의 개수)의 상위 4비트를 0으로 패딩하면서 오른쪽으로 쉬프트한 다항식 u1과 상기 를 구성하는 [j+1]번째 워드의 상위 4비트를 0으로 패딩하면서 오른쪽으로 쉬프트한 다항식 u2를 생성하는 단계; 상기 u1와 상기 를 곱한 다항식 Tu1 및 상기 u2와 상기 를 논리 곱한 다항식 Tu2를 이용하여 상기 의 제 1 중간 결과값을 생성하는 단계; 상기 제 1 중간 결과값을 4 비트 레프트 쉬프트(left shift) 하는 단계; 상기 를 구성하는 j번째 워드와 0x0F를 논리 곱한 다항식 v1과 상기 를 구성하는 [j+1]번째 워드와 0x0F를 논리 곱한 다항식 v2를 생성하는 단계; 상기 v1와 상기 를 곱한 다항식 Tv1 및 상기 v2와 상기 를 논리 곱한 다항식 Tv2를 이용하여 상기 의 제 2 중간 결과값을 생성하는 단계; 및 상기 제 1 중간 결과값의 4비트 레프트 쉬프트한 값과 상기 제 2 중간 결과값을 이용하여 상기 유한체 곱셈의 결과값 를 생성하는 단계를 포함한다.8-bit based finite field Two elements of Above Polynomials for Lago; Polynomials for When said, And Result of finite field multiplication using An efficient elliptic curve cryptography method in a sensor moat for generating the J j words (1 ≤ j ≤ t, where t is the And the polynomial u 1 shifted to the right while padding the upper 4 bits of the number of words needed to store in memory to 0, and Generating a polynomial u 2 shifted to the right while padding the upper 4 bits of the [j + 1] th word constituting the zero with 0; The u 1 and the Multiply by T u1 and u 2 and Using the polynomial T u2 multiplied by Generating a first intermediate result of; Left shifting the first intermediate result value by 4 bits; remind The polynomial v 1 obtained by logically multiplying the jth word constituting the s by 0x0F Generating a polynomial v 2 obtained by logically multiplying the [j + 1] th word and 0x0F constituting a; V 1 and above Polynomial T v1 and v 2 and Using the polynomial T v2 multiplied by Generating a second intermediate result of; And a result value of the finite field multiplication using the 4-bit left shifted value of the first intermediate result value and the second intermediate result value. Generating a step.
본 발명에 의하면, 8비트 센서 모트에서 구현된 타원 곡선 소프트웨어 구현 중에서 가장 뛰어난 성능을 제공하며, 의 타원 곡선 암호 구현을 포함하여 Atmega128 프로세서에서 C언어 또는 C 언어와 인라인 어셈블리(inline assembly)를 혼합하여 구현한 것들에 비하여 더욱 빠른 연산 속도를 제공하며, 본 발명은 8비트 Atmega128 프로세서에서 첫 번째 코블리츠(Koblitz) 커브의 구현으로 상기 커브상에서는 타원 곡선 두배 연산이 간단한 유한체 제곱 연산으로 대체될 수 있기 때문에 일반적인 커브에 비하여 더욱 빠른 연산 속도를 제공할 수 있는 효과가 있다.According to the present invention, it provides the best performance among the elliptic curve software implementations implemented in 8-bit sensor mote. It provides faster computational speed compared to the implementation of C language or C language and a mixture of inline assembly on the Atmega128 processor, including the implementation of elliptic curve cryptography of the present invention. By implementing a Koblitz curve, an elliptic curve doubling operation can be replaced by a simple finite field square operation on the curve, thereby providing a faster calculation speed than a general curve.
Description
본 발명은 타원 곡선 암호 연산에 관한 것으로, 특히 무선 센서 네트워크에서 사용되는 센서 모트의 일종인 미카즈(Micaz) 센서 모트에서 안전한 키 교환 및 전자 서명 서비스를 수행할 수 있는 센서 모트에서의 효율적인 타원 곡선 암호 연산 방법 및 그 장치에 관한 것이다.The present invention relates to elliptic curve cryptography, and in particular, an efficient elliptic curve in a sensor mote that can perform secure key exchange and digital signature service in a Micaz sensor mote, a kind of sensor mote used in a wireless sensor network. A cryptographic operation method and apparatus therefor.
최근 유비쿼터스 환경에서 센서 네트워크 기술이 IT839 정책의 일환으로 활성화되고 있으며, 이러한 센서 네트워크는 관리자의 부재와 무선 통신, 자원의 제약 등으로 인하여 공격자가 쉽게 접근하여 공격을 시도할 수 있다.Recently, sensor network technology has been activated as part of IT839 policy in ubiquitous environment, and this sensor network can be attacked easily by attacker due to absence of administrator, wireless communication, and resource limitation.
한편, 암호서비스에 대한 요구가 많아지면서 대칭키 알고리즘에서 발생된 키 관리 문제와 인증 문제를 해결하기 위한 알고리즘이 많이 연구되었다.On the other hand, as the demand for cryptographic services increases, many algorithms have been studied to solve key management and authentication problems that occur in symmetric key algorithms.
1976년 Diffie와 Hellman이 처음으로 공개키 암호 알고리즘의 개념을 소개하였다. 그 후 많은 알고리즘이 제안되었지만, 1978년 RSA가 소개되어 널리 사용되고 있다.In 1976, Diffie and Hellman first introduced the concept of a public key cryptographic algorithm. Since many algorithms have been proposed since 1978, RSA was introduced and widely used.
타원 곡선은 1985년 Kobiltz와 Miller에 의해 발표된 이후 꾸준히 연구되어 왔다.Elliptic curves have been steadily studied since they were published by Kobiltz and Miller in 1985.
타원 곡선 암호가 발표되었을 당시에는 새로운 암호에 대한 안전성 분석이 충분히 이루어지지 않았으므로 널리 사용되지 못했다.When the elliptic curve cipher was released, it was not widely used because the security analysis of the new cipher was insufficient.
이 후, 많은 연구자들에 의한 연구 결과에 따르면 같은 안전도에서 비교할 때, RSA에 비해 훨씬 빠르고 효율적이며 짧은 키 길이를 가지는 장점이 있다.Since then, research by many researchers has shown that compared to the same safety, it is much faster, more efficient and has a shorter key length than RSA.
예를 들면, 타원 곡선 암호의 160비트는 RSA의 1024비트와 같은 안전도를 가진다. 이에 따라서 타원 곡선 암호는 무선 인터넷이나 스마트카드 등 제한된 연산능력을 가지는 하드웨어에 적합한 암호 시스템으로 주목받게 되었다.For example, 160 bits of an elliptic curve cipher have the same security as 1024 bits of the RSA. Accordingly, elliptic curve cryptography has attracted attention as a cryptographic system suitable for hardware with limited computing power, such as wireless Internet or smart card.
한편, 다양한 차수 을 사용하는 상호 간의 거래에 있어서 Versatile 프로세서를 사용함으로써 호환성을 높일 수 있다.Meanwhile, various orders Versatile processors can be used to increase compatibility in transactions between two parties.
많은 암호시스템에서는 유한체 에서의 연산을 사용한다. 이는 일반적인 컴퓨터 상에서는 의 성능이 의 성능을 능가하기 때문이다.In many cryptosystems, finite Use the operation in. On a typical computer Performance Because it surpasses the performance.
그러나, 센서 모트와 같은 저전력 장치에서는 기본 워드의 크기가 작고, 또한 의 유한체 연산에 대한 명령어가 제공되지 않기 때문에 에서의 타원 곡선의 구현이 더 효율적으로 수행되고 있다.However, in low power devices such as sensor motes, the basic word size is small, and Because no instruction is provided for the finite field operation of The implementation of an elliptic curve in is performed more efficiently.
실제로, 유한체에서의 연산을 더욱 빠르게 하기 위하여, 많은 프로세서가 제안되고 있다. 그러나, 대부분 고정된 유한체에서의 연산을 다루고 있고, 이 경우에는 체의 변화나 파라미터 변화가 있을 경우 새로운 프로세서가 필요하게 된다.Indeed, many processors have been proposed to speed up operations on finite bodies. However, most of them deal with operations on fixed finite bodies, in which case new processors are required in the case of sieve changes or parameter changes.
지금까지 공개키 암호 시스템, 특히 타원곡선 암호(Elliptic Curve Cryptography:ECC)를 센서 네트워크에 적용하는 것에 관한 많은 연구가 진행되어 왔다. 이러한 연구들은 타원곡선 암호 시스템을 실제로 구현하여 동작시간과 코드 크기에 관한 성능을 제시함으로써 센서 네트워크에 타원곡선 암호를 적용하는 것은 가능하다고 결론지었다.Until now, much research has been conducted on the application of public key cryptosystems, in particular Elliptic Curve Cryptography (ECC) to sensor networks. These studies concluded that it is possible to apply elliptic curve cryptography to sensor networks by actually implementing an elliptic curve cryptographic system and presenting performance on time and code size.
지금까지 상대적으로 만족할만한 성능을 제시한 타원곡선 암호 시스템은 모두 에 기반을 두고 있다.All of the elliptic curve cryptosystems that have presented relatively satisfactory performance Is based on.
반면, 에 기반을 둔 구현들은 센서 네트워크에 적용할 만큼 충분한 성능을 제시하지 못하고 있다.On the other hand, Based implementations do not provide enough performance for sensor networks.
지금까지의 센서 모트 상에서 과 에 기반을 둔 여러 타원 곡선 암호 소프트웨어가 구현되었으나, 이러한 구현들은 센서 네트워크에서 타원 곡선 암호의 실행가능성을 검증하기 위하여 개발되었다.On the sensor morte so far and Although several elliptic curve cryptography software based on is implemented, these implementations were developed to verify the feasibility of elliptic curve cryptography in the sensor network.
Malan은 8비트 센서 모트에서 에 기반을 둔 첫 번째 구현인 EccM을 개발하였다. 그들은 UC Berkeley에서 개발된 TinySec 암호 모듈에 키 분배 메커니즘을 제공하기 위하여 타원곡선 암호를 이용하였다.Malan is an 8-bit sensor We developed the first implementation based on EccM. They used elliptic curve cryptography to provide a key distribution mechanism for the TinySec cryptographic module developed at UC Berkeley.
EccM의 코드 크기는 34342 바이트이며, 하나의 공개키를 생성하는데 34초가 걸린다.The code size of EccM is 34342 bytes and it takes 34 seconds to generate one public key.
여기서, Yan과 shi 센서 모트와 같은 작은 임베디드 장치에서 에 기 반을 둔 타원곡선 암호의 소프트웨어 구현은 여전히 느리다고 지적하였으며, 8비트 Atmega128 프로세서에서 상의 빠른 모듈러 감산을 적용한 타원곡선 암호를 구현하였다.Here, in small embedded devices like Yan and shi sensor mort Pointed out that the software implementation of an elliptic curve cryptography based algorithm is still slow. An elliptic curve cryptography with fast modular subtraction is implemented.
Yan과 shi가 구현한 코드 크기는 11592 바이트이며 한 번의 스칼라 곱셈을 연산하는데 13.9초가 걸렸다.The code size implemented by Yan and shi was 11592 bytes, which took 13.9 seconds to compute a single scalar multiplication.
Eberle 외는 상에서의 유한체 연산들이 저전력 마이크로프로세서에 의해서 효율적으로 지원되지 않기 때문에 매우 느리다고 지적하였다. 또한 이들은 명령어 집합 확장을 이용하는 추가적인 아키텍쳐 확장을 통하여 상의 타원곡선 연산이 상에서의 연산보다 빨라질 수 있다고 주장하였다.Eberle et al. It is pointed out that the finite field operations are very slow because they are not efficiently supported by low-power microprocessors. They also use additional architecture extensions that use instruction set extensions. Elliptic curve operations He argues that it can be faster than computation on the fly.
실제로 상에서의 스칼라 곱셈을 어셈블리 언어로 구현한 결과 4.14초가 걸렸지만 아키텍쳐 확장을 이용한 경우 0.29초만 걸렸다.in reality The implementation of scalar multiplication in the assembly language took 4.14 seconds, but only 0.29 seconds with the architecture extension.
이 결과는 상의 타원곡선 암호를 저전력 프로세서 상에서 구현할 때 소프트웨어로 구현하는 것보다는 하드웨어로 구현하는 것이 더욱 바람직하다는 주장을 뒷받침한다.This result is The elliptic curve cryptography on the low-power processor supports the argument that hardware implementations are more desirable than software implementations.
Blab와 Zitterbart는 위에서 ECDH, ECDSA 그리고 El-Gamal을 구현하고, 이것들의 성능을 EccM과 비교하였다. 이들의 구현은 서명을 생성할 때와 검증할 때 각각 6.88초와 24.17초가 걸리며 코드의 길이는 75088 바이트였다.Blab and Zitterbart We implemented ECDH, ECDSA and El-Gamal above and compared their performance with EccM. Their implementation took 6.88 seconds and 24.17 seconds for signature generation and verification, respectively, and the code was 75088 bytes in length.
Gura 외는 센서 네트워크에서 공개키 암호 시스템의 적용가능성을 증명하기 위하여 8비트 Atmega128 프로세서 상에서 어셈블리 코드와 명령어 집합 확장을 이용하여 RSA와 타원 곡선 암호의 성능을 비교하였다.Gura et al. Compared the performance of RSA and elliptic curve cryptography using assembly code and instruction set extensions on an 8-bit Atmega128 processor to demonstrate the applicability of a public key cryptosystem in sensor networks.
구현된 타원곡선 암호는 한 번의 스칼라 곱셈을 연산하는데 0.81초가 걸리며 이것은 센서 네트워크에서 타원 곡선 암호의 사용가능성을 뒷받침한다.The implemented elliptic curve cryptography takes 0.81 seconds to compute one scalar multiplication, which supports the availability of elliptic curve cryptography in the sensor network.
그들은 또한 유한체 곱셈 연산중에 메모리 접근 명령의 수를 줄이기 위하여 오퍼랜드 곱셈 방식과 프로덕트 곱셈 방식의 장점을 결합하여 최적화된 모듈로 감산, 슬라이딩 윈도우 스칼라 곱셈, 자코비안(Jacobian) 좌표계, 그리고 혼합 곱셈/제곱 알고리즘을 적용하였다.They also combine the advantages of operand multiplication and product multiplication to reduce the number of memory access instructions during finite multiplication operations, with optimized modulo subtraction, sliding window scalar multiplication, Jacobian coordinate systems, and mixed multiplication / square. The algorithm was applied.
유한체 곱셈, 제곱 감산과 같은 성능의 핵심 부분을 인라인 어셈블리로 구현하여 하나의 서명을 생성하고 검증하는데 각각 2초와 2.43 초가 걸리며, 이때의 코드 크기는 19308 바이트였다. Key parts of the performance, such as finite field multiplication and square subtraction, were implemented in inline assembly to generate and verify a single signature, which took 2 and 2.43 seconds, respectively, with a code size of 19308 bytes.
C언어로 구현된 TinyECC는 15872 바이트의 줄어든 코드가 사용되지만 서명을 생성하고 검증하는데 6.26초와 7.92초가 소모된다.TinyECC, implemented in C, uses 15872 bytes of reduced code, but takes 6.26 seconds and 7.92 seconds to generate and verify the signature.
지금까지 8비트 워드 크기를 사용하는 저전력 장치에서 소프트웨어로 구현된 타원곡선 암호 시스템의 성능은 상에 기반을 둔 것들이 상에 기반을 둔 것들보다 더욱 뛰어난 성능을 보였다.To date, the performance of software implemented elliptic curve cryptosystems in low power devices using 8-bit word size Based on the awards It outperformed those based on awards.
이러한 기존의 결과들을 보면 저전력 장치에서 위의 타원곡선 암호의 소프트웨어 구현이 에서의 것보다 더욱 효율적인 것으로 보이며, 의 사용은 하드웨어적으로 구현될 때에만 적합한 것으로 보인다.These existing results show that in low power devices The software implementation of the elliptic curve cipher above Seems to be more efficient than that of The use of X seems to be suitable only when implemented in hardware.
이와 같이, 현재까지 센서 모트에서 구현된 타원곡선 암호 시스템의 경우, 연산 시간이 느리고 구현 코드가 크기 때문에 자원이 제약된 센서 모트에서 사용되기에 충분하지 않다. 뿐만 아니라, 타원 곡선 암호 시스템 연산에 있어서 수행되는 상의 곱셈과 감산 과정에서 불필요한 중복된 메모리 접근으로 인하여 타원 곡선 암호시스템의 성능을 떨어뜨리는 문제점이 있다.As such, in the case of an elliptic curve cryptographic system implemented in the sensor motte up to now, the operation time is slow and the implementation code is large, which is not sufficient to be used in the resource constrained sensor mote. As well as the elliptic curve cryptosystem There is a problem that the performance of the elliptic curve cryptographic system is degraded due to unnecessary redundant memory accesses in the multiplication and subtraction processes.
따라서, 본 발명이 해결하고자 하는 첫 번째 과제는 저전력 장치의 프로세서에서의 유한체 연산을 명령어 레벨에서 제공하지 않으므로, 이를 연산하기 위해서는 많은 메모리 접근이 필요하게 되는바, 이에 대한 중복된 연산을 제거함으로써 상에서의 타원 곡선 암호 시스템의 성능을 향상시킬 수 있는 센서 모트에서의 효율적인 타원 곡선 암호 연산 방법을 제공하는 것이다.Therefore, since the first problem to be solved by the present invention does not provide a finite field operation in the processor of the low-power device at the instruction level, it requires a lot of memory access to calculate it, by eliminating the redundant operation The present invention provides an efficient elliptic curve cryptography method in the sensor mote that can improve the performance of the elliptic curve cryptographic system.
또한, 본 발명이 해결하고자 하는 두 번째 과제는 상기 센서 모트에서의 효율적인 타원 곡선 암호 연산 방법을 이용한 센서 모트에서의 효율적인 타원 곡선 암호 연산 장치를 제공하는 것이다.In addition, a second problem to be solved by the present invention is to provide an efficient elliptic curve cryptography device in the sensor mote using an efficient elliptic curve cryptography method in the sensor mote.
본 발명이 해결하고자 하는 세 번째 과제는 상기 센서 모트에서의 효율적인 타원 곡선 암호 연산 방법을 컴퓨터에서 수행할 수 있도록 프로그램으로 기록된 기록매체를 제공하는 것이다.A third problem to be solved by the present invention is to provide a recording medium recorded by a program so that the computer can perform an efficient elliptic curve cryptographic calculation method in the sensor mote.
상기 첫 번째 과제를 해결하기 위하여 본 발명은,The present invention to solve the first problem,
8비트 기반의 유한체 의 두 원소인 에 있어서 상기 에 대한 다항식을 라하고, 상기 에 대한 다항식을 라고 할 때, 상기 및 를 이용하여 유한체 곱셈의 결과값 를 생성하는 센서 모트에서의 효율적인 타원 곡선 암호 연산 방법에 있어서, 상기 를 구성하는 j번째 워드(1 ≤ j ≤ t, 여기서 t는 상기 를 메모리에 저장하기 위해 필요한 워드의 개수)의 상위 4비트를 0으로 패딩하면서 오른쪽으로 쉬프트한 다항식 u1과 상기 를 구성하는 [j+1]번째 워드의 상위 4비트를 0으로 패딩하면서 오른쪽으로 쉬프트한 다항식 u2를 생성하는 단계; 상기 u1와 상기 를 곱한 다항식 Tu1 및 상기 u2와 상기 를 논리 곱한 다항식 Tu2를 이용하여 상기 의 제 1 중간 결과값을 생성하는 단계; 상기 제 1 중간 결과값을 4 비트 레프트 쉬프트(left shift) 하는 단계; 상기 를 구성하는 j번째 워드와 0x0F를 논리 곱한 다항식 v1과 상기 를 구성하는 [j+1]번째 워드와 0x0F를 논리 곱한 다항식 v2를 생성하는 단계; 상기 v1와 상기 를 곱한 다항식 Tv1 및 상기 v2와 상기 를 논리 곱한 다항식 Tv2를 이용하여 상기 의 제 2 중간 결과값을 생성하는 단계; 및 상기 제 1 중간 결과값의 4비트 레프트 쉬프트한 값과 상기 제 2 중간 결과값을 이용하여 상기 유한체 곱셈의 결과값 를 생성하는 단계를 포함하는 센서 모트에서의 효율적인 타원 곡선 암호 연산 방법을 제공한다.
여기서 상기 제 1 중간 결과값은 하기의 식(1)의 두 번째 행에 의해 연산되며, 상기 제 2 중간 결과값은 하기의 식(2)의 두 번째 행에 의해 연산되는 것을 특징으로 한다.
<식(1)>
.
<식(2)>
.8-bit based finite field Two elements of Above Polynomials for Lago; Polynomials for When said, And Result of finite field multiplication using An efficient elliptic curve cryptography method in a sensor moat for generating the J j words (1 ≤ j ≤ t, where t is the And the polynomial u 1 shifted to the right while padding the upper 4 bits of the number of words needed to store in memory to 0, and Generating a polynomial u 2 shifted to the right while padding the upper 4 bits of the [j + 1] th word constituting the zero with 0; The u 1 and the Multiply by T u1 and u 2 and Using the polynomial T u2 multiplied by Generating a first intermediate result of; Left shifting the first intermediate result value by 4 bits; remind The polynomial v 1 obtained by logically multiplying the jth word constituting the s by 0x0F Generating a polynomial v 2 obtained by logically multiplying the [j + 1] th word and 0x0F constituting a; V 1 and above Polynomial T v1 and v 2 and Using the polynomial T v2 multiplied by Generating a second intermediate result of; And a result value of the finite field multiplication using the 4-bit left shifted value of the first intermediate result value and the second intermediate result value. It provides an efficient elliptic curve cryptography calculation method in the sensor mote comprising generating a.
Wherein the first intermediate result is calculated by the second row of Equation (1), and the second intermediate result is calculated by the second row of Equation (2).
<Equation (1)>
.
<Equation (2)>
.
한편, 상기 및 는 4비트 성분으로 이루어진 것을 특징으로 한다.Meanwhile, And Is characterized by consisting of 4-bit components.
그리고, 상기 타원 곡선 암호 연산은 스칼라 곱셈 또는 ECDSA 연산을 포함하는 것을 특징으로 한다.The elliptic curve cryptographic operation is characterized by including a scalar multiplication or an ECDSA operation.
아울러, 상기 센서 모트는 미카즈 센서 모트를 포함하는 것을 특징으로 한다.In addition, the sensor mortise is characterized in that it comprises a Mikazu sensor mort.
여기서, 상기 미카즈 센서 모트는 8비트 Atmega128을 포함하는 것을 특징으로 한다.Here, the Micazu sensor mort is characterized in that it comprises an 8-bit Atmega128.
한편, 상기 유한체 곱셈의 결과값 를 생성하는 단계는 상기 상위 4비트에 해당되는 사전 연산 테이블을 호출함으로써 생성된 배타적 논리합 연산의 결과값을 4 비트 레프트 쉬프트(left shift) 하는 단계를 포함하는 것을 특징으로 한다.On the other hand, the result of the finite field multiplication The method may include: performing a 4-bit left shift on the result of the exclusive OR operation generated by calling a pre-operation table corresponding to the upper 4 bits.
아울러, 상기 유한체 곱셈의 결과값 를 생성하는 단계는 한 쌍의 연속한 사전 연산 테이블을 동시에 호출하고, 연속한 부분의 배타적 논리합 연산을 하나로 통합하여 배타적 논리합 연산의 결과값을 생성하는 단계를 포함하는 것을 특징으로 한다.In addition, the result of the finite field multiplication The step of generating may include simultaneously calling a pair of consecutive pre-computation tables and integrating the exclusive OR operations of the consecutive portions into one to generate a result of the exclusive OR operation.
그리고, 상기 유한체 곱셈의 결과값 는 상기 의 비트 인덱스를 , 를 상기 에 대한 비트 인덱스를 , 상기 에 대한 사전 연산 테이블을, 라 할 때, 수학식 에 의해 연산되는 것을 특징으로 한다.And the result of the finite field multiplication. Above Bit index of , Remind Bit index for , remind Pre-operation table for When we say, It is characterized in that calculated by.
그리고, 복수 회 중복으로 호출되는 중간 결과값에 대한 연산을 단일화하여 배타적 논리합 연산을 수행함으로써 모듈라 감산을 수행하는 단계를 더 포함하는 것을 특징으로 한다.The method may further include performing modular subtraction by performing an exclusive OR operation by unifying operations on intermediate result values called multiple times.
상기 두 번째 과제를 해결하기 위하여 본 발명은,The present invention to solve the second problem,
8비트 기반의 유한체 의 두 원소인 에 있어서 상기 에 대한 다항식을 라하고, 상기 에 대한 다항식을 라고 할 때, 상기 및 를 이용하여 유한체 곱셈의 결과값 를 생성하는 센서 모트에서의 효율적인 타원 곡선 암호 연산 장치에 있어서, 상기 의 상위 4비트에 대하여 각각의 비트 성분과 상기 각각의 사전 연산 테이블에 논리 곱 연산을 수행하여 제 1 중간 결과값을 생성하는 제 1 중간 결과값 생성부; 상기 의 하위 4비트에 대하여 각각의 비트 성분과 상기 각각의 사전 연산 테이블에 논리 곱 연산을 수행하여 제 2 중간 결과값을 생성하는 제 2 중간 결과값 생성부; 및 상기 생성된 제 1 중간 결과값을 호출하고 상기 의 워드에 상위 4비트를 스캔하여 상기 상위 4비트에 해당되는 사전 연산 테이블을 호출하고, 상기 생성된 제 2 중간 결과값을 호출하고 상기 의 워드에 하위 4비트를 스캔하여 상기 상위 4비트에 해당되는 사전 연산 테이블을 호출하는 호출부; 및 상기 호출부에 따라 호출된 제 1 중간 결과값 및 사전 연산 테이블에 따라 배타적 논리합 연산을 수행하고, 상기 생성된 제 2 중간 결과값 및 사전 연산 테이블을 호출하여 배타적 논리합 연산을 수행하여 상기 유한체 곱셈의 결과값 를 생성하는 배타적 논리합 연 산 수행부를 포함하는 센서 모트에서의 효율적인 타원 곡선 암호 연산 장치를 제공한다.8-bit based finite field Two elements of Above Polynomials for Lago; Polynomials for When said, And Result of finite field multiplication using An efficient elliptic curve cryptographic apparatus in a sensor moat for generating Each bit component for the upper 4 bits of A first intermediate result generator generating a first intermediate result by performing a logical product operation on each pre-operation table; remind And each bit component for the lower 4 bits of A second intermediate result generator generating a second intermediate result by performing a logical product operation on each pre-operation table; And calling the generated first intermediate result and Scan the upper 4 bits in a word of the to call a pre-operation table corresponding to the upper 4 bits, and call the generated second intermediate result value A caller which scans the lower 4 bits in a word of the and calls a dictionary operation table corresponding to the upper 4 bits; And perform an exclusive OR operation according to the first intermediate result value and the pre-operation table called according to the caller, and perform the exclusive OR operation by calling the generated second intermediate result value and the pre-operation table. Result of multiplication It provides an efficient elliptic curve cryptographic computing device in the sensor mote including an exclusive OR operation generating unit.
한편, 상기 및 는 4비트 성분으로 이루어진 것을 특징으로 한다.Meanwhile, And Is characterized by consisting of 4-bit components.
그리고, 상기 타원 곡선 암호 연산은 스칼라 곱셈 또는 ECDSA 연산을 포함하는 것을 특징으로 한다.The elliptic curve cryptographic operation is characterized by including a scalar multiplication or an ECDSA operation.
여기서, 상기 센서 모트는 미카즈 센서 모트를 포함하는 것을 특징으로 한다.Here, the sensor mott is characterized in that it comprises a Micazu sensor mott.
아울러, 상기 미카즈 센서 모트는 8비트 Atmega128을 포함하는 것을 특징으로 한다.In addition, the Micazu sensor mort is characterized in that it comprises an 8-bit Atmega128.
그리고, 상기 배타적 논리합 연산 수행부는 상기 상위 4비트에 해당되는 사전 연산 테이블을 호출함으로써 생성된 배타적 논리합 연산의 결과값을 4 비트 레프트 쉬프트(left shift) 하는 쉬프트 레지스터를 포함하는 것을 특징으로 한다.The exclusive OR operation performing unit may include a shift register for shifting the result value of the exclusive OR operation generated by calling the pre-operation table corresponding to the upper 4 bits.
한편, 상기 유한체 곱셈의 결과값 를 생성하는 단계는 한 쌍의 연속한 사전 연산 테이블을 동시에 호출하고, 상기 연속한 부분의 배타적 논리합 연산을 하나로 통합하여 배타적 논리합 연산의 결과값을 생성하는 단계를 포함하는 것을 특징으로 한다.On the other hand, the result of the finite field multiplication The step of generating may include simultaneously calling a pair of consecutive pre-operation tables and integrating the exclusive OR operations of the consecutive portions into one to generate a result of the exclusive OR operation.
또한, 상기 유한체 곱셈의 결과값 는 상기 의 비트 인덱스를 , 를 상기 에 대한 비트 인덱스를 , 상기 에 대한 사전 연산 테이블을, 라 할 때, 수학식 에 의해 연산되는 것을 특징으로 한다.In addition, the result of the finite field multiplication Above Bit index of , Remind Bit index for , remind Pre-operation table for When we say, It is characterized in that calculated by.
그리고, 복수 회 중복으로 호출되는 중간 결과값에 대한 연산을 단일화하여 배타적 논리합 연산을 수행함으로써 모듈라 감산을 수행하는 모듈라 감산 수행부를 더 포함하는 것을 특징으로 한다.The apparatus may further include a modular subtraction performing unit that performs modular subtraction by performing an exclusive OR operation by unifying operations on intermediate result values that are called multiple times.
상기 세 번째 과제를 해결하기 위하여 본 발명은,The present invention to solve the third problem,
상기 센서 모트에서의 효율적인 타원 곡선 암호 연산 방법을 컴퓨터에서 수행할 수 있도록 프로그램으로 기록된 기록매체를 제공한다.A recording medium recorded by a program is provided so that a computer can perform an efficient elliptic curve cryptographic calculation method in the sensor mote.
본 발명에 의하면, 에 기반을 둔 타원 곡선의 소프트웨어 구현을 통하여 기존의 상에서 구현된 모든 타원곡선 소프트웨어들의 성능을 능가할 뿐만 아니라, 의 타원 곡선 암호 구현을 포함하여 Atmega128 프로세서에서 C언어 또는 C 언어와 인라인 어셈블리(inline assembly)를 혼합하여 구현한 것들에 비하여 더욱 빠른 연산 속도를 제공하며, 8비트 Atmega128 프로세서에서 에 기반을 둔 Koblitz 커브를 구현할 수 있고, 이는 센서 모트 상에서 첫 번째 Koblitz 커브의 두 배 연산은 간단한 유한체 제곱연산들로 대체될 수 있기 때문에 일반적인 커브에 비하여 더욱 빠른 연산 속도를 제공할 수 있는 효과가 있다.According to the invention, The software implementation of elliptic curve based on Not only outperforms all the elliptic curve software implemented in Faster computational speed compared to implementations of C or a combination of C and inline assembly on the Atmega128 processor, including the implementation of elliptic curve cryptography for We can implement a Koblitz curve based on, which can provide faster computational speed compared to a normal curve because the double operation of the first Koblitz curve on the sensor mote can be replaced by simple finite field squares. There is.
전술한 바와 같이, 위의 타원곡선 암호의 소프트웨어 구현이 에서의 것보다 더욱 효율적인 것으로 보이며, 의 사용은 하드웨어적으로 구현될 때에만 적합한 것으로 일반적으로 알려진 기술에 대하여, 본 발명은 상에서의 유한체 곱셈이 상의 유한체 곱셈보다 빠르게 수행되는 센서 모트에서의 효율적인 타원 곡선 암호 연산 방법을 제공한다.As mentioned above, The software implementation of the elliptic curve cipher above Seems to be more efficient than that of With respect to techniques generally known to be suitable only when implemented in hardware, the present invention Finite field multiplication An efficient elliptic curve cryptographic algorithm is provided in the sensor mote that performs faster than the finite field multiplication.
이를 위하여 본 발명은, 상의 유한체 곱셈과 감산 연산에서 호출(Load)과 저장(Store)에 따른 많은 수의 메모리 접근 연산에서 불필요하게 중복된 메모리 접근 명령의 수를 줄일 수 있는 방법을 제시한다.To this end, the present invention, We present a method to reduce the number of unnecessary redundant memory access instructions in a large number of memory access operations due to load and store in finite field multiplication and subtraction operations.
본 발명에 따르면 에 기반을 둔 타원곡선의 소프트웨어 구현 중에서 가장 뛰어난 성능을 제공하며, 본 발명에 따른 센서 모트에서의 효율적인 타원 곡선 암호 연산 방법은 기존의 상에서 구현된 모든 타원곡선 소프트웨어들의 성능을 능가한다.According to the invention The elliptic curve-based software implementation provides the best performance, and the efficient elliptic curve cryptography method in the sensor mote according to the present invention is The performance of all elliptic curve software implemented in
뿐만 아니라, 의 타원 곡선 암호 구현을 포함하여 Atmega128 프로세서에서 C언어 또는 C 언어와 인라인 어셈블리(inline assembly)를 혼합하여 구현한 것들에 비하여 더욱 빠르다.As well as, It's faster than the C- or C-language and inline assembly implementation on the Atmega128 processor, including the implementation of elliptic curve cryptography.
그리고, 본 발명은 센서 모트인 미카즈(micaz) 센서 모트에 따른 8비트 Atmega128 프로세서에서 에 기반을 둔 Koblitz 커브를 구현할 수 있고, 이는 센서 모트 상에서 첫 번째 Koblitz 커브의 두 배 연산은 간단한 유한체 제곱연산들로 대체될 수 있기 때문에 일반적인 커브에 비하여 더욱 빠른 연산 속도를 제공할 수 있다.In addition, the present invention is an 8-bit Atmega128 processor according to the sensor mote (micaz) sensor mote A Koblitz curve based on can be implemented, which can provide faster computational speeds than conventional curves since the double operation of the first Koblitz curve on the sensor mote can be replaced by simple finite field squares.
이하, 본 발명에 적용되는 타원곡선 암호 시스템의 개요에 대하여 상술하기로 한다.Hereinafter, an outline of an elliptic curve cryptographic system applied to the present invention will be described in detail.
일반적으로 유한체 F상에서 정의되는 바이어슈트라스(weierstrass) 식을 만족하는 해의 집합은 항등원 역할을 하는 무한원점과 함께 아벨군을 형성하고, 이는 하기의 수학식 1과 같다. 하기 수학식 1에서 x 및 y 변수는 좌표 축을 의미한다.In general, a set of solutions satisfying a Weierstrass equation defined on a finite field F forms an Abel group with an infinite point serving as an identity, which is represented by
여기서, F의 지표가 2인 경우, 상기의 수학식 1은 하기의 수학식 2과 같이 단순화 될 수 있다.Here, when the index of F is 2,
여기서, 아벨군의 규칙에 의거하여 타원곡선 상에 존재하는 두 점 과 의 합의 결과 는 여전히 타원 곡선 위에 존재한다. 서로 다른 두 점의 연산 은 타원 곡선 점 덧셈 연산(Elliptic Curve point ADDition:ECADD)이라고 불리고, 같은 점을 더하는 연산은 타원 곡선 점 두배 연산(Elliptic Curve point DouBLing:ECDBL)으로 불린다.Here, two points on the elliptic curve according to Abel's rule and Consensus result of Is still on the elliptic curve. The operation of two different points is called elliptic curve point addition (ECADD), and the operation of adding the same point is called elliptic curve point doubling (ECDBL).
곡선 상의 임의의 두 점을 각각 , 라 할 때, 서로 다른 값을 가지는 및 에 대하여 상기 과 의 합을 라 하면, 상기 의 아핀 좌표는 하기의 수학식 3과 같이 연산될 수 있다.Each of the two random points on the curve , When we say that different values And About above and Sum of If I say Affine coordinate of may be calculated as shown in
아핀 좌표계에서 ECADD와 ECDBL은 각각 1번의 유한체 역원연산과 두 번의 유한체 곱셈연산을 필요로 한다. 역원 연산이 곱셈 연산에 비하여 막대한 부하를 가져올 경우 사영 좌표계를 사용하는 것이 유리하다.In the affine coordinate system, ECADD and ECDBL require one finite body inverse operation and two finite body multiplication operations, respectively. It is advantageous to use the projection coordinate system if the inverse operation results in a heavier load than the multiplication operation.
예를 들어, Lopez-Dahab(LD) 사영 좌표계에서 ECADD와 ECDBL은 각각 14번의 곱셈과 4번의 곱셈을 요구한다.For example, in the Lopez-Dahab (LD) projection coordinate system, ECADD and ECDBL require 14 multiplications and 4 multiplications, respectively.
따라서, 구현 환경에서, 가 역원이고, 이 곱셈인 경우에 을 만족하면, LD 좌표계를 사용하는 것이 더욱 효율적이다.Thus, in an implementation environment, Is a station member, If is multiplication Is satisfied, it is more efficient to use the LD coordinate system.
상에서 하나의 점 를 연속하여 번 더하는 것을 스칼라 곱셈(scalar multiplication)이라고 부르며, 로 표현된다. 이 스칼라 곱셈은 ECDH와 ECDSA 연산에서 핵심이 되는 연산이다. One point on In succession Adding one is called scalar multiplication, It is expressed as This scalar multiplication is a key operation in ECDH and ECDSA operations.
본 발명에 대한 세부 구현 사항은 하기와 같다.Detailed implementation details of the present invention are as follows.
본 발명에 따른 8 비트 Atmega128 프로세서를 기반으로 하는 미카즈 센서 모트에서의 효율적인 타원 곡선 암호 연산 방법(TinyECCK)을 구현하기 위하여 권고된 도메인 파라미터인 sect163k1 을 이용하였으며, 상의 원소를 표현하기 위하여 다항식 기저를 사용하였다. In order to implement an efficient elliptic curve cryptography method (TinyECCK) in the Mikaz sensor mote based on the 8-bit Atmega128 processor according to the present invention, the recommended domain parameter sect163k1 was used. The polynomial basis was used to represent the elements of the phase.
본 발명에서 기술되는 알고리즘은 Guide to Elliptic Curve Cryptography에 제시된 32 비트 기반의 유한체 연산 알고리즘에 기반을 둔 것으로서 8비트 환경에 맞게 수정하였다. The algorithm described in the present invention is based on the 32 bit presented in Guide to Elliptic Curve Cryptography. It is based on a finite field algorithm and modified for 8-bit environments.
연산의 효율성을 위하여 본 발명에 따른 8 비트 Atmega128 프로세서를 기반으로 하는 미카즈 센서 모트에서의 효율적인 타원 곡선 암호 연산 방법에 wNAF, wTNAF 리코딩 알고리즘을 적용하였으며 혼합좌표계를 이용하여 ECADD, ECDBL 연산을 하도록 구현하였다.For the efficiency of the calculation, the wNAF and wTNAF recording algorithms are applied to the efficient elliptic curve cryptography method in the Micaz sensor mort based on the 8-bit Atmega128 processor according to the present invention, and the ECADD and ECDBL operations are performed using the mixed coordinate system. It was.
여기서, 본 발명에 적용되는 8비트 기반의 유한체 의 두 원소인 에 있어서, 상기 에 대한 다항식 와 상기 에 대한 다항식 는 LD 좌표계에 의해 표현될 수 있으며, 본 발명의 타원 곡선 암호 연산은 스칼라 곱셈 또는 ECDSA 연산을 포함할 수 있다.Here, an 8-bit based finite body applied to the present invention Two elements of In the above Polynomials for And above Polynomials for May be represented by an LD coordinate system, and an elliptic curve cryptographic operation of the present invention may include a scalar multiplication or an ECDSA operation.
우선 본 발명에 적용되는 각 연산에 대한 정의는 하기의 표 1에 도시된 바와 같다.First, the definition of each operation applied to the present invention is as shown in Table 1 below.
유한체 제곱 연산Finite Field Square Operations
한편, 의 한 원소 를 제곱하는 것은 의 이진 표현인 연속한 비트 사이에 0을 삽입하여 결과적으로 가 된다.Meanwhile, An element of Squared Insert zeros between consecutive bits, which is a binary representation of Becomes
따라서, 사전 연산을 통한 테이블 룩업을 통하여 상기 제곱 연산은 효율적으로 연산할 수 있다. 도 1에 따른 알고리즘 1은 하나의 워드를 제곱하여 두 워드로 확장된다.Therefore, the square operation can be efficiently performed through a table lookup through a dictionary operation.
도 1을 참조하면, 의 한 원소이며, m-1차의 최대 차수를 가지는 이진 다항식으로 표현되는 하나의 워드 를 입력으로 하여 상기 워드를 제곱하여 두 워드로 확장한 를 출력한다.Referring to Figure 1, One word, expressed as a binary polynomial with the largest order of m-1 order Squares the word and expands it to two words .
우선, 사전연산(precomputation)으로 4비트의 워드의 집합으로 상기 워드의 각 비트로 표현되는 집합인 에 각각의 비트 앞에 0을 삽입하여 8비트로 확장한 사전 연산 테이블 을 생성한다First, a set of four bits of words by precomputation is a set represented by each bit of the word. Pre-operation table extended to 8 bits by inserting 0 before each bit in the Produces
이는, 상기 4비트와 하위 4비트의 홀수 위치에 0을 삽입하여 각각 8비트 워드가 생성되게 하는 것이다.This inserts 0 into odd positions of the 4 bits and the lower 4 bits to generate 8-bit words, respectively.
이와 같이 연산됨으로써, 상기 사전 연산 테이블의 상위 4비트와 하위 4비트를 각각 분할하여, 분할된 4비트 단위의 단위 테이블을 출력하여 최종적으로 제곱 연산을 수행하여 두 워드로 확장한 를 출력하게 된다.By calculating in this manner, the upper 4 bits and the lower 4 bits of the pre-computation table are respectively divided, and the divided unit tables are output in the divided 4-bit unit to finally perform a square operation to expand the two words. Will print
유한체 곱셈 연산Finite Field Multiplication
유한체 곱셈은 스칼라 곱셈 연산 중에 계산되는 가장 빈번한 연산 중의 하나이기 때문에 효율적으로 구현되어야 한다.Finite field multiplication must be implemented efficiently because it is one of the most frequent operations calculated during scalar multiplication operations.
비록 쉬프트 앤드 애드(shift and add) 방법이 직관적이지만 많은 양의 메모리 접근과 워드 쉬프트(shift) 때문에 소프트웨어 구현에서는 바람직하지 않다.Although the shift and add method is intuitive, it is not desirable in software implementations because of the large amount of memory access and word shifts.
실제로, 실험을 통하여 쉬트트 앤드 애드(shift and add), 라이트 레프트 결합(right to left comb) 방법에 비하여 윈도우 기법을 적용한 라이트 레프트 결합(right to left comb) 방법이 8비트 Atmega128 프로세서에서 더욱 효율적으로 연산된다.Indeed, experiments have shown that the right-to-left comb method using the window technique is more efficient on 8-bit Atmega128 processors than the shift-and-add and right-left comb methods. It is calculated.
이때, 최적의 윈도우 크기()는 4이다. 비록 크기 4의 윈도우는 15개의 구성요소에 대하여 사전연산을 해야 하지만(0번째 요소는 제외), 이를 통하여 유한체 곱셈의 연산은 현저히 빨라질 수 있다.In this case, the optimal window size ( ) Is 4. Although a window of
도 2에 도시된 바와 같이 알고리즘 2는 8비트 워드 크기를 사용하는 환경에서 윈도우 기법()을 적용한 레프트 라이트 결합 방법을 기술하고 있다.As shown in Fig. 2,
워드 크기가 8 비트이고, 윈도우의 크기가 4이기 때문에, 와 는 , 와 같이 효율적으로 연산될 수 있다.Since the word size is 8 bits and the window size is 4, Wow Is , Can be computed efficiently.
도 2에 따른 알고리즘 2의 과정 6과 과정 10의 부분적(partial) XOR 곱셈인 는 실제로 루프 문(for loop)으로 구현된다. 여기서, 는 상기 연산된 에 대한 사전 연산 테이블을 의미한다.Partial XOR multiplication of
즉, 의 실제 코드는 가 된다. In other words, The actual code of Becomes
이는 실제로 호출된 와 에 대하여 XOR 연산이 수행된 후, 다시 에 저장된다.Which is actually called Wow After the XOR operation is performed on, again Are stored in.
따라서, 워드의 크기가 작아질수록 더 많은 수의 메모리 접근 명령이 필요하다. 예를 들어, 상에서 와 인 경우 각각의 호출(Load)과 저장(Store) 명령어를 비교해보면, 의 경우는 이기 때문에 14번의 호출과 7번의 저장 연산을 필요로 하는 반면, 인 경우는 이므로 44번의 호출과 22번의 저장 연산을 요구하게 된다.Thus, the smaller the word size, the more memory access instructions are required. E.g, On Wow If you compare the Load and Store commands, In the case of This requires 14 calls and 7 save operations, If is This requires 44 calls and 22 save operations.
한편, 상의 곱셈과 제곱의 결과는 기약 다항식 로 감산된다. FIPS 186-2 표준에서 NIST가 권고한 빠른 모듈러 감산을 위한 감산 다항식이 존재한다.Meanwhile, Multiply and square the result of the sum of the terms Is subtracted. There is a subtraction polynomial for fast modular subtraction recommended by NIST in the FIPS 186-2 standard.
이러한 다항식들은 3차항(Trinomial) 또는 5차항(Pentanomial)이기 때문에 는 효율적으로 연산될 수 있다.Since these polynomials are trinomial or pentanomial Can be computed efficiently.
도 3은 종래의 모듈러 감산 알고리즘을 도시한 것이다.3 illustrates a conventional modular subtraction algorithm.
도 3은 곱셈과 제곱의 결과를 의 원소로 감산시킨다. 전술한 유한체 곱셈 알고리즘과 마찬가지로 도 3에 따른 유한체 곱셈 알고리즘은 8비트 워드이기 때문에 많은 수의 메모리 접근 연산이 연관되어 있으므로 연산이 비효율적이다.3 shows the result of multiplication and square Subtract to the element of. Similar to the finite field multiplication algorithm described above, since the finite field multiplication algorithm according to FIG. 3 is an 8-bit word, a large number of memory access operations are associated, and thus the operation is inefficient.
또한, 센서 모트에서의 효율적인 타원 곡선 암호 연산의 연산 성능을 향상시키기 위하여 좌표계 선택 역시 중요하게 부각된다.In addition, coordinate system selection is also important to improve the computational performance of efficient elliptic curve cryptography in sensor motes.
실제로, 8 비트 워드의 Atmega128에서 상의 곱셈 연산에 대한 역원 연산의 비율을 계산해 본 결과 24.99의 결과를 얻었다.()In fact, in Atmega128 of 8-bit word The ratio of the inverse operation to the multiplication of the phases is calculated and the result is 24.99. )
따라서, 스칼라 곱셈 과정에서 가능한 한 역원 연산을 제거하는 것이 연산 성능을 향상시키기 위하여 바람직하다. Therefore, it is desirable to eliminate inverse arithmetic as much as possible in the scalar multiplication process in order to improve arithmetic performance.
그러므로, 본 발명에 따른 센서 모트에서의 효율적인 타원 곡선 암호 연산 기법을 구현할 때 아핀 좌표계를 선택하는 대신 로페즈 다하브(Lopez Dahab:LD) 좌표계 즉, 사영 좌표계를 적용하는 것이 나눗셈 연산을 줄임으로써 연산 속도의 향상을 가져올 수 있다.Therefore, when implementing an efficient elliptic curve cryptography algorithm in the sensor mote according to the present invention, applying the Lopez Dahab (LD) coordinate system, that is, the projective coordinate system, instead of selecting the affine coordinate system, reduces the computation speed. Can bring improvement.
하기의 표 2는 Atmega128 프로세서에서 상의 유한체 연산들의 연산 시간을 비교한 것으로 본 발명에 따른 센서 모트에서의 효율적인 타원 곡선 암호 연산 기법에서의 적절한 좌표 선택을 뒷받침한다.Table 2 below shows the Atmega128 processor. Comparing the computational time of the finite field operations of the phases supports the selection of appropriate coordinates in an efficient elliptic curve cryptographic algorithm in the sensor mote according to the present invention.
타원 곡선 점 덧셈 연산(Elliptic Curve point ADDition:ECADD)에 관련된 두 개의 점이 서로 다른 LD 좌표계와 아핀 좌표계로 표현되어 더해지는 것이 두 점이 서로 같은 좌표계로 표현되면 더욱 효율적인 연산 성능을 이끌어 낼 수 있다.Two points related to elliptic curve point addition operation (ECADD) are expressed in different LD coordinate system and affine coordinate system, and when two points are expressed in the same coordinate system, more efficient calculation performance can be derived.
따라서, 본 발명에서의 유한체 곱셈 알고리즘이 사전 연산 테이블에 저장되는 점들은 아핀 좌표계로 표현하고, 실제 타원 곡선 점 덧셈 연산 및 타원 곡선 점 두배 연산(Elliptic Curve point DouBLing:ECDBL)에서는 혼합 좌표계를 선택할 수 있다.Therefore, in the present invention, the points stored in the pre-computation table are represented by the affine coordinate system, and the actual elliptic curve point addition operation and the elliptic curve point doubling operation (Elliptic Curve point DouBLing: ECDBL) select a mixed coordinate system. Can be.
위의 한 점 의 역원은 가 된다. 이와 같이 의 원소의 역원은 적은 비용의 연산으로 계산될 수 있으며, 두 점의 뺄셈은 덧셈과 같은 방법으로 연산될 수 있기 때문에 스칼라 곱셈 과정에서 부호화된 이진 표현을 하기의 수학식 4에 따라 쉽게 적용할 수 있다. A point above The station of Becomes like this The inverse of the element of can be calculated with a low cost operation, and since the subtraction of two points can be calculated in the same way as the addition, the binary representation encoded during the scalar multiplication process can be easily applied according to
비근접 형태(Non Adjacent Form:NAF)는 모든 부호화된 이진 표현 중에서 최적의 넌 제로(non-Zero) 밀도를 제공한다.Non Adjacent Form (NAF) provides the optimal non-zero density among all coded binary representations.
NAF를 이용한 스칼라 곱셈은 상기 수학식 4에 따라 정의되는 을 적용하여 의 연산에 따라 계산될 수 있다.Scalar multiplication using NAF is defined according to
여기서 이진 표현을 사용할 경우 가 필요하다. 만약 추가적인 메모리가 사용 가능하다면 스칼라 를 한번에 비트씩 처리할 수 있는 슬라이딩 윈도우 방법을 적용하여 스칼라 곱셈의 연산 시간을 더욱 줄일 수 있다.If you use binary representation here Is needed. Scalar if additional memory is available At a time By applying a sliding window method that can process bit by bit, the computation time of scalar multiplication can be further reduced.
크기의 윈도우를 사용하는 width - w NAF(wNAF)는 개의 사전 연 산 점들을 담는 사전 연산 테이블을 이용하여 의 넌제로(nonzero) 밀도를 제공한다. Width-w NAF (wNAF) using a window of size Using a pre-computation table containing two pre-computation points Gives a nonzero density of.
따라서, wNAF를 적용한 스칼라 곱셈은 의 연산으로 계산된다.Therefore, scalar multiplication using wNAF Is computed by
미카즈 센서 모트에서는 128 Kbyte의 ROM 메모리와 4Kbyte의 RAM 메모리가 사용 가능하기 때문에 본 발명에 따른 센서 모트에서의 효율적인 타원 곡선 암호 연산 기법에 wNAF를 충분히 적용할 수 있다.Since Micazu sensor mort can use 128 Kbytes of ROM memory and 4 Kbytes of RAM memory, wNAF can be sufficiently applied to an efficient elliptic curve cryptographic algorithm in the sensor mort according to the present invention.
본 발명에 따른 센서 모트에서의 효율적인 타원 곡선 암호 연산 기법의 구현은 sect163k1에 기반을 두므로 스칼라 곱셈에 width-w tau-adic non-adjacent form(wTNAF)을 적용할 수 있다.Since the implementation of an efficient elliptic curve cryptographic algorithm in the sensor mote according to the present invention is based on sect163k1, width-w tau-adic non-adjacent form (wTNAF) can be applied to scalar multiplication.
상기 수학식 2에서 그리고 인 경우, 이를 코블리츠(koblitz) 커브라고 불리며, 이것의 큰 장점은 스칼라 곱셈에서 ECDBL 연산을 몇 개의 간단한 유한체 제곱 연산으로 대체시킬 수 있다는 것이다.In
따라서, wTNAF를 적용한 스칼라 곱셈은 만으로 연산될 수 있다.Therefore, scalar multiplication using wTNAF Can only be calculated.
그러나, wTNAF 리코딩 알고리즘은 추가적인 부분 감산 함수(Partial reduction modulo function)와 라운딩 오프(Rounding off) 프로시져를 필요로 하기 때문에 wTNAF를 구현하는 것은 wNAF에 비하여 더 많은 코드를 요구한다.However, implementing wTNAF requires more code than wNAF because the wTNAF recording algorithm requires additional partial reduction modulo functions and rounding off procedures.
본 발명에 따른 센서 모트에서의 효율적인 타원 곡선 암호 연산 기법에 따른 코드 크기는 각각 10870 바이트와 13748 바이트이다.The code sizes of the efficient elliptic curve cryptographic algorithm in the sensor mote according to the present invention are 10870 bytes and 13748 bytes, respectively.
이것은 미카즈 모트의 사용가능한 ROM 메모리 크기(128 Kbyte)의 단지 8.3%와 10.5%에 해당한다. 또한, 전술한 바와 같이 실질적으로 미카즈 모트에서의 최적의 윈도우 크기는 4임을 알 수 있다.This is only 8.3% and 10.5% of Mikaz Mort's available ROM memory size (128 Kbytes). In addition, as described above, it can be seen that the optimal window size in Mikaz Mort is substantially four.
한편, 정수 에 wTNAF를 적용할 경우, 리코딩된 결과의 길이가 가 되며, 이것은 wNAF와 비교하면 두 배의 길이를 가지게 된다.Meanwhile, integer If you apply wTNAF to the record, the length of the recorded result This is twice as long as wNAF.
따라서, wTNAF를 적용하였을 때 발생하는 긴 TNAF의 표현의 문제점을 해결하는 것이 필요하다.Therefore, it is necessary to solve the problem of expression of long TNAF which occurs when applying wTNAF.
이를 위하여 상기 정수 와 대응되는 새로운 값을 탐색하는데 이것은 에서 , 을 만족하는 가장 작은 것이다.For this purpose New counterpart Search for a value in , The smallest thing to satisfy.
이 경우 의 기수가 n인 모든 점 에 대하여 가 성립한다. 즉, 보다 짧은 형태의 를 wTNAF에 적용하여 길이의 리코딩 결과를 얻을 수 있는 것이다.in this case Any point whose base is n about Is established. In other words, Shorter Is applied to wTNAF You can get the result of the length recording.
를 연산하기 위하여 도 4에 따른 알고리즘 4가 이용된다.
알고리즘 4는 wTNAF를 연산할 때 적용되는 부분 감산 모듈러 연산의 알고리즘의 일 예를 도시한 것이다.
알고리즘 4의 은 차수로, sect163k1을 이용하였기 때문에 163이 된다.Of
와 은 알고리즘 시작 전에 루카스(Lucas) 시퀀스를 이용하여 사전 연산될 수 있다.(=2579386439110731650419537, =755360064476226375461594) Wow Can be precomputed using a Lucas sequence before the algorithm starts. = 2579386439110731650419537, = 755360064476226375461594)
알고리즘 4를 적용하였을 때, 길이가 줄어들지 않을 확률이 이기 때문에 본 발명에 따른 센서 모트에서의 효율적인 타원 곡선 암호 연산 기법의 구현에서는 을 적용하여 감산의 확률을 높일 수 있다.When you apply
sect163k1에서 와 의 값은 각각 1이고, 위수 과 , 의 값들이 미리 알려져 있기 때문에, 의 값 역시 사전연산 될 수 있다.() from sect163k1 Wow Are each 1, and , Because the values of are known in advance, The value of can also be precomputed. )
또한, 도 4의 알고리즘 4의 과정 3의 역시 사전에 62로 연산될 수 있으므로 과정 3은 를 단순히 오른쪽으로 62비트 쉬프트하는 것으로 연산된다.In addition, the
그리고, 도 4의 알고리즘 4의 과정 10 내지 21은 과정 5 내지 9로부터 연산된 복소수 (은 유리수)에 근접한 의 정수 와 을 연산한다.In addition, processes 10 to 21 of
또한 과정 7의 연산을 하기 위하여 다정도 부동 소수점 표현을 사용하여야 하는 것처럼 보일 수 있지만, 실제로 비트 이하 의 값들에 한해서만 소수값이 되기 때문에 몇 개의 부동 소수점 변수를 이용하여 연산할 수 있다.Also of
본 발명에 따른 센서 모트에서의 효율적인 타원 곡선 암호 연산 기법의 성능을 테스트해 본 결과 부동 소수점 변수를 사용한 것이 성능에 큰 영향을 미치지 않음을 확인할 수 있다.As a result of testing the performance of an efficient elliptic curve cryptographic algorithm in the sensor mote according to the present invention, it can be seen that the use of floating point variables does not significantly affect the performance.
도 4의 알고리즘 4의 결과인 이 정수 대신 wTNAF를 연산하는데 이용된다.Is the result of
전술한 곱셈 알고리즘과 감산 알고리즘의 성능은 실제로 중복된 메모리의 접근을 줄임으로써 더욱 향상될 수 있다.The performance of the multiplication and subtraction algorithms described above can be further improved by actually reducing access to redundant memory.
메모리 접근 연산은 알고리즘의 전체 연산 시간에서 많은 비중을 차지하기 때문에 중복된 메모리 접근을 줄임으로써 알고리즘의 성능을 향상시킬 수 있는 것이다.Since memory access operations take up a large portion of the algorithm's total computation time, the performance of the algorithm can be improved by reducing redundant memory accesses.
상에서의 XOR 곱셈 연산은 많은 수의 중복된 메모리 접근 연산과 연관되어 있다. The XOR multiplication operation on is associated with a large number of redundant memory access operations.
이 때문에 일반적으로 상에서의 곱셈 연산이 상에서의 곱셈 연산보다 비효율적이다.Because of this Multiplication operation It is less efficient than multiplication in phase.
도 5는 상기 도 2의 알고리즘 2의 곱셈 연산의 계산 과정을 도시하고 있다.FIG. 5 illustrates a calculation process of the multiplication operation of
도 5에서 홀수 행들은 알고리즘 2의 과정 9 내지 11에 해당하고, 짝수 행들은 알고리즘 2의 과정 5 내지 7에 해당한다.In FIG. 5, odd rows correspond to
결과적으로, 도 5의 모든 행들은 마지막 결과인 를 연산하기 위하여 해당 위치에서 서로 XOR 연산이 수행된다. 이를 부분(partial) XOR 곱셈을 의미한다.As a result, all rows in FIG. XOR operations are performed on each other at the corresponding position to calculate. This means partial XOR multiplication.
도 2에서 첫 번째 for-loop의 결과들은 왼쪽으로 윈도우 크기인 만큼 쉬프트되는데 이는 도 5에 도시되어 있다.The results of the first for-loop in Figure 2 are the window size to the left It is shifted by as shown in FIG.
그리고, 도 2의 알고리즘 2의 각 for-loop에서 에 관한 사전 연산 테이블에 접근하여 해당 요소를 가져오기 위하여 와 가 연산 된다.In each for-loop of
그 후에 테이블에서 해당 값이 로드되고, 이는 다시 와 위치에서부터 위치까지 XOR 연산된다().After that, the corresponding values are loaded from the table, which in turn Wow From location XOR to position ( ).
상기 도 5를 살펴보면, 도 2의 알고리즘 2의 XOR 곱셈이 많은 수의 중복된 메모리 접근 연산과 연관되어 있음을 알 수 있다.Referring to FIG. 5, it can be seen that the XOR multiplication of
하기의 수학식 5의 예제는 이를 확인시켜 준다. 설명의 간결함을 위하여 도 2의 두 번째 for-loop 과정만을 고려하였다.The example of
상기 수학식 5에서 의 연산은 각각 두 번, 세 번, 네 번의 저장(STORE) 명령이 연관되었으며, 이것이 중복된 메모리 접근에 해당한다.In
또한, 각 과정에서 의 값이 번 호출(LOAD)되고 있음을 알 수 있다.Also, in each course Has a value of You can see that it is being LOADed once.
(이는 까지 해당되며, 의 범위에서는 값이 번 호출된다.)(this is Until, In the range of Value is Is called once.)
따라서, 도 2의 알고리즘 2의 성능은 중복된 저장 연산의 수와 의 호출 횟수를 줄임으로써 향상될 수 있다.Thus, the performance of
본 발명에서 제안하는 기법은 복수 개의 연속한 XOR 연산을 하나로 통합하여 연산되게 함으로써 XOR 곱셈 에 연관된 저장과 호출 연산의 수를 줄이는 것이다.The technique proposed in the present invention combines a plurality of consecutive XOR operations into one to perform XOR multiplication. This is to reduce the number of save and call operations associated with.
예를 들면, 과 는 하기의 수학식 6과 같이 통합될 수 있다.For example, and May be integrated as in
이 기법을 일반화하면 도 6과 같이 정리될 수 있다.Generalizing this technique can be summarized as shown in FIG.
이는 실제로 더 많은 수의 XOR 곱셈 연산을 통합한다면 더 많은 수의 중복 메모리 접근을 줄일 수 있으나, 더 많은 양의 코드를 필요로 하므로, 두 개의 연속한 XOR 곱셈 연산을 하나로 통합한다.This actually reduces the number of redundant memory accesses by incorporating more XOR multiplication operations, but requires more code, thus consolidating two consecutive XOR multiplication operations into one.
도 7은 본 발명에 따른 센서 모트에서의 효율적인 타원 곡선 암호 연산 방법의 흐름도이다.7 is a flowchart of an efficient elliptic curve cryptographic calculation method in a sensor mote according to the present invention.
8비트 기반의 유한체 의 두 원소인 에 있어서 상기 에 대한 다항식을 라하고, 상기 에 대한 다항식을 라고 할 때, 상기 및 를 이용하여 유한체 곱셈의 결과값 를 생성하는 센서 모트에서의 효율적인 타원 곡선 암호 연산 방법에 있어서, 상기 를 구성하는 j번째 워드(1 ≤ j ≤ t, 여기서 t는 상기 를 메모리에 저장하기 위해 필요한 워드의 개수)의 상위 4비트를 0으로 패딩하면서 오른쪽으로 쉬프트한 다항식 u1과 상기 를 구성하는 [j+1]번째 워드의 상위 4비트를 0으로 패딩하면서 오른쪽으로 쉬프트한 다항식 u2를 생성한 후, 상기 u1와 상기 를 곱한 다항식 Tu1 및 상기 u2와 상기 를 논리 곱한 다항식 Tu2를 이용하여 상기 의 제 1 중간 결과값을 생성한다(710 과정).8-bit based finite field Two elements of Above Polynomials for Lago; Polynomials for When said, And Result of finite field multiplication using An efficient elliptic curve cryptography method in a sensor moat for generating the J j words (1 ≤ j ≤ t, where t is the And the polynomial u 1 shifted to the right while padding the upper 4 bits of the number of words needed to store in memory to 0, and After generating the polynomial u 2 shifted to the right by padding the upper four bits of the [j + 1] th word constituting the zero with 0, the u 1 and the Multiply by T u1 and u 2 and Using the polynomial T u2 multiplied by Generate a first intermediate result of (step 710).
이는 상기 도 6의 알고리즘 5의 과정 5 내지 과정 8에 해당하는 것이다.This corresponds to
한편, 상기 생성된 제 1 중간 결과값은 상위 4비트 성분에 대한 것으로, 하기에 수행될 제 2 중간 결과값과의 순서를 맞추기 위하여 4비트 레프트 쉬프트 될 수 있다. 이는 도 6의 알고리즘 5의 과정 9에 해당한다.Meanwhile, the generated first intermediate result value is for the upper 4-bit component and may be 4-bit left shifted in order to match the order with the second intermediate result value to be performed below. This corresponds to process 9 of
그 다음, 상기 제 1 중간 결과값을 4 비트 레프트 쉬프트(left shift) 하고, 상기 를 구성하는 j번째 워드와 0x0F를 논리 곱한 다항식 v1과 상기 를 구성하는 [j+1]번째 워드와 0x0F를 논리 곱한 다항식 v2를 생성한 후, 상기 v1와 상기 를 곱한 다항식 Tv1 및 상기 v2와 상기 를 논리 곱한 다항식 Tv2를 이용하여 상기 의 제 2 중간 결과값을 생성한다(720 과정).Next, the first intermediate result value is left shifted by 4 bits. The polynomial v 1 obtained by logically multiplying the jth word constituting the s by 0x0F After generating a polynomial v 2 that is logically multiplied by the [j + 1] th word and 0x0F, the v 1 and the Polynomial T v1 and v 2 and Using the polynomial T v2 multiplied by Generate a second intermediate result of (step 720).
이 역시, 상기 도 6의 알고리즘 5의 과정 10 내지 과정 13에 해당한다.This also corresponds to process 10 to process 13 of
마지막으로, 상기 제 1 중간 결과값의 4비트 레프트 쉬프트한 값과 상기 제 2 중간 결과값을 배타적 논리합하여 상기 유한체 곱셈의 결과값 를 생성하는데(730 과정), 상기 제 1 중간 결과값은 하기의 식(1)의 두 번째 행에 의해 연산되며, 상기 제 2 중간 결과값은 하기의 식(2)의 두 번째 행에 의해 연산된다.
<식(1)>
.
<식(2)>
.Finally, the result of the finite field multiplication is obtained by performing an exclusive OR between the 4-bit left shifted value of the first intermediate result and the second intermediate result. (Step 730), the first intermediate result is computed by the second row of equation (1) below, and the second intermediate result is computed by the second row of equation (2) below do.
<Equation (1)>
.
<Equation (2)>
.
여기서, 본 발명에 따른 센서 모트에서의 효율적인 타원 곡선 암호 연산 기법의 경우에는 코드의 크기를 고려하여 상기 유한체 곱셈의 결과값 를 생성하는 과정에서 한 쌍의 연속한 사전 연산 테이블(Tu1과 Tu2, Tv1과 Tv2)을 이용하여 수행되는 XOR 곱셈을 하나로 통합하였기 때문에 for-loop의 카운터가 2씩 증가한다.In the case of an efficient elliptic curve cryptographic algorithm in the sensor mote according to the present invention, the result of the finite field multiplication in consideration of the code size In the process of generating, since the XOR multiplication performed using a pair of consecutive pre-operation tables (T u1 and T u2 , T v1 and T v2 ) is integrated into one, the counter of the for-loop increases by two.
즉, 정리하면 상기 유한체 곱셈의 결과값 는 상기 의 비트 인덱스를 , 를 상기 에 대한 비트 인덱스를 , 상기 에 대한 사전 연산 테이블을, 라 할 때, 하기의 수학식 7에 의해 연산된다.In other words, the result of the finite field multiplication Above Bit index of , Remind Bit index for , remind Pre-operation table for , Is calculated by
한편, 상기 유한체 곱셈의 결과값 를 생성하는 과정(730 과정)은 복수 회 중복으로 호출되는 중간 결과값에 대한 연산을 단일화하여 배타적 논리합 연산을 수행함으로써 모듈라 감산을 수행하는 단계를 더 포함할 수 있다. 이는 하기에 더욱 자세히 상술하기로 한다.On the other hand, the result of the finite field multiplication The
상기 도 6의 알고리즘 5를 이용하여 절약되는 저장 연산의 수를 계산할 수 있다.
실제로, 도 2의 알고리즘 2에서는 for-loop의 카운터가 0에서부터 t-1까지 증가하며, 또한 도 for-loop이기 때문에 첫 번째와 두 번째 for-loop 과정에서 필요한 저장 연산의 수는 가 된다.In practice, in
한편, 도 6의 저장 명령의 수를 연산하면 가 된 다. 따라서, 본 발명에 따른 도 6의 알고리즘 5에서는 만큼의 저장 연산이 절약된다. On the other hand, if the number of the storage instruction of FIG. Become. Therefore, in
또한, 호출 연산의 경우, 도 2의 알고리즘 2에서는 번의 호출 연산이 연관된 반면, 본 발명에 따른 도 6의 알고리즘 5에서는 번의 호출 연산을 사용한다.In addition, in the case of a call operation, in
따라서 본 발명에서는 호출 연산에서도 만큼의 연산량을 절약할 수 있다.Therefore, in the present invention, even in the call operation You can save as much computation.
하기의 표 3은 본 발명에 따른 센서 모트에서의 효율적인 타원 곡선 암호 연산 기법과 도 2의 알고리즘 2에 따른 암호 연산에 있어서의 성능을 비교한 테이블이다.Table 3 below is a table comparing the performance of the efficient elliptic curve encryption algorithm in the sensor mote according to the present invention and the encryption operation according to
상기의 표 3을 참조하면, 본 발명의 도 6에 따른 알고리즘 5가 도 2의 알고리즘 2에 비하여 곱셈 연산 시간이 21.08% 빨라진 것을 확인할 수 있으며, 또한 일 때, 본 발명의 도 6에 따른 알고리즘 5가 도 2의 알고리즘 2에 비하여 441번의 저장 연산과 호출 연산이 절약되는 것을 알 수 있다.Referring to Table 3, it can be seen that the
한편, 본 발명에서는 모듈러 감산 과정에서 중복된 메모리 접근을 줄일 수 있는 기법을 개시한다.On the other hand, the present invention discloses a technique for reducing the redundant memory access in the modular subtraction process.
상기 도 3 역시 중복된 메모리 접근 명령과 관련되어 있다. 알고리즘 3의 동작 과정에서 카운터 가 30에서 27로 감소하는 경우를 살펴보면, 카운터 가 30에서 27로 감소하는 동안의 연산 과정은 하기의 수학식 8과 같다.3 is also associated with redundant memory access commands. Counter during operation of
상기 수학식 8이 적용되는 알고리즘 3은 을 연산하기 위하여 16번의 호출 명령과 저장 명령을 사용한다.
그러나, 이와 같이 중복된 호출 연산과 저장 연산 명령을 제거하기 위하여 같은 곳에 저장되는 중간값을 함께 XOR 시켜 한 번에 저장하는 전략을 사용할 수 있다.However, in order to eliminate the duplicate call operation and the storage operation instruction, the strategy of XORing the intermediate values stored in the same place together and storing them at once can be used.
이 전략을 적용하여 하기의 수학식 9에 따라 본 발명은 모듈러 감산 연산을 수행할 수 있게 된다.By applying this strategy, the present invention can perform a modular subtraction operation according to
이와 같이, 저장과 호출 명령의 빈도를 16번에서 10번으로 줄일 수 있게 된다.Thus, the frequency of save and recall commands can be reduced from 16 to 10 times.
도 3의 알고리즘 3은 for-loop안에서 20×4=80번의 저장과 호출 명령을 사용한다.
이에 비하여 본 발명에 따르면 5×10=50번의 저장과 호출 명령 만을 이용함으로써 30번의 저장 및 호출 명령을 줄일 수 있다.In contrast, according to the present invention, by using only 5 × 10 = 50 save and recall commands, 30 save and recall commands can be reduced.
이 전략을 일반화한 것이 알고리즘 6이며, 이에 따르면 4번의 for-loop의 실행을 하나로 통합할 수 있다.Generalizing this strategy is
상기 표 3에 개시된 바와 같이, 알고리즘 6은 상기 도 3의 알고리즘 3보다 24.7% 바르게 감산 연산을 수행한다.As shown in Table 3,
더 많은 for-loop의 실행을 통합하면, 더 많은 수의 메모리 접근 명령의 수를 줄일 수 있지만, 코드의 크기가 증가한다는 단점이 있다.Incorporating more for-loop execution can reduce the number of larger memory access instructions, but at the cost of increasing code size.
실제 실험을 통하여 4번의 for-loop 실행을 통합하는 것이 메모리와 성능을 고려할 대 최적인 것을 탐색할 수 있다.Practical experiments show that incorporating four for-loop executions is optimal for memory and performance considerations.
하기의 표 4는 상기 제안한 기법을 본 발명에서 구형하는데 적용한 결과 향상된 성능을 제시하고 있다.Table 4 below shows the improved performance as a result of applying the proposed technique to the sphere in the present invention.
이는 종래의 ECDSA의 sign 및 verify의 연산 시간을 약 15-19% 정도 단축시킬 수 있다.This can reduce the computation time of the conventional ECDSA sign and verify by about 15-19%.
이는 wTNAF를 사용하였을 때보다 WNAF를 이용하였을 때의 성능 향상이 더 큰 것을 확인할 수 있는데, 이것은 wTNAF에서는 ECDBL 연산이 몇 개의 유한체 제곱 연산으로 대체되기 때문이다.This can be seen that the performance improvement of using WNAF is greater than that of using wTNAF, because in wTNAF, ECDBL operation is replaced by several finite field square operations.
도 8은 본 발명에 따른 센서 모트에서의 효율적인 타원 곡선 암호 연산 장치의 블록도를 도시한 것이다.8 shows a block diagram of an efficient elliptic curve cryptographic computing device in a sensor mote according to the present invention.
본 발명에 따른 센서 모트에서의 효율적인 타원 곡선 암호 연산 장치는 제 1 중간 결과값 생성부(810), 제 2 중간 결과값 생성부(820), 호출부(830) 및 배타적 논리합 연산 수행부(840)로 이루어질 수 있다.An efficient elliptic curve cryptography apparatus in the sensor mote according to the present invention includes a first
본 발명은, 8비트 기반의 유한체 의 두 원소인 에 있어서 상기 에 대한 다항식을 라하고, 상기 에 대한 다항식을 라고 할 때, 상기 및 를 이용하여 유한체 곱셈의 결과값 를 생성하는 센서 모트에서의 효율적인 타원 곡선 암호 연산 장치를 구성한다.The present invention, 8-bit based finite body Two elements of Above Polynomials for Lago; Polynomials for When said, And Result of finite field multiplication using Configure an efficient elliptic curve cryptographic computing device in the sensor mote to generate it.
상기 제 1 중간 결과값 생성부(810)는 상기 의 상위 4비트에 대하여 각각의 비트 성분과 상기 각각의 사전 연산 테이블에 논리 곱 연산을 수행하여 제 1 중간 결과값을 생성한다.The first intermediate
이는 상기 도 6의 알고리즘 5의 과정 5 내지 과정 8에 해당하는 것으로, 상기 의 상위 4비트에 대하여 각각의 비트 성분과 상기 각각의 사전 연산 테이블에 논리 곱 연산을 수행하여 제 1 중간 결과값을 생성하게 된다.This corresponds to
한편, 상기 제 1 중간 결과값 생성부(810)에서 생성된 제 1 중간 결과값은 상위 4비트 성분에 대한 것으로, 이는 도 6의 알고리즘 5의 과정 9에 해당하는 연산에 의해 생성된다.Meanwhile, the first intermediate result value generated by the first intermediate
제 2 중간 결과값 생성부(820)는 상기 의 하위 4비트에 대하여 각각의 비트 성분과 상기 각각의 사전 연산 테이블에 논리 곱 연산을 수행하여 제 2 중간 결과값을 생성한다.The second
이 역시, 제 2 중간 결과값 생성부(820)는 상기 도 6의 알고리즘 5의 과정 10 내지 과정 13에 해당하는 연산을 수행하고, 상기 의 하위 4비트에 대하여 각각의 비트 성분과 상기 각각의 사전 연산 테이블에 논리 곱 연산을 수행하여 제 2 중간 결과값을 생성한다.In addition, the second
한편, 호출부(830)는 상기 생성된 제 1 중간 결과값을 호출하고 배타적 논리합 연산 수행부(840)에서 상기 호출된 제 1 중간 결과값의 비트 인덱스에 대응되는 상기 와 배타적 논리합 연산을 수행할 수 있도록 하고, 상기 생성된 제 2 중 간 결과값을 호출하고 배타적 논리합 연산 수행부(840)에서 상기 호출된 제 2 중간 결과값의 비트 인덱스에 대응되는 상기 와 배타적 논리합 연산을 수행할 수 있도록 한다.On the other hand, the calling
배타적 논리합 연산 수행부(840)는 상기 호출부(380)에 따라 호출된 제 1 중간 결과값 및 사전 연산 테이블에 따라 배타적 논리합 연산을 수행하고, 상기 생성된 제 2 중간 결과값 및 사전 연산 테이블을 호출하여 배타적 논리합 연산을 수행하여 상기 유한체 곱셈의 결과값 를 생성한다.An exclusive-
상기 배타적 논리합 연산 수행부(840)는 상기 제 1 중간 결과값을 이용하여 생성된 배타적 논리합 연산의 결과값을 4비트 레프트 쉬트트 하는 쉬프트 레지스터(미도시)를 포함할 수 있다.The exclusive OR
이는 상기 제 1 중간 결과값은 상기 의 워드의 상위 4비트에 따라 연산된 것이므로, 하위 4비트에 따라 연산된 제 2 중간 결과값을 이용하여 생성된 배타적 논리합 연산의 결과값과의 순서를 맞추기 위하여 쉬프트 레지스터에서 상기 제 1 중간 결과값을 이용하여 생성된 배타적 논리합 연산의 결과값을 4비트 레프트 쉬프트 하는 것이다.The first intermediate result is the The first intermediate result value in the shift register in order to align with the result of the exclusive OR operation generated using the second intermediate result value calculated according to the lower 4 bits. This results in a 4-bit left shift of the result of the exclusive OR operation.
여기서, 본 발명에 따른 센서 모트에서의 효율적인 타원 곡선 암호 연산 기법의 경우에는 배타적 논리합 연산 수행부(840)는 코드의 크기를 고려하여 상기 유한체 곱셈의 결과값 를 생성하는 과정에서 한 쌍의 연속한 사전 연산 테이블을 이용하여 수행되는 XOR 곱셈을 하나로 통합하기 위하여 상기 호출부(830)에서 호출된 한 쌍의 연속한 사전 연산 테이블을 이용하여 배타적 논리합 연산의 결과값을 생성하기 때문에 for-loop의 카운터가 2씩 증가한다.Here, in the case of an efficient elliptic curve cryptographic algorithm in the sensor mote according to the present invention, the exclusive OR
즉, 이는 상기 유한체 곱셈의 결과값 는 전술한 수학식 7에 의해 연산될 수 있다.That is, the result of the finite field multiplication. May be calculated by
이하에서는 본 발명에 따른 센서 모트에서의 효율적인 타원 곡선 암호 연산 기법의 성능을 동작 시간, 메모리 사용량 및 지원하는 서비스 측면에서 분석하고, 센서 모트 상에서 기존의 소프트웨어 구현들과 성능을 비교할 수 있다.Hereinafter, the performance of an efficient elliptic curve cryptographic algorithm in the sensor mote according to the present invention can be analyzed in terms of operating time, memory usage, and supporting services, and performance can be compared with existing software implementations on the sensor mote.
유한체 연산의 분석Finite Field Analysis
센서 모트 상에서 위의 유한체 곱셈의 성능이 상의 곱셈의 성능보다 빠를 수 있음을 보이기 위하여 본 발명에 따른 센서 모트에서의 타원 곡선 암호 연산 기법(TinyECCK)과 종래의 TinyECC의 성능을 비교한다.On the sensor mort The performance of the above finite field multiplication To show that it can be faster than the multiplication of the images, the performance of the TinyECC and the Elliptic Curve Cryptography (TinyECCK) in the sensor mote according to the present invention are compared.
상기 표 4를 살펴보면, 본 발명에 따른 센서 모트에서의 타원 곡선 암호 연산 기법을 TinyECCK에 알고리즘 5 및 알고리즘 6을 적용하였을 때와 종래의 알고리즘 2 및 알고리즘 3을 적용하였을 때의 기존 방법의 연산 수행 시간을 도시하고 있다.Referring to Table 4, when the
상기 표 4에 따르면, 본 발명에 따른 타원 곡선 암호 연산의 수행 시간의 기존 방법의 연산보다 15 내지 19% 정도의 연산 수행 속도가 빠름을 알 수 있다.According to Table 4, it can be seen that the computational execution speed of about 15 to 19% faster than that of the conventional method of the execution time of the elliptic curve cryptographic operation according to the present invention.
TinyECC는 불필요한 메모리 접근을 줄이기 위하여 추가적인 레지스터를 사용하는 혼합 곱셈/제곱 방법과 Pseudo-Mersenne prime을 사용하는 최적화된 모듈로 감산을 적용하였기 때문에 윈도우를 사용하는 도 6의 left -to-right comb 방법과 도 7의 빠른 감산 연산을 적용한 TinyECCK와 비교하는 것은 적당하다.Since TinyECC applies a mixed multiplication / square method using additional registers and subtraction with an optimized module using Pseudo-Mersenne prime to reduce unnecessary memory accesses, the left-to-right comb method of FIG. It is suitable to compare with TinyECCK to which the fast subtraction operation of FIG. 7 is applied.
하기의 표 5는 TinyECCK의 곱셈 연산이 TinyECC의 곱셈 연산보다 훨씬 빠름을 나타내고 있다. 여기서는 곱셈 연산과 제곱 연산의 시간은 감산 연산의 시간까지 포함하고 있다.Table 5 below shows that the multiplication operation of TinyECCK is much faster than the multiplication operation of TinyECC. In this case, the time of the multiplication operation and the square operation includes the time of the subtraction operation.
실제로 TinyECCK의 곱셈 연산이 도 2의 알고리즘 2를 이용하였을 때는 TinyECC의 곱셈 연산보다 느렸으나, 도 6의 알고리즘 5를 적용하여 TinyECC의 역원 연산보다 더 빠른 점을 차지하더라도 TinyECCK의 제곱 연산은 TinyECC에서의 연산보다 더욱 효율적으로 연산된다.In fact, the multiplication operation of TinyECCK was slower than the multiplication operation of TinyECC when using
이는 상기 문제점으로 지적된 가 보다 연산 속도가 느리다고 알려진 바, 본 발명에 따르면 기반의 TinyECCK를 적용하면, 기반의 TinyECC 보다 속도 향상을 이끌어 낼 수 있으므로 상당한 성능 향상을 보임을 알 수 있다.This is indicated by the above problem end It is known that the operation speed is slower, according to the present invention Applying TinyECCK based, It can be seen that a significant performance improvement can be achieved since it can lead to a speedup over the TinyECC based.
TinyECCKTinyECCK 와 Wow TinyECCTinyECC 의 코드 크기 비교Code size
한편, TinyECCK가 스칼라 곱셈 연산과 ECDSA 서비스를 지원하기 위하여 과 에서의 연산을 구현하였음에도 불구하고, TinyECC보다 더 작은 코드 크기를 사용한다.TinyECCK, meanwhile, supports scalar multiplication and ECDSA services. and Although we implement the operation in, we use a smaller code size than TinyECC.
하기의 표 6에 따르면, 동등한 연산을 하였을 때, TinyECCK와 TinyECC의 코드 크기를 비교한다.According to Table 6 below, the code sizes of TinyECCK and TinyECC are compared when an equivalent operation is performed.
비록 C언어로만 구현한 TinyECC의 경우 TinyECCK와 비교하여 코드 크기가 조금 더 크나 성능은 현저히 떨어졌다.Although TinyECC, which is implemented only in C, has a slightly larger code size compared to TinyECCK, its performance is significantly lower.
연산 시간을 단축시키기 위하여 곱셈/제곱, 감산 등 성능의 핵심 부분을 인라인 어셈블리(inline assembly)로 구현하였으나 TinyECCK와 비교하여 코드 크기와 연산 시간 측면에서 뒤떨어진다.In order to reduce the computation time, the core parts of the performance such as multiplication / square, subtraction, etc. are implemented in inline assembly, but they are inferior in terms of code size and computation time compared to TinyECCK.
스칼라 곱셈과 ECDSA 연산에서 TinyECCK의 코드 크기가 C로 구현된 TinyECC보다 더 작을 뿐만 아니라 연산 시간 측면에서도 인라인 어셈블리를 이용한 TinyECC보다 더욱 뛰어남을 알 수 있다.In scalar multiplication and ECDSA operations, TinyECCK's code size is not only smaller than TinyECC implemented in C, but also better than TinyECC with inline assembly in terms of computation time.
상기 표 6을 보면, TinyECCK가 TinyECC와 비교하여 성능과 코드 크기에서 더욱 효율적이다.Looking at Table 6 above, TinyECCK is more efficient in performance and code size compared to TinyECC.
TinyECCK가 TinyECC와 비교하여 코드의 크기가 더 작을 수 있는 가장 큰 이유는 C언어로만 구현하였음에도 불구하고 어셈블리나 인라인 어셈블리로 구현된 것들보다 뛰어난 성능을 제공하기 때문이다.The biggest reason TinyECCK can make code smaller than TinyECC is because it delivers better performance than that implemented in assembly or inline assembly, even though it is only implemented in C.
상기 표 6의 결과를 통하여 에서 최적화된 ECDSA 구현의 코드 크기는 상의 ECDSA 구현의 코드 크기보다 더 작을 수 있다는 것을 확인할 수 있다.Through the results in Table 6 The code size of the optimized ECDSA implementation in It can be seen that it can be smaller than the code size of the ECDSA implementation.
기존의 구현들과의 성능 비교Performance Comparison with Existing Implementations
하기의 표 7은 지금까지의 센서 모트 상에서 구현된 타원 곡선 암호 소프트웨어의 성능을 연산 시간, 코드 크기, 지원하는 프로토콜 등의 측면에서 TinyECCK와 비교하고 있다.Table 7 below compares the performance of the elliptic curve cryptographic software implemented on the sensor motte with TinyECCK in terms of operation time, code size, and supporting protocol.
표 7을 참조하면, 기존의 상의 구현들의 성능이 상에서 구현된 것들보다 뒤떨어지는 것을 확인할 수 있다.Referring to Table 7, the existing Performance on top of You can see that it is inferior to those implemented in the above.
비록, 기존의 의 구현 4에서는 타원곡선 암호를 완전히 어셈블리 언어로 구현하였지만 핵심 부분에만 인라인 어셈블리언어를 사용한 TinyECC에 비하여 그 성능이 뒤쳐진다.Though, conventional In
그리고, 기존의 의 구현 1 및 구현 2에서는 도메인 파라미터로 sect163k1을 사용하였지만 스칼라 곱셈 과정에 TNAF 방법을 구현하지 않았기 때문에 코블리츠 커브의 장점을 충분히 활용하지 못하였다.And, the existing In
어셈블리 언어로 구현한 기존의 의 구현 4보다 C언어로만 구현된 TinyECCK의 성능이 더 뛰어난 이유는 TinyECCK에 상술한 알고리즘 5와 알고리즘 6 그리고 wTNAF 기반의 스칼라 곱셈이 적용되었기 때문이다.Existing implementation in assembly language The performance of TinyECCK, which is implemented only in C, is better than that of
이는 상기 표 7에서 확인할 수 있듯이 TinyECCK는 동작 시간, 사용된 ROM, RAM의 크기 측면에서 기존의 구현들에 비하여 우수한 성능을 제공한다.As can be seen from Table 7, TinyECCK provides superior performance over existing implementations in terms of operating time, ROM, and RAM size.
TinyECCK에서 스칼라 곱셈을 연산하는 모듈의 코드 크기는 5592바이트이며, 2TNAF와 4TNAF가 적용될 때, 각각 330 바이트와 618바이트의 RAM을 요구한다.In TinyECCK, the scalar multiplication module's code size is 5592 bytes, and when 2TNAF and 4TNAF are applied, it requires 330 bytes and 618 bytes of RAM, respectively.
더욱이 이것의 성능은 지금까지 C 또는 C와 인라인 어셈블리를 이용하여 구현된 타원곡선의 소프트웨어 구현 중에서 가장 뛰어나다.Moreover, its performance is by far the best of software implementations of elliptic curves implemented using C or C and inline assembly.
비록 서명 생성, 검증 등의 추가적인 구현으로 TinyECCK의 ECDSA 모듈의 코드 크기는 137748 바이트로 증가하였지만 여전히 19308 바이트를 이용하는 TinyECC와 비교하여 더 적은 메모리를 사용한다.Although additional implementations such as signature generation and verification have increased the code size of TinyECCK's ECDSA module to 137748 bytes, it still uses less memory compared to TinyECC, which uses 19308 bytes.
뿐만 아니라, TinyECCK는 TinyECC와 비교하여 사전 연산 테이블과 도메인 파라미터를 초기화하는데 더욱 적은 시간을 소비한다.In addition, TinyECCK spends less time initializing pre-computation tables and domain parameters compared to TinyECC.
TinyECCK에 4TNAF가 적용되었을 때 사전 영산 테이블을 구성하는데 0.2515chrk 걸린 반면, TinyECC는 4-ary window 방법의 사전 연산 테이블을 초기화 하는데 1.83초가 걸린다.When 4TNAF is applied to TinyECCK, it takes 0.2515chrk to construct the preproduction table, while TinyECC takes 1.83 seconds to initialize the preary table of the 4-ary window method.
TinyECCK를 이용하여 두 센서 모트는 1.14초 안에 공통키를 연산할 수 있으며, 또한 1.37 초와 2.32초 안에 각각 하나의 서명을 생성하고 검증할 수 있다.Using TinyECCK, two sensor mortgages can compute a common key in 1.14 seconds, and can generate and verify a signature in 1.37 seconds and 2.32 seconds, respectively.
지원하는 프로토콜 측면에서, TinyECCK는 상의 모든 타원 곡선 연산 즉, ECADD, ECDBL 또는 스칼라 곱셈을 제공하며, ECDSA의 서비스도 제공한다.In terms of supported protocols, TinyECCK It provides all elliptic curve operations on the ECS, ECDBL or scalar multiplication, and also provides services of ECDSA.
본 발명에 따른 센서 모트에서의 효율적인 타원 곡선 암호 연산 방법은 소프트웨어를 통해 실행될 수 있다. 소프트웨어로 실행될 때, 본 발명의 구성 수단들은 필요한 작업을 실행하는 코드 세그먼트들이다. 프로그램 또는 코드 세그먼트들은 프로세서 판독 가능 매체에 저장되거나 전송 매체 또는 통신망에서 반송파와 결합된 컴퓨터 데이터 신호에 의하여 전송될 수 있다.An efficient elliptic curve cryptographic calculation method in the sensor moat according to the present invention can be implemented through software. When implemented in software, the constituent means of the present invention are code segments that perform the necessary work. The program or code segments may be stored on a processor readable medium or transmitted by a computer data signal coupled with a carrier on a transmission medium or network.
컴퓨터가 읽을 수 있는 기록매체는 컴퓨터 시스템에 의하여 읽혀질 수 있는 테이터가 저장되는 모든 종류의 기록 장치를 포함한다. 컴퓨터가 읽을 수 있는 기록 장치의 예로는 ROM, RAM, CD-ROM, DVD±ROM, DVD-RAM, 자기 테이프, 플로피 디스크, 하드 디스크(hard disk), 광데이터 저장장치 등이 있다. 또한, 컴퓨터가 읽을 수 있는 기록매체는 네트워크로 연결된 컴퓨터 장치에 분산되어 분산방식으로 컴퓨터가 읽을 수 있는 코드가 저장되고 실행될 수 있다.The computer-readable recording medium includes all kinds of recording devices in which data is stored which can be read by a computer system. Examples of computer-readable recording devices include ROM, RAM, CD-ROM, DVD ± ROM, DVD-RAM, magnetic tape, floppy disks, hard disks, optical data storage devices, and the like. The computer readable recording medium can also be distributed over network coupled computer devices so that the computer readable code is stored and executed in a distributed fashion.
본 발명은 도면에 도시된 일 실시예를 참고로 하여 설명하였으나 이는 예시적인 것에 불과하며, 당해 분야에서 통상의 지식을 가진 자라면 이로부터 다양한 변형적인 것에 불과하며 당해 분야에서 통상의 지식을 가진 자라면 이로부터 다양한 변형 및 실시예의 변형이 가능하다는 점을 이해할 것이다.Although the present invention has been described with reference to an embodiment shown in the drawings, this is merely an example, and those skilled in the art may have various modifications therefrom and those skilled in the art. It will be appreciated that various modifications and variations of the embodiments are possible therefrom.
그러나, 이와 같은 변형은 본 발명의 기술적 보호범위 내에 있다고 보아야 하므로, 본 발명의 진정한 기술적 보호범위는 첨부된 특허청구범위의 기술적 사상에 의해서 정해져야 할 것이다. However, since such modifications should be considered to be within the technical protection scope of the present invention, the true technical protection scope of the present invention should be determined by the technical spirit of the appended claims.
도 1은 종래의 하나의 워드를 제곱하여 두 워드로 확장하는 유한체 곱셈 알고리즘의 일 예를 도시한 것이다.FIG. 1 illustrates an example of a finite field multiplication algorithm that squares one word and expands it into two words.
도 2는 종래의 8비트 워드 크기를 사용하는 환경에서 윈도우 기법()을 적용한 레프트 라이트 결합 알고리즘을 도시한 것이다.2 illustrates a window scheme in an environment using a conventional 8-bit word size. Figure 1 shows the left-right combining algorithm.
도 3은 종래의 모듈러 감산 알고리즘을 도시한 것이다.3 illustrates a conventional modular subtraction algorithm.
도 4는 wTNAF를 연산할 때 적용되는 부분 감산 모듈러 연산의 알고리즘의 일 예를 도시한 것이다.4 illustrates an example of an algorithm of a partial subtraction modular operation applied when calculating wTNAF.
도 5는 도 2의 알고리즘 2의 곱셈 연산의 연산 과정을 개괄적으로 도시한 것이다.FIG. 5 schematically illustrates a calculation process of a multiplication operation of
도 6은 본 발명에 따른 센서 모트에서의 효율적인 타원 곡선 암호 연산의 알고리즘을 도시한 것이다.6 illustrates an algorithm for efficient elliptic curve cryptography in a sensor mote according to the present invention.
도 7은 본 발명에 따른 센서 모트에서의 효율적인 타원 곡선 암호 연산 방법의 흐름도이다.7 is a flowchart of an efficient elliptic curve cryptographic calculation method in a sensor mote according to the present invention.
도 8은 본 발명에 따른 센서 모트에서의 효율적인 타원 곡선 암호 연산 장치의 블록도이다.8 is a block diagram of an efficient elliptic curve cryptographic computing device in a sensor mote according to the present invention.
Claims (19)
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020080016421A KR100974624B1 (en) | 2008-02-22 | 2008-02-22 | Method and Apparatus of elliptic curve cryptography processing in sensor mote and Recording medium using it |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020080016421A KR100974624B1 (en) | 2008-02-22 | 2008-02-22 | Method and Apparatus of elliptic curve cryptography processing in sensor mote and Recording medium using it |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20090090881A KR20090090881A (en) | 2009-08-26 |
KR100974624B1 true KR100974624B1 (en) | 2010-08-09 |
Family
ID=41208612
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020080016421A KR100974624B1 (en) | 2008-02-22 | 2008-02-22 | Method and Apparatus of elliptic curve cryptography processing in sensor mote and Recording medium using it |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR100974624B1 (en) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101321221B1 (en) * | 2013-05-23 | 2013-10-22 | 목포대학교산학협력단 | Cryptographic modular apparatus and cryptographic modular method |
KR101636809B1 (en) * | 2014-12-31 | 2016-07-07 | 고려대학교 산학협력단 | Binary field reduction method for Elliptic Curve Cryptography |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20050062820A (en) * | 2003-12-18 | 2005-06-28 | 한국전자통신연구원 | Infinite field multiplying apparatus adapted for multiplying operation of gf(3^m) infinite field, mod 3 bit-stream adder therefor, and mod3 bit-stream adder therefor |
KR20050065128A (en) * | 2003-12-24 | 2005-06-29 | 한국전자통신연구원 | Finite field polynomial multiplier and method thereof |
-
2008
- 2008-02-22 KR KR1020080016421A patent/KR100974624B1/en not_active IP Right Cessation
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20050062820A (en) * | 2003-12-18 | 2005-06-28 | 한국전자통신연구원 | Infinite field multiplying apparatus adapted for multiplying operation of gf(3^m) infinite field, mod 3 bit-stream adder therefor, and mod3 bit-stream adder therefor |
KR20050065128A (en) * | 2003-12-24 | 2005-06-29 | 한국전자통신연구원 | Finite field polynomial multiplier and method thereof |
Also Published As
Publication number | Publication date |
---|---|
KR20090090881A (en) | 2009-08-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Knezevic et al. | Faster interleaved modular multiplication based on Barrett and Montgomery reduction methods | |
Liu et al. | Efficient Ring-LWE encryption on 8-bit AVR processors | |
US8111826B2 (en) | Apparatus for generating elliptic curve cryptographic parameter, apparatus for processing elliptic curve cryptograph, program for generating elliptic curve cryptographic parameter, and program for processing elliptic cyptograph | |
Öztürk et al. | Low-power elliptic curve cryptography using scaled modular arithmetic | |
EP1014617A2 (en) | Method and apparatus for elliptic curve cryptography and recording medium therefor | |
Daly et al. | An FPGA implementation of a GF (p) ALU for encryption processors | |
CN109039640B (en) | Encryption and decryption hardware system and method based on RSA cryptographic algorithm | |
US20110161390A1 (en) | Modular multiplication processing apparatus | |
KR100442218B1 (en) | Power-residue calculating unit using montgomery algorithm | |
Tian et al. | High-speed FPGA implementation of SIKE based on an ultra-low-latency modular multiplier | |
Zhang et al. | {FLASH}: Towards a high-performance hardware acceleration architecture for cross-silo federated learning | |
Tian et al. | Efficient software implementation of the SIKE protocol using a new data representation | |
Moon et al. | Fast VLSI arithmetic algorithms for high-security elliptic curve cryptographic applications | |
US6609141B1 (en) | Method of performing modular inversion | |
KR101223498B1 (en) | Method for generating public key in elliptic curve cryptography and system for executing the method | |
KR100974624B1 (en) | Method and Apparatus of elliptic curve cryptography processing in sensor mote and Recording medium using it | |
Vollala et al. | Efficient modular exponential algorithms compatible with hardware implementation of public‐key cryptography | |
KR100954584B1 (en) | Apparatus and Method for MSD first GF3^m serial multiplication and Recording medium using this | |
JP4423900B2 (en) | Scalar multiplication calculation method, apparatus and program for elliptic curve cryptography | |
Al-Haija et al. | Cost-effective design for binary Edwards elliptic curves crypto-processor over GF (2N) using parallel multipliers and architectures | |
CN113467752B (en) | Division operation device, data processing system and method for private calculation | |
US7480380B2 (en) | Method for efficient generation of modulo inverse for public key cryptosystems | |
KR100954582B1 (en) | Adder for GF3, Multiplier for GF3, Apparatus for computing unified addition subtraction for GF3 and Apparatus for MSB first GF3^m serial multiplication | |
Pinckney et al. | Public key cryptography | |
Saheed | Effective Rivest Shamir Adleman Cryptosystem Based on Chinese Remainder Theorem |
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: 20130621 Year of fee payment: 4 |
|
FPAY | Annual fee payment |
Payment date: 20140630 Year of fee payment: 5 |
|
FPAY | Annual fee payment |
Payment date: 20151102 Year of fee payment: 6 |
|
LAPS | Lapse due to unpaid annual fee |