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 PDF

Info

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
Application number
KR1020080016421A
Other languages
Korean (ko)
Other versions
KR20090090881A (en
Inventor
서석충
한동국
김태현
홍석희
Original Assignee
고려대학교 산학협력단
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 고려대학교 산학협력단 filed Critical 고려대학교 산학협력단
Priority to KR1020080016421A priority Critical patent/KR100974624B1/en
Publication of KR20090090881A publication Critical patent/KR20090090881A/en
Application granted granted Critical
Publication of KR100974624B1 publication Critical patent/KR100974624B1/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/60Methods or arrangements for performing computations using a digital non-denominational number representation, i.e. number representation without radix; Computing devices using combinations of denominational and non-denominational quantity representations, e.g. using difunction pulse trains, STEELE computers, phase computers
    • G06F7/72Methods or arrangements for performing computations using a digital non-denominational number representation, i.e. number representation without radix; Computing devices using combinations of denominational and non-denominational quantity representations, e.g. using difunction pulse trains, STEELE computers, phase computers using residue arithmetic
    • G06F7/724Finite field arithmetic
    • G06F7/725Finite field arithmetic over elliptic curves
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F5/00Methods or arrangements for data conversion without changing the order or content of the data handled
    • G06F5/06Methods 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/08Methods 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비트 기반의 유한체

Figure 112010011128503-pat00001
의 두 원소인
Figure 112010011128503-pat00002
에 있어서 상기
Figure 112010011128503-pat00003
에 대한 다항식을
Figure 112010011128503-pat00004
라하고, 상기
Figure 112010011128503-pat00005
에 대한 다항식을
Figure 112010011128503-pat00006
라고 할 때, 상기
Figure 112010011128503-pat00007
Figure 112010011128503-pat00008
를 이용하여 유한체 곱셈의 결과값
Figure 112010011128503-pat00009
를 생성하는 센서 모트에서의 효율적인 타원 곡선 암호 연산 방법에 있어서, 상기
Figure 112010011128503-pat00418
를 구성하는 j번째 워드(1 ≤ j ≤ t, 여기서 t는 상기
Figure 112010011128503-pat00419
를 메모리에 저장하기 위해 필요한 워드의 개수)의 상위 4비트를 0으로 패딩하면서 오른쪽으로 쉬프트한 다항식 u1과 상기
Figure 112010011128503-pat00420
를 구성하는 [j+1]번째 워드의 상위 4비트를 0으로 패딩하면서 오른쪽으로 쉬프트한 다항식 u2를 생성하는 단계; 상기 u1와 상기
Figure 112010011128503-pat00421
를 곱한 다항식 Tu1 및 상기 u2와 상기
Figure 112010011128503-pat00422
를 논리 곱한 다항식 Tu2를 이용하여 상기
Figure 112010011128503-pat00423
의 제 1 중간 결과값을 생성하는 단계; 상기 제 1 중간 결과값을 4 비트 레프트 쉬프트(left shift) 하는 단계; 상기
Figure 112010011128503-pat00424
를 구성하는 j번째 워드와 0x0F를 논리 곱한 다항식 v1과 상기
Figure 112010011128503-pat00425
를 구성하는 [j+1]번째 워드와 0x0F를 논리 곱한 다항식 v2를 생성하는 단계; 상기 v1와 상기
Figure 112010011128503-pat00426
를 곱한 다항식 Tv1 및 상기 v2와 상기
Figure 112010011128503-pat00427
를 논리 곱한 다항식 Tv2를 이용하여 상기
Figure 112010011128503-pat00428
의 제 2 중간 결과값을 생성하는 단계; 및 상기 제 1 중간 결과값의 4비트 레프트 쉬프트한 값과 상기 제 2 중간 결과값을 이용하여 상기 유한체 곱셈의 결과값
Figure 112010011128503-pat00429
를 생성하는 단계를 포함한다.8-bit based finite field
Figure 112010011128503-pat00001
Two elements of
Figure 112010011128503-pat00002
Above
Figure 112010011128503-pat00003
Polynomials for
Figure 112010011128503-pat00004
Lago;
Figure 112010011128503-pat00005
Polynomials for
Figure 112010011128503-pat00006
When said,
Figure 112010011128503-pat00007
And
Figure 112010011128503-pat00008
Result of finite field multiplication using
Figure 112010011128503-pat00009
An efficient elliptic curve cryptography method in a sensor moat for generating the
Figure 112010011128503-pat00418
J j words (1 ≤ j ≤ t, where t is the
Figure 112010011128503-pat00419
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
Figure 112010011128503-pat00420
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
Figure 112010011128503-pat00421
Multiply by T u1 and u 2 and
Figure 112010011128503-pat00422
Using the polynomial T u2 multiplied by
Figure 112010011128503-pat00423
Generating a first intermediate result of; Left shifting the first intermediate result value by 4 bits; remind
Figure 112010011128503-pat00424
The polynomial v 1 obtained by logically multiplying the jth word constituting the s by 0x0F
Figure 112010011128503-pat00425
Generating a polynomial v 2 obtained by logically multiplying the [j + 1] th word and 0x0F constituting a; V 1 and above
Figure 112010011128503-pat00426
Polynomial T v1 and v 2 and
Figure 112010011128503-pat00427
Using the polynomial T v2 multiplied by
Figure 112010011128503-pat00428
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.
Figure 112010011128503-pat00429
Generating a step.

본 발명에 의하면, 8비트 센서 모트에서 구현된 타원 곡선 소프트웨어 구현 중에서 가장 뛰어난 성능을 제공하며,

Figure 112010011128503-pat00017
의 타원 곡선 암호 구현을 포함하여 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.
Figure 112010011128503-pat00017
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

센서 모트에서의 효율적인 타원 곡선 암호 연산 방법, 그 장치 및 이를 기록한 기록매체{Method and Apparatus of elliptic curve cryptography processing in sensor mote and Recording medium using it}Method for efficient elliptic curve cryptography in sensor mote, its device and recording medium recording it {Method and Apparatus of elliptic curve cryptography processing in sensor mote and Recording medium using it}

본 발명은 타원 곡선 암호 연산에 관한 것으로, 특히 무선 센서 네트워크에서 사용되는 센서 모트의 일종인 미카즈(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.

한편, 다양한 차수

Figure 112008013410865-pat00018
을 사용하는 상호 간의 거래에 있어서 Versatile 프로세서를 사용함으로써 호환성을 높일 수 있다.Meanwhile, various orders
Figure 112008013410865-pat00018
Versatile processors can be used to increase compatibility in transactions between two parties.

많은 암호시스템에서는 유한체

Figure 112008013410865-pat00019
에서의 연산을 사용한다. 이는 일반적인 컴퓨터 상에서는
Figure 112008013410865-pat00020
의 성능이
Figure 112008013410865-pat00021
의 성능을 능가하기 때문이다.In many cryptosystems, finite
Figure 112008013410865-pat00019
Use the operation in. On a typical computer
Figure 112008013410865-pat00020
Performance
Figure 112008013410865-pat00021
Because it surpasses the performance.

그러나, 센서 모트와 같은 저전력 장치에서는 기본 워드의 크기가 작고, 또한

Figure 112008013410865-pat00022
의 유한체 연산에 대한 명령어가 제공되지 않기 때문에
Figure 112008013410865-pat00023
에서의 타원 곡선의 구현이 더 효율적으로 수행되고 있다.However, in low power devices such as sensor motes, the basic word size is small, and
Figure 112008013410865-pat00022
Because no instruction is provided for the finite field operation of
Figure 112008013410865-pat00023
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.

지금까지 상대적으로 만족할만한 성능을 제시한 타원곡선 암호 시스템은 모두

Figure 112008013410865-pat00024
에 기반을 두고 있다.All of the elliptic curve cryptosystems that have presented relatively satisfactory performance
Figure 112008013410865-pat00024
Is based on.

반면,

Figure 112008013410865-pat00025
에 기반을 둔 구현들은 센서 네트워크에 적용할 만큼 충분한 성능을 제시하지 못하고 있다.On the other hand,
Figure 112008013410865-pat00025
Based implementations do not provide enough performance for sensor networks.

지금까지의 센서 모트 상에서

Figure 112008013410865-pat00026
Figure 112008013410865-pat00027
에 기반을 둔 여러 타원 곡선 암호 소프트웨어가 구현되었으나, 이러한 구현들은 센서 네트워크에서 타원 곡선 암호의 실행가능성을 검증하기 위하여 개발되었다.On the sensor morte so far
Figure 112008013410865-pat00026
and
Figure 112008013410865-pat00027
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비트 센서 모트에서

Figure 112008013410865-pat00028
에 기반을 둔 첫 번째 구현인 EccM을 개발하였다. 그들은 UC Berkeley에서 개발된 TinySec 암호 모듈에 키 분배 메커니즘을 제공하기 위하여 타원곡선 암호를 이용하였다.Malan is an 8-bit sensor
Figure 112008013410865-pat00028
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 센서 모트와 같은 작은 임베디드 장치에서

Figure 112008013410865-pat00029
에 기 반을 둔 타원곡선 암호의 소프트웨어 구현은 여전히 느리다고 지적하였으며, 8비트 Atmega128 프로세서에서
Figure 112008013410865-pat00030
상의 빠른 모듈러 감산을 적용한 타원곡선 암호를 구현하였다.Here, in small embedded devices like Yan and shi sensor mort
Figure 112008013410865-pat00029
Pointed out that the software implementation of an elliptic curve cryptography based algorithm is still slow.
Figure 112008013410865-pat00030
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 외는

Figure 112008013410865-pat00031
상에서의 유한체 연산들이 저전력 마이크로프로세서에 의해서 효율적으로 지원되지 않기 때문에 매우 느리다고 지적하였다. 또한 이들은 명령어 집합 확장을 이용하는 추가적인 아키텍쳐 확장을 통하여
Figure 112008013410865-pat00032
상의 타원곡선 연산이
Figure 112008013410865-pat00033
상에서의 연산보다 빨라질 수 있다고 주장하였다.Eberle et al.
Figure 112008013410865-pat00031
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.
Figure 112008013410865-pat00032
Elliptic curve operations
Figure 112008013410865-pat00033
He argues that it can be faster than computation on the fly.

실제로

Figure 112008013410865-pat00034
상에서의 스칼라 곱셈을 어셈블리 언어로 구현한 결과 4.14초가 걸렸지만 아키텍쳐 확장을 이용한 경우 0.29초만 걸렸다.in reality
Figure 112008013410865-pat00034
The implementation of scalar multiplication in the assembly language took 4.14 seconds, but only 0.29 seconds with the architecture extension.

이 결과는

Figure 112008013410865-pat00035
상의 타원곡선 암호를 저전력 프로세서 상에서 구현할 때 소프트웨어로 구현하는 것보다는 하드웨어로 구현하는 것이 더욱 바람직하다는 주장을 뒷받침한다.This result is
Figure 112008013410865-pat00035
The elliptic curve cryptography on the low-power processor supports the argument that hardware implementations are more desirable than software implementations.

Blab와 Zitterbart는

Figure 112008013410865-pat00036
위에서 ECDH, ECDSA 그리고 El-Gamal을 구현하고, 이것들의 성능을 EccM과 비교하였다. 이들의 구현은 서명을 생성할 때와 검증할 때 각각 6.88초와 24.17초가 걸리며 코드의 길이는 75088 바이트였다.Blab and Zitterbart
Figure 112008013410865-pat00036
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비트 워드 크기를 사용하는 저전력 장치에서 소프트웨어로 구현된 타원곡선 암호 시스템의 성능은

Figure 112008013410865-pat00037
상에 기반을 둔 것들이
Figure 112008013410865-pat00038
상에 기반을 둔 것들보다 더욱 뛰어난 성능을 보였다.To date, the performance of software implemented elliptic curve cryptosystems in low power devices using 8-bit word size
Figure 112008013410865-pat00037
Based on the awards
Figure 112008013410865-pat00038
It outperformed those based on awards.

이러한 기존의 결과들을 보면 저전력 장치에서

Figure 112008013410865-pat00039
위의 타원곡선 암호의 소프트웨어 구현이
Figure 112008013410865-pat00040
에서의 것보다 더욱 효율적인 것으로 보이며,
Figure 112008013410865-pat00041
의 사용은 하드웨어적으로 구현될 때에만 적합한 것으로 보인다.These existing results show that in low power devices
Figure 112008013410865-pat00039
The software implementation of the elliptic curve cipher above
Figure 112008013410865-pat00040
Seems to be more efficient than that of
Figure 112008013410865-pat00041
The use of X seems to be suitable only when implemented in hardware.

이와 같이, 현재까지 센서 모트에서 구현된 타원곡선 암호 시스템의 경우, 연산 시간이 느리고 구현 코드가 크기 때문에 자원이 제약된 센서 모트에서 사용되기에 충분하지 않다. 뿐만 아니라, 타원 곡선 암호 시스템 연산에 있어서 수행되는

Figure 112008013410865-pat00042
상의 곱셈과 감산 과정에서 불필요한 중복된 메모리 접근으로 인하여 타원 곡선 암호시스템의 성능을 떨어뜨리는 문제점이 있다.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
Figure 112008013410865-pat00042
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.

따라서, 본 발명이 해결하고자 하는 첫 번째 과제는 저전력 장치의 프로세서에서의 유한체 연산을 명령어 레벨에서 제공하지 않으므로, 이를 연산하기 위해서는 많은 메모리 접근이 필요하게 되는바, 이에 대한 중복된 연산을 제거함으로써

Figure 112008013410865-pat00043
상에서의 타원 곡선 암호 시스템의 성능을 향상시킬 수 있는 센서 모트에서의 효율적인 타원 곡선 암호 연산 방법을 제공하는 것이다.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
Figure 112008013410865-pat00043
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비트 기반의 유한체

Figure 112010011128503-pat00044
의 두 원소인
Figure 112010011128503-pat00045
에 있어서 상기
Figure 112010011128503-pat00046
에 대한 다항식을
Figure 112010011128503-pat00047
라하고, 상기
Figure 112010011128503-pat00048
에 대한 다항식을
Figure 112010011128503-pat00049
라고 할 때, 상기
Figure 112010011128503-pat00050
Figure 112010011128503-pat00051
를 이용하여 유한체 곱셈의 결과값
Figure 112010011128503-pat00052
를 생성하는 센서 모트에서의 효율적인 타원 곡선 암호 연산 방법에 있어서, 상기
Figure 112010011128503-pat00430
를 구성하는 j번째 워드(1 ≤ j ≤ t, 여기서 t는 상기
Figure 112010011128503-pat00431
를 메모리에 저장하기 위해 필요한 워드의 개수)의 상위 4비트를 0으로 패딩하면서 오른쪽으로 쉬프트한 다항식 u1과 상기
Figure 112010011128503-pat00432
를 구성하는 [j+1]번째 워드의 상위 4비트를 0으로 패딩하면서 오른쪽으로 쉬프트한 다항식 u2를 생성하는 단계; 상기 u1와 상기
Figure 112010011128503-pat00433
를 곱한 다항식 Tu1 및 상기 u2와 상기
Figure 112010011128503-pat00434
를 논리 곱한 다항식 Tu2를 이용하여 상기
Figure 112010011128503-pat00435
의 제 1 중간 결과값을 생성하는 단계; 상기 제 1 중간 결과값을 4 비트 레프트 쉬프트(left shift) 하는 단계; 상기
Figure 112010011128503-pat00436
를 구성하는 j번째 워드와 0x0F를 논리 곱한 다항식 v1과 상기
Figure 112010011128503-pat00437
를 구성하는 [j+1]번째 워드와 0x0F를 논리 곱한 다항식 v2를 생성하는 단계; 상기 v1와 상기
Figure 112010011128503-pat00438
를 곱한 다항식 Tv1 및 상기 v2와 상기
Figure 112010011128503-pat00439
를 논리 곱한 다항식 Tv2를 이용하여 상기
Figure 112010011128503-pat00440
의 제 2 중간 결과값을 생성하는 단계; 및 상기 제 1 중간 결과값의 4비트 레프트 쉬프트한 값과 상기 제 2 중간 결과값을 이용하여 상기 유한체 곱셈의 결과값
Figure 112010011128503-pat00441
를 생성하는 단계를 포함하는 센서 모트에서의 효율적인 타원 곡선 암호 연산 방법을 제공한다.
여기서 상기 제 1 중간 결과값은 하기의 식(1)의 두 번째 행에 의해 연산되며, 상기 제 2 중간 결과값은 하기의 식(2)의 두 번째 행에 의해 연산되는 것을 특징으로 한다.
<식(1)>
Figure 112010011128503-pat00442
.
<식(2)>
Figure 112010011128503-pat00443
.8-bit based finite field
Figure 112010011128503-pat00044
Two elements of
Figure 112010011128503-pat00045
Above
Figure 112010011128503-pat00046
Polynomials for
Figure 112010011128503-pat00047
Lago;
Figure 112010011128503-pat00048
Polynomials for
Figure 112010011128503-pat00049
When said,
Figure 112010011128503-pat00050
And
Figure 112010011128503-pat00051
Result of finite field multiplication using
Figure 112010011128503-pat00052
An efficient elliptic curve cryptography method in a sensor moat for generating the
Figure 112010011128503-pat00430
J j words (1 ≤ j ≤ t, where t is the
Figure 112010011128503-pat00431
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
Figure 112010011128503-pat00432
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
Figure 112010011128503-pat00433
Multiply by T u1 and u 2 and
Figure 112010011128503-pat00434
Using the polynomial T u2 multiplied by
Figure 112010011128503-pat00435
Generating a first intermediate result of; Left shifting the first intermediate result value by 4 bits; remind
Figure 112010011128503-pat00436
The polynomial v 1 obtained by logically multiplying the jth word constituting the s by 0x0F
Figure 112010011128503-pat00437
Generating a polynomial v 2 obtained by logically multiplying the [j + 1] th word and 0x0F constituting a; V 1 and above
Figure 112010011128503-pat00438
Polynomial T v1 and v 2 and
Figure 112010011128503-pat00439
Using the polynomial T v2 multiplied by
Figure 112010011128503-pat00440
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.
Figure 112010011128503-pat00441
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)>
Figure 112010011128503-pat00442
.
<Equation (2)>
Figure 112010011128503-pat00443
.

한편, 상기

Figure 112008013410865-pat00060
Figure 112008013410865-pat00061
는 4비트 성분으로 이루어진 것을 특징으로 한다.Meanwhile,
Figure 112008013410865-pat00060
And
Figure 112008013410865-pat00061
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.

한편, 상기 유한체 곱셈의 결과값

Figure 112008013410865-pat00062
를 생성하는 단계는 상기 상위 4비트에 해당되는 사전 연산 테이블을 호출함으로써 생성된 배타적 논리합 연산의 결과값을 4 비트 레프트 쉬프트(left shift) 하는 단계를 포함하는 것을 특징으로 한다.On the other hand, the result of the finite field multiplication
Figure 112008013410865-pat00062
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.

아울러, 상기 유한체 곱셈의 결과값

Figure 112008013410865-pat00063
를 생성하는 단계는 한 쌍의 연속한 사전 연산 테이블을 동시에 호출하고, 연속한 부분의 배타적 논리합 연산을 하나로 통합하여 배타적 논리합 연산의 결과값을 생성하는 단계를 포함하는 것을 특징으로 한다.In addition, the result of the finite field multiplication
Figure 112008013410865-pat00063
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.

그리고, 상기 유한체 곱셈의 결과값

Figure 112008013410865-pat00064
는 상기
Figure 112008013410865-pat00065
의 비트 인덱스를
Figure 112008013410865-pat00066
,
Figure 112008013410865-pat00067
를 상기
Figure 112008013410865-pat00068
에 대한 비트 인덱스를
Figure 112008013410865-pat00069
, 상기
Figure 112008013410865-pat00070
에 대한 사전 연산 테이블을
Figure 112008013410865-pat00071
, 라 할 때, 수학식
Figure 112008013410865-pat00072
에 의해 연산되는 것을 특징으로 한다.And the result of the finite field multiplication.
Figure 112008013410865-pat00064
Above
Figure 112008013410865-pat00065
Bit index of
Figure 112008013410865-pat00066
,
Figure 112008013410865-pat00067
Remind
Figure 112008013410865-pat00068
Bit index for
Figure 112008013410865-pat00069
, remind
Figure 112008013410865-pat00070
Pre-operation table for
Figure 112008013410865-pat00071
When we say,
Figure 112008013410865-pat00072
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비트 기반의 유한체

Figure 112008013410865-pat00073
의 두 원소인
Figure 112008013410865-pat00074
에 있어서 상기
Figure 112008013410865-pat00075
에 대한 다항식을
Figure 112008013410865-pat00076
라하고, 상기
Figure 112008013410865-pat00077
에 대한 다항식을
Figure 112008013410865-pat00078
라고 할 때, 상기
Figure 112008013410865-pat00079
Figure 112008013410865-pat00080
를 이용하여 유한체 곱셈의 결과값
Figure 112008013410865-pat00081
를 생성하는 센서 모트에서의 효율적인 타원 곡선 암호 연산 장치에 있어서, 상기
Figure 112008013410865-pat00082
의 상위 4비트에 대하여 각각의 비트 성분과 상기
Figure 112008013410865-pat00083
각각의 사전 연산 테이블에 논리 곱 연산을 수행하여 제 1 중간 결과값을 생성하는 제 1 중간 결과값 생성부; 상기
Figure 112008013410865-pat00084
의 하위 4비트에 대하여 각각의 비트 성분과 상기
Figure 112008013410865-pat00085
각각의 사전 연산 테이블에 논리 곱 연산을 수행하여 제 2 중간 결과값을 생성하는 제 2 중간 결과값 생성부; 및 상기 생성된 제 1 중간 결과값을 호출하고 상기
Figure 112008013410865-pat00086
의 워드에 상위 4비트를 스캔하여 상기 상위 4비트에 해당되는 사전 연산 테이블을 호출하고, 상기 생성된 제 2 중간 결과값을 호출하고 상기
Figure 112008013410865-pat00087
의 워드에 하위 4비트를 스캔하여 상기 상위 4비트에 해당되는 사전 연산 테이블을 호출하는 호출부; 및 상기 호출부에 따라 호출된 제 1 중간 결과값 및 사전 연산 테이블에 따라 배타적 논리합 연산을 수행하고, 상기 생성된 제 2 중간 결과값 및 사전 연산 테이블을 호출하여 배타적 논리합 연산을 수행하여 상기 유한체 곱셈의 결과값
Figure 112008013410865-pat00088
를 생성하는 배타적 논리합 연 산 수행부를 포함하는 센서 모트에서의 효율적인 타원 곡선 암호 연산 장치를 제공한다.8-bit based finite field
Figure 112008013410865-pat00073
Two elements of
Figure 112008013410865-pat00074
Above
Figure 112008013410865-pat00075
Polynomials for
Figure 112008013410865-pat00076
Lago;
Figure 112008013410865-pat00077
Polynomials for
Figure 112008013410865-pat00078
When said,
Figure 112008013410865-pat00079
And
Figure 112008013410865-pat00080
Result of finite field multiplication using
Figure 112008013410865-pat00081
An efficient elliptic curve cryptographic apparatus in a sensor moat for generating
Figure 112008013410865-pat00082
Each bit component for the upper 4 bits of
Figure 112008013410865-pat00083
A first intermediate result generator generating a first intermediate result by performing a logical product operation on each pre-operation table; remind
Figure 112008013410865-pat00084
And each bit component for the lower 4 bits of
Figure 112008013410865-pat00085
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
Figure 112008013410865-pat00086
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
Figure 112008013410865-pat00087
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
Figure 112008013410865-pat00088
It provides an efficient elliptic curve cryptographic computing device in the sensor mote including an exclusive OR operation generating unit.

한편, 상기

Figure 112008013410865-pat00089
Figure 112008013410865-pat00090
는 4비트 성분으로 이루어진 것을 특징으로 한다.Meanwhile,
Figure 112008013410865-pat00089
And
Figure 112008013410865-pat00090
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.

한편, 상기 유한체 곱셈의 결과값

Figure 112008013410865-pat00091
를 생성하는 단계는 한 쌍의 연속한 사전 연산 테이블을 동시에 호출하고, 상기 연속한 부분의 배타적 논리합 연산을 하나로 통합하여 배타적 논리합 연산의 결과값을 생성하는 단계를 포함하는 것을 특징으로 한다.On the other hand, the result of the finite field multiplication
Figure 112008013410865-pat00091
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.

또한, 상기 유한체 곱셈의 결과값

Figure 112008013410865-pat00092
는 상기
Figure 112008013410865-pat00093
의 비트 인덱스를
Figure 112008013410865-pat00094
,
Figure 112008013410865-pat00095
를 상기
Figure 112008013410865-pat00096
에 대한 비트 인덱스를
Figure 112008013410865-pat00097
, 상기
Figure 112008013410865-pat00098
에 대한 사전 연산 테이블을
Figure 112008013410865-pat00099
, 라 할 때, 수학식
Figure 112008013410865-pat00100
에 의해 연산되는 것을 특징으로 한다.In addition, the result of the finite field multiplication
Figure 112008013410865-pat00092
Above
Figure 112008013410865-pat00093
Bit index of
Figure 112008013410865-pat00094
,
Figure 112008013410865-pat00095
Remind
Figure 112008013410865-pat00096
Bit index for
Figure 112008013410865-pat00097
, remind
Figure 112008013410865-pat00098
Pre-operation table for
Figure 112008013410865-pat00099
When we say,
Figure 112008013410865-pat00100
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.

본 발명에 의하면,

Figure 112008013410865-pat00101
에 기반을 둔 타원 곡선의 소프트웨어 구현을 통하여 기존의
Figure 112008013410865-pat00102
상에서 구현된 모든 타원곡선 소프트웨어들의 성능을 능가할 뿐만 아니라,
Figure 112008013410865-pat00103
의 타원 곡선 암호 구현을 포함하여 Atmega128 프로세서에서 C언어 또는 C 언어와 인라인 어셈블리(inline assembly)를 혼합하여 구현한 것들에 비하여 더욱 빠른 연산 속도를 제공하며, 8비트 Atmega128 프로세서에서
Figure 112008013410865-pat00104
에 기반을 둔 Koblitz 커브를 구현할 수 있고, 이는 센서 모트 상에서 첫 번째 Koblitz 커브의 두 배 연산은 간단한 유한체 제곱연산들로 대체될 수 있기 때문에 일반적인 커브에 비하여 더욱 빠른 연산 속도를 제공할 수 있는 효과가 있다.According to the invention,
Figure 112008013410865-pat00101
The software implementation of elliptic curve based on
Figure 112008013410865-pat00102
Not only outperforms all the elliptic curve software implemented in
Figure 112008013410865-pat00103
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
Figure 112008013410865-pat00104
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.

전술한 바와 같이,

Figure 112008013410865-pat00105
위의 타원곡선 암호의 소프트웨어 구현이
Figure 112008013410865-pat00106
에서의 것보다 더욱 효율적인 것으로 보이며,
Figure 112008013410865-pat00107
의 사용은 하드웨어적으로 구현될 때에만 적합한 것으로 일반적으로 알려진 기술에 대하여, 본 발명은
Figure 112008013410865-pat00108
상에서의 유한체 곱셈이
Figure 112008013410865-pat00109
상의 유한체 곱셈보다 빠르게 수행되는 센서 모트에서의 효율적인 타원 곡선 암호 연산 방법을 제공한다.As mentioned above,
Figure 112008013410865-pat00105
The software implementation of the elliptic curve cipher above
Figure 112008013410865-pat00106
Seems to be more efficient than that of
Figure 112008013410865-pat00107
With respect to techniques generally known to be suitable only when implemented in hardware, the present invention
Figure 112008013410865-pat00108
Finite field multiplication
Figure 112008013410865-pat00109
An efficient elliptic curve cryptographic algorithm is provided in the sensor mote that performs faster than the finite field multiplication.

이를 위하여 본 발명은,

Figure 112008013410865-pat00110
상의 유한체 곱셈과 감산 연산에서 호출(Load)과 저장(Store)에 따른 많은 수의 메모리 접근 연산에서 불필요하게 중복된 메모리 접근 명령의 수를 줄일 수 있는 방법을 제시한다.To this end, the present invention,
Figure 112008013410865-pat00110
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.

본 발명에 따르면

Figure 112008013410865-pat00111
에 기반을 둔 타원곡선의 소프트웨어 구현 중에서 가장 뛰어난 성능을 제공하며, 본 발명에 따른 센서 모트에서의 효율적인 타원 곡선 암호 연산 방법은 기존의
Figure 112008013410865-pat00112
상에서 구현된 모든 타원곡선 소프트웨어들의 성능을 능가한다.According to the invention
Figure 112008013410865-pat00111
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
Figure 112008013410865-pat00112
The performance of all elliptic curve software implemented in

뿐만 아니라,

Figure 112008013410865-pat00113
의 타원 곡선 암호 구현을 포함하여 Atmega128 프로세서에서 C언어 또는 C 언어와 인라인 어셈블리(inline assembly)를 혼합하여 구현한 것들에 비하여 더욱 빠르다.As well as,
Figure 112008013410865-pat00113
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 프로세서에서

Figure 112008013410865-pat00114
에 기반을 둔 Koblitz 커브를 구현할 수 있고, 이는 센서 모트 상에서 첫 번째 Koblitz 커브의 두 배 연산은 간단한 유한체 제곱연산들로 대체될 수 있기 때문에 일반적인 커브에 비하여 더욱 빠른 연산 속도를 제공할 수 있다.In addition, the present invention is an 8-bit Atmega128 processor according to the sensor mote (micaz) sensor mote
Figure 112008013410865-pat00114
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 Equation 1 below. In Equation 1, x and y variables refer to a coordinate axis.

Figure 112008013410865-pat00115
Figure 112008013410865-pat00115

여기서, F의 지표가 2인 경우, 상기의 수학식 1은 하기의 수학식 2과 같이 단순화 될 수 있다.Here, when the index of F is 2, Equation 1 may be simplified as shown in Equation 2 below.

Figure 112008013410865-pat00116
Figure 112008013410865-pat00116

여기서, 아벨군의 규칙에 의거하여 타원곡선 상에 존재하는 두 점

Figure 112008013410865-pat00117
Figure 112008013410865-pat00118
의 합의 결과
Figure 112008013410865-pat00119
는 여전히 타원 곡선 위에 존재한다. 서로 다른 두 점의 연산 은 타원 곡선 점 덧셈 연산(Elliptic Curve point ADDition:ECADD)이라고 불리고, 같은 점을 더하는 연산은 타원 곡선 점 두배 연산(Elliptic Curve point DouBLing:ECDBL)으로 불린다.Here, two points on the elliptic curve according to Abel's rule
Figure 112008013410865-pat00117
and
Figure 112008013410865-pat00118
Consensus result of
Figure 112008013410865-pat00119
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).

곡선 상의 임의의 두 점을 각각

Figure 112008013410865-pat00120
,
Figure 112008013410865-pat00121
라 할 때, 서로 다른 값을 가지는
Figure 112008013410865-pat00122
Figure 112008013410865-pat00123
에 대하여 상기
Figure 112008013410865-pat00124
Figure 112008013410865-pat00125
의 합을
Figure 112008013410865-pat00126
라 하면, 상기
Figure 112008013410865-pat00127
의 아핀 좌표는 하기의 수학식 3과 같이 연산될 수 있다.Each of the two random points on the curve
Figure 112008013410865-pat00120
,
Figure 112008013410865-pat00121
When we say that different values
Figure 112008013410865-pat00122
And
Figure 112008013410865-pat00123
About above
Figure 112008013410865-pat00124
and
Figure 112008013410865-pat00125
Sum of
Figure 112008013410865-pat00126
If I say
Figure 112008013410865-pat00127
Affine coordinate of may be calculated as shown in Equation 3 below.

Figure 112008013410865-pat00128
Figure 112008013410865-pat00128

아핀 좌표계에서 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.

따라서, 구현 환경에서,

Figure 112008013410865-pat00129
가 역원이고,
Figure 112008013410865-pat00130
이 곱셈인 경우에
Figure 112008013410865-pat00131
을 만족하면, LD 좌표계를 사용하는 것이 더욱 효율적이다.Thus, in an implementation environment,
Figure 112008013410865-pat00129
Is a station member,
Figure 112008013410865-pat00130
If is multiplication
Figure 112008013410865-pat00131
Is satisfied, it is more efficient to use the LD coordinate system.

Figure 112008013410865-pat00132
상에서 하나의 점
Figure 112008013410865-pat00133
를 연속하여
Figure 112008013410865-pat00134
번 더하는 것을 스칼라 곱셈(scalar multiplication)이라고 부르며,
Figure 112008013410865-pat00135
로 표현된다. 이 스칼라 곱셈은 ECDH와 ECDSA 연산에서 핵심이 되는 연산이다.
Figure 112008013410865-pat00132
One point on
Figure 112008013410865-pat00133
In succession
Figure 112008013410865-pat00134
Adding one is called scalar multiplication,
Figure 112008013410865-pat00135
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 을 이용하였으며,

Figure 112008013410865-pat00136
상의 원소를 표현하기 위하여 다항식 기저를 사용하였다. 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.
Figure 112008013410865-pat00136
The polynomial basis was used to represent the elements of the phase.

본 발명에서 기술되는 알고리즘은 Guide to Elliptic Curve Cryptography에 제시된 32 비트 기반의

Figure 112008013410865-pat00137
유한체 연산 알고리즘에 기반을 둔 것으로서 8비트 환경에 맞게 수정하였다. The algorithm described in the present invention is based on the 32 bit presented in Guide to Elliptic Curve Cryptography.
Figure 112008013410865-pat00137
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비트 기반의 유한체

Figure 112008013410865-pat00138
의 두 원소인
Figure 112008013410865-pat00139
에 있어서, 상기
Figure 112008013410865-pat00140
에 대한 다항식
Figure 112008013410865-pat00141
와 상기
Figure 112008013410865-pat00142
에 대한 다항식
Figure 112008013410865-pat00143
는 LD 좌표계에 의해 표현될 수 있으며, 본 발명의 타원 곡선 암호 연산은 스칼라 곱셈 또는 ECDSA 연산을 포함할 수 있다.Here, an 8-bit based finite body applied to the present invention
Figure 112008013410865-pat00138
Two elements of
Figure 112008013410865-pat00139
In the above
Figure 112008013410865-pat00140
Polynomials for
Figure 112008013410865-pat00141
And above
Figure 112008013410865-pat00142
Polynomials for
Figure 112008013410865-pat00143
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.

Figure 112008013410865-pat00144
Figure 112008013410865-pat00144

유한체 제곱 연산Finite Field Square Operations

한편,

Figure 112008013410865-pat00145
의 한 원소
Figure 112008013410865-pat00146
를 제곱하는 것은
Figure 112008013410865-pat00147
의 이진 표현인 연속한 비트 사이에 0을 삽입하여 결과적으로
Figure 112008013410865-pat00148
가 된다.Meanwhile,
Figure 112008013410865-pat00145
An element of
Figure 112008013410865-pat00146
Squared
Figure 112008013410865-pat00147
Insert zeros between consecutive bits, which is a binary representation of
Figure 112008013410865-pat00148
Becomes

따라서, 사전 연산을 통한 테이블 룩업을 통하여 상기 제곱 연산은 효율적으로 연산할 수 있다. 도 1에 따른 알고리즘 1은 하나의 워드를 제곱하여 두 워드로 확장된다.Therefore, the square operation can be efficiently performed through a table lookup through a dictionary operation. Algorithm 1 according to FIG. 1 squares one word and extends to two words.

도 1을 참조하면,

Figure 112008013410865-pat00149
의 한 원소이며, m-1차의 최대 차수를 가지는 이진 다항식으로 표현되는 하나의 워드
Figure 112008013410865-pat00150
를 입력으로 하여 상기 워드를 제곱하여 두 워드로 확장한
Figure 112008013410865-pat00151
를 출력한다.Referring to Figure 1,
Figure 112008013410865-pat00149
One word, expressed as a binary polynomial with the largest order of m-1 order
Figure 112008013410865-pat00150
Squares the word and expands it to two words
Figure 112008013410865-pat00151
.

우선, 사전연산(precomputation)으로 4비트의 워드의 집합으로 상기 워드의 각 비트로 표현되는 집합인

Figure 112008013410865-pat00152
에 각각의 비트 앞에 0을 삽입하여 8비트로 확장한 사전 연산 테이블
Figure 112008013410865-pat00153
을 생성한다First, a set of four bits of words by precomputation is a set represented by each bit of the word.
Figure 112008013410865-pat00152
Pre-operation table extended to 8 bits by inserting 0 before each bit in the
Figure 112008013410865-pat00153
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비트 단위의 단위 테이블을 출력하여 최종적으로 제곱 연산을 수행하여 두 워드로 확장한

Figure 112008013410865-pat00154
를 출력하게 된다.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.
Figure 112008013410865-pat00154
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.

이때, 최적의 윈도우 크기(

Figure 112008013410865-pat00155
)는 4이다. 비록 크기 4의 윈도우는 15개의 구성요소에 대하여 사전연산을 해야 하지만(0번째 요소는 제외), 이를 통하여 유한체 곱셈의 연산은 현저히 빨라질 수 있다.In this case, the optimal window size (
Figure 112008013410865-pat00155
) Is 4. Although a window of size 4 must be precomputed for the 15 components (except for the 0th element), this can significantly speed up the computation of finite field multiplication.

도 2에 도시된 바와 같이 알고리즘 2는 8비트 워드 크기를 사용하는 환경에서 윈도우 기법(

Figure 112008013410865-pat00156
)을 적용한 레프트 라이트 결합 방법을 기술하고 있다.As shown in Fig. 2, Algorithm 2 uses the window technique in an environment using an 8-bit word size.
Figure 112008013410865-pat00156
We describe a method for combining left light using.

워드 크기가 8 비트이고, 윈도우의 크기가 4이기 때문에,

Figure 112008013410865-pat00157
Figure 112008013410865-pat00158
Figure 112008013410865-pat00159
,
Figure 112008013410865-pat00160
와 같이 효율적으로 연산될 수 있다.Since the word size is 8 bits and the window size is 4,
Figure 112008013410865-pat00157
Wow
Figure 112008013410865-pat00158
Is
Figure 112008013410865-pat00159
,
Figure 112008013410865-pat00160
Can be computed efficiently.

도 2에 따른 알고리즘 2의 과정 6과 과정 10의 부분적(partial) XOR 곱셈인

Figure 112008013410865-pat00161
는 실제로 루프 문(for loop)으로 구현된다. 여기서,
Figure 112008013410865-pat00162
는 상기 연산된
Figure 112008013410865-pat00163
에 대한 사전 연산 테이블을 의미한다.Partial XOR multiplication of process 6 and process 10 of algorithm 2 according to FIG.
Figure 112008013410865-pat00161
Is actually implemented as a for loop. here,
Figure 112008013410865-pat00162
Is calculated above
Figure 112008013410865-pat00163
Pre-operation table for.

즉,

Figure 112008013410865-pat00164
의 실제 코드는
Figure 112008013410865-pat00165
가 된다. In other words,
Figure 112008013410865-pat00164
The actual code of
Figure 112008013410865-pat00165
Becomes

이는 실제로 호출된

Figure 112008013410865-pat00166
Figure 112008013410865-pat00167
에 대하여 XOR 연산이 수행된 후, 다시
Figure 112008013410865-pat00168
에 저장된다.Which is actually called
Figure 112008013410865-pat00166
Wow
Figure 112008013410865-pat00167
After the XOR operation is performed on, again
Figure 112008013410865-pat00168
Are stored in.

따라서, 워드의 크기가 작아질수록 더 많은 수의 메모리 접근 명령이 필요하다. 예를 들어,

Figure 112008013410865-pat00169
상에서
Figure 112008013410865-pat00170
Figure 112008013410865-pat00171
인 경우 각각의 호출(Load)과 저장(Store) 명령어를 비교해보면,
Figure 112008013410865-pat00172
의 경우는
Figure 112008013410865-pat00173
이기 때문에 14번의 호출과 7번의 저장 연산을 필요로 하는 반면,
Figure 112008013410865-pat00174
인 경우는
Figure 112008013410865-pat00175
이므로 44번의 호출과 22번의 저장 연산을 요구하게 된다.Thus, the smaller the word size, the more memory access instructions are required. E.g,
Figure 112008013410865-pat00169
On
Figure 112008013410865-pat00170
Wow
Figure 112008013410865-pat00171
If you compare the Load and Store commands,
Figure 112008013410865-pat00172
In the case of
Figure 112008013410865-pat00173
This requires 14 calls and 7 save operations,
Figure 112008013410865-pat00174
If is
Figure 112008013410865-pat00175
This requires 44 calls and 22 save operations.

한편,

Figure 112008013410865-pat00176
상의 곱셈과 제곱의 결과는 기약 다항식
Figure 112008013410865-pat00177
로 감산된다. FIPS 186-2 표준에서 NIST가 권고한 빠른 모듈러 감산을 위한 감산 다항식이 존재한다.Meanwhile,
Figure 112008013410865-pat00176
Multiply and square the result of the sum of the terms
Figure 112008013410865-pat00177
Is subtracted. There is a subtraction polynomial for fast modular subtraction recommended by NIST in the FIPS 186-2 standard.

이러한 다항식들은 3차항(Trinomial) 또는 5차항(Pentanomial)이기 때문에

Figure 112008013410865-pat00178
는 효율적으로 연산될 수 있다.Since these polynomials are trinomial or pentanomial
Figure 112008013410865-pat00178
Can be computed efficiently.

도 3은 종래의 모듈러 감산 알고리즘을 도시한 것이다.3 illustrates a conventional modular subtraction algorithm.

도 3은 곱셈과 제곱의 결과를

Figure 112008013410865-pat00179
의 원소로 감산시킨다. 전술한 유한체 곱셈 알고리즘과 마찬가지로 도 3에 따른 유한체 곱셈 알고리즘은 8비트 워드이기 때문에 많은 수의 메모리 접근 연산이 연관되어 있으므로 연산이 비효율적이다.3 shows the result of multiplication and square
Figure 112008013410865-pat00179
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에서

Figure 112008013410865-pat00180
상의 곱셈 연산에 대한 역원 연산의 비율을 계산해 본 결과 24.99의 결과를 얻었다.(
Figure 112008013410865-pat00181
)In fact, in Atmega128 of 8-bit word
Figure 112008013410865-pat00180
The ratio of the inverse operation to the multiplication of the phases is calculated and the result is 24.99.
Figure 112008013410865-pat00181
)

따라서, 스칼라 곱셈 과정에서 가능한 한 역원 연산을 제거하는 것이 연산 성능을 향상시키기 위하여 바람직하다. 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 프로세서에서

Figure 112008013410865-pat00182
상의 유한체 연산들의 연산 시간을 비교한 것으로 본 발명에 따른 센서 모트에서의 효율적인 타원 곡선 암호 연산 기법에서의 적절한 좌표 선택을 뒷받침한다.Table 2 below shows the Atmega128 processor.
Figure 112008013410865-pat00182
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.

Figure 112008013410865-pat00183
Figure 112008013410865-pat00183

타원 곡선 점 덧셈 연산(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.

Figure 112008013410865-pat00184
위의 한 점
Figure 112008013410865-pat00185
의 역원은
Figure 112008013410865-pat00186
가 된다. 이와 같이
Figure 112008013410865-pat00187
의 원소의 역원은 적은 비용의 연산으로 계산될 수 있으며, 두 점의 뺄셈은 덧셈과 같은 방법으로 연산될 수 있기 때문에 스칼라 곱셈 과정에서 부호화된 이진 표현을 하기의 수학식 4에 따라 쉽게 적용할 수 있다.
Figure 112008013410865-pat00184
A point above
Figure 112008013410865-pat00185
The station of
Figure 112008013410865-pat00186
Becomes like this
Figure 112008013410865-pat00187
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 Equation 4 below. have.

Figure 112008013410865-pat00188
Figure 112008013410865-pat00188

비근접 형태(Non Adjacent Form:NAF)는 모든 부호화된 이진 표현 중에서 최적의 넌 제로(non-Zero) 밀도를 제공한다.Non Adjacent Form (NAF) provides the optimal non-zero density among all coded binary representations.

NAF를 이용한 스칼라 곱셈은 상기 수학식 4에 따라 정의되는

Figure 112008013410865-pat00189
을 적용하여
Figure 112008013410865-pat00190
의 연산에 따라 계산될 수 있다.Scalar multiplication using NAF is defined according to Equation 4 above.
Figure 112008013410865-pat00189
By applying
Figure 112008013410865-pat00190
It can be calculated according to the operation of.

여기서 이진 표현을 사용할 경우

Figure 112008013410865-pat00191
가 필요하다. 만약 추가적인 메모리가 사용 가능하다면 스칼라
Figure 112008013410865-pat00192
를 한번에
Figure 112008013410865-pat00193
비트씩 처리할 수 있는 슬라이딩 윈도우 방법을 적용하여 스칼라 곱셈의 연산 시간을 더욱 줄일 수 있다.If you use binary representation here
Figure 112008013410865-pat00191
Is needed. Scalar if additional memory is available
Figure 112008013410865-pat00192
At a time
Figure 112008013410865-pat00193
By applying a sliding window method that can process bit by bit, the computation time of scalar multiplication can be further reduced.

Figure 112008013410865-pat00194
크기의 윈도우를 사용하는 width - w NAF(wNAF)는
Figure 112008013410865-pat00195
개의 사전 연 산 점들을 담는 사전 연산 테이블을 이용하여
Figure 112008013410865-pat00196
의 넌제로(nonzero) 밀도를 제공한다.
Figure 112008013410865-pat00194
Width-w NAF (wNAF) using a window of size
Figure 112008013410865-pat00195
Using a pre-computation table containing two pre-computation points
Figure 112008013410865-pat00196
Gives a nonzero density of.

따라서, wNAF를 적용한 스칼라 곱셈은

Figure 112008013410865-pat00197
의 연산으로 계산된다.Therefore, scalar multiplication using wNAF
Figure 112008013410865-pat00197
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에서

Figure 112008013410865-pat00198
그리고
Figure 112008013410865-pat00199
인 경우, 이를 코블리츠(koblitz) 커브라고 불리며, 이것의 큰 장점은 스칼라 곱셈에서 ECDBL 연산을 몇 개의 간단한 유한체 제곱 연산으로 대체시킬 수 있다는 것이다.In Equation 2
Figure 112008013410865-pat00198
And
Figure 112008013410865-pat00199
Is called a koblitz curve, and its great advantage is that it can replace ECDBL operations with some simple finite field squares operations in scalar multiplication.

따라서, wTNAF를 적용한 스칼라 곱셈은

Figure 112008013410865-pat00200
만으로 연산될 수 있다.Therefore, scalar multiplication using wTNAF
Figure 112008013410865-pat00200
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.

한편, 정수

Figure 112008013410865-pat00201
에 wTNAF를 적용할 경우, 리코딩된 결과의 길이가
Figure 112008013410865-pat00202
가 되며, 이것은 wNAF와 비교하면 두 배의 길이를 가지게 된다.Meanwhile, integer
Figure 112008013410865-pat00201
If you apply wTNAF to the record, the length of the recorded result
Figure 112008013410865-pat00202
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.

이를 위하여 상기 정수

Figure 112008013410865-pat00203
와 대응되는 새로운
Figure 112008013410865-pat00204
값을 탐색하는데 이것은
Figure 112008013410865-pat00205
에서
Figure 112008013410865-pat00206
,
Figure 112008013410865-pat00207
을 만족하는 가장 작은 것이다.For this purpose
Figure 112008013410865-pat00203
New counterpart
Figure 112008013410865-pat00204
Search for a value
Figure 112008013410865-pat00205
in
Figure 112008013410865-pat00206
,
Figure 112008013410865-pat00207
The smallest thing to satisfy.

이 경우

Figure 112008013410865-pat00208
의 기수가 n인 모든 점
Figure 112008013410865-pat00209
에 대하여
Figure 112008013410865-pat00210
가 성립한다. 즉,
Figure 112008013410865-pat00211
보다 짧은 형태의
Figure 112008013410865-pat00212
를 wTNAF에 적용하여
Figure 112008013410865-pat00213
길이의 리코딩 결과를 얻을 수 있는 것이다.in this case
Figure 112008013410865-pat00208
Any point whose base is n
Figure 112008013410865-pat00209
about
Figure 112008013410865-pat00210
Is established. In other words,
Figure 112008013410865-pat00211
Shorter
Figure 112008013410865-pat00212
Is applied to wTNAF
Figure 112008013410865-pat00213
You can get the result of the length recording.

Figure 112008013410865-pat00214
를 연산하기 위하여 도 4에 따른 알고리즘 4가 이용된다.
Figure 112008013410865-pat00214
Algorithm 4 according to FIG. 4 is used to compute.

알고리즘 4는 wTNAF를 연산할 때 적용되는 부분 감산 모듈러 연산의 알고리즘의 일 예를 도시한 것이다.Algorithm 4 shows an example of an algorithm of partial subtractive modular operation applied when calculating wTNAF.

알고리즘 4의

Figure 112008013410865-pat00215
은 차수로, sect163k1을 이용하였기 때문에 163이 된다.Of algorithm 4
Figure 112008013410865-pat00215
Is an order 163 since sect163k1 is used.

Figure 112008013410865-pat00216
Figure 112008013410865-pat00217
은 알고리즘 시작 전에 루카스(Lucas) 시퀀스를 이용하여 사전 연산될 수 있다.(
Figure 112008013410865-pat00218
=2579386439110731650419537,
Figure 112008013410865-pat00219
=755360064476226375461594)
Figure 112008013410865-pat00216
Wow
Figure 112008013410865-pat00217
Can be precomputed using a Lucas sequence before the algorithm starts.
Figure 112008013410865-pat00218
= 2579386439110731650419537,
Figure 112008013410865-pat00219
= 755360064476226375461594)

알고리즘 4를 적용하였을 때, 길이가 줄어들지 않을 확률이

Figure 112008013410865-pat00220
이기 때문에 본 발명에 따른 센서 모트에서의 효율적인 타원 곡선 암호 연산 기법의 구현에서는
Figure 112008013410865-pat00221
을 적용하여 감산의 확률을 높일 수 있다.When you apply Algorithm 4, the probability that the length will not decrease
Figure 112008013410865-pat00220
Therefore, in the implementation of an efficient elliptic curve cryptographic algorithm in the sensor mote according to the present invention,
Figure 112008013410865-pat00221
Can be applied to increase the probability of subtraction.

sect163k1에서

Figure 112008013410865-pat00222
Figure 112008013410865-pat00223
의 값은 각각 1이고, 위수
Figure 112008013410865-pat00224
Figure 112008013410865-pat00225
,
Figure 112008013410865-pat00226
의 값들이 미리 알려져 있기 때문에,
Figure 112008013410865-pat00227
의 값 역시 사전연산 될 수 있다.(
Figure 112008013410865-pat00228
) from sect163k1
Figure 112008013410865-pat00222
Wow
Figure 112008013410865-pat00223
Are each 1,
Figure 112008013410865-pat00224
and
Figure 112008013410865-pat00225
,
Figure 112008013410865-pat00226
Because the values of are known in advance,
Figure 112008013410865-pat00227
The value of can also be precomputed.
Figure 112008013410865-pat00228
)

또한, 도 4의 알고리즘 4의 과정 3의

Figure 112008013410865-pat00229
역시 사전에 62로 연산될 수 있으므로 과정 3은
Figure 112008013410865-pat00230
를 단순히 오른쪽으로 62비트 쉬프트하는 것으로 연산된다.In addition, the process 3 of the algorithm 4 of FIG.
Figure 112008013410865-pat00229
Can also be computed to 62 in advance, so step 3
Figure 112008013410865-pat00230
Is simply computed by shifting 62 bits to the right.

그리고, 도 4의 알고리즘 4의 과정 10 내지 21은 과정 5 내지 9로부터 연산된 복소수

Figure 112008013410865-pat00231
(
Figure 112008013410865-pat00232
은 유리수)에 근접한
Figure 112008013410865-pat00233
의 정수
Figure 112008013410865-pat00234
Figure 112008013410865-pat00235
을 연산한다.In addition, processes 10 to 21 of Algorithm 4 of FIG. 4 are complex numbers calculated from processes 5 to 9.
Figure 112008013410865-pat00231
(
Figure 112008013410865-pat00232
Silver rational number)
Figure 112008013410865-pat00233
Integer
Figure 112008013410865-pat00234
Wow
Figure 112008013410865-pat00235
Calculate

또한 과정 7의

Figure 112008013410865-pat00236
연산을 하기 위하여 다정도 부동 소수점 표현을 사용하여야 하는 것처럼 보일 수 있지만, 실제로 비트 이하 의 값들에 한해서만 소수값이 되기 때문에 몇 개의 부동 소수점 변수를 이용하여 연산할 수 있다.Also of course 7
Figure 112008013410865-pat00236
It may seem that you have to use a multi-precision floating point representation to do the operation, but in practice Since only decimal values are decimal values, some floating point variables can be used.

본 발명에 따른 센서 모트에서의 효율적인 타원 곡선 암호 연산 기법의 성능을 테스트해 본 결과 부동 소수점 변수를 사용한 것이 성능에 큰 영향을 미치지 않음을 확인할 수 있다.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의 결과인

Figure 112008013410865-pat00238
이 정수
Figure 112008013410865-pat00239
대신 wTNAF를 연산하는데 이용된다.Is the result of Algorithm 4 of FIG.
Figure 112008013410865-pat00238
This integer
Figure 112008013410865-pat00239
Instead it is used to compute wTNAF.

전술한 곱셈 알고리즘과 감산 알고리즘의 성능은 실제로 중복된 메모리의 접근을 줄임으로써 더욱 향상될 수 있다.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.

Figure 112008013410865-pat00240
상에서의 XOR 곱셈 연산은 많은 수의 중복된 메모리 접근 연산과 연관되어 있다.
Figure 112008013410865-pat00240
The XOR multiplication operation on is associated with a large number of redundant memory access operations.

이 때문에 일반적으로

Figure 112008013410865-pat00241
상에서의 곱셈 연산이
Figure 112008013410865-pat00242
상에서의 곱셈 연산보다 비효율적이다.Because of this
Figure 112008013410865-pat00241
Multiplication operation
Figure 112008013410865-pat00242
It is less efficient than multiplication in phase.

도 5는 상기 도 2의 알고리즘 2의 곱셈 연산의 계산 과정을 도시하고 있다.FIG. 5 illustrates a calculation process of the multiplication operation of Algorithm 2 of FIG. 2.

도 5에서 홀수 행들은 알고리즘 2의 과정 9 내지 11에 해당하고, 짝수 행들은 알고리즘 2의 과정 5 내지 7에 해당한다.In FIG. 5, odd rows correspond to processes 9 to 11 of algorithm 2, and even rows correspond to processes 5 to 7 of algorithm 2.

결과적으로, 도 5의 모든 행들은 마지막 결과인

Figure 112008013410865-pat00243
를 연산하기 위하여 해당 위치에서 서로 XOR 연산이 수행된다. 이를 부분(partial) XOR 곱셈을 의미한다.As a result, all rows in FIG.
Figure 112008013410865-pat00243
XOR operations are performed on each other at the corresponding position to calculate. This means partial XOR multiplication.

도 2에서 첫 번째 for-loop의 결과들은 왼쪽으로 윈도우 크기인

Figure 112008013410865-pat00244
만큼 쉬프트되는데 이는 도 5에 도시되어 있다.The results of the first for-loop in Figure 2 are the window size to the left
Figure 112008013410865-pat00244
It is shifted by as shown in FIG.

그리고, 도 2의 알고리즘 2의 각 for-loop에서

Figure 112008013410865-pat00245
에 관한 사전 연산 테이블에 접근하여 해당 요소를 가져오기 위하여
Figure 112008013410865-pat00246
Figure 112008013410865-pat00247
가 연산 된다.In each for-loop of Algorithm 2 of FIG.
Figure 112008013410865-pat00245
To get the element by accessing the pre-operation table for
Figure 112008013410865-pat00246
Wow
Figure 112008013410865-pat00247
Is computed.

그 후에 테이블에서 해당 값이 로드되고, 이는 다시

Figure 112008013410865-pat00248
Figure 112008013410865-pat00249
위치에서부터
Figure 112008013410865-pat00250
위치까지 XOR 연산된다(
Figure 112008013410865-pat00251
).After that, the corresponding values are loaded from the table, which in turn
Figure 112008013410865-pat00248
Wow
Figure 112008013410865-pat00249
From location
Figure 112008013410865-pat00250
XOR to position (
Figure 112008013410865-pat00251
).

상기 도 5를 살펴보면, 도 2의 알고리즘 2의 XOR 곱셈이 많은 수의 중복된 메모리 접근 연산과 연관되어 있음을 알 수 있다.Referring to FIG. 5, it can be seen that the XOR multiplication of Algorithm 2 of FIG. 2 is associated with a large number of redundant memory access operations.

하기의 수학식 5의 예제는 이를 확인시켜 준다. 설명의 간결함을 위하여 도 2의 두 번째 for-loop 과정만을 고려하였다.The example of Equation 5 below confirms this. For simplicity of explanation, only the second for-loop process of FIG. 2 is considered.

Figure 112008013410865-pat00252
Figure 112008013410865-pat00252

상기 수학식 5에서

Figure 112008013410865-pat00253
의 연산은 각각 두 번, 세 번, 네 번의 저장(STORE) 명령이 연관되었으며, 이것이 중복된 메모리 접근에 해당한다.In Equation 5
Figure 112008013410865-pat00253
The operations of are associated with two, three, and four STORE instructions each, which corresponds to redundant memory accesses.

또한, 각 과정에서

Figure 112008013410865-pat00254
의 값이
Figure 112008013410865-pat00255
번 호출(LOAD)되고 있음을 알 수 있다.Also, in each course
Figure 112008013410865-pat00254
Has a value of
Figure 112008013410865-pat00255
You can see that it is being LOADed once.

(이는

Figure 112008013410865-pat00256
까지 해당되며,
Figure 112008013410865-pat00257
의 범위에서는
Figure 112008013410865-pat00258
값이
Figure 112008013410865-pat00259
번 호출된다.)(this is
Figure 112008013410865-pat00256
Until,
Figure 112008013410865-pat00257
In the range of
Figure 112008013410865-pat00258
Value is
Figure 112008013410865-pat00259
Is called once.)

따라서, 도 2의 알고리즘 2의 성능은 중복된 저장 연산의 수와

Figure 112008013410865-pat00260
의 호출 횟수를 줄임으로써 향상될 수 있다.Thus, the performance of Algorithm 2 of FIG. 2 is dependent on the number of redundant storage operations
Figure 112008013410865-pat00260
This can be improved by reducing the number of calls to.

본 발명에서 제안하는 기법은 복수 개의 연속한 XOR 연산을 하나로 통합하여 연산되게 함으로써 XOR 곱셈

Figure 112008013410865-pat00261
에 연관된 저장과 호출 연산의 수를 줄이는 것이다.The technique proposed in the present invention combines a plurality of consecutive XOR operations into one to perform XOR multiplication.
Figure 112008013410865-pat00261
This is to reduce the number of save and call operations associated with.

예를 들면,

Figure 112008013410865-pat00262
Figure 112008013410865-pat00263
는 하기의 수학식 6과 같이 통합될 수 있다.For example,
Figure 112008013410865-pat00262
and
Figure 112008013410865-pat00263
May be integrated as in Equation 6 below.

Figure 112008013410865-pat00264
Figure 112008013410865-pat00264

이 기법을 일반화하면 도 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비트 기반의 유한체

Figure 112010011128503-pat00265
의 두 원소인
Figure 112010011128503-pat00266
에 있어서 상기
Figure 112010011128503-pat00267
에 대한 다항식을
Figure 112010011128503-pat00268
라하고, 상기
Figure 112010011128503-pat00269
에 대한 다항식을
Figure 112010011128503-pat00270
라고 할 때, 상기
Figure 112010011128503-pat00271
Figure 112010011128503-pat00272
를 이용하여 유한체 곱셈의 결과값
Figure 112010011128503-pat00273
를 생성하는 센서 모트에서의 효율적인 타원 곡선 암호 연산 방법에 있어서, 상기
Figure 112010011128503-pat00444
를 구성하는 j번째 워드(1 ≤ j ≤ t, 여기서 t는 상기
Figure 112010011128503-pat00445
를 메모리에 저장하기 위해 필요한 워드의 개수)의 상위 4비트를 0으로 패딩하면서 오른쪽으로 쉬프트한 다항식 u1과 상기
Figure 112010011128503-pat00446
를 구성하는 [j+1]번째 워드의 상위 4비트를 0으로 패딩하면서 오른쪽으로 쉬프트한 다항식 u2를 생성한 후, 상기 u1와 상기
Figure 112010011128503-pat00447
를 곱한 다항식 Tu1 및 상기 u2와 상기
Figure 112010011128503-pat00448
를 논리 곱한 다항식 Tu2를 이용하여 상기
Figure 112010011128503-pat00449
의 제 1 중간 결과값을 생성한다(710 과정).8-bit based finite field
Figure 112010011128503-pat00265
Two elements of
Figure 112010011128503-pat00266
Above
Figure 112010011128503-pat00267
Polynomials for
Figure 112010011128503-pat00268
Lago;
Figure 112010011128503-pat00269
Polynomials for
Figure 112010011128503-pat00270
When said,
Figure 112010011128503-pat00271
And
Figure 112010011128503-pat00272
Result of finite field multiplication using
Figure 112010011128503-pat00273
An efficient elliptic curve cryptography method in a sensor moat for generating the
Figure 112010011128503-pat00444
J j words (1 ≤ j ≤ t, where t is the
Figure 112010011128503-pat00445
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
Figure 112010011128503-pat00446
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
Figure 112010011128503-pat00447
Multiply by T u1 and u 2 and
Figure 112010011128503-pat00448
Using the polynomial T u2 multiplied by
Figure 112010011128503-pat00449
Generate a first intermediate result of (step 710).

이는 상기 도 6의 알고리즘 5의 과정 5 내지 과정 8에 해당하는 것이다.This corresponds to Process 5 to Process 8 of Algorithm 5 of FIG. 6.

한편, 상기 생성된 제 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 algorithm 5 of FIG. 6.

그 다음, 상기 제 1 중간 결과값을 4 비트 레프트 쉬프트(left shift) 하고, 상기

Figure 112010011128503-pat00450
를 구성하는 j번째 워드와 0x0F를 논리 곱한 다항식 v1과 상기
Figure 112010011128503-pat00451
를 구성하는 [j+1]번째 워드와 0x0F를 논리 곱한 다항식 v2를 생성한 후, 상기 v1와 상기
Figure 112010011128503-pat00452
를 곱한 다항식 Tv1 및 상기 v2와 상기
Figure 112010011128503-pat00453
를 논리 곱한 다항식 Tv2를 이용하여 상기
Figure 112010011128503-pat00454
의 제 2 중간 결과값을 생성한다(720 과정).Next, the first intermediate result value is left shifted by 4 bits.
Figure 112010011128503-pat00450
The polynomial v 1 obtained by logically multiplying the jth word constituting the s by 0x0F
Figure 112010011128503-pat00451
After generating a polynomial v 2 that is logically multiplied by the [j + 1] th word and 0x0F, the v 1 and the
Figure 112010011128503-pat00452
Polynomial T v1 and v 2 and
Figure 112010011128503-pat00453
Using the polynomial T v2 multiplied by
Figure 112010011128503-pat00454
Generate a second intermediate result of (step 720).

이 역시, 상기 도 6의 알고리즘 5의 과정 10 내지 과정 13에 해당한다.This also corresponds to process 10 to process 13 of Algorithm 5 of FIG. 6.

마지막으로, 상기 제 1 중간 결과값의 4비트 레프트 쉬프트한 값과 상기 제 2 중간 결과값을 배타적 논리합하여 상기 유한체 곱셈의 결과값

Figure 112010011128503-pat00455
를 생성하는데(730 과정), 상기 제 1 중간 결과값은 하기의 식(1)의 두 번째 행에 의해 연산되며, 상기 제 2 중간 결과값은 하기의 식(2)의 두 번째 행에 의해 연산된다.
<식(1)>
Figure 112010011128503-pat00456
.
<식(2)>
Figure 112010011128503-pat00457
.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.
Figure 112010011128503-pat00455
(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)>
Figure 112010011128503-pat00456
.
<Equation (2)>
Figure 112010011128503-pat00457
.

여기서, 본 발명에 따른 센서 모트에서의 효율적인 타원 곡선 암호 연산 기법의 경우에는 코드의 크기를 고려하여 상기 유한체 곱셈의 결과값

Figure 112010011128503-pat00285
를 생성하는 과정에서 한 쌍의 연속한 사전 연산 테이블(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
Figure 112010011128503-pat00285
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.

즉, 정리하면 상기 유한체 곱셈의 결과값

Figure 112010011128503-pat00286
는 상기
Figure 112010011128503-pat00287
의 비트 인덱스를
Figure 112010011128503-pat00288
,
Figure 112010011128503-pat00289
를 상기
Figure 112010011128503-pat00290
에 대한 비트 인덱스를
Figure 112010011128503-pat00291
, 상기
Figure 112010011128503-pat00292
에 대한 사전 연산 테이블을
Figure 112010011128503-pat00293
, 라 할 때, 하기의 수학식 7에 의해 연산된다.In other words, the result of the finite field multiplication
Figure 112010011128503-pat00286
Above
Figure 112010011128503-pat00287
Bit index of
Figure 112010011128503-pat00288
,
Figure 112010011128503-pat00289
Remind
Figure 112010011128503-pat00290
Bit index for
Figure 112010011128503-pat00291
, remind
Figure 112010011128503-pat00292
Pre-operation table for
Figure 112010011128503-pat00293
, Is calculated by Equation 7 below.

Figure 112008013410865-pat00294
Figure 112008013410865-pat00294

한편, 상기 유한체 곱셈의 결과값

Figure 112008013410865-pat00295
를 생성하는 과정(730 과정)은 복수 회 중복으로 호출되는 중간 결과값에 대한 연산을 단일화하여 배타적 논리합 연산을 수행함으로써 모듈라 감산을 수행하는 단계를 더 포함할 수 있다. 이는 하기에 더욱 자세히 상술하기로 한다.On the other hand, the result of the finite field multiplication
Figure 112008013410865-pat00295
The operation 730 may further include performing modular subtraction by performing an exclusive OR operation by unifying operations on intermediate result values that are called multiple times. This will be described in more detail below.

상기 도 6의 알고리즘 5를 이용하여 절약되는 저장 연산의 수를 계산할 수 있다.Algorithm 5 of FIG. 6 may be used to calculate the number of saved operations.

실제로, 도 2의 알고리즘 2에서는 for-loop의 카운터가 0에서부터 t-1까지 증가하며, 또한

Figure 112008013410865-pat00296
도 for-loop이기 때문에 첫 번째와 두 번째 for-loop 과정에서 필요한 저장 연산의 수는
Figure 112008013410865-pat00297
가 된다.In practice, in algorithm 2 of FIG. 2, the counter of the for-loop increases from 0 to t-1, and also
Figure 112008013410865-pat00296
Since is also a for-loop, the number of stored operations required in the first and second for-loop
Figure 112008013410865-pat00297
Becomes

한편, 도 6의 저장 명령의 수를 연산하면

Figure 112008013410865-pat00298
가 된 다. 따라서, 본 발명에 따른 도 6의 알고리즘 5에서는
Figure 112008013410865-pat00299
만큼의 저장 연산이 절약된다. On the other hand, if the number of the storage instruction of FIG.
Figure 112008013410865-pat00298
Become. Therefore, in algorithm 5 of FIG. 6 according to the present invention,
Figure 112008013410865-pat00299
Save operation.

또한, 호출 연산의 경우, 도 2의 알고리즘 2에서는

Figure 112008013410865-pat00300
번의 호출 연산이 연관된 반면, 본 발명에 따른 도 6의 알고리즘 5에서는
Figure 112008013410865-pat00301
번의 호출 연산을 사용한다.In addition, in the case of a call operation, in algorithm 2 of FIG.
Figure 112008013410865-pat00300
While one call operation is involved, in Algorithm 5 of FIG.
Figure 112008013410865-pat00301
Use one call operation.

따라서 본 발명에서는 호출 연산에서도

Figure 112008013410865-pat00302
만큼의 연산량을 절약할 수 있다.Therefore, in the present invention, even in the call operation
Figure 112008013410865-pat00302
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 Algorithm 2 of FIG.

Figure 112008013410865-pat00303
Figure 112008013410865-pat00303

상기의 표 3을 참조하면, 본 발명의 도 6에 따른 알고리즘 5가 도 2의 알고리즘 2에 비하여 곱셈 연산 시간이 21.08% 빨라진 것을 확인할 수 있으며, 또한

Figure 112008013410865-pat00304
일 때, 본 발명의 도 6에 따른 알고리즘 5가 도 2의 알고리즘 2에 비하여 441번의 저장 연산과 호출 연산이 절약되는 것을 알 수 있다.Referring to Table 3, it can be seen that the algorithm 5 according to FIG. 6 of the present invention is 21.08% faster than the algorithm 2 of FIG.
Figure 112008013410865-pat00304
In this case, it can be seen that algorithm 5 according to FIG. 6 of the present invention saves 441 storage operations and call operations compared to algorithm 2 of FIG. 2.

한편, 본 발명에서는 모듈러 감산 과정에서 중복된 메모리 접근을 줄일 수 있는 기법을 개시한다.On the other hand, the present invention discloses a technique for reducing the redundant memory access in the modular subtraction process.

상기 도 3 역시 중복된 메모리 접근 명령과 관련되어 있다. 알고리즘 3의 동작 과정에서 카운터

Figure 112008013410865-pat00305
가 30에서 27로 감소하는 경우를 살펴보면, 카운터
Figure 112008013410865-pat00306
가 30에서 27로 감소하는 동안의 연산 과정은 하기의 수학식 8과 같다.3 is also associated with redundant memory access commands. Counter during operation of algorithm 3
Figure 112008013410865-pat00305
If we decrease from 30 to 27, the counter
Figure 112008013410865-pat00306
Is calculated from Equation 8 below.

Figure 112008013410865-pat00307
Figure 112008013410865-pat00307

상기 수학식 8이 적용되는 알고리즘 3은

Figure 112008013410865-pat00308
을 연산하기 위하여 16번의 호출 명령과 저장 명령을 사용한다.Algorithm 3 to which Equation 8 is applied is
Figure 112008013410865-pat00308
Use 16 call and save commands to compute.

그러나, 이와 같이 중복된 호출 연산과 저장 연산 명령을 제거하기 위하여 같은 곳에 저장되는 중간값을 함께 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 Equation 9 below.

Figure 112008013410865-pat00309
Figure 112008013410865-pat00309

이와 같이, 저장과 호출 명령의 빈도를 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번의 저장과 호출 명령을 사용한다.Algorithm 3 of FIG. 3 uses 20 × 4 = 80 save and call instructions in a for-loop.

이에 비하여 본 발명에 따르면 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 Algorithm 6, which allows us to consolidate the execution of four for-loops into one.

상기 표 3에 개시된 바와 같이, 알고리즘 6은 상기 도 3의 알고리즘 3보다 24.7% 바르게 감산 연산을 수행한다.As shown in Table 3, Algorithm 6 performs the subtraction operation 24.7% more correctly than Algorithm 3 of FIG.

더 많은 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 intermediate result generator 810, a second intermediate result generator 820, a caller 830, and an exclusive OR operation performer 840. It can be made of).

본 발명은, 8비트 기반의 유한체

Figure 112008013410865-pat00310
의 두 원소인
Figure 112008013410865-pat00311
에 있어서 상기
Figure 112008013410865-pat00312
에 대한 다항식을
Figure 112008013410865-pat00313
라하고, 상기
Figure 112008013410865-pat00314
에 대한 다항식을
Figure 112008013410865-pat00315
라고 할 때, 상기
Figure 112008013410865-pat00316
Figure 112008013410865-pat00317
를 이용하여 유한체 곱셈의 결과값
Figure 112008013410865-pat00318
를 생성하는 센서 모트에서의 효율적인 타원 곡선 암호 연산 장치를 구성한다.The present invention, 8-bit based finite body
Figure 112008013410865-pat00310
Two elements of
Figure 112008013410865-pat00311
Above
Figure 112008013410865-pat00312
Polynomials for
Figure 112008013410865-pat00313
Lago;
Figure 112008013410865-pat00314
Polynomials for
Figure 112008013410865-pat00315
When said,
Figure 112008013410865-pat00316
And
Figure 112008013410865-pat00317
Result of finite field multiplication using
Figure 112008013410865-pat00318
Configure an efficient elliptic curve cryptographic computing device in the sensor mote to generate it.

상기 제 1 중간 결과값 생성부(810)는 상기

Figure 112008013410865-pat00319
의 상위 4비트에 대하여 각각의 비트 성분과 상기
Figure 112008013410865-pat00320
각각의 사전 연산 테이블에 논리 곱 연산을 수행하여 제 1 중간 결과값을 생성한다.The first intermediate result value generator 810
Figure 112008013410865-pat00319
Each bit component for the upper 4 bits of
Figure 112008013410865-pat00320
A logical product operation is performed on each pre-operation table to generate a first intermediate result.

이는 상기 도 6의 알고리즘 5의 과정 5 내지 과정 8에 해당하는 것으로, 상기

Figure 112008013410865-pat00321
의 상위 4비트에 대하여 각각의 비트 성분과 상기
Figure 112008013410865-pat00322
각각의 사전 연산 테이블에 논리 곱 연산을 수행하여 제 1 중간 결과값을 생성하게 된다.This corresponds to Process 5 to Process 8 of Algorithm 5 of FIG. 6.
Figure 112008013410865-pat00321
Each bit component for the upper 4 bits of
Figure 112008013410865-pat00322
A logical product operation is performed on each pre-operation table to generate a first intermediate result.

한편, 상기 제 1 중간 결과값 생성부(810)에서 생성된 제 1 중간 결과값은 상위 4비트 성분에 대한 것으로, 이는 도 6의 알고리즘 5의 과정 9에 해당하는 연산에 의해 생성된다.Meanwhile, the first intermediate result value generated by the first intermediate result value generator 810 is for an upper 4 bit component, which is generated by an operation corresponding to process 9 of algorithm 5 of FIG. 6.

제 2 중간 결과값 생성부(820)는 상기

Figure 112008013410865-pat00323
의 하위 4비트에 대하여 각각의 비트 성분과 상기
Figure 112008013410865-pat00324
각각의 사전 연산 테이블에 논리 곱 연산을 수행하여 제 2 중간 결과값을 생성한다.The second intermediate result generator 820
Figure 112008013410865-pat00323
And each bit component for the lower 4 bits of
Figure 112008013410865-pat00324
A logical product operation is performed on each pre-operation table to generate a second intermediate result.

이 역시, 제 2 중간 결과값 생성부(820)는 상기 도 6의 알고리즘 5의 과정 10 내지 과정 13에 해당하는 연산을 수행하고, 상기

Figure 112008013410865-pat00325
의 하위 4비트에 대하여 각각의 비트 성분과 상기
Figure 112008013410865-pat00326
각각의 사전 연산 테이블에 논리 곱 연산을 수행하여 제 2 중간 결과값을 생성한다.In addition, the second intermediate result generator 820 performs an operation corresponding to steps 10 to 13 of the algorithm 5 of FIG. 6, and
Figure 112008013410865-pat00325
And each bit component for the lower 4 bits of
Figure 112008013410865-pat00326
A logical product operation is performed on each pre-operation table to generate a second intermediate result.

한편, 호출부(830)는 상기 생성된 제 1 중간 결과값을 호출하고 배타적 논리합 연산 수행부(840)에서 상기 호출된 제 1 중간 결과값의 비트 인덱스에 대응되는 상기

Figure 112008013410865-pat00327
와 배타적 논리합 연산을 수행할 수 있도록 하고, 상기 생성된 제 2 중 간 결과값을 호출하고 배타적 논리합 연산 수행부(840)에서 상기 호출된 제 2 중간 결과값의 비트 인덱스에 대응되는 상기
Figure 112008013410865-pat00328
와 배타적 논리합 연산을 수행할 수 있도록 한다.On the other hand, the calling unit 830 calls the generated first intermediate result value and the exclusive logical sum operation performing unit 840 corresponds to the bit index of the called first intermediate result value.
Figure 112008013410865-pat00327
And to perform an exclusive OR operation, and call the generated second intermediate result value and correspond to the bit index of the called second intermediate result value in the exclusive OR operation operation unit 840.
Figure 112008013410865-pat00328
And the exclusive OR operation.

배타적 논리합 연산 수행부(840)는 상기 호출부(380)에 따라 호출된 제 1 중간 결과값 및 사전 연산 테이블에 따라 배타적 논리합 연산을 수행하고, 상기 생성된 제 2 중간 결과값 및 사전 연산 테이블을 호출하여 배타적 논리합 연산을 수행하여 상기 유한체 곱셈의 결과값

Figure 112008013410865-pat00329
를 생성한다.An exclusive-OR operation unit 840 performs an exclusive-OR operation according to the first intermediate result value and the pre-operation table called according to the caller 380, and performs an exclusive OR operation on the generated second intermediate result value and the pre-operation table. Call to perform an exclusive OR operation and result in the finite field multiplication.
Figure 112008013410865-pat00329
.

상기 배타적 논리합 연산 수행부(840)는 상기 제 1 중간 결과값을 이용하여 생성된 배타적 논리합 연산의 결과값을 4비트 레프트 쉬트트 하는 쉬프트 레지스터(미도시)를 포함할 수 있다.The exclusive OR operation performing unit 840 may include a shift register (not shown) for performing a 4-bit left shift on the result of the exclusive OR operation generated using the first intermediate result.

이는 상기 제 1 중간 결과값은 상기

Figure 112008013410865-pat00330
의 워드의 상위 4비트에 따라 연산된 것이므로, 하위 4비트에 따라 연산된 제 2 중간 결과값을 이용하여 생성된 배타적 논리합 연산의 결과값과의 순서를 맞추기 위하여 쉬프트 레지스터에서 상기 제 1 중간 결과값을 이용하여 생성된 배타적 논리합 연산의 결과값을 4비트 레프트 쉬프트 하는 것이다.The first intermediate result is the
Figure 112008013410865-pat00330
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)는 코드의 크기를 고려하여 상기 유한체 곱셈의 결과값

Figure 112008013410865-pat00331
를 생성하는 과정에서 한 쌍의 연속한 사전 연산 테이블을 이용하여 수행되는 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 operation performing unit 840 considers the size of the code and results from the finite field multiplication.
Figure 112008013410865-pat00331
The result of the exclusive OR operation using the pair of consecutive pre-operation tables called by the caller 830 in order to integrate the XOR multiplication performed by using the pair of consecutive pre-operation tables in the process of generating. Because the value is generated, the counter of the for-loop increments by two.

즉, 이는 상기 유한체 곱셈의 결과값

Figure 112008013410865-pat00332
는 전술한 수학식 7에 의해 연산될 수 있다.That is, the result of the finite field multiplication.
Figure 112008013410865-pat00332
May be calculated by Equation 7 described above.

이하에서는 본 발명에 따른 센서 모트에서의 효율적인 타원 곡선 암호 연산 기법의 성능을 동작 시간, 메모리 사용량 및 지원하는 서비스 측면에서 분석하고, 센서 모트 상에서 기존의 소프트웨어 구현들과 성능을 비교할 수 있다.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

센서 모트 상에서

Figure 112008013410865-pat00333
위의 유한체 곱셈의 성능이
Figure 112008013410865-pat00334
상의 곱셈의 성능보다 빠를 수 있음을 보이기 위하여 본 발명에 따른 센서 모트에서의 타원 곡선 암호 연산 기법(TinyECCK)과 종래의 TinyECC의 성능을 비교한다.On the sensor mort
Figure 112008013410865-pat00333
The performance of the above finite field multiplication
Figure 112008013410865-pat00334
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.

Figure 112008013410865-pat00335
Figure 112008013410865-pat00335

상기 표 4를 살펴보면, 본 발명에 따른 센서 모트에서의 타원 곡선 암호 연산 기법을 TinyECCK에 알고리즘 5 및 알고리즘 6을 적용하였을 때와 종래의 알고리즘 2 및 알고리즘 3을 적용하였을 때의 기존 방법의 연산 수행 시간을 도시하고 있다.Referring to Table 4, when the algorithm 5 and 6 are applied to the elliptic curve cryptography algorithm in the sensor mote according to the present invention to TinyECCK, and the conventional algorithm 2 and algorithm 3, the operation time of the conventional method It is shown.

상기 표 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.

Figure 112008013410865-pat00336
Figure 112008013410865-pat00336

실제로 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 Algorithm 2 of FIG. 2, but even if the algorithm 5 of FIG. It is more efficient than operation.

이는 상기 문제점으로 지적된

Figure 112008013410865-pat00337
Figure 112008013410865-pat00338
보다 연산 속도가 느리다고 알려진 바, 본 발명에 따르면
Figure 112008013410865-pat00339
기반의 TinyECCK를 적용하면,
Figure 112008013410865-pat00340
기반의 TinyECC 보다 속도 향상을 이끌어 낼 수 있으므로 상당한 성능 향상을 보임을 알 수 있다.This is indicated by the above problem
Figure 112008013410865-pat00337
end
Figure 112008013410865-pat00338
It is known that the operation speed is slower, according to the present invention
Figure 112008013410865-pat00339
Applying TinyECCK based,
Figure 112008013410865-pat00340
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 서비스를 지원하기 위하여

Figure 112008013410865-pat00341
Figure 112008013410865-pat00342
에서의 연산을 구현하였음에도 불구하고, TinyECC보다 더 작은 코드 크기를 사용한다.TinyECCK, meanwhile, supports scalar multiplication and ECDSA services.
Figure 112008013410865-pat00341
and
Figure 112008013410865-pat00342
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.

Figure 112008013410865-pat00343
Figure 112008013410865-pat00343

비록 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의 결과를 통하여

Figure 112008013410865-pat00344
에서 최적화된 ECDSA 구현의 코드 크기는
Figure 112008013410865-pat00345
상의 ECDSA 구현의 코드 크기보다 더 작을 수 있다는 것을 확인할 수 있다.Through the results in Table 6
Figure 112008013410865-pat00344
The code size of the optimized ECDSA implementation in
Figure 112008013410865-pat00345
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을 참조하면, 기존의

Figure 112008013410865-pat00346
상의 구현들의 성능이
Figure 112008013410865-pat00347
상에서 구현된 것들보다 뒤떨어지는 것을 확인할 수 있다.Referring to Table 7, the existing
Figure 112008013410865-pat00346
Performance on top of
Figure 112008013410865-pat00347
You can see that it is inferior to those implemented in the above.

비록, 기존의

Figure 112008013410865-pat00348
의 구현 4에서는 타원곡선 암호를 완전히 어셈블리 언어로 구현하였지만 핵심 부분에만 인라인 어셈블리언어를 사용한 TinyECC에 비하여 그 성능이 뒤쳐진다.Though, conventional
Figure 112008013410865-pat00348
In Implementation 4, the elliptic curve cryptography is fully implemented in assembly language, but its performance lags behind that of TinyECC, which uses only the inline assembly language in its core.

그리고, 기존의

Figure 112008013410865-pat00349
의 구현 1 및 구현 2에서는 도메인 파라미터로 sect163k1을 사용하였지만 스칼라 곱셈 과정에 TNAF 방법을 구현하지 않았기 때문에 코블리츠 커브의 장점을 충분히 활용하지 못하였다.And, the existing
Figure 112008013410865-pat00349
In Implementations 1 and 2, sect163k1 was used as the domain parameter, but the TNAF method was not implemented in the scalar multiplication process.

어셈블리 언어로 구현한 기존의

Figure 112008013410865-pat00350
의 구현 4보다 C언어로만 구현된 TinyECCK의 성능이 더 뛰어난 이유는 TinyECCK에 상술한 알고리즘 5와 알고리즘 6 그리고 wTNAF 기반의 스칼라 곱셈이 적용되었기 때문이다.Existing implementation in assembly language
Figure 112008013410865-pat00350
The performance of TinyECCK, which is implemented only in C, is better than that of Implementation 4, because the algorithms 5, 6, and wTNAF-based scalar multiplication are applied to TinyECCK.

이는 상기 표 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는

Figure 112008013410865-pat00351
상의 모든 타원 곡선 연산 즉, ECADD, ECDBL 또는 스칼라 곱셈을 제공하며, ECDSA의 서비스도 제공한다.In terms of supported protocols, TinyECCK
Figure 112008013410865-pat00351
It provides all elliptic curve operations on the ECS, ECDBL or scalar multiplication, and also provides services of ECDSA.

Figure 112008013410865-pat00352
Figure 112008013410865-pat00352

본 발명에 따른 센서 모트에서의 효율적인 타원 곡선 암호 연산 방법은 소프트웨어를 통해 실행될 수 있다. 소프트웨어로 실행될 때, 본 발명의 구성 수단들은 필요한 작업을 실행하는 코드 세그먼트들이다. 프로그램 또는 코드 세그먼트들은 프로세서 판독 가능 매체에 저장되거나 전송 매체 또는 통신망에서 반송파와 결합된 컴퓨터 데이터 신호에 의하여 전송될 수 있다.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비트 워드 크기를 사용하는 환경에서 윈도우 기법(

Figure 112008013410865-pat00409
)을 적용한 레프트 라이트 결합 알고리즘을 도시한 것이다.2 illustrates a window scheme in an environment using a conventional 8-bit word size.
Figure 112008013410865-pat00409
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 Algorithm 2 of FIG. 2.

도 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)

8비트 기반의 유한체
Figure 112010011128503-pat00353
의 두 원소인
Figure 112010011128503-pat00354
에 있어서 상기
Figure 112010011128503-pat00355
에 대한 다항식을
Figure 112010011128503-pat00356
라하고, 상기
Figure 112010011128503-pat00357
에 대한 다항식을
Figure 112010011128503-pat00358
라고 할 때, 상기
Figure 112010011128503-pat00359
Figure 112010011128503-pat00360
를 이용하여 유한체 곱셈의 결과값
Figure 112010011128503-pat00361
를 생성하는 센서 모트에서의 효율적인 타원 곡선 암호 연산 방법에 있어서,
8-bit based finite field
Figure 112010011128503-pat00353
Two elements of
Figure 112010011128503-pat00354
Above
Figure 112010011128503-pat00355
Polynomials for
Figure 112010011128503-pat00356
Lago;
Figure 112010011128503-pat00357
Polynomials for
Figure 112010011128503-pat00358
When said,
Figure 112010011128503-pat00359
And
Figure 112010011128503-pat00360
Result of finite field multiplication using
Figure 112010011128503-pat00361
In the efficient elliptic curve cryptography method in the sensor moat for generating a,
상기
Figure 112010011128503-pat00458
를 구성하는 j번째 워드(1 ≤ j ≤ t, 여기서 t는 상기
Figure 112010011128503-pat00459
를 메모리에 저장하기 위해 필요한 워드의 개수)의 상위 4비트를 0으로 패딩하면서 오른쪽으로 쉬프트한 다항식 u1과 상기
Figure 112010011128503-pat00460
를 구성하는 [j+1]번째 워드의 상위 4비트를 0으로 패딩하면서 오른쪽으로 쉬프트한 다항식 u2를 생성하는 단계;
remind
Figure 112010011128503-pat00458
J j words (1 ≤ j ≤ t, where t is the
Figure 112010011128503-pat00459
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
Figure 112010011128503-pat00460
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;
상기 u1와 상기
Figure 112010011128503-pat00461
를 곱한 다항식 Tu1 및 상기 u2와 상기
Figure 112010011128503-pat00462
를 논리 곱한 다항식 Tu2를 이용하여 상기
Figure 112010011128503-pat00463
의 제 1 중간 결과값을 생성하는 단계;
The u 1 and the
Figure 112010011128503-pat00461
Multiply by T u1 and u 2 and
Figure 112010011128503-pat00462
Using the polynomial T u2 multiplied by
Figure 112010011128503-pat00463
Generating a first intermediate result of;
상기 제 1 중간 결과값을 4 비트 레프트 쉬프트(left shift) 하는 단계;Left shifting the first intermediate result value by 4 bits; 상기
Figure 112010011128503-pat00464
를 구성하는 j번째 워드와 0x0F를 논리 곱한 다항식 v1과 상기
Figure 112010011128503-pat00465
를 구성하는 [j+1]번째 워드와 0x0F를 논리 곱한 다항식 v2를 생성하는 단계;
remind
Figure 112010011128503-pat00464
The polynomial v 1 obtained by logically multiplying the jth word constituting the s by 0x0F
Figure 112010011128503-pat00465
Generating a polynomial v 2 obtained by logically multiplying the [j + 1] th word and 0x0F constituting a;
상기 v1와 상기
Figure 112010011128503-pat00466
를 곱한 다항식 Tv1 및 상기 v2와 상기
Figure 112010011128503-pat00467
를 논리 곱한 다항식 Tv2를 이용하여 상기
Figure 112010011128503-pat00468
의 제 2 중간 결과값을 생성하는 단계; 및
V 1 and above
Figure 112010011128503-pat00466
Polynomial T v1 and v 2 and
Figure 112010011128503-pat00467
Using the polynomial T v2 multiplied by
Figure 112010011128503-pat00468
Generating a second intermediate result of; And
상기 제 1 중간 결과값의 4비트 레프트 쉬프트한 값과 상기 제 2 중간 결과값을 배타적 논리합하여 상기 유한체 곱셈의 결과값
Figure 112010011128503-pat00469
를 생성하는 단계를 포함하고,
A result value of the finite field multiplication by performing an exclusive OR of the 4-bit left shifted value of the first intermediate result value and the second intermediate result value
Figure 112010011128503-pat00469
Generating a;
상기 제 1 중간 결과값은 하기의 식(1)의 두 번째 행에 의해 연산되며, 상기 제 2 중간 결과값은 하기의 식(2)의 두 번째 행에 의해 연산되는 것을 특징으로 하는 센서 모트에서의 효율적인 타원 곡선 암호 연산 방법.The first intermediate result value is calculated by the second row of Equation (1) below, and the second intermediate result value is calculated by the second row of Equation (2) below. An efficient elliptic curve cryptography method. <식(1)><Equation (1)>
Figure 112010011128503-pat00470
.
Figure 112010011128503-pat00470
.
<식(2)><Equation (2)>
Figure 112010011128503-pat00471
.
Figure 112010011128503-pat00471
.
제 1 항에 있어서,The method of claim 1, 상기
Figure 112008013410865-pat00369
Figure 112008013410865-pat00370
remind
Figure 112008013410865-pat00369
And
Figure 112008013410865-pat00370
Is
4비트 성분으로 이루어진 것을 특징으로 하는 센서 모트에서의 효율적인 타원 곡선 암호 연산 방법.An efficient elliptic curve cryptography method in a sensor mote, characterized by consisting of four bits.
제 1 항에 있어서,The method of claim 1, 상기 타원 곡선 암호 연산은The elliptic curve cryptographic operation is 스칼라 곱셈 또는 ECDSA 연산을 포함하는 것을 특징으로 하는 센서 모트에서의 효율적인 타원 곡선 암호 연산 방법.An efficient elliptic curve cryptographic operation method in a sensor mote, comprising scalar multiplication or ECDSA operation. 삭제delete 삭제delete 삭제delete 삭제delete 삭제delete 삭제delete 제 1 항 내지 제 3 항 중 어느 한 항의 방법을 컴퓨터에서 수행할 수 있는 프로그램으로 기록된 기록매체.A recording medium recorded with a program that can perform the method of any one of claims 1 to 3 on a computer. 삭제delete 삭제delete 삭제delete 삭제delete 삭제delete 삭제delete 삭제delete 삭제delete 삭제delete
KR1020080016421A 2008-02-22 2008-02-22 Method and Apparatus of elliptic curve cryptography processing in sensor mote and Recording medium using it KR100974624B1 (en)

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)

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

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

Patent Citations (2)

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