KR101154695B1 - 암호 처리 연산 장치 - Google Patents

암호 처리 연산 장치 Download PDF

Info

Publication number
KR101154695B1
KR101154695B1 KR1020077008858A KR20077008858A KR101154695B1 KR 101154695 B1 KR101154695 B1 KR 101154695B1 KR 1020077008858 A KR1020077008858 A KR 1020077008858A KR 20077008858 A KR20077008858 A KR 20077008858A KR 101154695 B1 KR101154695 B1 KR 101154695B1
Authority
KR
South Korea
Prior art keywords
factor
data
processing
degenerate
base point
Prior art date
Application number
KR1020077008858A
Other languages
English (en)
Other versions
KR20070085269A (ko
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 소니 주식회사
Publication of KR20070085269A publication Critical patent/KR20070085269A/ko
Application granted granted Critical
Publication of KR101154695B1 publication Critical patent/KR101154695B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/60Methods or arrangements for performing computations using a digital non-denominational number representation, i.e. number representation without radix; Computing devices using combinations of denominational and non-denominational quantity representations, e.g. using difunction pulse trains, STEELE computers, phase computers
    • G06F7/72Methods or arrangements for performing computations using a digital non-denominational number representation, i.e. number representation without radix; Computing devices using combinations of denominational and non-denominational quantity representations, e.g. using difunction pulse trains, STEELE computers, phase computers using residue arithmetic
    • G06F7/724Finite field arithmetic
    • G06F7/725Finite field arithmetic over elliptic curves
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09CCIPHERING OR DECIPHERING APPARATUS FOR CRYPTOGRAPHIC OR OTHER PURPOSES INVOLVING THE NEED FOR SECRECY
    • G09C1/00Apparatus or methods whereby a given sequence of signs, e.g. an intelligible text, is transformed into an unintelligible sequence of signs by transposing the signs or groups of signs or by replacing them by others according to a predetermined system
    • G09C1/02Apparatus or methods whereby a given sequence of signs, e.g. an intelligible text, is transformed into an unintelligible sequence of signs by transposing the signs or groups of signs or by replacing them by others according to a predetermined system by using a ciphering code in chart form
    • 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/10Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols with particular housing, physical features or manual controls
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2207/00Indexing scheme relating to methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F2207/72Indexing scheme relating to groups G06F7/72 - G06F7/729
    • G06F2207/7219Countermeasures against side channel or fault attacks
    • G06F2207/7261Uniform execution, e.g. avoiding jumps, or using formulae with the same power profile

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • Mathematical Physics (AREA)
  • General Engineering & Computer Science (AREA)
  • Computing Systems (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Complex Calculations (AREA)
  • Storage Device Security (AREA)

Abstract

초타원 암호 처리에서의 안전하고 또한 고속의 연산을 실현하는 장치 및 방법을 실현한다. 초타원곡선 암호에 의거한 스칼라배산 처리에서의 베이스 포인트(D)와, 스칼라배산의 실행 알고리즘으로서의 윈도우법에서의 사전산출 데이터를, 초타원곡선의 종수(g)(genus)보다 작은 웨이트의 인자인 퇴화인자로 하고, 윈도우법을 적용한 스칼라배산 처리에서의 가산 처리를 퇴화인자+비퇴화인자의 가산 처리에 의해 실행한다. 본 구성에 의해 고속 연산이 실현되고, 또한, 연산에서의 키 해석 등의 일체 양태인 SPA 해석 등에 대한 내성도 손상되지 않는 안전하고 고속의 연산이 실현된다.
암호 처리 연산

Description

암호 처리 연산 장치{ENCRYPTION COMPUTING DEVICE}
본 발명은, 암호 처리 연산 방법, 및 암호 처리 장치, 및 컴퓨터 프로그램에 관한 것이다. 더욱 상세하게는, 초타원곡선 암호에서의 스칼라배산(倍算)의 고속화를 실현하는 암호 처리 연산 방법, 및 암호 처리 장치, 및 컴퓨터 프로그램에 관한 것이다.
요즘, 네트워크 통신, 전자 상거래의 발전에 수반하여, 통신에서의 시큐어리티 확보가 중요한 문제로 되고 있다. 시큐어리티 확보의 하나의 방법이 암호 기술이고, 현재, 다양한 암호화 수법을 이용한 통신이 행하여지고 있다.
예를 들면 IC 카드 등의 소형의 장치중에 암호 처리 모듈을 매입하고, IC 카드와, 데이터 판독 기록 장치로서의 리더 라이터와의 사이에서 데이터 송수신을 행하고, 인증 처리, 또는 송수신 데이터의 암호화, 복호화를 행하는 시스템이 실용화되어 있다.
암호 처리를 실행하는 예를 들면 IC 카드는, 예를 들면 역의 개찰 등의 다양한 게이트, 또는 쇼핑 센터 등에서 왕성하게 이용되도록 되어 있고, 소형화 및 처리의 신속화의 요구가 엄격해지고 있다.
암호화 방식에는, 대별하여 공통키 방식, 공개키 방식이 있다. 공통키 방식 은, 대칭 암호 방식이라고도 불리고, 발신자, 수신자의 쌍방에서 공통의 키를 보유한다. 공통키 방식의 대표적인 방법으로서, DES(Data Encryption Standard)가 있다. DES 알고리즘의 특징은, 암호화와 복호화를 거의 같은 알고리즘으로 실행 가능한 것이다.
이 공통키 암호에 대해, 발신자와 수신자의 키를 다른 것으로 한 구성이 공개키 방식 또는 비대칭 암호 방식이다. 공개키 암호 방식에서는, 암호화, 복호화에 공통의 키를 이용하는 공통키 암호 방식과 달리, 비밀로 보존할 필요가 있는 비밀키는, 특정한 1인이 갖으면 좋기 때문에 키의 관리에 있어서 유리하다. 단, 공개키 암호 방식은 공통키 암호 방식에 비교하여 데이터 처리 속도가 느리고, 일반적으로는, 비밀키의 배송, 디지털 서명 등의 데이터량이 적은 대상에 많이 이용되고 있다. 공개키 암호 방식의 대표적인 것으로는 RSA(Rivest-Shamir-Adleman) 암호나, 타원곡선 암호(ECC : Elliptic Curve Cryptography)가 알려져 있다.
타원곡선 암호(Elliptic Curve Cryptography)는, 소체(素體)상의 타원곡선 y2=x3+ax+b(4a3+27b2≠0)나, 2의 확대체(擴大體)상의 타원곡선 y2+xy=x3+ax2+b(b≠0) 등을 이용한다. 이들의 곡선상의 점에 무한원점(O)을 가한 집합은, 가법(加法)에 관해 유한군(有限群)을 이루고, 무한원점(O)은 그 단위원이 된다. 이하, 이 유한군상의 점의 가법을 +로 표시한다. 이 유한군상의 다른 2점(P, Q)의 가산(加算)(P+Q)을 「점의 가산」, 점(P)과 점(P)의 가산(P+P)=2P를 「점의 2배산」이라고 부른다. 또한, 점(P)을 k회 가산한 점(P+P+…+P)=kP를 구하는 연산을 「점의 스칼라배산」 이라고 부른다.
점의 스칼라배산은, 점의 가산, 및 점의 2배산을 이용하여 구성할 수 있는 것이 알려져 있다. 소체상의 타원곡선이나 2의 확대체상의 타원곡선상의 아핀 좌표계(x, y)나 사영 좌표(X, Y, Z)에 있어서의 점의 가산법, 점의 2배산법, 및 점의 스칼라배산법은, IEEE P1363/D13 Standard Specifications for Public Key Cryptography에 기록되어 있다.
타원곡선 암호를 일반화한 방식으로서, Koblitz, Cantor에 의해 제안된 초타원곡선 암호(HECC : Hyper Elliptic Curve Cryptography) 방식이 있다. 초타원곡선 암호 방식에 관해서는, 예를 들면 비특허 문헌 1, 비특허 문헌 2에 기재되어 있다.
타원곡선 암호에서는 유한체(Fq)상에서 정의되는 타원곡선상의 점을 P로 하고, 스칼라배산한 점(kP)(k∈Z)을 Q라고 하면, Q로부터 k를 구하는 문제는 이산대수(離散對數) 문제로 귀착할 수 있다. 한편, 초타원곡선 암호에서는 점의 형식적 합인 인자(divisor)를 D1로 하고, 스칼라배산(kD1)으로 정의되는 인자를 D2라고 하면, D2로부터 k를 구하는 문제는 초타원곡선에서의 야코비 다양체(多樣體)상의 이산대수 문제로서 공개키 암호로서 이용할 수 있다.
초타원곡선에서는 곡선을 특징짓는 값은 종수(種數)(genus)(g)이다. p를 소수(素數), n를 정(正)의 정수, q=pn이라고 한다. 이때 유한체(Fq)상에서 정의되는 종수(g)인 초타원곡선(C)은 이하의 방정식,
y2+h(x)y=f(x)
로 정의된다. 여기서, h(x), f(x)∈Fq[x], f(x)는, 차수(次數) 2g+1의 monic 다항식이다.
초타원곡선(C)상의 점(P)=(x, y)에 대해 opposite인 점(-P)은 (x, y+h(x))로서 정의된다. P=-P인 점을 분기점(ramification point)이라고 부른다.
초타원곡선 암호의 정의체(定義體)의 연산 사이즈(비트 길이)는 타원곡선 암호와 동등한 안전성을 가정한 경우, 타원곡선의 정의체의 연산 사이즈에 비하여 1/g로 작아지는 것이 알려져 있다. 연산 사이즈가 작은 것은 실장(實裝)상 메리트가 있고, 초타원곡선 암호의 이점의 하나로서 들 수 있다.
다음에, 초타원곡선 암호의 기본 사항에 관해 설명한다. 전술한 바와 같이, 초타원곡선 암호에서는 점의 형식적 합인 인자(divisor)를 D1으로 하고, 스칼라배산(kD1) 에서 정의되는 인자를 D2라고 하면, D2로부터 k를 구하는 문제는 초타원곡선에서의 야코비 다양체상의 이산대수 문제로서 공개키 암호로서 이용할 수 있다.
여기서, 인자(divisor)는 이하의 형식으로 표현할 수 있다.
[수식 1]
Figure 112007029603540-pct00001
단 Pi=(xi, yi)이면서 i≠j에 대해 Pi≠Pj이다. 이 형식의 인자의 표현을 반(半)피약인자(被約因子)(semi reduced divisor)라고 부른다.
또한, Σmi를 D의 웨이트(weight)라고 부른다. 또한 웨이트(weight)가 종수(g) 이하인 반피약인자를 피약인자(reduced divisor)라고 부른다.
초타원곡선의 야코비(Jacobi) 다양체상의 임의의 반피약인자(D)는 하기한 다항식 U, V∈Fq[x]를 이용하여 D=(U, V)로서 표현할 수 있다. 이것을 멈포드(Mumford) 표현이라고 부르다. 그리고, 멈포드(Mumford) 표현에 관해서는, 예를 들면 비특허 문헌 3에 기재되어 있다.
[수식 2]
Figure 112007029603540-pct00002
종수(genus) 2의 임의의 피약인자(D)는 멈포드(Mumford) 표현을 이용하면, 유한체(Fq)상의 원(元)을 계수로 갖는 2차(次) 이하의 다항식의 조(組), 즉,
(U, V)=(x2+u1x+u0, v1x+v0)
로 하여 표현할 수 있다.
또한, 종수(genus) 3의 임의의 피약인자(D)는 멈포드(Mumford) 표현을 이용하면 유한체(Fq)상의 원을 계수로 갖는 3차 이하의 다항식의 조, 즉,
(U, V)=(x3+u2x2+u1x+u0, v2x2+v1x+v0)
로 하여 표현할 수 있다.
또한, 이하, 본 명세서에 있어서, 인자(D)는, 특히 거절이 없는 한 피약인자(reduced divisor)인 것으로 한다. 즉, 웨이트(weight)가 종수(g) 이하인 반피약인자로서의 피약인자(reduced divisor)인 것으로 한다.
또한, 피약인자(reduced divisor)중, 웨이트(weight)가 종수(g)와 동등한 것을 제외한 인자, 즉, 피약인자(reduced divisor)중, 웨이트(weight)가 종수(g)보다 작은 인자를 퇴화인자退化(因子)(degenerate divisor)라고 부르기로 한다.
예를 들면,
종수(g)=2인 경우, 퇴화인자는 웨이트(weight)=1인 인자,
종수(g)=3인 경우, 퇴화인자는 웨이트(weight)=1, 2인 인자,
가 된다.
종수(g)=2인 경우와, 종수(g)=3인 경우에 있어서, 퇴화인자(degenerate divisor)를 멈포드(Mumford) 표현을 이용하여 표시하면, 이하와 같이 표시된다.
(ㄱ) 종수(2)인 퇴화인자 (weight 1) : (U, V)=(x+u, v)
(ㄴ) 종수(3)인 퇴화인자 (weight 1) : (U, V)=(x+u0, v0)
(ㄷ) 종수(3)인 퇴화인자(weight 2) : (U, V)=(x2+u1x+u0, v1x+v0)
다음에, 초타원곡선 암호에서 이용되는 인자의 스칼라배산에 관해 설명한다. 인자의 스칼라배산은 가산 알고리즘이라고 불리는 인자의 가산과 2배산 조합으로 계산할 수 있다. 이하에서는 주요한 가산 알고리즘에 관해 설명한다.
최초에 제안된 실용적인 알고리즘은 Cantor의 알고리즘이다. 이 알고리즘에 관해서는, 예를 들면 비특허 문헌 1, 비특허 문헌 2에 기재되어 있다. 이 알고리즘은 모든 종수의 초타원곡선상의 인자에 대해 적용 가능한 알고리즘이지만, 타원곡선에 비하여 알고리즘이 복잡하고 계산량이 많은 것이 결점이다.
Harley는 종수(2)인 초타원곡선으로 한정하고, 인자의 weight의 경우 분류를 행하고, 각각의 경우에서 최적화를 행함으로써 보다 계산량이 적은 알고리즘을 제안하였다. 이 연구를 받아서 초타원곡선 암호(HECC)에서의 연산 알고리즘의 개량, 확장의 연구가 근래 왕성하게 되고 있다.
Harley의 알고리즘은 정의체를 소체, 종수(2)인 곡선, 인자의 표현은 Mumford 표현을 이용하고 있다. 이 알고리즘의 계산량의 개선의 연구예로서, 예를 들면, 비특허 문헌 4, 비특허 문헌 5, 비특허 문헌 6 등을 들 수 있다. 또한, 정의체를 2의 확대체인 경우에 관해 확장한 처리예에 관해, 비특허 문헌 7, 비특허 문헌 8에 보고되어 있다. 또한, 종수가 3인 경우의 Harley의 알고리즘에의 확장 처리에 관해서는, 비특허 문헌 9, 비특허 문헌 10에 보고되어 있다. 또한, 인자의 표현에 확장 Mumford 표현, Weighted Coordinate를 이용함으로써 계산량을 삭감한 연구로서 비특허 문헌 11, 비특허 문헌 12, 비특허 문헌 6, 비특허 문헌 13이 있다.
Harley 알고리즘의 처리에 관해, 도 1 및 도 2를 참조하여 설명한다. 도 1(A)는, 종수(2)인 경우의 인자의 가산(D1+D2)의 처리예를 도시한 도면이다. 또한, 인자(D1, D2)는, 각각 D1=(U1, V1), D2=(U2, V2)로 한다. 우선, 인자의 웨이트(weight)의 값에 의해 경우 분류가 행하여진다. 즉, [D1+D2]의 각 웨이트(weight) 의 값에 의해,
(1) weight 2+weight 2
(2) weight 2+weight 1
(3) 예외처리 1
의 경우 분류가 행하여진다.
다음에 weight 2끼리의 가산, 즉 (1) weight 2+weight 2인 경우, 인자(D1=(U1, V1), D2=(U2, V2))에 관해, 최대 공약수(gcd(U1, U2))=1이면, 2개의 인자(D1=(U1, V1), D2=(U2, V2))는, 서로 동일 또는 오포지트(opposite)한 점을 포함하지 않는다. 이 경우,
(1a) HarleyADD,
즉 할리 알고리줌에 따른 가산 처리를 행한다. (1a) HarleyADD의 처리는 예를 들면 비특허 문헌 7에 나타나 있는 Most Frequent Case라고 불리는 처리이다. 이 Most Frequent Case는, 종수(2)인 경우의 인자의 가산(D1+D2) 처리에 있어서, 고(高)확률로 발생하는 케이스이다.
종수(2)인 가산 처리에서의 Most Frequent Case로 실행하는 HarleyADD의 처리를, 이하의 테이블 1[Table 1]에 표시한다.
[수식 3]
Figure 112007029603540-pct00003
이 (1a) HarleyADD의 처리는, 매우 높은 확률로 일어난다. 그 밖의 예외처리가 일어나는 확률은 매우 낮다. Most Frequent Case의 조건을 충족시키지 않는 경우, 즉, 인자(D1=(U1, V1), D2=(U2, V2))에 관해, 최대 공약수(gcd(U1, U2))=1을 만족하지 않는 경우는,
(1b) 예외처리 2를 행한다.
(2) weight 2+weight 1인 경우에 관해서도 마찬가지로, gcd(U1, U2)=1인지의 여부를 체크하고, gcd(U1, U2)=1을 만족하는 경우에는,
(2a) ExHarADD2 +1→2를 실행하고,
gcd(U1, U2)=1을 만족하지 않는 경우에는,
(2b) 예외처리 3을 행한다.
(2a) ExHarADD2 +1→2의 알고리즘은 비특허 문헌 8에 나타나 있다. ExHarADD2 +1→2의 처리를, 이하의 테이블 3[Table 3]에 표시한다.
[수식 4]
Figure 112007029603540-pct00004
(3) 예외처리 1은, weight의 경우 분류가 상기 (1), (2) 이외인 경우이다.
종수(2)인 경우의 2배산의 흐름을 도 1(B)에 도시한다. 2배산은, D+D=2D의 처리이다. 가산의 경우와 마찬가지로 인자(D)의 weight가
(4) weight 2,
(5) weight 1,
(6) weight0,
에 의해 각각 다른 처리를 행한다.
(4) weight 2인 경우, 인자가 분기점을 포함하는지의 여부를 체크하고, 포함하지 않으면, (4a) HarleyDBL의 처리를 행한다. 인자가 분기점을 포함하는 경우는 (4b) 예외처리 6을 행한다.
(4a) HarleyDBL의 처리 알고리즘은 예를 들면 비특허 문헌 7에 Most Frequent Case로서 나타나 있다. HarleyDBL의 처리 알고리즘을, 이하의 테이블 2[Table 2]에 표시한다.
[수식 5]
Figure 112007029603540-pct00005
다음에, 종수(3)인 경우에 있어서의 가산, 2배산에 관해, 도 2를 참조하여 설명한다. 종수(3)에서도, 종수(2)인 경우와 기본적인 사고방식은 같지만, 종수(3)인 경우, 인자의 최대의 weight가 3으로 되기 때문에, 경우 분류의 수는 종수(2)에 비하여 매우 많아지는 것이 특징이다.
도 2(A) 가산에 있어서의, 인자(D1, D2)는, 각각 D1=(U1, V1), D2=(U2, V2)라고 한다. 우선, 인자의 웨이트(weight)의 값에 의해 경우 분류가 행하여진다. 즉, [D1+D2]의 각 웨이트(weight)의 값에 의해,
(1) weight3+weight3
(2) weight3+weight2
(3) weight3+weight1
(4) 예외처리 7
의 경우 분류가 행하여진다.
또한, (1) weight3+weight3인 경우에 있어서, 인자(D1=(U1, V1), D2=(U2, V2))에 관해, 최대 공약수(gcd(U1, U2))=1을 만족하는 경우는,
(1a) HarleyADD
를 실행한다. 이것이 종수(3)인 가산 처리에서의 가장 고확률로 발생하는 케이스, 즉, Most Frequent Case이다.
종수(3)인 가산 처리에서의 Most Frequent Case로서의 HarleyADD는 예를 들면 비특허 문헌 9, 10에 나타나 있다. 종수(3)인 가산 처리에서의 Most Frequent Case로서의 HarleyADD의 알고리즘을 이하의 테이블[Table 4]에 표시한다.
[수식 6]
Figure 112007029603540-pct00006
마찬가지로, (2) weight3+weight 2인 경우에 있어서, 인자(D1=(U1, V1), D2=(U2, V2))에 관해, 최대 공약수(gcd(U1, U2))=1을 만족하는 경우는,
(2a) ExHarADD3 +2→3,
를 실행한다.
최대 공약수(gcd(U1, U2))=1을 만족하지 않는 경우는,
(2b) 예외처리 9
를 실행한다.
마찬가지로, (3) weight3+weight 1인 경우에 있어서, 인자(D1=(U1, V1), D2=(U2, V2))에 관해, 최대 공약수(gcd(U1, U2))=1을 만족하는 경우는,
(3a) ExHarADD3 +1→3,
를 실행한다.
최대 공약수(gcd(U1, U2))=1을 만족하지 않는 경우는,
(3b) 예외처리 10
을 실행한다.
각각의 알고리즘은 문헌 등에 명시적으로 나타나 있지 않기 때문에, 정의체가 F2n인 경우의 공식을 유도하였다. 그 결과로서의 ExHarADD3 +1→3, 및 ExHarADD3 +2→3의 알고리즘을, 이하의 테이블[Table 6], [Table 7]에 표시한다.
[수식 7]
Figure 112007029603540-pct00007
[수식 8]
Figure 112007029603540-pct00008
종수(3)인 경우의 2배산의 흐름을 도 2(B)에 도시한다. 2배산은, D+D=2D의 처리이다. 가산의 경우와 마찬가지로 인자(D)의 weight가
(4) weight3,
(5) weight 2,
(6) weight 1,
(7) weight0,
에 의해 각각 다른 처리를 행한다.
(4) weight3인 경우, 인자가 분기점을 포함하는지의 여부를 체크하고, 포함하지 않으면, (4a) HarleyDBL의 처리를 행한다. 인자가 분기점을 포함하는 경우는 (4b) 예외처리 11을 행한다.
(4a) HarleyDBL의 처리 알고리즘은 예를 들면 비특허 문헌 9, 10에 Most Frequent Case로서 나타나 있다. HarleyDBL의 처리 알고리즘을, 이하의 테이블 5[Table 5]에 표시한다.
[수식 9]
Figure 112007029603540-pct00009
종수(2, 3) 모두 HarleyADD, HarleyDBL은 Most Frequent Case라고 불리고, 랜덤하게 인자를 발생시켜서 가산 또는 2배산을 행하면, 매우 높은 확률로 HarleyADD, HarleyDBL의 처리가 된다. 또한, 이 HarleyADD, HarleyDBL이, most frequent case로 되는 것의 설명은, 예를 들면 비특허 문헌 14에 설명되어 있다.
비특허 문헌 14에 의하면, 이 most frequent case 이외의 처리가 될 확률은 O(1/q)이다. 여기서 q는 정의체의 요소수(要素數)이고, 안전한 암호 용도에서는 qg가 160bit 정도 필요하게 되는 큰 수이기 때문에 현실적으로는 HarleyADD, HarleyDBL밖에 발생하지 않는 상황으로 간주할 수 있다.
따라서, 초타원곡선 암호(HECC)의 가산 알고리즘을 Harley 알고리즘 또는 그 개량 알고리즘을 사용하여, 예를 들면 IC 카드 등의 암호 처리 연산 수단으로서 실장하는 경우,
HarleyADD,
HarleyDBL
만을 실장하고, 그 밖의 확률적으로 거의 일어나지 않는 복잡한 예외처리에 관한 연산을 실행하지 않는 실장이라고 하는 경우도 많다. 이 경우, 예외처리에 관해서는, weight의 경우 분류가 필요 없는 Cantor의 알고리즘을 실행하는 구성으로 하는 등의 방법이 적용된다. 종수가 높아질수록 복잡한 예외처리의 부담은 늘어나기 때문에, 비특허 문헌 9, 10에서는 이 실장 방법에 관해 설명하고 있다.
다음에 초타원곡선 암호(HECC) 알고리즘에서의 인자의 스칼라배산에 관해 설명한다. 초타원곡선 암호(HECC) 알고리즘에 있어서, 인자의 스칼라배산은, 초타원 가산과 초타원 2배산의 조합으로 계산할 수 있다. 스칼라배산의 알고리즘으로서 기본적인 binary법과 double-and-add-always법을 예로 들어 설명한다.
전술한 바와 같이, 타원곡선 암호에서는 유한체(Fq)상에서 정의되는 타원곡선상의 점을 P로 하고, 스칼라배산한 점(kP)(k∈Z)를 Q라고 하면, Q로부터 k를 구하는 문제는 이산대수 문제로 귀착할 수 있다. 한편, 초타원곡선 암호에서는 점의 형식적 합인 인자(divisor)를 D1로 하고, 스칼라배산(kD1)에서 정의되는 인자를 D2라고 하면, D2로부터 k를 구하는 문제는 초타원곡선에서의 야코비 다양체상의 이산대수 문제로서 공개키 암호로서 이용할 수 있다.
인자(D)에 대해, 스칼라배산(D=dD)에 적용하는 승수(乘數)로서의 스칼라값 : d의 2진수의 표현을,
d=(dl-1, ……, d0),
단, dl-1=1, dl-2, …, 0=1 or 0으로 한다.
스칼라배산의 알고리즘으로서 기본적인 binary법의 연산 알고리즘[알고리즘 1]을 이하에 표시한다.
[수식 10]
Figure 112007029603540-pct00010
다음에, double-and-add-always법의 연산 알고리즘에 관해 설명한다.
암호 기술의 실장 방법의 부적합을 이용하여 비밀 정보를 아(知)는 방법을 사이드 채널 어택(Side Channel Atttack, SCA)이라고 부른다. SCA에는 비밀 정보와 상관이 있는 연산의 처리 시간을 이용하여 공격을 행하는 타이밍 어택(TA : Timing Attack)이나, 비밀 정보와 전력 소비량의 상관을 이용하여 공격을 행하는 단순 전력 해석(SPA : Simple Power Analysis)이나, 차분(差分) 전력 해석(DPA : Differential Power Analysis)이라는 전력 공격 등이 있다. 타이밍 어택(TA)에 관해서는 비특허 문헌 15, 전력 공격에 관해서는 비특허 문헌 16에 설명이 있다.
단순 전력 해석(SPA)은 비밀키의 비트 정보에 의존한 연산의 소비 전력의 파형(波形)을 직접 관측함에 의해, 비밀 정보를 분명하게 하는 실장 공격이다. 암호 처리 알고리즘의 SPA에 대한 내성을 높이기 위해서는, 예를 들면 비밀키의 비트 정보와 전력 파형의 상관을 발생시키지 않는 알고리즘으로 설정할 것이 필요해진다. 또한, 타이밍 어택(TA)에 대한 내성을 높이기 위해서는, 예를 들면 비밀키의 비트 정보와 연산 시간의 상관을 발생시키지 않는 알고리즘으로 설정하는 것이 유효하다.
타원곡선 암호(ECC), 및 초타원곡선 암호(HECC)에 대한 타이밍 어택(TA), 및 전력 공격(SPA)에 대한 대책 구성으로서 double-and-add-always법이 유효한 것이 알려져 있다. 이 double-and-add-always법에 관한 상세는, 비특허 문헌 17에 설명되어 있다. 이 알고리즘에서는 상기한 binary법의 연산 알고리즘과 달리, 승수로서의 스칼라량(d)의 구성 bit의 값에 따라 연산 시간이나 전력 파형이 다르지 않도록 더미(Dummy)의 가산을 항상 행하는 구성으로 하고 있다.
스칼라배산의 알고리즘으로서 기본적인 double-and-add-always법의 연산 알고리즘[알고리즘 2]을 이하에 표시한다.
[수식 11]
Figure 112007029603540-pct00011
다음에, 베이스 포인트의 생성 처리에 관해 설명한다. 스칼라배산의 계산을 암호 기술로 이용하는 경우, 입력에 필요한 인자(D0)는,
(1) 사전에 정한 인자인 경우,
(2) 사전에 정해지지 않은 랜덤하게 발생하는 인자인 경우,
의 2개의 타입으로 나눌 수 있다.
여기서 (1) 사전에 정한 인자인 경우의 입력 인자를 베이스 포인트라고 부르기로 한다.
일반적인 베이스 포인트의 생성 알고리즘을 이하에 도시한다.
(a)
정의체(Fq)상의 원을 랜덤하게 g개 선택하고, g개의 초타원곡선상의 점(Pi)(i=1, …, g)를 생성한다.
(a1) 랜덤하게 선택한 각 원을 x좌표(xi)(i=1 … g)로 하고, 다음에 초타원곡선상에 놓이도록(乘) xi에 대응하는 y좌표를 구한다.
(b)
베이스 포인트의 인자를 D0=(U(x), V(x))라고 한다.
(b1) U(x)=(x-x1)(x-x2) … (x-xg)
(b2) V(x)=vg -1xg -1+vg -2xg -2+ … +v0의 계수(vi)를 결정한다. 예를 들면 생성한 점이 전부 다른 경우, V(xi)=yi로부터 vi를 구할 수 있다.
(c) 상기 알고리즘에 의해 생성되는 인자는 weightg인 인자가 된다.
스칼라배산의 계산을 암호 기술에서 이용하는 경우, 입력에 필요한 인자(D0)의 생성, 즉 베이스 포인트의 생성에 있어서, 사전에 정한 인자를 적용하는 경우, 상술한 처리(a) 내지 (c)에 의해 weightg의 베이스 포인트에 적용하는 인자를 구할 수 있다.
비특허 문헌 1 : N.Koblitz. Hyperelliptic Curve cryptosystems. J.Cryptology, vol.1, No.3, pp.139-150, 1989.
비특허 문헌 2 : D.G.Cantor. Computing in the Jacobian of hyperelliptic curve . Math. Comp., Vol.48, No.177, pp.95-101, 1987
비특허 문헌 3 : 「D.Mumford, Tata lectures on theta Ⅱ, Progress in Mathematics, no.43, Birkhauser, 1984.」
비특허 문헌 4 : K.Matsuo, J.Chao, and S.Tsujii. Fast Genus two hyperelliptic curve cryptosystems. Technical Report ISEC2001-31, IEICE Japan, 2001.
비특허 문헌 5 : M.Takahashi. Improving Harley algorithms for Jacobians of genus 2 hyperelliptic curves. SCIS2002. (Japanese).
비특허 문헌 6 : T.Lange. Inversion-free arithmetic on genus 2 hyperelliptic curves. Cryptology ePrint Archive, 2002/147, IACR, 2002.
비특허 문헌 7 : T.Sugizaki, K.Matsuo, J.Chao, and S.Tsujii. An extension of Harley addition algtorithm for hyperelliptic curves over finite fields of characteristic two. ISEC2002-9, IEICE, 2001
비특허 문헌 8 : T.Lange, Efficient arithmetic on genus 2 hyperelliptic curves over finite fields via explicit formulae. Cryptology ePrint Archive, 2002/121, IACR,2002.
비특허 문헌 9 : J.Kuroki, M.Gonda, K.Masuo, J.Chao and S.Tsujii. Fast genus three hyperellipitc curve cryptosystems. SCIS2002
비특허 문헌 10 : J.Pelzl, T.Wollinger, J.Guajardo, and C.Paar. Hyperelliptic curve Cryptosystems : Closing the Performance Gap to Elliptic Curves. Cryptology ePrint Archive, 2003/026, IACR, 2003.
비특허 문헌 11 : Y.Miyamoto, H.Doi, K.Matsuo, J.Chao and S.Tsujii. A fast addition algorithm of genus two hyperelliptic curves. SCIS2002. (Japanese).
비특허 문헌 12 : N.Takahashi, H.Morimoto and A.Miyaji. Efficient exponentiation on genus two hyperelliptic curves(Ⅱ). ISEC2002-145, IEICE, 2003.(Japanese)
비특허 문헌 13 : T.Lange. Weighed coordinate on genus 2 hyperellipitc curve. Cryptology ePrint Archive, 2002/153, IACR, 2002.
비특허 문헌 14 : N.Nagao. Improving group law algorithms for Jacobians of hyperelliptic curves. ANTS-IV, LNCS 1838, pp.439-448, Springer-Verlag, 2000.
비특허 문헌 15 : C.Kocher, Timing Attacks on Implementations of Diffie-Hellman, RSA, DSS, and Other Systems, CRYPTO'96, LNCS 1109, pp.104-113, 1996
비특허 문헌 16 : C.Kocher, J.Jaffe, and B.Jun, Differential Power Analysis, CRYPTO'99, LNCS 1666, pp.388-397, Springer-Verlag, 1999
비특허 문헌 17 : J.-S.Coron, Resistance against Differential Power Analysis for Elliptic Curve Cryptosystems, CHES'99, LNCS 1717, pp.292-302, Springer-Verlag, 1999
현재, 실용 페이즈에 계속 들어가 있는 타원곡선 암호(ECC) 알고리즘에 대해, 그 확장 개념인 초타원곡선 암호(HECC) 알고리즘은, 현재, 학회 레벨에서 고속 알고리즘이나, 그 실장 방법에 관한 연구가 진행되고 있다. 초타원곡선 암호(HECC)의 스칼라배산의 연산 시간은, 타원곡선 암호(ECC)에 가까워지고 있는 정도에 불과하여, 나아가 고속화가 요망되고 있다.
본 발명은, 이와 같은 현재상태를 감안하여 이루어진 것으로, 초타원곡선 암호(HECC)의 스칼라배산의 연산 시간을 단축하고, 고속 처리 가능한 초타원곡선 암호(HECC) 연산 처리를 실현하는 암호 처리 연산 방법, 및 암호 처리 장치, 및 컴퓨터 프로그램을 제공하는 것을 목적으로 한다.
본 발명은, 종수(g)인 초타원곡선에서, 종수(g)보다 작은 웨이트(weight)인 인자(퇴화인자)를 베이스 포인트로서 선택하고, 윈도우법을 적용한 스칼라배산을 실행하는 구성으로 한 것이고, 윈도우법에서 적용하는 사전산출 데이터를 퇴화인자에 의해 표현하고, 스칼라배산에서의 가산 연산 처리를 전부 퇴화인자+비퇴화인자의 가산 처리로 하여 실행 가능하게 함으로써, 안전성이 높은 고속 연산 처리를 실현하는 암호 처리 연산 방법, 및 암호 처리 장치, 및 컴퓨터 프로그램을 제공하는 것을 목적으로 한다.
더욱 구체적으로는, 본 발명은, 종수(g)=2인 곡선에서, 베이스 포인트(D와 5D)가, 웨이트(weight)=1인 퇴화인자를 효율적으로 탐색하고, 이들을 사전 계산 퇴화인자(D, 5D)로 한 윈도우법에 의한 스칼라배산 처리를 행함으로써 연산의 고속화를 실현한다. 또한, 종수(3)인 곡선에서, 베이스 포인트(D와 3D)가 웨이트(weight)=2인 퇴화인자를 효율적으로 검출하고, 이들을 사전 계산 퇴화인자(D, 3D)로 한 윈도우법에 의한 스칼라배산 처리를 행함으로써 연산의 고속화를 실현하는 암호 처리 연산 방법, 및 암호 처리 장치, 및 컴퓨터 프로그램을 제공하는 것을 목적으로 한다.
본 발명의 제 1의 측면은,
초타원곡선 암호에 의거한 암호 처리 연산을 실행하는 암호 처리 연산 방법이고,
초타원곡선 암호에 의거한 스칼라배산 처리에서의 입력 인자로서의 베이스 포인트와, 스칼라배산의 실행 알고리즘으로서의 윈도우법에 있어서의 사전산출 데이터중, 베이스 포인트를 제외한 하나 이상의 사전산출 데이터가, 초타원곡선의 종수(g)(genus)보다 작은 웨이트(weight)(g0)(단, 1≤g0<g)의 인자인 퇴화인자가 되는 베이스 포인트를 생성하는 베이스 포인트 생성 스텝과,
상기 베이스 포인트 생성 스텝에서 생성한 베이스 포인트에 의거하여, 윈도우법에서의 사전산출 데이터를, 퇴화인자만으로 이루어지는 데이터로서 산출하는 사전산출 퇴화인자 데이터 생성 스텝과,
상기 사전산출 퇴화인자 데이터 생성 스텝에서 생성한 사전산출 퇴화인자 데이터를 적용하여 윈도우법을 적용한 스칼라배산 처리를 실행하는 스텝이고, 스칼라배산에서의 가산 처리를 상기 사전산출 퇴화인자를 포함하는 가산 처리로서 실행하는 연산 처리 스텝을 갖는 것을 특징으로 하는 암호 처리 연산 방법에 있다.
또한, 본 발명의 암호 처리 연산 방법의 한 실시 양태에 있어서, 상기 연산 처리 스텝은, 인자(D)에 대한 스칼라배산(D)=dD의 승수(d)에 관한 전개 처리로서, 상기 윈도우법에 의거한 전개 처리인 wNAF(width-wNon-Adjacent Form) 전개를 실행하는 전개 처리 스텝과, 상기 전개 처리 스텝에서 생성된 wNAF 전개 처리 데이터에, 상기 사전산출 퇴화인자 데이터를 대응시킨 연산을 실행하는 스텝을 갖는 것을 특징으로 한다.
또한, 본 발명의 암호 처리 연산 방법의 한 실시 양태에 있어서, 상기 연산 처리 스텝은, 인자(D)에 대한 스칼라배산(D)=dD의 승수(d)에 관한 전개 처리로서, 상기 윈도우법에 의거한 전개 처리인 wNAF(width-wNon-Adjacent Form) 전개를 실행하는 전개 처리 스텝과, 상기 전개 처리 스텝에서 생성된 wNAF 전개 처리 데이터에 의거하여 결정되는 사전산출 데이터에 상기 사전산출 퇴화인자 데이터 이외의 데이터를 포함하는 경우, 상기 wNAF 전개 데이터를 변환하고, 상기 사전산출 퇴화인자 데이터만에 의해 구성되는 변환 wNAF 전개 데이터를 생성하는 전개 처리 데이터 변환 스텝과, 상기 전개 처리 데이터 변환 스텝에서 생성된 변환 wNAF 전개 데이터에, 상기 사전산출 퇴화인자 데이터를 대응시킨 연산을 실행하는 스텝을 갖는 것을 특징으로 한다.
또한, 본 발명의 암호 처리 연산 방법의 한 실시 양태에 있어서, 상기 베이스 포인트 생성 스텝은, 베이스 포인트(D)와, 스칼라배산의 실행 알고리즘으로서의 윈도우법에서의 사전산출 데이터중, 베이스 포인트를 제외한 하나 이상의 사전산출 데이터(nD)(단, n은 1 이외의 정수)를, 초타원곡선의 종수(g)(genus)보다 작은 웨이트(weight)(g0)(단, 1≤g0<g)의 인자인 퇴화인자가 되는 설정으로 하여 베이스 포인트를 생성하는 스텝인 것을 특징으로 한다.
또한, 본 발명의 암호 처리 연산 방법의 한 실시 양태에 있어서, 상기 암호 처리 연산 방법은, 종수(g)(genus)=2인 초타원곡선에서의 스칼라배산 처리를 실행하는 방법이고, 상기 베이스 포인트 생성 스텝은, 베이스 포인트(D와, 5D)를, 웨이트(weight)(1)의 퇴화인자가 되도록 베이스 포인트를 생성하는 스텝이고, 상기 연산 처리 스텝은, 인자(D)에 대한 스칼라배산(D)=dD의 승수(d)에 관한 전개 처리로서, 상기 윈도우법에 의거한 전개 처리인 wNAF(width-wNon-Adjacent Form) 전개를, 윈도우 사이즈=3으로서 실행하는 전개 처리 스텝과, 상기 전개 처리 스텝에서 생성된 wNAF 전개 처리 데이터에 의거하여 결정되는 사전산출 데이터에 상기 퇴화인자(D, 5D) 이외의 데이터를 포함하는 경우, 상기 wNAF 전개 데이터를 변환하고, 상기 퇴화인자(D, 5D)만에 의해 구성되는 변환 wNAF 전개 데이터를 생성하는 전개 처리 데이터 변환 스텝과, 상기 전개 처리 데이터 변환 스텝에서 생성된 변환 wNAF 전개 데이터에, 상기 퇴화인자(D, 5D)를 대응시키고, 스칼라배산 처리중의 가산 처리를 퇴화인자(D, 5D)를 포함하는 가산 처리로 한 연산을 실행하는 스텝을 갖는 것을 특징으로 한다.
또한, 본 발명의 암호 처리 연산 방법의 한 실시 양태에 있어서, 상기 암호 처리 연산 방법은, 종수(g)(genus)=3인 초타원곡선에서의 스칼라배산 처리를 실행하는 방법이고, 상기 베이스 포인트 생성 스텝은, 베이스 포인트(D와, 3D)를 웨이트(weight)(2)의 퇴화인자가 되도록 베이스 포인트를 생성하는 스텝이고, 상기 연산 처리 스텝은, 인자(D)에 대한 스칼라배산(D)=dD의 승수(d)에 관한 전개 처리로서, 상기 윈도우법에 의거한 전개 처리인 wNAF(width-wNon-Adjacent Form) 전개를, 윈도우 사이즈=2로서 실행하는 전개 처리 스텝과, 상기 전개 처리 스텝에서 생성된 wNAF 전개 데이터에, 상기 퇴화인자(D, 3D)를 대응시키고, 스칼라배산 처리중의 가산 처리를 퇴화인자(D, 3D)를 포함하는 가산 처리로 한 연산을 실행하는 스텝을 갖는 것을 특징으로 한다.
또한, 본 발명의 제 2의 측면은,
초타원곡선 암호에 의거한 암호 처리 연산을 실행하는 암호 처리 장치이고,
초타원곡선 암호에 의거한 스칼라배산 처리에서의 입력 인자로서의 베이스 포인트와, 스칼라배산의 실행 알고리즘으로서의 윈도우법에서의 사전산출 데이터중, 베이스 포인트를 제외한 하나 이상의 사전산출 데이터가, 초타원곡선의 종수(g)(genus)보다 작은 웨이트(weight)(g0)(단, 1≤g0<g)의 인자인 퇴화인자가 되는 베이스 포인트를 생성하는 베이스 포인트 생성 수단과,
상기 베이스 포인트 생성 수단에서 생성한 베이스 포인트에 의거하여, 윈도우법에서의 사전산출 데이터를, 퇴화인자만으로 이루어지는 데이터로서 산출하는 사전산출 퇴화인자 데이터 생성 수단과,
상기 사전산출 퇴화인자 데이터 생성 수단에서 생성한 사전산출 퇴화인자 데이터를 적용하여 윈도우법을 적용한 스칼라배산 처리를 실행하는 스텝이고, 스칼라배산에서의 가산 처리를 상기 사전산출 퇴화인자를 포함하는 가산 처리로서 실행하는 연산 처리 수단을 갖는 것을 특징으로 하는 암호 처리 장치에 있다.
또한, 본 발명의 암호 처리 장치의 한 실시 양태에 있어서, 상기 암호 처리 장치는, 또한, 인자(D)에 대한 스칼라배산(D)=dD의 승수(d)에 관한 전개 처리로서, 상기 윈도우법에 의거한 전개 처리인 wNAF(width-wNon-Adjacent Form) 전개를 실행하는 전개 처리 수단을 포함하고, 상기 연산 처리 수단은, 상기 전개 처리 수단에서 생성된 wNAF 전개 처리 데이터에, 상기 사전산출 퇴화인자 데이터를 대응시킨 연산을 실행하는 구성인 것을 특징으로 한다.
또한, 본 발명의 암호 처리 장치의 한 실시 양태에 있어서, 상기 암호 처리 장치는, 또한, 인자(D)에 대한 스칼라배산(D)=dD의 승수(d)에 관한 전개 처리로서, 상기 윈도우법에 의거한 전개 처리인 wNAF(width-wNon-Adjacent Form) 전개를 실행하는 전개 처리 수단과, 상기 전개 처리 수단에서 생성된 wNAF 전개 처리 데이터에 의거하여 결정되는 사전산출 데이터에 상기 사전산출 퇴화인자 데이터 이외의 데이터를 포함하는 경우, 상기 wNAF 전개 데이터를 변환하고, 상기 사전산출 퇴화인자 데이터만에 의해 구성되는 변환 wNAF 전개 데이터를 생성하는 전개 처리 데이터 변환 수단을 포함하고, 상기 연산 처리 수단은, 상기 전개 처리 데이터 변환 수단에서 생성된 변환 wNAF 전개 데이터에, 상기 사전산출 퇴화인자 데이터를 대응시킨 연산을 실행하는 구성인 것을 특징으로 한다.
또한, 본 발명의 암호 처리 장치의 한 실시 양태에 있어서, 상기 베이스 포인트 생성 수단은, 베이스 포인트(D)와, 스칼라배산의 실행 알고리즘으로서의 윈도우법에서의 사전산출 데이터중, 베이스 포인트를 제외한 하나 이상의 사전산출 데이터(nD)(단, n은 1 이외의 정수)를, 초타원곡선의 종수(g)(genus)보다 작은 웨이트(weight)(g0)(단, 1≤g0<g)의 인자인 퇴화인자가 되는 설정으로 하여 베이스 포인트를 생성하는 구성인 것을 특징으로 한다.
또한, 본 발명의 암호 처리 장치의 한 실시 양태에 있어서, 상기 암호 처리 장치는, 종수(g)(genus)=2인 초타원곡선에서의 스칼라배산 처리를 실행하는 구성이고, 상기 베이스 포인트 생성 수단은, 베이스 포인트(D와, 5D)를, 웨이트(weight)(1)의 퇴화인자가 되도록 베이스 포인트를 생성하는 구성이고, 인자(D)에 대한 스칼라배산(D)=dD의 승수(d)에 관한 전개 처리로서, 상기 윈도우법에 의거한 전개 처리인 wNAF(width-wNon-Adjacent Form) 전개를, 윈도우 사이즈=3으로서 실행하는 전개 처리 수단과, 상기 전개 처리 수단에서 생성된 wNAF 전개 처리 데이터에 의거하여 결정되는 사전산출 데이터에 상기 퇴화인자(D, 5D) 이외의 데이터를 포함하는 경우, 상기 wNAF 전개 데이터를 변환하고, 상기 퇴화인자(D, 5D)만에 의해 구성되는 변환 wNAF 전개 데이터를 생성하는 전개 처리 데이터 변환 수단과, 상기 전개 처리 데이터 변환 수단에서 생성된 변환 wNAF 전개 데이터에, 상기 퇴화인자(D, 5D)를 대응시키고, 스칼라배산 처리중의 가산 처리를 퇴화인자(D, 5D)를 포함하는 가산 처리로 한 연산을 실행하는 연산 처리 수단을 갖는 것을 특징으로 한다.
또한, 본 발명의 암호 처리 장치의 한 실시 양태에 있어서, 상기 암호 처리 장치는, 종수(g)(genus)=3인 초타원곡선에서의 스칼라배산 처리를 실행하는 구성이고, 상기 베이스 포인트 생성 수단은, 베이스 포인트(D와, 3D)를 웨이트(weight)(2)의 퇴화인자가 되도록 베이스 포인트를 생성하는 구성이고, 인자(D)에 대한 스칼라배산(D)=dD의 승수(d)에 관한 전개 처리로서, 상기 윈도우법에 의거한 전개 처리인 wNAF(width-wNon-Adjacent Form) 전개를, 윈도우 사이즈=2로서 실행하는 전개 처리 수단과, 상기 전개 처리 수단에서 생성된 wNAF 전개 데이터에, 상기 퇴화인자(D, 3D)를 대응시키고, 스칼라배산 처리중의 가산 처리를 퇴화인자(D, 3D)를 포함하는 가산 처리로 한 연산을 실행하는 연산 처리 수단을 갖는 것을 특징으로 한다.
또한, 본 발명의 제 3의 측면은,
초타원곡선 암호에 의거한 암호 처리 연산을 컴퓨터에서 실행시키는 컴퓨터 프로그램이고,
초타원곡선 암호에 의거한 스칼라배산 처리에서의 입력 인자로서의 베이스 포인트와, 스칼라배산의 실행 알고리즘으로서의 윈도우법에서의 사전산출 데이터중, 베이스 포인트를 제외한 하나 이상의 사전산출 데이터가, 초타원곡선의 종수(g)(genus)보다 작은 웨이트(weight)(g0)(단, 1≤g0<g)의 인자인 퇴화인자가 되는 베이스 포인트를 생성하는 베이스 포인트 생성 스텝과,
상기 베이스 포인트 생성 스텝에서 생성한 베이스 포인트에 의거하여, 윈도우법에서의 사전산출 데이터를, 퇴화인자만으로 이루어지는 데이터로서 산출하는 사전산출 퇴화인자 데이터 생성 스텝과,
상기 사전산출 퇴화인자 데이터 생성 스텝에서 생성한 사전산출 퇴화인자 데이터를 적용하여 윈도우법을 적용한 스칼라배산 처리를 실행하는 스텝이고, 스칼라배산에서의 가산 처리를 상기 사전산출 퇴화인자를 포함하는 가산 처리로서 실행하는 연산 처리 스텝을 갖는 것을 특징으로 하는 컴퓨터 프로그램에 있다.
또한, 본 발명의 컴퓨터 프로그램은, 예를 들면, 다양한 프로그램 코드를 실행 가능한 컴퓨터 시스템에 대해, 컴퓨터 가독의 형식으로 제공하는 기억 매체, 통신 매체, 예를 들면, CD나 FD, MO 등의 기록 매체, 또는, 네트워크 등의 통신 매체에 의해 제공 가능한 컴퓨터 프로그램이다. 이와 같은 프로그램을 컴퓨터 가독의 형식으로 제공함에 의해, 컴퓨터 시스템상에서 프로그램에 따른 처리가 실현된다.
본 발명의 또다른 목적, 특징이나 이점은, 후술하는 본 발명의 실시예나 첨부하는 도면에 의거한 더욱 상세한 설명에 의해 분명하게 될 것이다. 또한, 본 명세서에 있어서 시스템이란, 복수의 장치의 논리적 집합 구성이고, 각 구성의 장치가 동일 박스 내에 있는 것으로는 한하지 않는다.
본 발명의 구성에 의하면, 초타원곡선 암호에 의거한 스칼라배산 처리에서의 베이스 포인트(D)와, 스칼라배산의 실행 알고리즘으로서의 윈도우법에서의 사전산출 데이터중, 베이스 포인트를 제외한 하나 이상의 사전산출 데이터를, 초타원곡선의 종수(g)(genus)보다 작은 웨이트(weight)(g0)(단, 1≤g0<g)의 인자인 퇴화인자가 되는 설정으로 하고, 윈도우법을 적용한 스칼라배산 처리에서의 가산 처리를 사전산출한 퇴화인자를 포함하는 가산 처리에 의해 실행하는 구성으로 하였기 때문에, 고속 연산이 실현됨과 함께, 퇴화인자를 포함하지 않는 가산 처리가 혼재하지 않기 때문에 가산 처리의 연산 처리 시간이나, 연산 처리에 수반하는 소비 전력의 차이가 발생하지 않고, 연산 시퀀스의 해석으로서의 SPA, TA 해석에 대한 내성도 손상되는 일이 없는 안전하고 고속의 연산이 실현된다.
또한, 본 발명의 구성에 의하면, 인자(D)에 대한 스칼라배산(D)=dD의 승수(d)에 관한 전개 처리로서, 윈도우법에 의거한 전개 처리인 wNAF(width-wNon-Adjacent Form) 전개를 실행하고, 전개 처리에서의 생성된 wNAF 전개 처리 데이터에 의거하여 결정되는 사전산출 데이터에, 퇴화인자 데이터 이외의 데이터를 포함하는 경우, wNAF 전개 데이터를 변환하고, 퇴화인자 데이터만에 의해 구성되는 변환 wNAF 전개 데이터를 생성하여, 변환 wNAF 전개 데이터에 퇴화인자 데이터를 대응시키고, 스칼라배산에서의 가산 처리를 비퇴화인자+퇴화인자의 가산 처리로서 실행하는 구성으로 하였기 때문에, 연산 시퀀스의 해석으로서의 SPA, TA 해석에 대한 내성이 손상되지 않는 안전하고 고속의 연산이 실현한다.
도 1은 종수(2)인 초타원곡선 암호의 스칼라배산에서의 가산 처리, 2배산 처리의 알고리즘에 관해 설명하는 도면.
도 2는 종수(3)인 초타원곡선 암호의 스칼라배산에서의 가산 처리, 2배산 처리의 알고리즘에 관해 설명하는 도면.
도 3은 퇴화인자의 생성 및 스칼라배산 처리를 실행하는 경우의 전체 시퀀스에 관해 설명하는 플로우 차트를 도시하는 도면.
도 4는 초타원곡선 암호 연산 처리에서의 퇴화인자로서의 베이스 포인트 설정 처리의 순서를 설명하는 플로우 차트.
도 5는 윈도우법을 적용하여, 스칼라배산 처리를 실행하는 경우의 전체 시퀀스에 관해 설명하는 도면.
도 6은 종수(g)(2)인 초타원곡선에서의 D, 5D가 퇴화인자, 즉 웨이트=1이 되는 베이스 포인트(D)를 검출하는 처리의 상세에 관해 설명하는 도면.
도 7은 종수(g)(2)인 초타원곡선에서 D, 5D가 퇴화인자, 즉 웨이트=1이 되는 베이스 포인트(D)를 검출하는 처리 순서를 설명하는 플로우 차트를 도시하는 도면.
도 8은 퇴화인자(D, 5D)를 적용하여 단순 전력 해석(SPA)에 대한 내성을 갖 는 윈도우법(window법)에 의한 스칼라배산을 실현하기 위한 개량된 wNAF 전개, wNAF(1, 5)의 처리를 설명하는 도면.
도 9는 종수(g)(2)인 곡선에서, 베이스 포인트(D와 5D)의 쌍방이 웨이트(weight)=1이 되는 퇴화인자를 검출하고, 검출한 퇴화인자(D, 5D)만을 적용하여, wNAF 전개 데이터를 변환하고, 변환한 wNAF 전개 데이터를 적용하여 스칼라배산을 실행하는 처리의 전체 시퀀스에 관해 설명하는 도면.
도 10은 종수(g)(3)인 초타원곡선에서 D, 3D가 퇴화인자, 즉 웨이트=2가 되는 베이스 포인트(D)를 검출하는 처리의 상세에 관해 설명하는 도면.
도 11은 종수(g)(3)인 초타원곡선에서 D, 3D가 퇴화인자, 즉 웨이트=2가 되는 베이스 포인트(D)를 검출하는 처리 순서를 설명하는 플로우 차트를 도시하는 도면.
도 12는 종수(g)(3)인 곡선에서, 베이스 포인트(D와 3D)의 쌍방이 웨이트(weight)=2가 되는 퇴화인자를 검출하고, 검출한 퇴화인자(D, 3D)만을 적용하여, wNAF 전개 데이터를 생성하고, 스칼라배산을 실행하는 처리의 전체 시퀀스에 관해 설명하는 도면.
도 13은 본 발명의 암호 처리 장치의 기능 구성을 도시하는 블록도.
도 14는 본 발명의 암호 처리 연산을 실행하는 암호 처리 실행 디바이스 예로서의 IC 모듈의 구성예를 도시하는 도면.
이하, 본 발명의 암호 처리 장치 및 암호 처리 연산 방법, 및 컴퓨터 프로그 램의 상세에 관해 설명한다. 또한, 설명은, 이하의 항목에 따라 행한다.
1. 본 발명의 기초 기술로서의 초타원곡선 암호 알고리즘의 고속화 수법
(1A) 퇴화인자를 베이스 포인트로서 적용한 처리예
(1B) 윈도우(Window)법을 적용한 처리예
2. 본 발명의 처리예로서의 퇴화인자를 베이스 포인트로서 설정하고, 또한 윈도우(Window)법을 적용한 처리예
3. 암호 처리 장치의 기능 구성에 관해
4. 전자 서명 생성 및 검증 알고리즘에서의 본 발명의 적용예
5. 암호 처리 장치의 하드웨어 구성예
[1. 본 발명의 기초 기술로서의 초타원곡선 암호 알고리즘의 고속화 수법]
우선, 본 발명의 기초 기술로서의 초타원곡선 암호 알고리즘의 고속화 수법으로서, 이하의 2개의 수법에 관해 설명한다.
(1A) 퇴화인자를 베이스 포인트에 적용한 처리예
(1B) 윈도우(Window)법을 적용한 처리예
(1A) 퇴화인자를 베이스 포인트로서 적용한 처리예
우선, 퇴화인자를 베이스 포인트로서 적용한 처리예에 관해 설명한다. 또한, 본 수법은, 본원 특허출원인이 앞에서 출원한 특허출원인 특원2004-71757에서 개시한 수법이다.
본 수법은, 타원곡선 암호를 일반화한 초타원곡선 암호(HECC : Hyper Elliptic Curve Cryptography)에 관한 고속화 연산 수법이다. 전술한 바와 같이, 초타원곡선에서는 곡선을 특징짓는 값은 종수(genus)(g)이다. p를 소수, n을 정의 정수, q=pn으로 한다. 이때 유한체(Fq)상에서 정의되는 종수(g)인 초타원곡선(C)은 이하의 방정식,
y2+h(x)y=f(x)
로 정의된다. 여기서, h(x), f(x)∈Fq[x], f(x)는, 차수 2g+1의 monic 다항식이다.
초타원곡선(C)상의 점(P)=(x, y)에 대해 opposite한 점(-P)은 (x, y+h(x))로서 정의된다. P=-P인 점을 분기점(ramification point)이라고 부른다.
초타원곡선 암호의 정의체의 연산 사이즈(비트 길이)는 타원곡선 암호와 동등한 안전성을 가정한 경우, 타원곡선의 정의체의 연산 사이즈에 비하여 1/g로 작아지는 것이 알려져 있다. 연산 사이즈가 작은 것은 실장상 메리트가 있고, 초타원곡선 암호의 이점의 하나로서 들 수 있다.
전술한 바와 같이, 초타원곡선 암호에서는 점의 형식적 합인 인자(divisor)를 D1로 하고, 스칼라배산(kD1)에서 정의되는 인자를 D2라고 하면, D2로부터 k를 구하는 문제는 초타원곡선에서의 야코비 다양체상의 이산대수 문제로서 공개키 암호로서 이용할 수 있다.
인자(divisor)는, 전술한 바와 같이, 이하의 형식으로 표현할 수 있다.
[수식 12]
Figure 112007029603540-pct00012
단 Pi=(xi, yi)이면서 i≠j에 대해 Pi≠Pj이다. 이 형식의 인자를 반피약인자(semi reduced divisor)라고 부른다. 또한, Σmi를 D의 웨이트(weight)라고 부른다. 또한 웨이트(weight)가 종수(g) 이하인 반피약인자를 피약인자(reduced divisor)라고 부른다.
초타원곡선의 야코비(Jacobi) 다양체상의 임의의 반피약인자(D)는 하기한 다항식 U, V∈Fq[x]를 이용하여 D=(U, V)로서 표현할 수 있다. 이것을 멈포드(Mumford) 표현이라고 부른다.
[수식 13]
Figure 112007029603540-pct00013
종수(genus)(2)인 임의의 피약인자(D)는 멈포드(Mumford) 표현을 이용하면, 유한체(Fq)상의 원을 계수로 갖는 2차 이하의 다항식의 조, 즉,
(U, V)=(x2+u1x+u0, v1x+v0)
로서 표현할 수 있다.
또한, 종수(genus)(3)인 임의의 피약인자(D)는 멈포드(Mumford) 표현을 이용하면 유한체(Fq)상의 원을 계수로 갖는 3차 이하의 다항식의 조, 즉,
(U, V)=(x3+u2x2+u1x+u0 , v2x2+v1x+v0)
로서 표현할 수 있다.
또한, 다른 인자의 표현으로서 변형 Mumford 표현, Weighted Coordinate가 있다. 변형 Mumford 표현은 ECC(타원곡선 암호)에서 말하는 프로젝티브(projective) 좌표에 상당하고, Mumford 표현(U, V)에 정수 Z배하여, (U, V, Z)로 표현하는 것이다.
Weighted Coordinate도 마찬가지로 Mumford 표현에 복수의 정수(Z1, Z2)를 곱함으로써 (U, V, Z1, Z2)로 표현하는 방법이다. 어느것이나 하기에 기술하는 Harley의 알고리즘의 계산량을 삭감하기 위한 수법으로서 이용되고 있다.
전술한 바와 같이, 스칼라배산의 계산을 암호 기술로 이용하는 경우, 입력에 필요한 인자(D0)는,
(1) 사전에 정한 인자인 경우,
(2) 사전에 정해지지 않은 랜덤하게 발생하는 인자인 경우,
의 2개의 타입으로 나눌 수 있다.
여기서 (1) 사전에 정한 인자를 적용하는 경우, 이 입력 인자가 베이스 포인트가 된다.
또한, 전술한 바와 같이, 본 발명의 설명에서, 인자(D)는, 웨이트(weight)가 종수(g) 이하인 반피약인자로서의 피약인자(reduced divisor)이다. 또한, 웨이트(weight)가 종수(g)와 동등한 것을 제외한 인자, 즉, 피약인자(reduced divisor)중, 웨이트(weight)가 종수(g)보다 작은 인자를 퇴화인자(degenerate divisor)라고 부른다.
예를 들면, 종수(g)=2인 경우, 퇴화인자는 웨이트(weight)=1인 인자,
종수(g)=3인 경우, 퇴화인자는 웨이트(weight)=1, 2인 인자,
가 된다.
종수(g)=2인 경우와, 종수(g)=3인 경우에 있어서, 퇴화인자(degenerate divisor)를 멈포드(Mumford) 표현을 이용하여 나타내면, 이하와 같이 표시된다.
(ㄱ) 종수(2)인 퇴화인자 : (U, V)=(x+u, v)
(ㄴ) 종수(3)인 퇴화인자 (weight 1) : (U, V)=(x+u0, v0)
(ㄷ) 종수(3)인 퇴화인자(weight 2) : (U, V)=(x2+u1x+u0, v1x+v0)
전술한 바와 같이, 일반적인 베이스 포인트의 생성 알고리즘은, 이하의 처리에 의해 실행된다.
(a) 정의체(Fq)상의 원을 랜덤하게 g개 선택하고, g개의 초타원곡선상의 점(Pi)(i=1, …, g)를 생성한다.
(a1) 랜덤하게 선택한 각 원을 x좌표(xi)(i=1…g)로 하고, 다음에 초타원곡선상에 놓이도록 xi에 대응하는 y좌표를 구한다.
(b) 베이스 포인트의 인자를 D0=(U(x), V(x))로 한다.
(b1) U(x)=(x-x1)(x-x2) … (x-xg)
(b2) V(x)=vg -1xg -1+vg -2xg -2+…+v0의 계수(vi)를 결정한다. 예를 들면 생성한 점이 전부 다른 경우, V(xi)=yi 보다(부터) vi를 구할 수 있다.
(c) 상기 알고리즘에 의해 생성된 인자는 weight g인 인자가 된다.
이와 같이 종수(g)인 초타원곡선에서의 베이스 포인트를 생성하는 종래의 알고리즘 및 장치는 통상, 웨이트(weight)=g인 인자를 생성한다.
본원 특허출원인의 선원 특허로서 출원이 끝난 특원2004-71757에서 설명하고 있는 퇴화인자를 베이스 포인트에 적용한 처리예는, 종수(g)인 초타원곡선에서, g보다 작은 웨이트(weight)=g0인 인자, 즉 퇴화인자(degenarate divisor)를 생성하고, 이것을 베이스 포인트로서 설정하여 처리를 행한다.
본 처리예를 적용하여, 스칼라배산 처리를 실행하는 경우의 전체 시퀀스에 관해, 도 3을 참조하여 설명한다. 퇴화인자(degenarate divisor)를 베이스 포인트에 적용한 스칼라배산 처리예에서는, 우선, 스텝 S101에서, 종수(g)인 초타원곡선에서, g보다 작은 웨이트(weight)=g0인 인자, 즉 퇴화인자(D0)를 생성한다. 즉,
종수(g)=2인 경우, 웨이트(weight)=1인 인자,
종수(g)=3인 경우, 웨이트(weight)=1, 2인 인자,
를 생성한다.
다음에, 스텝 S102에서, 스칼라배산(D=dD0)에 적용하는 승수로서의 스칼라값 : d를 2진(進) 전개한다. 스텝 S103에서, 2진 전개한 스칼라값 : d와, 스텝 S101 에서 생성한 퇴화인자(D0)를 적용한 스칼라배산 연산 처리(D=dD0)를 실행한다. 스칼라배산 연산 처리(D=dD0)는, 예를 들면 전술한 binary법이나, double-and-always법을 적용하여 실행한다.
스텝 S101에서 실행하는 처리, 즉, 종수(g)인 초타원곡선에서, g보다 작은 웨이트(weight)=g0인 퇴화인자(D0)를 생성하는 처리의 상세에 관해 설명한다.
본 처리예에서는, 종수(g)인 초타원곡선에서의 베이스 포인트를,
g0<g
가 성립하는 웨이트(weight)=g0인 퇴화인자로 설정한다. 이 퇴화인자를 적용한 베이스 포인트 설정에 의해, 초타원곡선 암호에서의 스칼라배산을 고속화시킨다.
종수(g)인 초타원곡선을 적용한 초타원곡선 암호에서 적용하는 인자는, 많은 경우, 종수(g)와 같은 weight를 갖은 인자이다. 즉, 퇴화인자가 아닌 인자이다. 랜덤하게 인자를 생성한 경우, 퇴화인자가 될 확률은, 유한체의 원래의 수를 q라고 하면 O(1/q)의 확률이다. 예를 들면 종수(2)인 경우, q는 암호 용도로 사용하는 것을 고려하면, 280 정도의 큰 값으로 되기 때문에, 랜덤하게 인자를 선택한 경우, 퇴화인자로 될 확률은 매우 적다. 그러나 고정점(固定点)의 베이스 포인트의 스칼라배산인 경우, 의도적으로 퇴화인자를 만들 수가 있다. 퇴화인자를 생성하는 방법에 관해 도 4를 참조하여 설명한다.
종수(g)인 초타원곡선에서의 웨이트(weight)=g인 인자를 베이스 포인트로서 생성하는 종래의 알고리즘에서는, 초타원곡선상의 점을 g개 선택하는 처리를 실행하는데 대해, 본 처리예의 베이스 포인트 생성 알고리즘에서는, 초타원곡선상의 점을 g0개 선택한 처리를 실행한다. 단 g0은 1≤g0<g를 충족시키는 값이다. 본 처리예에 따른 베이스 포인트 생성은, 이하의 처리 순서로 실행한다.
(스텝 S121)
정의체로서의 유한체(Fq)상의 원을 랜덤하게 g0개 선택하고, g0개의 초타원곡선상의 점(Pi)(i=1, …, g0)을 생성한다.
(1) 랜덤하게 선택한 각원을 x좌표(xi)(i=1…g0)로 하고, 다음에 초타원곡선상에 놓이도록 xi에 대응하는 y좌표를 구한다.
(스텝 S122)
베이스 포인트의 인자를 D0=(U(x), V(x))로 한다.
(1) U(x)=(x-x1)(x-x2) … (x-xg0)
(2) V(x)=vg0 -1xg0 -1+vg0 -2xg0 -2+…+v0의 계수(vi)를 결정한다. 예를 들면 생성한 점이 전부 다른 경우, V(xi)=yi (i=1…g0)로부터 vi를 구할 수 있다.
상술한 스텝의 실행에 의해, 종수(g)인 초타원곡선에서, 웨이트(weight)가 g보다 작은 웨이트(weight)=g0인 인자를 베이스 포인트로서 생성한다.
예를 들면 종수(g)=3인 초타원곡선인 경우, 베이스 포인트는, 종래의 수법에 의하면, 통상 weight 3의 인자를 이용함에 대해, 본 처리예에 따른 베이스 포인트 설정 알고리즘을 적용한 경우, 종수(g)=3보다 작은 웨이트, 즉 웨이트(weight)=1 또는 웨이트(weight)=2인 인자를 베이스 포인트로 한다.
또한, 예를 들면 종수(g)=2인 초타원곡선인 경우, 베이스 포인트는, 종래의 수법에 의하면, 통상 weight 2인 인자를 이용함에 대해, 본 처리예에 따른 베이스 포인트 설정 알고리즘을 적용한 경우, 종수(g)=2보다 작은 웨이트, 즉 웨이트(weight)=1인 인자를 베이스 포인트로 한다.
도 4를 참조하여 설명한 알고리즘을 적용하여, 종수(g)인 초타원곡선에서, g보다 작은 웨이트(weight)=g0인 인자를 베이스 포인트로서 생성한 경우, 이 인자를 적용하여 실행하는 스칼라배산에서는, 스칼라배산 실행 알고리즘중에서 이용하는 가산(可算) 공식이, 종래의 종수(g)와 같은 웨이트를 갖는 베이스 포인트를 적용한 경우와는 다르게 되어 온다.
즉, 종수(g)보다 작은 웨이트(weight)의 인자를 베이스 포인트로 선택한 경우, 스칼라배산중의 가산은, HarleyADD가 아니게 되고, 「weight g인 인자 + g보다 작은 weight의 인자의 가산」이 된다. 이「weight g인 인자 + g보다 작은 weight의 인자의 가산」에 걸리는 계산 코스트는 인자를 표현한 다항식의 차수(次數)가 내려가기 때문에, HarleyADD보다도 계산량이 적어지고, 스칼라배산의 처리 시간을 단축할 수 있다.
퇴화인자를 베이스 포인트에 세트한 경우, 단순 전력 해석(SPA)에 대한 내성 이 있는 스칼라배산의 알고리즘으로서 기본적인 double-and-add-always법의 연산 알고리즘[알고리즘 3]을 이하에 표시한다.
[수식 14]
Figure 112007029603540-pct00014
본 처리예에서는, 상기 알고리즘에 따른 연산이 실행되게 된다. 통상, 퇴화인자와의 가산은 퇴화인자가 아닌것끼리의 가산보다도 계산량이 적어지기 때문에, 의도적으로 퇴화인자를 만들지 않는 경우에 비하여 스칼라배산을 고속으로 연산할 수 있다.
(1B) 윈도우(Window)법을 적용한 처리예
다음에, 본 발명의 기초 기술로서의 초타원곡선 암호 알고리즘의 고속화 수법 처리의 또하나의 처리예인 윈도우(Window)법을 적용한 처리예에 관해 설명한다.
윈도우(Window)법을 사용한 단순 전력 해석에 내성이 있는 방법으로서, 예를 들면, [K.Okeya and T. Takagi, The Width-w NAF Method Provides Small Memory and Fast Elliptic Scalar Multiplications Secure against Side Channel Attacks, CT-RSA 2003, LNCS 2612, pp328-343, Springer-Verlag, 2003]에 기재되어 있다. 또한, 초타원곡선 암호는, 타원곡선 암호를 일반화한 방식이고, 이 윈도우법을 적용한 고속화 수법이 갭 없이 적용할 수 있다.
도 5를 참조하여, 윈도우법을 적용하여 스칼라배산 처리를 실행하는 경우의 전체 시퀀스에 관해 설명한다.
윈도우법에는, 몇가지 종류가 있다. 가장 기본적인 것은, 인자(D)에 대한 스칼라배산[D=dD]에서 적용하는 승수(乘數)로서 설정되는 스칼라값 : d를 2진 표현으로 전개하고, 2진 표현 데이터의 최상위 비트 내지 최하위 비트를 소정의 항수(桁數)로 분할하여 분할 블록을 생성하고, 각 분할 블록에 설정되는 승수(d)의 구성 비트와 피승수(d)와의 승산(乘算) 데이터(dD)를 사전에 산출하여 테이블화하여 보존하고, 실제의 스칼라배산 처리에 있어서는, 테이블을 참조하여 사전산출 데이터를 취득함으로써 연산을 생략하여 고속화를 도모한 것이다.
예를 들면, 스칼라배산[D=dD]에서 적용하는 승수로서 설정되는 스칼라값 : d=2674…223(10진 표현)인 때, 이 2진 전개는, 예를 들면,
d=1110101001…00101110011
과 같이 표현되었다고 한다.
이 경우, 상위로부터, 예를 들면 3비트씩의 윈도우(윈도우 사이즈 : w=3)를 설정한다.
[111], [010], [100]…
이들의 각 구성 비트와 인자(D)와의 승산 결과를, 미리 산출하여 테이블에 기억하여 두면, 연산을 실행하는 일 없이 테이블에 기록된 사전산출 데이터를 추출하는 것만으로 좋아, 연산이 간략화되고 고속화 처리가 가능해진다. 또한, 사전에 산출하고 테이블화하는 데이터는, 다양한 조합이 제안되어 있다.
테이블에 기록하는 사전산출 데이터를 삭감한 방식으로서, NAF 전개 방식이 있다. 이것은, 승수(d)를 NAF(Non-Adjacent Form) 전개(=비인접형 부호 부착 2진수 전개)한다. NAF 전개는, 승수(d)를 0이 아닌 비트(1 또는-1)가 연속하지 않는 부호 부착 2진수의 표현으로 하는 전개 처리이고, 0이 아닌 비트의 수가 최소로 된다.
NAF 전개에서는, 승수(d)의 2진 전개 데이터에 관해, 연속하는 [1]의 데이터부를 변환하기 위해 [-1]을 적용하고, 0, 1,-1의 비트 데이터, 즉, 비인접형 부호 부착 2진수 전개를 행한다.
또한, 사전에 산출하고 테이블화한 데이터를 삭감한 방식으로서, wNAF(width-wNon-Adjacent Form)법이 제안되었다. 이 상세는, 전술한 [K.Okeya and T. Takagi, The Width-w NAF Method Provides Small Memory and Fast Elliptic Scalar Multiplications Secure against Side Channel Attacks, CT-RSA 2003, LNCS 2612, pp328-343, Springer-Verlag, 2003]에 기재되어 있다.
wNAF 전개 방식에서는, 소정의 항수로 된 수치 블록중, 피승수(D)에 승산한 값, 예를 들면 ±D, ±3D, ±5D, … ±(2w-1)D를 사전 계산하여 이것을 테이블에 보존하는 형식으로 한다. 승수(d)의 2진 전개 데이터에 관해 데이터 변환을 실행하여, 소정 항수(윈도우 사이즈)로 이루어지는 수치 블록의 각각을,
|00…0x|00…0x|00…0x|…
단, x는 홀수(±1, ±3 …)
가 되도록 설정한다.
이와 같은 설정으로 함으로써, 테이블에 보존하는 사전 계산 데이터를
±D, ±3, ±5D, … ±(2w-1)D
와 같은 한정된 데이터로 할 수 있고, 사전 계산 데이터를 삭감할 수 있다.
도 5에 도시하는 플로우에 따라, 윈도우법(wNAF 법)을 적용한 스칼라배산 처리의 전체 시퀀스에 관해 설명한다. 스텝 S151에서, 종수(g)인 초타원곡선에서, 랜덤하게 인자를 생성한다. 이때의 생성 인자는, 퇴화인자를 선택한 인자 생성 처리로서는 실행되지 않는다. 따라서, 많은 경우 g와 동등한 웨이트(weight)의 인자가 생성된다. 이 생성 인자를 베이스 포인트라고 한다.
다음에, 스텝 S152에서, 상술한 사전산출 데이터를 산출한다. 여기서는, 윈도우 사이즈 : w로 하여, 부호 부착의 홀수 1, 3, … 2w-1을 적용하고, 사전산출 데이터로서, 이들의 부호 부착 홀수와 베이스 포인트 인자(D)와의 승산치, 즉,
±D, ±3, ±5D, … ±(2w-1)D의 각 승산치를 사전산출 데이터로서 산출하고, 메모리에 보존한다.
다음에, 스텝 S153에서, 스칼라배산[D=dD]에서 적용하는 승수로서 설정되는 스칼라값 : d를 wNAF 전개한다. wNAF 전개란, 상술한 바와 같이, 승수로서 설정되는 스칼라값 : d를,
|00…0x|00…0x|00…0x|…
단, x는 홀수(±1, ±3…)
가 되는 분할 블록으로 분할하는 처리이고, 여기서는, 스칼라값 : d를 ±의 부호 부착의 홀수에 의해 구성되는 고정폭 윈도우 사이즈(소정 항수)로 이루어지는 블록으로 전개한다.
스칼라값 : d의 wNAF 전개의 알고리즘[알고리즘 4]를 이하에 도시한다.
[수식 15]
Figure 112007029603540-pct00015
다음에, 스텝 S154에서, 스칼라배산[D=dD]의 연산 처리를 실행한다. 이 연산 처리에서는, wNAF 전개한 스칼라값 : d와, 스텝 S152에서, 사전산출이 끝난 승산치 산출 데이터 : ±D, ±3, ±5D, … ±(2w-1)D를 적용한 연산 처리가 실행된다.
스칼라배산[D=dD]의 연산 알고리즘[알고리즘 5]를 이하에 표시한다.
[수식 16]
Figure 112007029603540-pct00016
본 처리예에서는, 스텝 S153의 wNAF 전개에 의해, 스칼라값 : d가, 부호 부착 홀수 1, 3, …2w-1와 0에 의해 나타나는 블록 데이터로서 전개된다. 스칼라값을 2진 전개한 경우와 마찬가지로 스칼라값에 나타나는 비영(非零)의 수가 적을수록, 스칼라배산의 계산량을 삭감할 수 있다. 본 처리예는, 비영의 빈도를 가장 적게 할 수 있는 방법이다. 또한, 전개한 패턴은 항상 DD…DAD…DA의 패턴(D가 인자인 2배산, A가 인자인 가산)으로 되기 때문에, 단순 전력 해석(SPA)에 대해 내성이 있는 방식이 된다. 또한, 스텝 S154에서 실행하는 스칼라배산은 패턴 자체에 SPA 내성이 있기 때문에, 2진 전개한 경우의 Double-and-Add-always법과 같이 더미 연산을 수반하지 않는 것이 특징이다.
[2. 본 발명의 처리예로서의 퇴화인자를 베이스 포인트로서 설정하고, 또한 윈도우(Window)법을 적용한 처리예]
다음에, 본 발명의 처리예로서, 퇴화인자를 베이스 포인트로서 설정하고, 또한 윈도우법(wNAF)을 적용한 처리예에 관해 설명한다. 상술한 2개의 초타원곡선 암 호 알고리즘의 고속화 수법, 즉,
(1A) 퇴화인자를 베이스 포인트에 적용한 처리예
(1B) 윈도우(Window)법을 적용한 처리예
는 각각 다른 수법에 의해 초타원곡선 암호 알고리즘의 고속화를 실현하고 있다.
상술한 윈도우(Window)법은, 고정 인자로서 퇴화인자가 아닌 베이스 포인트를 적용하여 고속화를 도모하고 있다. 이 윈도우(Window)법에, 상술한 처리예[(1A) 퇴화인자를 베이스 포인트에 적용한 처리예]에서 설명한 퇴화인자를 베이스 포인트로서 사용할 수가 있으면, 전술한 [(1B) 윈도우(Window)법을 적용한 처리예]에서 설명한 도 5의 스텝 S154의 처리에서 실행하는 가산 처리, 구체적으로는, 전술한 스칼라배산[D=dD]의 연산 알고리즘[알고리즘 5]에서의 가산 연산 처리(2. 2)의 스텝에서 실행하는 가산 처리를 퇴화인자를 적용한 가산 연산으로서 실행할 수 있다. 퇴화인자를 포함하는 가산은, 퇴화인자를 포함하지 않는 가산에 비하여 고속으로 연산할 수 있기 때문에, 윈도우(Window)법을 적용한 처리의 더한층의 고속화가 실현된다.
그러나, [(1B) 윈도우(Window)법을 적용한 처리예]에서, 퇴화인자를 베이스 포인트로서 적용하고, 암호 해석에 대해 안전한 처리 구성으로 하기 위해서는, 전술한 윈도우법의 적용예에서 설명한 도 5의 스텝 S152의 처리에서 산출하는 사전 계산점 : D 내지 (2w-1)D(단, w는 window size)의 인자가 전부 퇴화인자인 설정으로 하는 것이 필요하다.
베이스 포인트(D) 이외의 인자, 즉 사전산출 데이터를 퇴화인자가 아닌 인자로 설정하고, 윈도우(Window)법을 적용하는 것도 가능하지만, 이와 같은 처리 구성은 다양한 공격에 대한 취약화를 초래하여, 바람직하지 않다. 즉, 이와 같이 베이스 포인트로서의 퇴화인자를 적용한 가산 처리와, 퇴화인자 이외의 인자에 의한 가산 처리를 혼재시킨 연산 처리를 실행하는 구성으로 한 경우, 스칼라배산[dD]의 계산중에 행하는 인자의 가산 처리가 베이스 포인트(D)를 포함하는 경우와 그렇지 않은 경우에서 소비 전력이나 계산 시간이 분명히 다르게 되어 버려, 단순 전력 해석(SPA)이나 타이밍 어택(TA)에 대한 안전성이 손상될 가능성이 있기 때문이다.
따라서, 공격에 대한 내성을 유지한 구성으로 하기 위해서는, 사전 계산점은 전부 퇴화인자로 할 필요가 있지만, 베이스 포인트를 퇴화인자(D)로서 설정한 때, 사전 계산점, 예를 들면 ±D, ±3, ±5D, … ±(2w-1)D의 모두가 퇴화인자로 되는 베이스 포인트를 전체의 수를 탐색하여 찾는 것은 기술적으로 매우 곤란하다. 왜냐하면 퇴화인자는 전체의 인자중에서의 존재 확률이 매우 낮기 때문에, 복수의 인자가 동시에 퇴화인자일 확률은 더욱 낮아지기 때문이다.
예를 들면 종수(genus)=2의 곡선을 고려하면 야코비 다양체의 위수는 Hasse의 정리로부터 #J 내지 q2 정도 존재한다. 종수(g)=2인 곡선에서, g=2 미만의 웨이트(weight)=1을 갖는 퇴화인자는 고작 q개밖에 존재하지 않기 때문에, 야코비 다양체중으로부터 랜덤하게 2개의 인자를 선택하여 양쪽 모두 퇴화인자일 확률은 1/q2가 된다. q는 암호에서 사용하는 경우, 280 정도의 큰 수이기 때문에, 랜덤하게 인자를 발생시켜서 전체의 수를 탐색하여도 찾는 것은 매우 곤란하다. 종수(Genus)=3인 경우도 마찬가지이다.
따라서, 상술한 [(1B) 윈도우(Window)법을 적용한 처리예]에서, 퇴화인자의 베이스 포인트를 사용할 수 있도록 확장하기 위해서는 사전점으로서 가지고 있어야 할, 베이스 포인트와 베이스 포인트의 홀수배가 전부 퇴화인자가 되는 베이스 포인트를 효율적으로 찾는 방법을 구축하는 것이 필요하게 된다.
본 발명에서는, 상기 과제를 구체적으로 해결하는 이하의 2개의 처리예(A, B)를 제안한다.
(처리예 A) 종수(g)(2)인 곡선에서, 베이스 포인트(D와 5D)의 쌍방이 웨이트(weight)=1이 되는 퇴화인자를 효율적으로 탐색하고, 탐색한 퇴화인자(D, 5D)만을 적용하여, wNAF 전개 데이터를 변환하고, 변환한 wNAF 전개 데이터를 적용하여 스칼라배산을 실행하는 처리.
(처리예 B) 종수(g)(3)인 곡선에서, 베이스 포인트(D와 3D)의 쌍방이 웨이트(weight)=2가 되는 퇴화인자를 효율적으로 탐색하고, 탐색한 퇴화인자(D, 3D)만을 적용하여, wNAF 전개 데이터를 변환하고, 변환한 wNAF 전개 데이터를 적용하여 스칼라배산을 실행하는 처리.
이하, 이들의 2개의 처리예 (처리예 A), (처리예 B)에 관해, 순차적으로, 설명한다.
[(처리예 A) 종수(g)(2)인 곡선에서, 베이스 포인트(D와 5D)의 쌍방이 웨이트(weight)=1이 되는 퇴화인자를 효율적으로 탐색하고, 탐색한 퇴화인자(D, 5D)만을 적용하여, wNAF 전개 데이터를 변환하고, 변환한 wNAF 전개 데이터를 적용하여 스칼라배산을 실행하는 처리]
우선, 종수(g)(2)인 초타원곡선에서, 윈도우(Window)법을 적용함과 함께, 퇴화인자(D)를 베이스 포인트로서 설정하고, 윈도우법에서의 사전 계산 데이터를 전부 퇴화인자에 의거하여 산출 가능하게 설정하고, 스칼라배산에서의 가산 처리를 전부 비퇴화인자+퇴화인자의 가산 처리로서 실행하는 것을 가능하게 한 구성예에 관해 설명한다.
본 처리예에서는, 종수(g)(2)인 초타원곡선에서, 베이스 포인트([D]와, [5D])가 모두 퇴화인자, 즉 웨이트=1인 퇴화인자가 되는 인자를 효율적으로 검출하고, 이들의 D, 5D를 적용하여, wNAF 전개 데이터를 변환하고, 퇴화인자만으로 이루어지는 변환 wNAF 전개 데이터를 적용하여 스칼라배산을 실행한다.
전술한 바와 같이, 종수(g)=2인 곡선에서, g=2 미만의 웨이트(weight)=1을 갖는 퇴화인자는 고작 q개밖에 존재하지 않기 때문에, 야코비 다양체중으로부터 랜덤하게 2개의 인자를 선택하여 양쪽 모두 퇴화인자일 확률은 1/q2가 되어, 랜덤한 탐색 처리에 의해, 베이스 포인트(D, 5D)가 동시에 퇴화인자가 되는 베이스 포인트(D)를 탐색하는 것은 확률적으로 불가능하다.
본 처리예에서는, D, 5D가 모두 퇴화인자가 되는 베이스 포인트(D)의 효율적 탐색을 실현한다. 또한 스칼라배산의 처리에 있어서는, 사전 계산 인자로서, D, 5D밖에 준비할 수가 없기 때문에, 이들의 D, 5D를 적용하여 윈도우법에서의 필요로 하는 사전 계산 인자의 전부를 산출한다. 본 처리예 A는 이하의 3개의 처리로 구성된다.
(처리 A1) 베이스 포인트(D와 5D)가 weight 1의 퇴화인자인 D를 효율적으로 찾는 처리
(처리 A2) 퇴화인자(D, 5D)를 적용하여, wNAF 전개 데이터를 변환하고, 퇴화인자만으로 이루어지는 변환 wNAF 전개 데이터를 생성하는 처리
(처리 A3) 퇴화인자(D, 5D)만에 의해 표현된 사전산출 데이터를 적용한 스칼라배산 연산 처리
이하, (처리 A1) 내지 (처리 A3)의 순서로, 각 처리의 상세에 관해 설명한다.
(처리 A1) 베이스 포인트(D와 5D)가 weight 1인 인자를 효율적으로 찾는 처리
베이스 포인트(D와 5D)의 쌍방이 퇴화인자, 즉 모두 웨이트(w)=1인 인자의 탐색 처리는, D를 베이스 포인트로 하여 5D를 계산하기까지의 Harley의 공식을 사용하여 w(D)=w(5D)=1이 되는 D의 조건을 유도하는 방법을 적용한 처리로서 실행된다. 그리고, w(D)=w(5D)=1은, 인자(D, 5D)가 모두 웨이트(w)=1인 것을 의미한다.
전술한 바와 같이 Harley의 알고리즘은 정의체를 소체, 종수(2)인 곡선, 인자의 표현은 Mumford 표현을 이용하고 있다. 종수(genus)(2)인 임의의 피약인자(D) 는 멈포드(Mumford) 표현을 이용하면, 유한체(Fq)상의 원을 계수로 갖는 2차 이하의 다항식의 조, 즉,
(U, V)=(x2+u1x+u0, v1x+v0)
로서 표현할 수 있다.
Harley의 공식을 사용하여 w(D)=w(5D)=1이 되는 D의 조건을 유도하기 위해 D로부터 5D를 계산하는 가산 연쇄(addition chain)를 고려한다. 여기서 D, 2D, 4D의 인자의 Mumford 표현을,
D=(x+u, v)
2D=(x2+u1x+u0, v1x+v0)
4D=(x2+w1x+w0, z1x+z0)
라고 한다.
이때, D→2D, 2D→4D, 4D→5D의 산출 처리에 대응하는 Harley 공식은,
D→2D : ExHarDBL1 →2 (Table 8)
2D→4D : HarleyDBL (Table 2)
4D→5D : ExHarADD2 +1→1
이다.
상기한 각 Harley 공식중, 4D→5D : ExHarADD2 +1→ 1는, 인자(D, 4D)의 가산 처 리로서 실행되고, 앞에서 도 1을 참조하여 설명한 종수(g)=2인 Harley 알고리즘의 처리에서의 처리로서는, weight 1+weight 2의 가산 처리에 상당하기 때문에 대응하는 공식은, 도 1에 도시되는 ExHarADD2 +1→2 또는 예외처리 3이다.
상기한 각 Harley 공식중,
D→2D : ExHarDBL1 →2, 및
2D→4D : HarleyDBL
의 각 알고리즘을, 이하의 테이블[Table 8], [Table 2]에 표시한다.
[수식 17]
Figure 112007029603540-pct00017
[수식 18]
Figure 112007029603540-pct00018
베이스 포인트(D)로부터, 그 스칼라배에 의해 산출되는 5D는, 상기 처리, 즉, D→2D→4D→5D에 의해 산출 가능하고, 이 산출 처리 과정에 있어서 구하여지는 관계식을 적용하여, D, 5D가 퇴화인자, 즉 웨이트=1이 되는 베이스 포인트(D)를 검출한다. 베이스 포인트(D)의 탐색 처리의 상세에 관해, 도 6을 참조하여 설명한다.
(스텝 1)
인자(2D)의 Mumford 표현, 즉,
2D=(x2+u1x+u0, v1x+v0)
의 Mumford 표현중의 파라미터 : u1, u0, v1, v0를 D의 Mumford 표현[D=(x+u, v)]에 적용되는 u, v로 표현한다.
도 6에 도시하는 스텝1(step 1)에 도시하는 바와 같이,
u1=u1(u, v)
u0=u0(u, v)
v1=u1(u, v)
v0=u0(u, v)
로 한다. D→2D의 처리로 적용하는 공식, 즉, 앞에 나타낸 테이블 8에 표시하는[ExHarDBL1→2]의 공식으로부터 유도되는 관계식을 이하의 (식 1)에 표시한다.
[수식 19]
Figure 112007029603540-pct00019
… (식 1)
(스텝 2)
인자(4D)의 Mumford 표현,
4D=(x2+w1x+w0, z1x+z0)의 w1, w0, z1, z0를 D의 Mumford 표현[D=(x+u, v)]에 적용되는 u, v로 표현한다.
도 6에 도시하는 스텝 2(step2)에 도시하는 바와 같이,
w1=w1(u, v)
w0=w0(u, v)
z1=z1(u, v)
z0=z0(u, v)
로 한다. 2D→4D의 처리에서 적용하는 공식, 즉, 테이블 2에 표시하는 [HarleyDBL]의 공식중, Table 2에 표시하는 step 1의 r, step 3의 t1, t0와 u1, u0, v1, v0의 관계식을 유도하고, w1, w0, z1, z0를 u1, u0, v1, v0, t1, t0, r로 표현한다. 유도된 관계식을 이하의 (식 2)에 표시한다.
[수식 20]
Figure 112007029603540-pct00020
… (식 2)
또한, 상기 (스텝 1)의 결과를 대입함으로써 w1, w0, z1, z0를 D의 Mumford 표현에 적용되는 u, v만으로 표현한다.
(스텝 3)
5D=D+4D가 weight 1이 되는 조건을 이용하여 u만의 1변수 방정식을 유도한다.
D+4D를 계산하는 방정식은 ExHarADD1 +2→1이다. 이것은, 상술한 바와 같이, 앞에서 설명한 도 1의 Harley의 가산 공식의 분기 처리에 있어서, 인자(D, 4D)의 가산 처리는, weight 1+weight 2의 가산 처리에 상당하기 때문에 대응하는 공식은, 도 1에 도시되는 ExHarADD2 +1→2 또는 예외처리 3이다.
ExHarADD2 +1→2의 알고리즘을, 이하의 테이블[Table 3]에 표시한다.
[수식 21]
Figure 112007029603540-pct00021
상기 테이블 3(Table 3)으로부터 이해되는 바와 같이 ExHarADD2 +1→2의 출력이 퇴화인자(웨이트=1)가 되는 분기는 없기 때문에, 출력이 퇴화인자가 되는 조건을 구하는데는 예외처리 3을 고려할 필요가 있다. 예외처리 3에서, 5D가 퇴화인자, 즉, 웨이트=1인 인자가 되는 조건은, D 및 4D가 이하의 [조건]을 만족하는 경우이다. 즉,
[조건]
D=P-P
4D=-P+Q-2P
를 만족하는 경우이다.
이 경우, 이하의 2개의 조건이 유도된다. 이 2개의 조건에 대응하여 베이스 포인트(D)의 u, v에 관한 2개의 방정식이 성립한다.
(조건 1)
w1(u, v)×u+w0(u, v)=0
… (식 3a)
(조건 2)
z1(u, v)×u+z0(u, v)=v+h(u)
… (식 4a)
조건 1, 2에 대응하는 방정식을 각각 (식 3a), (식 4a)라고 한다. 이 조건 1, 2가 도 6의 스텝 3(step 3)에 도시하는 조건이다.
상기 식 3a, 식 4a는 각각 D의 Mumford 표현으로서의 D=(x+u, v)에 적용되는 u, v에 관한 방정식이다. 그러나, 이하에 기술하는 방법에 의해 상기 식 3, 식 4a는, 모두 u에 관한 1변수 방정식으로 변형할 수 있다.
즉, 초타원곡선의 정의식으로부터 v2는,
v2=h(u)v+f(u)
이다.
이 식을 사용하면, v의 2차 이후의 식은 전부 v의 1 차식으로 변형할 수 있다. 이것을 반복함에 의해 v의 차수를 내려갈 수가 있다. 이것을 이용하여, 식 3a 를 형식적으로 표현하면,
G1(u, v)=a1(u)+b1(u)v=0
의 형식으로 변형할 수 있다. 또한 G의 공역(共役)의 다항식을
G1(u, v)=a1(u)+b1(u)(v+h(u))
라고 정의하면,
N1=G1×G1'=a1 2+a1b1h+b1 2f로 되고, 최종적으로 u만의 1변수 방정식으로서 하기한 (식 3b), 즉,
N1(u)=0
… (식 3b)
를 유도할 수 있다.
식 4a에 대해서도 같은 처리를 행한다. 마찬가지로 유도된 u의 1변수 방정식을, N2(u)=0
… (식 4b)
로 한다.
상기 식 (식 3b), (식 4b)중의 N1, N2은 구체적으로 상술한 스텝에 따라 계산하여 가면, 각각 53차, 72차의 u의 다항식으로 된다. 1변수의 유한 차수의 다항식 방정식은 일반적으로 다항식 시간에 풀리는 것이 알려져 있다. 이들의 다항식 각각에 관해, u의 해(解)를 구한다.
(스텝 4)
스텝 3에서 구한 2개의 방정식의 해가 공통해를 갖는 경우, 그 공통해를 인자의 u로 한다.
산출한 u에 의거하여, 초타원곡선의 식 v2+h(u)=f(u)에, u를 대입하여, v를 구한다. 산출한 u, v에 의거하여, 베이스 포인트(D)로서의 퇴화인자 : D=(x-u, v)를 결정한다.
이와 같이 하여 산출된 베이스 포인트 : D는, 웨이트가 1인 퇴화인자이고, 또한, 5D에 관해서도 웨이트=1인 퇴화인자인 것이 보증된다.
도 7에 도시하는 플로우 차트를 참조하여, 퇴화인자(D, 5D)를 생성하는 처리 순서에 관해 설명한다. 우선, 스텝 S201에서, 초타원곡선의 파라미터를 입력한다. 전술한 바와 같이, 초타원곡선에서는 곡선을 특징짓는 값은 종수(genus)(g)이다. p를 소수, n를 정의 정수, q=pn으로 한다. 이때 유한체(Fq)상에서 정의되는 종수(g)인 초타원곡선(C)은 이하의 방정식,
y2+h(x)y=f(x)
로 정의된다. 여기서, h(x), f(x)∈Fq[x], f(x)는, 차수 2g+1의 monic 다항식이다.
여기서는 초타원곡선의 방정식을 y2+h(x)=f(x),
h(x)=x2+h1x+h0,
f(x)=x5+f3x3+f1x+f0
로 하고 있다.
이와 같이, 종수(g)=2인 초타원곡선은, 파라미터로서 h1, h0, f3, f1, f0를 설정함으로써 정의된다.
스텝 S202에서, 5D=D+4D가 weight 1이 되는 조건을 이용하여 u만의 1변수 방정식, 즉, 상술한 식,
N1(u)=0 … (식 3b)
N2(u)=0 … (식 4b)
로부터 공통해(u)를 구한다.
이것은, 전술한 바와 같이, 인자(D, 4D)의 가산 처리로서 실행된 5D=D+4D의 처리에 있어서, 도 1에 도시하는 예외처리 3에서, 5D가 퇴화인자, 즉, 웨이트=1인 인자가 되는 조건으로서 설정되는 [조건]으로부터 유도되는 식이다. 즉,
[조건]
D=P-P
4D=-P+Q-2P
로부터 하기한 조건식, 즉,
(조건 1)
w1(u, v)×u+w0(u, v)=0
… (식 3a)
(조건 2)
z1(u, v)×u+z0(u, v)=v+h(u)
… (식 4a)
를 유도하고, 또한, 초타원곡선의 정의식
v2=h(u)v+f(u)
를 적용하여, 식 3a, 식 4a에서의 v의 2차 이후의 식을 전부 v의 1차식으로 변형하는 처리를 행함에 의해 v의 차수를 내려서, 식 3a를,
G1(u, v)=a1(u)+b1(u)v=0
의 형식으로 변형하고, 또한 G의 공역의 다항식을
G1(u, v)=a1(u)+b1(u)(v+h(u))
로 정의함으로써,
N1=G1×G1'=a1 2+a1b1h+b1 2f로 하여, 최종적으로 u만의 1변수 방정식으로서,
N1(u)=0 … (식 3b)
를 유도하고, 마찬가지의 처리에 의해,
N2(u)=0 … (식 4b)
를 유도한 것이다.
스텝 202에서는, 이들의 식,
N1(u)=0 … (식 3b)
N2(u)=0 … (식 4b)
로부터 공통해(u)를 구한다.
이들의 식에 공통해가 존재하지 않는 경우(스텝 S203 : No)는, 스텝 S201로 되돌아와, 파라미터 : h1, h0, f3, f1, f0을 재설정하여, 공통해(u)의 산출을 실행한다.
공통해(u)가 산출되면(스텝 S203 : Yes), 스텝 S204로 나아가서, 초타원곡선의 식 : v2+h(u)=f(u)에 대입하여 v를 구한다. 또한, 스텝 S205에서, 산출한 u, v에 의거하여, 베이스 포인트로서의 퇴화인자(D)=(x-u, v)를 결정한다.
(처리 A2) 퇴화인자(D, 5D)를 적용하여, wNAF 전개 데이터를 변환하고, 퇴화인자만으로 이루어지는 변환 wNAF 전개 데이터를 생성한 처리
상술한 처리에 의해, 종수(g)=2인 초타원곡선에서, 웨이트(weight)=1이 되는 퇴화인자로서의 베이스 포인트(D, 5D)를 검출할 수 있다. 다음에, 이들의 인자(D, 5D)를 적용하여 단순 전력 해석(SPA) 등의 해석 공격에 대한 내성을 보존한 wNAF (width-wNon-Adjacent Form) 전개 데이터의 생성을 행하는 처리에 관해 설명한다.
wNAF 전개란, 전술한 윈도우법의 처리에서 설명한 바와 같이, 스칼라배 연산 처리[D=dD]에서 적용하는 스칼라값[d]를 소정 항수로 이루어지는 분할 블록으로 분 할하는 처리이고, 승수로서 설정되는 스칼라값 : d를,
|00…0x|00…0x|00…0x|…
단, x는 홀수(±1, ±3…)
가 되는 분할 블록으로 분할하는 처리이다.
상술한 처리에 의해 검출한 퇴화인자(D, 5D)만으로는, SPA 내성이 있는 스칼라배산을 행할 수가 없다. 예를 들면 전술한 윈도우법(wNAF)에서, 스칼라값[d]의 분할 블록 사이즈(항수)를 2로 한 경우,
|01|, |03|, |0(-1)|, |0(-3)|
에 대응한 블록값에 의거한 산출 데이터로서, ±D, ±3D의 각 값을 사전산출 데이터로서 테이블에 보존하는 것이 필요하게 된다.
또한, 스칼라값[d]의 분할 블록 사이즈(항수)를 3으로 한 경우,
|001|, |003|, |005|, |007|,
|00(-1)|, |00(-3)|, |00(-5)|, |00(-7)|,
에 대응하는 블록값에 의거한 산출 데이터로서, ±D, ±3D, ±5D, ±7D의 각 값을 사전산출 데이터로서 테이블에 보존하는 것이 필요하게 된다.
그러나, 본 처리예에서는, 상술한 처리에 의해 생성되는 퇴화인자는, D, 5D뿐이기 때문에, 예를 들면, 스칼라값[d]의 분할 블록 사이즈(항수)를 3으로 한 경우, 사전 계산 데이터로서 필요하게 되는 ±D, ±3D, ±5D, ±7D의 일부가 산출되지 않아, 이대로는, 전술한 윈도우법을 실행할 수가 없다. 예를 들면 D, 5D 이외에 필요하게 되는 3D, 7D 등을, 별도로 산출하여 사전산출 데이터로서 적용하는 것도 가능하지만, 이 경우에는, 전술한 바와 같이 이들의 값이 퇴화인자 이외의 인자로 설정될 가능성이 매우 높아, 스칼라배산에서 실행하는 가산 연산에서 퇴화인자를 포함한 가산 처리와, 비퇴화인자만의 가산 처리가 혼재하여 버리게 된다. 이 경우, 이들의 연산에 의한 소비 전력, 시간 등이 분명히 다른 것에 기인하여 단순 전력 해석(SPA) 등의 각종 공격에 대한 취약성이 발생한다는 문제가 있다.
본 처리예에서는, 상술한 처리에 의해 검출한 퇴화인자(D, 5D)를 적용하여 단순 전력 해석(SPA) 등의 해석 공격에 대한 내성을 갖는 윈도우법(widow 법)에 의한 스칼라배산을 실현한다.
퇴화인자(D, 5D)를 적용하여 단순 전력 해석(SPA)에 대한 내성을 갖는 윈도우법(widow 법)에 의한 스칼라배산을 실현하기 위한 개량된 wNAF 전개를 여기서는 wNAF(1, 5)라고 부르기로 한다. wNAF(1, 5)는, 종래의 wNAF 전개 데이터의 변환 처리를 수반하는 처리로서 실행되고, 종래의 wNAF 전개 데이터에 대해 변환 테이블을 적용한 변환 처리를 행한다. wNAF 전개 데이터의 변환 처리는, 도 8에 도시하는 처리 스텝에 의해 실현된다.
우선, 스텝 S231에서, 앞서의 [(1B)윈도우(Window)법을 적용한 처리예]에서, 도 5를 참조하여 설명한 스텝 S153의 처리와 같은 처리에 의해 통상의 wNAF 전개를 행한다.
즉, 승수로서 설정되는 스칼라값 : d를 wNAF 전개한다. wNAF 전개는, 상술한 바와 같이, 승수로서 설정되는 스칼라값 : d를,
|00…0x|00…0x|00…0x|…
단, x는 홀수(±1, ±3…)
가 되는 분할 블록으로 분할하는 처리이다.
여기서는, 윈도우 사이즈=3으로 한 처리예에 관해 설명한다. 윈도우 사이즈=3으로 하여 승수(d)를 wNAF 전개한다. 테이블에 보존하여야 할 사전산출 데이터[dD]로서는, ±D, ±3, ±5D, ±7D가 선택된다.
다음에, 스텝 S232에서, 테이블에 보존하여야 할 사전산출 데이터인, ±D, ±3, ±5D, ±7D를, 도 8(b)에 도시하는 변환 테이블을 사용하여 산출되어 있는 퇴화인자(D, 5D)에 의해 표현 가능한 ±1, ±5만을 적용한 표현 형식으로 변환한다.
도 8(b)에 도시하는 변환 테이블은 이하의 구성을 갖는다.
+D 산출에 적용하는 분할 블록 [001]→[001]로 변환(변경없음),
+3D 산출에 대응하는 분할 블록 [003]→[011]로 변환,
+5D 산출에 대응하는 분할 블록 [005]→[005]로 변환(변경없음),
+7D 산출에 대응하는 분할 블록 [007]→[015]로 변환,
-D 산출에 적용하는 분할 블록 [00(-1)]→[00(-1)]로 변환(변경없음),
-3D 산출에 대응하는 분할 블록 [00(-3)]→[0(-1)(-1)]로 변환,
-5D 산출에 대응하는 분할 블록 [00(-5)]→[00(-5)]로 변환(변경없음),
-7D 산출에 대응하는 분할 블록 [00(-7)]→[0(-1)(-5)]로 변환,
이 변환 테이블에 의한 변환에 의해, 테이블에 보존하여야 할 사전산출 데이터인 [±D, ±3, ±5D, ±7D]를, 퇴화인자(D, 5D)에 의해 표현 가능한 ±1, ±5만을 적용한 표현 형식으로 변환한다.
상술한 처리에 의해, 테이블에 보존하여야 할 사전산출 데이터인 [±D, ±3, ±5D, ±7D]는, 퇴화인자(D, 5D)에 의해 표현 가능한 ±1, ±5만을 적용한 표현 형식으로 변환된다. 스칼라배산(D)=dD는, 이 표현 형식을 적용하여, 퇴화인자(D, 5D)를 적용한 가산 처리, 즉, 퇴화인자만에 의한 가산 처리를 포함하는 연산 처리에 의해 실현된다.
(처리 A3) 퇴화인자(D, 5D)만에 의해 표현된 사전산출 데이터를 적용한 스칼라배산 연산 처리
다음에, 상술한 처리에 의해, 테이블에 보존하여야 할 사전산출 데이터인 [±D, ±3, ±5D, ±7D]를, 퇴화인자(D, 5D)만을 적용한 변환 데이터로 하고, 이들의 데이터를 적용하고 실행한 스칼라배산 처리[D=dD]의 알고리즘에 관해 설명한다.
본 처리예에서의 스칼라배산 알고리즘[알고리즘 7]을 이하에 표시한다.
[수식 22]
Figure 112007029603540-pct00022
상기 알고리즘에 있어서, δ은 d[i]=0일 때 0, 그 밖의 d[i]에 대해서는 1이 되는 함수이다. [~]는 δ의 비트 반전(反轉)을 나타내고 있고, δ가 1일 때 0, δ가 0일 때 1을 취한다.
상기 알고리즘에서는, ±D, ±3, ±5D, ±7D를, 미리 검출이 끝난 퇴화인자(D, 5D)만에 의해 표현하고, 스칼라배산 알고리즘에서 발생하는 가산 처리는, 전부 퇴화인자+비퇴화인자의 가산 처리로서 실현되어 있다. 또한 변환 후의 테이블에서 2nd비트가 0인 경우, 더미의 연산을 행하고 있다. 따라서, 고속화 연산이 가능하고, 또한 비퇴화인자에 의한 가산 처리가 혼재하지 않기 때문에, 퇴화인자와 비퇴화인자의 연산 처리 시간이나, 연산 처리에 수반하는 소비 전력의 차이가 발생하지 않아, 연산 시퀀스의 해석으로서의 SPA, TA 해석에 대한 내성도 손상되는 일이 없는 안전하고 고속의 연산이 실현된다.
상술한 종수(g)(2)인 곡선에서, 베이스 포인트(D와 5D)의 쌍방이 웨이트(weight)=1이 되는 퇴화인자를 탐색하고, 탐색한 퇴화인자(D, 5D)만을 적용하여, wNAF 전개 데이터를 변환하고, 변환한 wNAF 전개 데이터를 적용하여 스칼라배산을 실행하는 처리의 전체 시퀀스에 관해, 도 9에 도시하는 플로우 차트를 참조하여 설명한다.
우선, 도 9의 스텝 S251에서, 베이스 포인트([D]와, [5D])가 모두 퇴화인자, 즉 웨이트=1인 퇴화인자가 되는 인자를 검출한다. 이 퇴화인자 검출 처리는, 앞에서, 도 6, 도 7을 참조하여 설명한 처리에 의해 구하여진다. 즉, 도 1에 도시하는 예외처리 3에서, 5D가 퇴화인자, 즉, 웨이트=1인 인자가 되는 조건으로서 설정되는 [조건]과, 초타원곡선의 정의식 : v2=h(u)v+f(u)에 의거하여, 전술한
N1(u)=0 … (식 3b)
N2(u)=0 … (식 4b)
로부터 공통해(u)를 구하고, 구한 u로부터, 초타원곡선의 식 : v2+h(u)=f(u)에 대입하여 v를 구하고, 또한, 산출한 u, v에 의거하여, 베이스 포인트로서의 퇴화인자(D)=(x-u, v)를 결정하는 처리로서 실행한다.
스텝 S252에서는, 스텝 S251에서 산출한 베이스 포인트(D)에 의거하여, 또하나의 퇴화인자(5D)를 사전산출한다. 산출 처리는,
D→2D : ExHarDBL1 →2 (Table 8)
2D→4D : HarleyDBL (Table 2)
4D→5D : ExHarADD2 +1→1
상기 산출 처리 공정에 의해 실행할 수 있다.
스텝 S253에서는, 스칼라배산(D)=dD에서의 승산 데이터로서의 스칼라값(d)을 wNAF 전개하고, 또한, wNAF 전개 데이터를 스텝 S251, S252에서 산출한 퇴화인자(D, 5D)를 적용하여 변환한 변환 wNAF 전개 데이터를 생성한다. 즉, 윈도우 사이즈=3인 경우, 통상의 wNAF 전개 처리에 의해 사전산출 데이터로서 필요하게 되는 [±D, ±3, ±5D, ±7D]를 퇴화인자(D, 5D)만에 의해 표현한 변환 wNAF 전개 데이터를 생성한다. 변환 처리에는, 앞에서 도 8을 참조하여 설명한 변환 테이블을 적용하고, 변환 테이블에 따른 변환 처리가 실행된다.
최후로, 스텝 S254에서, 스칼라배산(D)=dD를 실행한다. 이 스칼라배산에서는, 퇴화인자(D, 5D)만에 의해 표현된 사전산출 데이터를 적용한 스칼라배산 연산 처리로서 실행되고, 앞에서 설명한 알고리즘[알고리즘 7]에 따른 처리로서 실행된다. 이 스칼라배산에서는, 통상의 wNAF 적용 처리에서, 필요하게 되는 사전산출 데이터인 [±D, ±3, ±5D, ±7D]를, 퇴화인자(D, 5D)만을 적용한 처리로 변경하고 있고, 스칼라배산 알고리즘에서의 발생하는 가산 처리는, 전부 퇴화인자에 의한 가산 처리로서 실현된다. 따라서, 고속화 연산이 가능하고, 또한 비퇴화인자에 의한 가산 처리가 혼재하지 않기 때문에, 퇴화인자와 비퇴화인자의 연산 처리 시간이나, 연산 처리에 수반하는 소비 전력의 차이가 발생하지 않아서, 연산 시퀀스의 해석으로서의 SPA, TA 해석에 대한 내성도 손상되는 일이 없는 안전하고 고속의 연산이 실현된다.
[(처리예 B) 종수(g)(3)인 곡선에서, 베이스 포인트(D와 3D)의 쌍방이 웨이트(weight)=2가 되는 퇴화인자를 효율적으로 검출하고, 검출한 퇴화인자(D, 3D)만을 적용하여, wNAF 전개 데이터를 변환하고, 변환한 wNAF 전개 데이터를 적용하여 스칼라배산을 실행하는 처리]
다음에, 종수(g)(3)인 곡선에서, 베이스 포인트(D와 3D)의 쌍방이 웨이트(weight)=2가 되는 퇴화인자를 효율적으로 검출하고, 검출한 퇴화인자(D, 3D)만을 적용하여, wNAF 전개 데이터를 변환하고, 변환한 wNAF 전개 데이터를 적용하여 스칼라배산을 실행하는 처리에 관해 설명한다.
본 처리예에서는, 종수(g)(3)인 초타원곡선에서, 베이스 포인트([D]와, [3D])가 모두 퇴화인자, 즉 웨이트=2인 퇴화인자가 되는 인자를 효율적으로 검출하고, 이들의 D, 3D를 적용하여, wNAF 전개 데이터를 변환하고, 퇴화인자만으로 이루어지는 변환 wNAF 전개 데이터를 적용하여 스칼라배산을 실행한다.
전술한 바와 같이, 랜덤한 탐색 처리에 의해, 베이스 포인트(D, 3D)가 동시에 퇴화인자가 되는 베이스 포인트(D)를 전체의 수를 탐색하는 것은 확률적으로 불가능하다. 본 처리예에서는, D, 3D가 모두 퇴화인자가 되는 베이스 포인트(D)의 효율적 탐색을 실현한다. 또한 스칼라배산의 처리에서는, 사전 계산 인자로서, D, 3D를 준비하고, 이들의 D, 3D를 적용하여 윈도우법에서 필요로 하는 사전 계산 인자 의 전부를 산출한다. 종수(g)(3)인 경우, 종수(g)(2)인 경우와 같이 변환이 필요해지지 않기 때문에 D, 3D만으로 충분하다. 본 처리예 A는 이하의 3개의 처리로 구성된다.
(처리 B1) 베이스 포인트(D와 3D)가 weight 2의 퇴화인자인 D를 효율적으로 찾는 처리
(처리 B2) 퇴화인자(D, 3D)만에 의해 표현된 사전산출 데이터를 적용한 스칼라배산 연산 처리 이하,
(처리 B1) 내지 (처리 B2)의 순서로, 각 처리의 상세에 관해 설명한다.
(처리 B1) 베이스 포인트(D와 3D)를 weight 2인 인자를 효율적으로 찾는 처리
베이스 포인트(D와 3D)의 쌍방이 퇴화인자, 즉 모두 웨이트(w)=2인 인자의 탐색 처리는, D를 베이스 포인트로 하여 3D를 계산하기까지의 Harley의 공식을 사용하여 w(D)=w(3D)=2가 되는 D의 조건을 유도하는 방법을 적용한 처리로서 실행된다. 또한, w(D)=w(3D)=3은, 인자(D, 3D)가 모두 웨이트(w)=2인 것을 의미한다.
w(D)=w(3D)=2가 되는 D의 조건을 유도하기 위해 D로부터 3D를 계산하는 가산 연쇄(addition chain)를 고려한다. 여기서 D, 2D의 인자의 Mumford 표현을, D=(x2+u21x+u20, v21x+v20)
2D=(x3+u12x2+u11x+u10, v12x2+v11x+v10)
으로 한다.
이때, D→2D, 2D→3D의 산출 처리에 대응하는 Harley 공식은,
D→2D : ExHarDBL2 →3 (Table 9)
2D→3D : ExHarADD2 +3→2 (Table 7)
이다.
상기한 각 Harley 공식,
D→2D : ExHarDBL2 →3 (Table 9)
2D→3D : ExHarADD2 +3→2 (Table 7)
의 각 알고리즘을, 이하의 테이블[Table 9], [Table 7]에 표시한다.
[수식 23]
Figure 112007029603540-pct00023
[수식 24]
Figure 112007029603540-pct00024
베이스 포인트(D)로부터, 그 스칼라배에 의해 산출된 3D는, 상기 처리, 즉, D→2D→3에 의해 산출 가능하고, 이 산출 처리 과정에서 구하여지는 관계식을 적용하여, D, 3D가 퇴화인자, 즉 웨이트=2가 되는 베이스 포인트(D)를 검출한다. 베이스 포인트(D)의 검출 처리의 상세에 관해, 도 10을 참조하여 설명한다.
[0206] (스텝 1)
인자(2D)의 Mumford 표현,
2D=(x3+u12x2+u11x+u10, v12x2+v11x+v10)
의 u12, u11, u10, v12, v11, v10를 D의 Mumford 표현[D=(x2+u21x+u20, v21x+v20)]에 적용되는 u21, u20, v21, v20로 표현한다.
도 10에 도시하는 스텝1(step 1)에 도시하는 바와 같이,
u12=u12(u21, u20, v21, v20)
u11=u11(u21, u20, v21, v20)
u10=u10(u21, u20, v21, v20)
v12=v12(u21, u20, v21, v20)
v11=v11(u21, u20, v21, v20)
v10=v10 (u21, u20, v21, v20)
으로 한다. D→2D의 처리로 적용하는 공식, 즉, 앞에 표시한 테이블 9에 표시하는 [ExHarDBL2→3]의 공식으로부터 유도된 관계식을 이하의 (식 5)에 표시한다.
[수식 25]
Figure 112007029603540-pct00025
… (식 5)
상기 식(식 5)중의 s1, s0, r은, 이하의 식(식 6)에 의해 주어지는 (u21, u20, v21, v20)의 함수이다.
[수식 26]
Figure 112007029603540-pct00026
… (식 6)
(스텝 2)
3D=D+2D가 weight 2가 된 조건을 이용하여, 탐색하는 방정식[t1=0]을 구한다.
3D=D+2D가 weight 2가 되는 조건을 유도하기 위해,
2D→3D : ExHarADD3 +2→3 (Table 7)의 알고리즘에 관해 고찰한다. 상기한 테이블 7(Table 7)의 스텝 3에 있어서,
t1=0
이 된 경우, 스텝 6에서 구하여지는 3D의 Mumford 표현으로서의 u3의 다항식 차수가 2차, 즉 weight 2로 된다. 따라서
t1=0
이, 3D=D+2D가 weight 2가 되는 조건이다.
도 10, 스텝 2에 도시하는 바와 같이,
t1=t1(u12, u11, u10, v12, v11, v10, u21, u20, v21, v20)
로 하여, D, 2D의 Mumford 표현,
D=(x2+u21x+u20, v21x+v20)
2D=(x3+u12x2+u11x+u10, v12x2+v11x+v10)
의 계수에 의한 함수로 한다.
t1=t1(u12, u11, u10, v12, v11, v10, u21, u20, v21, v20)
는, 이하의 식(식 7)으로서 표시된다.
[수식 27]
Figure 112007029603540-pct00027
… (식 7)
또한, 상기 식(식 7)을 정리하여, D의 Mumford 표현,
D=(x2+u21x+u20, v21x+v20)
의 계수(u21, u20, v21, v20)만의 식으로 변환한다. 이 식 변환은, 스텝 1에서 구한 관계식, 즉,
u12=u12(u21, u20, v21, v20)
u11=u11(u21, u20, v21, v20)
u10=u10(u21, u20, v21, v20)
v12=v12(u21, u20, v21, v20)
v11=v11(u21, u20, v21, v20)
v10=v10(u21, u20, v21, v20)
을 적용한다.
이와 같이 하여 구하여진 조건식
t1=t1(u21, u20, v21, v20 )=0
을 구한다.
(스텝 3)
다음에, 도 10의 스텝 3에 도시하는 바와 같이, 스텝 2에서 구한 조건식,
t1=t1(u21, u20, v21, v20)=0
에 포함된 파라미터(u21, u20, v21, v20)를, 초타원곡선상의 점 : P(x1, y1), Q(x2, y2)로 표현한다.
전술한 바와 같이, 종수(genus)(3)인 임의의 피약인자(D)는 멈포드(Mumford) 표현을 이용하면 유한체(Fq)상의 원을 계수로 갖는 3차 이하의 다항식의 조, 즉,
(U, V)=(x3+u2x2+u1x+u0, v2x2+v1x+v0)
로서 표현할 수 있고, 종수(g)인 초타원곡선(C)은 이하의 방정식,
y2+h(x)y=f(x)
로 정의된다. 여기서, h(x), f(x)∈Fq[x], f(x)는, 차수 2g+1의 monic 다항식이다. 이들 멈포드(Mumford) 표현의 정의에 의거하여,
t1=t1(u21, u20, v21, v20)=0
에 포함되는 파라미터(u21, u20, v21, v20)를, 초타원곡선상의 점 : P(x1, y1), Q(x2, y2)로 표현하면, 도 10의 스텝 3에 도시하는 관계식, 즉, 이하의 식(식 8)으로 표시하는 관계식이 설정된다.
u21=x1+x2
u20=x1x2
v21=(y1+y2)/(x1+x2)
v20=v21x1+y1 … (식 8)
상기 식(식 8)에 의거하여, 조건식
t1=t1(u21, u20, v21, v20)=0
로부터, 하기 식(식 9)
t1=t1(x1, x2, y1, y2)=0
… (식 9)
를 얻는다.
(스텝 4)
다음에, 도 10의 스텝 4에 도시하는 바와 같이, 스텝 2에서 구한 조건식,
t1=t1 (x1, x2, y1, y2)=0
에 있어서, x1, y1를 정수(定數)로 간주하고, x2, y2에 관한 방정식으로서, 다시, y2의 차수를 내려가는 처리를 행한다. 이것은, 앞에서 종수(2)인 경우에 설명한 (식 3b)의 생성 처리와 같은 처리이고, 초타원곡선의 정의식,
y2+h(x)y=f(x)를 사용함으로써, y2의 차수를 내려갈 수가 있다. 이것을 이용하여, 식 9를 형식적으로 표현하면,
G3(x2, y2)=a3(x2)+b3(x2)y2=0
의 형식으로 변형할 수 있다. 또한 G3의 공역의 다항식을
G3'=a3(x2)+b3(x2)(y2+h(x2))
로 정의하면,
N3=G×G'=a2+abh+b2f로 되고, 최종적으로 x2만의 방정식으로서 하기한 (식 10), 즉,
N3(x2)=0
… (식 10)
을 유도할 수 있다.
(스텝 5)
상기 식
N3(x2)=0 (식 10)
이 해(x2)를 갖을 수가 있으면, 전술한 식(식 8), 즉,
u21=x1+x2
u20=x1x2
v21=(y1+y2)/(x1+x2)
v20=v21x1+y1에 의거하여, 인자(D)=(x2+u21x+u20, v21x+v20)를 구할 수 있다.
구체적으로, 상기 스텝에 따라 x2에 관한 1변수 다항식을 유도하면, 29차 다항식을 얻을 수 있다. 앞에서 설명한 종수(g)=2인 경우와 마찬가지로 1변수의 유한 차수의 다항식 방정식은 일반적으로 다항식 시간으로 풀리는 것이 알려져 있다. 이들의 다항식에 의거하여 x2의 해를 구한다.
(스텝 6)
N3 (x2)=0
의 해(x2)가 산출되면, 초타원곡선의 정의식,
y2+h(x)y=f(x)
에 x2를 대입해 y2를 구한다.
또한, 초타원곡선상의 점 : P(x1, y1), Q(x2, y2)로부터 베이스 포인트(D),
즉, D=(x2+u21x+u20, v21x+v20)
를 구한다.
이와 같이 하여 산출된 베이스 포인트 : D는, 웨이트가 2인 퇴화인자이고, 또한, 3D에 관해서도 웨이트=2의 퇴화인자인 것이 보증된다.
도 11에 도시하는 플로우 차트를 참조하여, 퇴화인자(D, 3D)를 생성하는 처리 순서에 관해 설명한다. 우선, 스텝 S301에서, 초타원곡선의 파라미터를 입력한다. 전술한 바와 같이, 초타원곡선에서는 곡선을 특징짓는 값은 종수(genus)(g)이다. p를 소수, n를 정의 정수, q=pn으로 한다. 이때 유한체(Fq)상에서 정의되는 종수(g)인 초타원곡선(C)은 이하의 방정식,
y2+h(x)y=f(x)
로 정의된다. 여기서, h(x), f(x)∈Fq[x], f(x)는, 차수 2g+1의 monic 다
식이다.
여기서는 초타원곡선의 방정식을 y2+h(x)=f(x),
h(x)=x3+h2x2+h1x+h0,
f(x)=x7+f5x5+f4x4+f3x3+f2x2+f1x+f0
로 하고 있다.
이와 같이, 종수(g)=3인 초타원곡선은, 파라미터로서 h2, h1, h0, f5, f4, f3, f2, f1, f0를 설정함으로써 정의된다.
스텝 S302에서, 랜덤하게 초타원곡선상의 점(P)(x1, y1)을 생성하고, 방정식 : N3(x2, x1, y1)=0에 대입한다.
N3(x2, x1, y1)=0
은, 전술한 바와 같이, 2D→3D : ExHarADD3 +2→3 (Table 7)의 알고리즘, 즉 상기한 테이블 7(Table 7)의 스텝 3에 있어서,
t1=0
이, 3D=D+2D를 weight 2로 하는 조건이기 때문에, 유도되는 식이고, 멈포드(Mumford) 표현의 정의에 의거하여,
t1=t1(u21, u20, v21, v20)=0
에 포함되는 파라미터(u21, u20, v21, v20)를, 초타원곡선상의 점 : P(x1, y1), Q(x2, y2)으로 표현하고,
u21=x1+x2
u20=x1x2
v21=(y1+y2)/(x1+x2)
v20=v21x1+y1
조건식을,
t1=t1(x1, x2, y1, y2)=0
으로서 설정하고, 또한, x1, y1를 정수로 간주하고, x2, y2에 관한 방정식으로서, 초타원곡선의 정의식, y2+h(x)y=f(x)
를 사용하고, y2의 차수를 내려서,
t1=t1(x1, x2, y1, y2)=0
을,
G3(x2, y2)=a3(x2)+b3(x2)y2=0
의 형식으로 변형하고, 또한 G3의 공역의 다항식을
G3'=a3(x2)+b3(x2)(y2+h(x2))
로 정의하여,
N3=G×G'=a2+abh+b2f로서 생성된 식이다.
또한, 스텝 S303에서, N3=G×G'=a2+abh+b2f로부터, 최종적으로 x2만의 방정식, 즉, 전술한 식(식 10)
N3(x2)=0
에 따라, 해(x2)를 구한다.
식 : N3(x2)=0
에 해가 존재하지 않는 경우(스텝 S304 : No)는, 스텝 S302로 되돌아와, 파라미터 : h2, h1, h0, f5, f4, f3, f2, f1, f0를 재설정하고, 해(x2)의 산출을 실행한다.
해(x2)가 산출되면(스텝 S304 : Yes), 스텝 S305로 나아가고, 초타원곡선의 식 : y2+h(x)=f(x)에 x2를 대입하여 y2를 구한다. 또한, 스텝 S306, 스텝 S307에서, 초타원곡선상의 점 : P(x1, y1), Q(x2, y2)로부터 베이스 포인트(D), 즉,
D=(x2+u21x+u20, v21x+v20)
를 구한다.
이와 같이 하여 산출된 베이스 포인트 : D는, 웨이트가 2인 퇴화인자이고, 또한, 3D에 대해서도 웨이트=2인 퇴화인자인 것이 보증된다.
(처리 B2)
퇴화인자(D, 3D)만에 의해 표현된 사전산출 데이터를 적용한 스칼라배산 연산 처리
다음에, 퇴화인자(D, 3D)만을 적용하고, 사전산출 데이터[±D, ±3]를 이용한 스칼라배산 처리[D=dD]의 알고리즘에 관해 설명한다. 또한, 이 처리예에서는, 윈도우법(wNAF)에서 윈도우 사이즈=2로 한 처리예이고, wNAF법에서 필요하게 되는 사전산출 데이터는, [±D, ±3]이고, 전술한 처리에서의 구한 퇴화인자(D, 3D)로부터 직접 산출 가능한 값으로 된다. 따라서, 전술한 처리예, 즉, 종수(2)로서 윈도우 사이즈=3으로 한 경우와 같이, 변환 테이블을 적용한 변환 처리는 불필요하게 된다.
본 처리예에서의 스칼라배산 알고리즘[알고리즘 8]을 이하에 표시한다.
[수식 28]
Figure 112007029603540-pct00028
상기 알고리즘에 있어서, 전술한 종래의 윈도우법(wNAF)에서 설명한 알고리즘(알고리즘 6)과의 차이는, 2개의 퇴화인자(D, 3D)를 입력(input)으로 하는 것과, 스텝 2. 2에서 가산 처리가 퇴화인자+비퇴화인자의 가산 처리로서 실행되는 점이다. 이와 같이, 스칼라배산 알고리즘에서 발생하는 가산 처리는, 전부 퇴화인자를 포함하는 가산 처리로서 실현된다. 따라서, 고속화 연산이 가능하고, 또한 비퇴화인자만의 가산 처리가 혼재하지 않기 때문에, 퇴화인자와 비퇴화인자의 연산 처리 시간이나, 연산 처리에 수반하는 소비 전력의 차이가 발생하지 않아서, 연산 시퀀스의 해석으로서의 SPA, TA 해석에 대한 내성도 손상되는 일이 없는 안전하고 고속의 연산이 실현된다.
상술한 종수(g)(3)인 곡선에서, 베이스 포인트(D와 3D)의 쌍방이 웨이트(weight)=2가 되는 퇴화인자를 검출하고, 검출한 퇴화인자(D, 3D)를 입력치로 하여, 스칼라배산을 실행하는 처리의 전체 시퀀스에 관해, 도 12에 도시하는 플로우 차트를 참조하여 설명한다.
우선, 도 12의 스텝 S351에서, 베이스 포인트([D]와, [3D])가 모두 퇴화인자, 즉 웨이트=2인 퇴화인자가 되는 인자를 검출한다. 이 퇴화인자 검출 처리는, 앞에서, 도 10, 도 11을 참조하여 설명한 처리에 의해 구하여진다. 즉, 2D→3D : ExHarADD3+2→3 (Table 7)의 알고리즘의 스텝 3에 있어서,
t1=0
이, 3D=D+2D를 weight 2로 하는 조건이기 때문에, 유도되는 식,
N3(x2)=0
를 성립시키는 해(x2)를 구하고, 구한 x2로부터, 초타원곡선의 식 : y2+h(x)=f(x)에 대입하여 y2를 구하고, 초타원곡선상의 점 : P(x1, y1), Q(x2, y2)로부터 베이스 포인트(D), 즉,
D=(x2+u21x+u20, v21x+v20)
를 구하는 처리로서 실행한다.
스텝 S352에서는, 스텝 S351에서 산출한 베이스 포인트(D)에 의거하여, 또하나의 퇴화인자(3D)를 사전산출한다. 산출 처리는,
D→2D : ExHarDBL1 →2 (Table 8)
2D→3D : ExHarADD3 +2→3 (Table 7)
상기 산출 처리 공정에 의해 실행할 수 있다.
스텝 S353에서는, 스칼라배산(D)=dD에서의 승산 데이터로서의 스칼라값(d)을 wNAF 전개한다.
최후로, 스텝 S354에서, 스칼라배산(D)=dD를 실행한다. 이 스칼라배산에서는, 퇴화인자(D, 3D)만에 의해 표현된 사전산출 데이터를 적용한 스칼라배산 연산 처리로서 실행되고, 앞에서 설명한 알고리즘[알고리즘 8]에 따른 처리로서 실행된다.
종래의 wNAF 적용 처리 연산에서는, 퇴화인자 이외의 인자, 즉 웨이트=3인 인자를 적용한 가산이 실행되지만, 본 처리예의 스칼라배산에서의 가산 처리는, 퇴화인자(D, 3D)만을 적용한 가산 처리, 즉, 전부 퇴화인자+비퇴화인자의 가산 처리로서 실현된다. 따라서, 고속화 연산이 가능하고, 또한 비퇴화인자에 의한 가산 처리가 혼재하지 않기 때문에, 퇴화인자와 비퇴화인자의 연산 처리 시간이나, 연산 처리에 수반하는 소비 전력의 차이가 발생하지 않아, 연산 시퀀스의 해석으로서의 SPA, TA 해석에 대한 내성도 손상되는 일이 없는 안전하고 고속의 연산이 실현된다.
이상, 본 발명의 처리예로서의 퇴화인자를 베이스 포인트로서 설정하고, 또한 윈도우(Window)법을 적용한 처리예로서, 2개의 처리예,
즉, (처리예 A) 종수(g)(2)인 곡선에서, 베이스 포인트(D와 5D)의 쌍방이 웨 이트(weight)=1이 되는 퇴화인자를 효율적으로 검출하고, 검출한 퇴화인자(D, 5D)만을 적용하여, wNAF 전개 데이터를 변환하고, 변환한 wNAF 전개 데이터를 적용하여 스칼라배산을 실행하는 처리와,
(처리예 B) 종수(g)(3)인 곡선에서, 베이스 포인트(D와 3D)의 쌍방이 웨이트(weight)=2가 되는 퇴화인자를 효율적으로 검출하고, 검출한 퇴화인자(D, 3D)만을 적용하여, wNAF 전개 데이터를 적용하여 스칼라배산을 실행하는 처리의 각각 처리에 관해 설명하였다.
상술한 바와 같이, 본 발명의 처리에 의해, 초타원곡선 암호에서의 스칼라배산에서의 퇴화인자를 사용한 SPA 내성이 있는 window 법을 이용할 수 있도록 되었다. 이 처리에 의해 기존의 방법에 비하여 스칼라배산의 고속 처리가 가능해진다. 이하에, 종래의 처리와, 본 발명에 의한 처리의 계산량의 비교 데이터를 나타낸다.
우선, 종수(2)인 경우의 160bit의 d의 스칼라배산을 행하는 경우의 계산량에 관해, 상술한
(본 발명 처리예 A)
종수(g)(2)인 곡선에서, 베이스 포인트(D와 5D)의 쌍방이 웨이트(weight)=1이 되는 퇴화인자를 효율적으로 검출하고, 검출한 퇴화인자(D, 5D)만을 적용하여, wNAF 전개 데이터를 변환하고, 변환한 wNAF 전개 데이터를 적용하여 스칼라배산을 실행하는 처리와,
종래법 A=(1A) 퇴화인자를 베이스 포인트에 적용한 처리예
종래법 B=(1B) 윈도우법(wNAF)을 적용한 처리예(윈도우 사이즈=2)
의 계산 코스트의 비교 데이터를 나타낸다.
종래법 A : 318I+6028M
종래법 B : 239I+6293M
본 발명 처리예 A : 267I+5477M
상기중, I는 유한체의 원의 제산에 걸리는 코스트를 나타내고, M은 유한체의 원의 승산에 걸리는 코스트를 나타내고 있다. 이 숫자가 작을수록 계산량이 적은 효율이 좋은 방법이라고 말할 수 있다. 이들의 계산량의 견적은, 상술한 설명에서 적용한 계산 알고리즘 1 내지 9의 인자의 가산 공식의 계산량을 기초로 산출하였다. 각 방식의 스칼라배산의 공식은 종래법 A가 알고리즘 3(Algorithm 3), 종래법 B가 알고리즘 5(Algorithm 5), 본 발명 처리예 A가 알고리즘 7(Algorithm 7)에 대응하고 있다.
예를 들면 종래법 A의 계산 코스트는,
(I+7M)+(I+27M)+158×(I+27M)+(I+11M)}
=318I+6028M
으로 계산할 수 있다.
I와 M은 실장한 계산기에 따라 달라지는 것이지만, 여기서는 I=4M으로 하면, 본 발명 처리예 A(계산 코스트=267I+5477M)는, 종래법 A(계산 코스트=318I+6028M)에 비교하여, 10% 정도의 고속화가 기대된다. 마찬가지로 종래법 B(계산 코스트=239I+6293M)와, 본 발명 처리예 A(계산 코스트=267I+5477M)를 비교한 경우도, 약 10% 고속이 된다. 또한, 종래법 B와 본 발명 처리예 A의 비교에서는, 보존하여야 할 사전산출 데이터 수를 같은 설정으로 한 처리끼리의 비교를 행하였다. 즉, 종래법 B는, window size=2인 알고리즘(사전산출 데이터=D, 3D), 본 발명 처리예 A는, windowsi e=3인 알고리즘(사전산출 데이터=D, 5D, 단 퇴화인자)으로 한 비교 데이터이다.
다음에 종수(3)인 경우의 160bit의 d의 스칼라배산을 행하는 경우의 계산량에 관해, 상술한
(본 발명 처리예 B)
종수(g)(3)인 곡선에서, 베이스 포인트(D와 3D)의 쌍방이 웨이트(weight)=2가 되는 퇴화인자를 효율적으로 검출하고, 검출한 퇴화인자(D, 3D)만을 적용하여, wNAF 전개 데이터를 변환하고, 변환한 wNAF 전개 데이터를 적용하여 스칼라배산을 실행하는 처리와,
종래법 A=(1A) 퇴화인자(weight 2)를 베이스 포인트에 적용한 처리예
종래법 B=(1B) 윈도우법(wNAF)을 적용한 처리예(윈도우 사이즈=2)
의 계산 코스트의 비교 데이터를 나타낸다.
종래법 A : 318I+21111M
종래법 B : 239I+19119M
본 발명 처리예 B : 239I+17003M
이들의 계산량의 견적은 상술한 설명에서 적용한 계산 알고리즘 1 내지 9의 인자의 가산 공식의 계산량을 기초로 산출하였다. 각 방식의 스칼라배산의 공식은 종래법 A가 알고리즘 3(Algorithm 3), 종래법 B가 알고리즘 5(Algorithm 5), 본 발 명 처리예 B가 알고리즘 8(Algorithm 8)에 대응하고 있다.
종수(2)인 경우와 마찬가지로 I=4M으로 환산하면, 본 발명 처리예 B(계산 코스트=239I+17003M)는, 종래법 A(계산 코스트=318I+21111M)에 비교하여, 20% 정도의 고속화가 기대된다. 마찬가지로 종래법 B(계산 코스트=239I+19119M)와, 본 발명 처리예 A(계산 코스트=239I+17003M)를 비교한 경우, 약 11% 고속이 된다. 또한, 이 양자의 비교에서는, 양자 모두 window size=2인 알고리즘(사전산출 데이터=D, 3D)으로 한 비교 데이터이다.
이상, 설명한 바와 같이, 본 발명에 의하면, 종수(g)인 초타원곡선에서, g보다 작은 웨이트(weight)의 인자를 베이스 포인트로서 사용하고, 또한 윈도우법에서 적용하는 사전산출 데이터를 퇴화인자에 의해 표현하고, 스칼라배산에서의 가산 연산 처리를 전부 퇴화인자+비퇴화인자의 가산 처리에 의해 실행하는 구성으로 하였기 때문에, 가산 처리의 고속화가 실현되고, 또한, 가산 처리를 퇴화인자+비퇴화인자의 연산만으로 함으로써, 비퇴화인자의 가산 처리를 혼재시키는 것이 없어져서, 연산 처리에서의 소비 전력이나 처리 시간의 편차의 검출에 의한 공격(SPA, TA)에 대한 내성도 손상시키는 일 없이, 안전성이 높은 고속 처리 가능한 구성이 실현된다.
초타원곡선상의 인자의 연산을 사용하는 암호 처리 연산에 있어서, 처리가 무거운 연산은 인자의 스칼라배산이다. 상술한 본 발명의 처리에 의해 스칼라배산을 고속화함으로써 초타원곡선 암호의 처리를 대폭적으로 개선할 수 있다.
전술한 바와 같이, 초타원곡선 암호(HECC)는 타원곡선 암호(ECC)를 일반화한 개념이고, 현재, 다양한 분야에서 적용되고 있는 타원곡선 암호(ECC)를 사용한 암호 처리, 구체적으로는 서명 처리, 암호 데이터의 생성, 복호 처리, 암호 키 공유 처리, 인증 처리 등에, 본 발명을 적용하는 것이 가능하다. 타원곡선 암호(ECC)에 있어서의 연산 처리중의 스칼라배산의 부분을, 상술한 스칼라배산으로 치환함으로써, 연산의 고속화가 가능해진다.
[3. 암호 처리 장치의 기능 구성에 관해]
도 13에, 본 발명의 암호 처리 장치의 기능 구성을 도시하는 블록도를 도시한다. 암호 처리 장치(100)는, 초타원곡선 암호에 의거한 암호 처리 연산을 실행하는 암호 처리 장치(100)이고, 초타원곡선의 종수(g)(genus)보다 작은 웨이트(weight)(g0)(단, 1≤g0<g)인 인자, 즉 퇴화인자를 베이스 포인트로서 생성하고, 또한, 윈도우법에서 적용하는 사전산출 데이터를 산출하기 위해 필요하게 되는 베이스 포인트 이외의 하나 이상의 인자, 예를 들면 상술한 처리예 A에서는 5D, 처리예 B에서는 3D도 퇴화인자가 되는 설정으로 한 인자(D)를 베이스 포인트로서 생성하는 베이스 포인트 생성부(101)를 갖는다.
사전산출 데이터 생성부(102)는, 베이스 포인트 생성부(101)에서 생성한 베이스 포인트(D)에 의거하여, 사전산출 퇴화인자 데이터, 예를 들면 3D, 5D 등의 퇴화인자를 산출하는 사전산출 퇴화인자 데이터 생성 수단으로서 기능한다.
암호 처리 장치(100)는, 또한, 인자(D)에 대한 스칼라배산[D=dD]에서 적용하는 승수로서 설정되는 스칼라값 : d의 wNAF 전개 처리를 실행하는 전개 처리 부(103)와, 전개 처리부(103)의 전개 데이터에 대해, 다시 변환 테이블에 의거한 변환 처리를 실행하고, 퇴화인자만의 표현으로 한 wNAF 전개 데이터를 생성하는 전개 처리 데이터 변환부(104)와, 베이스 포인트로서의 인자를 포함하는 인자의 스칼라배산 처리를 실행하는 연산 처리부(105)를 갖는다.
베이스 포인트 생성부(101)는, 정의체로서의 유한체(Fq)상의 원을 랜덤하게 g0개 선택하고, g0개의 초타원곡선상의 점(Pi)(i=1, …, g0)을 생성하고,
U(x)=(x-x1)(x-x2) … (x-xg0)
V(x)=vg0 -1xg0 -1+vg0 -2xg0 -2+…+v0의 계수(vi)를 결정하고, 베이스 포인트의 인
: D0=(U(x), V(x))를 결정하는 처리를 실행하는 구성이다.
베이스 포인트 생성부(101)는, 예를 들면, 초타원곡선의 종수(g)(genus)=2인 경우에는, 웨이트(weight)(1)이 되는 퇴화인자를 베이스 포인트로서 생성한다. 초타원곡선의 종수(g)(genus)=3인 경우에는, 웨이트(weight)(1또는2)가 되는 퇴화인자를 베이스 포인트로서 생성한다. 베이스 포인트 생성부(101)는, 윈도우법에서 적용하는 사전산출 데이터를 산출하기 위해 필요하게 되는 베이스 포인트 이외의 하나 이상의 인자, 예를 들면 상술한 처리예 A에서는 5D, 처리예 B에서는 3D도 퇴화인자가 되는 인자(D)를 베이스 포인트로서 생성하는 처리를 실행한다.
사전산출 데이터 생성부(102)는, 베이스 포인트 생성부(101)에서 생성한 베이스 포인트(D)에 의거하여, 사전산출 데이터(3D, 5D) 등의, 윈도우법에서 적용하 는 사전산출 데이터를 산출한다. 상술한 처리예 A(종수(g)=2)에서는, 윈도우 사이즈=3으로 하여, 5D를 사전에 산출하였다. 5D는 퇴화인자이다. 또한, 처리예 B(종수(g)=3)에서는, 윈도우 사이즈=2로 하여, 3D를 사전에 산출하였다. 3D는 퇴화인자이다.
전개 처리부(103)는, 인자(D)에 대한 스칼라배산[D=dD]에서 적용하는 승수로서 설정되는 스칼라값 : d의 wNAF 전개 처리를 실행한다. 즉, 승수(d)의 2진 전개 데이터에 관해 데이터 변환을 실행하여, 소정 항수(윈도우 사이즈)로 이루어지는 수치 블록의 각각을,
|00…0x|00…0x|00…0x|…
단, x는 홀수(±1, ±3…)가 되도록 설정한다.
전개 처리 데이터 변환부(104)는, 전개 처리부(103)의 전개 데이터에 대해, 다시 변환 테이블에 의거한 변환 처리를 실행하고, 퇴화인자만의 표현으로 한 wNAF 전개 데이터를 생성한다. 또한, 이 처리는, 상술한 처리예 A에서는 적용되지만, 처리예 B에서는 불필요하게 된다. 처리예 A에서는, 윈도우 사이즈=3이고, 종래의 wNAF 법에서는, ±D, ±3D, ±5D, ±7D의 각 값을 사전산출 데이터로서 테이블에 보존함이 필요하게 되고, 이 경우, 처리예 A에서는, D, 5D만을 퇴화인자로서 사전산출하고 있을 뿐이므로, 그 외에 필요하게 되는 사전산출 데이터를 D, 5D로 표현한 형식으로 변환하는 것을 필요로 하기 때문이다. 한편, 상술한 처리예 B에서는, 윈도우 사이즈=2이고, ±D, ±3D를 사전산출 데이터로서 테이블에 보존함이 필요하게 되고, 이 경우, 처리예 B에서는, D, 3D를 퇴화인자로서 사전산출하고 있기 때문 에, 그 밖에 필요하게 되는 사전산출 데이터가 없어, wNAF 전개 데이터의 변환이 불필요하게 된다.
연산 처리부(105)는, 스칼라배산 처리를 실행한다. 이 처리는, 예를 들면 앞에서 설명한 알고리즘 7(처리예 A), 또는 알고리즘 8(처리예 B)에 따른 연산 처리가 된다. 종래의 wNAF 적용 처리 연산에서는, 퇴화인자 이외의 인자, 즉 종수(g)와 동등한 웨이트의 인자를 적용한 가산이 실행되지만, 본 처리예의 스칼라배산에서의 가산 처리는, 종수(g)보다 작은 웨이트를 갖는 인자, 즉 퇴화인자+비퇴화인자의 가산 처리가 실행된다. 따라서, 고속화 연산이 가능하고, 또한 비퇴화인자만의 가산 처리가 혼재하지 않기 때문에, 퇴화인자와 비퇴화인자의 연산 처리 시간이나, 연산 처리에 수반하는 소비 전력의 차이가 발생하지 않아서, 연산 시퀀스의 해석으로서의 SPA, TA 해석에 대한 내성도 손상되는 일이 없는 안전하고 고속의 연산이 실현된다.
[4. 전자 서명 생성 및 검증 알고리즘에서의 본 발명의 적용예]
이하에 본 발명의 처리를 적용 가능한 구체적인 암호 처리 알고리즘의 예로서, 타원곡선 암호를 적용한 전자 서명 생성 및 검증 알고리즘인 ECDSA(EC-Digital Signature Algorithm)의 스칼라배산에 본 발명의 연산 수법을 적용한 경우에 관해 설명한다. IEEE1363에 의하면 ECDSA에 의한 서명 생성, 검증은 이하의 시퀀스에 의해 실행된다.
(1) 입력
(1-1) 타원곡선의 도메인 파라미터 및 베이스 포인트(G)(위수(位數)r)
(1-2) 서명자의 비밀키(s)
(1-3) 평문(M)
(2) 키 생성
(2-1) 비밀키(s)에 대해 W=sG를 공개키로 한다
(3) 서명 생성
(3-1) 랜덤한 정수 0<u<r를 생성
(3-2) V=uG=(xv, yv)를 계산
(3-3) xv를 정수로 변환하고, i라고 한다
(3-4) c=i mod r을 계산. c=0이면 step 3-1에
(3-5) f=h(M), h는 hash함수
(3-6) d=u-1(f+sc) mod r을 계산. d=0이면 step 3-1로
(3-7) (c, d)를 평문(M)에 대한 서명으로 한다.
(4) 서명 검증
(4-1) 0<c<r, 0<d<r을 체크. 해당하지 않는 경우 invalid를 출력
(4-2) h=d-1mod r, h1=fh mod r, h2=ch mod r을 계산.
(4-3) P=(xp, yp)=h1G+h2W를 계산. P=O이면 invalid를 출력
(4-4) xp를 정수로 변환하고, i라고 한다.
(4-5) c'=i mod r를 계산한다.
(4-6) c'=c이면 valid를 출력. 그렇지 않으면 invalid를 출력.
상기 알고리즘에서 하기한 처리가 초타원곡선을 이용한 본 제안법(提案法)을 적용할 수 있는 개소이다.
(2-1) 비밀키(s)에 대해 W=sG를 공개키로 한다
(3-2) V=uG=(xv, yv)를 계산
(4-3) P=(xp, yp)=h1G+h2W를 계산. P=O이면 invalid를 출력
이들의 각 스텝 (2-1), (3-2), (4-3)에서의 연산 처리, W=sG, V=uG, P=(xp, yp)=h1G+h2W에서의 h1G의 연산 처리는, 인자의 스칼라배산 처리이고, 본 발명의 적용에 의한 고속화가 가능해진다.
[5. 암호 처리 장치의 하드웨어 구성예]
최후로, 상술한 암호 처리를 실행하는 디바이스로서의 IC 모듈(200)의 구성예를 도 14에 도시한다. 상술한 처리는, 예를 들면 PC, IC 카드, 리더 라이터, 그 밖에, 다양한 정보 처리 장치에서 실행 가능하고, 도 14에 도시하는 IC 모듈(200)은, 이들 다양한 기기에 구성하는 것이 가능하다.
도 14에 도시하는 CPU(Central processing Unit)(201)는, 암호 처리의 시작이나, 종료, 데이터의 송수신의 제어, 각 구성부 사이의 데이터 전송 제어, 그 밖의 각종 프로그램을 실행하는 프로세서이다. 메모리(202)는, CPU(201)가 실행하는 프로그램, 또는 연산 파라미터로서의 고정 데이터를 격납하는 ROM(Read-Only-Memory), CPU(201)의 처리에서 실행되는 프로그램, 및 프로그램 처리에서 적절히 변화하는 파라미터의 격납 에어리어, 워크 영역으로서 사용되는 RAM(Random Access Memory) 등으로 이루어진다.
또한, 메모리(202)에 격납하는 연산 실행 프로그램은, 상술한 베이스 포인트의 설정 처리, 스칼라배산으로서의 가산, 2배산의 실행 시퀀스를 포함하는 프로그램으로서 설정된다. 또한, 메모리(202)는 암호 처리에 필요한 키 데이터 등의 격납 영역으로서 사용 가능하다. 데이터 등의 격납 영역은, 내(耐)템퍼 구조를 갖는 메모리로서 구성되는 것이 바람직하다.
암호 처리부(203)는, 상술한 스칼라배산 처리를 포함하는 암호 처리, 복호 처리 등을 실행한다. 또한, 여기서는, 암호 처리 수단을 개별 모듈로 한 예를 나타냈지만, 이와 같은 독립한 암호 처리 모듈을 마련하지 않고, 예를 들면 암호 처리 프로그램을 ROM에 격납하고, CPU(201)가 ROM 격납 프로그램을 판독하여 실행하도록 구성하여도 좋다.
난수 발생기(204)는, 암호 처리에 필요하게 되는 키의 생성 등에서 필요하게 되는 난수의 발생 처리를 실행한다.
송수신부(205)는, 외부와의 데이터 통신을 실행하는 데이터 통신 처리부이고, 예를 들면 리더 라이터 등, IC 모듈과의 데이터 통신을 실행하고, IC 모듈 내에서 생성한 암호문의 출력, 또는 외부의 리더 라이터 등의 기기로부터의 데이터 입력 등을 실행한다.
이상, 특정한 실시예를 참조하면서, 본 발명에 관해 상세히 해석하여 왔다. 그러니, 본 발명의 요지를 일탈하지 않는 범위에서 당업자가 해당 실시예의 수정이 나 대용을 해낼 수 있음은 자명하다. 즉, 예시라는 형태로 본 발명을 개시하여 온 것이며, 한정적으로 해석되어서는 않된다. 본 발명의 요지를 판단하기 위해서는, 특허청구의 범위의 란을 참작하여야 할 것이다.
또한, 명세서중에서 설명한 일련의 처리는 하드웨어, 또는 소프트웨어, 또는 양자의 복합 구성에 의해 실행하는 것이 가능하다. 소프트웨어에 의한 처리를 실행하는 경우는, 처리 시퀀스를 기록한 프로그램을, 전용의 하드웨어에 조립된 컴퓨터 내의 메모리에 인스톨하어 실행시키거나, 또는, 각종 처리가 실행 가능한 범용 컴퓨터에 프로그램을 인스톨하여 실행시키는 것이 가능하다.
예를 들면, 프로그램은 기록 매체로서의 하드 디스크나 ROM(Read Only Memory)에 미리 기록하여 둘 수 있다. 또는, 프로그램은 플렉시블 디스크, CD-ROM(Compact Disc Read Only Memory), MO(Magneto optical) 디스크, DVD(Digital Versatile Disc), 자기 디스크, 반도체 메모리 등의 리무버블 기록 매체에, 일시적 또는 영속적으로 격납(기록)하여 둘 수 있다. 이와 같은 리무버블 기록 매체는, 이른바 패키지 소프트웨어로서 제공할 수 있다.
또한, 프로그램은, 상술한 바와 같은 리무버블 기록 매체로부터 컴퓨터에 인스톨하는 외에, 다운로드 사이트로부터, 컴퓨터에 무선 전송하거나, LAN (Local Area Network), 인터넷이라는 네트워크를 통하여, 컴퓨터에 유선으로 전송하고, 컴퓨터에서는, 그와 같이 하여 전송되어 오는 프로그램을 수신하고, 내장하는 하드 디스크 등의 기록 매체에 인스톨할 수 있다.
또한, 명세서에 기재된 각종의 처리는, 기재에 따라 시계열로 실행될 뿐만 아니라, 처리를 실행하는 장치의 처리 능력 또는 필요에 따라 병렬적으로 또는 개별적으로 실행되어도 좋다. 또한, 본 명세서에 있어서 시스템이란, 복수의 장치의 논리적 집합 구성이고, 각 구성의 장치가 동일 박스 내에 있는 것으로는 한하지 않는다.
본 발명의 구성에 의하면, 초타원곡선 암호에 의거한 스칼라배산 처리에서의 베이스 포인트(D)와, 스칼라배산의 실행 알고리즘으로서의 윈도우법에서의 사전산출 데이터중, 베이스 포인트를 제외한 하나 이상의 사전산출 데이터를, 초타원곡선의 종수(g)(genus)보다 작은 웨이트(weight)(g0)(단, 1≤g0<g)의 인자인 퇴화인자가 되는 설정으로 하고, 윈도우법을 적용한 스칼라배산 처리에서의 가산 처리를 사전산출한 퇴화인자+비퇴화인자의 가산 처리에 의해 실행하는 구성으로 하였기 때문에, 고속 연산이 실현됨과 함께, 또한 비퇴화인자만의 가산 처리가 혼재하지 않기 때문에, 퇴화인자와 비퇴화인자의 연산 처리 시간이나, 연산 처리에 수반하는 소비 전력의 차이가 발생하지 않아서, 연산 시퀀스의 해석으로서의 SPA, TA 해석에 대한 내성도 손상되는 일이 없는 안전하고 고속의 연산이 실현되고, IC 카드 등 고속성, 안전성이 요구되는 암호 처리 연산을 행하는 기기, 디바이스 등에 있어서 본 발명의 적용이 가능하다.
또한, 본 발명의 구성에 의하면, 인자(D)에 대한 스칼라배산(D)=dD의 승수(d)에 관한 전개 처리로서, 윈도우법에 의거한 전개 처리인 wNAF(width-wNon- Adjacent Form) 전개를 실행하고, 전개 처리에서 생성된 wNAF 전개 처리 데이터에 의거하여 결정되는 사전산출 데이터에, 퇴화인자 데이터 이외의 데이터를 포함하는 경우, wNAF 전개 데이터를 변환하고, 퇴화인자 데이터만에 의해 구성되는 변환 wNAF 전개 데이터를 생성하여, 변환 wNAF 전개 데이터에 퇴화인자 데이터를 대응시키고, 스칼라배산에서의 가산 처리를 퇴화인자+비퇴화인자의 가산 처리로서 실행하는 구성으로 하였기 때문에, 연산 시퀀스의 해석으로서의 SPA, TA 해석에 대한 내성이 손상되지 않는 안전하고 고속의 연산이 실현되고, IC 카드 등 고속성, 안전성이 요구되는 암호 처리 연산을 행하는 기기, 디바이스 등에 있어서 본 발명의 적용이 가능하다.

Claims (13)

  1. 삭제
  2. 삭제
  3. 삭제
  4. 삭제
  5. 삭제
  6. 삭제
  7. 초타원곡선 암호에 의거한 암호 처리 연산을 실행하는 암호 처리 장치에 있어서,
    타원곡선 암호에 의거한 스칼라배산 처리에서의 입력 인자로서의 베이스 포인트와, 스칼라배산의 실행 알고리즘으로서의 윈도우법에서의 사전산출 데이터중, 베이스 포인트를 제외한 하나 이상의 사전산출 데이터가, 초타원곡선의 종수(g)(genus)보다 작은 웨이트(weight)(g0)(단, 1≤g0<g)의 인자인 퇴화인자가 되는 베이스 포인트를 생성하는 베이스 포인트 생성 수단과,
    상기 베이스 포인트 생성 수단에서 생성한 베이스 포인트에 의거하여, 윈도우법에서의 사전산출 데이터를, 퇴화인자만으로 이루어지는 데이터로서 산출하는 사전산출 퇴화인자 데이터 생성 수단과,
    상기 사전산출 퇴화인자 데이터 생성 수단에서 생성한 사전산출 퇴화인자 데이터를 적용하여 윈도우법을 적용한 스칼라배산 처리를 실행하는 스텝이고, 스칼라배산에서의 가산 처리를 상기 사전산출 퇴화인자를 포함하는 퇴화인자를 가산 처리로서 실행하는 연산 처리 수단과,
    인자(D)에 대한 스칼라배산(D)=dD의 승수(d)에 관한 전개 처리로서, 상기 윈도우법에 의거한 전개 처리인 wNAF(width-wNon-Adjacent Form) 전개를 실행하는 전개 처리 수단과,
    상기 전개 처리 수단에서 생성된 wNAF 전개 처리 데이터에 의거하여 결정되는 사전산출 데이터에 상기 사전산출 퇴화인자 데이터 이외의 데이터를 포함하는 경우, 상기 wNAF 전개 데이터를 변환하고, 상기 사전산출 퇴화인자 데이터만에 의해 구성되는 변환 wNAF 전개 데이터를 생성하는 전개 처리 데이터 변환 수단을 포함하고,
    상기 연산 처리 수단은,
    상기 전개 처리 데이터 변환 수단에서 생성된 변환 wNAF 전개 데이터에, 상기 사전산출 퇴화인자 데이터를 대응시킨 연산을 실행하는 구성인 것을 특징으로 하는 암호 처리 장치.
  8. 삭제
  9. 삭제
  10. 제 7항에 있어서,
    상기 베이스 포인트 생성 수단은,
    베이스 포인트(D)와, 스칼라배산의 실행 알고리즘으로서의 윈도우법에서의 사전산출 데이터중, 베이스 포인트를 제외한 하나 이상의 사전산출 데이터(nD)(단, n은 1 이외의 정수)를, 초타원곡선의 종수(g)(genus)보다 작은 웨이트(weight)(g0)(단, 1≤g0<g)의 인자인 퇴화인자가 되는 설정으로 하여 베이스 포인트를 생성하는 구성인 것을 특징으로 하는 암호 처리 장치.
  11. 초타원곡선 암호에 의거한 암호 처리 연산을 실행하는 암호 처리 장치에 있어서,
    타원곡선 암호에 의거한 스칼라배산 처리에서의 입력 인자로서의 베이스 포인트와, 스칼라배산의 실행 알고리즘으로서의 윈도우법에서의 사전산출 데이터중, 베이스 포인트를 제외한 하나 이상의 사전산출 데이터가, 초타원곡선의 종수(g)(genus)보다 작은 웨이트(weight)(g0)(단, 1≤g0<g)의 인자인 퇴화인자가 되는 베이스 포인트를 생성하는 베이스 포인트 생성 수단과,
    상기 베이스 포인트 생성 수단에서 생성한 베이스 포인트에 의거하여, 윈도우법에서의 사전산출 데이터를, 퇴화인자만으로 이루어지는 데이터로서 산출하는 사전산출 퇴화인자 데이터 생성 수단과,
    상기 사전산출 퇴화인자 데이터 생성 수단에서 생성한 사전산출 퇴화인자 데이터를 적용하여 윈도우법을 적용한 스칼라배산 처리를 실행하는 스텝이고, 스칼라배산에서의 가산 처리를 상기 사전산출 퇴화인자를 포함하는 퇴화인자를 가산 처리로서 실행하는 연산 처리 수단을 갖고,
    종수(g)(genus)=2인 초타원곡선에서의 스칼라배산 처리를 실행하는 구성이고,
    상기 베이스 포인트 생성 수단은,
    베이스 포인트(D와, 5D)를, 웨이트(weight)(1)의 퇴화인자가 되도록 베이스 포인트를 생성하는 구성이고,
    인자(D)에 대한 스칼라배산(D)=dD의 승수(d)에 관한 전개 처리로서, 상기 윈도우법에 의거한 전개 처리인 wNAF(width-wNon-Adjacent Form) 전개를, 윈도우 사이즈=3으로서 실행하는 전개 처리 수단과,
    상기 전개 처리 수단에서 생성된 wNAF 전개 처리 데이터에 의거하여 결정되는 사전산출 데이터에 상기 웨이트(weight)(1)의 퇴화인자가 된 퇴화인자(D, 5D) 이외의 데이터를 포함하는 경우, 상기 wNAF 전개 데이터를 변환하고, 상기 웨이트(weight)(1)의 퇴화인자가 된 상기 퇴화인자(D, 5D)만에 의해 구성되는 변환 wNAF 전개 데이터를 생성하는 전개 처리 데이터 변환 수단과,
    상기 전개 처리 데이터 변환 수단에서 생성된 변환 wNAF 전개 데이터에, 상기 웨이트(weight)(1)의 퇴화인자가 된 상기 퇴화인자(D, 5D)를 대응시키고, 스칼라배산 처리중의 가산 처리를 상기 웨이트(weight)(1)의 퇴화인자가 된 상기 퇴화인자(D, 5D)를 포함하는 퇴화인자를 가산 처리로 한 연산을 실행하는 연산 처리 수단을 갖는 것을 특징으로 하는 암호 처리 장치.
  12. 초타원곡선 암호에 의거한 암호 처리 연산을 실행하는 암호 처리 장치에 있어서,
    타원곡선 암호에 의거한 스칼라배산 처리에서의 입력 인자로서의 베이스 포인트와, 스칼라배산의 실행 알고리즘으로서의 윈도우법에서의 사전산출 데이터중, 베이스 포인트를 제외한 하나 이상의 사전산출 데이터가, 초타원곡선의 종수(g)(genus)보다 작은 웨이트(weight)(g0)(단, 1≤g0<g)의 인자인 퇴화인자가 되는 베이스 포인트를 생성하는 베이스 포인트 생성 수단과,
    상기 베이스 포인트 생성 수단에서 생성한 베이스 포인트에 의거하여, 윈도우법에서의 사전산출 데이터를, 퇴화인자만으로 이루어지는 데이터로서 산출하는 사전산출 퇴화인자 데이터 생성 수단과,
    상기 사전산출 퇴화인자 데이터 생성 수단에서 생성한 사전산출 퇴화인자 데이터를 적용하여 윈도우법을 적용한 스칼라배산 처리를 실행하는 스텝이고, 스칼라배산에서의 가산 처리를 상기 사전산출 퇴화인자를 포함하는 퇴화인자를 가산 처리로서 실행하는 연산 처리 수단을 갖고,
    종수(g)(genus)=3인 초타원곡선에서의 스칼라배산 처리를 실행하는 구성이고,
    상기 베이스 포인트 생성 수단은,
    베이스 포인트(D와, 3D)를 웨이트(weight)(2)의 퇴화인자가 되도록 베이스 포인트를 생성하는 구성이고,
    인자(D)에 대한 스칼라배산(D)=dD의 승수(d)에 관한 전개 처리로서, 상기 윈도우법에 의거한 전개 처리인 wNAF(width-wNon-Adjacent Form) 전개를, 윈도우 사이즈=2로서 실행하는 전개 처리 수단과,
    상기 전개 처리 수단에서 생성된 wNAF 전개 데이터에, 상기 웨이트(weight)(2)의 퇴화인자가 된 퇴화인자(D, 3D)를 대응시키고, 스칼라배산 처리중의 가산 처리를 상기 웨이트(weight)(2)의 퇴화인자가 된 퇴화인자(D, 3D)를 포함하는 퇴화인자를 가산 처리로 한 연산을 실행하는 연산 처리 수단을 갖는 것을 특징으로 하는 암호 처리 장치.
  13. 삭제
KR1020077008858A 2004-11-22 2005-11-15 암호 처리 연산 장치 KR101154695B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JPJP-P-2004-00337186 2004-11-22
JP2004337186A JP2006145945A (ja) 2004-11-22 2004-11-22 暗号処理演算方法、および暗号処理装置、並びにコンピュータ・プログラム

Publications (2)

Publication Number Publication Date
KR20070085269A KR20070085269A (ko) 2007-08-27
KR101154695B1 true KR101154695B1 (ko) 2012-06-08

Family

ID=36407102

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020077008858A KR101154695B1 (ko) 2004-11-22 2005-11-15 암호 처리 연산 장치

Country Status (6)

Country Link
US (1) US7957527B2 (ko)
EP (1) EP1816624A4 (ko)
JP (1) JP2006145945A (ko)
KR (1) KR101154695B1 (ko)
CN (1) CN101061526B (ko)
WO (1) WO2006054559A1 (ko)

Families Citing this family (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4599859B2 (ja) * 2004-03-12 2010-12-15 ソニー株式会社 暗号処理演算方法、および暗号処理装置、並びにコンピュータ・プログラム
JP4682852B2 (ja) * 2006-01-16 2011-05-11 ソニー株式会社 暗号処理装置、および暗号処理方法、並びにコンピュータ・プログラム
JP4513752B2 (ja) * 2006-01-16 2010-07-28 ソニー株式会社 暗号処理装置、および暗号処理方法、並びにコンピュータ・プログラム
FR2899702A1 (fr) * 2006-04-10 2007-10-12 France Telecom Procede et dispositif pour engendrer une suite pseudo-aleatoire
US8050403B2 (en) 2007-03-06 2011-11-01 Research In Motion Limited Method and apparatus for generating a public key in a manner that counters power analysis attacks
US8160245B2 (en) * 2007-03-07 2012-04-17 Research In Motion Limited Methods and apparatus for performing an elliptic curve scalar multiplication operation using splitting
WO2008106793A1 (en) * 2007-03-06 2008-09-12 Research In Motion Limited Power analysis attack countermeasure for the ecdsa
US8391479B2 (en) 2007-03-07 2013-03-05 Research In Motion Limited Combining interleaving with fixed-sequence windowing in an elliptic curve scalar multiplication
JP5094882B2 (ja) * 2008-01-18 2012-12-12 三菱電機株式会社 暗号パラメータ設定装置及び鍵生成装置及び暗号システム及びプログラム及び暗号パラメータ設定方法及び鍵生成方法
US7991154B2 (en) * 2008-05-14 2011-08-02 Univeristy of Castilla-La Mancha Exponentiation method using multibase number representation
US8369517B2 (en) * 2008-08-12 2013-02-05 Inside Secure Fast scalar multiplication for elliptic curve cryptosystems over prime fields
JP5225115B2 (ja) 2009-01-15 2013-07-03 株式会社東芝 Naf変換装置
US8457305B2 (en) * 2009-11-13 2013-06-04 Microsoft Corporation Generating genus 2 curves from invariants
WO2011146775A1 (en) 2010-05-19 2011-11-24 Dionex Corporation Functionalized substrates with aromatic stacking properties
JP5488718B2 (ja) 2010-12-27 2014-05-14 富士通株式会社 暗号処理装置、暗号処理方法、およびプログラム
WO2012112553A1 (en) 2011-02-14 2012-08-23 Dionex Corporation Nanometer size chemical modified materials and uses
FR2997780B1 (fr) * 2012-11-07 2016-01-22 Inside Secure Procede de cryptographie comprenant une operation d'exponentiation modulaire
WO2015013440A1 (en) * 2013-07-23 2015-01-29 Battelle Memorial Institute Systems and methods for securing real-time messages
US9645794B2 (en) 2014-09-23 2017-05-09 Texas Instruments Incorporated Homogeneous atomic pattern for double, add, and subtract operations for digital authentication using elliptic curve cryptography
EP3573039B1 (en) * 2017-01-20 2021-08-18 Nippon Telegraph and Telephone Corporation Secure computing system, secure computing device, secure computing method, and program
CN107204856B (zh) * 2017-08-01 2019-10-22 北京智慧云测科技有限公司 一种检测椭圆曲线算法漏洞的方法及装置
CN111756538B (zh) * 2020-06-28 2023-10-13 哈尔滨理工大学 一种基于素数预处理的ecc标量乘法器的实现方法及装置

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6212277B1 (en) * 1998-03-05 2001-04-03 Matsushita Electric Industrial Co., Ltd. Elliptic curve transformation device, utilization device and utilization system

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
THOMAS WOLLINGER et al, "Elliptic and Hyperelliptic Curves on Embedded μP," ACM Transactions on Embedded Computing Systems, Vol. 3, No. 3, August 2004, Pages 509-533. (2004.08.)
Young-Ho Park1, Sangtae Jeong, and Jongin Lim, "Speeding up point multiplication on hyperelliptic curves with e±ciently-computable endomorphisms.," EUROCRYPT 2002, LNCS 2332/2002, pp. 197-208. (2002)

Also Published As

Publication number Publication date
US7957527B2 (en) 2011-06-07
CN101061526B (zh) 2012-07-18
EP1816624A4 (en) 2008-12-17
US20070291937A1 (en) 2007-12-20
KR20070085269A (ko) 2007-08-27
CN101061526A (zh) 2007-10-24
JP2006145945A (ja) 2006-06-08
WO2006054559A1 (ja) 2006-05-26
EP1816624A1 (en) 2007-08-08

Similar Documents

Publication Publication Date Title
KR101154695B1 (ko) 암호 처리 연산 장치
JP4752313B2 (ja) 暗号処理演算方法、および暗号処理装置、並びにコンピュータ・プログラム
US7961874B2 (en) XZ-elliptic curve cryptography with secret key embedding
TWI462010B (zh) 使用橢圓曲線上一點之表現法改變之編譯方法及系統
US7835517B2 (en) Encryption processing apparatus, encryption processing method, and computer program
JP4513752B2 (ja) 暗号処理装置、および暗号処理方法、並びにコンピュータ・プログラム
US20090323933A1 (en) Exponentiation method using multibase number representation
Oliveira et al. Fast point multiplication algorithms for binary elliptic curves with and without precomputation
EP1578054B1 (en) Cryptography-processing method, cryptography-processing apparatus and computer program
US7177422B2 (en) Elliptic curve encryption processing method, elliptic curve encryption processing apparatus, and program
US10133554B2 (en) Non-modular multiplier, method for non-modular multiplication and computational device
JP2004163687A (ja) 楕円曲線暗号装置、楕円曲線暗号プログラム
Kim et al. Invalid curve attacks in a GLS setting
Saldamli et al. Uniform montgomery multiplier
CA2631276C (en) Exponentiation method using multibase number representation
Tao et al. Secure and efficient elliptic curve cryptography resists side-channel attacks
Walter The Montgomery and Joye powering ladders are dual
Clancy et al. FPGA-based hyperelliptic curve cryptosystems
Fan et al. Constructing hyperelliptic covers for elliptic curves over quadratic extension fields

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
LAPS Lapse due to unpaid annual fee