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 PDF

Info

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
Application number
KR1020080085332A
Other languages
Korean (ko)
Other versions
KR100954843B1 (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 KR1020080085332A priority Critical patent/KR100954843B1/en
Publication of KR20100026358A publication Critical patent/KR20100026358A/en
Application granted granted Critical
Publication of KR100954843B1 publication Critical patent/KR100954843B1/en

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/30Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
    • H04L9/3066Public 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/06Cryptographic 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

PURPOSE: A method and an apparatus for operating an elliptic curve cryptograph based on block indexing in a sensor mote, and a recording medium are provided to improve operation efficiency by reducing the number of left shifts of a middle result value. CONSTITUTION: A division word is generated(S410). A plurality of blocks is generated by dividing the division window into four bit window size(S420). A first region and a second region are formed through a block indexing(S430). An intermediate result value of a finite field multiplication is generated. The intermediate result value of the finite field multiplication is updated(S440). The intermediate result value of the finite field multiplication is stored in an address increasing according to the number of block indexing(S450). The result value of the finite field multiplication of all words corresponding to the first region is shifted left with four bits(S460).

Description

센서 모트에서의 블록 인덱싱 기반의 타원 곡선 암호 연산 방법, 그 장치 및 이를 기록한 기록 매체{Method and Apparatus of elliptic curve cryptographic operation based on block indexing on sensor mote and Recording medium using by the same}Method and Apparatus of elliptic curve cryptographic operation based on block indexing on sensor mote and Recording medium using by the same}

본 발명은 유한체 곱셈 방법에 관한 것으로서, 특히 저전력 프로세서에서 효율적으로 연산되는

Figure 112008061860564-PAT00018
상의 곱셈 알고리즘을 적용하여 확장된 워드 크기에서 곱셈 연산을 수행할 수 있는 센서 모트에서의 블록 인덱싱 기반의 타원 곡선 암호 연산 방법, 그 장치 및 이를 기록한 기록 매체에 관한 것이다.FIELD OF THE INVENTION The present invention relates to a finite field multiplication method, in particular that
Figure 112008061860564-PAT00018
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.

지금까지 상대적으로 효율적인 성능을 제시한 타원 곡선 암호 구현들은 모두

Figure 112008061860564-PAT00019
에 기반을 두었으나,
Figure 112008061860564-PAT00020
에 기반을 둔 구현들은 센서 네트워크에 적용할 만큼의 충분한 성능을 제시하지 못하였다.All the elliptic curve cryptography implementations that have shown relatively efficient performance so far
Figure 112008061860564-PAT00019
Based on
Figure 112008061860564-PAT00020
Based implementations did not provide enough performance for the sensor network.

그러나, 최근 8비트 미카즈(MICAZ) 센서 모트 상에서 구현된 TinyECCK(이하, 'TinyECCK'라고 함.)의 연구 결과(8비트 Micaz 모트에서

Figure 112008061860564-PAT00021
상의 효율적인 타원곡선 암호 시스템 구현, 2008. 6. 정보보호학회지)는 유한체
Figure 112008061860564-PAT00022
상에서의 곱셈과 감산 연산은 많은 수의 중복된 메모리 접근과 관련되어 있으며, 이러한 불필요한 메모리 접근 연산을 줄임으로써 전체적인 타원 곡선 암호 연산의 성능을 현저히 높일 수 있음이 알려졌다.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)
Figure 112008061860564-PAT00021
Implementation of an Efficient Elliptic Curve Cryptographic System in Korea, June 2008
Figure 112008061860564-PAT00022
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 연구에서는 유한체 곱셈 연산에서 발생하는 중복된 메모리 접근 연산을 줄임으로써 현저하게 연산시간을 단축시킬 수 있다. 그러나, 해당 장 치에서 사용되는 워드 크기가 증가함에 따라 메모리 상에 존재하는

Figure 112008061860564-PAT00023
상의 원소에 접근하기 위하여 사용되는 메모리 접근의 횟수가 줄어들기 때문에 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,
Figure 112008061860564-PAT00023
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.

저전력 장치에서

Figure 112008061860564-PAT00024
상의 곱셈을 효율적으로 구현하기 위한 노력은 지금까지 계속되고 있다.In low power devices
Figure 112008061860564-PAT00024
Efforts to efficiently implement phase multiplication continue to this day.

Figure 112008061860564-PAT00025
상에서의 여러가지 곱셈 알고리즘들 중 윈도우를 사용하는 레프트 투 라이트 결합(Left-To-Right Combination:LTR Comb) 곱셈 방법이 효율적인 것으로 알려졌으며, 전술한 TinyECCK의 연구 결과에서는 8비트 저전력 프로세서에서 이 LTR 결합 곱셈이 연산될 때 발생하는 중복된 메모리 접근을 제거함으로써 더욱 성능을 높일 수 있음을 보였다.
Figure 112008061860564-PAT00025
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비트와 같은 확장된 워드 크기를 사용하는 환경에 적용할 경우에는 메모리에 위치한

Figure 112008061860564-PAT00026
상의 원소에 접근하는데 드는 연산 부하는 줄어드는 반면, 레프트 투 라이트 결합 곱셈의 연산 중에 중간 결과값을 레프트 쉬프트하는 횟수가 증가하기 때문에 그 효용 성이 떨어진다.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,
Figure 112008061860564-PAT00026
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.

따라서, 본 발명이 해결하고자 하는 첫 번째 과제는, 확장된 워드를 사용하는 저전력 프로세서에서 메모리에 위치한

Figure 112008061860564-PAT00027
상의 원소에 접근하는데 드는 연산 부하를 감소시킬 수 있고, 레프트 투 라이트 결합 곱셈 연산 중에 중간 결과값을 레프트 쉬프트 하는 횟수를 감소시킬 수 있는 센서 모트에서의 블록 인덱싱 기반의 타원 곡선 암호 연산 방법을 제공하는 것이다.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
Figure 112008061860564-PAT00027
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,

유한체

Figure 112008061860564-PAT00028
의 두 원소인
Figure 112008061860564-PAT00029
에 있어서 승수
Figure 112008061860564-PAT00030
및 피승수
Figure 112008061860564-PAT00031
를 이용하여 유한체 곱셈의 결과값
Figure 112008061860564-PAT00032
를 생성하는 센서 모트에서의 블록 인덱싱 기반의 타원 곡선 암호 연산 방법에 있어서, 상기 승수
Figure 112008061860564-PAT00033
의 워드를 프로세스 워드 사이 즈
Figure 112008061860564-PAT00034
에 의해
Figure 112008061860564-PAT00035
개의 워드로 분할하여 분할 워드를 생성하는 단계; 상기 분할된
Figure 112008061860564-PAT00036
개의 워드 각각을 4비트 윈도우 사이즈
Figure 112008061860564-PAT00037
로 분할함으로써 복수 개의 블록으로 상기 승수
Figure 112008061860564-PAT00038
의 워드를 구분하는 단계; 상기 복수 개의 블록 중 홀수 번째에 위치한 블록을 순서대로 블록 인덱싱하여 제1영역을 형성하고, 짝수 번째에 위치한 블록을 순서대로 블록 인덱싱하여 제2영역을 형성하는 단계; 상기 블록 인덱싱된 블록 내에서 연속된 상하위의 두 개의 4비트 비트열을 각각 스캔하고, 스캔된 상기 두 개의 비트열에 의해 연산되는 각각의 인덱스 값을 기반으로 상기 피승수
Figure 112008061860564-PAT00039
의 두 개의 사전 연산 테이블을 로드하고, 상기 두 개의 사전 연산 테이블 및 유한체 곱셈의 중간 결과값의 대응 워드를 입력값으로 하여 상기 유한체 곱셈의 중간 결과값을 갱신하는 단계; 상기 유한체 곱셈의 중간 결과값을 상기 블록 인덱싱값에 따라 증가된 주소에 해당하는 상기 유한체 곱셈의 결과값
Figure 112008061860564-PAT00040
에 저장함으로써 상기 유한체 곱셈의 결과값
Figure 112008061860564-PAT00041
를 생성하는 단계; 및 상기 제 1 영역에 해당하는 모든 워드를 기반으로 상기 유한체 곱셈의 결과값
Figure 112008061860564-PAT00042
가 생성되면, 상기 제 1 영역에 해당하는 모든 워드의 유한체 곱셈의 결과값
Figure 112008061860564-PAT00043
를 4비트 레프트 쉬프트하는 단계를 포함하는 센서 모트에서의 블록 인덱싱 기반의 타원 곡선 암호 연산 방법을 제공한다.Finite body
Figure 112008061860564-PAT00028
Two elements of
Figure 112008061860564-PAT00029
Multiplier
Figure 112008061860564-PAT00030
And multiplicand
Figure 112008061860564-PAT00031
Result of finite field multiplication using
Figure 112008061860564-PAT00032
In the block indexing-based elliptic curve cryptography method for generating a sensor mote, The multiplier
Figure 112008061860564-PAT00033
Word of Process Word Size
Figure 112008061860564-PAT00034
By
Figure 112008061860564-PAT00035
Generating a divided word by dividing into four words; The divided
Figure 112008061860564-PAT00036
4-bit window size for each word
Figure 112008061860564-PAT00037
The multiplier into a plurality of blocks by dividing by
Figure 112008061860564-PAT00038
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
Figure 112008061860564-PAT00039
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
Figure 112008061860564-PAT00040
Result of the finite field multiplication by storing in
Figure 112008061860564-PAT00041
Generating a; And a result of the finite field multiplication based on all words corresponding to the first region.
Figure 112008061860564-PAT00042
When is generated, the result of the finite field multiplication of all words corresponding to the first region
Figure 112008061860564-PAT00043
It provides a block indexing-based elliptic curve cryptography method in the sensor mote comprising the step of 4-bit left shift.

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

Figure 112008061860564-PAT00044
를 생성하는 단계는 상기 제1영역 및 제2영역의 블록 갯수가
Figure 112008061860564-PAT00045
이고, 상기 블록 인덱싱된 블록의 인덱싱 넘버가
Figure 112008061860564-PAT00046
이면,
Figure 112008061860564-PAT00047
바이트 증가된 주소로 상기 배타적 논리합 연산의 결과값을 저장하는 단계를 포함할 수 있다.On the other hand, the result of the finite field multiplication
Figure 112008061860564-PAT00044
Generating the number of blocks of the first region and the second region
Figure 112008061860564-PAT00045
And the indexing number of the block indexed block is
Figure 112008061860564-PAT00046
If,
Figure 112008061860564-PAT00047
And storing the result of the exclusive OR operation as the byte incremented address.

그리고, 상기 4비트 레프트 쉬프트하는 단계는 상기 4비트 레프트 쉬프트된 상기 제 1 영역에 해당하는 모든 워드의 배타적 논리합 연산의 결과값과 상기 제 2 영역에 해당하는 모든 워드의 배타적 논리합 연산의 결과값을 모두 출력하여 유한체 곱셈의 결과값

Figure 112008061860564-PAT00048
를 생성하는 단계를 포함할 수 있다.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
Figure 112008061860564-PAT00048
It may include the step of generating.

아울러, 상기 프로세스 워드 사이즈

Figure 112008061860564-PAT00049
는 16비트 또는 32비트 단위의 크기일 수 있다.In addition, the process word size
Figure 112008061860564-PAT00049
May be 16 bits or 32 bits in size.

그리고, 상기 피승수

Figure 112008061860564-PAT00050
의 사전 연산 테이블은 상기 승수
Figure 112008061860564-PAT00051
의 스캔된 4비트 비트열에 따라 미리 결정된 테이블인 것을 특징으로 한다.And the multiplicand
Figure 112008061860564-PAT00050
Pre-operation table of the multiplier
Figure 112008061860564-PAT00051
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.

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

Figure 112008061860564-PAT00052
의 비트 인덱스를
Figure 112008061860564-PAT00053
, 상기 스캔된 상기 두 개의 비트열에 의해 연산되는 각각의 인덱스 값을
Figure 112008061860564-PAT00054
, 상기
Figure 112008061860564-PAT00055
를 기반으로 로드된 상기 피승수
Figure 112008061860564-PAT00056
의 두 개의 사전 연산 테이블을 각각
Figure 112008061860564-PAT00057
상기 분할 워드의 인덱스 넘버를
Figure 112008061860564-PAT00058
라 할 때, 수식
Figure 112008061860564-PAT00059
에 의해 생성될 수 있다.In addition, the intermediate result of the finite field multiplication is the intermediate result of the finite field multiplication
Figure 112008061860564-PAT00052
Bit index of
Figure 112008061860564-PAT00053
And each index value computed by the scanned two bit strings.
Figure 112008061860564-PAT00054
, remind
Figure 112008061860564-PAT00055
The multiplicand loaded based on
Figure 112008061860564-PAT00056
Each of the two pre-operation tables
Figure 112008061860564-PAT00057
The index number of the split word
Figure 112008061860564-PAT00058
When we say
Figure 112008061860564-PAT00059
Can be generated by

상기 두 번째 과제를 해결하기 위하여 본 발명은,The present invention to solve the second problem,

유한체

Figure 112008061860564-PAT00060
의 두 원소인
Figure 112008061860564-PAT00061
에 있어서 승수
Figure 112008061860564-PAT00062
및 피승수
Figure 112008061860564-PAT00063
를 이용하여 유한체 곱셈의 결과값
Figure 112008061860564-PAT00064
를 생성하는 센서 모트에서의 블록 인덱싱 기반의 타원 곡선 암호 연산 장치에 있어서, 상기 승수
Figure 112008061860564-PAT00065
의 워드를 프로세스 워드 사이즈
Figure 112008061860564-PAT00066
에 의해
Figure 112008061860564-PAT00067
개의 워드로 분할하여 분할 워드를 생성하는 분할 워드 생성부; 상기 분할된
Figure 112008061860564-PAT00068
개의 워드 각각을 4비트 윈도우 사이즈
Figure 112008061860564-PAT00069
로 분할함으로써 상기 승수
Figure 112008061860564-PAT00070
의 워드를 구분하는 복수 개의 블록을 생성하는 블록 생성부; 상기 복수 개의 블록 중 홀수 번째에 위치한 블록을 순서대로 블록 인덱싱하여 제1영역을 형성하고, 짝수 번째에 위치한 블록을 순서대로 블록 인덱싱하여 제2영역을 형성하는 블록 인덱싱부; 상기 블록 인덱싱된 블록 내에서 연속된 상하위의 두 개의 4비트 비트열을 각각 스캔하고, 스캔된 상기 두 개의 비트열에 의해 연산되는 각각의 인덱스 값을 기반으로 상기 피승수
Figure 112008061860564-PAT00071
의 두 개의 사전 연산 테이블을 로드하고, 상기 두 개의 사전 연산 테이블 및 유한체 곱셈의 중간 결과값의 대응 워드를 입력값으로 하여 상기 유한체 곱셈의 중간 결과값을 갱신하는 중간 결과값 생성부; 상기 유한체 곱셈의 중간 결과값을 상기 블록 인덱싱값에 따라 증가된 주소에 해당하는 상기 유한체 곱셈의 결과값
Figure 112008061860564-PAT00072
에 저장함으로써 상기 유한체 곱셈의 결과값
Figure 112008061860564-PAT00073
를 생성하는 저장부; 및 상기 제 1 영역에 해당하는 모든 워드를 기반으로 상기 유한체 곱셈의 결과값
Figure 112008061860564-PAT00074
가 생성되면, 상기 제 1 영역에 해당하는 모든 워드의 유한체 곱셈의 결과값
Figure 112008061860564-PAT00075
를 4비트 레프트 쉬프트하는 쉬프트 레지스터를 포함하는 블록 인덱싱 기반의 유한체 곱셈 연산 장치를 제공한다. Finite body
Figure 112008061860564-PAT00060
Two elements of
Figure 112008061860564-PAT00061
Multiplier
Figure 112008061860564-PAT00062
And multiplicand
Figure 112008061860564-PAT00063
Result of finite field multiplication using
Figure 112008061860564-PAT00064
In the block indexing-based elliptic curve cryptography device in the sensor moat, generating a multiplier,
Figure 112008061860564-PAT00065
Process word size
Figure 112008061860564-PAT00066
By
Figure 112008061860564-PAT00067
A division word generation unit generating division words by dividing into four words; The divided
Figure 112008061860564-PAT00068
4-bit window size for each word
Figure 112008061860564-PAT00069
The multiplier by dividing by
Figure 112008061860564-PAT00070
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
Figure 112008061860564-PAT00071
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
Figure 112008061860564-PAT00072
Result of the finite field multiplication by storing in
Figure 112008061860564-PAT00073
A storage unit for generating; And a result of the finite field multiplication based on all words corresponding to the first region.
Figure 112008061860564-PAT00074
When is generated, the result of the finite field multiplication of all words corresponding to the first region
Figure 112008061860564-PAT00075
A block indexing-based finite field multiplication apparatus including a shift register for 4-bit left shifting is provided.

여기서, 상기 저장부는 상기 제1영역 및 제2영역의 블록 갯수가

Figure 112008061860564-PAT00076
이고, 상기 블록 인덱싱된 블록의 인덱싱 넘버가
Figure 112008061860564-PAT00077
이면,
Figure 112008061860564-PAT00078
바이트 증가된 주소로 상기 배타적 논리합 연산의 결과값을 저장할 수 있다.Here, the storage unit blocks the number of blocks in the first region and the second region.
Figure 112008061860564-PAT00076
And the indexing number of the block indexed block is
Figure 112008061860564-PAT00077
If,
Figure 112008061860564-PAT00078
The result of the exclusive OR operation may be stored as an address in byte increments.

한편, 상기 쉬프트 레지스터는 상기 4비트 레프트 쉬프트된 상기 제 1 영역에 해당하는 모든 워드의 배타적 논리합 연산의 결과값과 상기 제 2 영역에 해당하는 모든 워드의 배타적 논리합 연산의 결과값을 모두 출력하여 유한체 곱셈의 결과값

Figure 112008061860564-PAT00079
를 생성하는 결과값 출력 모듈을 더 포함할 수 있다.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
Figure 112008061860564-PAT00079
It may further include a result output module for generating a.

그리고, 상기 피승수

Figure 112008061860564-PAT00080
의 사전 연산 테이블은 상기 승수
Figure 112008061860564-PAT00081
의 스캔된 4비트 비트열에 따라 미리 결정된 테이블일 수 있다.And the multiplicand
Figure 112008061860564-PAT00080
Pre-operation table of the multiplier
Figure 112008061860564-PAT00081
It may be a predetermined table according to the scanned 4-bit bit string of.

아울러, 상기 프로세스 워드 사이즈

Figure 112008061860564-PAT00082
는 16비트 또는 32비트 단위의 크기일 수 있다.In addition, the process word size
Figure 112008061860564-PAT00082
May be 16 bits or 32 bits in size.

또한, 상기 센서 모트는 미카즈 센서 모트를 포함할 수 있다.In addition, the sensor mort may include a Mikazu sensor mort.

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

Figure 112008061860564-PAT00083
의 비트 인덱스를
Figure 112008061860564-PAT00084
, 상기 스캔된 상기 두 개의 비트열에 의해 연산되는 각각의 인덱스 값을
Figure 112008061860564-PAT00085
, 상기
Figure 112008061860564-PAT00086
를 기반으로 로드된 상기 피승수
Figure 112008061860564-PAT00087
의 두 개의 사전 연산 테이블을 각각
Figure 112008061860564-PAT00088
상기 분할 워드의 인덱스 넘버를
Figure 112008061860564-PAT00089
라 할 때, 수식
Figure 112008061860564-PAT00090
에 의해 생성될 수 있다.The intermediate result of the finite field multiplication is the intermediate result of the finite field multiplication.
Figure 112008061860564-PAT00083
Bit index of
Figure 112008061860564-PAT00084
And each index value computed by the scanned two bit strings.
Figure 112008061860564-PAT00085
, remind
Figure 112008061860564-PAT00086
The multiplicand loaded based on
Figure 112008061860564-PAT00087
Each of the two pre-operation tables
Figure 112008061860564-PAT00088
The index number of the split word
Figure 112008061860564-PAT00089
When we say
Figure 112008061860564-PAT00090
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비트 워드와 같은 확장된 워드를 사용하는 저전력 프로세서에서 메모리에 위치한

Figure 112008061860564-PAT00091
상의 원소에 접근하는데 드는 연산 부하를 감소시킬 수 있고, 레프트 투 라이트 결합 곱셈 연산 중에 중간 결과값을 레프트 쉬프트 하는 횟수를 감소시킴으로써 저전력 센서 모트에서 키 공유 및 키 인증시에 연산 부하를 감소시킬 수 있고, 고속의 프로세싱 속도를 제공할 수 있는 효과가 있다.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.
Figure 112008061860564-PAT00091
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는

Figure 112008061860564-PAT00092
의 원소라고 가정한다.The notations defined in Table 1 apply to both equations and symbols of the finite field multiplication described below. Where A and B are
Figure 112008061860564-PAT00092
Assume that is an element of.

Figure 112008061860564-PAT00093
Figure 112008061860564-PAT00093

Figure 112008061860564-PAT00094
상의 곱셈을 구현할 때, 효율성을 위하여 윈도우를 사용하는 레프트 투 라이트 결합(left to right comb) 방법이 주로 사용된다. 레프트 투 라이트 결합 방법은
Figure 112008061860564-PAT00095
상의 두 원소
Figure 112008061860564-PAT00096
에 대하여
Figure 112008061860564-PAT00097
를 연산하는데, 사전에 미리
Figure 112008061860564-PAT00098
에 대한 사전 연산 테이블을 작성한 후에,
Figure 112008061860564-PAT00099
Figure 112008061860564-PAT00100
비트만큼 스캔하며, 이에 해당하는 부분 곱셈값을 실제로 연산하는 것이 아니라, 사전 연산 테이블로부터 가져와 중간 결과값
Figure 112008061860564-PAT00101
Figure 112008061860564-PAT00102
연산을 수행하여 더한다.
Figure 112008061860564-PAT00094
When implementing multiplication of phases, a left to right comb method using windows is mainly used for efficiency. How to combine left-to-right
Figure 112008061860564-PAT00095
Elements on top
Figure 112008061860564-PAT00096
about
Figure 112008061860564-PAT00097
Calculate beforehand
Figure 112008061860564-PAT00098
After creating the pre-computation table for:
Figure 112008061860564-PAT00099
To
Figure 112008061860564-PAT00100
Scan bit by bit and do not actually compute the corresponding partial multiplication, but take the intermediate result from the pre-computation table.
Figure 112008061860564-PAT00101
on
Figure 112008061860564-PAT00102
Perform the operation and add it.

이때, 적절한 윈도우의 크기는 보통 4로 알려져 있다. At this time, the appropriate window size is commonly known as four.

도 1의 알고리즘 1의 과정 3이 바로

Figure 112008061860564-PAT00103
에 대하여 사전 연산 테이블을 계산하는 과정이다.Process 3 of Algorithm 1 of FIG.
Figure 112008061860564-PAT00103
The process of calculating the pre-computation table for.

여기서, 윈도우의 크기를 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의 부분 곱셈 값을 저장하고 있는 것이다. 예를 들어

Figure 112008061860564-PAT00104
의 4비트 값이 만약 1001이었다면, 사전 연산 테이블에서 9B를 가져와 중간 결과값의 해당 위치에
Figure 112008061860564-PAT00105
시키는 것이다.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
Figure 112008061860564-PAT00104
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.
Figure 112008061860564-PAT00105
It is to let.

즉, 도 1의 알고리즘 1은

Figure 112008061860564-PAT00106
를 왼쪽에서부터 오른쪽으로 열단위로
Figure 112008061860564-PAT00107
비트씩 스캔하여 사전 연산 테이블에서 해당 부분곱셈 값을 가져와 중간 결과값에 배타적 논리합 연산(XOR 연산)을 수행하는 것이다.That is, algorithm 1 of FIG. 1
Figure 112008061860564-PAT00106
In columns from left to right
Figure 112008061860564-PAT00107
Scan bit by bit to get the corresponding partial multiplication value from the pre-computation table and perform an exclusive OR operation on the intermediate result.

도 1에서 전술한 TinyECCK에서 제안된 중복된 메모리 접근을 줄이는 방법이 적용된 레프트 투 라이트 결합의 곱셈 방법을 16비트 워드로 확장한 것이다. 즉, 알고리즘 1의 과정 3은 B에 대한 사전 연산 테이블

Figure 112008061860564-PAT00108
를 연산한다.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, process 3 of Algorithm 1 is the pre-computation table for B
Figure 112008061860564-PAT00108
Calculate

그리고, 도 1의 과정 6 내지 과정 19를 통하여 실제 곱셈을 수행하고 있다. 과정 8 및 과정 9는

Figure 112008061860564-PAT00109
Figure 112008061860564-PAT00110
비트씩 스캔하는 것이며, 과정 10 내지 과정 14는 스캔한
Figure 112008061860564-PAT00111
Figure 112008061860564-PAT00112
비트에 대한 부분 연산값을 사전 연산 테이블로부터 불러와 중간 결과값에
Figure 112008061860564-PAT00113
하는 것이다.In addition, actual multiplication is performed through steps 6 to 19 of FIG. 1. Course 8 and Course 9
Figure 112008061860564-PAT00109
To
Figure 112008061860564-PAT00110
Scan bit by bit, and steps 10 to 14
Figure 112008061860564-PAT00111
of
Figure 112008061860564-PAT00112
Retrieve the partial operation value for a bit from the pre-operation table
Figure 112008061860564-PAT00113
It is.

이 과정을 상위 블록에서 하위 블록으로 진행하기 때문에, 도 2의 블록

Figure 112008061860564-PAT00114
블록의 연산 결과에 대해서는 각각 12비트, 8비트, 4비트만큼 왼쪽으로 쉬프트되어야 한다. 이는 도 1의 과정 16에 해당한다.Since the process proceeds from the upper block to the lower block, the block of FIG.
Figure 112008061860564-PAT00114
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.

한편, 중간 결과값

Figure 112008061860564-PAT00115
Figure 112008061860564-PAT00116
의 연산 결과값을 저장하기 때문에
Figure 112008061860564-PAT00117
개의 워드로 구성되어 있다. 따라서,
Figure 112008061860564-PAT00118
개의 워드가 세 번 쉬프트되어야 하는 것이다. Meanwhile, the intermediate result
Figure 112008061860564-PAT00115
Is
Figure 112008061860564-PAT00116
Because it stores the result of operation of
Figure 112008061860564-PAT00117
It consists of four words. therefore,
Figure 112008061860564-PAT00118
Words must be shifted three times.

실제로, 도 1의 알고리즘 1이 8비트 워드를 사용하여 구현될 경우에는 한번의 쉬프트 연산만이 필요했기 때문에 중복된 메모리 접근 연산의 부하에 비하여 그 연산량이 상대적으로 적다.In fact, when Algorithm 1 of FIG. 1 is implemented using 8-bit words, since only one shift operation is required, the amount of calculation is relatively small compared to the load of the redundant memory access operation.

그러나, 16비트 워드 환경에서는 중복된 메모리 접근의 수가 대략 절반으로 줄어드는 반면, 중간 결과값

Figure 112008061860564-PAT00119
에 대한 쉬프트 연산이 한번에서 세번으로 증가하였기 때문에 그 연산 부하가 곱셈 과정에서 차지하는 비율이 상대적으로 더욱 커지게 된다.However, in a 16-bit word environment, the number of redundant memory accesses is reduced by approximately half, while the intermediate result
Figure 112008061860564-PAT00119
As the shift operation for increases from one to three, the ratio of the computational load to the multiplication process becomes relatively larger.

Figure 112008061860564-PAT00120
상의 곱셈 혹은 제곱 연산의 결과를
Figure 112008061860564-PAT00121
상의 원소로 만들기 위해서는 기약 다항식
Figure 112008061860564-PAT00122
를 사용하여 감산 연산을 수행하여야 한다.
Figure 112008061860564-PAT00120
Results from multiplication or square
Figure 112008061860564-PAT00121
To make an element of a phase polynomial
Figure 112008061860564-PAT00122
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은

Figure 112008061860564-PAT00123
을 이용하여 빠른 감산 연산을 수행한다.Here, TinyECCK16 implementing TinyECCK in 16-bit environment
Figure 112008061860564-PAT00123
Fast subtraction operation using.

알고리즘 2는 TinyECCK에서 제안된 중복된 메모리 접근을 줄이는 방법이 적용된 빠른 감산 알고리즘을 16비트 워드 버전으로 수정한 것이다.Algorithm 2 is a 16-bit word version of the fast subtraction algorithm applied to reduce the redundant memory access proposed by TinyECCK.

도 2에서 과정 3 내지 과정 11은

Figure 112008061860564-PAT00124
에 대하여 메모리 중복 접근을 줄인 감산 연산을 수행하고 있으며, 과정 12 내지 과정 17은 감산 연산에 대한 사후 처리이며 워드가 8비트에서 16비트로 확장된 것이기 때문에 기존의 알고리즘보다 조금 더 복잡하다.Process 3 to process 11 in FIG.
Figure 112008061860564-PAT00124
A subtraction operation is performed to reduce the memory redundancy approach, and steps 12 to 17 are post processing for the subtraction operation, and since the word is extended from 8 bits to 16 bits, it is slightly more complicated than the conventional algorithm.

TinyECCK16은 ECDSA 서비스를 제공하기 때문에,

Figure 112008061860564-PAT00125
의 연산 뿐만 아니라
Figure 112008061860564-PAT00126
에서의 연산도 필요하다.Since TinyECCK16 provides ECDSA services,
Figure 112008061860564-PAT00125
As well as the operation of
Figure 112008061860564-PAT00126
You also need to operate on.

MSP430 프로세서는 16×16 하드웨어 곱셈기를 제공하기 때문에 이를 이용하여

Figure 112008061860564-PAT00127
에서의 연산 역시 필요하다.Because the MSP430 processor provides a 16 × 16 hardware multiplier,
Figure 112008061860564-PAT00127
The operation in is also necessary.

MSP430 프로세서는 16×16 하드웨어 곱셈기를 제공하기 때문에 이를 이용하여

Figure 112008061860564-PAT00128
에서의 곱셈 연산을 효율적으로 구현할 수 있다.Because the MSP430 processor provides a 16 × 16 hardware multiplier,
Figure 112008061860564-PAT00128
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]));

위 코드는

Figure 112008061860564-PAT00129
의 곱셈 알고리즘이 내부 루프(inner loop)에서 두 개의 16비트 워드에 대한 곱셈을 수행할 수 있도록 한다.The above code
Figure 112008061860564-PAT00129
The multiplication algorithm of allows to multiply two 16-bit words in an inner loop.

Figure 112008061860564-PAT00130
Figure 112008061860564-PAT00131
를 각각 메모리의 0x130, 0x138 번지에 로드한다.
Figure 112008061860564-PAT00132
를 0x138번지에 로드하면 하드웨어 곱셈기가 곱셈을 수행한다.
Figure 112008061860564-PAT00130
Wow
Figure 112008061860564-PAT00131
Load at 0x130 and 0x138 address of memory respectively.
Figure 112008061860564-PAT00132
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.

Figure 112008061860564-PAT00133
에 기반을 둔 TinyECC와 NanoECC의
Figure 112008061860564-PAT00134
에서의 구현은 이 하드웨어 곱셈기를 이용하기 때문에 8비트 ATmega128L 프로세서를 사용하는 센서모트에서보다 더욱 효율적으로 타원곡선 암호 연산을 구현하고 있다.
Figure 112008061860564-PAT00133
Based on TinyECC and NanoECC
Figure 112008061860564-PAT00134
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 TinyECCK using Algorithm 1 of FIG. 1 and Algorithm 2 of FIG. 3 applying the above-described method of reducing redundant memory access, it can be seen that the overall operation time can be reduced by 2 to 6%.

이것은 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 Algorithm 1 and Algorithm 2 was that the number of memory accesses used in the multiplication and subtraction process was greatly reduced as the word size was expanded from 8 bits to 16 bits. This is because the operation to shift the result C to the left has been increased from one to three.

본 발명에서는 알고리즘 1에서 중간 결과값 C를 세 번에서 한 번만 쉬프트할 수 있는 방법을 제안한다.The present invention proposes a method in which the intermediate result C can be shifted only three to once in Algorithm 1.

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

본 발명은 유한체

Figure 112008061860564-PAT00135
의 두 원소인
Figure 112008061860564-PAT00136
에 있어서 승수
Figure 112008061860564-PAT00137
및 피승수
Figure 112008061860564-PAT00138
를 이용하여 유한체 곱셈의 결과값
Figure 112008061860564-PAT00139
를 생성하는 센서 모트에서의 블록 인덱싱 기반의 타원 곡선 암호 연산 방법을 제공한다.The present invention is finite body
Figure 112008061860564-PAT00135
Two elements of
Figure 112008061860564-PAT00136
Multiplier
Figure 112008061860564-PAT00137
And multiplicand
Figure 112008061860564-PAT00138
Result of finite field multiplication using
Figure 112008061860564-PAT00139
It provides a block indexing-based elliptic curve cryptography calculation method in the sensor mote to generate a.

블록 인덱싱 기반의 타원 곡선 암호 연산 방법을 제공하기 위하여 본 발명은 우선, 상기 승수

Figure 112008061860564-PAT00140
의 워드를 프로세스 워드 사이즈
Figure 112008061860564-PAT00141
에 의해
Figure 112008061860564-PAT00142
개의 워드로 분할하여 분할 워드를 생성한다(S410).In order to provide a block indexing-based elliptic curve cryptographic operation method, the present invention first, the multiplier
Figure 112008061860564-PAT00140
Process word size
Figure 112008061860564-PAT00141
By
Figure 112008061860564-PAT00142
The divided word is generated by dividing into four words (S410).

즉, 유한체

Figure 112008061860564-PAT00143
의 원소인 승수
Figure 112008061860564-PAT00144
의 전체 워드
Figure 112008061860564-PAT00145
를 프로세스 워드 사이즈
Figure 112008061860564-PAT00146
로 분할함으로써
Figure 112008061860564-PAT00147
개의 분할 워드를 생성한다.That is, finite body
Figure 112008061860564-PAT00143
Multiplier that is an element of
Figure 112008061860564-PAT00144
Full word of
Figure 112008061860564-PAT00145
Process word size
Figure 112008061860564-PAT00146
By dividing by
Figure 112008061860564-PAT00147
Generates partitioned words.

여기서, 프로세스 워드 사이즈

Figure 112008061860564-PAT00148
는 상기 타원 곡선 암호 연산의 환경이 16비트 환경일 경우 상기 프로세스 워드 사이즈
Figure 112008061860564-PAT00149
는 16비트일 수 있으며, 상기 타원 곡선 암호 연산의 환경이 32비트 환경일 경우 상기 프로세스 워드 사이즈
Figure 112008061860564-PAT00150
는 32비트일 수 있다.Where process word size
Figure 112008061860564-PAT00148
Is the process word size if the environment of the elliptic curve cryptographic operation is a 16-bit environment
Figure 112008061860564-PAT00149
May be 16 bits, and the process word size when the environment of the elliptic curve cryptographic operation is a 32 bit environment
Figure 112008061860564-PAT00150
May be 32 bits.

즉, 프로세스 워드 사이즈

Figure 112008061860564-PAT00151
는 타원 곡선 암호 연산 환경에 따라 결정되는 값이라 할 수 있다.That is, the process word size
Figure 112008061860564-PAT00151
May be a value determined according to an elliptic curve cryptographic operation environment.

한편,

Figure 112008061860564-PAT00152
개의 워드로 분할할 경우, 해당 분할 워드 내에서 최상위 비트의 인덱스 넘버가 가장 작은 값을 가지는 분할 워드가 최하위 워드가 되며, 최상위 분할 워드에서 워드값이 채워지지 않을 경우, 이는 0으로 패딩될 수 있다.Meanwhile,
Figure 112008061860564-PAT00152
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. .

그 다음, 상기 분할된

Figure 112008061860564-PAT00153
개의 분할 워드 각각을 4비트 윈도우 사이즈
Figure 112008061860564-PAT00154
로 분할함으로써 복수 개의 블록으로 상기 승수
Figure 112008061860564-PAT00155
의 워드를 구분한다(S420).Then, the divided
Figure 112008061860564-PAT00153
4 bit window size
Figure 112008061860564-PAT00154
The multiplier into a plurality of blocks by dividing by
Figure 112008061860564-PAT00155
To distinguish the word (S420).

유한체 곱셈에 있어서 4비트 윈도우 사이즈

Figure 112008061860564-PAT00156
로 분할함으로써 상기 승수
Figure 112008061860564-PAT00157
의 워드를 분할하는데, 상기 4비트 윈도우 사이즈
Figure 112008061860564-PAT00158
에 의해 유한체 곱셈 연산시 중간 결과값 생성을 위한 승수
Figure 112008061860564-PAT00159
의 비트열의 스캔 비트수가 결정되며, 스캔된 비트열에 의해 연산되는 인덱스 값을 기준으로 피승수
Figure 112008061860564-PAT00160
의 사전 연산 테이블의 값이 결정된다.4-bit window size for finite field multiplication
Figure 112008061860564-PAT00156
The multiplier by dividing by
Figure 112008061860564-PAT00157
Divides the word of the 4-bit window size
Figure 112008061860564-PAT00158
Multiplier for generating intermediate results in finite field multiplication
Figure 112008061860564-PAT00159
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
Figure 112008061860564-PAT00160
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 region 1 and region 2 provides an address for storing the intermediate result of finite field multiplication.

그 다음, 상기 블록 인덱싱된 블록 내에서 연속된 상하위의 두 개의 4비트 비트열을 각각 스캔하고, 스캔된 상기 두 개의 비트열에 의해 연산되는 각각의 인덱스 값을 기반으로 상기 피승수

Figure 112008061860564-PAT00161
의 두 개의 사전 연산 테이블을 로드하고, 상기 두 개의 사전 연산 테이블 및 유한체 곱셈의 중간 결과값의 대응 워드를 입력값으로 하여 상기 유한체 곱셈의 중간 결과값을 갱신한다(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.
Figure 112008061860564-PAT00161
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비트 비트열을 각각 스캔하여, 이를 기반으로 미리 연산된 피승수

Figure 112008061860564-PAT00162
의 두 개의 사전 연산 테이블을 로드한다.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.
Figure 112008061860564-PAT00162
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 Equation 1 below.

Figure 112008061860564-PAT00163
Figure 112008061860564-PAT00163

여기서 유한체 곱셈의 중간 결과값을

Figure 112008061860564-PAT00164
라고 할 때, 중간 결과값의 비트 인덱스를
Figure 112008061860564-PAT00165
, 상기 스캔된 상기 두 개의 비트열에 의해 연산되는 각각의 인덱스 값을
Figure 112008061860564-PAT00166
, 상기
Figure 112008061860564-PAT00167
를 기반으로 로드된 상기 피승수
Figure 112008061860564-PAT00168
의 두 개의 사전 연산 테이블을 각각
Figure 112008061860564-PAT00169
상기 분할 워드의 인덱스 넘버를
Figure 112008061860564-PAT00170
라 할 때, 상기의 수학식 1에 의해 유한체 곱셈의 중간 결과값을 생성하고, 연속적으로 생성된 유한체 곱셈의 중간 결과값을 기반으로 유한체 곱셈의 중간 결과값
Figure 112008061860564-PAT00171
를 갱신한다.Where the intermediate result of finite field multiplication
Figure 112008061860564-PAT00164
, The bit index of the intermediate result
Figure 112008061860564-PAT00165
And each index value computed by the scanned two bit strings.
Figure 112008061860564-PAT00166
, remind
Figure 112008061860564-PAT00167
The multiplicand loaded based on
Figure 112008061860564-PAT00168
Each of the two pre-operation tables
Figure 112008061860564-PAT00169
The index number of the split word
Figure 112008061860564-PAT00170
In this case, the intermediate result of the finite field multiplication is generated by Equation 1 above, and the intermediate result of the finite field multiplication is based on the intermediate result of the continuously generated finite field multiplication.
Figure 112008061860564-PAT00171
Update the.

그 다음, 상기 유한체 곱셈의 중간 결과값을 상기 블록 인덱싱의 넘버에 따라 증가된 주소에 저장함으로써 상기 유한체 곱셈의 결과값을 생성한다(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영역의 블록 갯수가

Figure 112008061860564-PAT00172
이고, 상기 블록 인덱싱된 블록의 인덱싱 넘버가
Figure 112008061860564-PAT00173
이면, 상기 유한체 곱셈의 중간 결과값을 상기 블록 인덱싱 넘버에 따라
Figure 112008061860564-PAT00174
바이트에 증가된 상위 비트 주소에 저장함으로써 상기 유 한체 곱셈의 결과값
Figure 112008061860564-PAT00175
를 생성하게 된다.Specifically, the number of blocks in the first region and the second region
Figure 112008061860564-PAT00172
And the indexing number of the block indexed block is
Figure 112008061860564-PAT00173
, The intermediate result of the finite field multiplication according to the block indexing number
Figure 112008061860564-PAT00174
The result of the finite multiplication by storing in the high-order bit address incremented in bytes.
Figure 112008061860564-PAT00175
Will generate

예를 들어, 16비트 환경에서 승수

Figure 112008061860564-PAT00176
의 워드가 프로세스 워드 사이즈 16으로 분할되고, 분할 워드가 4비트 윈도우 사이즈로 다시 분할될 경우, 총 4개의 블록을 형성한다.For example, multipliers in a 16-bit environment
Figure 112008061860564-PAT00176
If the word of is divided into process word size 16, and the divided word is subdivided into a 4-bit window size, a total of four blocks are formed.

설명의 편의를 위하여 순서대로 블록을 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 영역에 해당하는 모든 워드를 기반으로 상기 유한체 곱셈의 결과값

Figure 112008061860564-PAT00177
가 생성되면, 상기 제 1 영역에 해당하는 모든 워드의 유한체 곱셈의 결과값
Figure 112008061860564-PAT00178
를 4비트 레프트 쉬프트한다(S460)Finally, the result of the finite field multiplication based on all words corresponding to the first region
Figure 112008061860564-PAT00177
When is generated, the result of the finite field multiplication of all words corresponding to the first region
Figure 112008061860564-PAT00178
4 bit left-shifted (S460)

이는 전술한 바와 같이 상기 제 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 블록에 대한 곱셈 결과가 중간 결과값

Figure 112008061860564-PAT00179
와 배타적 논리합 연산되어 저장되는 위치는 한 바이트 차이가 난다.The multiplication result for the A block and the multiplication result for the C block are intermediate results
Figure 112008061860564-PAT00179
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 블록에 대한 곱셈 결과를 중간 결과값

Figure 112008061860564-PAT00180
의 주소보다 한 바이트 증가된 주소부터 저장함으로써 마찬가지로 8비트만큼 쉬프트한 것이된다. 결론적으로, A, B, C 블록에 대한 곱셈 연산의 결과는 도 1의 유한체 곱셈 알고리즘 1과 마찬가지로 왼쪽으로 각각 12비트, 8비트, 4비트만큼 쉬프트된 것이다.In addition, the multiplication result for the B block is the intermediate result.
Figure 112008061860564-PAT00180
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 field multiplication algorithm 1 of FIG.

상기 A, B 블록에 대한 곱셈의 결과는 C, D에 비하여 한 바이트 증가된 주소에 저장되어야 하므로, 중간 결과값을 저장하는

Figure 112008061860564-PAT00181
의 시작 주소를 한 바이트만큼 이동시켜야 한다. 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.
Figure 112008061860564-PAT00181
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]; // 중간 결과값

Figure 112008061860564-PAT00182
를 저장하는 배열BYTE16 C [DBLNUMWORDS]; // intermediate result
Figure 112008061860564-PAT00182
An array to store

BYTE8* ptrC8 = (BYTE8*)C; //

Figure 112008061860564-PAT00183
배열의 시작 주소를 ptrC8에 저장BYTE8 * ptrC8 = (BYTE8 *) C; //
Figure 112008061860564-PAT00183
Store start address of array in ptrC8

BYTE16* ptrC16 = ptrC8 + 1; // ptrC8의 주소를 한 바이트 증가하여 저장 BYTE16 * ptrC16 = ptrC8 + 1; // store the address of ptrC8 by one byte

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비트 워드를 사용하는 환경에서 각 블록의 중간 결과값에 대한 세번의 쉬프트 연산을 한 번으로 줄인 레프트 투 라이트 결합 방법이다.Algorithm 3 of FIG. 6 is a left-to-right combining method in which three shift operations on intermediate result values of each block are reduced to one time in an environment using a 16-bit word according to the present invention.

도 6의 알고리즘 3에서 과정 5와 21에서는 중간 결과값을 저장하는

Figure 112008061860564-PAT00184
의 주소값을 한 바이트 증가시켜 16비트 포인터인
Figure 112008061860564-PAT00185
에 저장한다. In the algorithm 3 of FIG. 6, the intermediate results are stored in the processes 5 and 21.
Figure 112008061860564-PAT00184
Increments the address value by one byte
Figure 112008061860564-PAT00185
Store in

이를 통하여, 알고리즘 3에서 과정 11 내지 과정 15, 과정 27 내지 과정 31에서 A와 B 블록에 대한 부분 곱셈들은 C와 D 블록에 비하여 한 바이트 왼쪽으로 쉬프트되어 저장되는 것과 동일하다. As a result, in Algorithm 3, the partial multiplications of the A and B blocks in steps 11 to 15 and 27 to 31 are the same as shifted and stored one byte to the left of the C and D blocks.

B와 D 블록에 대한 부분 곱셈들은

Figure 112008061860564-PAT00186
의 원래 시작 주소부터 저장되어야 하기 때문에 알고리즘 3에서 과정 18과 과정 34를 통하여
Figure 112008061860564-PAT00187
Figure 112008061860564-PAT00188
의 시작주소로 복귀한다.Partial multiplications for B and D blocks
Figure 112008061860564-PAT00186
Algorithm
3 through 18 and 34 must be stored from the original starting address of
Figure 112008061860564-PAT00187
To
Figure 112008061860564-PAT00188
Return to the starting address of.

도 1의 알고리즘 1과는 달리 본 발명에 따른 도 6의 알고리즘 3은 과정 20에서 2t 길이의

Figure 112008061860564-PAT00189
에 대하여 오직 한 번의 쉬프트 연산을 수행하고 있다.Unlike Algorithm 1 of FIG. 1, Algorithm 3 of FIG. 6 according to the present invention has a length of 2t in step 20.
Figure 112008061860564-PAT00189
We are performing only one shift operation on.

본 발명에 따른 유한체 곱셈은 32비트 워드를 사용하는 장치에서의

Figure 112008061860564-PAT00190
의 곱셈 연산에도 적용이 가능하다. The finite field multiplication according to the present invention is performed in a device using a 32-bit word.
Figure 112008061860564-PAT00190
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비트 워드를 가지는 승수

Figure 112008061860564-PAT00191
를 4비트 윈도우 사이즈로 분할한 것 이다.7 is a multiplier with 32 bit words
Figure 112008061860564-PAT00191
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블록에 대한 부분 곱셈의 중간 결과값을

Figure 112008061860564-PAT00192
의 시작주소보다 3-Byte 증가된 주소부터 저장한다.1. Find the intermediate result of the partial multiplication for block A.
Figure 112008061860564-PAT00192
Store the address starting from 3-bytes larger than the start address.

2. C블록에 대한 부분 곱셈의 중간 결과값을

Figure 112008061860564-PAT00193
의 시작주소보다 2-Byte 증가된 주소부터 저장한다.2. Find the intermediate result of the partial multiplication for the C blocks.
Figure 112008061860564-PAT00193
Stores the address starting with 2-Byte from the start address of.

3. E블록에 대한 부분 곱셈의 중간 결과값을

Figure 112008061860564-PAT00194
의 시작주소보다 1-Byte 증가된 주소부터 저장한다.3. Find the intermediate result of the partial multiplication for the E block.
Figure 112008061860564-PAT00194
Store the address 1-byte increased from the start address of.

4. G블록에 대한 부분 곱셈의 중간 결과값을

Figure 112008061860564-PAT00195
의 시작주소부터 저장한다.4. Find the intermediate result of the partial multiplication for the G block.
Figure 112008061860564-PAT00195
Store from the start address of.

5. 중간 결과값

Figure 112008061860564-PAT00196
를 왼쪽으로 4비트 레프트 쉬프트한다. 이를 통하여 A,C, E, G 블록에 대한 부분 곱셈의 결과값들은 각각 28비트, 20비트, 12비트, 4비 트 쉬프트한 것이 된다.5. Interim Result
Figure 112008061860564-PAT00196
Left shift 4 bits to the left. The result of partial multiplication for A, C, E and G blocks is 28 bit, 20 bit, 12 bit and 4 bit shifted, respectively.

6. B블록에 대한 부분 곱셈의 중간 결과값을

Figure 112008061860564-PAT00197
의 시작주소보다 3-Byte 증가된 주소부터 저장한다.6. Find the intermediate result of the partial multiplication for the B blocks.
Figure 112008061860564-PAT00197
Store the address starting from 3-bytes larger than the start address.

7. D블록에 대한 부분 곱셈의 중간 결과값을

Figure 112008061860564-PAT00198
의 시작주소보다 2-Byte 증가된 주소부터 저장한다.7. Find the intermediate result of the partial multiplication for the D block.
Figure 112008061860564-PAT00198
Stores the address starting with 2-Byte from the start address of.

8. F블록에 대한 부분 곱셈의 중간 결과값을

Figure 112008061860564-PAT00199
의 시작주소보다 1-Byte 증가된 주소부터 저장한다.8. Find the intermediate result of the partial multiplication for the F block.
Figure 112008061860564-PAT00199
Store the address 1-byte increased from the start address of.

9. H블록에 대한 부분 곱셈의 중간 결과값을

Figure 112008061860564-PAT00200
의 시작주소부터 저장한다. 9. Find the intermediate result of the partial multiplication for the H blocks.
Figure 112008061860564-PAT00200
Store from the start address of.

10. 결론적으로 A, B, C, D, E, F, G, H 블록의 부분 곱셈값들이 각각 28비트, 24비트, 20비트, 16비트, 12비트, 8비트, 4비트 쉬프트되어 유한체 곱셈의 최종 결과값

Figure 112008061860564-PAT00201
를 생성하게 된다.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
Figure 112008061860564-PAT00201
Will generate

32비트의 워드 크기를 사용하는 곳에서

Figure 112008061860564-PAT00202
의 곱셈을 구현할 때, 확장된 워드 크기로 인하여 메모리에 위치한
Figure 112008061860564-PAT00203
의 원소를 CPU로 로드할 때 사용되는 메모리 접근 명령어의 수는 16비트 워드를 사용할 때보다 더욱 줄어든다.Where 32-bit word size is used
Figure 112008061860564-PAT00202
When implementing the multiplication of, because of the expanded word size
Figure 112008061860564-PAT00203
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. .

본 발명은 유한체

Figure 112008061860564-PAT00204
의 두 원소인
Figure 112008061860564-PAT00205
에 있어서 승수
Figure 112008061860564-PAT00206
및 피승수
Figure 112008061860564-PAT00207
를 이용하여 유한체 곱셈의 결과값
Figure 112008061860564-PAT00208
를 생성하며, 상기 센서 모트는 미카즈(MICAZ) 센서 모트를 포함할 수 있다.The present invention is finite body
Figure 112008061860564-PAT00204
Two elements of
Figure 112008061860564-PAT00205
Multiplier
Figure 112008061860564-PAT00206
And multiplicand
Figure 112008061860564-PAT00207
Result of finite field multiplication using
Figure 112008061860564-PAT00208
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 split word generator 810, a block generator 820, a block indexer 830, and an intermediate result value. The generator 840 may include a storage unit 850 and a shift register 860.

분할 워드 생성부(810)는 상기 승수

Figure 112008061860564-PAT00209
의 워드를 프로세스 워드 사이즈
Figure 112008061860564-PAT00210
에 의해
Figure 112008061860564-PAT00211
개의 워드로 분할하여 분할 워드를 생성한다.The division word generator 810 is the multiplier
Figure 112008061860564-PAT00209
Process word size
Figure 112008061860564-PAT00210
By
Figure 112008061860564-PAT00211
The divided word is generated by dividing into four words.

상기 프로세스 워드 사이즈

Figure 112008061860564-PAT00212
는 유한체 곱셈의 연산 환경에 따라 결정된 16비트 또는 32비트 단위의 크기를 가질 수 있다.The process word size
Figure 112008061860564-PAT00212
May have a size in units of 16 bits or 32 bits determined according to the operation environment of the finite field multiplication.

블록 생성부(820)는 상기 분할된

Figure 112008061860564-PAT00213
개의 워드 각각을 4비트 윈도우 사이즈
Figure 112008061860564-PAT00214
로 분할함으로써 상기 승수
Figure 112008061860564-PAT00215
의 워드를 구분하는 복수 개의 블록을 생성한다.Block generation unit 820 is divided
Figure 112008061860564-PAT00213
4-bit window size for each word
Figure 112008061860564-PAT00214
The multiplier by dividing by
Figure 112008061860564-PAT00215
Create a plurality of blocks to separate the words of.

그리고, 블록 인덱싱부(830)는 상기 복수 개의 블록 중 홀수 번째에 위치한 블록을 순서대로 블록 인덱싱하여 제1영역을 형성하고, 짝수 번째에 위치한 블록을 순서대로 블록 인덱싱하여 제2영역을 형성한다.The block indexing unit 830 blocks the odd-numbered blocks in order to form a first region, and blocks the even-numbered blocks in order to form a second region.

중간 결과값 생성부(840)는 상기 블록 인덱싱부(830)에 의해 블록 인덱싱된 블록 내에서 연속된 상하위의 두 개의 4비트 비트열을 각각 스캔하고, 스캔된 상기 두 개의 비트열에 의해 연산되는 각각의 인덱스 값을 기반으로 상기 피승수

Figure 112008061860564-PAT00216
의 두 개의 사전 연산 테이블을 로드하고, 상기 두 개의 사전 연산 테이블 및 유한체 곱셈의 중간 결과값의 대응 워드를 입력값으로 하여 상기 유한체 곱셈의 중간 결과값을 갱신한다.The intermediate result generator 840 scans two consecutive 4-bit bit strings in the block indexed by the block indexing unit 830, respectively, and is computed by the scanned two bit strings. The multiplicand based on the index value of
Figure 112008061860564-PAT00216
Load two pre-computation tables of and update 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.

한편, 상기 피승수

Figure 112008061860564-PAT00217
의 사전 연산 테이블은 상기 승수
Figure 112008061860564-PAT00218
의 스캔된 4비트 비트열에 따라 미리 결정된 테이블이며, 이에 대한 상세한 설명은 전술한 바와 같다.Meanwhile, the multiplicand
Figure 112008061860564-PAT00217
Pre-operation table of the multiplier
Figure 112008061860564-PAT00218
This is a table determined according to the scanned 4-bit bit string of, and the detailed description thereof is as described above.

저장부(850)는 상기 유한체 곱셈의 중간 결과값을 상기 블록 인덱싱된 넘버에 따라 증가된 주소에 해당하는 상기 유한체 곱셈의 결과값

Figure 112008061860564-PAT00219
에 저장함으로써 상기 유한체 곱셈의 결과값
Figure 112008061860564-PAT00220
를 생성한다.The storage unit 850 may output the intermediate result of the finite field multiplication by the finite field multiplication corresponding to the address increased according to the block indexed number.
Figure 112008061860564-PAT00219
Result of the finite field multiplication by storing in
Figure 112008061860564-PAT00220
Create

상기 유한체 곱셈의 중간 결과값은 상기 유한체 곱셈의 중간 결과값

Figure 112008061860564-PAT00221
의 비트 인덱스를
Figure 112008061860564-PAT00222
, 상기 스캔된 상기 두 개의 비트열에 의해 연산되는 각각의 인덱스 값을
Figure 112008061860564-PAT00223
, 상기
Figure 112008061860564-PAT00224
를 기반으로 로드된 상기 피승수
Figure 112008061860564-PAT00225
의 두 개의 사전 연산 테이블을 각각
Figure 112008061860564-PAT00226
상기 분할 워드의 인덱스 넘버를
Figure 112008061860564-PAT00227
라 할 때 전술한 상기 수학식 1에 의해 연산될 수 있다.The intermediate result of the finite field multiplication is the intermediate result of the finite field multiplication.
Figure 112008061860564-PAT00221
Bit index of
Figure 112008061860564-PAT00222
And each index value computed by the scanned two bit strings.
Figure 112008061860564-PAT00223
, remind
Figure 112008061860564-PAT00224
The multiplicand loaded based on
Figure 112008061860564-PAT00225
Each of the two pre-operation tables
Figure 112008061860564-PAT00226
The index number of the split word
Figure 112008061860564-PAT00227
It can be calculated by the above equation (1).

여기서, 상기 저장부(850)는 상기 제1영역 및 제2영역의 블록 갯수가

Figure 112008061860564-PAT00228
이고, 상기 블록 인덱싱된 블록의 인덱싱 넘버가
Figure 112008061860564-PAT00229
이면,
Figure 112008061860564-PAT00230
바이트 증가된 주소로 상기 배타적 논리합 연산의 결과값을 저장한다.Here, the storage unit 850 has the number of blocks in the first region and the second region.
Figure 112008061860564-PAT00228
And the indexing number of the block indexed block is
Figure 112008061860564-PAT00229
If,
Figure 112008061860564-PAT00230
Stores the result of the exclusive OR operation with the address incremented in bytes.

그리고, 쉬프트 레지스터(860)는 상기 제 1 영역에 해당하는 모든 워드를 기반으로 상기 유한체 곱셈의 결과값

Figure 112008061860564-PAT00231
가 생성되면, 상기 제 1 영역에 해당하는 모든 워드의 유한체 곱셈의 결과값
Figure 112008061860564-PAT00232
를 4비트 레프트 쉬프트한다.In addition, the shift register 860 is a result of the finite field multiplication based on all words corresponding to the first region.
Figure 112008061860564-PAT00231
When is generated, the result of the finite field multiplication of all words corresponding to the first region
Figure 112008061860564-PAT00232
Left shift
4 bits.

한편, 쉬프트 레지스터(860)는 상기 4비트 레프트 쉬프트된 상기 제 1 영역에 해당하는 모든 워드의 배타적 논리합 연산의 결과값과 상기 제 2 영역에 해당하는 모든 워드의 배타적 논리합 연산의 결과값을 모두 출력하여 유한체 곱셈의 결과값

Figure 112008061860564-PAT00233
를 생성하는 결과값 출력 모듈(미도시)을 더 포함할 수 있다.On the other hand, the shift register 860 outputs both the result of the exclusive OR operation of all the words corresponding to the 4 bit left-shifted first region and the result of the exclusive OR operation of all the words corresponding to the second region. Result of finite field multiplication
Figure 112008061860564-PAT00233
It may further include a result output module (not shown) for generating a.

하기의 표 2는

Figure 112008061860564-PAT00234
에서의 유한체 곱셈 연산을 각각 일반적인 레프트 투 라이트 결합 곱셈 방법(Original), 알고리즘 1, 및 본 발명에 따른 유한체 곱셈 방법을 이용하여 계산하였을 경우의 연산시간을 비교한 것이다.Table 2 below is
Figure 112008061860564-PAT00234
The finite field multiplication operations in are compared with the calculation time when calculated using a general left-to-right combined multiplication method (Original), Algorithm 1, and the finite field multiplication method according to the present invention.

Figure 112008061860564-PAT00235
Figure 112008061860564-PAT00235

상기 표 2를 참조하면 본 발명에 따른 알고리즘 3은 Original과 알고리즘 1에 비하여 각각 27.9%, 21.7%의 연산시간을 단축하고 있다.Referring to Table 2, Algorithm 3 according to the present invention reduces the computation time of 27.9% and 21.7%, respectively, compared to Original and Algorithm 1.

하기는, 종래의 일반적인 레프트 투 라이트 결합 방법을 적용한 유한체 곱셈 연산, 종래의 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 Algorithm 1 of FIG. 1 is composed of three steps of pre-computation, partial multiplication, and intermediate result shift operation. Each calculation amount is shown in Table 3 below.

여기서, 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 algorithm 1 of FIG. 1, and the partial multiplication operation corresponds to processes 7 to 12 of algorithm 1 of FIG. 1.

그리고, 중간 결과값 쉬프트 연산은 도 1의 알고리즘 1의 과정 13 내지 과정 16에 해당한다.The intermediate result shift operation corresponds to process 13 to process 16 of Algorithm 1 of FIG. 1.

Figure 112008061860564-PAT00236
Figure 112008061860564-PAT00236

한편, 종래의 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 Algorithm 1 of FIG. 1.

즉, 도 1의 알고리즘 1의 과정 7 내지 과정 11이 루프문(for loop)에서 각각 계산되던 것을 하나로 합침으로써 같은 값이 메모리로부터 로드되는 것과 결과값이 메모리의 동일한 위치에 저장되는 것을 줄였다.That is, the processes 7 to 11 of the algorithm 1 of FIG. 1 are combined into ones calculated in a for loop to reduce the same value from being loaded from the memory and the result value from being stored in the same location of the memory.

도 3의 알고리즘 2를 기반으로 종래의 TinyECCK에서 제안된 레프트 투 라이트 곱셈 방법의 연산량은 하기의 표 4와 같으며, 이는 상기 알고리즘 1과 사전 연산량이 같으나, 부분곱셈의 연산량이 줄어들었음을 알 수 있다.Based on Algorithm 2 of FIG. 3, the calculation amount of the left-to-right multiplication method proposed in the conventional TinyECCK is as shown in Table 4 below, which indicates that the algorithm calculation amount is the same as that of Algorithm 1, but the calculation amount of the partial multiplication is reduced. have.

Figure 112008061860564-PAT00237
Figure 112008061860564-PAT00237

본 발명에 따른 유한체 곱셈 연산은 상기 알고리즘 2의 중간 결과값 쉬프트 연산량을 줄였다.The finite field multiplication operation according to the present invention reduces the intermediate result shift operation amount of Algorithm 2.

즉, 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.

Figure 112008061860564-PAT00238
Figure 112008061860564-PAT00238

실제로, 기존의 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.

효율성이 떨어지는 주된 원인은

Figure 112008061860564-PAT00239
의 원소에 접근하기 위하여 필요한 메모리 접근의 횟수는 줄어드는 반면, 중간 결과값을 여러번 쉬프트하여야 하는 것이다.The main reason for inefficiency
Figure 112008061860564-PAT00239
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)

유한체
Figure 112008061860564-PAT00240
의 두 원소인
Figure 112008061860564-PAT00241
에 있어서 승수
Figure 112008061860564-PAT00242
및 피승수
Figure 112008061860564-PAT00243
를 이용하여 유한체 곱셈의 결과값
Figure 112008061860564-PAT00244
를 생성하는 센서 모트에서의 블록 인덱싱 기반의 타원 곡선 암호 연산 방법에 있어서,
Finite body
Figure 112008061860564-PAT00240
Two elements of
Figure 112008061860564-PAT00241
Multiplier
Figure 112008061860564-PAT00242
And multiplicand
Figure 112008061860564-PAT00243
Result of finite field multiplication using
Figure 112008061860564-PAT00244
In the block indexing-based elliptic curve cryptography method in the sensor moat for generating a,
상기 승수
Figure 112008061860564-PAT00245
의 워드를 프로세스 워드 사이즈
Figure 112008061860564-PAT00246
에 의해
Figure 112008061860564-PAT00247
개의 워드로 분할하여 분할 워드를 생성하는 단계;
The multiplier
Figure 112008061860564-PAT00245
Process word size
Figure 112008061860564-PAT00246
By
Figure 112008061860564-PAT00247
Generating a divided word by dividing into four words;
상기
Figure 112008061860564-PAT00248
개의 분할 워드 각각을 4비트 윈도우 사이즈
Figure 112008061860564-PAT00249
로 분할함으로써 복수 개의 블록으로 상기 승수
Figure 112008061860564-PAT00250
의 워드를 구분하는 단계;
remind
Figure 112008061860564-PAT00248
4 bit window size
Figure 112008061860564-PAT00249
The multiplier into a plurality of blocks by dividing by
Figure 112008061860564-PAT00250
Distinguishing words of a;
상기 복수 개의 블록 중 홀수 번째에 위치한 블록을 순서대로 블록 인덱싱하여 제1영역을 형성하고, 짝수 번째에 위치한 블록을 순서대로 블록 인덱싱하여 제2영역을 형성하는 단계;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; 상기 블록 인덱싱된 블록 내에서 연속된 상하위의 두 개의 4비트 비트열을 각각 스캔하고, 스캔된 상기 두 개의 비트열에 의해 연산되는 각각의 인덱스 값을 기반으로 상기 피승수
Figure 112008061860564-PAT00251
의 두 개의 사전 연산 테이블을 로드하고, 상기 두 개의 사전 연산 테이블 및 유한체 곱셈의 중간 결과값의 대응 워드를 입력값으로 하여 상기 유한체 곱셈의 중간 결과값을 갱신하는 단계;
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
Figure 112008061860564-PAT00251
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;
상기 유한체 곱셈의 중간 결과값을 상기 블록 인덱싱된 블록 넘버에 따라 증 가된 주소에 저장함으로써 상기 유한체 곱셈의 결과값
Figure 112008061860564-PAT00252
를 생성하는 단계; 및
A result of the finite field multiplication by storing the intermediate result of the finite field multiplication at an address increased according to the block indexed block number
Figure 112008061860564-PAT00252
Generating a; And
상기 제 1 영역에 해당하는 모든 워드를 기반으로 상기 유한체 곱셈의 결과값
Figure 112008061860564-PAT00253
가 생성되면, 상기 제 1 영역에 해당하는 모든 워드의 유한체 곱셈의 결과값
Figure 112008061860564-PAT00254
를 4비트 레프트 쉬프트하는 단계를 포함하는 센서 모트에서의 블록 인덱싱 기반의 타원 곡선 암호 연산 방법.
A result of the finite field multiplication based on all words corresponding to the first region
Figure 112008061860564-PAT00253
When is generated, the result of the finite field multiplication of all words corresponding to the first region
Figure 112008061860564-PAT00254
A block indexing-based elliptic curve cryptography method in the sensor mote comprising: performing a 4-bit left shift.
제 1 항에 있어서,The method of claim 1, 상기 유한체 곱셈의 결과값
Figure 112008061860564-PAT00255
를 생성하는 단계는
The result of the finite field multiplication
Figure 112008061860564-PAT00255
The steps to generate
상기 제1영역 및 제2영역의 블록 갯수가 각각
Figure 112008061860564-PAT00256
이고, 상기 블록 인덱싱된 블록의 인덱싱 넘버가
Figure 112008061860564-PAT00257
이면,
Figure 112008061860564-PAT00258
바이트 증가된 주소로 상기 배타적 논리합 연산의 결과값을 저장하는 단계를 포함하는 것을 특징으로 하는 센서 모트에서의 블록 인덱싱 기반의 타원 곡선 암호 연산 방법.
The number of blocks in the first region and the second region is respectively
Figure 112008061860564-PAT00256
And the indexing number of the block indexed block is
Figure 112008061860564-PAT00257
If,
Figure 112008061860564-PAT00258
And storing the result of the exclusive OR operation as the byte incremented address.
제 1 항에 있어서,The method of claim 1, 상기 4비트 레프트 쉬프트하는 단계는The 4-bit left shift 상기 4비트 레프트 쉬프트된 상기 제 1 영역에 해당하는 모든 워드의 유한체 곱셈의 결과값과 상기 제 2 영역에 해당하는 모든 워드의 유한체 곱셈의 결과값을 모두 출력하여 유한체 곱셈의 결과값
Figure 112008061860564-PAT00259
를 생성하는 단계를 포함하는 것을 특징으 로 하는 센서 모트에서의 블록 인덱싱 기반의 타원 곡선 암호 연산 방법.
Result of finite field multiplication by outputting both the result of finite field multiplication of all words corresponding to the 4 bit left-shifted first area and the result of finite field multiplication of all words corresponding to the second area.
Figure 112008061860564-PAT00259
Block indexing-based elliptic curve cryptography calculation method in the sensor module, characterized in that it comprises the step of generating a.
제 1 항에 있어서,The method of claim 1, 상기 프로세스 워드 사이즈
Figure 112008061860564-PAT00260
The process word size
Figure 112008061860564-PAT00260
Is
16비트 또는 32비트 단위의 크기를 가지는 것을 특징으로 하는 센서 모트에서의 블록 인덱싱 기반의 타원 곡선 암호 연산 방법.Block indexing-based elliptic curve cryptography method in the sensor module, characterized in that the size of 16-bit or 32-bit unit.
제 1 항에 있어서,The method of claim 1, 상기 피승수
Figure 112008061860564-PAT00261
의 사전 연산 테이블은
The multiplicand
Figure 112008061860564-PAT00261
The dictionary operation table of
상기 승수
Figure 112008061860564-PAT00262
의 스캔된 4비트 비트열에 따라 미리 결정된 테이블인 것을 특징으로 하는 센서 모트에서의 블록 인덱싱 기반의 타원 곡선 암호 연산 방법.
The multiplier
Figure 112008061860564-PAT00262
Block indexing-based elliptic curve cryptography method in the sensor module, characterized in that the table is predetermined according to the scanned 4-bit bit stream of.
제 1 항에 있어서,The method of claim 1, 상기 센서 모트는The sensor mort 미카즈 센서 모트를 포함하는 것을 특징으로 하는 센서 모트에서의 블록 인덱싱 기반의 타원 곡선 암호 연산 방법.Block indexing-based elliptic curve cryptography method in the sensor moat, characterized by including the Mikazu sensor moat. 제 1 항에 있어서,The method of claim 1, 상기 유한체 곱셈의 중간 결과값은The intermediate result of the finite field multiplication is 상기 유한체 곱셈의 중간 결과값
Figure 112008061860564-PAT00263
의 비트 인덱스를
Figure 112008061860564-PAT00264
, 상기 스캔된 상기 두 개의 비트열에 의해 연산되는 각각의 인덱스 값을
Figure 112008061860564-PAT00265
, 상기
Figure 112008061860564-PAT00266
를 기반으로 로드된 상기 피승수
Figure 112008061860564-PAT00267
의 두 개의 사전 연산 테이블을 각각
Figure 112008061860564-PAT00268
상기 분할 워드의 인덱스 넘버를
Figure 112008061860564-PAT00269
, 상기 분할 워드 내의 비트 인덱스를
Figure 112008061860564-PAT00270
라 할 때, 하기의 식 1에 의해 생성되는 것을 특징으로 하는 센서 모트에서의 블록 인덱싱 기반의 타원 곡선 암호 연산 방법.
Intermediate result of the finite field multiplication
Figure 112008061860564-PAT00263
Bit index of
Figure 112008061860564-PAT00264
And each index value computed by the scanned two bit strings.
Figure 112008061860564-PAT00265
, remind
Figure 112008061860564-PAT00266
The multiplicand loaded based on
Figure 112008061860564-PAT00267
Each of the two pre-operation tables
Figure 112008061860564-PAT00268
The index number of the split word
Figure 112008061860564-PAT00269
Bit index in the partition word
Figure 112008061860564-PAT00270
The block indexing-based elliptic curve cryptography method in the sensor moat, characterized in that generated by the following equation 1.
Figure 112008061860564-PAT00271
(1)
Figure 112008061860564-PAT00271
(One)
제 1 항 내지 제 7 항 중 어느 한 항의 방법을 컴퓨터에서 실행시킬 수 있도록 프로그램으로 기록된 기록매체.A recording medium recorded by a program for executing the method of any one of claims 1 to 7 on a computer. 유한체
Figure 112008061860564-PAT00272
의 두 원소인
Figure 112008061860564-PAT00273
에 있어서 승수
Figure 112008061860564-PAT00274
및 피승수
Figure 112008061860564-PAT00275
를 이용하여 유한체 곱셈의 결과값
Figure 112008061860564-PAT00276
를 생성하는 센서 모트에서의 블록 인덱싱 기반의 타원 곡선 암호 연산 장치에 있어서,
Finite body
Figure 112008061860564-PAT00272
Two elements of
Figure 112008061860564-PAT00273
Multiplier
Figure 112008061860564-PAT00274
And multiplicand
Figure 112008061860564-PAT00275
Result of finite field multiplication using
Figure 112008061860564-PAT00276
In the block indexing-based elliptic curve cryptography device in the sensor moat for generating a,
상기 승수
Figure 112008061860564-PAT00277
의 워드를 프로세스 워드 사이즈
Figure 112008061860564-PAT00278
에 의해
Figure 112008061860564-PAT00279
개의 워드로 분할하여 분할 워드를 생성하는 분할 워드 생성부;
The multiplier
Figure 112008061860564-PAT00277
Process word size
Figure 112008061860564-PAT00278
By
Figure 112008061860564-PAT00279
A division word generation unit generating division words by dividing into four words;
상기 분할된
Figure 112008061860564-PAT00280
개의 워드 각각을 4비트 윈도우 사이즈
Figure 112008061860564-PAT00281
로 분할함으로써 상기 승수
Figure 112008061860564-PAT00282
의 워드를 구분하는 복수 개의 블록을 생성하는 블록 생성부;
The divided
Figure 112008061860564-PAT00280
4-bit window size for each word
Figure 112008061860564-PAT00281
The multiplier by dividing by
Figure 112008061860564-PAT00282
Block generation unit for generating a plurality of blocks for separating the word of;
상기 복수 개의 블록 중 홀수 번째에 위치한 블록을 순서대로 블록 인덱싱하여 제1영역을 형성하고, 짝수 번째에 위치한 블록을 순서대로 블록 인덱싱하여 제2영역을 형성하는 블록 인덱싱부;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; 상기 블록 인덱싱된 블록 내에서 연속된 상하위의 두 개의 4비트 비트열을 각각 스캔하고, 스캔된 상기 두 개의 비트열에 의해 연산되는 각각의 인덱스 값을 기반으로 상기 피승수
Figure 112008061860564-PAT00283
의 두 개의 사전 연산 테이블을 로드하고, 상기 두 개의 사전 연산 테이블 및 유한체 곱셈의 중간 결과값의 대응 워드를 입력값으로 하여 상기 유한체 곱셈의 중간 결과값을 갱신하는 중간 결과값 생성부;
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
Figure 112008061860564-PAT00283
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;
상기 유한체 곱셈의 중간 결과값을 상기 블록 인덱싱된 넘버에 따라 증가된 주소에 해당하는 상기 유한체 곱셈의 결과값
Figure 112008061860564-PAT00284
에 저장함으로써 상기 유한체 곱셈의 결과값
Figure 112008061860564-PAT00285
를 생성하는 저장부; 및
A result of the finite field multiplication corresponding to an address increased according to the block indexed number by the intermediate result of the finite field multiplication
Figure 112008061860564-PAT00284
Result of the finite field multiplication by storing in
Figure 112008061860564-PAT00285
A storage unit for generating; And
상기 제 1 영역에 해당하는 모든 워드를 기반으로 상기 유한체 곱셈의 결과값
Figure 112008061860564-PAT00286
가 생성되면, 상기 제 1 영역에 해당하는 모든 워드의 유한체 곱셈의 결과값
Figure 112008061860564-PAT00287
를 4비트 레프트 쉬프트하는 쉬프트 레지스터를 포함하는 센서 모트에서의 블록 인덱싱 기반의 유한체 곱셈 연산 장치.
A result of the finite field multiplication based on all words corresponding to the first region
Figure 112008061860564-PAT00286
When is generated, the result of the finite field multiplication of all words corresponding to the first region
Figure 112008061860564-PAT00287
A block indexing-based finite field multiplication apparatus in a sensor module including a shift register for performing a 4-bit left shift.
제 9 항에 있어서,The method of claim 9, 상기 저장부는The storage unit 상기 제1영역 및 제2영역의 블록 갯수가 각각
Figure 112008061860564-PAT00288
이고, 상기 블록 인덱싱된 블록의 인덱싱 넘버가
Figure 112008061860564-PAT00289
이면,
Figure 112008061860564-PAT00290
바이트 증가된 주소로 상기 배타적 논리합 연산의 결과값을 저장하는 것을 특징으로 하는 센서 모트에서의 블록 인덱싱 기반의 타원 곡선 암호 연산 장치.
The number of blocks in the first region and the second region is respectively
Figure 112008061860564-PAT00288
And the indexing number of the block indexed block is
Figure 112008061860564-PAT00289
If,
Figure 112008061860564-PAT00290
And a block indexing-based elliptic curve cryptographic computing device in a sensor module, characterized in that for storing the result of the exclusive OR operation as an address increased by byte.
제 9 항에 있어서,The method of claim 9, 상기 쉬프트 레지스터는The shift register 상기 4비트 레프트 쉬프트된 상기 제 1 영역에 해당하는 모든 워드의 배타적 논리합 연산의 결과값과 상기 제 2 영역에 해당하는 모든 워드의 배타적 논리합 연산의 결과값을 모두 출력하여 유한체 곱셈의 결과값
Figure 112008061860564-PAT00291
를 생성하는 결과값 출력 모듈을 더 포함하는 것을 특징으로 하는 센서 모트에서의 블록 인덱싱 기반의 타원 곡선 암호 연산 장치.
A result of finite field multiplication by outputting both the result of the exclusive OR operation of all the words corresponding to the 4 bit left-shifted first region and the result of the exclusive OR operation of all the words corresponding to the second region.
Figure 112008061860564-PAT00291
Block indexing-based elliptic curve cryptographic computing device in the sensor module, characterized in that it further comprises a result output module for generating a.
제 9 항에 있어서,The method of claim 9, 상기 피승수
Figure 112008061860564-PAT00292
의 사전 연산 테이블은
The multiplicand
Figure 112008061860564-PAT00292
The dictionary operation table of
상기 승수
Figure 112008061860564-PAT00293
의 스캔된 4비트 비트열에 따라 미리 결정된 테이블인 것을 특징으로 하는 센서 모트에서의 블록 인덱싱 기반의 타원 곡선 암호 연산 장치.
The multiplier
Figure 112008061860564-PAT00293
And a block indexing-based elliptic curve cryptographic computing device according to claim 4, wherein the table is a predetermined table according to the scanned 4-bit bit stream.
제 9 항에 있어서,The method of claim 9, 상기 프로세스 워드 사이즈
Figure 112008061860564-PAT00294
The process word size
Figure 112008061860564-PAT00294
Is
16비트 또는 32비트 단위의 크기를 가지는 것을 특징으로 하는 센서 모트에서의 블록 인덱싱 기반의 타원 곡선 암호 연산 장치.Block indexing-based elliptic curve cryptography device in the sensor moat, characterized in that the size of 16-bit or 32-bit units.
제 9 항에 있어서,The method of claim 9, 상기 센서 모트는The sensor mort 미카즈 센서 모트를 포함하는 것을 특징으로 하는 센서 모트에서의 블록 인덱싱 기반의 타원 곡선 암호 연산 장치.Block indexing-based elliptic curve cryptography device in the sensor moat, characterized by including the Mikazu sensor moat. 제 9 항에 있어서,The method of claim 9, 상기 유한체 곱셈의 중간 결과값은The intermediate result of the finite field multiplication is 상기 유한체 곱셈의 중간 결과값
Figure 112008061860564-PAT00295
의 비트 인덱스를
Figure 112008061860564-PAT00296
, 상기 스캔된 상기 두 개의 비트열에 의해 연산되는 각각의 인덱스 값을
Figure 112008061860564-PAT00297
, 상기
Figure 112008061860564-PAT00298
를 기반으로 로드된 상기 피승수
Figure 112008061860564-PAT00299
의 두 개의 사전 연산 테이블을 각각
Figure 112008061860564-PAT00300
상기 분할 워드의 인덱스 넘버를
Figure 112008061860564-PAT00301
, 상기 분할 워드 내의 비트 인덱스를
Figure 112008061860564-PAT00302
라 할 때, 하기의 식 2에 의해 생성되는 것을 특징으로 하는 센서 모트에서 의 블록 인덱싱 기반의 타원 곡선 암호 연산 장치.
Intermediate result of the finite field multiplication
Figure 112008061860564-PAT00295
Bit index of
Figure 112008061860564-PAT00296
And each index value computed by the scanned two bit strings.
Figure 112008061860564-PAT00297
, remind
Figure 112008061860564-PAT00298
The multiplicand loaded based on
Figure 112008061860564-PAT00299
Each of the two pre-operation tables
Figure 112008061860564-PAT00300
The index number of the split word
Figure 112008061860564-PAT00301
Bit index in the partition word
Figure 112008061860564-PAT00302
The block indexing-based elliptic curve cryptography device in the sensor moat, characterized in that generated by the following equation 2.
(2) (2)
KR1020080085332A 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 KR100954843B1 (en)

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)

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

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

Cited By (2)

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