KR20100026358A - Method and apparatus of elliptic curve cryptographic operation based on block indexing on sensor mote and recording medium using by the same - Google Patents
Method and apparatus of elliptic curve cryptographic operation based on block indexing on sensor mote and recording medium using by the same Download PDFInfo
- Publication number
- KR20100026358A KR20100026358A KR1020080085332A KR20080085332A KR20100026358A KR 20100026358 A KR20100026358 A KR 20100026358A KR 1020080085332 A KR1020080085332 A KR 1020080085332A KR 20080085332 A KR20080085332 A KR 20080085332A KR 20100026358 A KR20100026358 A KR 20100026358A
- Authority
- KR
- South Korea
- Prior art keywords
- block
- bit
- finite field
- result
- field multiplication
- Prior art date
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/30—Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
- H04L9/3066—Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy involving algebraic varieties, e.g. elliptic or hyper-elliptic curves
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/06—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Signal Processing (AREA)
- Computer Networks & Wireless Communication (AREA)
- Computer Security & Cryptography (AREA)
- Mathematical Physics (AREA)
- Physics & Mathematics (AREA)
- Pure & Applied Mathematics (AREA)
- Mathematical Optimization (AREA)
- Computing Systems (AREA)
- Mathematical Analysis (AREA)
- General Physics & Mathematics (AREA)
- Algebra (AREA)
- Error Detection And Correction (AREA)
Abstract
Description
본 발명은 유한체 곱셈 방법에 관한 것으로서, 특히 저전력 프로세서에서 효율적으로 연산되는 상의 곱셈 알고리즘을 적용하여 확장된 워드 크기에서 곱셈 연산을 수행할 수 있는 센서 모트에서의 블록 인덱싱 기반의 타원 곡선 암호 연산 방법, 그 장치 및 이를 기록한 기록 매체에 관한 것이다.FIELD OF THE INVENTION The present invention relates to a finite field multiplication method, in particular that The present invention relates to an elliptic curve cryptographic calculation method based on block indexing in a sensor mote capable of performing multiplication operations on an extended word size by applying a multiplication algorithm of the above, and a device and a recording medium recording the same.
센서 네트워크는 수백, 수천 개의 자원이 제약된 센서 노드들로 구성되며, 관리자가 없는 환경에 배치되어 동작한다.Sensor networks consist of hundreds or thousands of resource-constrained sensor nodes and operate in an environment without administrators.
그러므로, 기존의 보안 프로코콜과는 달리 센서 네트워크의 특성을 고려한 프로토콜이 필요하다. Therefore, unlike the existing security protocols, a protocol considering the characteristics of the sensor network is needed.
센서 노드의 한정된 자원을 고려하여 다수의 대칭키 기반의 암호 프로토콜이 제안되었으나, 제약된 기능성으로 인하여 공유키 설정 및 브로드캐스트 메시지 인 증 과정에 적합하지 않다.Considering the limited resources of the sensor node, a number of symmetric key-based cryptographic protocols have been proposed, but due to their limited functionality, they are not suitable for shared key setup and broadcast message authentication.
지금까지 공개키 암호 시스템, 특히 타원곡선 암호(Elliptic Curve Cryptography:ECC)를 센서 네트워크에 적용하는 것에 관한 많은 연구가 진행되었다.To date, much research has been carried out on the application of public key cryptosystems, especially Elliptic Curve Cryptography (ECC) to sensor networks.
그러나, 이러한 연구들의 목적은 타원곡선 암호 시스템이 센서 네트워크에 충분히 적용 가능하다는 것을 보여주는 것이며, 이를 위하여 타원곡선 암호를 실제 센서 모트에서 구현하여 연산 시간 및 코드 크기에 관한 성능을 제시하였다.However, the purpose of these studies is to show that the elliptic curve cryptographic system is fully applicable to the sensor network. For this purpose, the elliptic curve cryptography is implemented in the actual sensor module and the performance on the computation time and code size is presented.
지금까지 상대적으로 효율적인 성능을 제시한 타원 곡선 암호 구현들은 모두 에 기반을 두었으나, 에 기반을 둔 구현들은 센서 네트워크에 적용할 만큼의 충분한 성능을 제시하지 못하였다.All the elliptic curve cryptography implementations that have shown relatively efficient performance so far Based on Based implementations did not provide enough performance for the sensor network.
그러나, 최근 8비트 미카즈(MICAZ) 센서 모트 상에서 구현된 TinyECCK(이하, 'TinyECCK'라고 함.)의 연구 결과(8비트 Micaz 모트에서 상의 효율적인 타원곡선 암호 시스템 구현, 2008. 6. 정보보호학회지)는 유한체 상에서의 곱셈과 감산 연산은 많은 수의 중복된 메모리 접근과 관련되어 있으며, 이러한 불필요한 메모리 접근 연산을 줄임으로써 전체적인 타원 곡선 암호 연산의 성능을 현저히 높일 수 있음이 알려졌다.However, the results of a recent study by TinyECCK (hereinafter referred to as TinyECCK) implemented on an 8-bit MICAZ sensor mort (for 8-bit Micaz Mort) Implementation of an Efficient Elliptic Curve Cryptographic System in Korea, June 2008 The multiplication and subtraction operations on the loop are associated with a large number of redundant memory accesses, and it is known that by reducing these unnecessary memory access operations, the performance of the overall elliptic curve cryptographic operation can be significantly improved.
한편, 타원 곡선 암호 연산의 과정에서 가장 주된 연산은 유한체 곱셈 연산이다. 기존의 TinyECCK 연구에서는 유한체 곱셈 연산에서 발생하는 중복된 메모리 접근 연산을 줄임으로써 현저하게 연산시간을 단축시킬 수 있다. 그러나, 해당 장 치에서 사용되는 워드 크기가 증가함에 따라 메모리 상에 존재하는 상의 원소에 접근하기 위하여 사용되는 메모리 접근의 횟수가 줄어들기 때문에 TinyECCK 에서 제안된 곱셈 알고리즘의 효율성은 떨어지게 된다.On the other hand, in the process of elliptic curve cryptography, the main operation is finite field multiplication. In the existing TinyECCK studies, the computation time can be significantly reduced by reducing redundant memory access operations in finite field multiplication. However, as the word size used in the device increases, Since the number of memory accesses used to access the elements of the phase is reduced, the efficiency of the multiplication algorithm proposed by TinyECCK is reduced.
타원 곡선 암호 시스템은 짧은 키 길이로 인하여 스마트 카드 및 센서모트와 같은 유비쿼터스 장치에서 각광받고 있다.Elliptic curve cryptosystems are gaining popularity in ubiquitous devices such as smart cards and sensormots due to their short key lengths.
타원곡선 암호 시스템에서 가장 주요한 연산은 곱셈 연산으로서 이것은 유한체 곱셈에 기반을 두고 있다. 따라서, 곱셈 연산을 효율적으로 구현함으로써 장치에서 동작하는 타원곡선 암호 시스템의 성능을 높일 수 있다.The most important operation in an elliptic curve cryptosystem is the multiplication operation, which is based on finite field multiplication. Therefore, by efficiently implementing the multiplication operation, it is possible to increase the performance of the elliptic curve cryptographic system operating in the device.
저전력 장치에서 상의 곱셈을 효율적으로 구현하기 위한 노력은 지금까지 계속되고 있다.In low power devices Efforts to efficiently implement phase multiplication continue to this day.
상에서의 여러가지 곱셈 알고리즘들 중 윈도우를 사용하는 레프트 투 라이트 결합(Left-To-Right Combination:LTR Comb) 곱셈 방법이 효율적인 것으로 알려졌으며, 전술한 TinyECCK의 연구 결과에서는 8비트 저전력 프로세서에서 이 LTR 결합 곱셈이 연산될 때 발생하는 중복된 메모리 접근을 제거함으로써 더욱 성능을 높일 수 있음을 보였다. Among other multiplication algorithms in the field, a Left-To-Right Combination (LTR Comb) multiplication method using windows has been found to be efficient, and TinyECCK's research has shown that this LTR combined multiplication in an 8-bit low-power processor. It has been shown that performance can be further improved by eliminating redundant memory accesses that occur when this operation occurs.
그러나, 종래의 TinyECCK에서 제안된 곱셈 방법을 16비트 및 32비트와 같은 확장된 워드 크기를 사용하는 환경에 적용할 경우에는 메모리에 위치한 상의 원소에 접근하는데 드는 연산 부하는 줄어드는 반면, 레프트 투 라이트 결합 곱셈의 연산 중에 중간 결과값을 레프트 쉬프트하는 횟수가 증가하기 때문에 그 효용 성이 떨어진다.However, when the multiplication method proposed by the conventional TinyECCK is applied to an environment using extended word sizes such as 16-bit and 32-bit, While the computational load for accessing the elements of the phase is reduced, its utility is inferior because the number of left shifts of the intermediate result is increased during the operation of left-to-right combined multiplication.
한편, 현재 32비트 프로세서를 탑재한 고성능의 센서 모트가 개발되어 사용되는 추세에 있으나, 상기와 같이 종래의 TinyECCK에서 제안된 곱셈 방법을 레프트 투 라이트 결합 곱셈의 연산 중에 중간 결과값을 레프트 쉬프트하는 횟수가 증가하여 연산 효율이 떨어진다는 문제점이 있다.On the other hand, there is a trend that a high-performance sensor mort with a 32-bit processor has been developed and used.However, the number of times left-shifted the intermediate result value during the operation of the left-to-right combined multiplication using the multiplication method proposed in the conventional TinyECCK as described above. There is a problem that the operation efficiency is lowered by increasing.
따라서, 본 발명이 해결하고자 하는 첫 번째 과제는, 확장된 워드를 사용하는 저전력 프로세서에서 메모리에 위치한 상의 원소에 접근하는데 드는 연산 부하를 감소시킬 수 있고, 레프트 투 라이트 결합 곱셈 연산 중에 중간 결과값을 레프트 쉬프트 하는 횟수를 감소시킬 수 있는 센서 모트에서의 블록 인덱싱 기반의 타원 곡선 암호 연산 방법을 제공하는 것이다.Therefore, the first problem to be solved by the present invention is to locate the memory in a low-power processor using an extended word A block indexing-based elliptic curve cryptography method in a sensor mote that can reduce the computational load required to access the elements of the image and reduce the number of left shifts of intermediate results during left-to-right combined multiplication. will be.
본 발명이 해결하고자 하는 두 번째 과제는, 상기 센서 모트에서의 블록 인덱싱 기반의 타원 곡선 암호 연산 방법을 적용한 센서 모트에서의 블록 인덱싱 기반의 타원 곡선 암호 연산 장치를 제공하는 것이다.A second problem to be solved by the present invention is to provide an apparatus for calculating an elliptic curve cryptography based on block indexing in a sensor mort using the block indexing-based elliptic curve cryptographic computing 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 to perform a block indexing-based elliptic curve cryptographic computing device based on the sensor in the computer.
상기 첫 번째 과제를 해결하기 위하여 본 발명은,The present invention to solve the first problem,
유한체 의 두 원소인 에 있어서 승수 및 피승수 를 이용하여 유한체 곱셈의 결과값 를 생성하는 센서 모트에서의 블록 인덱싱 기반의 타원 곡선 암호 연산 방법에 있어서, 상기 승수 의 워드를 프로세스 워드 사이 즈 에 의해 개의 워드로 분할하여 분할 워드를 생성하는 단계; 상기 분할된 개의 워드 각각을 4비트 윈도우 사이즈 로 분할함으로써 복수 개의 블록으로 상기 승수 의 워드를 구분하는 단계; 상기 복수 개의 블록 중 홀수 번째에 위치한 블록을 순서대로 블록 인덱싱하여 제1영역을 형성하고, 짝수 번째에 위치한 블록을 순서대로 블록 인덱싱하여 제2영역을 형성하는 단계; 상기 블록 인덱싱된 블록 내에서 연속된 상하위의 두 개의 4비트 비트열을 각각 스캔하고, 스캔된 상기 두 개의 비트열에 의해 연산되는 각각의 인덱스 값을 기반으로 상기 피승수 의 두 개의 사전 연산 테이블을 로드하고, 상기 두 개의 사전 연산 테이블 및 유한체 곱셈의 중간 결과값의 대응 워드를 입력값으로 하여 상기 유한체 곱셈의 중간 결과값을 갱신하는 단계; 상기 유한체 곱셈의 중간 결과값을 상기 블록 인덱싱값에 따라 증가된 주소에 해당하는 상기 유한체 곱셈의 결과값 에 저장함으로써 상기 유한체 곱셈의 결과값 를 생성하는 단계; 및 상기 제 1 영역에 해당하는 모든 워드를 기반으로 상기 유한체 곱셈의 결과값 가 생성되면, 상기 제 1 영역에 해당하는 모든 워드의 유한체 곱셈의 결과값 를 4비트 레프트 쉬프트하는 단계를 포함하는 센서 모트에서의 블록 인덱싱 기반의 타원 곡선 암호 연산 방법을 제공한다.Finite body Two elements of Multiplier And multiplicand Result of finite field multiplication using In the block indexing-based elliptic curve cryptography method for generating a sensor mote, The multiplier Word of Process Word Size By Generating a divided word by dividing into four words; The divided 4-bit window size for each word The multiplier into a plurality of blocks by dividing by Distinguishing words of a; Forming a first region by indexing blocks located in odd-numbered blocks among the plurality of blocks in order, and forming a second region by indexing blocks in even-numbered blocks in order; Scan two consecutive 4-bit bitstreams consecutively in the block indexed block, and multiply based on respective index values computed by the scanned two bitstreams Loading two pre-operation tables of and updating the intermediate result of the finite field multiplication by using the corresponding words of the two pre-operation tables and the intermediate result of the finite field multiplication as input values; A result of the finite field multiplication corresponding to an address increased according to the block indexing value of the intermediate result of the finite field multiplication Result of the finite field multiplication by storing in Generating a; And a result of the finite field multiplication based on all words corresponding to the first region. When is generated, the result of the finite field multiplication of all words corresponding to the first region It provides a block indexing-based elliptic curve cryptography method in the sensor mote comprising the step of 4-bit left shift.
한편, 상기 유한체 곱셈의 결과값 를 생성하는 단계는 상기 제1영역 및 제2영역의 블록 갯수가 이고, 상기 블록 인덱싱된 블록의 인덱싱 넘버가 이면, 바이트 증가된 주소로 상기 배타적 논리합 연산의 결과값을 저장하는 단계를 포함할 수 있다.On the other hand, the result of the finite field multiplication Generating the number of blocks of the first region and the second region And the indexing number of the block indexed block is If, And storing the result of the exclusive OR operation as the byte incremented address.
그리고, 상기 4비트 레프트 쉬프트하는 단계는 상기 4비트 레프트 쉬프트된 상기 제 1 영역에 해당하는 모든 워드의 배타적 논리합 연산의 결과값과 상기 제 2 영역에 해당하는 모든 워드의 배타적 논리합 연산의 결과값을 모두 출력하여 유한체 곱셈의 결과값 를 생성하는 단계를 포함할 수 있다.The 4-bit left shift operation may include a result of an exclusive OR operation of all words corresponding to the first bit shifted by the four bits and a result of an exclusive OR operation of all words corresponding to the second area. Output all of the results of finite field multiplication It may include the step of generating.
아울러, 상기 프로세스 워드 사이즈 는 16비트 또는 32비트 단위의 크기일 수 있다.In addition, the process word size May be 16 bits or 32 bits in size.
그리고, 상기 피승수 의 사전 연산 테이블은 상기 승수 의 스캔된 4비트 비트열에 따라 미리 결정된 테이블인 것을 특징으로 한다.And the multiplicand Pre-operation table of the multiplier It is characterized in that the table is predetermined according to the scanned 4-bit bit string of.
한편, 상기 센서 모트는 미카즈 센서 모트를 포함할 수 있다.On the other hand, the sensor mort may include a Mikazu sensor mort.
또한, 상기 유한체 곱셈의 중간 결과값은 상기 유한체 곱셈의 중간 결과값 의 비트 인덱스를 , 상기 스캔된 상기 두 개의 비트열에 의해 연산되는 각각의 인덱스 값을 , 상기 를 기반으로 로드된 상기 피승수 의 두 개의 사전 연산 테이블을 각각 상기 분할 워드의 인덱스 넘버를 라 할 때, 수식 에 의해 생성될 수 있다.In addition, the intermediate result of the finite field multiplication is the intermediate result of the finite field multiplication Bit index of And each index value computed by the scanned two bit strings. , remind The multiplicand loaded based on Each of the two pre-operation tables The index number of the split word When we say Can be generated by
상기 두 번째 과제를 해결하기 위하여 본 발명은,The present invention to solve the second problem,
유한체 의 두 원소인 에 있어서 승수 및 피승수 를 이용하여 유한체 곱셈의 결과값 를 생성하는 센서 모트에서의 블록 인덱싱 기반의 타원 곡선 암호 연산 장치에 있어서, 상기 승수 의 워드를 프로세스 워드 사이즈 에 의해 개의 워드로 분할하여 분할 워드를 생성하는 분할 워드 생성부; 상기 분할된 개의 워드 각각을 4비트 윈도우 사이즈 로 분할함으로써 상기 승수 의 워드를 구분하는 복수 개의 블록을 생성하는 블록 생성부; 상기 복수 개의 블록 중 홀수 번째에 위치한 블록을 순서대로 블록 인덱싱하여 제1영역을 형성하고, 짝수 번째에 위치한 블록을 순서대로 블록 인덱싱하여 제2영역을 형성하는 블록 인덱싱부; 상기 블록 인덱싱된 블록 내에서 연속된 상하위의 두 개의 4비트 비트열을 각각 스캔하고, 스캔된 상기 두 개의 비트열에 의해 연산되는 각각의 인덱스 값을 기반으로 상기 피승수 의 두 개의 사전 연산 테이블을 로드하고, 상기 두 개의 사전 연산 테이블 및 유한체 곱셈의 중간 결과값의 대응 워드를 입력값으로 하여 상기 유한체 곱셈의 중간 결과값을 갱신하는 중간 결과값 생성부; 상기 유한체 곱셈의 중간 결과값을 상기 블록 인덱싱값에 따라 증가된 주소에 해당하는 상기 유한체 곱셈의 결과값 에 저장함으로써 상기 유한체 곱셈의 결과값 를 생성하는 저장부; 및 상기 제 1 영역에 해당하는 모든 워드를 기반으로 상기 유한체 곱셈의 결과값 가 생성되면, 상기 제 1 영역에 해당하는 모든 워드의 유한체 곱셈의 결과값 를 4비트 레프트 쉬프트하는 쉬프트 레지스터를 포함하는 블록 인덱싱 기반의 유한체 곱셈 연산 장치를 제공한다. Finite body Two elements of Multiplier And multiplicand Result of finite field multiplication using In the block indexing-based elliptic curve cryptography device in the sensor moat, generating a multiplier, Process word size By A division word generation unit generating division words by dividing into four words; The divided 4-bit window size for each word The multiplier by dividing by Block generation unit for generating a plurality of blocks for separating the word of; A block indexing unit forming a first region by sequentially indexing blocks located in odd-numbered blocks among the plurality of blocks, and indexing blocks in even-numbered blocks in order; Scan two consecutive 4-bit bitstreams consecutively in the block indexed block, and multiply based on respective index values computed by the scanned two bitstreams An intermediate result generator which loads two pre-operation tables and updates the intermediate result of the finite product multiplication by inputting corresponding words of the two pre-operation tables and intermediate result values of the finite field multiplication as input values; A result of the finite field multiplication corresponding to an address increased according to the block indexing value of the intermediate result of the finite field multiplication Result of the finite field multiplication by storing in A storage unit for generating; And a result of the finite field multiplication based on all words corresponding to the first region. When is generated, the result of the finite field multiplication of all words corresponding to the first region A block indexing-based finite field multiplication apparatus including a shift register for 4-bit left shifting is provided.
여기서, 상기 저장부는 상기 제1영역 및 제2영역의 블록 갯수가 이고, 상기 블록 인덱싱된 블록의 인덱싱 넘버가 이면, 바이트 증가된 주소로 상기 배타적 논리합 연산의 결과값을 저장할 수 있다.Here, the storage unit blocks the number of blocks in the first region and the second region. And the indexing number of the block indexed block is If, The result of the exclusive OR operation may be stored as an address in byte increments.
한편, 상기 쉬프트 레지스터는 상기 4비트 레프트 쉬프트된 상기 제 1 영역에 해당하는 모든 워드의 배타적 논리합 연산의 결과값과 상기 제 2 영역에 해당하는 모든 워드의 배타적 논리합 연산의 결과값을 모두 출력하여 유한체 곱셈의 결과값 를 생성하는 결과값 출력 모듈을 더 포함할 수 있다.Meanwhile, the shift register outputs both the result of the exclusive OR operation of all the words corresponding to the first bit shifted by the 4-bit left shift and the result of the exclusive OR operation of all the words corresponding to the second area. Result of sieve multiplication It may further include a result output module for generating a.
그리고, 상기 피승수 의 사전 연산 테이블은 상기 승수 의 스캔된 4비트 비트열에 따라 미리 결정된 테이블일 수 있다.And the multiplicand Pre-operation table of the multiplier It may be a predetermined table according to the scanned 4-bit bit string of.
아울러, 상기 프로세스 워드 사이즈 는 16비트 또는 32비트 단위의 크기일 수 있다.In addition, the process word size May be 16 bits or 32 bits in size.
또한, 상기 센서 모트는 미카즈 센서 모트를 포함할 수 있다.In addition, the sensor mort may include a Mikazu sensor mort.
그리고, 상기 유한체 곱셈의 중간 결과값은 상기 유한체 곱셈의 중간 결과값 의 비트 인덱스를 , 상기 스캔된 상기 두 개의 비트열에 의해 연산되는 각각의 인덱스 값을 , 상기 를 기반으로 로드된 상기 피승수 의 두 개의 사전 연산 테이블을 각각 상기 분할 워드의 인덱스 넘버를 라 할 때, 수식 에 의해 생성될 수 있다.The intermediate result of the finite field multiplication is the intermediate result of the finite field multiplication. Bit index of And each index value computed by the scanned two bit strings. , remind The multiplicand loaded based on Each of the two pre-operation tables The index number of the split word When we say Can be generated by
상기 세 번째 과제를 해결하기 위하여 본 발명은,The present invention to solve the third problem,
상기 센서 모트에서의 블록 인덱싱 기반의 타원 곡선 암호 연산 방법을 컴퓨터에서 실행시킬 수 있도록 프로그램으로 기록된 기록매체를 제공한다.A recording medium recorded by a program is provided to execute a block indexing-based elliptic curve cryptographic calculation method in the sensor module on a computer.
본 발명에 의하면, 16비트 또는 32비트 워드와 같은 확장된 워드를 사용하는 저전력 프로세서에서 메모리에 위치한 상의 원소에 접근하는데 드는 연산 부하를 감소시킬 수 있고, 레프트 투 라이트 결합 곱셈 연산 중에 중간 결과값을 레프트 쉬프트 하는 횟수를 감소시킴으로써 저전력 센서 모트에서 키 공유 및 키 인증시에 연산 부하를 감소시킬 수 있고, 고속의 프로세싱 속도를 제공할 수 있는 효과가 있다.According to the present invention, a memory is located in a low power processor using an extended word such as a 16-bit or 32-bit word. Reduce the computational load on accessing elements on the phase, and reduce the computational load during key sharing and key authentication in low-power sensor motors by reducing the number of left shifts of intermediate results during left-to-right combined multiplication operations. This has the effect of providing high processing speed.
하기에 상술되는 유한체 곱셈은 16비트 워드 또는 32비트 워드에 적용할 수 있으며, 하기에 상술되는 워드의 크기는 편의상 16비트라고 가정하기로 한다.The finite field multiplication described below can be applied to a 16-bit word or a 32-bit word, and the size of the word described below is assumed to be 16 bits for convenience.
표 1에 정의된 표기법들은 하기의 상술되는 유한체 곱셈의 연산식 및 기호에 모두 적용된다. 여기서, A와 B는 의 원소라고 가정한다.The notations defined in Table 1 apply to both equations and symbols of the finite field multiplication described below. Where A and B are Assume that is an element of.
상의 곱셈을 구현할 때, 효율성을 위하여 윈도우를 사용하는 레프트 투 라이트 결합(left to right comb) 방법이 주로 사용된다. 레프트 투 라이트 결합 방법은 상의 두 원소 에 대하여 를 연산하는데, 사전에 미리 에 대한 사전 연산 테이블을 작성한 후에, 를 비트만큼 스캔하며, 이에 해당하는 부분 곱셈값을 실제로 연산하는 것이 아니라, 사전 연산 테이블로부터 가져와 중간 결과값 에 연산을 수행하여 더한다. When implementing multiplication of phases, a left to right comb method using windows is mainly used for efficiency. How to combine left-to-right Elements on top about Calculate beforehand After creating the pre-computation table for: To Scan bit by bit and do not actually compute the corresponding partial multiplication, but take the intermediate result from the pre-computation table. on Perform the operation and add it.
이때, 적절한 윈도우의 크기는 보통 4로 알려져 있다. At this time, the appropriate window size is commonly known as four.
도 1의 알고리즘 1의 과정 3이 바로 에 대하여 사전 연산 테이블을 계산하는 과정이다.
여기서, 윈도우의 크기를 4로 하였기 때문에, 사전 연산 테이블은 1B 부터 15B 까지의 부분 곱셈 값을 저장하고 있다.Since the size of the window is 4, the pre-computation table stores partial multiplication values from 1B to 15B.
즉, 사전 연산 테이블은 1B, 2B, 3B, 4B, 5B, 6B, 7B, 8B, 9B, 10B, 11B, 12B, 13B, 14B, 15B의 부분 곱셈 값을 저장하고 있는 것이다. 예를 들어 의 4비트 값이 만약 1001이었다면, 사전 연산 테이블에서 9B를 가져와 중간 결과값의 해당 위치에 시키는 것이다.That is, the pre-computation table stores partial multiplication values of 1B, 2B, 3B, 4B, 5B, 6B, 7B, 8B, 9B, 10B, 11B, 12B, 13B, 14B, and 15B. E.g If the 4-bit value of is 1001, take 9B from the pre-computation table and place it at the corresponding position in the intermediate result. It is to let.
즉, 도 1의 알고리즘 1은 를 왼쪽에서부터 오른쪽으로 열단위로 비트씩 스캔하여 사전 연산 테이블에서 해당 부분곱셈 값을 가져와 중간 결과값에 배타적 논리합 연산(XOR 연산)을 수행하는 것이다.That is,
도 1에서 전술한 TinyECCK에서 제안된 중복된 메모리 접근을 줄이는 방법이 적용된 레프트 투 라이트 결합의 곱셈 방법을 16비트 워드로 확장한 것이다. 즉, 알고리즘 1의 과정 3은 B에 대한 사전 연산 테이블 를 연산한다.The multiplication method of left-to-write combining with the method of reducing redundant memory access proposed by TinyECCK described above in FIG. 1 is extended to 16-bit words. In other words,
그리고, 도 1의 과정 6 내지 과정 19를 통하여 실제 곱셈을 수행하고 있다. 과정 8 및 과정 9는 를 비트씩 스캔하는 것이며, 과정 10 내지 과정 14는 스캔한 의 비트에 대한 부분 연산값을 사전 연산 테이블로부터 불러와 중간 결과값에 하는 것이다.In addition, actual multiplication is performed through
이 과정을 상위 블록에서 하위 블록으로 진행하기 때문에, 도 2의 블록 블록의 연산 결과에 대해서는 각각 12비트, 8비트, 4비트만큼 왼쪽으로 쉬프트되어야 한다. 이는 도 1의 과정 16에 해당한다.Since the process proceeds from the upper block to the lower block, the block of FIG. The operation result of the block should be shifted left by 12 bits, 8 bits, and 4 bits, respectively. This corresponds to process 16 of FIG. 1.
한편, 중간 결과값 는 의 연산 결과값을 저장하기 때문에 개의 워드로 구성되어 있다. 따라서, 개의 워드가 세 번 쉬프트되어야 하는 것이다. Meanwhile, the intermediate result Is Because it stores the result of operation of It consists of four words. therefore, Words must be shifted three times.
실제로, 도 1의 알고리즘 1이 8비트 워드를 사용하여 구현될 경우에는 한번의 쉬프트 연산만이 필요했기 때문에 중복된 메모리 접근 연산의 부하에 비하여 그 연산량이 상대적으로 적다.In fact, when
그러나, 16비트 워드 환경에서는 중복된 메모리 접근의 수가 대략 절반으로 줄어드는 반면, 중간 결과값 에 대한 쉬프트 연산이 한번에서 세번으로 증가하였기 때문에 그 연산 부하가 곱셈 과정에서 차지하는 비율이 상대적으로 더욱 커지게 된다.However, in a 16-bit word environment, the number of redundant memory accesses is reduced by approximately half, while the intermediate result As the shift operation for increases from one to three, the ratio of the computational load to the multiplication process becomes relatively larger.
상의 곱셈 혹은 제곱 연산의 결과를 상의 원소로 만들기 위해서는 기약 다항식 를 사용하여 감산 연산을 수행하여야 한다. Results from multiplication or square To make an element of a phase polynomial You must perform the subtraction operation using.
감산의 효율성을 높이기 위한 FIPS 186-2 표준에서 NIST가 권고한 빠른 모듈라 감산을 위한 감산 다항식이 존재한다.There is a subtractive polynomial for fast modular subtraction recommended by NIST in the FIPS 186-2 standard for efficient subtraction.
여기서, 16비트 환경에서 TinyECCK를 구현한 TinyECCK16은 을 이용하여 빠른 감산 연산을 수행한다.Here, TinyECCK16 implementing TinyECCK in 16-bit environment Fast subtraction operation using.
알고리즘 2는 TinyECCK에서 제안된 중복된 메모리 접근을 줄이는 방법이 적용된 빠른 감산 알고리즘을 16비트 워드 버전으로 수정한 것이다.
도 2에서 과정 3 내지 과정 11은 에 대하여 메모리 중복 접근을 줄인 감산 연산을 수행하고 있으며, 과정 12 내지 과정 17은 감산 연산에 대한 사후 처리이며 워드가 8비트에서 16비트로 확장된 것이기 때문에 기존의 알고리즘보다 조금 더 복잡하다.
TinyECCK16은 ECDSA 서비스를 제공하기 때문에, 의 연산 뿐만 아니라 에서의 연산도 필요하다.Since TinyECCK16 provides ECDSA services, As well as the operation of You also need to operate on.
MSP430 프로세서는 16×16 하드웨어 곱셈기를 제공하기 때문에 이를 이용하여 에서의 연산 역시 필요하다.Because the MSP430 processor provides a 16 × 16 hardware multiplier, The operation in is also necessary.
MSP430 프로세서는 16×16 하드웨어 곱셈기를 제공하기 때문에 이를 이용하여 에서의 곱셈 연산을 효율적으로 구현할 수 있다.Because the MSP430 processor provides a 16 × 16 hardware multiplier, Multiplication operation at can be implemented efficiently.
하드웨어 곱셈기를 사용하기 위해서는 인라인 어셈블리(inline assembly) 코드를 이용해야 하며, 해당 코드는 아래와 같다.To use a hardware multiplier, you must use inline assembly code, which is shown below.
asmasm volitilevolitile ("(" movmov %2, &0x130|t|n" % 2, & 0x130 | t | n "
" " movmov %3, &0x138|t|n" % 3, & 0x138 | t | n "
" " movmov &0x13C, %0|t|n" & 0x13C,% 0 | t | n "
" " movmov &0x13A, %0|t|n" & 0x13A,% 0 | t | n "
:"=r"(U), "=r"(V) : "= r" (U), "= r" (V)
:"=r"(a[i]), "r"(b[j])); : "= r" (a [i]), "r" (b [j]));
위 코드는 의 곱셈 알고리즘이 내부 루프(inner loop)에서 두 개의 16비트 워드에 대한 곱셈을 수행할 수 있도록 한다.The above code The multiplication algorithm of allows to multiply two 16-bit words in an inner loop.
와 를 각각 메모리의 0x130, 0x138 번지에 로드한다. 를 0x138번지에 로드하면 하드웨어 곱셈기가 곱셈을 수행한다. Wow Load at 0x130 and 0x138 address of memory respectively. Load at 0x138, the hardware multiplier performs the multiplication.
해당 결과값의 상위 워드와 하위 워드는 각각 0x13C와 0x13A 번지에 저장되며, 이를 U와 V에 저장하여 내부루프에서 사용한다.The upper word and lower word of the result value are stored at 0x13C and 0x13A address, respectively, and they are stored in U and V and used in the inner loop.
에 기반을 둔 TinyECC와 NanoECC의 에서의 구현은 이 하드웨어 곱셈기를 이용하기 때문에 8비트 ATmega128L 프로세서를 사용하는 센서모트에서보다 더욱 효율적으로 타원곡선 암호 연산을 구현하고 있다. Based on TinyECC and NanoECC Because the implementation uses this hardware multiplier, it implements elliptic-curve cryptography more efficiently than in the sensor remote using an 8-bit ATmega128L processor.
전술한 중복된 메모리 접근을 줄이는 방법을 적용한 도 1의 알고리즘1과 도 3의 알고리즘2를 이용하여 TinyECCK를 구현한 결과, 전체적인 연산 시간을 2 내지 6% 절약할 수 있는 것에 그침을 알 수 있다.As a result of implementing
이것은 8비트 미카즈 모트에서 제안 방법을 통하여 15 내지 19%의 연산 시간을 절약할 수 있었던 것과는 대조적이다.This is in contrast to the savings of 15 to 19% of computation time through the proposed method in 8-bit Mikazort.
상기 알고리즘1과 알고리즘2의 효율성이 떨어지게 된 가장 큰 원인은 8비트에서 16비트로 워드 크기가 확장됨에 따라 곱셈 및 감산 과정에서 사용되는 메모리 접근의 수가 현저히 줄어들었으며, 알고리즘 1의 경우에는 2t 크기의 중간 결과값 C를 왼쪽으로 쉬프트하는 연산이 1번에서 3번으로 늘어났기 때문이다.The main reason for the decrease in the efficiency of
본 발명에서는 알고리즘 1에서 중간 결과값 C를 세 번에서 한 번만 쉬프트할 수 있는 방법을 제안한다.The present invention proposes a method in which the intermediate result C can be shifted only three to once in
도 4는 본 발명에 따른 센서 모트에서의 블록 인덱싱 기반의 타원 곡선 암호 연산 방법의 흐름도이다.4 is a flowchart of a method for calculating an elliptic curve cryptography based on block indexing in a sensor mote according to the present invention.
본 발명은 유한체 의 두 원소인 에 있어서 승수 및 피승수 를 이용하여 유한체 곱셈의 결과값 를 생성하는 센서 모트에서의 블록 인덱싱 기반의 타원 곡선 암호 연산 방법을 제공한다.The present invention is finite body Two elements of Multiplier And multiplicand Result of finite field multiplication using It provides a block indexing-based elliptic curve cryptography calculation method in the sensor mote to generate a.
블록 인덱싱 기반의 타원 곡선 암호 연산 방법을 제공하기 위하여 본 발명은 우선, 상기 승수 의 워드를 프로세스 워드 사이즈 에 의해 개의 워드로 분할하여 분할 워드를 생성한다(S410).In order to provide a block indexing-based elliptic curve cryptographic operation method, the present invention first, the multiplier Process word size By The divided word is generated by dividing into four words (S410).
즉, 유한체 의 원소인 승수 의 전체 워드 를 프로세스 워드 사이즈 로 분할함으로써 개의 분할 워드를 생성한다.That is, finite body Multiplier that is an element of Full word of Process word size By dividing by Generates partitioned words.
여기서, 프로세스 워드 사이즈 는 상기 타원 곡선 암호 연산의 환경이 16비트 환경일 경우 상기 프로세스 워드 사이즈 는 16비트일 수 있으며, 상기 타원 곡선 암호 연산의 환경이 32비트 환경일 경우 상기 프로세스 워드 사이즈 는 32비트일 수 있다.Where process word size Is the process word size if the environment of the elliptic curve cryptographic operation is a 16-bit environment May be 16 bits, and the process word size when the environment of the elliptic curve cryptographic operation is a 32 bit environment May be 32 bits.
즉, 프로세스 워드 사이즈 는 타원 곡선 암호 연산 환경에 따라 결정되는 값이라 할 수 있다.That is, the process word size May be a value determined according to an elliptic curve cryptographic operation environment.
한편, 개의 워드로 분할할 경우, 해당 분할 워드 내에서 최상위 비트의 인덱스 넘버가 가장 작은 값을 가지는 분할 워드가 최하위 워드가 되며, 최상위 분할 워드에서 워드값이 채워지지 않을 경우, 이는 0으로 패딩될 수 있다.Meanwhile, In the case of dividing into four words, the partition word having the smallest index number of the most significant bit in the partition word becomes the lowest word, and if the word value is not filled in the highest partition word, it may be padded with zero. .
그 다음, 상기 분할된 개의 분할 워드 각각을 4비트 윈도우 사이즈 로 분할함으로써 복수 개의 블록으로 상기 승수 의 워드를 구분한다(S420).Then, the divided 4 bit window size The multiplier into a plurality of blocks by dividing by To distinguish the word (S420).
유한체 곱셈에 있어서 4비트 윈도우 사이즈 로 분할함으로써 상기 승수 의 워드를 분할하는데, 상기 4비트 윈도우 사이즈 에 의해 유한체 곱셈 연산시 중간 결과값 생성을 위한 승수 의 비트열의 스캔 비트수가 결정되며, 스캔된 비트열에 의해 연산되는 인덱스 값을 기준으로 피승수 의 사전 연산 테이블의 값이 결정된다.4-bit window size for finite field multiplication The multiplier by dividing by Divides the word of the 4-bit window size Multiplier for generating intermediate results in finite field multiplication The number of scan bits in the bit stream of is determined, and the multiplier based on the index value calculated by the scanned bit stream The value of the pre-operation table is determined.
그 다음, 상기 복수 개의 블록 중 홀수 번째에 위치한 블록을 순서대로 블록 인덱싱하여 제1영역을 형성하고, 짝수 번째에 위치한 블록을 순서대로 블록 인덱싱하여 제2영역을 형성한다(S430).Next, the first region is formed by indexing blocks in odd-numbered blocks among the plurality of blocks in order, and the second region is formed by block indexing blocks in even-numbered blocks in order (S430).
본 발명은 블록 단위로 유한체 곱셈의 중간 결과값을 생성하고, 이 유한체 곱셈의 중간 결과값을 블록 인덱싱 값에 따라 증가된 주소에 저장함으로써 유한체 곱셈의 결과값을 생성하여 쉬프트 연산의 횟수를 줄인다.According to the present invention, the intermediate result of finite field multiplication is generated in blocks, and the intermediate result of finite field multiplication is stored at an address increased according to the block indexing value, thereby generating the result of finite field multiplication. Reduce
이를 위하여, 본 발명은 분할된 블록 중 왼쪽을 기준으로 홀수 번째에 위치한 블록을 블록 인덱싱하여 제1영역을 형성하고, 짝수 번째에 위치한 블록을 순서대로 블록 인덱싱하여 제2영역을 형성한 다음, 제1영역 및 제2영역 별로 별도로 1부터 블록 인덱싱함으로써 유한체 곱셈의 중간 결과값을 저장할 수 있는 주소를 제공한다.To this end, the present invention forms a first region by block indexing the blocks located odd-numbered based on the left side of the divided blocks, and forming a second region by block indexing the even-numbered blocks in order. Block indexing from 1 for each
그 다음, 상기 블록 인덱싱된 블록 내에서 연속된 상하위의 두 개의 4비트 비트열을 각각 스캔하고, 스캔된 상기 두 개의 비트열에 의해 연산되는 각각의 인덱스 값을 기반으로 상기 피승수 의 두 개의 사전 연산 테이블을 로드하고, 상기 두 개의 사전 연산 테이블 및 유한체 곱셈의 중간 결과값의 대응 워드를 입력값으로 하여 상기 유한체 곱셈의 중간 결과값을 갱신한다(S440).Then, each of the two consecutive upper and lower four-bit bit strings in the block indexed block is respectively scanned, and the multiplicands are based on respective index values computed by the scanned two bit strings. Two pre-computation tables are loaded, and the intermediate result of the finite field multiplication is updated using the corresponding words of the two pre-operation tables and the intermediate result of the finite field multiplication as input values (S440).
즉, 블록 인덱싱된 블록 내에서 연속된 하위와 상위의 두 개의 4비트 비트열을 각각 스캔하여, 이를 기반으로 미리 연산된 피승수 의 두 개의 사전 연산 테이블을 로드한다.In other words, two consecutive 4-bit bitstreams of consecutive lower and upper bits are respectively scanned in a block indexed block, and a multiplicand precomputed based on this is used. Load two pre-computation tables.
그러면, 로드된 두개의 사전 연산 테이블 및 유한체 곱셈의 중간 결과값의 대응 워드를 입력값으로 하여 유한체 곱셈의 중간 결과값을 갱신한다.Then, the intermediate result of the finite field multiplication is updated using the loaded pre-computation table and the corresponding word of the intermediate result of the finite field multiplication as input values.
유한체 곱셈의 중간 결과값을 생성하는 과정은 하기의 수학식 1과 같다.The process of generating the intermediate result of the finite field multiplication is shown in
여기서 유한체 곱셈의 중간 결과값을 라고 할 때, 중간 결과값의 비트 인덱스를 , 상기 스캔된 상기 두 개의 비트열에 의해 연산되는 각각의 인덱스 값을 , 상기 를 기반으로 로드된 상기 피승수 의 두 개의 사전 연산 테이블을 각각 상기 분할 워드의 인덱스 넘버를 라 할 때, 상기의 수학식 1에 의해 유한체 곱셈의 중간 결과값을 생성하고, 연속적으로 생성된 유한체 곱셈의 중간 결과값을 기반으로 유한체 곱셈의 중간 결과값 를 갱신한다.Where the intermediate result of finite field multiplication , The bit index of the intermediate result And each index value computed by the scanned two bit strings. , remind The multiplicand loaded based on Each of the two pre-operation tables The index number of the split word In this case, the intermediate result of the finite field multiplication is generated by
그 다음, 상기 유한체 곱셈의 중간 결과값을 상기 블록 인덱싱의 넘버에 따라 증가된 주소에 저장함으로써 상기 유한체 곱셈의 결과값을 생성한다(S450).Next, the intermediate result of the finite field multiplication is stored at an address increased according to the number of the block indexing to generate the result of the finite field multiplication (S450).
여기서, 증가된 주소라 함은 상위 비트로 증가된 주소를 의미한다.Here, the increased address means an address increased by higher bits.
상세하게는, 제1영역 및 제2영역의 블록 갯수가 이고, 상기 블록 인덱싱된 블록의 인덱싱 넘버가 이면, 상기 유한체 곱셈의 중간 결과값을 상기 블록 인덱싱 넘버에 따라 바이트에 증가된 상위 비트 주소에 저장함으로써 상기 유 한체 곱셈의 결과값 를 생성하게 된다.Specifically, the number of blocks in the first region and the second region And the indexing number of the block indexed block is , The intermediate result of the finite field multiplication according to the block indexing number The result of the finite multiplication by storing in the high-order bit address incremented in bytes. Will generate
예를 들어, 16비트 환경에서 승수 의 워드가 프로세스 워드 사이즈 16으로 분할되고, 분할 워드가 4비트 윈도우 사이즈로 다시 분할될 경우, 총 4개의 블록을 형성한다.For example, multipliers in a 16-bit environment If the word of is divided into
설명의 편의를 위하여 순서대로 블록을 A, B, C, D라고 할 경우, 홀수 번째의 블록은 A와 C가 되며, 짝수 번째의 블록은 B와 D가 된다.For convenience of explanation, when a block is called A, B, C, and D in order, odd blocks become A and C, and even blocks become B and D. FIG.
여기서, 홀수 번째의 블록인 제1영역에 해당하는 블록에서 A는 '1'의 블록 인덱싱 넘버를 가지고, 블록 C는 '2'의 블록 인덱싱 넘버를 가진다. 동일한 방법으로 짝수 번째의 블록인 제2영역에 해당하는 블록도 블록 인덱싱 넘버를 가지게 된다.Here, in a block corresponding to the first region, which is an odd numbered block, A has a block indexing number of '1' and block C has a block indexing number of '2'. In the same manner, the block corresponding to the second region, which is an even numbered block, also has a block indexing number.
이와 같이 블록 인덱싱 넘버를 가진 다음, A 블록은 '1'의 블록 인덱싱 넘버를 가지고, 제1영역의 블록 갯수가 2이므로, 유한체 곱셈의 중간 결과값을 1바이트 증가된 주소에 저장되게 되고, C 블록을 기반으로 연산된 중간 결과값은 원 주소에 저장되게 된다.After the block indexing number as described above, the A block has a block indexing number of '1' and the number of blocks in the first region is 2, so that the intermediate result of the finite field multiplication is stored at an address increased by 1 byte. The intermediate result calculated on the basis of the C block is stored at the original address.
제2영역도 마찬가지로, B블록에 해당하는 중간 결과값이 1바이트 증가된 주소에 저장되게 되고, D블록을 기반으로 연산된 중간 결과값은 원 주소에 저장되게 된다.Similarly, in the second region, the intermediate result value corresponding to the B block is stored at the address increased by 1 byte, and the intermediate result value calculated based on the D block is stored at the original address.
그러나, 최종 유한체 곱셈의 결과값을 얻기 위하여 제2영역의 중간 결과값의 주소 증가를 수행하기 전에 제 1 영역의 모든 블록의 중간 결과값이 생성되면 4비 트 레프트 쉬프트 연산을 수행함으로써 최종적인 유한체 곱셈의 결과값을 생성하게 된다.However, if the intermediate result of all the blocks of the first region is generated before performing the address increase of the intermediate result of the second region to obtain the result of the final finite field multiplication, the four-bit left shift operation is performed. Will produce the result of finite field multiplication.
마지막 과정으로, 상기 제 1 영역에 해당하는 모든 워드를 기반으로 상기 유한체 곱셈의 결과값 가 생성되면, 상기 제 1 영역에 해당하는 모든 워드의 유한체 곱셈의 결과값 를 4비트 레프트 쉬프트한다(S460)Finally, the result of the finite field multiplication based on all words corresponding to the first region When is generated, the result of the finite field multiplication of all words corresponding to the
이는 전술한 바와 같이 상기 제 1 영역에 해당하는 모든 워드의 유한체 곱셈의 결과값을 4비트 레프트 쉬프트하고, 제 2 영역에 해당하는 모든 워드의 유한체 곱셈의 결과값을 모두 출력하여 저장함으로써 최종적인 유한체 곱셈의 결과값을 얻을 수 있게 된다.As described above, this results in a 4-bit left shift of the result of the finite field multiplication of all the words corresponding to the first region, and outputs and stores all the result values of the finite field multiplication of all the words corresponding to the second region. The result is a finite field multiplication.
도 5에 도시된 바와 같이, 본 발명에 따른 블록 인덱싱 기반의 타원 곡선 암호 연산 방법은 연산되는 블록들의 순서를 재조정함으로써 쉬프트연산의 횟수를 한 번으로 줄일 수 있다.As shown in FIG. 5, the block indexing-based elliptic curve cryptography method according to the present invention can reduce the number of shift operations to one time by reordering the blocks to be calculated.
더욱 상세하게는, A 블록 → C 블록 → B 블록 → D 블록의 순서로 곱셈 연산을 수행한다. More specifically, the multiplication operation is performed in the order of A block-> C block-> B block-> D block.
A 블록에 대한 곱셈 결과와 C 블록에 대한 곱셈 결과가 중간 결과값 와 배타적 논리합 연산되어 저장되는 위치는 한 바이트 차이가 난다.The multiplication result for the A block and the multiplication result for the C block are intermediate results And the exclusive OR operation differs by one byte from each other.
즉, A 블록에 대한 곱셈 결과를 C 블록에 대한 곱셈 결과보다 한 바이트 증가된 주소에 저장함으로써 쉬프트 연산을 대신할 수 있다.That is, the shift operation may be substituted by storing the multiplication result of the A block at an address increased by one byte from the multiplication result of the C block.
마찬가지로, B 블록의 곱셈 결과를 D 블록의 곱셈 결과보다 한 바이트 증가 된 주소에 저장한다. 실제로 레프트 쉬프트 연산이 수행되는 시점은 A와 C 블록에 대한 곱셈 연산을 모두 종료한 후이다.Similarly, we store the result of the multiplication of the B blocks at an address one byte increased from the result of the multiplication of the D blocks. In fact, the left shift operation is performed after the multiplication operation is performed on the A and C blocks.
즉, 이 결과를 왼쪽으로 4비트만큼 쉬프트하여 A 블록에 대한 곱셈 결과는 왼쪽으로 12비트만큼 쉬프트된 것이 되고, C 블록에 대한 곱셈 결과는 왼쪽으로 4비트만큼 쉬프트한 것이 된다.That is, this result is shifted by 4 bits to the left, so that the multiplication result for the A block is shifted by 12 bits to the left, and the multiplication result for the C block is shifted by 4 bits to the left.
또한, B 블록에 대한 곱셈 결과를 중간 결과값 의 주소보다 한 바이트 증가된 주소부터 저장함으로써 마찬가지로 8비트만큼 쉬프트한 것이된다. 결론적으로, A, B, C 블록에 대한 곱셈 연산의 결과는 도 1의 유한체 곱셈 알고리즘 1과 마찬가지로 왼쪽으로 각각 12비트, 8비트, 4비트만큼 쉬프트된 것이다.In addition, the multiplication result for the B block is the intermediate result. By shifting the address by one byte from the address of A, it is shifted by 8 bits. In conclusion, the result of the multiplication operation on the A, B, and C blocks is shifted by 12 bits, 8 bits, and 4 bits to the left as in the finite
상기 A, B 블록에 대한 곱셈의 결과는 C, D에 비하여 한 바이트 증가된 주소에 저장되어야 하므로, 중간 결과값을 저장하는 의 시작 주소를 한 바이트만큼 이동시켜야 한다. Since the result of the multiplication for the A and B blocks should be stored at an address increased by one byte compared to C and D, the intermediate result is stored. We need to shift the start address of by one byte.
이는 C언어에서 아래와 같이 작성 가능하다.This can be written in the C language as follows:
BYTE16 C[DBLNUMWORDS]; // 중간 결과값 를 저장하는 배열BYTE16 C [DBLNUMWORDS]; // intermediate result An array to store
BYTE8* ptrC8 = (BYTE8*)C; // 배열의 시작 주소를 ptrC8에 저장BYTE8 * ptrC8 = (BYTE8 *) C; // Store start address of array in ptrC8
BYTE16* ptrC16 = ptrC8 + 1; // ptrC8의 주소를 한 바이트 증가하여 저장 BYTE16 * ptrC16 =
A와 B 블록의 곱셈 결과를 저장할 때, 메모리의 ptrC16번지부터 저장한다. 이를 통하여 왼쪽으로 8비트 쉬프트한 것과 같은 효과를 얻을 수 있다.When storing the multiplication result of A and B blocks, save from ptrC16 address of memory. This gives the same effect as shifting 8 bits to the left.
도 6의 알고리즘 3은 본 발명에 따른 16비트 워드를 사용하는 환경에서 각 블록의 중간 결과값에 대한 세번의 쉬프트 연산을 한 번으로 줄인 레프트 투 라이트 결합 방법이다.
도 6의 알고리즘 3에서 과정 5와 21에서는 중간 결과값을 저장하는 의 주소값을 한 바이트 증가시켜 16비트 포인터인 에 저장한다. In the
이를 통하여, 알고리즘 3에서 과정 11 내지 과정 15, 과정 27 내지 과정 31에서 A와 B 블록에 대한 부분 곱셈들은 C와 D 블록에 비하여 한 바이트 왼쪽으로 쉬프트되어 저장되는 것과 동일하다. As a result, in
B와 D 블록에 대한 부분 곱셈들은 의 원래 시작 주소부터 저장되어야 하기 때문에 알고리즘 3에서 과정 18과 과정 34를 통하여 를 의 시작주소로 복귀한다.Partial multiplications for B and
도 1의 알고리즘 1과는 달리 본 발명에 따른 도 6의 알고리즘 3은 과정 20에서 2t 길이의 에 대하여 오직 한 번의 쉬프트 연산을 수행하고 있다.Unlike
본 발명에 따른 유한체 곱셈은 32비트 워드를 사용하는 장치에서의 의 곱셈 연산에도 적용이 가능하다. The finite field multiplication according to the present invention is performed in a device using a 32-bit word. It is also applicable to the multiplication operation of.
한편, 32비트 워드에서 윈도우를 사용하는 레프트 투 라이트 결합 방법을 구현할 경우에는 하기와 같다.Meanwhile, the left-to-right combining method using a window in a 32-bit word is as follows.
도 7은 32비트 워드를 가지는 승수 를 4비트 윈도우 사이즈로 분할한 것 이다.7 is a multiplier with 32 bit words Is divided into 4 bit window size.
즉, 32비트 워드의 최상위 4비트 블록에서 열로 스캔하면서 이것에 해당하는 부분 곱셈값을 사전 연산 테이블로부터 가져와 중간 결과값에 배타적 논리합 연산을 수행한다. 이 과정을 A블록에서부터 H블록까지 반복한다.In other words, scanning the column from the most significant 4-bit block of the 32-bit word, the corresponding partial multiplication value is taken from the pre-computation table and the exclusive OR operation is performed on the intermediate result value. This process is repeated from block A to block H.
따라서, 일반적인 라이트 투 레프트 결합의 경우 7번의 쉬프트 연산이 중간 결과값에 대하여 수행되어야 한다.Therefore, in the case of a general light-to-left combination, seven shift operations must be performed on intermediate results.
그러나, 이 경우 역시, 블록을 계산하는 순서와 부분 곱셈의 값들이 저장되는 주소를 조정하여 한 번의 쉬프트 연산만으로 계산할 수 있다. 연산 방법은 하기와 같다.However, also in this case, it is possible to calculate by only one shift operation by adjusting the order in which the blocks are calculated and the address where the values of the partial multiplications are stored. The calculation method is as follows.
1. A블록에 대한 부분 곱셈의 중간 결과값을 의 시작주소보다 3-Byte 증가된 주소부터 저장한다.1. Find the intermediate result of the partial multiplication for block A. Store the address starting from 3-bytes larger than the start address.
2. C블록에 대한 부분 곱셈의 중간 결과값을 의 시작주소보다 2-Byte 증가된 주소부터 저장한다.2. Find the intermediate result of the partial multiplication for the C blocks. Stores the address starting with 2-Byte from the start address of.
3. E블록에 대한 부분 곱셈의 중간 결과값을 의 시작주소보다 1-Byte 증가된 주소부터 저장한다.3. Find the intermediate result of the partial multiplication for the E block. Store the address 1-byte increased from the start address of.
4. G블록에 대한 부분 곱셈의 중간 결과값을 의 시작주소부터 저장한다.4. Find the intermediate result of the partial multiplication for the G block. Store from the start address of.
5. 중간 결과값 를 왼쪽으로 4비트 레프트 쉬프트한다. 이를 통하여 A,C, E, G 블록에 대한 부분 곱셈의 결과값들은 각각 28비트, 20비트, 12비트, 4비 트 쉬프트한 것이 된다.5. Interim Result Left
6. B블록에 대한 부분 곱셈의 중간 결과값을 의 시작주소보다 3-Byte 증가된 주소부터 저장한다.6. Find the intermediate result of the partial multiplication for the B blocks. Store the address starting from 3-bytes larger than the start address.
7. D블록에 대한 부분 곱셈의 중간 결과값을 의 시작주소보다 2-Byte 증가된 주소부터 저장한다.7. Find the intermediate result of the partial multiplication for the D block. Stores the address starting with 2-Byte from the start address of.
8. F블록에 대한 부분 곱셈의 중간 결과값을 의 시작주소보다 1-Byte 증가된 주소부터 저장한다.8. Find the intermediate result of the partial multiplication for the F block. Store the address 1-byte increased from the start address of.
9. H블록에 대한 부분 곱셈의 중간 결과값을 의 시작주소부터 저장한다. 9. Find the intermediate result of the partial multiplication for the H blocks. Store from the start address of.
10. 결론적으로 A, B, C, D, E, F, G, H 블록의 부분 곱셈값들이 각각 28비트, 24비트, 20비트, 16비트, 12비트, 8비트, 4비트 쉬프트되어 유한체 곱셈의 최종 결과값 를 생성하게 된다.10. In conclusion, partial multiplications of A, B, C, D, E, F, G, and H blocks are shifted by 28 bits, 24 bits, 20 bits, 16 bits, 12 bits, 8 bits, and 4 bits, respectively. The final result of the multiplication Will generate
32비트의 워드 크기를 사용하는 곳에서 의 곱셈을 구현할 때, 확장된 워드 크기로 인하여 메모리에 위치한 의 원소를 CPU로 로드할 때 사용되는 메모리 접근 명령어의 수는 16비트 워드를 사용할 때보다 더욱 줄어든다.Where 32-bit word size is used When implementing the multiplication of, because of the expanded word size The number of memory access instructions used to load the element of into the CPU is even lower than when using 16-bit words.
따라서, TinyECCK의 연구에서 제안되었던 곱셈 방법의 효용성은 더욱 줄어든다. 따라서, TinyECCK의 연구에서 제안되었던 곱셈 방법의 효율성은 더욱 줄어든다. 그러나, 본 발명에서 제안한 곱셈 방법은 중간 결과값은 쉬프트시키는 횟수를 1번으로 고정시켜 곱셈 연산을 수행하기 때문에 이를 통한 성능의 향상은 16비트 워드를 사용할 때보다 더욱 커진다.Thus, the effectiveness of the multiplication method proposed in TinyECCK's work is further reduced. Thus, the efficiency of the multiplication method proposed in TinyECCK's work is further reduced. However, since the multiplication method proposed in the present invention performs the multiplication operation by fixing the number of shifts to 1 as the intermediate result value, the performance improvement through this is larger than when using 16-bit words.
도 8은 본 발명에 따른 센서 모트에서의 블록 인덱싱 기반의 타원 곡선 암호 연산 장치의 블록도를 도시한 것이다. 8 is a block diagram of a block indexing-based elliptic curve cryptography apparatus in the sensor mote according to the present invention.
한편, 본 발명에 따른 센서 모트에서의 블록 인덱싱 기반의 타원 곡선 암호 연산 장치의 상세한 설명에 있어서, 전술한 센서 모트에서의 블록 인덱싱 기반의 타원 곡선 암호 연산 방법과 중복된 상술은 가급적 생략하기로 한다.Meanwhile, in the detailed description of the block indexing-based elliptic curve cryptography apparatus in the sensor mote according to the present invention, the description overlapped with the above-described block indexing-based elliptic curve cryptography method in the sensor motte will be omitted. .
본 발명은 유한체 의 두 원소인 에 있어서 승수 및 피승수 를 이용하여 유한체 곱셈의 결과값 를 생성하며, 상기 센서 모트는 미카즈(MICAZ) 센서 모트를 포함할 수 있다.The present invention is finite body Two elements of Multiplier And multiplicand Result of finite field multiplication using To generate, the sensor mort may include a MICAZ sensor mort.
도 8을 참조하면, 본 발명에 따른 센서 모트에서의 블록 인덱싱 기반의 타원 곡선 암호 연산 장치는, 분할 워드 생성부(810), 블록 생성부(820), 블록 인덱싱부(830), 중간 결과값 생성부(840), 저장부(850) 및 쉬프트 레지스터(860)를 포함할 수 있다.Referring to FIG. 8, the block indexing-based elliptic curve cryptography apparatus in the sensor mote according to the present invention includes a
분할 워드 생성부(810)는 상기 승수 의 워드를 프로세스 워드 사이즈 에 의해 개의 워드로 분할하여 분할 워드를 생성한다.The
상기 프로세스 워드 사이즈 는 유한체 곱셈의 연산 환경에 따라 결정된 16비트 또는 32비트 단위의 크기를 가질 수 있다.The process word size May have a size in units of 16 bits or 32 bits determined according to the operation environment of the finite field multiplication.
블록 생성부(820)는 상기 분할된 개의 워드 각각을 4비트 윈도우 사이즈 로 분할함으로써 상기 승수 의 워드를 구분하는 복수 개의 블록을 생성한다.
그리고, 블록 인덱싱부(830)는 상기 복수 개의 블록 중 홀수 번째에 위치한 블록을 순서대로 블록 인덱싱하여 제1영역을 형성하고, 짝수 번째에 위치한 블록을 순서대로 블록 인덱싱하여 제2영역을 형성한다.The
중간 결과값 생성부(840)는 상기 블록 인덱싱부(830)에 의해 블록 인덱싱된 블록 내에서 연속된 상하위의 두 개의 4비트 비트열을 각각 스캔하고, 스캔된 상기 두 개의 비트열에 의해 연산되는 각각의 인덱스 값을 기반으로 상기 피승수 의 두 개의 사전 연산 테이블을 로드하고, 상기 두 개의 사전 연산 테이블 및 유한체 곱셈의 중간 결과값의 대응 워드를 입력값으로 하여 상기 유한체 곱셈의 중간 결과값을 갱신한다.The
한편, 상기 피승수 의 사전 연산 테이블은 상기 승수 의 스캔된 4비트 비트열에 따라 미리 결정된 테이블이며, 이에 대한 상세한 설명은 전술한 바와 같다.Meanwhile, the multiplicand Pre-operation table of the multiplier This is a table determined according to the scanned 4-bit bit string of, and the detailed description thereof is as described above.
저장부(850)는 상기 유한체 곱셈의 중간 결과값을 상기 블록 인덱싱된 넘버에 따라 증가된 주소에 해당하는 상기 유한체 곱셈의 결과값 에 저장함으로써 상기 유한체 곱셈의 결과값 를 생성한다.The
상기 유한체 곱셈의 중간 결과값은 상기 유한체 곱셈의 중간 결과값 의 비트 인덱스를 , 상기 스캔된 상기 두 개의 비트열에 의해 연산되는 각각의 인덱스 값을 , 상기 를 기반으로 로드된 상기 피승수 의 두 개의 사전 연산 테이블을 각각 상기 분할 워드의 인덱스 넘버를 라 할 때 전술한 상기 수학식 1에 의해 연산될 수 있다.The intermediate result of the finite field multiplication is the intermediate result of the finite field multiplication. Bit index of And each index value computed by the scanned two bit strings. , remind The multiplicand loaded based on Each of the two pre-operation tables The index number of the split word It can be calculated by the above equation (1).
여기서, 상기 저장부(850)는 상기 제1영역 및 제2영역의 블록 갯수가 이고, 상기 블록 인덱싱된 블록의 인덱싱 넘버가 이면, 바이트 증가된 주소로 상기 배타적 논리합 연산의 결과값을 저장한다.Here, the
그리고, 쉬프트 레지스터(860)는 상기 제 1 영역에 해당하는 모든 워드를 기반으로 상기 유한체 곱셈의 결과값 가 생성되면, 상기 제 1 영역에 해당하는 모든 워드의 유한체 곱셈의 결과값 를 4비트 레프트 쉬프트한다.In addition, the
한편, 쉬프트 레지스터(860)는 상기 4비트 레프트 쉬프트된 상기 제 1 영역에 해당하는 모든 워드의 배타적 논리합 연산의 결과값과 상기 제 2 영역에 해당하는 모든 워드의 배타적 논리합 연산의 결과값을 모두 출력하여 유한체 곱셈의 결과값 를 생성하는 결과값 출력 모듈(미도시)을 더 포함할 수 있다.On the other hand, the
하기의 표 2는 에서의 유한체 곱셈 연산을 각각 일반적인 레프트 투 라이트 결합 곱셈 방법(Original), 알고리즘 1, 및 본 발명에 따른 유한체 곱셈 방법을 이용하여 계산하였을 경우의 연산시간을 비교한 것이다.Table 2 below is The finite field multiplication operations in are compared with the calculation time when calculated using a general left-to-right combined multiplication method (Original),
상기 표 2를 참조하면 본 발명에 따른 알고리즘 3은 Original과 알고리즘 1에 비하여 각각 27.9%, 21.7%의 연산시간을 단축하고 있다.Referring to Table 2,
하기는, 종래의 일반적인 레프트 투 라이트 결합 방법을 적용한 유한체 곱셈 연산, 종래의 TinyECCK에서 제안된 레프트 투 라이트 결합 방법을 적용한 유한체 곱셈 연산, 및 본 발명에 따른 유한체 곱셈 연산의 연산 성능에 대한 총 연산량을 비교하기로 한다.The finite field multiplication operation applying the conventional left-to-right combining method, the finite field multiplication operation applying the left-to-right combining method proposed by the conventional TinyECCK, and the computation performance of the finite field multiplication operation according to the present invention are described below. Let's compare the total amount of computation.
우선, 도 1의 알고리즘 1에 기반한 일반적인 레프트 투 라이트 결합 방법은 사전 연산, 부분 곱셈 연산 및 중간 결과값 쉬프트 연산의 세 단계로 구성된다. 각각의 연산량은 하기의 표 3과 같다.First, the general left-to-right combining method based on
여기서, L은 로드(LOAD) 연산, S는 저장(STORE) 연산, X는 배타적 논리합 연산(XOR 연산)을 나타내고, SH는 쉬프트(SHIFT) 연산을 나타낸다.Where L denotes a LOAD operation, S denotes a STORE operation, X denotes an exclusive OR operation, and SH denotes a shift operation.
그리고, 사전 연산은 도 1의 알고리즘 1의 과정 3에 해당하며, 부분 곱셈 연산은 도 1의 알고리즘 1의 과정 7 내지 과정 12에 해당한다.The dictionary operation corresponds to process 3 of
그리고, 중간 결과값 쉬프트 연산은 도 1의 알고리즘 1의 과정 13 내지 과정 16에 해당한다.The intermediate result shift operation corresponds to process 13 to process 16 of
한편, 종래의 TinyECCK에서 제안된 레프트 투 라이트 곱셈 방법은 도 1의 알고리즘 1에서 곱셈 과정에서 발생하는 중복된 메모리 접근의 수를 줄인 것이다.Meanwhile, the left-to-right multiplication method proposed in the conventional TinyECCK reduces the number of redundant memory accesses occurring in the multiplication process in
즉, 도 1의 알고리즘 1의 과정 7 내지 과정 11이 루프문(for loop)에서 각각 계산되던 것을 하나로 합침으로써 같은 값이 메모리로부터 로드되는 것과 결과값이 메모리의 동일한 위치에 저장되는 것을 줄였다.That is, the
도 3의 알고리즘 2를 기반으로 종래의 TinyECCK에서 제안된 레프트 투 라이트 곱셈 방법의 연산량은 하기의 표 4와 같으며, 이는 상기 알고리즘 1과 사전 연산량이 같으나, 부분곱셈의 연산량이 줄어들었음을 알 수 있다.Based on
본 발명에 따른 유한체 곱셈 연산은 상기 알고리즘 2의 중간 결과값 쉬프트 연산량을 줄였다.The finite field multiplication operation according to the present invention reduces the intermediate result shift operation amount of
즉, 16비트 워드 상에서 상기 3[(4t+1)L + (2t+1)S + (4t+1)SH]의 연산을 [(4t+1)L + (2t+1)S + (4t+1)SH]로 줄였다. 이는 하기의 표 5와 같다.That is, the operation of 3 [(4t + 1) L + (2t + 1) S + (4t + 1) SH] on a 16-bit word is [(4t + 1) L + (2t + 1) S + (4t +1) SH]. This is shown in Table 5 below.
실제로, 기존의 TinyECCK에서 제안된 중복된 메모리 접근을 줄이는 방법을 적용한 곱셈 알고리즘의 효율성이 16비트, 32비트 워드와 같이 확장된 워드를 사용할 경우에는 떨어짐을 보임을 알 수 있다.In fact, we can see that the efficiency of the multiplication algorithm using the proposed method of reducing the redundant memory access proposed by TinyECCK is poor when using extended words such as 16-bit and 32-bit words.
효율성이 떨어지는 주된 원인은 의 원소에 접근하기 위하여 필요한 메모리 접근의 횟수는 줄어드는 반면, 중간 결과값을 여러번 쉬프트하여야 하는 것이다.The main reason for inefficiency The number of memory accesses required to access the element of is reduced, while the intermediate result must be shifted several times.
따라서, 기존의 중간 결과값을 세 번 쉬프트하여야 하는 것을 한 번으로 줄일 수 있는 레프트 투 라이트 결합 방법을 제시하였고, 이 알고리즘은 32비트와 같은 더욱 큰 워드를 사용할 경우에도 이용될 수 있음을 확인할 수 있다.Therefore, we have proposed a left-to-right combining method that reduces the need to shift the existing intermediate result three times in one, and it can be seen that this algorithm can be used even when using a larger word such as 32 bits. have.
본 발명에 따른 유한체 곱셈 방법을 적용하면, 16비트 티모트 스카이(Tmote Sky) 모트에서 동작하는 TinyECCK16을 개발할 수 있고, 기존의 알고리즘을 사용하여 구현한 것에 비하여 약 17 내지 23%의 연산 시간을 절약할 수 있다. TinyECCK16은 현재까지 16비트 센서 모트에서 구현된 타원곡선 소프트웨어 중에서 연산 시간 및 메모리 사용량 측명에서 가장 뛰어나며, 14422 바이트의 ROM과 1750 바이트의 RAM을 이용하여 0.81초와 1.35초 안에 각각 하나의 서명을 생성하고 검증할 수 있는 속도를 가지고 있다. By applying the finite field multiplication method according to the present invention, it is possible to develop TinyECCK16 that operates on a 16-bit Timote Sky mote, and it takes about 17 to 23% of the computation time compared with the conventional algorithm. You can save. TinyECCK16 is by far the best in terms of computation time and memory usage of elliptic curve software implemented in 16-bit sensor mort, generating one signature in 0.81 seconds and 1.35 seconds using 14422 bytes of ROM and 1750 bytes of RAM. It has a speed that can be verified.
본 발명에 따른 센서 모트에서의 블록 인덱싱 기반의 타원 곡선 암호 방법은 컴퓨터로 읽을 수 있는 기록 매체에 컴퓨터(정보 처리 기능을 갖는 장치를 모두 포함한다)가 읽을 수 있는 코드로서 구현하는 것이 가능하다.The block indexing-based elliptic curve cryptography method in the sensor mote according to the present invention can be embodied as computer readable codes on a computer readable recording medium.
컴퓨터가 읽을 수 있는 기록매체는 컴퓨터 시스템에 의하여 읽혀질 수 있는 테이터가 저장되는 모든 종류의 기록 장치를 포함한다. 컴퓨터가 읽을 수 있는 기록 장치의 예로는 ROM, RAM, CD-ROM, 자기 테이프, 플로피 디스크, 광데이터 저장장치 등이 있다. 또한 컴퓨터가 읽을 수 있는 기록매체는 네트워크로 연결된 컴퓨터 장치에 분산되어 분산방식으로 컴퓨터가 읽을 수 있는 코드가 저장되고 실행될 수 있다.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, magnetic tape, floppy 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 the embodiments shown in the drawings, this is merely exemplary, and it will be understood by those skilled in the art that various modifications and equivalent other embodiments are possible. Therefore, the true technical protection scope of the present invention will be defined by the technical details of the appended claims.
도 1은 일반적인 레프트 투 라이트 결합 방법을 적용한 유한체 곱셈 연산의 알고리즘을 도시한 것이다.1 illustrates an algorithm of a finite field multiplication operation applying the general left-to-right combining method.
도 2는 종래의 수정된 중복된 메모리 접근을 줄이는 감산 알고리즘을 도시한 것이다.2 illustrates a subtraction algorithm that reduces the conventional modified redundant memory access.
도 3은 종래의 중복된 메모리 접근을 줄이는 유한체 곱셈 연산의 알고리즘을 도시한 것이다.3 illustrates an algorithm of a finite field multiplication operation that reduces the conventional redundant memory access.
도 4는 본 발명에 따른 센서 모트에서의 블록 인덱싱 기반의 타원 곡선 암호 연산 방법의 흐름도이다.4 is a flowchart of a method for calculating an elliptic curve cryptography based on block indexing in a sensor mote according to the present invention.
도 5는 본 발명에 적용되는 16비트 워드를 가지는 승수를 4비트 윈도우 사이즈로 분할한 것이다.5 is a multiplier having a 16-bit word applied to the present invention to a 4-bit window size.
도 6은 본 발명에 따른 블록 인덱싱 기반의 타원 곡선 암호 연산에서의 유한체 곱셈 연산 알고리즘을 도시한 것이다.6 illustrates a finite field multiplication algorithm in block indexing-based elliptic curve cryptography according to the present invention.
도 7은 본 발명에 적용되는 32비트 워드를 가지는 승수를 4비트 윈도우 사이즈로 분할한 것이다.7 is a multiplier having a 32-bit word applied to the present invention to a 4-bit window size.
도 8은 본 발명에 따른 센서 모트에서의 블록 인덱싱 기반의 타원 곡선 암호 연산 장치의 블록도를 도시한 것이다. 8 is a block diagram of a block indexing-based elliptic curve cryptography apparatus in the sensor mote according to the present invention.
Claims (15)
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020080085332A KR100954843B1 (en) | 2008-08-29 | 2008-08-29 | Method and Apparatus of elliptic curve cryptographic operation based on block indexing on sensor mote and Recording medium using by the same |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020080085332A KR100954843B1 (en) | 2008-08-29 | 2008-08-29 | Method and Apparatus of elliptic curve cryptographic operation based on block indexing on sensor mote and Recording medium using by the same |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20100026358A true KR20100026358A (en) | 2010-03-10 |
KR100954843B1 KR100954843B1 (en) | 2010-04-28 |
Family
ID=42177710
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020080085332A KR100954843B1 (en) | 2008-08-29 | 2008-08-29 | Method and Apparatus of elliptic curve cryptographic operation based on block indexing on sensor mote and Recording medium using by the same |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR100954843B1 (en) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101297966B1 (en) * | 2011-12-14 | 2013-08-19 | (주)엠씨씨 | Method for encryping using ecc algorithm |
KR101636809B1 (en) * | 2014-12-31 | 2016-07-07 | 고려대학교 산학협력단 | Binary field reduction method for Elliptic Curve Cryptography |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100478974B1 (en) * | 2002-12-03 | 2005-03-25 | 한국전자통신연구원 | Serial finite-field multiplier |
KR100480997B1 (en) * | 2002-12-21 | 2005-04-07 | 한국전자통신연구원 | APPARATUS OF FIELD MULTIPLICATION OVER GF(p) AND GF(2^m) |
KR100564764B1 (en) * | 2003-12-24 | 2006-03-27 | 한국전자통신연구원 | Finite field polynomial multiplier and Method thereof |
KR100670780B1 (en) * | 2004-10-29 | 2007-01-17 | 한국전자통신연구원 | Apparatus for hybrid multiplier in GF2^m and Method for multiplying |
-
2008
- 2008-08-29 KR KR1020080085332A patent/KR100954843B1/en not_active IP Right Cessation
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101297966B1 (en) * | 2011-12-14 | 2013-08-19 | (주)엠씨씨 | Method for encryping using ecc algorithm |
KR101636809B1 (en) * | 2014-12-31 | 2016-07-07 | 고려대학교 산학협력단 | Binary field reduction method for Elliptic Curve Cryptography |
Also Published As
Publication number | Publication date |
---|---|
KR100954843B1 (en) | 2010-04-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Doröz et al. | Accelerating fully homomorphic encryption in hardware | |
CN110351087B (en) | Pipelined Montgomery modular multiplication operation method | |
US7945784B1 (en) | Method and system to perform secret sharing | |
US8793300B2 (en) | Montgomery multiplication circuit | |
US8959134B2 (en) | Montgomery multiplication method | |
CN102084335A (en) | Implementation of arbitrary galois field arithmetic on a programmable processor | |
JP2004326112A (en) | Multiple modulus selector, accumulator, montgomery multiplier, method of generating multiple modulus, method of producing partial product, accumulating method, method of performing montgomery multiplication, modulus selector, and booth recorder | |
EP1560110A1 (en) | Multiple-word multiplication-accumulation circuit and Montgomery modular multiplication-accumulation circuit | |
EP2350811A1 (en) | Method and apparatus for modulus reduction | |
Bisheh Niasar et al. | Efficient hardware implementations for elliptic curve cryptography over Curve448 | |
US7849125B2 (en) | Efficient computation of the modulo operation based on divisor (2n-1) | |
Wang et al. | Solving large systems of linear equations over GF (2) on FPGAs | |
US6957243B2 (en) | Block-serial finite field multipliers | |
US20230153070A1 (en) | Parallel generation of a random matrix | |
KR100954843B1 (en) | Method and Apparatus of elliptic curve cryptographic operation based on block indexing on sensor mote and Recording medium using by the same | |
JP5147085B2 (en) | Calculation method and calculation device | |
CN116318660B (en) | Message expansion and compression method and related device | |
US9025766B2 (en) | Efficient hardware architecture for a S1 S-box in a ZUC cipher | |
KR20050065976A (en) | Apparatus and method for computing sha-1 hash function | |
Pan | Nearly optimal solution of rational linear systems of equations with symbolic lifting and numerical initialization | |
Elkhatib et al. | Cryptographic Engineering a Fast and Efficient SIKE in FPGA | |
US7539719B2 (en) | Method and apparatus for performing multiplication in finite field GF(2n) | |
Arazi et al. | On calculating multiplicative inverses modulo $2^{m} $ | |
Baktır et al. | Finite field polynomial multiplication in the frequency domain with application to elliptic curve cryptography | |
US11924321B1 (en) | System and method for encrypting and compressing blocks of data |
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: 20130405 Year of fee payment: 4 |
|
FPAY | Annual fee payment |
Payment date: 20140304 Year of fee payment: 5 |
|
LAPS | Lapse due to unpaid annual fee |