KR100657401B1 - Method for elliptic curve cryptography for preventing side channel attack and system thereof - Google Patents

Method for elliptic curve cryptography for preventing side channel attack and system thereof Download PDF

Info

Publication number
KR100657401B1
KR100657401B1 KR1020040106794A KR20040106794A KR100657401B1 KR 100657401 B1 KR100657401 B1 KR 100657401B1 KR 1020040106794 A KR1020040106794 A KR 1020040106794A KR 20040106794 A KR20040106794 A KR 20040106794A KR 100657401 B1 KR100657401 B1 KR 100657401B1
Authority
KR
South Korea
Prior art keywords
elliptic curve
window
secret key
curve encryption
length
Prior art date
Application number
KR1020040106794A
Other languages
Korean (ko)
Other versions
KR20060068177A (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 KR1020040106794A priority Critical patent/KR100657401B1/en
Publication of KR20060068177A publication Critical patent/KR20060068177A/en
Application granted granted Critical
Publication of KR100657401B1 publication Critical patent/KR100657401B1/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/002Countermeasures against attacks on cryptographic mechanisms
    • H04L9/003Countermeasures against attacks on cryptographic mechanisms for power analysis, e.g. differential power analysis [DPA] or simple power analysis [SPA]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/60Methods or arrangements for performing computations using a digital non-denominational number representation, i.e. number representation without radix; Computing devices using combinations of denominational and non-denominational quantity representations, e.g. using difunction pulse trains, STEELE computers, phase computers
    • G06F7/72Methods or arrangements for performing computations using a digital non-denominational number representation, i.e. number representation without radix; Computing devices using combinations of denominational and non-denominational quantity representations, e.g. using difunction pulse trains, STEELE computers, phase computers using residue arithmetic
    • G06F7/724Finite field arithmetic
    • G06F7/725Finite field arithmetic over elliptic curves

Abstract

부채널 공격을 방지할 수 있는 타원곡선 암호화 방법 및 그 시스템이 개시된다. 본 발명에 따른 타원곡선 암호화방법은, 타원곡선 상의 한점 P와 Q = dP를 연산하기 위한 d를 비밀키로 이용하며, 중첩된 윈도우별로 홀수 정수인 랜덤값을 각각 선택하는 단계, 각 윈도우별로 선택된 랜덤값에 따라, 비밀키 d와 동일한 값을 갖는 복수개의 부호화된 이진수 중에서 선택된 부호화된 수열을 각각 생성하는 단계, 및 생성된 수열 및 P를 이용한 스칼라 곱셈을 수행하여, Q를 발생하는 단계를 포함한다. 이에 의해, Second-Order DPA 뿐만 아니라 기존의 부채널 공격에 안전하고, 또한 효율적인 타원곡선 암호화가 가능하다. Disclosed are an elliptic curve encryption method and a system capable of preventing side channel attacks. The method for encrypting an elliptic curve according to the present invention comprises using a point P on the elliptic curve and d for calculating Q = dP as a secret key, respectively selecting random values of odd integers for each overlapping window, and random values selected for each window. And generating each encoded sequence selected from the plurality of encoded binary numbers having the same value as the secret key d, and performing scalar multiplication using the generated sequence and P to generate Q. As a result, it is possible to encrypt an elliptic curve safely and efficiently against the existing secondary channel attack as well as the Second-Order DPA.

타원곡선 암호화, 스칼라 곱셈, 부채널 공격, 윈도우Elliptic Curve Encryption, Scalar Multiplication, Side Channel Attack, Windows

Description

부채널 공격을 방지할 수 있는 타원곡선 암호화 방법 및 그 시스템{Method for elliptic curve cryptography for preventing side channel attack and system thereof} Method for elliptic curve cryptography for preventing side channel attack and system

도 1은 홀수인 스칼라에 대하여 w-NAF로 변환하는 알고리즘을 나타낸 도면, 1 is a diagram showing an algorithm for converting to w-NAF for an odd scalar,

도 2는 중첩 윈도우 방법을 설명하기 위한 도면, 그리고2 is a view for explaining an overlapping window method, and

도 3은 본 발명에 따른 타원곡선 암호화 방법의 설명에 제공되는 흐름도,3 is a flowchart provided to explain an elliptic curve encryption method according to the present invention;

도 4는 본 발명에 따른 타원곡선 암호화 방법과 종래의 타원곡선 암호화 방법에 대한 안정성을 비교한 표,4 is a table comparing the stability of the elliptic curve encryption method and the conventional elliptic curve encryption method according to the present invention,

도 5는 본 발명에 따른 타원곡선 암호화 방법과 종래의 타원곡선 암호화 방법에 대한 효율성과 저장공간을 비교한 표,5 is a table comparing the efficiency and storage space for the elliptic curve encryption method and the conventional elliptic curve encryption method according to the present invention,

도 6은 본 발명에 따른 타원곡선 암호화 방법과 종래의 타원곡선 암호화 방법에 대하여 부채널 공격에 안전한 대응방법들의 안전성, 효율성과 저장공간을 비교한 표, 그리고6 is a table comparing the safety, efficiency, and storage space of the countermeasures safe against subchannel attacks for the elliptic curve encryption method and the conventional elliptic curve encryption method according to the present invention; and

도 7은 사영좌표계가 변현된 Jacobian 좌표계에서 대응방법들의 연산량을 비교한 표이다.7 is a table comparing the calculation amounts of the corresponding methods in the Jacobian coordinate system transformed by the projection coordinate system.

본 발명은 타원곡선 암호화방법 및 그 시스템에 관한 것으로, 더욱 상세하게는 부채널 정보(Side Channel)를 이용한 공격을 방지할 수 있는 타원곡선 암호화방법 및 그 시스템에 관한 것이다.The present invention relates to an elliptic curve encryption method and a system thereof, and more particularly to an elliptic curve encryption method and system that can prevent attacks using side channels (Side Channel).

타원곡선 암호시스템은 RSA(Rivest-Shamir-Adleman) 암호시스템에 비하여 동일한 암호학적 안정성을 유지하기 위한 키 길이가 작기 때문에, 스마트카드와 같이 계산능력이나 메모리가 제한된 환경에서 구현하기 적합하다. 그러나, 타원곡선 암호시스템의 구현에 주의를 기울이지 않으면, 공격자는 알고리즘 실행시간, 전력소모량 같은 부채널 정보를 이용하여 비밀정보를 찾아낼 수 있다. 이러한 부채널 정보를 이용한 공격을 부채널 공격 (Side Channel Attack, SCA)이라 한다.Since the elliptic curve cryptographic system has a smaller key length to maintain the same cryptographic stability as compared to the RSA (Rivest-Shamir-Adleman) cryptographic system, it is suitable to be implemented in an environment with limited computing power or memory such as a smart card. However, without paying attention to the implementation of the elliptic curve cryptographic system, an attacker can find secret information using subchannel information such as algorithm execution time and power consumption. An attack using such subchannel information is called a side channel attack (SCA).

한편, 계산능력이나 메모리같은 자원이 제한된 환경에서 타원곡선 암호시스템을 구현하기 위하여 효율성을 증대시키기 위한 많은 방법들이 제안되었다. 만약 추가적인 메모리를 이용할 수 있다면, 윈도우 기반의 방법들은 타원곡선 암호시스템의 속도를 향상시킬 수 있다. 그러나, 대부분의 윈도우 기반의 방법들은 Okeya-Sakurai에 의해서 제안된 Second-Order DPA에 의해서 분석되기 때문에, Second-Order DPA 공격을 효율적으로 막는 문제가 현재 가장 큰 쟁점이 되고 있다. 지금까지 제안된 Second-Order DPA를 막는 대응방법들의 단점은 연산의 효율성을 떨어뜨린다는 것이다. On the other hand, many methods have been proposed to increase the efficiency for implementing an elliptic curve cryptosystem in a resource-limited environment such as computing power or memory. If additional memory is available, Windows-based methods can speed up the elliptic curve cryptosystem. However, since most of the Windows-based methods are analyzed by the Second-Order DPA proposed by Okeya-Sakurai, the problem of effectively preventing Second-Order DPA attacks is currently the biggest issue. The disadvantage of the countermeasures against the Second-Order DPA proposed so far is that it reduces the efficiency of computation.

이에 따라, 부채널 공격을 방지할 수 있는 여러 가지 윈도우 기반의 대응방법이 제안되었다. Okeya-Takagi는 윈도우 기반의 대응방법을 두 가지 형태로 분류 하였다. 첫번째 형태는 고정된 윈도우를 활용하는 방법이다. 이 방법은 Moller에 의해서 처음 제안되었고 Okeya-Takagi는 w-NAF 방법을 이용하여 저장공간을 줄이는 방법을 제안하였다. 두번째 방법은 윈도우 기반의 덧셈체인(addition chains)을 랜덤하게 변화시킴으로써 부채널 공격에 안전하게 하는 것이다. 이 방법은 Liardet-Smart에 의해 처음 제안되었고, Itoh 외 3인에 의해서 더욱 개선된 방법들이 제안되었다.Accordingly, various window-based countermeasures have been proposed to prevent side channel attacks. Okeya-Takagi classifies the window-based countermeasure into two types. The first form uses a fixed window. This method was first proposed by Moller and Okeya-Takagi proposed a method to reduce the storage space by using the w -NAF method. The second approach is to make it safe from side-channel attacks by randomly changing window-based addition chains. This method was first proposed by Liardet-Smart, and further improved by Itoh et al.

이하에서는, 부채널 공격을 방지할 수 있는 윈도우 기반의 방법으로, Moller 방법, Okeya-Takagi 방법, 그리고 중첩 윈도우(Overlapping window) 방법에 대하여 살펴보기로 한다. Moller 방법과 Okeya-Takagi 방법은 모두 고정된 형태로 비밀키를 재구성함으로써 SPA(Simple Power Analysis)에 안전하게 된다. 특히, Okeya-Takagi 방법은 w-NAF 방법을 이용하여 저장공간을 줄이는데 중점을 두고 있다. 마지막으로 Itoh 외 3인은 중첩 윈도우 방법을 포함한 윈도우 기반의 DPA(Differential Power Analysis) 대응방법을 제안하였다.Hereinafter, as a window-based method for preventing side channel attacks, the Moller method, the Okeya-Takagi method, and the overlapping window method will be described. Both the Moller method and the Okeya-Takagi method are secured in Simple Power Analysis (SPA) by reconstructing the secret key in a fixed form. In particular, the Okeya-Takagi method focuses on reducing storage space using the w -NAF method. Finally, Itoh and three others proposed a window-based DPA (Differential Power Analysis) countermeasure including a nested window method.

먼저, Moller의 방법에 대하여 설명하면, 비밀키를

Figure 112006052416233-pat00042
라 하면, 일반적인 타원곡선 스칼라 곱셈 연산에서인 경우, 덧셈 연산을 수행하지 않게 되며 이러한 성질로 인하여 SPA에 의해서 비밀키가 노출된다. 따라서, Moller는 ki = 0 인 경우가 발생하지 않도록 비밀키를 다음의 식과 같은 새로운 표현으로 변환하는 방법을 제안하였다.First, let's talk about Moller's method.
Figure 112006052416233-pat00042
In this case, in general elliptic curve scalar multiplication operation, the addition operation is not performed and the secret key is exposed by the SPA due to this property. Thus, Moller proposed a method of converting the private key in the following expressions such as the expression of new avoid if k i = 0.

Figure 112006052416233-pat00043
Figure 112006052416233-pat00043

레코딩 방법은 0 ≤ci≤ 2 와 0 ≤ti≤ 2w + 1 을 만족하는 임시변수 ci 와 ti를 이용하여 다음의 식과 같이 표현할 수 있다.The recording method is 0 ≤ c i ≤ 2 and 0 ≤ t i ≤ 2 w The temporary variables c i and t i that satisfy + 1 can be expressed as follows.

c0 = 0 라 하자. 그리고, i = 0, …, e+1 에 대하여, ti = ki + ci 라 하면,Let c 0 = 0. And i = 0,... , for e + 1, t i = k i + c i ,

Figure 112006052416233-pat00044
Figure 112006052416233-pat00044

여기서 항상 ci+1 ·2w + di = ti 를 만족하고 출력 정수의 길이는 많아야 한 자리 증가한다.Where c i + 1 · 2 w + d i = t i is always satisfied and the length of the output integer is increased by one digit at most.

다음으로, Okeya-Takagi의 방법에 대하여 설명하기로 한다. Next, the method of Okeya-Takagi will be described.

스마트카드와 같이 메모리가 제한된 환경에서 암호학적인 알고리즘은 적은 저장공간을 이용하면서 효율적이어야 한다. Moller에 의하여 제안된 SPA에 안전한 대응방법은 m-ary 방법에 기반을 하고 있기 때문에 2w개의 저장공간을 필요로 한다. 적은 저장공간을 이용하는 윈도우 방법은 w-NAF 방법이다. w-NAF 방법에서 요구되 는 저장공간의 수는 2w-2 이다. Okeya-Takagi는 w-NAF 방법을 이용하여 부채널 공격에 안전한 방법을 제안하였다. Okeya-Takagi 방법은 w-NAF 방법을 SPA에 안전한 덧셈체인(addition chain)으로 변형하는 것이다. 이 덧셈체인은 다음과 같은 고정된 형식으로 스칼라를 생성한다. In memory-constrained environments such as smart cards, cryptographic algorithms must be efficient with less storage space. The safe countermeasures proposed by Moller for SPA are based on the m-ary method and require 2 w of storage. The window method using less storage is the w -NAF method. The number of storage spaces required by the w -NAF method is 2 w-2 . Okeya-Takagi proposed a safe method for side channel attack using w -NAF method. The Okeya-Takagi method is to transform the w -NAF method into an SPA safe addition chain. This add chain creates scalars in the following fixed format:

Figure 112006052416233-pat00045

여기서, x < 2w 는 홀수인 정수이다.
Figure 112006052416233-pat00045

Where x <2 w is an odd integer.

삭제delete

Okeya-Takagi의 방법에서 요구되는 저장공간의 수는 2w-1이다. 그러므로 Moller 방법보다 적은 저장공간을 요구한다. Okeya-Takagi 방법은 모든 짝수 자리를 홀수 자리로 변환함으로써 저장공간의 수를 줄인다. 예를 들어 w = 4인 경우에 홀수 자리는 0001, 0011, 0101, 0111, 1001, 1011, 1101, 그리고 1111 이다. 그러면 짝수 자리 |0100| 을 홀수 자리로 변환하는 방법은 다음과 같다.The number of storage spaces required by Okeya-Takagi's method is 2 w-1 . Therefore, it requires less storage space than Moller method. The Okeya-Takagi method reduces the amount of storage by converting all even places to odd places. For example, when w = 4, the odd digits are 0001, 0011, 0101, 0111, 1001, 1011, 1101, and 1111. Even number | 0100 | The method of converting to odd digits is as follows.

Figure 112004059306203-pat00005
Figure 112004059306203-pat00005

그러면 |0100| 을 제외한 나머지 짝수 자리는 위와 같이 과정으로 변환시킬 수 있고 |0100| 을 변환하는 방법은 다음과 같다.Then | 0100 | Except even places can be converted to process as above and | 0100 | How to convert is as follows.

Figure 112004059306203-pat00006
Figure 112004059306203-pat00006

위의 변형을 이용하여 모든 짝수 자리는 다음과 같이 모든 홀수 자리로 변환할 수 있다.Using the above transformation, all even places can be converted to all odd places as follows:

Figure 112004059306203-pat00007
Figure 112004059306203-pat00007

도 1은 위의 성질을 이용하여 홀수인 스칼라에 대하여 w-NAF로 변환하는 알고리즘을 나타낸 것이다. 만일 스칼라 k가 짝수이면, d = k+1 으로 변환하고 홀수이면 d= k+2 으로 변환한다. 그러면 d는 항상 홀수이다. 그러므로 d를, 도 1에 나타낸 알고리즘에 적용하여 스칼라 곱셈을 수행한 후에, dP - P 또는 dP-2P을 계산함으로써, kP가 계산 된다.1 shows an algorithm for converting w -NAF to an odd scalar using the above properties. If scalar k is even, then d = k + 1, and if odd, d = k + 2. D is always odd. Therefore, after performing scalar multiplication by applying d to the algorithm shown in FIG. 1, kP is calculated by calculating dP-P or dP-2P.

그러나, 상기한 Moller 방법과 Okeya-Takagi 방법은 SPA에 안전한 대응방법이기 때문에 다른 공격들 (DPA, Second-Order DPA, Address-DPA)을 방어하기 위하여 추가적인 연산이 요구된다.However, since the Moller method and the Okeya-Takagi method are SPA safe countermeasures, additional operations are required to defend against other attacks (DPA, Second-Order DPA, Address-DPA).

다음으로, Itoh 외 3인이 제안한 DPA에 안전한 중첩 윈도우 방법에 대하여 설명하기로 한다. 먼저, 방법을 설명하기에 앞서 표기법을 설명한다.Next, the overlapping window method secured by the DPA proposed by Itoh et al. Will be described. First, the notation is described before explaining the method.

Figure 112006052416233-pat00046
는 비밀키 값이다. r 은 윈도우의 크기이고, wi 는 사전 계산된 테이블에 대한 인덱스 값이다. 즉 wi 는 윈도우이다. q는 wi의(i = 0,1, q-1) 개수이다. hi 는 wi와 wi+1 사이의 중첩된 비트의 길이를 나타낸다. 즉, 0< hi <r 이다.
Figure 112006052416233-pat00046
Is the secret key value. r is the size of the window and w i is the index value for the precomputed table. That is, w i is a window. q is the number of w i (i = 0, 1, q-1). h i represents the length of the overlapped bits between w i and w i + 1 . That is, 0 <h i <r.

bit(a,x,…,y)는 a의 이진 표현에서 x 번째 비트부터 y번째 비트까지의 비트열을 나타낸다(x = 0,…,1; y = 0, 1,…; x ≥ y). 최 상위 비트보다 큰 비트는 0 으로 간주한다. 예를 들어 a = 6 =(110)2 이면 bit(a,0) = 0, bit(a,1) = 1이고 bit(a,4,3,2,1) = (0011)2 = 3 이다. bit (a, x, ..., y) represents a bit string from the x th bit to the y th bit in the binary representation of a (x = 0, ..., 1; y = 0, 1, ...; x ≥ y) . Bits greater than the most significant bit are considered to be zero. For example, if a = 6 = (110) 2 then bit (a, 0) = 0, bit (a, 1) = 1 and bit (a, 4,3,2,1) = (0011) 2 = 3 .

ECADD와 ECDBL은 각각 타원곡선 덧셈 연산과 두 배 연산을 나타낸다.ECADD and ECDBL represent elliptic curve addition and double operations, respectively.

중첩 윈도우 방법의 특징은 윈도우 wi와 wi+1 와의 겹침을 허용하는 것이다. 고정된 비밀키 값 d 로부터 생성되는 wi와 wi+1 는 스칼라 곱셈을 할 때마다 랜덤하게 변하게 된다. 그러므로 공격자가 중간 결과값을 예상하는 것은 매우 어렵기 때문에 DPA에 안전하게 된다.The feature of the nested window method is that it allows the overlap of windows w i and w i + 1 . W i and w i + 1, generated from the fixed secret key value d, change randomly with each scalar multiplication. Therefore, it is safe for DPA because it is very difficult for an attacker to predict intermediate results.

중첩 윈도우 방법은 다음의 식을 항상 만족한다. The nested window method always satisfies the following equation.

Figure 112006052416233-pat00047
Figure 112006052416233-pat00047

그리고, 중첩 윈도우 방법으로부터 표현되어지는 비밀키는 다음과 같다The secret key represented by the nested window method is:

Figure 112006052416233-pat00048
Figure 112006052416233-pat00048

그러나, 중첩 윈도우 방법은 k-ary 방법과 비교하여 테이블을 만드는 연산량은 같지만, 테이블을 참조하는 연산수가 더 많다. 즉 ECADD 연산을 더 많이 수행해야만 한다.However, the nested window method has the same amount of computation to create a table as compared to the k-ary method, but more operations refer to the table. That is, more ECADD operations must be performed.

따라서, 본 발명의 목적은, Second-Order DPA 뿐만 아니라 기존의 부채널 공격에 안전하고 효율적인 타원곡선 암호화 및 그 시스템을 제공함에 있다. Accordingly, an object of the present invention is to provide a safe and efficient elliptic curve encryption and a system for the existing sub-channel attack as well as Second-Order DPA.

상기 목적을 달성하기 위한 본 발명에 따른 타원곡선 암호화 방법은, 타원곡선 상의 한점 P와 Q=dP를 연산하기 위한 상기 d를 비밀키로 이용하며, 중첩된 윈도우별로 홀수 정수인 랜덤값을 각각 선택하는 단계, 상기 각 윈도우별로 선택된 상기 랜덤값에 따라, 상기 비밀키 d와 동일한 값을 갖는 복수개의 부호화된 이진수 중에서 선택된 부호화된 수열을 각각 생성하는 단계, 및 생성된 상기 수열 및 상기 P를 이용한 스칼라 곱셈을 수행하여, 상기 Q를 발생하는 단계를 포함한다.In the elliptic curve encryption method according to the present invention for achieving the above object, using a point P on the elliptic curve and the d for calculating Q = dP as a secret key, selecting a random value of an odd integer for each overlapping window Generating an encoded sequence selected from a plurality of encoded binary numbers each having the same value as the secret key d according to the random value selected for each window, and generating the scalar multiplication using the generated sequence and P. Performing, generating the Q.

상기 랜덤값은 다음의 수식에 의해 산출할 수 있다.The random value can be calculated by the following equation.

Figure 112004059306203-pat00011
Figure 112004059306203-pat00011

여기서, u[i]는 상기 랜덤값, w는 상기 윈도우 크기, h는 상기 윈도우의 중첩된 길이, t는 상기 비밀키의 길이, dt = bit(d,t-1,… t-w) 이다.Where u [i] is the random value, w is the window size, h is the overlapped length of the window, t is the length of the secret key, and dt = bit (d, t-1, ... t-w).

또한, 상기 비밀키의 길이는 다음의 식에 의해 산출할 수 있다. In addition, the length of the secret key can be calculated by the following equation.

Figure 112006052416233-pat00049
Figure 112006052416233-pat00049

여기서, t는 상기 비밀키의 길이, s는 상기 윈도우의 개수, h는 상기 윈도우의 중첩된 길이, w는 상기 윈도우의 크기를 나타낸다. Where t is the length of the secret key, s is the number of windows, h is the overlapping length of the window, and w is the size of the window.

한편, 본 발명에 따른 타원곡선 암호화 시스템은, 타원곡선 상의 한점 P와 Q=dP를 연산하기 위한 상기 d를 비밀키로 이용하며, 중첩된 윈도우별로 홀수 정수인 랜덤값을 각각 선택하는 수단, 상기 각 윈도우별로 선택된 상기 랜덤값에 따라, 상기 비밀키 d와 동일한 값을 갖는 복수개의 부호화된 이진수 중에서 선택된 부호화된 수열을 각각 생성하는 수단, 및 생성된 상기 수열 및 상기 P를 이용한 스칼라 곱셈을 수행하여, 상기 Q를 발생하는 수단을 포함한다.On the other hand, in the elliptic curve encryption system according to the present invention, means for selecting a random value of an odd integer for each overlapping window using the d for calculating a point P on the elliptic curve and Q = dP as a secret key, each window Means for generating a coded sequence selected from a plurality of coded binary numbers each having the same value as the secret key d, and performing a scalar multiplication using the generated sequence and the P according to the random value selected by Means for generating Q.

이하에서는 도면을 참조하여 본 발명을 보다 상세하게 설명한다. Hereinafter, with reference to the drawings will be described the present invention in more detail.

본 발명에 따른 타원곡선 암호화 방법에서는, w-NAF를 이용하여 중첩 윈도우 방법의 저장공간을 줄이는 방법을 사용한다. In the elliptic curve encryption method according to the present invention, a method of reducing the storage space of the overlapping window method using w -NAF is used.

도 3은 본 발명에 따른 타원곡선 암호화방법의 설명에 제공되는 흐름도이다. 3 is a flowchart provided to explain an elliptic curve encryption method according to the present invention.

도 3을 참조하면, 먼저 n 비트 홀수인 d, 윈도우 크기 w, 윈도우의 중첩된 길이 h를 입력 받는다(S100). 본 발명에서는, 윈도우의 크기가 w 일 때, SPA 에 안전하기 위하여 윈도우의 중첩된 길이는 고정된 값(h)을 이용한다.Referring to FIG. 3, first, an n-bit odd number d, a window size w, and a overlapped length h of a window are received (S100). In the present invention, when the size of the window is w, the overlapped length of the window uses a fixed value (h) to be safe for SPA.

d, w, h 가 입력되면, 윈도우 개수 s와, 비밀키의 길이 t를 산출한다(S105). 윈도우 개수 s와, 비밀키의 길이는 t는 다음의 식에 의해 산출된다.When d, w and h are input, the number of windows s and the length t of the secret key are calculated (S105). The number of windows s and the length of the private key t are calculated by the following equation.

Figure 112004059306203-pat00013
Figure 112004059306203-pat00013

Figure 112006052416233-pat00050
Figure 112006052416233-pat00050

예를 들어, 7-비트 비밀키 d=(1001101)2 에 대하여 w = 4 이고 h = 2이면, s = 3 이고, t = 3·(4-2) + 2 = 8 이 된다. 따라서, 비밀키는 8-비트 정수으로 나타낼 수 있다. 또한, d로부터 생성된 수열의 예는,

Figure 112004059306203-pat00015
Figure 112004059306203-pat00016
이다.For example, if w = 4 and h = 2 for 7-bit secret key d = (1001101) 2 , s = 3 and t = 3 · (4-2) + 2 = 8. Thus, the secret key can be represented by an 8-bit integer. In addition, an example of the sequence generated from d is
Figure 112004059306203-pat00015
Figure 112004059306203-pat00016
to be.

윈도우 개수 s와 비밀키의 길이 t가 산출되면, 랜덤값 선택에 사용되는 dt를 산출한다(S110). 이때, dt는 다음의 식에 의해 산출된다.When the number of windows s and the length t of the secret key are calculated, dt used for random value selection is calculated (S110). At this time, dt is calculated by the following formula.

Figure 112006052416233-pat00051
Figure 112006052416233-pat00018
Figure 112006052416233-pat00051
Figure 112006052416233-pat00018

다음, i = s - 1 로 하고(S115), 현재 윈도우(i=s-1)에서 홀수 정수인 랜덤값 u[i]를 선택한다(S120). 랜덤값 u[i]는 다음의 식을 조건을 만족하는 범위내에서 선택된다.Next, i = s-1 is set (S115), and a random value u [i] which is an odd integer in the current window (i = s-1) is selected (S120). The random value u [i] is selected within the range satisfying the following condition.

Figure 112004059306203-pat00019
Figure 112004059306203-pat00019

u[i]가 선택되면 비밀키 생성을 위한 순열에서, 최상위 비트를 u[i]로 결정하고, 나머지 비트는 '0'으로 한다(S125). 이를 식으로 나타내면 다음과 같다.If u [i] is selected, the most significant bit is determined as u [i] in the permutation for generating a secret key, and the remaining bits are set to '0' (S125). This is expressed as follows.

Figure 112006052416233-pat00052
Figure 112006052416233-pat00052

다음으로, 다음번 윈도우에서 사용될 dt를 산출한다(S130). 이때, dt는 다음의 식에 의해 산출된다.Next, dt to be used in the next window is calculated (S130). At this time, dt is calculated by the following formula.

Figure 112006052416233-pat00053
Figure 112006052416233-pat00053

dt가 산출되면, 다음번 윈도우로 이동하기 위하여, t = t -(w-h), i = i-1 로 한다(S135). 그리고, i > 0 인지 판단하여(S140), S120 단계 내지 S135 단계는, i = 1 이 될때까지 반복하여 수행되로록 한다.When dt is calculated, t = t-(w-h) and i = i-1 (S135) to move to the next window. Then, it is determined whether i> 0 (S140), and steps S120 to S135 are repeatedly performed until i = 1.

i = 1이 될때까지, S120 단계 내지 S135 단계가 반복하여 수행되면, dw[0] = dt로 한다(S145). 그리고, 스칼라 곱셈을 수행한다(S150). 한점 P를 d번 더하는 연산을 한 점에 대한 스칼라 곱셈이라 하고, dP로 표기한다.When steps S120 to S135 are repeatedly performed until i = 1, d w [0] = dt (S145). Then, scalar multiplication is performed (S150). The operation of adding one point P to d times is called a scalar multiplication of one point, denoted by dP.

최종적으로 출력되는 값은 다음의 식과 같이 표현된다. The final output value is expressed as the following equation.

Figure 112006052416233-pat00054
Figure 112006052416233-pat00054

본 발명은 SPA를 막기 위하여, 고정된 h를 사용하기 때문에 다음과 같은 형식으로 스칼라 곱셈을 수행한다. Since the present invention uses a fixed h to prevent SPA, scalar multiplication is performed in the following format.

Figure 112006052416233-pat00055
Figure 112006052416233-pat00055

그러면 사전 계산되는 점의 수는 2w-1이고 0 이 아닌 비트의 조밀도는 1/(w-h )이다. 또한, 비밀키는 다음의 식과 같이 표현된다.Then the number of precomputed points is 2 w-1 and the density of nonzero bits is 1 / ( wh ). In addition, the secret key is expressed by the following equation.

Figure 112006052416233-pat00056
Figure 112006052416233-pat00056

상기와 같은 타원곡선 암호화 방법에서, S120 단계에서 u[i]가 될 수 있는 경우의 수는 일반적으로 2h이다. 그러므로 각각의 스칼라 곱셈에서 서로 다른 u[i]가 선택되기 때문에 DPA에 안전하게 된다. 본 발명과 종래의 중첩 윈도우 방법의 차이는 S120 단계에서 선택되는 u[i]가 홀수인 정수라는 점이다. 즉, 종래의 방법은 양의 정수를 선택했지만 본 발명에서는 홀수인 정수를 선택한다. 따라서, 테이블에 홀수인 점들만 저장하면 되기 때문에 저장공간이 반으로 줄어든다. In the elliptic curve encryption method as described above, the number of cases where u [i] may be 2 in step S120 is generally 2 h . Therefore, it is safe for DPA because a different u [i] is chosen for each scalar multiplication. The difference between the present invention and the conventional overlapping window method is that u [i] selected in step S120 is an odd integer. That is, while the conventional method selects a positive integer, in the present invention, an odd integer is selected. Therefore, the storage space is cut in half because only the odd points need to be stored in the table.

만약 짝수 정수가 위의 알고리즘에 입력된다면 문제가 되는 부분은 최하위 자리이다. 즉 S145 단계에서 짝수가 된다. 이제 짝수 스칼라를 홀수로 바꿀 수 있는 두 가지 방법을 설명한다. If even integers are entered in the above algorithm, the problem is the least significant digit. In other words, it becomes even in step S145. Here are two ways you can turn an even scalar into an odd number.

첫 번째 방법은 Okeya-Takagi가 제안한 방법이다. 만약 d가 짝수이면 d' = d+1 으로, 홀수이면 d' = d+2 으로 변환한다. 그러면 d' 은 항상 홀수이고 스칼라 곱셈 후에 d'P 또는 d'P - 2P을 계산함으로써는 dP는 복원된다. The first method is proposed by Okeya-Takagi. If d is even, then d '= d + 1, and if odd, d' = d + 2. D 'is always odd and dP is restored by calculating d'P or d'P-2P after scalar multiplication.

두 번째 방법은 다음과 같은 가정에서부터 시작한다. The second method starts with the following assumptions.

Assumption. 타원곡선 스칼라 곱셈에 입력되는 점은 위수는 큰 소수라고 가정하자. 다시 말해서 위수가 작은 점은 스칼라 곱셈이 수행되기 전에 제거된다고 가정한다.Assumption. Suppose the points entered in the elliptic curve scalar multiplication are large primes. In other words, it is assumed that small numbers are removed before scalar multiplication is performed.

ECIES, single-pass ECDH 와 single-pass ECMQV 등의 프로토콜에 대한 여러 가지 표준문서에는 작은 위수 공격(small subgroup attacks)을 막기 위하여 스칼라 곱셈이 수행되기 전에 작은 위수(cofactor)를 사용하여 위수가 작은 점을 알아 낼 수 있다. 따라서, 위의 가정은 정당하다. 위수가 큰 소수 (p : large prime)인 점 P 는 pP = 0 이다. 만약 d가 짝수이면 d' = d +p, 홀수이면 d' = d 로 변환한다. 그러면 d'은 항상 홀수이고, d'P = dP 이다.Several standard documents for protocols such as ECIES, single-pass ECDH, and single-pass ECMQV use small cofactors before small scalar multiplications to prevent small subgroup attacks. To figure out. Thus, the above assumption is justified. The point P, where the rank is a large prime, is pP = 0. If d is even, then d '= d + p, and if odd, d' = d. D 'is always odd, and d'P = dP.

비밀키 d의 이진 표현은 유일하게 결정된다. 이 때, d를 -1, 0, 1을 이용해서 표현하면 같은 수라도 표현되어지는 방법은 매우 많다. 즉, d가 5일 경우에

Figure 112006052416233-pat00057
,
Figure 112006052416233-pat00058
등과 같이 다양한 방법으로 표현된다. 이와 같이 dP를 계산할 때마다 d의 표현을 임의로 변환하여 계산함으로써 부채널 공격에 안전하게 암호화를 구현할 수 있다.The binary representation of secret key d is uniquely determined. At this time, if d is expressed using -1, 0, 1, the same number can be expressed in many ways. That is, if d is 5
Figure 112006052416233-pat00057
,
Figure 112006052416233-pat00058
It is expressed in various ways as shown. As described above, whenever dP is calculated, the expression of d is arbitrarily converted and calculated to safely implement encryption in side channel attacks.

한편, 본 발명에 따른 타원곡선 암호화 방법에 대한 안전성과 효율성을 분석하고, 본 발명에 따른 암호화 방법을 종래의 방법과 안전성, 연산량 그리고 저장공간을 비교하면 다음과 같다. 먼저, 본 발명에 따른 타원곡선 암호화 방법의 안전 성을 분석한다. 여기서, SPA, DPA, Second-Order DPA 및 Address-DPA에 대하여 고려하고 AR(Attenuation Ratio)을 이용하여 안전성을 분석한다. AR은 대응방법이 있는 경우와 없는 경우에 발생하는 피크의 비율에 의해서 평가된다. 0과 1사이의 값을 갖는 AR은 작을수록 안전하다. 만약 AR = 0 이면 공격자는 피크를 확인할 수 없고 대응방법은 안전하다. 만약 AR = 1 이면 공격자는 항상 피크를 확인할 수 있고 대응방법은 안전하지 못하다. SPA, DPA, Second-Order DPA와 Address-DPA에 대한 AR은 각각 ARS, ARD, ARS-D와 ARA-D로 표기한다.Meanwhile, the safety and efficiency of the elliptic curve encryption method according to the present invention are analyzed, and the encryption method according to the present invention is compared with the conventional method with security, calculation amount and storage space as follows. First, we analyze the safety of the elliptic curve encryption method according to the present invention. Here, SPA, DPA, Second-Order DPA and Address-DPA are considered and safety is analyzed using Attenuation Ratio (AR). AR is evaluated by the ratio of peaks occurring with and without a corresponding method. ARs with values between 0 and 1 are smaller and safer. If AR = 0, the attacker cannot see the peak and the countermeasure is safe. If AR = 1, the attacker can always see the peak and the response is not safe. AR for SPA, DPA, Second-Order DPA and Address-DPA are denoted by AR S , AR D , AR SD and AR AD respectively.

본 발명에 따른 타원곡선 암호화 방법은, x ≠ 0 에 대하여 고정된 형식으로 스칼라 곱셈을 계산한다. 공격자는 전력소모량의 측정을 통해서 ECADD와 ECDBL을 구별할 수 있다. 그러나 모든 스칼라에 대하여 나타나는 AD 수열은 모두 다음과 같은 고정된 형태로 발생한다.The elliptic curve encryption method according to the present invention calculates a scalar multiplication in a fixed form for x ≠ 0. An attacker can distinguish between ECADD and ECDBL by measuring power consumption. However, all AD sequences appearing for all scalars occur in a fixed form:

Figure 112006052416233-pat00059

여기서, A와 D는 각각 ECADD와 ECDBL을 의미한다.
Figure 112006052416233-pat00059

Here, A and D mean ECADD and ECDBL, respectively.

삭제delete

비밀키에 관계없이 항상 w-h 번의 ECDBL과 1번의 ECADD 연산을 수행하게 되므로 공격자가 SPA에 의해서 얻을 수 있는 정보는 없다. 그러므로 ARS=0. 즉, 제안 알고리즘은 SPA에 안전하다.Regardless of the secret key, wh ECDBL and 1 ECADD operations are always performed, so there is no information that an attacker can obtain by SPA. Therefore AR S = 0. In other words, the proposed algorithm is safe for SPA.

본 발명에 따른 타원곡선 암호화 방법은, 각각의 스칼라 곱셈에서 서로 다른 수열을 사용하기 때문에 공격자는 스칼라 곱셈이 수행되는 동안에 나타나는 중간값을 예상하는 것이 매우 어렵다.Since the elliptic curve encryption method according to the present invention uses a different sequence in each scalar multiplication, it is very difficult for the attacker to predict the median value that appears during the scalar multiplication.

사영 좌표계에서 같은 점에 대한 데이터 표현은 다르다. 예를 들면에 대한가Data representations for the same point in the projected coordinate system are different. For example for

Figure 112004059306203-pat00028
Figure 112004059306203-pat00028

또는or

Figure 112004059306203-pat00029
Figure 112004059306203-pat00029

에 의해서 계산될 때, 이 두 표현은 아핀 좌표계에서는 같지만 사영 좌표계에서는 다르다. 즉, 높은 확률로 X1≠X2, Y1≠Y2, Z1 ≠Z2 이다.When computed by, these two representations are the same in the affine coordinate system but different in the projective coordinate system. That is, X 1 ≠ X 2 , Y 1 ≠ Y 2 , and Z 1 ≠ Z 2 with high probability.

본 발명에 따른 타원곡선 암호화 방법에서, u[i]가 될 수 있는 경우의 수는 h이고 0 이 아닌 윈도우의 개수는 s 이므로In the elliptic curve encryption method according to the present invention, the number of cases where u [i] can be h and the number of non-zero windows is s.

Figure 112006052416233-pat00060
Figure 112006052416233-pat00060

예를 들어, 160비트 스칼라에 대하여 w = 4 이고 h = 1 인 경우에, ARD=2-53이다. Itoh 외 3인은 대응방법이 적용된 장치에서 발생하는 피크의 크기가 대응방법 없이 구현된 장치에서 발생하는 피크의 크기보다 100배 정도 줄어들면 충분한 안전성을 줄 수 있음을 언급하였다. 그러므로 이 수치는 충분히 DPA에 안전함을 보여준다.For example, when w = 4 and h = 1 for a 160 bit scalar, AR D = 2 -53 . Itoh et al.3 noted that sufficient safety can be provided if the magnitude of the peak occurring in the device to which the countermeasure is applied is reduced by 100 times the size of the peak occurring in the device implemented without the countermeasure. Therefore, this figure is sufficiently safe for DPA.

다음, Second-Order DPA (SO-DPA)에 대하여 살펴 본다. Okeya-Sakurai는 Moller의 윈도우 방법에 대한 Second-Order DPA 공격을 제안하였다. Second-Order DPA 공격은 비밀키의 자리가 같을 경우 같은 테이블 값을 참조하는 성질을 이용한다. 그러므로 Second-Order DPA를 막기 위해 테이블을 참조할 때마다 테이블을 랜덤화하는 방법을 사용해야 한다. Next, look at Second-Order DPA (SO-DPA). Okeya-Sakurai proposed a second-order DPA attack on Moller's Windows method. Second-Order DPA attacks use the property of referencing the same table value when the secret key has the same place. Therefore, in order to prevent Second-Order DPA, a method of randomizing the table whenever a table is referred to should be used.

그러나 본 발명에 따른 타원곡선 암호화 방법은 각각의 스칼라 곱셈에서 서로 다른 수열을 사용하기 때문에 매번 테이블을 참조하는 값이 달라진다. 따라서, Second-Order DPA에 의해서 비밀키를 찾는 것이 어렵다. 더욱이 본 발명에 따른 타원곡선 암호화 방법은, Second -Order DPA를 막기 위하여 추가적인 연산이 필요하지 않으므로 연산의 효율성을 높일 수 있는 장점이 있다.However, since the elliptic curve encryption method according to the present invention uses a different sequence in each scalar multiplication, the value referring to the table is changed every time. Therefore, it is difficult to find the secret key by the Second-Order DPA. Moreover, the elliptic curve encryption method according to the present invention has an advantage of increasing the efficiency of the operation because no additional operation is required to prevent the second-order DPA.

Address-DPA (A-DPA)의 경우, toh-Izu-Takenaka는 비밀키를 랜덤화하는 형태의 대응책은 A-DPA에 안전하다고 언급하였다. 비밀키를 랜덤화하는 방법은 스칼라 곱셈을 할 때마다 비밀키의 표현을 랜덤하게 변화시키기 때문에 레지스터의 주소 또한 랜덤하게 변하게 된다. 그러므로 본 발명에 따른 방법은 A-DPA에 안전하다.In the case of Address-DPA (A-DPA), toh-Izu-Takenaka stated that the countermeasure in the form of randomizing a secret key is safe for A-DPA. The random key randomization method randomly changes the representation of the secret key each time a scalar multiplication occurs, so the address of the register also changes randomly. The method according to the invention is therefore safe for A-DPA.

도 4는 본 발명에 따른 타원곡선 암호화 방법과 종래의 타원곡선 암호화 방법에 대한 안정성을 비교한 표로서, SPA, DPA, Second-Order DPA 및 Address-DPA에 대한 안전성을 보여준다. 도 4에서, "Proposed"로 표기한 항목이 본 발명에 따른 타원곡선 암호화 방법을 나타낸다4 is a table comparing the stability of the elliptic curve encryption method and the conventional elliptic curve encryption method according to the present invention, showing the safety for SPA, DPA, Second-Order DPA and Address-DPA. In FIG. 4, an item labeled "Proposed" indicates an elliptic curve encryption method according to the present invention.

도 5는 본 발명에 따른 타원곡선 암호화 방법과 종래의 타원곡선 암호화 방 법에 대한 효율성과 저장공간을 비교한 표이다. 스칼라 곱셈의 연산량은 각각 ECDBL과 ECADD의 수에 의해서 평가된다. 그리고 저장공간의 수는 테이블에 저장되는 점의 개수로 평가한다. 도 5에서, ECDBL과 ECADD의 수는 테이블을 만들 때 요구되는 연산량은 포함되어 있지 않고 스칼라 곱셈을 수행할 때 필요한 연산량을 나타낸다. 본 발명에 따른 방법은, Moller 방법과 Okeya-Takagi 방법보다 더 많은 ECADD 연산을 요구함을 도 5에서 보여주기 때문에, 본 발명에 따른 방법의 연산속도가 Moller 방법과 Okeya-Takagi 방법의 연산속도보다 더 느린 것처럼 보인다. 그러나 실제로 Second-Order DPA를 막기 위하여 대응방법을 추가되면, 본 발명에 따른 방법이 더 효율적임을 보일 것이다.5 is a table comparing the efficiency and storage space for the elliptic curve encryption method according to the present invention and the conventional elliptic curve encryption method. The amount of scalar multiplication is evaluated by the number of ECDBL and ECADD, respectively. The number of storage spaces is evaluated by the number of points stored in the table. In FIG. 5, the number of ECDBL and ECADD does not include the amount of calculation required when creating the table, and indicates the amount of calculation required when performing scalar multiplication. Since the method according to the invention shows in Fig. 5 that it requires more ECADD operations than the Moller method and the Okeya-Takagi method, the calculation speed of the method according to the invention is higher than that of the Moller method and the Okeya-Takagi method. Seems slow However, if a countermeasure is added to actually prevent Second-Order DPA, the method according to the present invention will be shown to be more efficient.

Moller의 대응방법과 Okeya-Takagi의 대응방법은 모두 SPA를 막기 위해서 제안된 알고리즘이기 때문에 DPA와 Second-Order DPA에 안전하지 못하다. 그러므로 이 대응방법들은 DPA를 막기 위하여 랜덤 사영좌표계 또는 랜덤 타원곡선 동형사상등의 DPA 대응방법을 함께 사용해야 하고 Second-Order DPA를 막기 위하여 ECADD 연산을 수행할 때마다 테이블을 랜덤화하는 방법을 사용해야 한다. 예를 들면 Jacobian 좌표계에서 테이블을 랜덤화하기 위하여 ECADD 과정마다연산을 수행해야 한다. 즉 ECADD을 수행할 때마다 4 번의 유한체 곱셈과 1번의 유한체 제곱 연산이 추가적으로 요구된다. Moller's countermeasures and Okeya-Takagi's countermeasures are not safe for DPA and Second-Order DPA because they are both proposed algorithms to prevent SPA. Therefore, these countermeasures should use DPA countermeasures such as random projection coordinate system or random elliptic curve isomorphism to prevent DPA, and randomize the table every time ECADD operation is performed to prevent Second-Order DPA. . For example, to randomize a table in the Jacobian coordinate system, an operation must be performed for each ECADD process. That is, four finite field multiplications and one finite field square operation are additionally required for each ECADD.

도 6은 본 발명에 따른 타원곡선 암호화 방법과 종래의 타원곡선 암호화 방법에 대하여 부채널 공격에 안전한 대응방법들의 안전성, 효율성과 저장공간을 비교한 표이다, 도 6에서는, 모든 대응방법들이 SPA, DPA 및 Second-Order DPA에 모 두 안전하게 구성되었을 때, 160 비트 스칼라와 윈도우가 4이고 제안 알고리즘에서 인 경우에 대한 연산량과 저장공간을 보여준다. 도 6에서, Additional Mul.은 Jacobian 좌표계에서 ECADD 연산 전 (r3X, r3Y, rZ)에을 수행할 때 필요한 연산량이다. Address-DPA 가 제안한 레지스터의 주소를 랜덤화하는 방법에 의해서 추가적인 연산 없이 쉽게 막을 수 있다.6 is a table comparing safety, efficiency, and storage space of countermeasures that are safe against subchannel attacks with respect to the elliptic curve encryption method and the conventional elliptic curve encryption method according to the present invention. In FIG. When both DPA and Second-Order DPA are configured securely, they show the amount of computation and storage for the 160-bit scalar and window 4 and in the proposed algorithm. In FIG. 6, Additional Mul. Is an amount of computation required when performing (ADD 3 r, R 3 Y, rZ) before the ECADD operation in the Jacobian coordinate system. By randomizing the address of the register proposed by Address-DPA, it can be easily prevented without any additional operation.

도 7은 사영좌표계가 변현된 Jacobian 좌표계에서 대응방법들의 연산량을 비교한 표이다. 도 7에서는. SPA, DPA 및 Second-Order DPA를 모두 막는 대응방법에 대하여 160 비트 스칼라와 윈도우가 4이고 h = 1 인 경우에 GF(p) 에서 정의되는 여러 좌표계에서의 연산량을 보여준다. 7 is a table comparing the calculation amounts of the corresponding methods in the Jacobian coordinate system transformed by the projection coordinate system. In FIG. For the countermeasures against SPA, DPA, and Second-Order DPA, the 160-bit scalar and the window with 4 and h = 1 show the amount of computation in the various coordinate systems defined in GF (p).

GF(p)에서 제곱연산량은 일반적으로 곱셈연산량의 80% 정도 소비된다(S=0.8M). 본 발명에 따른 타원곡선 암호화 방법은 ECADD를 계산할 때로 놓고 계산할 수 있어 연산이 효율적임을 알 수 있다. 더욱이 본 발명에 따른 타원곡선 암호화 방법은 좌표계의 선택이 자유롭지만 Moller 방법과 Okeya-Takagi 방법은 그렇지 못하다. Moller 방법과 Okeya-Takagi 방법이 Jacobian Chundonovsky 좌표계에서 ECADD 연산을 수행한다면 Second-Order DPA를 막기 위하여 다섯 개의 좌표를 랜덤화해야 하므로 연산량이 늘어나게 된다. 따라서, 본 발명에 따른 방법은, ECADD와 ECDBL 연산에 대하여 각각의 연산이 효율적인 좌표를 자유롭게 선택하여 연산의 효율성을 높일 수 있다. In GF (p), the squared amount is generally consumed by 80% of the multiply amount (S = 0.8M). The elliptic curve encryption method according to the present invention can be calculated when the ECADD is calculated, it can be seen that the operation is efficient. Moreover, in the elliptic curve encryption method according to the present invention, the selection of the coordinate system is free, but the Moller method and the Okeya-Takagi method are not. If the Moller method and the Okeya-Takagi method perform ECADD operation on Jacobian Chundonovsky coordinate system, five coordinates need to be randomized to prevent Second-Order DPA. Accordingly, the method according to the present invention can freely select coordinates that are effective for each operation for ECADD and ECDBL operations, thereby increasing the efficiency of the operation.

한편, 본 발명에 따른 타원곡선 암호화 방법은, 컴퓨터 판독 가능한 매체에 컴퓨터가 실행할 수 있는 코드로서 구현하는 것도 가능하다. 컴퓨터 판독 가능한 매체는 컴퓨터 시스템에 의해 읽을 수 있는 모든 종류의 매체를 포함하며, 그 예로서 ROM, RAM, CD-ROM, 자기 테이프, 플로피 디스크, 광디스크 등이 있다. On the other hand, the elliptic curve encryption method according to the present invention can also be embodied as computer executable code on a computer-readable medium. Computer readable media includes all kinds of media readable by a computer system, and examples thereof include ROM, RAM, CD-ROM, magnetic tape, floppy disk, optical disk, and the like.

이상 설명한 바와 같이, 본 발명에 따르면, 중첩 윈도우 방법에 w-NAF 방법을 적용함으로써 기존의 부채널 공격에 안전하면서 저장공간을 줄이고 연산의 효율성을 향상시킬 수 있다. 또한, 효율성을 높이기 위하여 혼합좌표계를 이용하면, 종래의 방법들은 좌표계에 따라서 추가적인 연산이 요구되지만, 본 발명에 따른 암호화 방법은 추가적인 연산 없이 자유롭게 좌표계를 선택함으로써 효율성을 높일 수 있다. 따라서, 본 발명에 따른 타원곡선 암호화 방법은 기존의 부채널 공격에 안전하면서 적은 저장공간을 이용하여 효율적인 연산을 할 수 있다.As described above, according to the present invention, by applying the w- NAF method to the overlapping window method, it is possible to reduce the storage space and improve the efficiency of the operation while being safe against the existing side channel attack. In addition, if a mixed coordinate system is used to increase the efficiency, the conventional methods require additional calculation according to the coordinate system, but the encryption method according to the present invention can increase the efficiency by freely selecting the coordinate system without additional calculation. Therefore, the elliptic curve encryption method according to the present invention can be efficiently operated using a small storage space while safe for the existing sub-channel attack.

또한, 이상에서는 본 발명의 바람직한 실시예에 대하여 도시하고 설명하였지만, 본 발명은 상술한 특정의 실시예에 한정되지 아니하며, 청구범위에서 청구하는 본 발명의 요지를 벗어남이 없이 당해 발명이 속하는 기술분야에서 통상의 지식을 가진자에 의해 다양한 변형실시가 가능한 것은 물론이고, 이러한 변형실시들은 본 발명의 기술적 사상이나 전망으로부터 개별적으로 이해되어져서는 안될 것이다.In addition, although the preferred embodiment of the present invention has been shown and described above, the present invention is not limited to the specific embodiments described above, but the technical field to which the invention belongs without departing from the spirit of the invention claimed in the claims. Of course, various modifications can be made by those skilled in the art, and these modifications should not be individually understood from the technical spirit or the prospect of the present invention.

Claims (8)

타원곡선 상의 한점 P와 Q=dP를 연산하기 위한 상기 d를 비밀키로 이용하는 타원곡선 암호화방법에 있어서,In the elliptic curve encryption method using the d as a secret key for calculating a point P on the elliptic curve and Q = dP, 중첩된 윈도우별로 홀수 정수인 랜덤값을 각각 선택하는 단계;Selecting random values of odd integers for each overlapping window; 상기 각 윈도우별로 선택된 상기 랜덤값에 따라, 상기 비밀키 d와 동일한 값을 갖는 복수개의 부호화된 이진수 중에서 선택된 부호화된 수열을 각각 생성하는 단계; 및 Generating an encoded sequence selected from a plurality of encoded binary numbers having the same value as the secret key d according to the random value selected for each window; And 생성된 상기 수열 및 상기 P를 이용한 스칼라 곱셈을 수행하여, 상기 Q를 발생하는 단계;를 포함하는 것을 특징으로 하는 타원곡선 암호화 방법.And performing the scalar multiplication using the generated sequence and the P, and generating the Q. 11. 제 1항에 있어서,The method of claim 1, 상기 랜덤값은 다음의 수식에 의해 산출되는 것을 특징으로 하는 타원곡선 암호화 방법:The random value is an elliptic curve encryption method characterized in that it is calculated by the following formula:
Figure 112004059306203-pat00031
Figure 112004059306203-pat00031
여기서, u[i]는 상기 랜덤값, w는 상기 윈도우 크기, h는 상기 윈도우의 중첩된 길이, t는 상기 비밀키의 길이, dt = bit(d,t-1,… t-w) 이다.Where u [i] is the random value, w is the window size, h is the overlapped length of the window, t is the length of the secret key, and dt = bit (d, t-1, ... t-w).
제 2항에 있어서,The method of claim 2, 상기 비밀키의 길이는 다음의 식에 의해 산출되는 것을 특징으로 하는 타원곡선 암호화 방법:The length of the secret key is an elliptic curve encryption method characterized by the following equation:
Figure 112006052416233-pat00061
Figure 112006052416233-pat00061
여기서, t는 상기 비밀키의 길이, s는 상기 윈도우의 개수, h는 상기 윈도우의 중첩된 길이, w는 상기 윈도우의 크기를 나타낸다.Where t is the length of the secret key, s is the number of windows, h is the overlapping length of the window, and w is the size of the window.
제 3항에 있어서, The method of claim 3, wherein 상기 h는 고정된 값을 사용하는 것을 특징으로 하는 타원곡선 암호화 방법.The h is an elliptic curve encryption method, characterized in that using a fixed value. 타원곡선 상의 한점 P와 Q=dP를 연산하기 위한 상기 d를 비밀키로 이용하는 타원곡선 암호화 시스템에 있어서,In the elliptic curve encryption system using the d as a secret key for calculating a point P on the elliptic curve and Q = dP, 중첩된 윈도우별로 홀수 정수인 랜덤값을 각각 선택하는 수단;Means for selecting a random value of an odd integer for each overlapped window; 상기 각 윈도우별로 선택된 상기 랜덤값에 따라, 상기 비밀키 d와 동일한 값을 갖는 복수개의 부호화된 이진수 중에서 선택된 부호화된 수열을 각각 생성하는 수단; 및 Means for generating an encoded sequence selected from a plurality of encoded binary numbers each having the same value as the secret key d, according to the random value selected for each window; And 생성된 상기 수열 및 상기 P를 이용한 스칼라 곱셈을 수행하여, 상기 Q를 발생하는 수단;을 포함하는 것을 특징으로 하는 타원곡선 암호화 시스템.And means for generating the Q by performing a scalar multiplication using the generated sequence and the P. 11. 제 5항에 있어서,The method of claim 5, 상기 랜덤값은 다음의 수식에 의해 산출되는 것을 특징으로 하는 타원곡선 암호화 시스템:Elliptic curve encryption system, characterized in that the random value is calculated by the following formula:
Figure 112004059306203-pat00033
Figure 112004059306203-pat00033
여기서, u[i]는 상기 랜덤값, w는 상기 윈도우 크기, h는 상기 윈도우의 중첩된 길이, t는 상기 비밀키의 길이, dt = bit(d,t-1,… t-w) 이다.Where u [i] is the random value, w is the window size, h is the overlapped length of the window, t is the length of the secret key, and dt = bit (d, t-1, ... t-w).
제 6항에 있어서,The method of claim 6, 상기 비밀키의 길이는 다음의 식에 의해 산출되는 것을 특징으로 하는 타원곡선 암호화 시스템:The length of the secret key is an elliptic curve encryption system, characterized by the following equation:
Figure 112006052416233-pat00062
Figure 112006052416233-pat00062
여기서, t는 상기 비밀키의 길이, s는 상기 윈도우의 개수, h는 상기 윈도우의 중첩된 길이, w는 상기 윈도우의 크기를 나타낸다.Where t is the length of the secret key, s is the number of windows, h is the overlapping length of the window, and w is the size of the window.
제 7항에 있어서, The method of claim 7, wherein 상기 h는 고정된 값을 사용하는 것을 특징으로 하는 타원곡선 암호화 시스템.The h is an elliptic curve encryption system, characterized in that using a fixed value.
KR1020040106794A 2004-12-16 2004-12-16 Method for elliptic curve cryptography for preventing side channel attack and system thereof KR100657401B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020040106794A KR100657401B1 (en) 2004-12-16 2004-12-16 Method for elliptic curve cryptography for preventing side channel attack and system thereof

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020040106794A KR100657401B1 (en) 2004-12-16 2004-12-16 Method for elliptic curve cryptography for preventing side channel attack and system thereof

Publications (2)

Publication Number Publication Date
KR20060068177A KR20060068177A (en) 2006-06-21
KR100657401B1 true KR100657401B1 (en) 2006-12-14

Family

ID=37162520

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020040106794A KR100657401B1 (en) 2004-12-16 2004-12-16 Method for elliptic curve cryptography for preventing side channel attack and system thereof

Country Status (1)

Country Link
KR (1) KR100657401B1 (en)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101527867B1 (en) 2007-07-11 2015-06-10 삼성전자주식회사 Method of countering side-channel attacks in elliptic curve cryptosystem
KR101019242B1 (en) * 2009-02-27 2011-03-04 고려대학교 산학협력단 Method for scalar multiplication using extended montgomery ladder
KR20120070873A (en) 2010-12-22 2012-07-02 한국전자통신연구원 Subchannel prevention masked addition operator
CN103942031B (en) * 2014-04-28 2017-07-04 山东华芯半导体有限公司 Elliptic domain curve operations method
KR20180067963A (en) 2016-12-13 2018-06-21 고려대학교 산학협력단 Method and apparatus for balance encoding safe from subchannel analysis

Also Published As

Publication number Publication date
KR20060068177A (en) 2006-06-21

Similar Documents

Publication Publication Date Title
Galbraith Elliptic curve Paillier schemes
KR101255393B1 (en) Elliptic curve point multiplication
KR100530372B1 (en) Cryptographic method capable of protecting elliptic curve code from side channel attacks
US7961874B2 (en) XZ-elliptic curve cryptography with secret key embedding
US8280039B2 (en) Signature generating device, signature generating method and signature generating program
US7853013B2 (en) Cryptographic method and system for encrypting input data
Itoh et al. DPA countermeasures by improving the window method
US8817973B2 (en) Encrypting method having countermeasure function against power analyzing attacks
US6914986B2 (en) Countermeasure method in an electronic component using a public key cryptography algorithm on an elliptic curve
US7286666B1 (en) Countermeasure method in an electric component implementing an elliptical curve type public key cryptography algorithm
Okeya et al. A more flexible countermeasure against side channel attacks using window method
KR101506499B1 (en) Method for encrypting with SEED applying mask
KR100657401B1 (en) Method for elliptic curve cryptography for preventing side channel attack and system thereof
Abarzúa et al. Survey on performance and security problems of countermeasures for passive side-channel attacks on ECC
Fouque et al. Defeating countermeasures based on randomized BSD representations
Thériault SPA resistant left-to-right integer recodings
Sakalauskas et al. Matrix power s-box construction
KR100723863B1 (en) Methhod for protecting DPA using randomized Frobenius decompositions and apparatus thereof
Young et al. Backdoor attacks on black-box ciphers exploiting low-entropy plaintexts
KR100564599B1 (en) Inverse calculation circuit, inverse calculation method, and storage medium encoded with computer-readable computer program code
Nykolaychuk et al. Residue Number System Asymmetric Cryptoalgorithms
Kovalenko et al. Asymmetric cryptographic algorithms
Méloni et al. Random digit representation of integers
Yen et al. Improvement on Ha-Moon randomized exponentiation algorithm
Nedjah et al. Parallel computation of modular exponentiation for fast cryptography

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: 20121004

Year of fee payment: 7

FPAY Annual fee payment

Payment date: 20130717

Year of fee payment: 8

LAPS Lapse due to unpaid annual fee