KR20010035704A - 타원곡선 포인트의 고속 스칼라 승법을 위한 프로세스 및 방법 - Google Patents

타원곡선 포인트의 고속 스칼라 승법을 위한 프로세스 및 방법 Download PDF

Info

Publication number
KR20010035704A
KR20010035704A KR1019990042398A KR19990042398A KR20010035704A KR 20010035704 A KR20010035704 A KR 20010035704A KR 1019990042398 A KR1019990042398 A KR 1019990042398A KR 19990042398 A KR19990042398 A KR 19990042398A KR 20010035704 A KR20010035704 A KR 20010035704A
Authority
KR
South Korea
Prior art keywords
norm
scalar
calculate
mode
calculating
Prior art date
Application number
KR1019990042398A
Other languages
English (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 KR1019990042398A priority Critical patent/KR20010035704A/ko
Publication of KR20010035704A publication Critical patent/KR20010035704A/ko

Links

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
    • 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
    • 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/008Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols involving homomorphic encryption
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • 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/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/30Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/30Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
    • H04L9/3066Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy involving algebraic varieties, e.g. elliptic or hyper-elliptic curves
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • 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)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Computing Systems (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Physics (AREA)
  • General Engineering & Computer Science (AREA)
  • Algebra (AREA)
  • Complex Calculations (AREA)

Abstract

본 발명은 사생활 보호를 위한 통신 시스템에 사용되는 타원곡선 암호체계에서 정수에 의한 타원곡선 포인트의 빠른 스칼라 승법 처리 및 방법을 제공한다. 본 발명은 포인트 스칼라 승수의 특정 표현의 적용을 허용하는 특정 종류의 타원 곡선 방정식을 특징으로 한다. 포인트 스칼라 승수는 짧은 길이를 갖는 수개의 성분의 합성으로 표현된다. 이러한 특정 표현에 의해, 그리고 포인트 스칼라 승법의 동시적 연속 방법 (simultaneous cascade method)을 이용함으로써 스칼라 승법을 계산하기 위해 필요한 연산의 수가 감소하여, 타원 곡선 암호체계의 효율을 증대시킨다.

Description

타원곡선 포인트의 고속 스칼라 승법을 위한 프로세스 및 방법{PROCESS AND METHOD FOR FAST SCALAR MULTIPLICATION OF ELLIPTIC CURVE POINT}
본 발명은 비밀통신 시스템(private communication system)에 관한 것으로, 특히 타원곡선 포인트의 보다 신속한 스칼라 승법 (scalar multiplicaiton)을 갖는 타원곡선 암호체계(elliptic curve cryptosystem)를 이용하여 비밀통신에 안정을 주기 위한 것이다.
암호서기 시스템(cryptographic system)이라고 하는 것이 정보의 안정성을 주기 위한 수단으로서 널리 이용되고 있다. 암호서기 시스템은 비밀성(confidentiality), 완전성(integrity), 신뢰성(authentication), 그리고 유효성(availability)과 같은 안정성을 모든 정보 대상에 제공하게 된다.
암호서기 시스템에는 주요한 두 종류가 있는데, 하나는 대칭키시스템(symmetric key system)이고 다른 하나는 공용키시스템(public key system)이다. 메지지를 암호화하고 해독하는데 대칭키시스템이 오랫동안 이용되어 왔다. 대칭키시스템에서는, 메지지를 암호화하고 해독하는데 단일의 키가 사용될 수 있다. 대칭키시스템으로 수행하는 것이 매우 효율적이기는 하나 키의 조작에서는 불편한 점이 있다.
한편, 공용키 암호서기 시스템이 1976년에 도입된 이후 현재까지 광범위하게 연구되고 이용되어 왔다. 공지된 공용키 암호서기 방법에는 RSA, DSA, 디피-헬먼(Diffie-Hellman), 엘가말(ElGamal) 및 타원곡선 암호체계(ECC)가 포함된다. 공용키 암호서기 시스템은 암호화 및 해독, 데이터 디지털 사인 및 서명 검증, 그리고 안정되지 못한 통신 채널을 통한 비밀키(secret key)의 안정적 교환에 이용된다. 공용키 암호서기 방법이 키 조작에 있어서 편리하기는 하지만, 현재 그 수행에 있어서는 대칭키시스템에 비해 효과가 떨어진다.
공용키 암호화 방법에서, 암호화 및 해독은 별개로 처리된다. 암호화가 이루어지는 동안에는 종종 'e'로 명명되는 공용키가 이용되고, 해독에서는 이와는 상이한 (그러나 수학적으로는 관련이 있는) 전용키(private key) 'd'가 필요하다. 공용키를 알면 평문(plaintext)을 암호화하는 것이 가능하지만 암호문(ciphertext)의 해독은 불가능하다. 예를 들어, 이용자가 공용키를 선택하고 공개한다. 이후, 다른 사람들이 상기 이용자에 대한 메시지를 암호화하는데 상기 선택된 키를 이용할 수 있다. 동시에, 이용자는 자신에 대해 암호화된 암호문을 해독할 수 있는 유일한 사람이 되도록 공용키에 대응하는 전용키를 비밀로 유지한다.
공용키 암호서기 시스템들을 비교해보면, 공지된 시스템 중에서 타원곡선 암호체계가 키비트당 강도(strength-per-key-bit)가 가장 우수함을 알 수 있다. 162-비트 계수(modulus)를 가지면, 타원곡선 시스템은 1024-비트의 계수를 갖는 DSA 또는 RSA와 동일한 수준의 암호서기 안정성을 제공한다. 키의 사이즈가 좀더 작으면 타원곡선 암호체계는 보다 작은 시스템 매개변수, 보다 작은 공용키 허가장(public key certificate), 대역폭(bandwidth)의 절감, 보다 빠른 계산, 그리고 보다 낮은 거듭제곱 등을 포함하는 이점들을 갖게 된다.
많은 암호체계에서는 군(group), 환(ring) 및 체(field)라고 불리는 수학적 구조(mathematical structure)에서 산술(arithmetic)이 수행되어야 한다. 군은 사용자가 정의한 1개의 산술 연산이 행해지는 원소들의 집합(set)을 말하며, 체는 사용자가 정의한 2개의 산술 연산이 행해지는 원소들의 집합을 말한다. 군의 차수(order)는 그 원소의 개수이다. 군 및 체에서 정의된 산술 연산에는 일정한 성질이 필요하지만, 환 및 체의 특성이 군의 성질보다 엄격하다. 환은 소수인 원소를 포함할 수 있으며 또 유일인수분해(unique factorization) 특성을 갖는 원소를 포함할 수 있다는 것이 환과 체의 주요한 차이점이다. 반대로, 체는 소수인 원소가 없으며 유일인수분해 성질을 갖는 원소가 없다.
타원곡선은 기본 연산인 덧셈을 행하는 덧셈군(additive group)이다. 타원곡선의 원소들은 두가지 형태, 즉 아핀(affine)과 사영(projective)으로 표현(representation)되는 포인트이다. 아핀 포인트 표현에서 포인트는 한 쌍의 수(x,y)로 정의되며, 여기서 x와 y 값은 정상수(실수)이거나, 또는, Fp(p는 소수) 또는 F2 m과 같은 체의 멤버(member)일 수도 있다. 그러한 체를 타원곡선의 언더라잉체(underlying field)라고 한다. 사영 포인트 표현에서 포인트는 세 개의 수(X,Y,Z)로 정의되며, 여기서 X, Y, Z는 x 및 y와 동일한 유형의 값을 가질 수 있다. 아핀 및 사영 포인트 표현은 서로 동등한 것으로서 변환법칙(conversion law)에 의해 한 형태에서 다른 형태로 변환될 수 있다.
언더라잉체의 선택시 타원곡선의 포인트 개수, 타원곡선 계산 속도, 그리고 해당 개별 로가리즘(logarithm) 문제의 곤란성에 영향을 미치게 된다. 그러므로, 타원곡선이 암호체계에 이용될 때, 언더라잉체는 키의 사이즈, 계산상의 필요조건 및 안정성에 영향을 주게 된다. 언더라잉체를 다르게 선택하면 타원곡선을 광범위하게 변화시킬 수 있다.
대체로 두 종류의 타원곡선 암호체계가 이용되는데, 그 중 하나는 (소수 p를 법으로 한(modulo p)) 언더라잉체 Fp에서 정의되고, 다른 하나는 (거듭제곱(power) 2m의 기약다항식(irreducible polynomial)을 법으로 한) 언더라잉체 F2 m에서 정의된다. 두번째 종류의 타원곡선 암호체계는 적합한 곡선의 개수가 상당히 작다는 것이 그 특징이며 하드웨어 수행에서의 성능을 제외하고는 그 성능이 낮다. 그러므로, 언더라잉체 Fp의 타원곡선 암호체계가 더 흥미를 끄는 부분이다. 하기에서는, Fp를 언더라잉체로 간주할 것이고, 여기에서 p는 특수한 종류의 소수를 나타낸다. 그리고 Fp에서의 타원곡선을 방정식 y2=x3+Ax+B (모드 p)에 의해 정의된 것으로 간주할 것이고, 여기에서 {A,B}∈Fp이다. 그러한 타원곡선에서는 비제로 곡선 판별식(non-zero curve discriminant)인 4A3+27B2≠0 (모드 p)이 반드시 필요하다.
타원곡선 원소는 타원곡선의 포인트이며 타원곡선의 차수는 타원곡선에 있는 포인트의 개수이다. 타원곡선에서의 군 연산은 두 개의 원소, 즉 포인트들끼리의 덧셈이다. 따라서, 타원곡선에서의 기본 연산은 타원곡선 포인트의 덧셈이다. 타원곡선 포인트를 더하면 같은 타원곡선에 놓이는 또다른 포인트가 생긴다. {P,Q,R1}∈(Fp)일 때 P+Q=R1과 같이 두 개의 다른 포인트를 더하는 것을 구별되는 두 포인트의 덧셈이라고 한다. 만약 동일한 두 개의 포인트가 더해진다고 하면, 즉 {P,2P,R2}∈(Fp)일 때 P+P=2P=R2처럼 하나의 포인트가 2번 더해지면, 연산은 포인트의 배가(doubling)라고 한다. 덧셈 및 배가 법칙은 Standard Specifications for Public Cryptography, Annex A, ″Number-Theoretic Background″, IEEE P1363 (Draft Version 7), pp. 53-6, 61 (1998)에 기술되어 있다.
타원곡선 포인트의 연산에서는 곱셈반전(multiplicative inversion)이라는 계산을 필요로 한다. 일반적으로, 사영 포인트 산술이 아핀 포인트 산술보다 좀더 복잡하다. 그러나, 조건 Z=1 이 유지되면, 사영 포인트 형태의 덧셈 및 배가는 아핀 포인트 형태의 배가보다 더 빨리 수행된다. 이것은 곱셈반전을 계산할 필요가 없기 때문이다. 따라서, 실제에 있어서는 타원 곡선 산술에 사영 포인트 표현이 이용된다.
같은 포인트를 반복해서 더하는 것을 정수 k에 의한 스칼라 승법이라고 한다: P+P+P+...+P=kP=R3, 여기에서 k는 정수이고 {P,R3}∈E(Fp)이다. 다음에서 보이는 바와 같이, 포인트 스칼라 승법이 가장 자주 이용되는 것이며, 동시에 타원곡선 암호화에서 가장 시간 소모적인 연산이다.
타원곡선 포인트의 차수는 타원곡선 암호체계에 있어서 중요한 것이다. 타원곡선 포인트 P의 차수는 최소 정수 n으로서, 즉, 상기 정수 n에 의한 포인트의 스칼라 승법을 통해 타원곡선에 특수한 포인트를 만들어내게 하는 최소 정수 n이다. 상기 특수한 포인트를 무한대(infinity) 포인트 0(nP=0)라고 한다. 무한 포인트는 군인 타원곡선의 항등원(identity)이다.
언더라잉체 Fp에 있어서, 타원곡선의 차수가 합성수(composite)이면 타원곡선 군을 부분군(subgroup)으로 분리할 수 있으며 각 부분군은 소수인 차수을 가지게 되는 바, 즉 부분군을 구성하는 포인트는 그 개수가 소수가 된다. 그러한 경우, 각 부분군의 차수는 타원곡선의 차수보다 작다. 부분군에서 포인트는 모두 차수가 같으며, 이것은 부분군의 차수와 같다. 한 부분군의 포인트에서 군 연산을 시행하면 동일한 부분군의 포인트들이 다시 만들어진다. 예를 들어, 부분군에서 하나의 임의적인 포인트를 반복적으로 더하면 부분군의 모든 포인트가 만들어진다. 부분군의 차수와 같은 횟수로 덧셈을 반복함으로써 무한대 포인트가 만들어진다. 다음 덧셈을 통해서는 초기 포인트가 만들어진다. 타원곡선의 차수가 소수이면, 곡선은 부분군으로 분리될 수 없으며 임의 포인트의 차수는 타원곡선의 차수와 같을 것이다.
타원곡선 암호체계의 안정성을 주기 위한 근거는, 아래에서 설명되는 바와 같이, 타원곡선 개별 로가리즘 문제(elliptic curve discrete logarithm problem, ECDLP)를 제어하기가 곤란하다는 것이다.
P∈E(Fp)일 때 P가 차수 n을 갖는 포인트라고 하고, R∈E(Fp)일 때 R을 E(Fp)의 또다른 포인트라고 가정하자. n의 값을 알고 있다고 하면, 타원곡선 로가리즘 문제는 다음과 같다: 만약 하기 정수 k가 존재한다면, 소정의 P와 R에서 R=kP가 되도록 0 ≤ k ≤ n-1 인 유일정수 k를 결정한다.
타원곡선 개별 로가리즘 문제를 해결하기 위한 방법 중 가장 우수한 알고리즘(algorithm)은 폴라르드 료-방법(Pollard rho-method)으로, 상기 방법은 ″Monte Carlo methods for index computation mod pn″, by J.Pollard Math. Comp., v.32, pp.918-24(1978) 에 제시되었다. 폴라르드 료-방법은 어떤 유한 군(finite group)에라도 적용이 가능하며, 상기 방법은 지수 제곱근 어택(exponential square root attack)이다. 그러므로, 상기 방법은 군의 차수를 나누어떨어지게하는(dividing) 최대 소인수의 제곱근에 비례하는 러닝타임(running time)을 갖는다. 특히, 상기 방법은 대략 √(πn/2)회의 단계를 취하는데, 상기 단계는 타원곡선 덧셈 단계이다. 또한, r 프로세서를 이용하면 단일의 개별 로가리즘이 얻어지기 전에 각 프로세서가 필요로 하는 단계의 예상 회수가 (√(πn/2)/r 되도록 상기 폴라르드 료-방법을 평행화(parallelized)할 수 있다. 따라서, 그 차수가 큰 값의 소수가 되도록 또는 큰 값의 소수로 나누어떨어지도록 타원곡선을 선택한다면, 상기 근 어택(root attack)을 피할 수 있다. 현재, 추천되는 차수는 162 비트 또는 그 이상이다(이 경우, 타원곡선 암호체계는 약 1024-비트 RSA에 해당하는 강도를 갖는다).
또한, 환 Z에 복소수 단위(complex unit)를 합하면 최초 환이 확장된다. 예를 들어, 복소수(complex number) i=√-1이 합해지면, 확장된 환은 가우스정수(Gaussian integer)의 환이라고 부른다. 확장된 환은 a와 b가 정수인 a+bi의 쌍들로 이루어진다. 또한, i=√-1 가 아닌 ω=3√-1 과 같은 다른 복소수를 환 Z에 더할 수도 있다.
아래에서는 배경기술 및 본 발명을 기술하는데 참조하기 위한 용어와 정의를 나열하였다.
p: 소수인 정수;
GF(p): p 원소를 갖는 유한체, p를 법으로 한 완전 나머지 시스템(complete residue system);
Fp: GF(p)를 간단히 나타낸 기호;
E: 방정식 y2=x3+Ax+B (모드 p)에 의해 Fp에서 정의된 타원곡선;
E(Fp): Fp에서 정의되며, 타원곡선 포인트라고 부르는 원소들의 군;
#E(Fp): 타원곡선의 차수 및 곡선에 있는 포인트의 개수;
N: 타원곡선에 있는 포인트 개수의 또다른 명칭;
n: 타원곡선에 있는 임의의 포인트의 차수, 일반적인 경우 N와 동일;
q: N의 최대 소인수, 또는 타원곡선의 소수인 차수;
Z: 정수들의 환;
a,b: 복소수로 확장된 환 Z에서의 수 q 인수분해 계수;
G: 타원곡선 포인트의 차수 q의 군
A,B: 임의의 양의 정수, 0 ≤ A,B ≤ p-1, 곡선 방정식 계수(coefficient)를 나타낸다;
Q(x,y): 타원곡선 E(Fp)에 있는 포인트, 방정식 y2=x3+Ax+B (모드 p)를 만족시킨다;
Q0(x0,y0): 군 생성원(group generator)이라고 부르는, 차수 q를 갖는 타원곡선의 초기 포인트;
d: 엔티티(entitiy) 전용키, [1, q-1]의 정수 범위에서 임의로 선택;
P: 엔티티 공용키, dQ0와 동일;
O: 무한대 포인트라고 부르는, 타원곡선 E(Fp)의 특수한 포인트;
x,y: 포인트의 x,y 좌표, 그리고 Fp의 임의 원소.
타원곡선 암호체계 파라미터들의 집합은 언더라잉체 Fp의 유형 및 표수(characteristic), 타원곡선 방정식 계수 A와 B, 부분군의 소수인 차수 q, 그리고 군생성원 Q0(x0,y0)인 초기 포인트를 포함한다. 이들 파라미터는 적정의 안정 레벨을 제공할 수 있도록 일정 요건을 만족해야 한다. 파라미터는 타원곡선암호체계구성절차라고 하는 특별한 절차를 통해 준비된다. 일반적으로, 구성절차는 다음과 같다:
1. 필요한 길이를 가지며 언더라잉체 Fp를 구성하는 소수 p를 생성 또는 선택한다.
2. 타원곡선이 비제로 판별식을 갖도록 방정식 계수 A와 B를 선택함으로써 타원곡선을 구성한다.
3. 타원곡선에 있는 포인트 개수 N과 그 소인수 q를 계산한다.
4. 타원곡선 암호체계 안정성 요건이 유지되는가를 체크한다.
5. 차수가 q가 되도록 타원곡선의 임의 포인트를 초기 군 생성원 Q(x0,y0)으로 선택한다.
다른 타원곡선 암호체계 구성 절차가 더 있지만, 보다 빠른 파라미터 계산을 위해 본 발명의 목적상 Fp, A, B, q 그리고 Q0(x0,y0) 만을 고려할 것이다.
기타 공용키 암호체계로서, 타원 암호체계는 암호화, 디지털 사인 및 키 일치에 이용된다. 모든 모드에서는 키 생성이 필요하다. 타원곡선 암호체계를 이용한 공용키 암호화는 암호 및 해독 프로세스를 포함한다. 타원곡선 암호체계를 이용하는 디지털 사인은 서명생성 및 서명 검증 프로세스를 포함한다. 타원곡선 암호체계를 이용한 키 일치는 비밀값 도출 프로세스를 포함한다.
앞서 설명한 바와 같이, 타원곡선 암호화에서 가장 자주 이용되는 연산은 포인트 스칼라 승법이다. 타원곡선 암호체계의 일례를 간단히 설명하면 다음과 같다. 자세한 알고리즘 및 프로세스가 IEEE P1363/D7(Draft Version 7) ″Standard Specifications for Public Key Cryptography″, section 7, pp.33-41, ANSI Public Key Cryptography For The Financial Services Industry series X9.62 ″The Elliptic Curve Digital Signature Algorithm (ECDSA),″ pp.14-8 and X9.63 ″Elliptic Cure Key Agreement and Trnasport Protocols,″ pp.20-2, 25-31, 38-43 and 및 기타 공식 문서에 개시되어 있다. 일반적으로 타원곡선 암호체계는 다음과 같이 작동한다.
I. 타원곡선 암호체계 설정.
타원곡선 암호체계 파라미터 Fp, A, B, q 및 Q0(x0,y0)가 선택되어 그 정보가 공개된다.
II. 키 생성 프로세스
타원곡선 암호체계를 이용하기 전에, 각 사용자는 키 생성을 수행하여 자신의 전용키와 해당 공용키 한 쌍을 만들고, 상기 쌍의 키를 생성시 공용키를 교환한다. 키 생성 프로세스는 다음 단계를 포함한다:
1) 간격(interval)[1, q-1]에서 임의의 정수 d를 선택하여 비밀로 유지한다;
2) 포인트 P=dQ0를 계산한다; 그리고
3) P는 사용자의 공용키이고 d는 사용자의 전용키이다.
III. 암호화 프로세스.
제1 사용자는 공용키 P가 알려진 제2의 사용자에게 메시지 M을 보낸다. 메시지 M의 암호화 프로세스는 다음 단계를 포함한다:
1) 메시지 M(의 현재 단편(fragment))을 체 원소 m∈Fp로서 표현한다;
2) 간격[1, q-1]에서 임의의 정수 k를 선택한다;
3) 포인트(x1,y1)=kQ0를 계산한다;
4) 포인트(x2,y2)=kP를 계산한다. x2=0 이면 단계 2로 돌아간다;
5) 암호문 c=mx2(모드 p)을 계산한다; 그리고
6) 암호화된 데이터(x1,y1,c)를 제2 사용자에게 전달한다.
IV. 해독 프로세스.
제2 사용자는 암호화된 데이터(x1,y1,c)를 제1 사용자로부터 받는다. 암호화된 데이터의 해독 프로세스는 다음 단계를 포함한다:
1) 전용키 d를 이용하여 포인트(x2,y2)=d(x1,y1)를 계산한다; 그리고
2) M=cx2 -1(모드 p)를 계산하여 메시지 M(의 현재 프레임)을 회복한다.
V. 서명(signature) 생성 프로세스(DSA와 유사한 타원곡선).
공용키 P가 알려진 제1 사용자에게 메시지 M을 제2 사용자가 서명한다. 서명 생성 프로세스는 다음 단계를 포함한다:
1) 메시지 M을 비트열(bit string)로 표현한다;
2) 해시함수(hash function) H를 이용하여 e=H(M), 즉 메시지 M의 해시 값 e를 계산한다;
3) 간격 [1,q-1]에서 임의의 정수 k를 선택한다;
4) 포인트 (x1,y1)=KQ0를 계산한다;
5) 정수 r=x1+e (모드 p)를 계산한다;
6) 전용키 d를 이용하여 서명 s=k-dr(모드 q)를 계산한다; 그리고
7) 메시지 M과 서명 파라미터(r,s)를 제1 사용자에게 전송한다.
VI. 서명 검증 프로세스(DSA와 유사한 타원곡선).
제1 사용자는 공용키 P가 알려진 제2 사용자로부터 메시지 M과 그 서명 파라미터(r,s)를 받는다. 서명 검증 프로세스는 다음 단계를 포함한다:
1) 해시함수 H를 이용하여 e=H(M), 즉 메시지 M의 해시 값 e를 계산한다;
2) 포인트 (x1,y1)=sQ0+rP를 계산한다;
3) 정수 r'= x1+e(모드 p)를 계산한다; 그리고
4) 만약, 그리고, r'=r인 경우에 한해 메시지 M 및 그 서명 (r,s)를 수용한다.
VII. 비밀값 도출 프로세스.
제1 사용자 및 제2 사용자는 공통의 비밀값에 동의한다; 반면 대응 공용키는 알려진다. 비밀값 도출 프로세스는 다음 단계를 포함한다:
1) 각각의 전용키 d와 공용키 P를 이용하여 포인트 (x1,y1)=dP를 계산한다.
2) x1은 공유값(shared value)이다(이 값이 양측에 대해 동일하다는 것을 알기는 쉽다).
타원곡선 암호체계를 개략적으로 살펴보면 포인트 스칼라 승법이 가장 자주 이용되는 연산임을 알 수 있다. 동시에, 다른 산술 연산과 비교해 볼 때 포인트 스칼라 승법이 가장 시간 소모적이다. 아래의 표 1은 256-비트 체 표수 p를 갖는 Fp의 타원곡선을 위해 선택된 연산의 실제 수행 시간을 나타낸다. PC 펜티엄-166에서 시간(밀리세컨드(milliseconds))을 측정하였다.
연산 시간, ms
모듈 덧셈(modular addition) 0.001
(약분(reduction)을 포함한) 모듈 승법 0.032
(이중 길이 연산수(dual-length operand))의 모듈 약분 0.021
곱셈 반전(multiplicative inversion) 0.620
포인트 배가(사영) 0.350
포인트 곱셈(사영) 0.470
포인트 스칼라 승법(슬라이딩 윈도우 방법(sliding window method) 114.000
표 1. 언더라잉체 유형 Fp및 256 비트의 표수 p 길이를 갖는 산술 연산에서의 평균 수행 시간.
이론적으로, 사영 표현에 대한 포인트 가법은 대략 10회의 모듈의 승법, 10회의 모듈 가법, 그리고 몇 번의 배가를 포함한다. 포인트 스칼라 승법은 가법과 배가를 반복함으로써 측정된다. 보다 구체적으로, 포인트 스칼라 승법의 수행 시간은 이용되는 스칼라 승법 방법 및 스칼라 승수 길이에 달려있다.
고속 포인트 스칼라 승법에는 몇가지 방법이 있다. 이들 방법은 ″곱하기(multiply) 및 제곱(squaring)″ 이라고 부르는 ″가법 및 배가″ 방법, 비인접 형식(non-adjacent form, NAF)이라고 부르는 스칼라 승수의 이중-서명 표현을 갖는 방법, 그리고 슬라이딩 윈도우 방법과 같은 고속 지수화(fast exponentiation) 방법과 동일한 것이다. 일정한 스칼라 승수를 갖는 타원곡선 암호체계와 같은 경우, 세가지 방법이 있다: (슬라이딩 윈도우와는 같지 않은) 윈도우 승법(windowing multiplication), 유클리드 승법(Euclidean multiplication), 그리고 ″콤(comb)″. 이들 방법은 잘 알려진 것이고 다양한 논문에서 기술된 바 있는데, 그 중 하나가 ″Handbook of Applied Crytpography″ by Menezes, CRC Press, pp.614-27(1997) 이다. 또한, Menezes는 동시적 연속 승법(cascade multiplicaiton)이라고 부르는 혼합된 유형의 수식(expression) (k1P1+k2P2+...+kiPi)을 동시 계산하는 방법을 개시하고 있다. 동시적 연속 승법 방법은 타원곡선 암호체계에서 중요한 역할을 하며 이를 하기에서 설명하겠다.
보다 효율적인 스칼라 승법 수행을 위해, 현재의 승법 방법을 향상시키거나 또는 새로운 승법 기술을 개발할 수도 있다. 그러나, 스칼라 승법에 소요되는 시간은 승법 방법보다는 스칼라 승수 길이에 보다 많이 의존한다. 따라서, 가장 우수한 승법 기술에서, 보다 짧은 스칼라 승수를 이용한다면 보다 신속한 스칼라 승법이 가능할 것이다. 그러므로, 스칼라 승법 수행 효율을 높이는 또다른 방법은 스칼라 승수 길이를 줄이는 것이다.
대부분의 경우, 스칼라 승수 길이는 체 표수의 길이와 같다. 타원곡선 암호체계의 성능을 가속하기 위해, 승수의 비트-길이(즉, 전용 파라미터)에 제한을 둠으로써 스칼라 승수 길이를 감소시킬 수 있다. 그러나, 스칼라 승수의 길이가 감소함에 따라 암호서기 강도는 2의 거듭제곱에 비례하여 떨어질 것이다.
따라서, 본 발명은 종래기술의 문제점을 해결하기 위해 안출한 것으로, 타원곡선 암호체계의 전체적인 성능을 향상시키는 것을 그 목적으로 한다.
본 발명의 또다른 목적은 타원곡선 암호체계의 강도에 악영향을 주지 않으면서 타원곡선의 신속한 스칼라 승법을 제공하는 것이다.
본 발명의 또다른 목적은 타원곡선 암호체계에 필요한 계산적인 자원을 최소화하는 것이다.
본 발명의 다른 이점, 목적, 그리고 특징들은 부분적으로는 뒤따르게 될 발명의 상세설명에 포함되며 하기의 상세설명을 검토한 당업자에게는 명백히 이해가 될 것이고 또는 본 발명을 실시함으로써 알게 될 것이다. 본 발명의 목적 및 이점들은 특히 청구항에서 지적된 바와 같이 실현되고 달성될 것이다.
도 1은 기존의 스칼라 승법 방법과 (최적의 프레임을 갖는) 동시적 연속 스칼라 승법을 성능 비교하여 보여주는 그래프.
도 2는 동시적 연속 스칼라 승법 방법에 대한 최적의 프레임 사이즈를 보여주는 그래프.
도 3a 및 3b는 본 발명에 따른 동시적 연속 승법 기술을 이용한 타원곡선 스칼라 승법에 대한 일반적인 스칼라 승수 분해 알고리즘을 보여주는 블록도.
도 4a 및 4b는 p=1(모드 4)일 때 y2=x3+Ax (모드 p) 유형의 타원곡선에 대한 본 발명 스칼라 승수 알고리즘을 보여주는 블록도.
도 5a 및 5b는 p=1(모드 6)일 때 y2=x3+B (모드 p) 유형의 타원곡선에 대한 본 발명 스칼라 승수 알고리즘을 보여주는 블록도.
타원곡선 암호체계는 언더라잉체 Fp의 표수인 소수 p, 타원곡선 계수 A와 B, 포인트 개수 N 및 그 소인수 q, 그리고 군 생성원이라고 하는 차수 q의 초기 포인트 Q(x0,y0)를 포함하는 파라미터들의 집합에 의해 정의된다. 타원곡선 암호체계의 이들 파라미터는 안정성의 적정 강도를 제공하도록 특정 요건들을 만족시켜야 한다. 암호체계의 모든 파라미터, 즉 Fp, A, B, q, 그리고 Q(x0,y0)를 알고 있다고 할 때, 타원곡선 암호화에서 가장 자주 이용되며 가장 시간이 소모적인 연산은 포인트 스칼라 승법이다. 따라서, 본 발명은 스칼라 승수인 임의 정수에 의한 임의 타원곡선 포인트의 고속 스칼라 승법을 위한 방법 및 프로세스를 제공한다.
타원곡선 포인트 P와 스칼라 승수 k를 스칼라 곱셈하면 타원곡선의 또다른 포인트 R이 생긴다:
R = k·P (1)
앞서 말한 바와 같이, 스칼라 승법에 걸리는 시간은 스칼라 승수 길이에 가장 크게 영향을 받는다. 그래서, 스칼라 승법의 방법과는 상관없이 곱한 값 R을 계산하는데 걸리는 시간은 승수 k의 비트 길이에 비례하여 증가한다. 또, 타원곡선 암호체계를 가속하기 위해 스칼라 승수 길이에 제한을 두면 암호서기 강도가 감소된다.
따라서, 스칼라 승법 성능을 향상시키기 위한 다른 방법으로 스칼라 승수 k를 특수한 형태로 표현하는 것이 있다. 이렇게 하면 스칼라 곱이 보다 쉽게 계산된다. 이러한 특수한 형태의 k는 아래에서 설명되는 바와 같이 타원곡선 방정식 및 언더라잉체의 특정 유형에 대해 가능하다.
모드 q인 복소승법(complex multiplication)을 사상 τ:Pi→Pj로 지정하면, ∀Pj∈G 이다. 사상 τ는 군 G 자기동형사상(automorphism)이며, 차수[τ]의 순환군 T를 형성한다. 사상 Pi→Pj가 Pj=tγ·Pi를 의미하도록 사상인자(mapping factor) t 및 사상지수(mapping exponent) γ을 도입한다. 따라서, 순환군 T의 포인트는 다음과 같이 쉽게 계산될 수 있다: P=P0=t0·P, P1=t·P, P2=t2·P,..., P[τ]=t[τ]·P=t0·P=P. 순환군 T의 임의 포인트에 대한 일반적인 공식은 P'=tγ·P이고 여기에서, {P,P'}∈T 그리고 γ>[τ]이다. 즉, 사상지수 γ은 순환군 T 차수보다 작다.
사상 τ은 모드 q인 복소승법이기 때문에, 특수한 종류의 사상인자 t를 정의하는 언더라잉체의 특정 유형 및 일부 타원곡선 방정식에 있어서, 순환군 T의 어느 포인트라도 쉽게 계산될 수 있다.
본 발명에 따른 타원곡선 포인트 정수 {k,k}∈[0,q-1]의 고속 스칼라 승법은 최초 인자 k를 다음과 같은 부분적 표현으로 대체하는 것에 기초한다:
k = k0+ tγ·k1
여기에서그리고 γ<[τ] 이다. 따라서, 방정식 1은 아래에 보이는 방정식 2와 같이 변환된다.
R = k0·P + k1·P' (2)
또한, 최초의 인자 k는 다음과 같이 좀더 일반적인 형태로 표현될 수 있다:
k = tγ0·k0+ tγ1·k1
여기에서그리고 {γ01}≤[τ] 이다. 그러한 경우, 방정식 1은 아래의 방정식 2'로 나타낼 수 있으며, 이 때 P'=tγ0·P그리고 P″=tγ1·P이다.
R = k0·P' + k1·P″ (2″)
실제에 있어서, 부분 및 일반 형태의 k 표현은 동일하다. 일부 특수한 유형의 언더라잉체 및 타원곡선 방정식에 있어서, 일반적인 형태는 부분적인 형태에 합류 및 동등한 것이다. 따라서, 본 발명은 k 가 일반적인 형태로 표현될 수 있는 경우를 강조하면서 k 분해(decomposition)의 부분 형태에 초점을 맞추게 될 것이다.
k∈[0,q,-1] 그리고이기 때문에, k0,k1의 길이는 모두 k의 최초 길이보다 2배 짧다. 또한, 방정식 2는 동시적 연속 스칼라 승법 기술을 이용하여 효율적으로 계산될 수 있으며, 이는 전통적인 스칼라 승법에 비해 현저히 빠른 것이다. (최적 프레임을 갖는) 동시적 연속 스칼라 승법 방법의 성능을 전통적인 스칼라 승법 방법과 비교한 것이 도 1에 도시되어 있다. 동시적 연속 스칼라 승법 기술을 아래에서 설명하겠다.
본 발명은 체 표수 p 및 비-과특이 타원곡선 방정식의 특정한 두 조합을 이용한다. 첫 번째 조합은 타원곡선을 이용하는데, 상기 타원곡선은 계수 B=0인 방정식, 그리고 어떤 정수 m에 있어서 4m+1에 해당하는 특별한 종류의 소수인 표수 p를 갖는 언더라잉체에 의해 정의된다. 두 번째 조합은 타원곡선을 이용하는데, 상기 타원곡선은 계수 A=0인 방정식, 그리고 어떤 정수 m에 있어서 6m+1에 해당하는 특별한 종류의 소수인 표수 p를 갖는 언더라잉체에 의해 정의된다.
p=1(모드 4)인 언더라잉체 Fp에서 정의된 방정식 y2=x3+Ax을 갖는 타원곡선에 있어서, 사상 τ은 사상인자 t=j 및 사상지수 γ=1에 의해 다음과 같이 표현될 수 있다; τ4:(x,y)→(-x,iy), 여기에서 τ4(x,y)=j·(x,y), i≡√-1(모드 q), 그리고 j≡√-1(모드 q)이다. 사상 τ4은 차수 4의 순환군을 형성하며 본 발명은 다음의 단계를 포함한다:
1) k = k0+ jk1형태의 스칼라 승수 {k,k}∈[0.q-1] 분해 단계, 여기에서, 즉 k0,k1의 길이는 최초 k의 길이보다 2배 짧다(″스칼라 승수 성분 길이 조건″);
2) 방정식 1을 R = k0P + k1P'로 변환하는 단계;
3) 법칙 j·P(x,y)=P'(-x,iy)를 이용하여 P'=j·P를 계산하는 단계; 그리고
4) 동시적 연속 스칼라 승법 기술을 이용하여 R = k0P + k1P'를 계산하는 단계.
p=1(모드 6)인 언더라잉체 Fp에서 정의된 방정식 y2=x3+B를 갖는 타원곡선에 있어서, 사상 τ는 다음과 같이 사상인자 t=v 그리고 사상지수 γ=1에 의해 다음과 같이 표현될 수 있다; τ6:(x,y)→(ωx,-y), 여기에서 τ6(x,y)=v·(x,y). 또는 사상지수 γ=2에 의해 다음과 같이 표현될 수 있다; τ6:(x,y)=(ω2x,y), 여기에서 τ6(x,y)=v2·(x,y), ω≡3√1(모드 p), 그리고 v≡3√-1(모드 q). 사상 τ6는 차수 6의 순환군을 형성하며 본 발명은 다음의 단계를 포함한다:
1) k = k0+ v·k1또는
k = k0+ v2·k1또는
k = v·k0+ v2·k1형태의 스칼라 승수 {k,k}∈[0,q-1] 분해 단계, 여기에서, 즉 k0,k1의 길이는 최초 k의 길이보다 2배 짧다(″스칼라 승수 성분 길이 조건″);
2) 방정식 1을 R = k0P + k1P'로 변환하는 단계;
3) 법칙 v·P(x, y) = P'(ωx,-y)를 이용하여 P'= v·P를 계산하거나 또는 대신에 P″ = v2P(x, y) = P″(ω2x, y)를 계산하는 단계; 그리고
4) 동시적 연속 스칼라 승법 기술을 이용하여 R = k0P + k1P' 또는 R = k0P + k1P″ 또는 R = k0P' + k1P″를 계산하는 단계.
사상 τ4및 τ6모두에 대한 스칼라 승수 길이 k가 보다 짧아짐으로 인해 스칼라 승법이 주기가 상당히 짧아진다. 또한, 동시적 연속 승법은 스칼라 승법의 계산을 보다 효율적으로 한다. 지금부터 동시적 연속 승법을 설명하겠다. 일반적으로, 동시적 연속 승법을 다음과 같이 표현할 수 있다:
R = k0·P0+ k1·P1+ ... + ki·Pi
설명하자면, R = k0·P0+ k1·P1일 때, 간소화된 동시적 연속 승법은 두가지 성분을 갖는 것으로 간주될 것이다.
동시적 승법 기술은 ″Handbook of Applied Cryptography″ by A.J. Menezes, pp. 617-9 (CRC Press, 1993)에 기술되어 있다. 각 승법을 개별적으로 계산하는 것보다 동시적 연속 승법 이용하면, 인자 k0와 k1의 이중 수식(binary expression)을 이용함으로써 그리고 부분적인 결과를 사전계산함으로써 동시적 승법이 가능해진다.
동시적 스칼라 승법은 본 발명에서 기본적인 중요성을 갖는다. 동시적으로 계산되는 2가지 성분에 대한 연속 스칼라 승법 기술, 즉 R = k0·P0+ k1·P1이 아래의 예시에서 증명된다.
(예시 1) 이항식(binomial expression)을 계산
R = k0·P0+ k1·P1,
여기에서, k0=12345 (이진법 11 0000 0011 1001)
k1=6789 (이진법 1 1010 1000 0101), 그리고
P0와 P1는 타원곡선의 임의 포인트이다.
I. 이항식에 대한 일반 절차
1. 인자 k0및 k1프레임 w를 정의한다. w=2 비트.
2. 프레임 값들의 모든 가능한 조합에 대한 사전계산을 준비한다. Pij=i·P0+ j·P1, 여기에서 {i,j}∈[0, 2w-1] 그리고 2-비트 프레임에서 {i,j}∈[0, 3] .
3. 2행 및 t칼럼을 갖는 표를 형성한다, 이 때이다.
4. 주 비트(leading bit)로부터 시작하는 표의 칼럼을 처리함으로써 상기 결과의 수식을 계산한다:
4.1 R O(무한 포인트)
4.2 t에서부터 l까지 i에 있어서:
- 4R을 {R R+R,R R+R}으로 계산한다
- 표에서 다음 2 비트 칼럼을 선택하고 인덱스(index) l을 칼럼값으로 형성한다
- {R R+Pl}을 계산한다
4.3 R 복귀
II. 이항식에 대한 절차의 수행.
1. 프레임 값들의 모든 가능한 조합에 대해 준비한 사전계산이 아래의 표 2에 나타나 있다.
이항 스칼라 승법에 대해 준비한 사전계산 2비트 프레임을 갖는 고정 윈도우 방법을 이용한 R = k0·P0+ k1·P1
[k0]i [k0]j 사전계산된변수 수식 사전계산된값
0 0 P0 0·P0+ 0·P1 0
0 1 P1 0·P0+ 1·P1 P1
0 10 P2 0·P0+ 2·P1 2·P1
0 11 P3 0·P0+ 3·P1 3·P1
1 0 P4 1·P0+ 0·P1 1·P0
1 1 P5 1·P0+ 1·P1 1·P0+ 1·P1
1 10 P6 1·P0+ 2·P1 1·P0+ 2·P1
1 11 P7 1·P0+ 3·P1 1·P0+ 3·P1
10 0 P8 2·P0+ 0·P1 2·P0
10 1 P9 2·P0+ 1·P1 2·P0+ 1·P1
10 10 P10 2·P0+ 2·P1 2·P0+ 2·P1
10 11 P11 2·P0+ 3·P1 2·P0+ 3·P1
11 0 P12 3·P0+ 0·P1 3·P0
11 1 P13 3·P0+ 1·P1 3·P0+ 1·P1
11 10 P14 3·P0+ 2·P1 3·P0+ 2·P1
11 11 P15 3·P0+ 3·P1 3·P0+ 3·P1
2. 2행 및 t칼럼의 표가 아래에 형성되어 있다. 최대 k0및 k1비트 길이를 통해 t를 계산한다: (프레임 크기가 2비트이기 때문에)이다. 이 경우 t=7이다. 따라서, 표의 크기는 2행×7칼럼이고, 각 행은 스칼라 인자 k0, k1의 이항 표현을 포함한다:
칼럼 인덱스 1 2 3 4 5 6 7
k0 11 0 0 0 11 10 1
K0 1 10 10 10 0 1 1
1.일 때, li을 표 2의 i-번째 칼럼에 의해 형성된 정수라고 하자. 그러면, 단계 4에서의 알고리즘 수행은 다음과 같다:
4.1 R O(무한 포인트)
4.2 t에서부터 l까지 i에 있어서:
- 4R을 {R R+R,R R+R}으로 계산한다
- 표에서 다음 2 비트 칼럼을 선택하고 인덱스(index) l을 칼럼값으로 형성한다
- {R R+Pl}을 계산한다
4.3 R 복귀
상기 알고리즘의 단계 예시에 의한 단계가 아래의 표 3에 도시되어 있다. R = k0·P0+ k1·P1에서 k0=12345 그리고 k1=6789가 2비트 프레임을 갖는 윈도우 방법을 이용한 동시적 스칼라 승법 기술에 의해 계산된다.
i단계 R 시작 4R k0, k1처리 칼럼 1 Pl R 마지막
1 0 0 11 00 00 00 11 10 0101 10 10 10 00 01 01 13 3P0+P1 3P0+P1
2 3P0+P1 12P0+4P1 11 00 00 00 11 10 0101 10 10 10 00 01 01 2 2P1 12P0+6P1
3 12P0+6P1 48P0+24P1 11 00 00 00 11 10 0101 10 10 10 00 01 01 2 2P1 48P0+26P1
4 48P0+26P1 192P0+104P1 11 00 00 00 11 10 0101 10 10 10 00 01 01 2 2P1 192P0+106P1
5 192P0+106P1 768P0+424P1 11 00 00 00 11 10 0101 10 10 10 00 01 01 12 3P0 771P0+424P1
6 771P0+440P1 3084P0+1696P1 11 00 00 00 11 10 0101 10 10 10 00 01 01 9 2P0+P1 3086P0+1697P1
7 3086P0+1697P1 12344P0+6788P1 11 00 00 00 11 10 0101 10 10 10 00 01 01 5 P0+P1 12345P0+6789P1
위 실례에서, 사전계산(16)의 회수는 반복(iteration)(7)의 회수보다 더 많다. 그러나, k0및 k1의 길이는 일반적으로 훨씬 더 길며, 이것은 k0및 k1의 길이가 q의 길이의 절반이기 때문이다. 예를 들어, 1024-비트 RSA에 해당하는 강도를 갖는 차수 q=162 비트의 타원곡선에서, k0및 k1의 길이는 대략 82 비트가 된다. 2048-비트 RSA에 가까운 강도를 갖는 차수 q=239 비트의 타원곡선에서, k0및 k1의 길이는 대략 120 비트가 된다. 따라서, 16개의 중간값들의 사전계산은 전체의 동시 승법 시간에 영향을 미치지 않게 된다.
계산 속도는 사전계산 프레임 사이즈를 다양하게 변화시킴으로써 최적화될 수 있다. 윈도우 기술의 효과는 k0및 k1의 비트 길이와 사전계산 프레임 사이즈의 상관관계와 밀접한 관련이 있다. 또한, 이 방법은 이항 분해뿐만 아니라 임의의 개수의 원소를 갖는 분해에도 이용될 수 있는 것이다. 그러나, ki의 표에 대한 행의 개수 및 사전계산의 횟수가 증가할 수도 있다. 그러한 경우, 시간 최적화에 대한 방법을 이용할 수 있다. 도 2는, 2 및 3 성분의 동시적 스칼라 승법에 대한 최적 프레임 사이즈의 측정, 그리고 성분의 개수가 1일 때 동시 기술의 부분적 경우로서의 전통적인 스칼라 승법에 대한 최적 프레임 측정을 보여준다.
p=1(모드 4)일 때 y2=x3+Ax(모드 p) 형태의 타원곡선에 대한 고속 포인트 스칼라 승법 기술이 지금부터 설명되겠다. 소정 유형의 타원곡선에서, (x,y)가 곡선 위의 포인트라면, (x,-y), (-x,iy) 그리고 (-x,-iy) 역시 곡선 위의 포인트이다. x 좌표가 동일한 값을 갖는 포인트 (x,y)와 (x,-y)는 서로 대칭이며, 포인트 (-x,iy)와 (-x,-iy) 역시 대칭이다. 따라서 포인트 (x,y)와(-x,iy)의 상관관계가 보다 흥미로워진다.
q가 타원곡선의 소수인 차수일 때 j=√-1(모드 q)를 지정하여, 다음과 같은 보조정리(lemma)가 나타난다.
(보조정리 1) G를 타원곡선 포인트의 소수인 차수 q>2의 부분군(subgroup)이라고 하자. 포인트의 개수가 q2의 배수가 아니라면:
1. 군 차수 q는 합동 q≡1(모드 4)를 만족시키며, j2≡-1(모드 q)가 되도록 하는 j∈Fq가 존재한다.
2. 군 G는 복소승법을 허용한다: i2≡-1(모드 p)에 대해서 그리고 임의 포인트(x,y)∈G에 대해서, 방정식 3이 성립한다.
j·(x,y) = (-x, iy) (3)
(증명) P=(x,y)∈G를 유한 포인트라고 하자. 그러면, x≠0, y≠0 (반대로 q는 우수(even)이다). p≡1(모드 4)이기 때문에 i2≡-1(모드 p)가 되도록 하는 i∈Fp가 존재한다. 사상 τ:(x,y)→(-x,iy)는 타원곡선 위의 자기준동형사상(endomorphism)이며(반드시 G에 속할 필요는 없다), 또한 차수 4의 순환군을 가역적으로 형성한다. 상기 자기동형사상(automorphism)의 순환군 G에서의 작용(action)을 고려한다. 소정 포인트 P∈G에 있어서, 작용 τ는 어떤 수 t에 의한 타원곡선 위의 상기 포인트의 승법과 동등한 것이다: τ(P)=t·P.
상기 수 t가 포인트 (x,y)에 의존하지 않는다는 것을 증명해 본다. 자기준동형사상 τ은 체 Fp의 대수적닫힘체(algebraic closure)타원곡선에 작용한다는 사실이 주목된다. 정수에서 τ이 특성방정식(characteristic equation) τ2=-1을 만족시키기 때문에 τ(P)=t'·P가 되도록 하는 정수 t'는 없다. 그래서, τ를 -1의 제곱근으로 간주하는 것이 가능하고 자기준동형사상 환은 Z[√-1]에 동형이다. 소수인 체 Fp로의 복귀는 포인트 개수를 법으로 하는 약분(reduction) Z[√-1]와 동등한 것이다.
두가지 가능성이 있다: P∈G 및 τ(P)∈G, 또는 P∈G 및이다. 첫 번째가 맞다면, τ는 군 G의 자기동형사상이고 G에서의 유한 포인트의 개수는 4의 배수이다. 0∈G 그리고 τ(O)∈0 이기 때문에, q≡1(모드 4)이다. 두 번째 가능성이 맞다면, 사상 τ는 G와 다른 순환군 G' 사이의 동형사상(isomorphism)을 제공한다. 그래서, G'의 차수 또한 q이다. 군의 곱 H=G×G'는 동일한 군 법칙을 갖는 군이므로, H는 타원곡선 포인트로 이루어지며 똑같은 원소는 가지지 않는다. 따라서, H는 차수가 q2이며 타원곡선의 부분군이다. 포인트의 개수는 q2의 배수가 된다. 그래서 q2은 포인트 개수의 약수가 아니며 τ는 군 G의 자기동형사상이며 q≡1(모드 4)이다.
이차상반법칙(quadratic reciprocity law)에 따라, -1은 q를 법으로 하는 제곱잉여(quadratic residue)이며, j2≡-1(모드 q)가 되도록 하는 j∈Fp가 존재한다.
그리하여 τ2(P) = j2·P 그리고 τ(P) = j·P 또는 τ(P) = -j·P이다. τ는 G의 자기동형사상이므로, 상기 둘 중 하나의 가능성만이 성립한다. Fp에서 -1의 제곱근이 두 개 있다: j와 -j이다. j를 τ(P)=j·P를 제공하는 제곱근 값으로 배정한다. 그러면 사상 τ은 일정한 수 j에 의한 포인트의 승법과 동등한 것이 된다.
실제에 있어서, 암호화에 적합한 타원곡선 위의 포인트 개수는 q2의 배수가 될 수 없는데, 왜냐하면 q는 ″작은 값의″ 소인수일 것이기 때문이다. 그러므로, 곡선은 항상 복소승법을 가지며, q≡1(모드 4)인 소수이기 때문에 q는 아래의 유일 표현(unique representation)을 갖는다.
q = a2+ b2
그리고이다.
i에는 두 가지 가능한 값이 있으며 j에도 두 가지 가능한 값이 있다. 방정식 3에 해당하는 j와 j의 값은 간단한 스칼라 승법에 의해 그리고 상기 등식의 정확도를 검증함으로써 사전계산 단계에서 설정된다.
보조정리 1에서 나타난 결론을 말하자면, 2개의 간단한 연산으로 좌표를 바꿈으로써, j2=-1(모드 q)인 스칼라 승수 j에 의한 차수 q의 임의 포인트(x,y) 스칼라 승법을 간단히 수행할 수 있다는 것이다. 연산 중 하나는 가법 반전(additive inversion)이고, 또다른 하나는 언더라잉체 표수 p를 법으로 하는 승법이다. 임의 정수 k에 의한 포인트 스칼라 승법과 비교했을 때 복소수인 승수 j에 의한 포인트 승법의 계산 시간이 현저히 짧다. 따라서, 연산 R=k·P의 시간과 연산 R1= k1(j·P)의 시간이 같다는 것을 알 수 있다. k 표현이 아래의 형태로 가능함을 가정한다.
k = k0+ j·k1(모드 q) (4)
여기에서 q와 비교했을 때, k0와 k1는 작은 값의(small) 음이 아닌 정수이다. 그 결과의 스칼라 승법 공식은 R=(k0+ j·k1)·P 가 되거나 또는 P'=j·P를 지정하여 아래와 같이 된다.
R = k0·P + k1·P' (5)
보조정리 1에서 보인 바와 같이, 포인트 P'∈E(Fp), P'=j·P, p=1(모드 4)가 두 개의 간단한 연산으로 계산될 수 있다. k 표현에 대한 상기 가정이 옳은 것이라면, 방정식 5는 동시적 연속 승법 기술을 이용하여 효율적으로 계산될 수 있다. 그러한 표현의 증명 및 그 성질(property)이 아래에 설명되겠다.
위에서 설명한 바와 같이, q가 소수이고 q≡1(모드 4)이기 때문에, q는 유일 표현 q=a2+b2을 가지며, 여기에서 a와 b는 패리티(parity)가 다른 양의 정수이고이다. 스칼라 승수 성분 길이 조건은 다음과 같다:
(6)
따라서, j의 길이가 q 길이와 같을 때, k0,k1의 길이는 모두 대략 q 길이의 절반이다. 방정식 (6)의 조건을 만족하는 방정식 (4)에 의한 임의 k∈[0, q-1]의 표현을 다음 정리 (2)에서 나타낼 것이다.
(정리 2) 0≤{k0,k1}<max(a,b) 이면, 합(sum) k ≡ k0+ j·k1(모드 q)의 집합에는 동일한 원소가 없다.
(증명) 두 개의 동일한 합 k = k0+ j·k1와 e0+ j·e1이 존재한다고 가정하자. 그러면, f0=k0-e0, f1=k1-e1그리고 f0+ j·f1≡ 0 (모드 q),이다. f = f0+ j·f1이 2차원 격자(two-dimensional lattice)의 원소라면 마지막 합동이 성립하며 상기 2차원 격자의 포인트는 q의 배수를 가우스정수(Gaussian integers)로서 표현한다. 상기 격자는 최소기저(minimal basis)(a,b)를 갖는다.이므로, 가우스정수 Z[j]에서 등식 f0+ j·f1= 0이 불가능하고, 따라서 합동 f0+ j·f≡0(모드 q)가 불가능하다.
(따름정리(corollary) 2.1) 최대값 (k0,k1) 및 (e0,e1)에 제한을 둔 상태에서 합 k0+ j·k1= e0+ j·e1(모드 q)이 존재하면, k0+ j·k1≡0(모드 q)의 형태로 된 제로의 동일 표현이 존재한다.
0<b<a 그리고 0≤{k0,k1}≤a-1이라 하자. (k0,k1)의 a2<q 쌍이 존재하기 때문에, 얻을 수 없는 합 k ≡ k0+ j·k1(모드 q)가 존재한다. 또, m을 음이 아닌 계수 k0와 k1의 바운드(bound)로 한다.
(정리 3) 0≤{k0,k1}≤m 가 되도록 k0와 k1가 음이 아닌 정수라면, 합 k = k0+ j·k1(모드 q)은 다음과 같은 성질을 갖는다.
1. m≤(a+b-1)이면, 합의 집합은 3개의 동일한 합을 갖지 않는다.
2. (max(a,b)-1)≤m≤(a+b-1)이면, 얻을 수 없는 값 k의 집합의 카디날리티(cardinality)는 (a+b-1-m)2이다.
3. 0≤{k0,k1}≤m=a+b-1이면, 0≤k≤q 인 모든 k는 k = k0+ j·k1(모드 q) 형태의 표현을 가지며, 이때 2ab 합들은 같다.
(증명) 만약 3개의 같은 합들이 존재한다면, 그들의 쌍별(pairwise) 차이로 인해 제로에 대한 3개의 다른 표현을 낳는다. 그래서, 이차원 격자에 3개의 포인트가 존재하게 되며, 상기 이차원 격자의 포인트는 q의 배수를 가우스정수로 표현한다. 최대 도달가능한(accessible) 가우스정수 k0+ j·k1의 노름(norm)은 (k0 2+k1 2)<2q를 만족한다. 따라서, 합동 k0+ j·k1≡0(모드 q)는 가우스 정수에서 단 두 개의 가능한 등식만을 허락한다: 0 + j·0 = 0 및 a + k·b = q 로서 3개의 동일한 합은 존재하지 않는다.
2. a>b 라고 하자. m = a-1이면, 정리 2에 따라 합이 동일한 것은 없다. 가능한 합의 카디날리티는 (m+1)2= a2이고, 얻을 수 없는 합의 카디날리티는 q-a2= b2이다. 얻을 수 없는 합의 집합이 b 부분집합(subset)을 포함하며, 각 부분집합은 b 연속수(b sequential number)를 포함하는 것이 증명되겠다. 가장 작은 값의 얻을 수 없는 수 K가 존재한다. 따라서, 수 K-1 = m + j·k1는 k = k0+ j·k1(모드 q) 및 K = m+ 1 + j·k1(모드 q) 형태의 표현을 갖는다. (a,b)가 q를 법으로 하는 가우스정수의 격자의 최소기저이기 때문에, 수 K+b 가 존재하며, 이때 K+b 역시 상기의 표현을 가지며 반면 K+b-1은 그렇지 않다. 그러므로, 얻을 수 없는 b 연속수들이 있다.
한편, 적정 K에 대해서 K, K+j·1, K+j·2..., K+j·b 종류의 b 연속수들이 존재한다. 그래서, 얻을 수 없는 합의 집합이 테이블 b×b와 같은 최소 형태로 표현되며, 이 때 행에 있는 원소들은 1만큼 서로 다르며 칼럼에 있는 원소들은 j 만큼 서로 다르다.
m의 증가가 행의 개수 및 칼럼의 개수의 감소를 뒤따른다. 따라서, 현재(current) m= mi에 대한 점프(jump) mi→mi+1는 얻을 수 없는 합의 카디날리티가 bi 2에서 (bi-1)2으로 변한다는 것을 보여주며, 이때 b0= b이다.
3. 증명 2에서부터 (k0,k1) 쌍들의 다른 집합의 카디날리티가 (m+1)2= (a+b-1+1)2= a2+ 2ab + b2= q + 2ab 임이 도출된다; 0≤k<q인 모든 k는 k = k0+ j·k1(모드 q) 형태의 표현을 가지며 k의 2ab 값은 두 번 표현될 수 있다.
(따름정리 3.1)이면, 얻을 수 없는 수 s = (a+b-1-m)2및 이중 합(double sums)가 존재한다. 이것은 정리 3의 증명 2에서 직접 도출된다.
s와 t의 추정(estimation)은 다음 값을 낳는다:
예를 들어, q=149, a=10 b=7, j=4, 그리고이면, 얻을 수 없는 수들은: 16개의 수 {23, 24, 25, 26, 67, 68, 69, 70, 111, 112, 113, 114, 128, 129, 130, 131}이고, 이중의 합은: 36개의 합 {0, 1, 2, 3, 4, 5, 10, 11, 12, 37, 38, 39, 44, 45, 46, 47, 48, 49, 54, 55, 56, 81, 82, 83, 88, 89, 90, 91, 92, 93, 98, 99, 100, 142, 143, 144} 이다.
최초 타원곡선 포인트 스칼라 승법 공식 R=k·P을 계산적으로 좀 덜 어려운 식 R=k0·P + k1·P'로 대체하면 타원곡선 암호체계 강도에서 약간의 감소가 있게 된다. 두가지 이유로 해서 강도는 감소한다. 첫 번째는 복소승법의 존재와 관련하고 두 번째는 비밀 수 k를 특별히 선택하는 것과 관련한다. 폴라르드 료-방법으로 알려진 개별 로가리즘 문제를 해결하기 위한 알고리즘이 ″Monte Carleo methods for index computations mod pn″ by J. Pollard, Math. Comp., v. 32, pp. 918-24(1978)에 개시되어 있다.
복소승법은 군 자기동형사상이며, 사상 P→j·P 는 차수 4의 순환군 G4를 형성한다. 연관된 포인트 집합 (P)4을 포인트 P 상의 작용 (4 포인트) 군 G4의 이미지(image)로 정의하자. i2=-1(모드 p)일 때, 연관된 모든 포인트 {(x,y), (-x,iy), (x,-y), (-x,y)}는 동일한 x2(모드 p)의 값을 갖는다. i2=-1(모드 p)이기 때문에, 집합 (P)4은 포인트 및 그 반대(opposite) 포인트를 포함한다. 또한, 정수 k에 대한 등식 k(P)4=(kP)4이 성립한다. 그래서, 연관된 포인트 (P)4의 모든 집합들의 집합은 차수 (q-1)/4의 반군(semigroup)을 형성한다.
그러므로, 차수 q의 군 G에서의 최초 타원곡선 개별 로가리즘 문제를 해결하기보다는, 두 가지 문제, 즉 차수 (q-1)/4의 반군에서의 로가리즘 문제 및 군 G4의 로가리즘 문제를 해결하는 것이 가능하다. 그러나, 두 번째 문제가 보다 쉽게 해결된다. 따라서, 첫 번째 문제는 주로 암호체계의 강도를 결정한다. 폴라르드의 알고리즘이 반군에서의 로가리즘을 찾는데 적합하고 또 그 복잡도(complexity)가 군 차수의 제곱근에 비례하기 때문에, 암호체계의 강도는 √4의 인수, 즉 2배 만큼 감소된다. 이러한 강도 감소는 크게 중요한 것이 아니며 최초 길이보다 2 비트 긴 q를 선택함으로써 보상할 수 있다.
위에서 설명한 바와 같이, 암호체계 강도는 또한 비밀 수 k를 특수하게 선택하는 것으로 감소할 수 있다. 키 계산이 폴라르드 알고리즘으로 행해진다고 가정하자. 상기 알고리즘은 의사무작위 사상(pseudo random map) q에 기초하는데, 이것은 타원곡선 로가리즘의 계산가능성을 유지해준다. 침입자(intruder)가 얻을 수 없는 수들의 집합을 알고 있으며 이중 합의 집합을 알고 있다고 가정하자. 타원곡선 로가리즘 문제의 가능한 해법 집합의 카디날리티는이다. 두 가지 극단적인 가능성이 있는데, 사상 q의 이미지 집합은 얻을 수 없는 로가리즘에 의존하지 않는다는 것과, 그리고 이중 합(로가리즘) 또는 사상 q의 이미지 집합은 얻을 수 없는 로가리즘을 포함하지 않는다는 것이다.
첫 번째 경우, 암호체계의 강도는 감소하지 않으나, 두 번째 경우에는 강도가 약간 감소하게 된다. 강도의 감소는 가능한 해법의 카디날리티가 감소하는 것으로 설명될 수 있다. 특수한 k에 있어서, 강도는 최초 강도의 약이며 폴라르드 알고리즘의 복잡도는 √q이다. 복잡도에 의한 강도 감소를 보상하기 위해, 제곱에 의해 q를 증가시키는 것으로 충분하다. 따라서, 강도의 감소는 수 q를 1.2배 증가시킴으로써 또는 q의 길이를 0.13 비트 증가시킴으로써 보상될 수 있다. 결과적으로, 복소승법에 기인한 암호체계의 감소 및 k를 특수하게 선택하는 것은 크게 중요하지 않거나 무시해도 되는 것이다.
위에서 보인 바와 같이, p=1(모드 4)인 E(Fp)에서, [0, q-1]의 범위에 있는 k 대부분의 값들은인 k = k0+ j·k1(모드 q)의 형식으로 표현되며, 최초의 스칼라 승수 k가 아닌 상기 표현을 사용하는 것이 타원곡선 암호체계 강도의 감소를 최소로 한다. q 길이를 1 비트 증가시키는 것은 강도 감소를 쉽게 배제할 수 있으며, 2배 짧은 성분인 k0,k1를 통해 k 분해를 이용하는 것은 타원곡선 암호체계 성능을 향상시켜 준다.
또한, 앞서 살펴본 바와 같이,이면, 승수 {k,k}∈Fp는 k = k0+ j·k1(모드 q)의 형식으로 표현가능하며, 대부분의 k 값에 있어서 상기 표현은 유일(unique)한 것이다. 그러나, 승수 성분 길이 조건는 대체로 무시해도 좋은 것이고 제한이 있다면 그것은 {k1,k2}∈Fq이다. 그러한 경우, 동일한 k값이 상이한 쌍인 (k0,k1)의 집합에 의해 표현될 수 있다. 예를 들어, 만약 k0=k, k1=0이면 k는 k = k0+ 0·j 의 형식으로 표현가능하다; 그리고 만약 k0=0, k1=k/j이면 k는 k = 0 + k1·j 의 형식으로 표현가능하다.
동시적 연속 스칼라 승법 기술의 이점을 얻기 위해, 이상적으로는 승수 성분 길이 조건이 유지될 때,이 최소인 k의 분해를 찾는 것이 필요하다. 소수 q≡1(모드 4)이기 때문에, 그 표현은 q=a2+b2=(a+bj)(a-bj)이다. π=(a+bj) 그리고로 지정하면,는 환 Z[j]으로 수 q를 인수분해한 것이다. 노름(norm)N(π)=a2+b2=q을 정의하면,이다.
임의 원소의 노름은 정수이고, 또한 상기 노름은 소수이면서 양의 정수인 여인수(cofactor)에 대한 인수분해를 허락한다. 따라서, 소수인 노름을 갖는 원소는 환 Z[j]의 소수이며, 그리고 N(π)=q이므로 π는 환 Z[j]의 소수인 원소이고 K=Z[j]/πZ[j]는 체이다. 또한, q≡1(모드 4)이므로, -1은 q를 법으로 하는 제곱잉여이고 t2≡-1(모드 q)가 되도록 하는 수 t가 존재한다. 만약 t∈Fq그리고 j∈K이면, 사상 K→Fq는 k0+ k1j→k0+ k1t(모드 q)로 정의될 수 있으며 이는 체 동형사상이다. 본 발명에 따라,이 최소가 되도록 역 동형사상(inverse isomorphism)을 정의해야 한다.
t, -t가 모두 j의 이미지로 간주될 수 있기 때문에, a+bt가 q를 법으로 하는 제로 원소에 상응하도록 t가 정의된다: a+bt≡0(모드 q). 그래서, a>b이면, N(π)=q, 다음 π=a+bj≡0(모드 q)이다. 가우스정수의 노름은 정수이고, 길이가 짧은 k0,k1를 통해 k 분해를 발견하기 위해 유클리드 알고리즘(Euclidean algorithm)을 이용하는 데는 실수 및 허수 단계가 모두 있게 된다. 그러나, 유클리드 알고리즘은 실수 방향으로만 단계를 제공하며, 따라서 유클리드 알고리즘의 이용은 기본적으로 상기 방향을 선택한다.
더 나아가, π=a+bj≡0(모드 q)이기 때문에, 임의 가우스정수 α에서, απ≡0(모드 q)이다. 따라서, 만약 μ=λ-απ이면 임의 α에 대해서 가우스정수 λ 및 μ는 같은 수 k∈Fp에 해당한다. k 분해 성분 k0,k1의 길이를 최소화하기 위해, μ의 노름이 최소가 되도록 하는 μ=λ-απ를 찾는 것이 필요하다: N(μ) = N(λ-απ) → min.
체 K=Z[j]/πZ[j]에서, 가우스정수 α는 α=n 또는 α=nj로 표현될 수 있으며, 이때 n은 정수이며 n∈Fq다. α의 최적 방향은 노름 N(λ-απ)을 최소화하도록 선택될 것이다. λ=c+ej를 지정하고, α=n인 실수 방향을 고려한다. 여기에서, N(λ-nπ) = (c-na)2+ (e-nb)2= N(λ) + n2q - 2n(ac+be)이다. 초기 값 k≠0(모드 q)라고 가정하면, N(λ-nπ)≠0이다. 그러므로, N(λ-nπ)가 최소가 되도록 하는 최적 n이 존재하며, 이 값은 미분(derivation)의 제로에 상응한다. 따라서, n = [(ac+be/q)]이고, 여기에서 [*]는 괄호 내 분수(fraction)에 가장 가까운 정수를 나타낸다. n의 표시는 최소화(minimization) N(λ-απ)을 제공해야 한다. 또한 허수 방향 α=nj를 고려해야 한다. 그러면, N(λ-njπ) = (c+nb)2+ (k-na)2이다. n=[(ae-bc)/q]이면 노름의 최소값을 얻을 수 있다. n의 표시는 최소 N(λ-απ)을 제공해야 한다.
가장 좋은 방향이 최소 N(λ-απ)을 제공한다. 둘 이상의 방향이 이용될 수 있기는 하지만, 방향의 개수를 증가시키면 알고리즘수렴(algorithm convergence) 속도가 증가되고 계산은 더 복잡해진다. 따라서, 본 발명에 따른 (성분 길이라는 의미에서) 최적 k 분해를 발견하기 위한 알고리즘이 도 3a와 3b에 도시되어 있으며, 본 알고리즘은 다음과 같다.
1. 분해를 위해 승수 k를 구한다{단계 S10}.
2. 가우스 정수 λ=c+ej=k를 설정하고 초기 c=k 및 e=0를 설정한다{단계 S12-S14}.
3. λ-απ와 노름 N(λ-απ)를 양방향 n 및 nj 에서 계산한다:
- 실수방향 α0=n0를 고려하고{단계 S20} n0=[(ac+be)/q]를 한 방향으로 계산한다{단계 S22}.
다음, λ-n0π = (c-n0a) + (e-n0b)j를 계산한다{단계 S24}, 그리고 노름 N0(λ-n0π) = (c-n0a)2+ (e-n0b)2를 계산한다{단계 26}.
- 허수방향 α1=jn1을 고려하고{단계 S30} n1= [(ae-bc)/q]을 다른 방향으로 계산한다{단계 S32}.
다음, λ-n1jπ = (c+n1b) + (e-n1a)j를 계산하고{단계 S34}, 그리고 노름 N1(λ-n1jπ) = (c+n1b)2+ (e-n1a)2을 계산한다{단계 S36}.
4. 최소 노름 N = min(N0, N1)이 되는 최적 방향 α를 선택한다.
- N0가 N1보다 크지 않으면, k0=k0그리고 k1=k1을 설정한다{단계 S40 및 S42}.
- N0가 N1보다 크면, k0=k10그리고 k1=k11을 설정한다{단계 S40 및 S44}.
- n0와 n1을 계산한다. 양 방향 모두에서 n=0이면, k0=c, k1=e을 출력하고 정지한다. 그렇지 않으면 가우스정수 λ를 최적 방향에 해당하는 가우스정수 λ-απ로 대체하고 단계 S20으로 돌아간다{단계 S46-S48}.
예를 들어, 초기 값들이 c=149 그리고 e=0로 설정되었을 때, q=269, a=13, b=10, j=187, 그리고 k 분해 회수=149이면, 본 발명에 따라 최적 k를 발견하기 위한 알고리즘은 다음과 같다.
(제1 반복(iteration)):
λ=149+0j. 단계 n의 사이즈 및 방향 선택한다.
α=n에서, n=7, λ-απ=58-70j, N(λ-απ)=8264을 구한다.
α=nj에서, n=-6, λ-απ=89+78j, N(λ-απ)=14005을 구한다.
가장 좋은 방향이 첫번째이다.
(제2 반복):
λ=58-70j. 단계 n의 사이즈 및 방향 선택한다.
α=n에서, n=0, λ-απ=58-70j, N(λ-απ)=8264을 구한다.
α=nj에서, n=-6, λ-απ=-2+8j, N(λ-απ)=68을 구한다.
가장 좋은 방향이 두번째이다.
(제3 반복):
λ=-2+8j. 단계 n의 사이즈 및 방향 선택한다.
α=n에서, n=0, λ-απ=-2+8j, N(λ-απ)=68을 구한다.
α=nj에서, n=0, λ-απ=-2+8j, N(λ-απ)=68을 구한다.
양방향에서 n=0이므로 정지한다.
(결과로 나타난 분해): λ=-2+8j=-2+8*187≡149(모드 269).
(출력): k0=-2 그리고 k1=8.
상기의 알고리즘은 최소의 노름을 갖는 쌍 (k0+ k1j)을 낳으며, 그 결과의 쌍은 원(circle) k0 2+k1 2=√q 내의 복소평면(complex plane)에 놓여 있다. 그러므로, k0,k1중 하나 또는 둘 다 음의 값을 가질 수 있다. 그러나, 이러한 성질은 계산을 크게 복잡하게 하지 않는데, 이것은 임의 포인트 (x,y)에서 등식 -k(x,y)=k(x,-y)가 성립하여 이미 알고 있는 포인트 (x,y)에 대해 포인트 (x,-y)를 쉽게 계산할 수 있기 때문이다.
방정식 (3)과 (6)을 고려하여, 본 발명에 따라 p=1(모드 4), 차수 q의 포인트 P(x,y), 그리고 스칼라 승수 k의 y2=x3+Ax(모드 p) 종류의 타원곡선에 대한 고속 스칼라 승법 R=k·P의 프로세스가 도 4a와 4b에 도시되었으며, 상기 프로세스는 다음의 단계를 포함한다.
1) 차수 q와 표수 p를 획득한다{단계 S100}.
2) 사상 τ:(x,y)→(-x,iy)을 정의하고 i2=-1(모드 p) j2=-1(모드 q)을 계산한다{단계 S102}. 다음, 차수 q의 임의 타원곡선 포인트 P(x,y)에 대해 조건 j·P(x,y) = P'(-x,iy)이 성립하도록 i,j의 두 값들 중 하나 사이의 대응을 발견한다{단계 S104}
3) 승수 k와 소스(source) 포인트 P를 구한다{단계 S110}. P가 고정된 포인트(예, 군 생생원)라면 P'=jP를 사전계산한다.
4) 스칼라 승수가 일정한 것이라면 도 3a 및 3b에 보인 스칼라 승수 분해 알고리즘을 이용하여 스칼라 승수 k 분해를 발견하고{단계 S120 및 S122}, 또는 k0및 k1길이가 최초 k의 길이보다 2배 짧을 때(″스칼라 승수 성분 길이 조건″) 스칼라 승수가 k = k0+ jk1형태의 임의의 것이라면 스칼라 승수 k를 구성하며, 최초 공식 R=k·P를 R = k0·P + k1·P'으로 변환한다.
5) P가 임의의 포인트라면 (그리고 P'가 단계 3에서 사전계산되지 않았다면), i2=-1(모드 p)인 법칙 j·P(x,y) = P'(-x,iy)를 이용하여 P'=j·P를 계산한다(단계 S130).
6) 동시적 연속 승법 기술을 이용하여 R=k0·P + k1·P'를 계산한다{단계 S140}.
7) k0와 k1의 값을 출력한다.
″스칼라 승수 성분 길이 조건″과 관련하여, 단계 S140은 그 계산상의 복잡도가 방정식 (1)의 일반 스칼라 승법보다 상당히 덜하다.
다음, p=1(모드 6)인 y2=x3+B(모드 p) 형태의 타원곡선을 위한 고속의 포인트 스칼라 승법 기술이 설명되겠다. 소정 유형의 타원곡선에서, 만약 (x,y)가 곡선 위의 포인트라면 포인트 (x,-y), (ωx,y), (ωx,-y), (ω2x,y) 그리고 (ω2x,-y) 또한 곡선 위의 포인트이다. x좌표가 동일한 값을 갖는 포인트 (x,y)와 (x,-y)는 서로 대칭이며, 포인트 쌍들 (ωx,-y), (ω,-y) 그리고 (ω2x,y), (ω2x,-y) 역시 대칭이다. 따라서, 포인트 (x,y)와 포인트 (ωx,-y), (ω2x,y) 사이의 상관관계가 더욱 흥미를 끌게 된다. q가 타원곡선의 소수인 차수일 때 v≡3√-1(모드 q)를 지정하면, 다음 보조정리로 나타낼 수 있다.
(보조정리 4) G를 타원곡선 포인트의 소수인 차수 q>3의 부분군이라고 하자. 포인트 개수가 q2의 배수가 아니라고 하면:
- 군 차수 q는 합동 q≡1(모드 6)을 만족하며, v3≡-1(모드 q)가 되도록 하는 v∈Fq가 존재한다.
- 군 G는 복소승법을 허용한다: ω3≡1(모드 p) 그리고 임의 포인트 (x,y)∈G에 대해서, 방정식 (7)과 (7')가 성립한다.
v·(x,y)=(ωx,-y) (7)
v2·(x,y)=(ω2x,y) (7')
(증명) P=(x,y)∈G를 유한 포인트라고 하자. 그러면, x≠0, y≠0이다(반대로 q는 우수(even)이거나 또는 q는 3의 배수이다). p≡1(모드 6)이기 때문에, ω3≡1(모드 p)가 되도록 하는 ω∈Fp가 존재한다: 사상 τ:(x,y)→(ωx,-y)는 타원곡선 위의 군 자기준동형사상이며(G에 있을 필요는 없다), 가역적이고, 차수 6의 순환군을 형성한다. 순환군 G의 상기 자기동형사상의 작용을 고려한다. 소정 포인트 P∈G에 있어서, 작용 τ은 어떤 수 t에 의한 타원곡선의 상기 포인트의 승법과 동등한 것이다: τ(P)=t·P
수 t가 포인트 (x,y)에 의존하지 않는다는 것을 증명하겠다. 자기준동형사상 τ은 체 Fp의 대수적닫힘체의 타원곡선에 작용한다는 사실이 주목된다. 정수에서 τ이 특성방정식 τ3=-1(또는 τ2-τ+1=0)을 만족시키기 때문에 τ(P)=t'·P가 되도록 하는 정수 t'는 없다. 그래서, τ를 -1의 세제곱근(cubic root)으로 간주하는 것이 가능하고 자기준동형사상 환은 Z[3√-1]에 동형이다. 소수인 체 Fp로의 복귀는 포인트 개수를 법으로 하는 약분 Z[3√-1]와 동등한 것이다.
두가지 가능성이 있다: P∈G 및 τ(P)∈G, 또는 P∈G 및G이다. 첫 번째가 맞다면, τ는 군 G의 자기동형사상이고 G에서의 유한 포인트의 개수는 6의 배수이다. 0∈G 그리고 τ(O)∈0 이기 때문에, q≡1(모드 6)이다. 두 번째 가능성이 맞다면, 사상 τ는 G와 다른 순환군 G' 사이의 동형사상을 제공한다. 그래서, G'의 차수 또한 q이다. 군의 곱 H=G×G'는 동일한 군 법칙을 갖는 군이므로, H는 타원곡선 포인트로 이루어지며 똑같은 원소를 가지지 않는다. 따라서, H는 차수가 q2이며 타원곡선의 부분군이다. 포인트의 개수는 q2의 배수가 된다. 그러므로 q2은 포인트 개수의 약수가 아니면 τ는 군 G의 자기동형사상이며 q≡1(모드 6)이다.
이차상반법칙에 따라, -3은 q를 법으로 하는 제곱잉여이며, v3≡-1(모드 q) 또는 v2-v+1≡0(모드 q)가 되도록 하는 v∈Fq가 존재한다. 그리하여 τ3(P) = v3·P 그리고 τ(P) = v·P 또는 τ(P) = -v2·P = v5·P이다. τ는 G의 자기동형사상이므로, 상기 둘 중 하나의 가능성만이 성립한다. Fq에서 -1의 세제곱근이 두 개 있다: v와 -v2이다. v를 τ(P)=v·P를 제공하는 세제곱근 값으로 배정한다. 그러면 사상 τ은 일정한 수 v에 의한 포인트의 승법과 동등한 것이 된다.
방정식(7)에 기초한 고속 스칼라 승법의 기본은 방정식(7)과 유사하므로 하기에는 설명되지 않을 것이다. 실제로는, q가 ″작은 값의″ 소인수이기 때문에 암호화에 적합한 타원곡선 상의 다수의 포인트는 q2의 배수가 될 수 없다. 그러므로, 곡선은 항상 복소승법을 가지며, 또한 q≡1일 때(모드 6) q가 소수이므로, q는 다음과 같은 유일 표현을 갖는다.
q = a2+ ab + b2
그리고이다. q를 법으로 하는 격자 Z[v]의 최소기저를라 정의하면, 양수 a와 b에서의 q 표현은 최소기저이다. 또한, a는 b보다 큰 것으로 간주된다.
v에는 두 개의 가능한 값이 있으며 ω에도 두 개의 가능한 값이 있다. 방정식 (7)에 해당하는 v 및 ω값은 간단한 스칼라 승법에 의해 그리고 상기 등식의 정확도를 검증함으로써 사전계산 단계에서 설정된다.
보조정리(4)에서 나타난 결론은 2개의 간단한 연산을 이용하여 좌표를 바꿈으로써, v3= -1(모드 q)인 스칼라 승수 v또는 v2에 의한 차수 q의 임의 포인트(x, y)의 스칼라 승법을 간단히 수행할 수 있다는 것이다. 방정식(7)에서 보인 v를 이용한 포인트 승법에 있어서, 연산 중 하나는 가법 반전(additive inversion)이고 다른 하나는 언더라잉체 표수 p를 법으로 하는 승법이다. 방정식 (7')에서 보인 v2를 이용한 포인트 승법에 있어서, 유일한 연산은 언더라잉체 p를 법으로 하는 승법이다. 임의 정수 k에 의한 포인트 스칼라 승법과 비교했을 때, 복소수인 승수 v에 의한 포인트 승법의 계산 시간이 현저히 짧다. 따라서, 연산 R=k·P의 시간과 연산 R1=k1(v·P) 또는 R1=k1(v2·P)의 시간이 같다는 것을 알 수 있다. k 표현이 아래의 형태로 가능함을 가정한다.
k = k0+ v·k1(모드 q) (8)
k = k0+ v2·k1(모드 q) (8')
k = v·k0+ v2·k1(모드 q) (8″)
여기에서, q와 비교했을 때, k0와 k1는 작은 값의 음의 아닌 정수이다. p'=v·P이고 P″=P'=v2·P라고 지정하고, 방정식 (8), (8'), 그리고 (8″)의 분해를 최초 공식 R=k·P에 대체하면, 스칼라 승법 공식은 아래와 같이 변환된다.
R = k0·P + k1·P' (9)
R = k0·P + k1·P″ (9')
R = k0·P' + k1·P″ (9″)
보조정리 4에 보인 바와 같이, p=1(모드6)일 때, 포인트{P', P″)∈E(Fp), p'=v·P, P″ = v2·P는 두 개의 간단한 연산으로 쉽게 계산될 수 있다. 상기의 k 표현에 대한 가정이 맞는다면, 방정식 (9), (9') 그리고 (9″)가 동시적 연속 승법 기술을 이용하여 효율적으로 계산될 수 있다. 상기 표현의 증명 및 그 성질을 아래에서 기술하겠다.
이해를 돕기 위해 설명하자면, 하기의 분석은 v가 사용되는 방정식 (8)과 (9)에 대해서만 언급하고 있다. 그러나, v와 v2의 값이 v2-v+1=0 와 연관되므로, v에 대한 하기 결론을 v2에도 쉽게 적용할 수 있다.
위에서 설명한 바와 같이, q가 소수이고 q ≡ 1( 모드6)이기 때문에, q는 유일 표현 q = a2+ ab + b2을 가지며, 여기에서 a와 b는 패리티가 다른 양의 정수이고이다. 스칼라 승수 성분 길이 조건은 다음과 같다:
(10)
그러므로, v의 길이가 q 길이와 같을 때, k0와 k1의 길이는 모두 대략 q 길이의 절반이다. 방정식 (10)의 조건을 만족시키는 방정식 (8)에 의한 임의 k∈[0, q-1]의 표현을 아래의 정리 (5)에서 나타내고 있다.
(정리 5) 0≤{k0,k1}〈max(a,b) 이면, 합 k ≡ k0+ v·k1(모드 q)의 집합에는 동일한 원소가 없다.
(증명) 두 개의 동일한 합 k ≡ k0+ v·k1와 e0+ v·e1이 존재한다고 가정하자. 그러면 f0=d0-e0, f1=d1-e1, 그리고 f0+ v·f1≡ 0 (모드 q), 0≤{│f0│,│f1│}<max(a,b)이다. f = f0+ v·f1이 2차원 격자의 원소라면 마지막 합동이 성립하며, 상기 2차원 격자의 포인트는 q의 배수를 원소 Z[v]로 표현한다. 상기 격자는 최소기저(a,b)을 가진다. {│f0│,│f1│}<max(a,b)이므로, (f0,f1)쌍은 격자 Z[v]/qZ 내의 포인트가 될 수 없다. 따라서 Z[v]/qZ 내의 등식 f0+ v·f1= 0 이 불가능하여, 합동 f0+ v·f≡ 0 (모드 q)도 불가능하다.
(따름정리 5.1) 최대값 (k0, k1)와 (e0, e1)에 제한을 둔 상태에서 합 k0+ v·k1= e0+ v·e1(모드 q)이 존재한다면, k0+ v·k1≡0(모드 q)의 형태로 된 제로의 동일한 표현이 존재하게 된다.
0〈b〈a, a2+ab+b2=q 그리고 0≤{k0,k1}≤a-1이라 하자. (k0,k1)의 쌍 a2〈q 가 존재하기 때문에, 얻을 수 없는 합 k≡k0+ v·k1(모드 q)이 존재한다. 또, m을 음수가 아닌 계수 k0, k1의 바운드(bound)로 한다.
(정리 6) 0≤(k0, k1)≤m이 되도록 k0와 k1가 음의 아닌 정수라면, 합 k = k0+ v·k1(모드 q)의 합은 다음과 같은 성질을 갖는다.
1) m≤(a+b-1)이면, 합의 집합은 동일한 3개의 합을 갖지 않는다.
2) (max(a,b)-1)≤m≤(a+b-1)이면, 얻을 수 없는 값들 k의 집합의 카디날리티는 (a+b)(a+b-1-m)이다.
3) 0≤{k0,k1}≤m=a+b-1이면, 0≤k<q인 모든 k는 k = k0+ v·k1(모드 q)형태의 표현을 가지며, 이때 ab 합들은 같다.
(증명) 합의 카디날리티가 q를 초과하므로, 동일한 합이 존재한다. 만약 세 개의 동일한 합이 존재하면, 그 쌍들의 차이는 제로에 대한 세 개의 표현을 제공한다. 그러므로, 2차원 격자에 3개의 포인트가 존재하며, 상기 포인트는 q의 배수를 환 Z[v]의 원소로서 표현한다. Z[v] 내의 도달가능한 최대 원소 k0+ v·k1의 노름(norm)이 q<max(k0 2+ k1 2)<2q를 만족시킨다는 것이 주목된다. 그러므로 합동 k0+ v·k1≡0(모드 q)은 Z[v] 내 가능한 두 등식만을 허용한다: 0 + v·0 = 0 그리고 a +v·b = q 로서, 3개의 동일한 합은 없다.
2. a〉b 라 하자. m=a-1이면, 정리 (6)에 따라 동일한 합은 없다. 가능한 합 k의 카디날리티는 (m+1)2=a2이고, 얻을 수 없는 합의 카디날리티는 q-a2=(a+b)b, 즉 (a+b)의 배수이다. 상기 집합은 m 보다 작은 최소값(v, 2v,..., mv)(모드 q)에 의존하는 b 연속수(sequential number)의 (a+b) 문자열(string) 또는 (a+b) 연속수의 b 문자열을 포함한다.
m이 증가하면, 한 문자열의 강도는 줄어들며 나머지 문자열의 길이는 감소되어, 얻을 수 없는 합의 집합의 카디날리티가 (a+b)(b-1)이 된다. 각각이 증가하면, m→m+1 이고 얻을 수 없는 합의 집합의 카디날리티가 (a+b) 만큼 감소한다.
3. 만일 정리 (2)로부터 (k0,k1) 쌍의 동일하지 않은 집합의 카디날리티가 (m+1)2= (a+b-1+1)2= a2+ 2ab + b2= q + 2ab + b2= q + ab 라면; 0≤k〈q인 모든 k는 k = k0+ v·k1(모드 q) 형태의 표현을 가지며 k의 ab 값은 두 번 표현될 수 있다.
(따름정리 3.1)이면, 얻을 수 없는 수 s = (a+b)(a+b-1-m)2및 이중 합가 존재한다. 이것은 정리(6)의 증명(2)에서 직접 도출된다.
s와 t의 추정은 다음 값을 낳는다.
예를 들어, 만약 q=151, a=9, b=5, v=33, 그리고이면, 얻을 수 없는 수들은: {13, 27, 46, 60, 79, 93, 112, 126, 127, 128, 129, 130, 131, 145}의 14개이며 이중합은 :{0, 1, 2, 3, 4, 5, 6, 7, 33, 34, 35, 36, 37, 38, 39, 40, 66, 67, 68, 69, 70, 71, 72, 73, 99, 100, 101, 102, 103, 104, 105, 106}의 32개이다.
P=1(모드 4)인 y2=x3+Ax(모드 p) 유형의 타원곡선과 마찬가지로, 최초의 타원형 곡선 포인트 스칼라 승법 공식 R=k·P를 계산적으로 덜 어려운 수식 R=k0·P + k1·P'로 대체하면, 두 가지 이유로 해서 타원곡선 암호체계 강도에서 얼마간 감소가 있게 된다. 상기 이유는, 복소승법이 존재한다는 것과 비밀 수 k를 특별하게 선택한다는 것을 말한다.
이러한 경우, 복소승법은 군 자기동형사상이고, 사상 P →v·P 는 차수 6의 순환군 G6을 형성한다. 관련 포인트 (P)6의 집합을 포인트 P 상의 작용(6개의 포인트)군 G6의 이미지로 정의하자. ω3=1(모드 p) 일 때 모든 관련 포인트 (x, y), (ωx, -y),(ω2x, y), (x, -y), (ωx, y),(ω2x, -y)}는 동일한 x3(모드 p)의 값을 갖는다. 집합(P)6는 포인트와 그 반대 포인트를 포함하며, 정수 k에 대해 등식 k(P)6=(kP)6가 성립한다. 그러므로, 관련 포인트(P)4의 모든 집합들의 집합은 차수 (q-1)/6의 반군(semigroup)을 형성한다.
따라서, 차수 q의 군 G 내의 최초 타원곡선 개별 로가리즘 문제를 해결하는 것 보다는, 두 문제, 즉 차수(q-1)/6의 반군 내 로가리즘 문제와 군 G6내 로가리즘 문제를 해결하는 것이 가능하다. 그러나, 두 번째 문제가 쉽게 해결가능하며, 첫 번째 문제는 최초의 문제보다 약간 더 크기가 작다. 폴라르드의 알고리즘이 반군 내의 로가리즘을 찾는데 적당하고 또 그 복잡도가 군 차수의 제곱근에 비례하기 때문에, 암호체계의 강도는 √6의 인수, 즉 2.45배 정도 감소한다. 강도의 감소는 크게 중요한 것은 아니며 최초의 길이보다 3비트 더 긴 q를 선택함으로써 쉽게 보상할 수 있다.
위에서 설명한 바와 같이, 암호체계 강도는 또한 비밀 수 k를 특별히 선택함으로 인해 감소된다. 그러나, p=1(모드 4)인 y2=x3+Ax(모드 p) 유형의 타원 곡선이면, 수 q를 1.2배 증가시킴으로써 또는 q의 길이를 0.13 비트 증가시킴으로써 강도의 감소를 보상할 수 있다. 따라서, 복소승법 및 k의 특별한 선택으로 인한 암호체계의 감소는 사소한 정도가 되어 무시할 수도 있다.
위에서 보인 바와 같이, p=1(모드 6)인 E(Fp)에서 [0, q-1] 범위 내 대부분의 k는 k = k0+ v·k1(모드 q)의 형태로 표현가능하고, 이 때이다.
그리고, 최초의 스칼라 승수 k 대신 이러한 표현을 이용하게 되면 타원곡선 암호체계 강도의 감소가 최소로 된다. q 길이를 1비트 증가시키면 강도 감소를 쉽게 배제할 수 있으며, 한편 2배 짧은 성분인 k0,k1을 통한 k 분해를 이용하면 타원곡선 암호체계 성능을 크게 향상시킬 수 있다.
앞서 보인 바와 같이,이면, 승수 {k0,k1}∈Fq는 k= k0+v·k1(모드 q), k= k0+v2·k1(모드 q) 및 k= v·k0+ v2·k1(모드 q)의 형태로 표현가능하다. v2-v+1=0 이기 때문에, 이들 세 가지 표현 중 하나를 다른 두 개의 표현으로 변환하는 것은 쉬운 일이다. 이러한 변환이 비최적(non-optimal) k0및 k1길이를 낳기는 하겠지만, 분해를 발견하기 위한 원리를 일관되게 유지하는 것은 중요하다. 다시, 설명을 위해, 제1 표현 k = k0+v·k1(모드 q)이 하기에 이용될 것이다.
대부분의 k 값들에 있어서, 상기 표현은 유일한 것이다. 그러나, 승수 성분 길이 조건는 대체로 무시해도 되는 것이며, 제한이 있다면 그것은 {k0,k1}∈Fq이다. 그러한 경우, 동일한 k 값이 상이한 쌍 (k0,k1)의 집합에 의해 표현될 수 있다. 예를 들어, k0=k, k1=0 이면, k는 k = k0+ 0·v의 형태로 표현가능하다; 그리고 만약 k0=0, k1=k/v이면, k는 k = 0 + k1·v의 형태로 표현가능하다.
동식적 연속 스칼라 승법 기술의 장점을 얻기 위해서는, 승수 성분 길이 조건이 이상적으로 유지될 때,이 최소인 k 분해를 구하는 것이 필요하다. 소수 q≡1(모드 6)이므로, 그 표현은 q=a2+ab+b2=(a+bv)(a+bv5)이다. π=(a+vv) 및 를 지정하면,는 환 Z[v]으로 수 q를 인수분해한 것이다. 노름 N(π)=a2+ab+b2=q을 정의하면,이다.
또한, 임의 원소의 노름은 정수이며, 상기 노름은 소수인 양의 정수 여인수에 대한 유일 인수분해를 허용한다. 따라서, 소수인 노름을 갖는 원소는 Z[v] 내의 소수이고, N(π)=q이므로 π는 환 Z[v]의 소수인 원소이며 k=Z[v]/πZ[v]는 체이다. 또한, q=1(모드 6)이므로, -1은 q를 법으로 하는 3차 나머지이며 t3≡-1(모드 q)가 되도록 하는 수 t가 존재한다. 만약 t∈Fq및 v∈K 이면, 사상 K→Fq(모드 q)는 체 동형사상인 k0+ k1·v → k0+ k1·t (모드 q)로 정의될 수 있다. 본 발명에 따라,이 최소가 되도록 역 동형사상을 정의해야 한다.
t와 t5가 v의 이미지로 간주될 수 있기 때문에, a+bt가 q를 법으로 한 제로 원소에 상응하도록 t가 정의된다: a+bt≡0(모드 q). 따라서 a>b 및 N(π)=q이면, π=a+bv≡0(모드 q)이다. Z[v]의 노름은 정수이며, 길이가 짧은 k0, k1을 통해 k분해를 발견하기 위해 유클리드 알고리즘을 이용하면 세가지 방향을 낳는다: Z, vZ 및 v2Z (간단히 상기 방향을 1, v, v2라고 할 수 있다). 그러나, 상기 유클리드 알고리즘은 Z 방향에서만 단계를 제공하므로, 유클리드 알고리즘의 적용을 필요로 한다. 유클리드 알고리즘을 적용하면 모든 방향을 처리하여 최적 단계를 제공하는 방향을 선택할 것이다. 세 개의 가능한 방향, 1, v 및 v2을 모두 이용함은 물론, 가능한 방향들의 임의 쌍인 (1, v), (1, v2), (v, v2) 역시 이용할 수 있다.
π=α+bv≡O(모드 q)이므로, 임의 정수 α에서 απ≡0(모드 q)이다. 따라서, 만약 η=λ+απ이면, 임의의 α∈Z[v]에 있어서 원소 {λ,η}∈Z[v]는 동일한 수 k∈Fq에 상응한다. k 분해 성분 k0, k1의 길이를 최소화하려면, η의 노름이 최소가 되도록 하는 η=λ+απ을 발견해야 한다: N(η)=N(λ+απ)→ min.
체 K=Z[v]/πZ[v]에서, 정수 α는 α=n 또는 α=nv, 또는 α=nv2으로 표현될 수 있으며, 이 때 n은 정수이고 n∈Fq이다. α의 최적 방향은 노름 N(λ+απ)을 최소화하도록 선택될 것이다. λ=c+ev를 지정하고 초기 값 k≠0(모드 q)을 가정하면, N(λ-nπ)≠0 이다.
첫째, α=n 방향을 고려한다. 여기에서 N(λ-nπ) = (c-na)2+ (c-na)(e-nb) + (e-nb)2= N(λ) + n2q - n(2ac+2be+ae+bc)이다. N(λ-nπ)이 최소가 되도록 하는 최적 n이 존재하며, 이 최소 값은 미분(derivation)의 제로에 상당한다. 따라서, n=[(2ac+2be+ae+bc)2q]이고, 이 때 [*]은 괄호 내 분수에서 가장 가까운 정수를 나타낸다. n의 표시는 최소 N(λ-απ)을 제공해야 한다. 둘째, α=nv 방향을 고려한다. 그러면, N(λ-nvπ) = (c+nb)2+ (c+nb)(e-na-nb) + (k-na)2= N(α) + n2q - n(2ae+ac+be-bc)이다. 만약 n = [(2ae+ac+be-bc}/2q]이면 노름의 최소값을 얻을 수 있다. n의 표시는 최소 N(λ-απ)을 제공해야 한다. 세째, α=nv2방향을 고려한다. 그러면, N(λ-nv2π) = (c+na+nb)2+ (c+na+nb)(e-na) + (e-na)2= N(α) + n2q - n(-ac-2bc+ae-be)이다. 만약 n = [(-ac-2bc+ae-be}/2q]이면 노름의 최소값을 얻을 수 있다. n의 표시는 최소 N(λ-απ)을 제공해야 한다.
가장 좋은 방향이 노름 N(λ-απ)의 최소값을 제공한다. k = k0+ v·k1(모드 q), k = k0+ v2·k1(모드 q), 그리고 k = v·k0+ v2·k1(모드 q)형태의 k 분해를 발견하기 위한 세 개의 완전한 알고리즘을 아래에 제시하였다.
I. 분해 k = k0+ v·k1(모드 q). 여기에서, λ=c+ev 및 N(λ)=c2+ce+e2.
1. λ=c +ev= k를 설정하고 초기 c=k 및 e=0 을 설정한다.
2. 모든 세 방향 n, nv 및 nv2에서 λ-απ과 노름 N(λ-απ)을 계산한다.
- 방향α=n을 고려한다. n = [(2ac+2be+ae+bc)/2q]를 방향 단계로 계산한다.
다음 λ-nπ=(c-na) + (e-nb)v를 계산하고,
그리고 노름 N(λ-nπ) = (c-na)2+ (c-na)(e-nb) + (e-nb)2을 계산한다.
- 방향 α=nv을 고려한다. n = [(2ae+ac+be-bc)/2q]를 방향 단계로 계산한다.
다음 λ-nvπ = (c+nb) + (e-na-nb)v를 계산하고,
그리고 노름 N(λ-nvπ) = (c+nb)2+ (c+nb)(e-na-nb) + (e-na-nb)2을 계산한다.
- 방향 α=nv2을 고려한다. n = [(-ac-2bc+ae-be)/2q]를 방향 단계로 계산한다.
다음 λ-nv2π = (c+na+nb) + (e-na)v를 계산하고,
그리고 노름 N(λ-nv2π) = (c+na+nb)2+ (c+na+nb)(e-na) + (e-na)2을 계산한다.
3. 최소 노름 N = min(N1,N2,N3)이 되는 최적 방향 α를 선택한다.
4. 모든 세 개의 방향에서 단계 n=0이면, k0=c, k1=e를 출력하고 정지한다.
5. 최적 방향에 상응하는 λ-απ로 λ를 대체한다. 단계 2로 돌아간다.
Ⅱ. 분해 k = k0+ v2·k1(모드 q). 여기에서, λ = c + ev2및 N(λ) = c2- ce + e2.
1. λ=c +ev2= k를 설정하고 초기 c=k 및 e=0 을 설정한다.
2. 모든 세 방향 n, nv 및 nv2에서 λ-απ과 노름 N(λ-απ)을 계산한다.
- 방향α=n을 고려한다. n = [(2ac+be-ae+bc)/2q]를 방향 단계로 계산한다.
다음 λ-nπ=(c-na-nb) + (e-nb)v2를 계산하고,
그리고 노름 N(λ-nπ) = (c-na-nb)2+ (c-na-nb)(e-nb) + (e-nb)2을 계산한다.
- 방향 α=nv을 고려한다. n = [(ac-bc+2ae-be)/2q]를 방향 단계로 계산한다.
다음 λ-nvπ = (c-na) + (e-na-nb)v2를 계산하고,
그리고 노름 N(λ-nvπ) = (c-na)2- (c-na)(e-na-nb) + (e-na-nb)2을 계산한다.
- 방향 α=nv2을 고려한다. n = [(-ac-2bc+2ae+be)/2q]를 방향단계로 계산한다.
다음 λ-nv2π = (c+nb) + (e-na)v2를 계산하고,
그리고 노름 N(λ-nv2π) = (c+nb)2- (c+nb)(e-na) + (e-na)2을 계산한다.
3. 최소 노름 N = min(N1,N2,N3)이 되는 최적 방향 α를 선택한다.
4. 모든 세 개의 방향에서 단계 n=0이면, k0=c, k1=e를 출력하고 정지한다.
5. 최적 방향에 상응하는 λ-απ로 λ를 대체한다. 단계 2로 돌아간다.
III. 분해 k = v·k0+ v2·k1(모드 q). 여기에서, λ = cv + ev2및 N(λ) = c2- ce + e2.
1. λ=cv +ev2= k를 설정하고 초기 c=k 및 e=-k 을 설정한다.
2. 모든 세 방향 n, nv 그리고 nv2에서 λ-απ과 노름 N(λ-απ)을 계산한다.
- 방향α=n을 고려한다. n = [(ac+2bc-ae+be)/2q]를 방향 단계로 계산한다.
다음 λ-nπ=(c-na-nb)v + (e-nb)v2를 계산하고,
그리고 노름 N(λ-nπ) = (c-na-nb)2+ (c-na-nb)(e+na) + (e+na)2을 계산한다.
- 방향 α=nv을 고려한다. n = [(2ac+bc+ae-2be)/2q]를 방향 단계로 계산한다.
다음 λ-nvπ = (c-na) + (e-nb)v를 계산하고,
그리고 노름 N(λ-nvπ) = (c-na)2- (c-na)(e-nb) + (e-nb)2을 계산한다.
- 방향 α=nv2을 고려한다. n = [(ac-bc+2ae+2be)/2q]를 방향단계로 계산한다.
다음 λ-n1v2π = (c+nb) + (e-na-nb)v를 계산하고,
그리고 노름 N(λ-nv2π) = (c+nb)2- (c+nb)(e-na-nb) + (e-na-nb)2을 계산한다.
3. 최소 노름 N = min(N1,N2,N3)이 되는 최적 방향 α를 선택한다.
4. 모든 세 개의 방향에서 단계 n=0이면, k0=c, k1=e를 출력하고 정지한다.
5. 최적 방향에 상응하는 λ-απ로 λ를 대체한다. 단계 2로 돌아간다.
위에서 보인 바와 같이 세가지 방법을 모두 한 번에 이용할 수 있다. 또다른 방법으로, 방정식 (8), (8'), 및 (8″)에서 정의된 k 분해의 세 가지 형태 중 임의의 형태를 발견하는데 세 가지 방향 쌍 (1,v), (1,v2), (v,v2) 중 임의의 것을 사용할 수 있다. 따라서, (1+3)x3=12 가지의 방향 쌍들 조합(또는 세 개의 모든 방향)이 존재하게 되어 선택된 분해 형태를 이용할 수 있다. 그러므로, 12개의 분해 알고리즘이 존재한다. 그러나, 분해는 모두 동일한 것이고 방향 쌍들도 모두 동일한 것이다.
그럼에도 불구하고, 수론적 추정값(number-theoretic estimate)에 의하면 각 쌍들은 그 평균적인 복잡도가 같으며 또한 k0및 k1의 길이는 1 비트 이상 차이나지 않으며 이것은 무시해도 좋은 정도이기 때문에 k0및 k1의 길이를 서로 같거나 거의 같다고 할 수 있다. 세 개의 모든 방향이 이용되면, 알고리즘의 복잡도는 상당히 증가할 것이고 반면 단계의 회수는 아주 조금만 감소하는데 가령 0(1) 단계 정도이다. 그러므로, 둘 이상의 방향을 이용하는 것은 알고리즘 수렴(algorithm convergence)을 증가시키게 되나, 방향의 수를 증가시키는 것은 계산의 복잡도를 높이게 된다. 결과적으로, 세 방향을 모두 이용하는 것은 실용적이지 못하다.
본 발명에 따라 (1,v) 방향 쌍을 이용하여 k = k0+ v·k1(모드 q)의 (성분 길이의 의미로 본) 최적 분해를 발견하기 위한 샘플 알고리즘이 도 3a와 3b에 도시되어 있으며, 상기 알고리즘은 다음과 같다.
1. 분해를 위해 승수 k를 얻는다{단계 S10}.
2. λ = c + ev = k를 설정하고 초기 c = k 및 e = 0을 설정한다{단계 S12-S14}
3. n, nv방향에서 λ-απ 및 노름(norm) N(λ-απ)를 계산한다. 이를 위해:
- 방향 α=n0를 고려하고{단계 S20}를 n0= [(2ac+2be+ae+bc)/2q]을 한 방향으로 계산한다{단계 S22}
다음, λ-n0π = (c - n0a) + (e - n0b)v를 계산하고{단계 S24}, 그리고
노름 N(λ-n0π) = (c - n0a)2+ (c - n0a)(e - n0b) + (e - n0b)2를 계산한다{단계 S26}.
- 방향 α1=vn1을 고려하고{단계 S30}, n1= [(2ae+ac+be-bc)/2q]를 다른 방향으로 계산한다{단계 S32}.
다음, λ-n1vπ = (c+n1b) + (e-n1a-n1b)v를 계산하고{단계 S33}, 그리고
노름 N2(λ-n1vπ) = (c+n1b)2+ (c+n1b)(e-n1a-n1b) + (e-n1a-n1b)2를 계산한다{단계 S34}.
4. 최소 노름 N=min(N0,N1)가 되는 최적 방향 α를 선택한다.
- N0이 N1보다 크지 않으면, k0= k00및 k1= k1을 설정한다{단계 S40 및 S42} 이다.
- N0이 N1보다 크면, k0= k10및 k1= k11을 설정한다{단계 S40 및 S44}.
- n0과 n1을 계산한다. 양 방향에서 단계 n=0 이면, k0= c, k1= e를 출력하고 정지한다. 그렇지 않으면, 최적 방향에 해당하는 λ-απ로 λ를 대체하고 단계 S20으로 돌아간다{단계 S46-S48}.
예를 들어, 만약 q=331, a=11, b= 10, v=32, 그리고, k 분해 회수 =250 이며, 초기 값이 c=250 및 e=0으로 설정되었다면, 본 발명에 따라 최적 k를 발견하기 위한 알고리즘은 다음과 같다.
(제1 반복)
λ=250+0v. 단계 n의 방향과 크기를 선택한다.
α=n에서, n=12, λ-απ=118-120v, N(λ-απ)=14164를 구한다.
α=nv에서, n=0, λ-απ=250+0v, N(λ-απ)=62500을 구한다.
가장 좋은 방향이 첫번째이다.
(제2 반복)
λ=118-120v. 단계 n의 방향과 크기를 선택한다.
α=n에서, n=0, λ-απ=118-120v, N(λ-απ)=14164를 구한다.
α=nv에서, n=-6, λ-απ=58+6v, N(λ-απ)=3748을 구한다.
가장 좋은 방향이 두번째이다.
(제3 반복)
λ=58+6v. 단계 n의 방향과 크기를 선택한다.
α=n에서, n=3, λ-απ=25-24v, N(λ-απ)=601을 구한다.
α=nv에서, n=0, λ-απ=58+6v, N(λ-απ)=3748을 구한다.
가장 좋은 방향이 첫번째이다.
(제4 반복)
λ=25-24v. n의 방향과 크기를 선택한다.
α=n에서, n=0, λ-απ=25-24v, N(λ-απ)=601을 구한다.
α=nv에서, n=-1, λ-απ=15-3v, N(λ-απ)=189를 구한다.
가장 좋은 방향이 두번째이다.
(제5 반복)
λ=15-3v. 단계 n의 방향과 크기를 선택한다.
α=n에서, n=1, λ-απ=4-13v, N(λ-απ)=133을 구한다.
α=nv에서, n=0, λ-απ=15-3v, N(λ-απ)=189를 구한다.
가장 좋은 방향이 첫번째이다.
(제6 반복)
λ=4-13v. 단계 n의 방향과 크기를 선택한다.
α=n에서, n=0, λ-απ=4-13v, N(λ-απ)=133을 구한다.
α=nv에서, n=-1, λ-απ=-6+8v, N(λ-απ)=52를 구한다.
가장 좋은 방향이 두번째이다.
(제7 반복)
λ=-6+8v. 단계 n의 방향과 크기를 선택한다.
α=n에서, n=0, λ-απ=-6+8v, N(λ-απ)=52를 구한다.
α=nv에서, n=0, λ-απ=-6+8v, N(λ-απ)=52를 구한다.
양 방향에서 n=0 이므로, 정지한다.
(결과로 나타난 분해): λ=-6 +8v=-6 +8*32≡250(모드 331).
(출력): k0=-6 및 k1=8.
상기 알고리즘은 최초 노름을 갖는 쌍(k0+ k1·v)을 낳고, 그 결과의 쌍은 원 k0 2+ k0k1+ k1 2= √q 내의 좌표 방향 (1,v)을 갖는 평면(plane)에 놓인다. 따라서 k0, k1중 하나 또는 둘 모두는 음의 값을 가질 수 있다. 그러나, 이러한 성질은 계산을 크게 복잡하게 하지 않는데, 이것은 임의 포인트(x,y)에서 등식 -k(x,y)=k(x,-y)가 성립하여 이미 알고 있는 포인트 (x,y)에 대해서 포인트(x,-y)가 쉽게 계산되기 때문이다.
방정식(7), (7')을 고려하여, 본 발명에 따라, p=1(모드 6), 차수 q의 포인트 P(x,y), 스칼라 승수 k의 y2=x3+B(모드 p) 종류의 타원 곡선에 대한 고속 스칼라 승법 R=k·P의 프로세스가 도 5a 및 5b에 도시되어 있으며, 상기 프로세스는 아래의 단계를 포함한다.
1) 차수 q와 표수 p를 구한다{단계 S200}.
2) 사상 τ:(x,y)→(ωx,-y), (x, y)→(ω2x, y)을 정의하고 ω3=1(모드 p), v3=-1(모드 q)를 계산한다{단계 S202}.
차수 q의 임의 타원곡선 포인트 P(x,y)에 대해 아래의 조건이 성립하도록 ω,v 두 값들 중 하나 사이의 대응을 발견한다{단계 S204}.
v·P(x, y) = P'(ωx, -y), 또는
v2× P(x, y) = P'(ω2x, y)
3) 승수 k와 소스 포인트 P를 구한다{단계 S210}. P가 일정한 포인트라면(예, 군 생성원), 법칙 v×P(x, y)=P'(ωx,-y) 또는 v2×P(x, y) = P'(ω2x,y)를 이용하여 P'=v·P 또는 P'=v2·P를 사전계산한다.
4) 스칼라 승수가 일정한 것이라면, 도 3a 및 3b의 스칼라 승수 분해 알고리즘을 이용하여 스칼라 승수 {k,k}∈[0, q-1]의 분해를 발견하고{단계 S220 및 S220}, 또는 스칼라 승수가 아래의 형태 중 임의의 것이라면, 스칼라 승수 {k,k}∈[0, q-1]를 구성한다{단계 S220 및 S224}
k = k0+ v·k1, 또는
k = k0+ v2·k1
여기에서, k0및 k1의 길이는 최초 k의 길이보다 2배 짧으며(스칼라 승수 성분 길이 조건), 그리고 최초의 공식 R=k·P를 R=k0·P+ k1·P' 로 변환시킨다.
5) P가 임의 포인트라면(그리고 P'가 단계 3에서 사전계산되지 않았다면), 법칙 v·p(x,y)=P'(ωx,-y) 또는 v2×p(x,y)=P'(ω2x, y)을 이용하여 P'=v·P 또는 P'=v2×P를 계산한다{단계 S230}.
6) 동시적 연속 승법 기술을 이용하여 R=k0·P + k1·P'를 계산한다{단계 S240}.
7) k0와 k1의 값을 출력한다.
″스칼라 승수 성분 길이 조건″과 관련하여, 단계 6은 방정식 (1)의 일반 스칼라 승법보다는 계산적으로 상당히 덜 복잡하다.
따라서, 본 발명은 암호서기 강도에 크게 관계하지 않는 타원곡선 포인트의 고속 스칼라 승법을 제공한다. 본 발명이 상세한 알고리즘을 이용해서 상세하게 설명되었다 하더라도, 당업자에게는 다양한 변경 및 변형은 명백할 것이다. 그러므로, 앞서 말한 실시예는 예시적인 것이므로 본 발명을 제한하는 것으로 이해해서는 안 된다. 본 기술은 다른 유형의 장치에도 사용될 수 있다는 것이 명백하다. 본 발명에 대한 기술은 예시적인 것이며 청구항의 범위를 제한하지 않는다. 다양한 변경, 변형이 당업자에게는 명백한 것이다.
상기 내용에 포함되어 있음.

Claims (26)

  1. 표수 p의 언더라잉체 Fp에서 정의된 타원곡선 위의 포인트 P의 스칼라 승법 R = k·P을 위한 방법에 있어서,
    (a) 타원곡선 차수 q 복소승법(complex multiplication) 법칙을 차수 [τ]의 순환군을 형성하는 사상 τ:P(x,y)→P'(x',y')로서 정의하고, 임의 포인트 P에 대해 P'=tγ·P, γ〈[τ]가 되도록 지수 γ를 갖는 사상인자 t를 정의하는 단계와;
    (b) k=tγ0·k0+ tγ1·k1,의 형태로 스칼라 승수 k를 얻는 단계와;
    (c) 스칼라 곱 R = k·P를 R = k0·P + k1·P' 또는 R = k0·P' + k1·P'' 중 하나로 변환하는 단계와;
    (d) 차수 q 복소승법 법칙에 따라 적어도 P'를 계산하는 단계와; 그리고
    (e) 스칼라 곱 R = k0·P + k1·P' 또는 R = k0·P' + k1·P'' 중 하나를 계산하고 출력하는 단계를 포함하는 것을 특징으로 하는 스칼라 승법을 위한 방법.
  2. 제 1항에 있어서,
    (e)단계에서 동시적 연속 승법 기술을 이용하여 스칼라 곱 R을 계산하는 것을 특징으로 하는 스칼라 승법을 위한 방법.
  3. 제 2항에 있어서,
    (e)단계는 k0및 k1의 사전계산 프레임 사이즈를 변화시킴으로써 동시적 연속 승법을 이용하여 스칼라 곱 R을 계산하는 단계를 더 포함하는 것을 특징으로 하는 스칼라 승법을 위한 방법.
  4. 제 1항에 있어서
    상기 언더라잉체 표수 p=1(모드 4)이고, 타원곡선은 방정식 y2= x3+ Ax (모드 p)을 가지며, 사상인자 t = j이고, 사상지수 γ0= 0 및 γ1= 1이며,
    (a)에서, 차수 q 복소승법 법칙은 τ:P' = j·P 및 j·P(x,y) = P'(-x,iy), i2= -1(모드 p), j2= -1(모드 q)로 정의되고,
    (b)에서, k = k0+j·k1의 형태로 스칼라 피승수 k 분해를 정의하고,
    (c)에서, 스칼라 곱 R = k·P를 R = k0·P + k1·P'로 변환하고 P'=j·P를 정의하고, 그리고
    (d)에서, 스칼라 곱 R = k0·P + k1·P'을 계산하고 출력하는 것을 특징으로 하는 스칼라 승법을 위한 방법.
  5. 제 4항에 있어서,
    (b)에서, k가 정해지지 않은 경우, 정수 k0및 k1을 선택하고 k = k0+ j·k1의 형태로 k를 구성함으로써 스칼라 승수 k를 얻는 것을 특징으로 하는 스칼라 승법을 위한 방법.
  6. 제 4항에 있어서,
    (b)에서, k가 정해진 경우, 스칼라 승수 분해 알고리즘에 의해 k = k0+ j· k1의 형태로 스칼라 승수 k의 분해를 얻는 것을 특징으로 하는 스칼라 승법을 위한 방법.
  7. 제 6항에 있어서,
    상기 스칼라 승수 분해 알고리즘은
    (aa) 분해를 위해 승수 k를 얻는 단계와;
    (bb) 정수 λ = c + ej = k를 설정하고 초기 c = k 및 e = 0을 설정하는 단계와;
    (cc) 각 방향에 대한 n 값을 얻기 위해 적어도 두 방향에 대해 λ-απ 및 노름(norm) N(λ-απ)를 계산하는 단계와;
    (dd) 노름 N의 최소값을 발생시키는 방향에서 k0및 k1의 값들을 선택하는 단계와; 그리고
    (ee) 모든 방향에 대해 얻어진 n의 값이 0과 같으면 선택된 k0및 k1을 출력하고, 0과 같지 않으면 선택된 k0과 같은 c와 선택된 k1과 같은 e를 재설정하여 상기 (cc) 내지 (ee) 단계를 반복하는 단계를 포함하는 것을 특징으로 하는 스칼라 승법을 위한 방법.
  8. 제 7항에 있어서,
    (cc)에서, 적어도 두 방향은 n 및 nj이고, λ-απ 및 노름 N(λ-απ)을 계산하는 단계는
    a 및 b가 소정값일 경우 α=n0을 설정하고 n0= [(ac + be)/q]을 계산하며, k0= (c -n0a) 이고 k1= (e - n0b)일 경우 제1 방향에 대해 λ-απ = λ-n0π = (c - n0a) + (e - n0b)j 및 노름 N(λ-n0π) = (c - n0a)2+ (e - n0b)2를 계산하는 단계와; 그리고
    a 및 b가 소정값일 경우 α=jn1을 설정하고 n1= [(ae - bc)/q]을 계산하며, k0= (c -n1a) 이고 k1= (e - n1b)일 경우 제2 방향에 대해 λ-απ = λ-n1jπ = (c + n1b) + (e - n1a)j 및 노름 N(λ-n1jπ) = (c + n1b)2+ (e - n1a)2를 계산하는 단계를 더 포함하는 것을 특징으로 하는 스칼라 승법을 위한 방법.
  9. 제 1항에 있어서,
    상기 언더라잉체 표수 p=1(모드 6)이고, 타원곡선은 방정식 y2= x3+ B (모드 p)을 가지며, 사상인자 t = v이고, 사상지수 γ0= 0 및 γ1= 1이고,
    (a)에서, 차수 q 복소승법 법칙은 τ:P' = v·P 및 v·P(x,y) = P'(ωx,-y), ω3= 1(모드 p), v3= -1(모드 q)로 정의되고,
    (b)에서, k = k0+ v·k1의 형태로 스칼라 피승수 k 분해를 정의하고,
    (c)에서, 스칼라 곱 R = k·P를 R = k0·P + k1·P'로 변환하며 P'= v·P를 정의하고, 그리고
    (e)에서, 스칼라 곱 R = k0·P + k1·P'을 계산하고 출력하는 것을 특징으로 하는 스칼라 승법을 위한 방법.
  10. 제 9항에 있어서,
    (b)에서, k가 정해지지 않은 경우, 정수 k0및 k1을 선택하고 k = k0+ v·k1의 형태로 k를 구성함으로써 스칼라 승수 k를 얻는 것을 특징으로 하는 스칼라 승법을 위한 방법.
  11. 제 10항에 있어서,
    (b)에서, k가 정해진 경우, 스칼라 승수 분해 알고리즘에 의해 k = k0+ v· k1의 형태로 스칼라 승수 k의 분해를 얻는 것을 특징으로 하는 스칼라 승법을 위한 방법.
  12. 제 11항에 있어서,
    상기 스칼라 승수 분해 알고리즘은
    (aa) 분해를 위해 승수 k를 얻는 단계와;
    (bb) 정수 λ = c + ev = k를 설정하고 초기 c = k 및 e = 0을 설정하는 단계와;
    (cc) 각 방향에 대한 n 값을 얻기 위해 적어도 두 방향에 대해 λ-απ 및 노름 N(λ-απ)을 계산하는 단계와;
    (dd) 노름 N의 최소값을 발생시키는 방향에서 k0및 k1의 값들을 선택하는 단계와; 그리고
    (ee) 모든 방향에 대해 얻어진 n의 값이 0과 같으면 선택된 k0및 k1을 출력하고, 0과 같지 않으면 선택된 k0과 같은 c와 선택된 k1과 같은 e를 재설정하여 상기 (cc) 내지 (ee) 단계를 반복하는 단계를 포함하는 것을 특징으로 하는 스칼라 승법을 위한 방법.
  13. 제 12항에 있어서,
    (cc)에서, 세 방향 n, nv 및 nv2에서 λ-απ 및 노름 N(λ-απ)을 계산하며,
    a 및 b가 소정값일 경우 α=n0을 설정하고 n0= [(2ac+2be+ae+bc)/2q]을 계산하며, k0= (c - n0a) 이고 k1= (e - n0b)일 경우 제1 방향에 대해 λ-απ = λ-n0π = (c - n0a) + (e - n0b)v 및 노름 N(λ-n0π) = (c - n0a)2+ (c - n0a)(e - n0b) + (e - n0b)2를 계산하는 단계와;
    a 및 b가 소정값일 경우 α=vn1을 설정하고 n1= [(2ae+ac+be-bc)/2q]을 계산하며, k0= (c + n1b) 이고 k1= (e - n1a-n1b)일 경우 제 2방향에 대해 λ-απ = λ-n1vπ = (c + n1b) + (e - n1a-n1b)v 및 노름 N(λ-n1vπ) = (c + n1b)2+ (c + n1b)(e-n1a-n1b) + (e - n1a-n1b)2를 계산하는 단계와; 그리고
    a 및 b가 소정값일 경우 α=n2v2을 설정하고 n2= [(-ac-2bc+ae-be)/2q]을 계산하며, k0= (c + n2a+n2b) 이고 k1= (e - n2a)일 경우 제3 방향에 대해 λ-απ = λ-n2v2π = (c + n2a +n2b) + (e-n2a)v 및 노름 N(λ-n2v2π) = (c + n2a + n2b)2+ (c + n2a + n2b)(e-n2a) + (e-n2a)2를 계산하는 단계를 포함하는 것을 특징으로 하는 스칼라 승법을 위한 방법.
  14. 제 12항에 있어서,
    (cc)에서, 세 방향 n, nv 및 nv2중 두 방향에서 λ-απ 및 노름 N(λ-απ)을 계산하며, 두 방향에서 λ-απ 및 노름 N(λ-απ)를 계산하는 방법은
    a 및 b가 소정값일 경우 α=n0을 설정하고 n0= [(2ac + 2be +ae + bc)/2q]을 계산하며, k0= (c - n0a) 이고 k1= (e - n0b)일 경우 제1 방향에 대해 λ-απ = λ- n0π = (c - n0a) + (e - n0b)v 및 노름 N(λ-n0π) = (c - n0a)2+ (c - n0a)(e - n0b) + (e - n0b)2를 계산하는 단계와; a 및 b가 소정값일 경우 α=vn1을 설정하고 n1= [(2ae + ac + be - bc)/2q]을 계산하며, k0= (c + n1b) 이고 k1= (e - n1a-n1b)일 경우 제2 방향에 대해 λ-απ = λ- n1vπ = (c + n1b) + (e - n1a-n1b)v 및 노름 N(λ-n1vπ) = (c + n1b)2+ (c + n1b)(e-n1a-n1b) + (e - n1a-n1b)2를 계산하는 단계와; 또는
    a 및 b가 소정값일 경우 α=n0을 설정하고 n0= [(2ac + 2be +ae + bc)/2q]을 계산하며, k0= (c - n0a) 이고 k1= (e - n0b)일 경우 제1 방향에 대해 λ-απ = λ- n0π = (c - n0a) + (e - n0b)v 및 노름 N(λ- n0π) = (c - n0a)2+ (c - n0a)(e - n0b) + (e - n0b)2를 계산하는 단계와; a 및 b가 소정값일 경우 α=n2v2을 설정하고 n2= [(-ac-2bc+ae-be)/2q]을 계산하며, k0= (c + n2a+n2b) 이고 k1= (e - n2a)일 경우 제3 방향에 대해 λ-απ = λ-n2v2π = (c + n2a +n2b) + (e-n2a)v 및 노름 N(λ-n2v2π) = (c + n2a + n2b)2+ (c + n2a + n2b)(e-n2a) + (e-n2a)2를 계산하는 단계와; 또는
    a 및 b가 소정값일 경우 α=vn1을 설정하고 n1= [(2ae + ac +be - bc)/2q을 계산하며, k0= (c + n1b) 이고 k1= (e - n1a- n1b)일 경우 제2 방향에 대해 λ-απ = λ- n1vπ = (c + n1b) + (e -n1a-n1b)v 및 노름 N(λ- n1vπ) = (c + n1b)2+ (c + n1b)(e - n1a-n1b) + (e - n1a-n1b)2를 계산하는 단계와; a 및 b가 소정값일 경우 α=n2v2을 설정하고 n2= [(-ac-2bc+ae-be)/2q]을 계산하며, k0= (c + n2a+n2b) 이고 k1= (e - n2a)일 경우 제3 방향에 대해 λ-απ = λ-n2v2π = (c + n2a + n2b) + (e-n2a)v 및 노름 N(λ-n2v2π) = (c + n2a + n2b)2+ (c + n2a + n2b)(e-n2a) + (e-n2a)2를 계산하는 단계를 포함하는 것을 특징으로 하는 스칼라 승법을 위한 방법.
  15. 제 1항에 있어서,
    상기 언더라잉체 표수 p=1(모드 6)이고, 타원곡선은 방정식 y2= x3+ B (모드 p)를 가지며, 사상인자 t = v이고, 사상지수 γ0= 0 및 γ1= 2이며,
    (a)에서, 차수 q 복소승법 법칙은 τ:P' = v2·P 및 v2·P(x,y) = P'(ω2x,-y), ω3= 1(모드 p), v3= -1(모드 q)로 정의되고,
    (b)에서, k = k0+ v2·k1의 형태로 스칼라 피승수 k 분해를 정의하고,
    (c)에서, 스칼라 곱 R = k·P를 R = k0·P + k1·P'로 변환하며 P'= v2·P를 정의하고, 그리고
    (d)에서, 스칼라 곱 R = k0·P + k1·P'을 계산하고 출력하는 것을 특징으로 하는 스칼라 승법을 위한 방법.
  16. 제 15항에 있어서,
    (b)에서, k가 정해지지 않은 경우, 정수 k0및 k1을 선택하고 k = k0+ v2·k1의 형태로 k를 구성함으로써 스칼라 승수 k를 얻는 것을 특징으로 하는 스칼라 승법을 위한 방법.
  17. 제 16항에 있어서,
    (b)에서, k가 정해진 경우, 스칼라 승수 분해 알고리즘에 의해 k = k0+ v2· k1의 형태로 스칼라 승수 k의 분해를 얻는 것을 특징으로 하는 스칼라 승법을 위한 방법.
  18. 제 17항에 있어서,
    상기 스칼라 승수 분해 알고리즘은
    (aa) 분해를 위해 승수 k를 얻는 단계와;
    (bb) 정수 λ = c + ev = k를 설정하고 초기 c = k 및 e = 0을 설정하는 단계와;
    (cc) 각 방향에 대한 n 값을 얻기 위해 적어도 두 방향에 대해 λ-απ 및 노름 N(λ-απ)를 계산하는 단계와;
    (dd) 노름 N의 최소값을 발생시키는 방향에서 k0및 k1의 값들을 선택하는 단계와; 그리고
    (ee) 모든 방향에 대해 얻어진 n의 값이 0과 같으면 선택된 k0및 k1을 출력하고, 0과 같지 않으면 선택된 k0과 같은 c와 선택된 k1과 같은 e를 재설정하여 상기 (cc) 내지 (ee) 단계를 반복하는 단계를 포함하는 것을 특징으로 하는 스칼라 승법을 위한 방법.
  19. 제 18항에 있어서,
    (cc)에서, 세 방향 n, nv 및 nv2에서 λ-απ 및 노름 N(λ-απ)를 계산하며,
    a 및 b가 소정값일 경우 α=n0을 설정하고 n0= [(2ac+be-ae+bc)/2q]을 계산하며, k0= (c-n0a-n0b) 이고 k1= (e-n0b)일 경우 제1 방향에 대해 λ-απ = λ-n0π = (c-n0a-n0b) + (e-n0b)v2및 노름 N(λ-n0π) = (c-n0a-n0b)2- (c-n0a-n0b)(e-n0b) + (e-n0b)2를 계산하는 단계와;
    a 및 b가 소정값일 경우 α=vn1을 설정하고 n1= [(ac-bc+2ae-be)/2q]을 계산하며, k0= (c - n1a) 이고 k1= (e-n1a-n1b)일 경우 제2 방향에 대해 λ-απ = λ-n1vπ = (c-n1a) + (e-n1a-n1b)v2및 노름 N(λ-n1vπ) = (c-n1a)2-(c-n1a)(e-n1a-n1b) + (e-n1a-n1b)2를 계산하는 단계와;
    a 및 b가 소정값일 경우 α=n2v2을 설정하고 n2= [(-ac-2bc+2ae+be)/2q]을 계산하며, k0= (c + n2b) 이고 k1= (e - n2a)일 경우 제3 방향에 대해 λ-απ = λ-n2v2π = (c + n2b) + (e-n2a)v2및 노름 N(λ-n2v2π) = (c + n2b)2- (c + n2b)(e-n2a) + (e-n2a)2를 계산하는 단계를 포함하는 것을 특징으로 하는 스칼라 승법을 위한 방법.
  20. 제 18항에 있어서,
    (cc)에서, 세 방향 n, nv 및 nv2중 두 방향에서 λ-απ 및 노름 N(λ-απ)을 계산하며, 두 방향에서 λ-απ 및 노름 N(λ-απ)를 계산하는 방법은
    a 및 b가 소정값일 경우 α=n0을 설정하고 n0= [(2ac+be-ae+bc)/2q]을 계산하며, k0= (c-n0a-n0b) 이고 k1= (e - n0b)일 경우 제1 방향에 대해 λ-απ = λ- n0π = (c-n0a-n0b) + (e - n0b)v2및 노름 N(λ-n0π) = (c-n0a-n0b)2- (c-n0a-n0b)(e-n0b) + (e-n0b)2를 계산하는 단계와; a 및 b가 소정값일 경우 α=vn1을 설정하고 n1= [(ac-bc+2ae-be)/2q]을 계산하며, k0= (c-n1a) 이고 k1= (e-n1a-n1b)일 경우 제2 방향에 대해 λ-απ = λ-n1vπ = (c-n1a) + (e-n1a-n1b)v2및 노름 N(λ-n1vπ) = (c-n1a)2- (c-n1a)(e-n1a-n1b) + (e-n1a-n1b)2를 계산하는 단계와; 또는
    a 및 b가 소정값일 경우 α=n0을 설정하고 n0= [(2ac+be-ae+bc)/2q]을 계산하며, k0= (c-n0a-n0b) 이고 k1= (e-n0b)일 경우 제1 방향에 대해 λ-απ = λ- n0π = (c-n0a-n0b) + (e - n0b)v2및 노름 N(λ- n0π) = (c-n0a-n0b)2- (c-n0a-n0b)(e - n0b) + (e - n0b)2를 계산하는 단계와; a 및 b가 소정값일 경우 α=n2v2을 설정하고 n2= [(-ac-2bc+2ae+be)/2q]을 계산하며, k0= (c+n2b) 이고 k1= (e-n2a)일 경우 제2 방향에 대해 λ-απ = λ-n2v2π = (c+n2b) + (e-n2a)v2및 노름 N(λ-n2v2π) = (c+n2b)2- (c+n2b)(e-n2a) + (e-n2a)2를 계산하는 단계와; 또는
    a 및 b가 소정값일 경우 α=vn1을 설정하고 n1= [(ac-bc+2ae-be)/2q]을 계산하며, k0= (c-n1a) 이고 k1= (e-n1a-n1b)일 경우 제1 방향에 대해 λ-απ = λ- n1vπ = (c-n1a) + (e-n1a-n1b)v2및 노름 N(λ-n1vπ) = (c-n1a)2- (c-n1a)(e-n1a-n1b) + (e-n1a-n1b)2를 계산하는 단계와; a 및 b가 소정값일 경우 α=n2v2을 설정하고 n2= [(-ac-2bc+2ae+be)/2q]을 계산하며, k0= (c+n2b) 이고 k1= (e-n2a)일 경우 제3 방향에 대해 λ-απ = λ-n2v2π = (c+n2b) + (e-n2a)v2및 노름 N(λ-n2v2π) = (c+n2b)2- (c+n2b)(e-n2a) + (e-n2a)2를 계산하는 단계를 포함하는 것을 특징으로 하는 스칼라 승법을 위한 방법.
  21. 제 1항에 있어서,
    상기 언더라잉체 표수 p=1(모드 6)이고, 타원곡선은 방정식 y2= x3+ B (모드 p)을 가지며, 사상인자 t = v이고, 사상지수 γ0= 1 및 γ1= 2이며,
    (a)에서, 차수 q 복소승법 법칙은 τ:P' = v·P 및 v·P(x,y) = P'(ωx,-y), 그리고 P'' = v2·P 및 v2·P(x,y) = P''(ω2x,-y), ω3= 1(모드 p), v3= -1(모드 q)로 정의되고,
    (b)에서, k = v·k0+ v2·k1의 형태로 스칼라 피승수 k 분해를 정의하고,
    (c)에서, 스칼라 곱 R = k·P를 R = k0·P' + k1·P''로 변환하며, P'= v2·P를 정의하고, 그리고 P''= v2·P를 정의하고,
    (d)에서, 차수 q 복소승법 법칙에 따라 P' 및 P″를 계산하는 단계와;
    (e)에서, 스칼라 곱 R = k0·P' + k1·P''을 계산하고 출력하는 것을 특징으로 하는 스칼라 승법을 위한 방법.
  22. 제 21항에 있어서,
    (b)에서, k가 정해지지 않은 경우, 정수 k0및 k1을 선택하고 k = v·k0+ v2·k1의 형태로 k를 구성함으로써 스칼라 승수 k를 얻는 것을 특징으로 하는 스칼라 승법을 위한 방법.
  23. 제 21항에 있어서,
    (b)에서, k가 정해진 경우, 스칼라 승수 분해 알고리즘에 의해 k = v·k0+ v2·k1의 형태로 스칼라 승수 k의 분해를 얻는 것을 특징으로 하는 스칼라 승법을 위한 방법.
  24. 제 23항에 있어서,
    상기 승수 분해 알고리즘은
    (aa) 분해를 위해 승수 k를 얻는 단계와;
    (bb) 정수 λ = c + ev = k를 설정하고 초기 c = k 및 e = 0을 설정하는 단계와;
    (cc) 각 방향에 대한 n 값을 얻기 위해 적어도 두 방향에 대해 λ-απ 및 노름 N(λ-απ)를 계산하는 단계와;
    (dd) 노름 N의 최소값을 발생시키는 방향에서 k0및 k1의 값들을 선택하는 단계와; 그리고
    (ee) 모든 방향에 대해 얻어진 n의 값이 0과 같으면 선택된 k0및 k1을 출력하고, 0과 같지 않으면 선택된 k0과 같은 c와 선택된 k1과 같은 e를 재설정하여 상기 (cc) 내지 (ee) 단계를 반복하는 단계를 포함하는 것을 특징으로 하는 스칼라 승법을 위한 방법.
  25. 제 24항에 있어서,
    (cc)에서, 세 방향 n, nv 및 nv2에서 λ-απ 및 노름 N(λ-απ)를 계산하며,
    a 및 b가 소정값일 경우 α=n0을 설정하고 n0= [(ac+2bc-ae+be)/2q]을 계산하며, k0= (c-n0a-n0b) 이고 k1= (e-n0a)일 경우 제1 방향에 대해 λ-απ = λ-n0π = (c-n0a-n0b)v + (e-n0b)v2및 노름 N(λ-n0π) = (c-n0a-n0b)2- (c-n0a-n0b)(e-n0a) + (e-n0a)2를 계산하는 단계와;
    a 및 b가 소정값일 경우 α=vn1을 설정하고 n1= [(2ac+bc+ae-2be)/2q]을 계산하며, k0= (c - n1a) 이고 k1= (e-n1b)일 경우 제2 방향에 대해 λ-απ = λ-n1vπ = (c-n1a) + (e-n1b)v 및 노름 N(λ-n1vπ) = (c-n1a)2-(c-n1a)(e-n1b) + (e-n1b)2를 계산하는 단계와; 그리고
    a 및 b가 소정값일 경우 α=n2v2을 설정하고 n2= [(ac-bc+2ae+2be)/2q]을 계산하며, k0= (c + n2b) 이고 k1= (e-n2a-n2b)일 경우 제3 방향에 대해 λ-απ = λ-n2v2π = (c + n2b) + (e-n2a-n2b)v 및 노름 N(λ-n2v2π) = (c + n2b)2- (c + n2b)(e-n2a-n2b) + (e-n2a-n2b)2를 계산하는 단계를 포함하는 것을 특징으로 하는 스칼라 승법을 위한 방법.
  26. 제 24항에 있어서,
    (cc)에서, 세 방향 n, nv 및 nv2중 두 방향에서 λ-απ 및 노름 N(λ-απ)을 계산하며, 두 방향에서 λ-απ 및 노름 N(λ-απ)를 계산하는 방법은
    a 및 b가 소정값일 경우 α=n0을 설정하고 n0= [(ac+2bc-ae+be)/2q]을 계산하며, k0= (c-n0a-n0b) 이고 k1= (e - n0a)일 경우 제1 방향에 대해 λ-απ = λ- n0π = (c-n0a-n0b)v + (e-n0a)v2및 노름 N(λ-n0π) = (c-n0a-n0b)2- (c-n0a-n0b)(e-n0a) + (e-n0a)2를 계산하는 단계와; a 및 b가 소정값일 경우 α=vn1을 설정하고 n1= [(2ac+bc+ae-2be)/2q]을 계산하며, k0= (c-n1a) 이고 k1= (e-n1b)일 경우 제2 방향에 대해 λ-απ = λ-n1vπ = (c-n1a) + (e-n1b)v 및 노름 N(λ-n1vπ) = (c-n1a)2- (c-n1a)(e-n1b) + (e-n1b)2를 계산하는 단계와; 또는
    a 및 b가 소정값일 경우 α=n0을 설정하고 n0= [(ac+2bc-ae+be)/2q]을 계산하며, k0= (c-n0a-n0b) 이고 k1= (e-n0a)일 경우 제1 방향에 대해 λ-απ = λ- n0π = (c-n0a-n0b) + (e-n0a)v2및 노름 N(λ- n0π) = (c-n0a-n0b)2- (c-n0a-n0b)(e-n0a) + (e-n0a)2를 계산하는 단계와; a 및 b가 소정값일 경우 α=n2v2을 설정하고 n2= [(ac-bc+2ae+2be)/2q]을 계산하며, k0= (c+n2b) 이고 k1= (e-n2a-n2b)일 경우 제2 방향에 대해 λ-απ = λ-n2v2π = (c+n2b) + (e-n2a-n2b)v 및 노름 N(λ-n2v2π) = (c+n2b)2- (c+n2b)(e-n2a-n2b) + (e-n2a-n2b)2를 계산하는 단계와; 또는
    a 및 b가 소정값일 경우 α=vn1을 설정하고 n1= [(2ac+bc+ae-2be)/2q]을 계산하며, k0= (c-n1a) 이고 k1= (e-n1b)일 경우 제1 방향에 대해 λ-απ = λ- n1vπ = (c-n1a) + (e-n1b)v 및 노름 N(λ-n1vπ) = (c-n1a)2- (c-n1a)(e-n1b) + (e-n1b)2를 계산하는 단계와; a 및 b가 소정값일 경우 α=n2v2을 설정하고 n2= [(ac-bc+2ae+2be)/2q]을 계산하며, k0= (c+n2b) 이고 k1= (e-n2a-n2b)일 경우 제2 방향에 대해 λ-απ = λ-n2v2π = (c+n2b) + (e-n2a-n2b)v 및 노름 N(λ-n2v2π) = (c+n2b)2- (c+n2b)(e-n2a-n2b) + (e-n2a-n2b)2를 계산하는 단계를 포함하는 것을 특징으로 하는 스칼라 승법을 위한 방법.
KR1019990042398A 1999-10-01 1999-10-01 타원곡선 포인트의 고속 스칼라 승법을 위한 프로세스 및 방법 KR20010035704A (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1019990042398A KR20010035704A (ko) 1999-10-01 1999-10-01 타원곡선 포인트의 고속 스칼라 승법을 위한 프로세스 및 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1019990042398A KR20010035704A (ko) 1999-10-01 1999-10-01 타원곡선 포인트의 고속 스칼라 승법을 위한 프로세스 및 방법

Publications (1)

Publication Number Publication Date
KR20010035704A true KR20010035704A (ko) 2001-05-07

Family

ID=19613685

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019990042398A KR20010035704A (ko) 1999-10-01 1999-10-01 타원곡선 포인트의 고속 스칼라 승법을 위한 프로세스 및 방법

Country Status (1)

Country Link
KR (1) KR20010035704A (ko)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20030078350A (ko) * 2002-03-29 2003-10-08 박근수 타원 곡선 암호에서 단위원의 n-제곱근 함수를 이용한프로베니우스 전개 방법
KR100817048B1 (ko) * 2005-03-05 2008-03-26 삼성전자주식회사 여러 가지 포인트 표현을 기반으로 한 ecc에서 dfa대책을 위한 암호화 방법 및 장치
KR100850202B1 (ko) * 2006-03-04 2008-08-04 삼성전자주식회사 Ecc 패스트 몽고매리 전력 래더 알고리즘을 이용하여dfa 에 대응하는 암호화 방법
CN113783702A (zh) * 2021-09-28 2021-12-10 南京宁麒智能计算芯片研究院有限公司 一种椭圆曲线数字签名与验签的硬件实现方法和系统
KR102496583B1 (ko) * 2021-09-17 2023-02-06 이정훈 암호화 장치 및 이를 이용한 암호화 방법

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20030078350A (ko) * 2002-03-29 2003-10-08 박근수 타원 곡선 암호에서 단위원의 n-제곱근 함수를 이용한프로베니우스 전개 방법
KR100817048B1 (ko) * 2005-03-05 2008-03-26 삼성전자주식회사 여러 가지 포인트 표현을 기반으로 한 ecc에서 dfa대책을 위한 암호화 방법 및 장치
KR100850202B1 (ko) * 2006-03-04 2008-08-04 삼성전자주식회사 Ecc 패스트 몽고매리 전력 래더 알고리즘을 이용하여dfa 에 대응하는 암호화 방법
KR102496583B1 (ko) * 2021-09-17 2023-02-06 이정훈 암호화 장치 및 이를 이용한 암호화 방법
CN113783702A (zh) * 2021-09-28 2021-12-10 南京宁麒智能计算芯片研究院有限公司 一种椭圆曲线数字签名与验签的硬件实现方法和系统

Similar Documents

Publication Publication Date Title
De Feo et al. Threshold schemes from isogeny assumptions
Stolbunov Constructing public-key cryptographic schemes based on class group action on a set of isogenous elliptic curves.
US7110538B2 (en) Method for accelerating cryptographic operations on elliptic curves
US20060029222A1 (en) Method for accelerating cryptographic operations on elliptic curves
Cheon Discrete logarithm problems with auxiliary inputs
Azarderakhsh et al. Practical supersingular isogeny group key agreement
US6212637B1 (en) Method and apparatus for en-bloc verification of plural digital signatures and recording medium with the method recorded thereon
US20030059041A1 (en) Methods and apparatus for two-party generation of DSA signatures
Smith Pre-and post-quantum Diffie–Hellman from groups, actions, and isogenies
Ciet et al. Improved algorithms for efficient arithmetic on elliptic curves using fast endomorphisms
US7519644B2 (en) Finite field serial-serial multiplication/reduction structure and method
Boruah et al. Implementation of ElGamal Elliptic Curve Cryptography over prime field using C
Kim et al. New hybrid method for isogeny-based cryptosystems using Edwards curves
Kutas et al. One-way functions and malleability oracles: Hidden shift attacks on isogeny-based protocols
Hinek On the security of some variants of RSA
US20060036861A1 (en) Method and apparatus for algebro-geometric key establishment protocols based on matrices over topological monoids
Hwang et al. Simplified small exponent test for batch verification
Ajeena et al. The integer sub-decomposition method to improve the elliptic elgamal digital signature algorithm
Zhou et al. Secure outsourcing of scalar multiplication on elliptic curves
KR20010035704A (ko) 타원곡선 포인트의 고속 스칼라 승법을 위한 프로세스 및 방법
Dai et al. Don’t Forget Pairing-Friendly Curves with Odd Prime Embedding Degrees
US20060002562A1 (en) Method and apparatus for geometric key establishment protocols based on topological groups
Li Pseudo-random scalar multiplication based on group isomorphism
Cheon et al. Improved batch verification of signatures using generalized sparse exponents
Abid et al. New digital signature protocol based on elliptic curves

Legal Events

Date Code Title Description
N231 Notification of change of applicant
A201 Request for examination
E902 Notification of reason for refusal
E601 Decision to refuse application