KR101777400B1 - 룩업 테이블을 이용한 타원 곡선의 스칼라 곱셈 연산 장치 및 방법 - Google Patents

룩업 테이블을 이용한 타원 곡선의 스칼라 곱셈 연산 장치 및 방법 Download PDF

Info

Publication number
KR101777400B1
KR101777400B1 KR1020150166400A KR20150166400A KR101777400B1 KR 101777400 B1 KR101777400 B1 KR 101777400B1 KR 1020150166400 A KR1020150166400 A KR 1020150166400A KR 20150166400 A KR20150166400 A KR 20150166400A KR 101777400 B1 KR101777400 B1 KR 101777400B1
Authority
KR
South Korea
Prior art keywords
scalar multiplication
elliptic curve
lookup table
naf
unit
Prior art date
Application number
KR1020150166400A
Other languages
English (en)
Other versions
KR20170061411A (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 한밭대학교 산학협력단
Priority to KR1020150166400A priority Critical patent/KR101777400B1/ko
Publication of KR20170061411A publication Critical patent/KR20170061411A/ko
Application granted granted Critical
Publication of KR101777400B1 publication Critical patent/KR101777400B1/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
    • 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/726Inversion; Reciprocal calculation; Division of elements of a finite field
    • 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
    • H04L9/3247Cryptographic 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 involving digital signatures
    • H04L9/3252Cryptographic 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 involving digital signatures using DSA or related signature schemes, e.g. elliptic based signatures, ElGamal or Schnorr schemes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/04Masking or blinding
    • H04L2209/043Masking or blinding of tables, e.g. lookup, substitution or mapping

Landscapes

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

Abstract

타원 곡선의 스칼라 곱셈 연산 장치는 타원 곡선을 구성하는 파라미터(Parameter)의 크기(n)를 고려하여 룩업 테이블의 크기를 결정한 후, 20P 내지 2nP까지의 각각의 2nP값을 계산하여 유한체의 결합과 분배법칙을 이용하여 룩업 테이블을 구성하는 테이블 형성부; 및 타원 곡선 알고리즘에서 사용되는 스칼라 곱셈을 kP의 하기의 수학식으로 표현하고, k를 바이너리 형태로 변환한 후, k의 각 자리수의 계수가 1인 경우의 해당 자리수의 2nP값을 룩업 테이블에서 스캔하여 로드하여 로드된 각각의 자리수의 2nP값을 덧셈 연산하여 kP에 해당하는 값을 얻는 스칼라 곱셈을 수행하는 스칼라 곱셈 연산부를 포함하는 것을 특징으로 한다.

Description

룩업 테이블을 이용한 타원 곡선의 스칼라 곱셈 연산 장치 및 방법{Apparatus and Method for Operating Elliptic Curve Scalar Multiplication Using Lookup Table}
본 발명은 스칼라 곱셈 연산 장치에 관한 것으로서, 특히 기존 스칼라 곱셈 방식을 대신하여 2nP에 해당하는 타원 곡선 점의 값(x,y)를 미리 연산하여 룩업 테이블을 구성한 후 룩업 테이블을 활용하여 스칼라 곱셈을 효율적으로 처리하는 룩업 테이블을 이용한 타원 곡선의 스칼라 곱셈 연산 장치 및 방법에 관한 것이다.
타원 곡선 스칼라 곱셈은 타원 곡선 암호화 및 페어링에 사용되는 필수적인 연산이다. 타원 곡선 스칼라 곱셈은 타원 곡선 알고리즘의 주요 연산 중 하나이며 암호화와 복호화 동작에서 대부분의 시간을 차지한다.
타원 곡선 스칼라 곱셈은 kP로 표현되고 kP는 타원 곡선에서 정의되는 점의 덧셈 연산을 통해 처리된다. 여기서, k는 GF(p)상에서 정의되는 임의의 원소이고 P는 GF(p)상에서 정의된 타원 곡선 위의 임의의 점이다.
타원 곡선 알고리즘의 성능에 직접적 영향을 미치는 스칼라 곱셈은 두 점의 덧셈 연산을 반복적으로 수행한다. 일반적으로 상수는 알고리즘의 보안성을 위해 매우 큰 소수가 사용되므로 큰 오버헤드를 유발한다.
타원 곡선 알고리즘은 타원 곡선 이산대수 문제의 어려움을 바탕으로 타 공개키에 비하여 짧은 키 크기로도 동일한 안정성을 제공하기 때문에 전자서명, 키 교환 프로토콜에서 매우 중추적인 역할을 하고 있다.
그러나 National Institute Standards and Technology(NIST)에서 2000년대 후반을 기점으로 암호 알고리즘에 대한 키 길이를 해쉬함수(SHA)의 보안 강도를 일정 수준 이상으로 개선된 수준이어야 할 것으로 권고한 바 있다.
따라서, 현재 우리나라에서도 기존 160 비트 수준의 키 길이에서 224 비트 이상의 큰 파라미터를 권고하는 추세이다.
타원 곡선 알고리즘에서 스칼라 곱셈은 알고리즘 수행 시간의 대부분을 차지하는 핵심 연산으로 파라미터의 증가로 인하여 큰 오버헤드를 유발하게 된다.
이는 전자서명 생성 및 전자서명 인증 시간의 증가, 인터넷 또는 IoT(Internet of Things) 환경에서의 품질 저하로 이어진다.
이와 같은 문제점을 해결하기 위하여, 본 발명은 기존 스칼라 곱셈 방식을 대신하여 2nP에 해당하는 타원 곡선 점의 값(x,y)를 미리 연산하여 룩업 테이블을 구성한 후 룩업 테이블을 활용하여 스칼라 곱셈을 효율적으로 처리하는 룩업 테이블을 이용한 타원 곡선의 스칼라 곱셈 연산 장치 및 방법을 제공하는데 그 목적이 있다.
상기 목적을 달성하기 위한 본 발명의 특징에 따른 타원 곡선의 스칼라 곱셈 연산 장치는,
타원 곡선을 구성하는 파라미터(Parameter)의 크기(n)를 고려하여 룩업 테이블의 크기를 결정한 후, 20P 내지 2nP까지의 각각의 2nP값을 계산하여 유한체의 결합과 분배법칙을 이용하여 룩업 테이블을 구성하는 테이블 형성부; 및
타원 곡선 알고리즘에서 사용되는 스칼라 곱셈을 kP의 하기의 수학식으로 표현하고, k를 바이너리 형태로 변환한 후, k의 각 자리수의 계수가 1인 경우의 해당 자리수의 2nP값을 룩업 테이블에서 스캔하여 로드하여 로드된 각각의 자리수의 2nP값을 덧셈 연산하여 kP에 해당하는 값을 얻는 스칼라 곱셈을 수행하는 스칼라 곱셈 연산부를 포함하는 것을 특징으로 한다.
[수학식]
스칼라 곱셈 = kP
여기서, k는 유한체 상에서 정의되는 임의의 원소이고, P는 유한체 상에서 정의된 타원 곡선 위의 임의의 점(P=(x,y))임.
본 발명의 특징에 따른 타원 곡선을 구성하는 파라미터(Parameter)의 크기(n)와 유한체 상에서 정의된 타원 곡선 위의 임의의 점 Base Point P=(x,y)와 유한체 상에서 정의되는 임의의 원소인 k를 입력받는 단계;
파라미터의 크기(n)와 상기 P를 기초로 룩업 테이블의 크기를 결정하고 20P 내지 2nP까지의 각각의 2nP값을 계산하여 유한체의 결합과 분배법칙을 이용하여 룩업 테이블을 구성하는 단계;
타원 곡선 알고리즘에서 사용되는 스칼라 곱셈을 kP의 하기의 수학식으로 표현하고, k를 바이너리 형태로 변환하는 단계; 및
k의 각 자리수의 계수가 1인 경우의 해당 자리수의 2nP값을 룩업 테이블에서 모두 스캔하여 로드하고, 로드된 각각의 자리수의 2nP값을 덧셈 연산하여 kP에 해당하는 값을 얻는 스칼라 곱셈을 수행하는 단계를 포함하는 것을 특징으로 한다.
[수학식]
스칼라 곱셈 = kP
여기서, k는 유한체 상에서 정의되는 임의의 원소이고, P는 유한체 상에서 정의된 타원 곡선 위의 임의의 점임.
전술한 구성에 의하여, 본 발명은 스칼라 곱셈(kP)에서 가장 많은 자원을 차지하는 k를 바이너리 형태로 변환한 후 2의 n승에 해당하는 P가 미리 테이블화되어 스칼라 곱셈시 활용함으로써 연산 속도를 향상시키는 효과가 있다.
본 발명은 스칼라 곱셈시 NAF 알고리즘을 적용하여 계수가 0인 경우 해당 자리수의 연산을 회피할 수 있어 스칼라 곱셈의 연산 속도를 향상시키는 효과가 있다.
도 1은 타원 곡선 알고리즘에서의 두 점의 덧셈 연산을 나타낸 도면이다.
도 2는 본 발명의 실시예에 따른 룩업 테이블을 이용한 타원 곡선의 스칼라 곱셈 연산 장치의 구성을 나타낸 도면이다.
도 3은 본 발명의 실시예에 따른 룩업 테이블을 이용한 타원 곡선의 스칼라 곱셈 연산 방법을 나타낸 도면이다.
도 4는 본 발명의 실시예에 따른 룩업 테이블의 구성을 나타낸 도면이다.
도 5는 본 발명의 실시예에 따른 k를 NAF 변환한 일례를 나타낸 도면이다.
도 6은 본 발명의 실시예에 따른 스칼라 곱셈을 수행하는 방법을 나타낸 도면이다.
도 7은 본 발명의 실시예에 따른 역원 계산기의 개념을 나타낸 도면이다.
명세서 전체에서, 어떤 부분이 어떤 구성요소를 "포함"한다고 할 때, 이는 특별히 반대되는 기재가 없는 한 다른 구성요소를 제외하는 것이 아니라 다른 구성요소를 더 포함할 수 있는 것을 의미한다.
타원 곡선 알고리즘은 타원 곡선의 이산대수문제의 어려움을 기반으로 하여 타 공개키 알고리즘에 비해 적은 파라미터로 강력한 보안성을 제공하는 공개 키 알고리즘이다.
타원 곡선 알고리즘은 소수체 또는 이진체에서 정의되는데 정의되는 유한체에 따라 타원 곡선 생성 방정식이 약간씩 다르다.
소수체에서의 타원 곡선 알고리즘은 다음의 [수학식 1]에서 생성되는 점(x,y)들을 이용하는 알고리즘으로 '공개 키', '메시지' 등이 모두 타원 곡선 상의 점(x,y)에 비유된다.
Figure 112015115617438-pat00001
여기서, x,y가 수학식 1을 만족하는 값일 때 타원 곡선 점을 나타내고, a, b는 임의의 양의 정수이고, 타원 곡선 방정식에 사용되며, p는 소수로 modulo 연산자이다.
Figure 112015115617438-pat00002
는 관계를 가지며, GF(P)는 [0 내지 p-1]의 원소를 갖는 유한체를 나타낸다.
이러한 특징으로 인하여 타원 곡선 알고리즘에서 사용되는 연산은 점과 점을 이용하여 다른 점을 찾는 연산인데 이를 두 점의 덧셈이라 한다.
도 1은 타원 곡선 알고리즘에서의 두 점의 덧셈 연산을 나타낸 도면이다.
타원 곡선 알고리즘에서 사용되는 두 점의 덧셈은 도 1에 도시된 바와 같이, 3가지 형태로 구분된다.
(1) 점 P와 점 Q가 서로 다른 점일 때의 연산으로 점의 덧셈 연산이라고 나타내며, 다음의 [수학식 2]와 같다.
Figure 112015115617438-pat00003
여기서, x1, y1, x2, y2, x3, y3는 임의의 타원 곡선점을 나타내고, λ는 기울기를 나타낸다.
(2) 점 P와 점 Q가 같은 점일 때의 연산으로 점의 두 배 연산이라고 나타내며, 다음의 [수학식 3]과 같다.
Figure 112015115617438-pat00004
(3) 점 P와 점 Q가 서로 대칭 점 또는 역원인 경우는 두 점의 덧셈 결과값이 ∞이고, 이를 무한원점이라 한다.
암호학은 양의 정수만을 사용하므로 도 1에 도시된 그래프의 경우 암호학의 이해를 돕기 위하여 사용된 그래프이다.
타원 곡선 알고리즘에서의 가장 중요한 연산은 스칼라 곱셈이며, 스칼라 곱셈은 어떠한 점 P = (x, y)에 상수 k만큼을 곱하는 연산이다.
스칼라 곱셈은 타원 곡선 알고리즘에서 가장 빈번하게 사용되고 핵심이 되는 연산으로 kP = P + P + P ...+ P 형태이다. 즉, k가 양의 정수일 때 점 P를 k번의 점의 덧셈 연산을 나타내고 kP로 표기된다.
k는 유한체(GF(p))상에서 정의되는 임의의 원소이고, P는 GF(p) 상에서 정의된 타원 곡선 위의 임의의 점이다. kP는 타원 곡선에서 정의되는 두 점의 덧셈 연산을 통해 처리된다.
이때, k는 매우 큰 소수이기 때문에 타원 곡선 알고리즘에서 가장 많은 자원을 사용한다.
유한체에서 정의되는 타원 곡선 점들은 유한체의 분배법칙, 결합법칙을 만족한다.
따라서, 어떠한 점 P가 있고 k가 100일 때, kP는 적절히 작은 수의 스칼라 곱셈으로 분배되어 계산된 후 결합할 수 있다.
일례로, 100P = P + P + P ...+ P(P를 100번 더한 값)
100P = 50P + 50P
100P = 10P + 20P + 30P + 40P
본 발명은 스칼라 곱셈 kP를 2n승의 스칼라들로 분배하여 계산하는 것이다.
다시 말해, k를 바이너리 형태로 변환한 후, 스칼라 곱셈할 때 2의 n승에 해당하는 P가 미리 테이블화되어 있다면 스칼라 곱셈(kP)가 더욱 세분화될 수 있다.
일례로 600P -> 60010 = 10010110002
600P -> (1*29P) * (1*26P) * (1*24P) * (1*23P)
여기에서 1을 곱한 값은 자기 자신이기 때문에 2nP가 계산되어 있다면 별도의 연산없이 해당 값을 로드하여 최종적으로 더한면 된다(계수가 0일 경우 무시함).
도 2는 본 발명의 실시예에 따른 룩업 테이블을 이용한 타원 곡선의 스칼라 곱셈 연산 장치의 구성을 나타낸 도면이고, 도 3은 본 발명의 실시예에 따른 룩업 테이블을 이용한 타원 곡선의 스칼라 곱셈 연산 방법을 나타낸 도면이고, 도 4는 본 발명의 실시예에 따른 룩업 테이블의 구성을 나타낸 도면이다.
본 발명의 실시예에 따른 룩업 테이블을 이용한 타원 곡선 스칼라 곱셈 가속화 장치(100)는 입력부(110), 테이블 형성부(120), NAF 변환부(130), 스칼라 곱셈 연산부(140), 저장부(150) 및 역원 계산기(160)를 포함한다.
입력부(110)는 k값, a값, p값, P값을 입력받는데(S100), (k, a, p,P) ∈ GF(p)에 속해야 한다. GF(P)는 [0 내지 p-1]의 원소를 갖는 유한체를 나타내고, k는 스칼라 곱셈에서 kP에서 k값을 나타내는 것으로 예를 들어 타원 곡선 알고리즘이 160-bit 파라미터에서 구현이 되었다고 가정하면, 1 내지 2160을 의미한다. a는 전술한 수학식 3에서 임의의 양의 정수이고, p는 소수이며 모듈러 연산자를 나타내며, P는 Base Point P=(x,y)인 타원 곡선의 한 점을 나타낸다.
k는 k ∈ GF(p)와 [1 < k < n-1]를 만족하는 임의의 소수이며, n은 원소의 위수를 의미한다.
이하에서는 설명의 편의를 위해서 타원 곡선 알고리즘이 160-bit 파라미터에서 구현된다고 가정한다.
테이블 형성부(120)는 도 4와 같은 룩업 테이블(122)을 P 내지 2160P까지의 2nP값을 모두 포함하도록 구성한다(S102). n은 타원 곡선을 구성하는 파라미터(Parameter)의 크기를 의미한다.
테이블 형성부(120)는 타원 곡선을 구성하는 파라미터(Parameter)의 크기(n)를 고려하여 룩업 테이블(122)의 크기를 결정한 후, 20P 내지 2nP까지의 각각의 2nP값을 계산하여 유한체의 결합과 분배법칙을 이용하여 룩업 테이블(122)을 구성한다.
이러한 룩업 테이블(122)은 유한체의 결합법칙과 분배법칙을 활용한다. 도 4에 도시된 바와 같이, P는 Base Point P=(x,y)로 x = 319283198, y = 498198821로 미리 설정되는 값이다.
테이블 형성부(120)는 예를 들면, 2P = P + P의 경우, 유한체의 결합법칙과 분배법칙과 전술한 [수학식 2]와 [수학식 3]을 이용하여 2P의 x, y값을 계산하며, 나머지 2nP의 x, y값도 동일한 원리로 계산된다.
NAF 변환부(130)는 정수 k 즉 1 내지 2160 중 하나를 입력받아 NAF(Non Adjacent Form) 알고리즘을 이용하여 NAF(k) 형태로 변환한다(S104).
NAF 알고리즘은 공지된 기술로 바이너리 형태의 어떠한 수에서 1을 0 또는 -1로 치환하여 1의 개수를 줄이는 알고리즘으로 기존의 타원 곡선 알고리즘에서 덧셈 후 곱셈 알고리즘을 사용할 때 점의 덧셈 연산을 회피하기 위해서 사용하는 알고리즘이다.
NAF 알고리즘의 일례로 나타내면, 다음의 [표 1]과 같다.
Figure 112015115617438-pat00005
7을 바이너리 형태로 표현하는 경우, 111(2)가 된다. 여기서, 1112을 NAF 형태로 표현한다면, (100-1)2로 표현할 수 있으며, -1은 1에 해당되는 P값의 덧셈의 역원으로 대체할 수 있다.
덧셈의 역원은 예를 들어 P = (x, y)일 때, -P = (x, -y)로 나타낼 수 있다.
본 발명은 0의 경우 계산을 회피하므로 NAF 알고리즘을 이용하여 1의 개수를 줄이고 0의 개수를 늘린다면 스칼라 곱셈 연산의 효율을 증대할 수 있는 것이다.
스칼라 곱셈 연산부(140)는 룩업 테이블(122)을 구성한 후, 입력부(110)로부터 정수 k를 입력받는 경우, 스칼라 곱셈(kP)를 수행하게 된다.
예를 들면, 룩업 테이블(122)을 구성한 후, k = 169510일 때, k는 NAF 변환부(130)를 통해 도 5와 같이 변환될 수 있다.
도 5와 같이, NAF 변환을 수행하면 스칼라 연산 횟수가 8번에서 5번으로 줄어든다.
스칼라 곱셈 연산부(140)는 변환된 NAF값과 룩업 테이블(122)을 이용하여 스칼라 곱셈 연산을 수행하게 된다.
스칼라 곱셈 연산부(140)는 NAF(k)_Length ≥ 0 동안 스칼라 곱셈 연산을 수행하게 되는데(S106), NAF(ki)의 i=1일 때 ki==1인 경우, 룩업 테이블(122)을 스캔하여 2iP값을 로드하여 저장부(150)에 저장된 kP값과 더하여 저장부(150)에 누적하여 저장하며, i 변수를 i++를 수행한다(S108, S110). 여기서, i는 NAF(k) 필드의 위치를 나타내는 변수이다.
스칼라 곱셈 연산부(140)는 NAF(ki)의 해당 자리수의 계수가 0인 경우(ki==0), i 변수만을 i++를 수행한 후(S112), 단계 S106로 진행된다.
도 6을 참조하여 설명하면, NAF(ki)의 i=1일 때 210P값을 룩업 테이블(122)에서 스캔하고, NAF(ki)의 i=2일 때 ki==1인 경우, 29P값을 룩업 테이블(122)에서 스캔하여 210P값과 누적하고, NAF(ki)의 i=4일 때 ki==1인 경우, 27P값을 룩업 테이블(122)에서 스캔하여 210P값 + 29P값과 누적하며, NAF(ki)의 i=6일 때 ki==1인 경우, 25P값을 룩업 테이블(122)에서 스캔하여 210P값 + 29P값 + 27P값과 누적한다.
스칼라 곱셈 연산부(140)는 NAF(k)에서 첫 번째 자리부터 스캔하여 계수가 1일 경우 해당 자리수에 해당하는 2nP값을 가져오며, 해당 자리수가 0일 경우 룩업 테이블(122)에서 스캔하는 작업을 수행하지 않고, i++하여 다음 자리수를 스캔하기 위하여 단계 S106로 진행한다(S112).
스칼라 곱셈 연산부(140)는 NAF(ki)의 i=11일 때 ki== -1인 경우, 해당 자리수에 해당하는 2nP값을 로드하여 역원 계산기(160)를 이용하여 역원값을 계산한다(S114, S116). 여기서, 역원은 해당 자리수의 P = (x, y)일 때, -P = (x, -y)를 의미한다.
스칼라 곱셈 연산부(140)는 NAF(ki)의 i=11일 때, 해당 자리수의 계수가 -1이므로 룩업 테이블(122)에서 가져온 2nP를 역원 계산기(160)에서 역원 연산하여 -2nP값을 계산한다.
스칼라 곱셈 연산부(140)는 NAF(ki)의 계수가 1인 i=1, 2, 4, 6, 11일 때 룩업 테이블(122)에서 로드된 모든 2nP값을 차례대로 두 점의 덧셈 연산을 수행하면 최종적으로 kP에 해당하는 값을 얻을 수 있다.
본 발명은 타원 곡선을 구성하는 파라미터(Parameter)의 크기(n)를 고려하여 룩업 테이블(122)의 크기를 결정한 후, 20 내지 2nP에 해당하는 각각의 P=(x,y)를 계산하여 룩업 테이블(122)을 구성한다.
타원 곡선 알고리즘으로 구현된 보안 시스템은 파라미터가 변경되지 않는다면 한번 구성한 룩업 테이블(122)을 재사용이 가능하기 때문에 타원 곡선 알고리즘의 공개키 생성 및 전자 서명 알고리즘에 유용하다.
스칼라 곱셈 연산부(140)는 스칼라 곱셈을 수행하여 kP에 해당하는 값을 얻어서 암호화, 복호화하는데 필요한 공개키 생성, 전자서명, 보안 인증 등에 활용할 수 있다.
이상에서 설명한 본 발명의 실시예는 장치 및/또는 방법을 통해서만 구현이 되는 것은 아니며, 본 발명의 실시예의 구성에 대응하는 기능을 실현하기 위한 프로그램, 그 프로그램이 기록된 기록 매체 등을 통해 구현될 수도 있으며, 이러한 구현은 앞서 설명한 실시예의 기재로부터 본 발명이 속하는 기술분야의 전문가라면 쉽게 구현할 수 있는 것이다.
이상에서 본 발명의 실시예에 대하여 상세하게 설명하였지만 본 발명의 권리범위는 이에 한정되는 것은 아니고 다음의 청구범위에서 정의하고 있는 본 발명의 기본 개념을 이용한 당업자의 여러 변형 및 개량 형태 또한 본 발명의 권리범위에 속하는 것이다.
100: 스칼라 곱셈 연산 장치
110: 입력부
120: 테이블 형성부
130: NAF 변환부
140: 스칼라 곱셈 연산부
150: 저장부
160: 역원 계산기

Claims (7)

  1. 타원 곡선을 구성하는 파라미터(Parameter)의 크기(n)를 고려하여 룩업 테이블의 크기를 결정한 후, 20P 내지 2nP까지의 각각의 2nP값을 계산하여 유한체의 결합과 분배법칙을 이용하여 상기 룩업 테이블을 구성하는 테이블 형성부; 및
    타원 곡선 알고리즘에서 사용되는 스칼라 곱셈을 kP의 하기의 수학식으로 표현하고, 상기 k를 바이너리 형태로 변환한 후, 상기 k의 각 자리수의 계수가 1인 경우의 해당 자리수의 2nP값을 상기 룩업 테이블에서 스캔하여 로드하여 로드된 각각의 자리수의 2nP값을 덧셈 연산하여 상기 kP에 해당하는 값을 얻는 스칼라 곱셈을 수행하는 스칼라 곱셈 연산부를 포함하는 것을 특징으로 하는 타원 곡선의 스칼라 곱셈 연산 장치.
    [수학식]
    스칼라 곱셈 = kP
    여기서, k는 유한체 상에서 정의되는 임의의 원소이고, P는 유한체 상에서 정의된 타원 곡선 위의 임의의 점(P=(x,y))임.
  2. 제1항에 있어서,
    상기 바이너리 형태로 변환된 k를 NAF(Non Adjacent Form) 알고리즘을 이용하여 NAF(k)로 변환하는 NAF 변환부를 더 포함하는 것을 특징으로 하는 타원 곡선의 스칼라 곱셈 연산 장치.
  3. 제1항에 있어서,
    상기 바이너리 형태로 변환된 k를 NAF(Non Adjacent Form) 알고리즘을 이용하여 NAF(k)로 변환하는 NAF 변환부를 더 포함하며,
    상기 스칼라 곱셈 연산부는 상기 k의 자리수의 계수가 0인 경우, 다음 자리수를 스캔하고, 상기 k의 자리수의 계수가 -1인 경우, 역원 계산기를 이용하여 -2nP값으로 역원 연산하는 것을 특징으로 하는 타원 곡선의 스칼라 곱셈 연산 장치.
  4. 룩업 테이블을 활용하여 스칼라 곱셈을 효율적으로 처리하는 입력부, 테이블 형성부, NAF(Non Adjacent Form) 변환부, 스칼라 곱셈 연산부, 역산 계산기로 이루어진 스칼라 곱셈 연산 장치를 이용한 스칼라 곱셈 연산 방법으로서,
    상기 입력부는 타원 곡선을 구성하는 파라미터(Parameter)의 크기(n)와 유한체 상에서 정의된 타원 곡선 위의 임의의 점 Base Point P=(x,y)와 유한체 상에서 정의되는 임의의 원소인 k를 입력받는 단계;
    상기 테이블 형성부는 상기 파라미터의 크기(n)와 상기 P를 기초로 룩업 테이블의 크기를 결정하고 20P 내지 2nP까지의 각각의 2nP값을 계산하여 유한체의 결합과 분배법칙을 이용하여 상기 룩업 테이블을 구성하는 단계;
    상기 NAF(Non Adjacent Form) 변환부는 타원 곡선 알고리즘에서 사용되는 스칼라 곱셈을 kP의 하기의 수학식으로 표현하고, 상기 k를 바이너리 형태로 변환하는 단계; 및
    상기 스칼라 곱셈 연산부는 상기 k의 각 자리수의 계수가 1인 경우의 해당 자리수의 2nP값을 상기 룩업 테이블에서 모두 스캔하여 로드하고, 상기 로드된 각각의 자리수의 2nP값을 덧셈 연산하여 상기 kP에 해당하는 값을 얻는 스칼라 곱셈을 수행하는 단계를 포함하는 것을 특징으로 하는 타원 곡선의 스칼라 곱셈 연산 방법.
    [수학식]
    스칼라 곱셈 = kP
    여기서, k는 유한체 상에서 정의되는 임의의 원소이고, P는 유한체 상에서 정의된 타원 곡선 위의 임의의 점임.
  5. 제4항에 있어서,
    상기 k를 바이너리 형태로 변환하는 단계는,
    상기 NAF(Non Adjacent Form) 변환부는 상기 바이너리 형태로 변환된 k를 NAF(Non Adjacent Form) 알고리즘을 이용하여 NAF(k) 형태로 변환하는 단계를 더 포함하는 것을 특징으로 하는 타원 곡선의 스칼라 곱셈 연산 방법.
  6. 제4항에 있어서,
    상기 스칼라 곱셈 연산부는 상기 k를 바이너리 형태로 변환한 후, 상기 k의 자리수의 계수가 -1인 경우의 해당 자리수의 2nP값을 상기 룩업 테이블에서 스캔하여 로드하는 단계; 및
    상기 스칼라 곱셈 연산부는 상기 역원 계산기를 이용하여 상기 로드된 2nP값을 -2nP값으로 역원 연산하며 상기 로드된 각각의 자리수의 2nP값과 덧셈 연산을 수행하는 단계를 포함하는 것을 특징으로 하는 타원 곡선의 스칼라 곱셈 연산 방법.
  7. 제4항에 있어서,
    상기 스칼라 곱셈 연산부는 상기 k를 바이너리 형태로 변환한 후, 상기 k의 자리수의 계수가 0인 경우, 해당 자리수의 2nP값을 상기 룩업 테이블에서 스캔하는 작업을 수행하지 않으며 상기 바이너리 형태의 k의 다음 자리수를 스캔하도록 자리수를 이동하는 단계를 포함하는 것을 특징으로 하는 타원 곡선의 스칼라 곱셈 연산 방법.
KR1020150166400A 2015-11-26 2015-11-26 룩업 테이블을 이용한 타원 곡선의 스칼라 곱셈 연산 장치 및 방법 KR101777400B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020150166400A KR101777400B1 (ko) 2015-11-26 2015-11-26 룩업 테이블을 이용한 타원 곡선의 스칼라 곱셈 연산 장치 및 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020150166400A KR101777400B1 (ko) 2015-11-26 2015-11-26 룩업 테이블을 이용한 타원 곡선의 스칼라 곱셈 연산 장치 및 방법

Publications (2)

Publication Number Publication Date
KR20170061411A KR20170061411A (ko) 2017-06-05
KR101777400B1 true KR101777400B1 (ko) 2017-09-11

Family

ID=59223064

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020150166400A KR101777400B1 (ko) 2015-11-26 2015-11-26 룩업 테이블을 이용한 타원 곡선의 스칼라 곱셈 연산 장치 및 방법

Country Status (1)

Country Link
KR (1) KR101777400B1 (ko)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2024101511A1 (ko) * 2022-11-09 2024-05-16 주식회사 시옷 V2x 통신 환경에서 메시지의 서명 검증 방법 및 이를 수행하는 컴퓨팅 장치

Also Published As

Publication number Publication date
KR20170061411A (ko) 2017-06-05

Similar Documents

Publication Publication Date Title
Aysu et al. Low-cost and area-efficient FPGA implementations of lattice-based cryptography
JP5378579B2 (ja) フォールディングを用いるモジュール削減
US20170091148A1 (en) Method for calculating elliptic curve scalar multiplication
JP4783382B2 (ja) モンゴメリ法用乗算剰余計算装置
Kamal et al. An FPGA implementation of the NTRUEncrypt cryptosystem
KR20100123361A (ko) 연산임계경로가 감소된 모듈러 곱셈기 및 연산임계경로 감소방법
Johansson et al. A detailed complexity model for multiple constant multiplication and an algorithm to minimize the complexity
KR101777400B1 (ko) 룩업 테이블을 이용한 타원 곡선의 스칼라 곱셈 연산 장치 및 방법
US8225100B2 (en) Hash functions using recurrency and arithmetic
KR101923293B1 (ko) 데이터 가산 장치 및 방법
Budati et al. High speed data encryption technique with optimized memory based RSA algorithm for communications
KR101548174B1 (ko) 모듈러스의 음의 역원을 구하는 방법
Zalekian et al. Efficient implementation of NTRU cryptography using residue number system
JP2018092010A (ja) 暗号化装置と暗号化方法、暗号化プログラム及び鍵生成装置と鍵生成方法、鍵生成プログラム
KR101318992B1 (ko) 모듈로 n 연산방법 및 그 장치
US8417756B2 (en) Method and apparatus for efficient modulo multiplication
Wu et al. Modular multiplier by folding Barrett modular reduction
Reddy et al. MNHOKA-PPA Efficient M-Term Non-Homogeneous Hybrid Overlap-free Karatsuba Multiplier for GF (2 n) Polynomial Multiplier
KR102498133B1 (ko) 모듈러 곱셈 연산을 수행하는 연산 장치 및 방법
JP2014187539A (ja) 画像処理装置
Banks et al. On Gauss sums and the evaluation of Stechkin’s constant
JP2011254385A (ja) 共通鍵生成システム及び共通鍵生成方法
TWI406548B (zh) 橢圓曲線加密運算電路
KR101817879B1 (ko) 고속의 naf 변환 장치 및 고속의 naf 변환 방법
JP2006285830A (ja) 疑似乱数生成器強度評価装置及び暗号化装置

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
GRNT Written decision to grant