KR100416291B1 - 타원곡선암호화의 유한체 역원과 승산 장치 및 그 방법 - Google Patents

타원곡선암호화의 유한체 역원과 승산 장치 및 그 방법 Download PDF

Info

Publication number
KR100416291B1
KR100416291B1 KR10-2001-0031869A KR20010031869A KR100416291B1 KR 100416291 B1 KR100416291 B1 KR 100416291B1 KR 20010031869 A KR20010031869 A KR 20010031869A KR 100416291 B1 KR100416291 B1 KR 100416291B1
Authority
KR
South Korea
Prior art keywords
register
polynomial
inverse
multiplication
storing
Prior art date
Application number
KR10-2001-0031869A
Other languages
English (en)
Other versions
KR20020094256A (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 KR10-2001-0031869A priority Critical patent/KR100416291B1/ko
Publication of KR20020094256A publication Critical patent/KR20020094256A/ko
Application granted granted Critical
Publication of KR100416291B1 publication Critical patent/KR100416291B1/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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F5/00Methods or arrangements for data conversion without changing the order or content of the data handled
    • G06F5/01Methods or arrangements for data conversion without changing the order or content of the data handled for shifting, e.g. justifying, scaling, normalising
    • 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/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
    • G06F7/52Multiplying; Dividing
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Computing Systems (AREA)
  • Mathematical Physics (AREA)
  • Complex Calculations (AREA)

Abstract

본 발명은, 유한체 다항식의 역원 연산을 수행하는 회로와 승산 연산을 수행하는 회로가 동일한 소정의 저장 장치와 게이트를 겸용하는 타원곡선암호화의 유한체 역원과 승산 장치 및 그 방법에 관한 것이다.
본 발명에 따른 장치는, 역원 연산시 입력 다항식을 저장하고, 승산 연산시 승산 연산의 결과를 저장하는 제 1 레지스터; 역원 연산시 기약 다항식을 저장하고, 승산 연산시 피승수를 저장하는 제 2 레지스터; 및 역원 연산시 임시 저장 수단의 역할을 수행하고, 승산 연산시 승수를 저장하는 제 3 레지스터를 구비하는 것을 특징으로 한다.

Description

타원곡선암호화의 유한체 역원과 승산 장치 및 그 방법{APPARATUS AND METHOD OF FINITE-FIELD INVERSION AND MULTIPLICATION BASED ON ELLIPTIC CURVE CRYPTOGRAPHY}
본 발명은 타원곡선암호화의 유한체 역원과 승산 장치 및 그 방법에 관한 것으로서, 더욱 상세히 설명하면, 다항식 기저에서 타원곡선 알고리즘을 이용한 암호화 장치 및 그 방법과 상기 방법을 실현시키기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록매체에 관한 것이다.
스마트카드와 공개키 암호(public-key cryptography)는 20 여년전부터 대두되었다. 그러나, IC 카드에 적합한 공개키 암호 회로의 구현 방법이 발달하지 못하여 스마트카드와 공개키 암호가 결합된 것은 불과 수년전의 일이 되었다. 최근에는 RSA(Rivest Shamir Adleman), US Digital Signature Strandard, Russign Gost 34.10 과 같은 암호가 많은 IC 카드에 응용되고 있다.
스마트카드에 사용될 수 있는 공개키 암호의 개념은 1976년 "W. Diffie" 와"M. E. Hellman" 이 "New Directions in Cryptography" 에서 처음 소개하였다. 이후 1978년 소인수분해의 어려움에 기반을 둔 RSA 가 소개되어 지금까지 폭넓게 사용되고 있다. 그러나, RSA 는 비도를 높이기 위해 1024 비트 이상으로 확장되는 추세이기 때문에, 스마트카드와 같이 제한된 면적에 탑재되는데 어려움이 있다. 이에 따라, 1987년 "Koblitz" 와 "Miller" 는 공개키 암호화에 타원곡선(ECC, Elliptic Curve Cryptography) 암호 알고리즘을 적용하였는데, 이 타원곡선 암호 알고리즘(ECC)은 적은 비트로 높은 비도를 보이기 때문에 최근 스마트 카드와 같은 IC 카드의 암호화 구현에 많이 사용되고 있다.
이러한 타원곡선 암호시스템은 유한체의 곱셈군에 근거한 시스템으로써 하기와 같은 장점을 가진다.
첫째로, 군(Group)을 제공할 수 있는 다양한 타원곡선을 활용할 수 있어서 암호 시스템 설계가 용이하다.
둘째로, 초특이 타원곡선을 피하면 이 군에서 하위지수적 시간 알고리즘 (subexponential time algorithms)이 존재하지 않는다. 즉, 안전한 암호 시스템을 설계하는 것이 용이하다.
마지막으로, 타원곡선 암호 시스템은 다른 공개키 스킴에 비해 좀 더 작은 키 길이를 가지고 같은 안전도를 제공하는 것이 가능하다. 예컨대, ECC 160 비트 키가 RSA 1024 비트 키와 동일한 안전도를 제공한다. 따라서 작은 키 길이는 하드웨어(H/W)와 소프트웨어(S/W)로 구현하기가 용이한 장점을 제공한다.
타원곡선 암호 시스템은 스칼라 곱셈(scalar multiplication) 연산을 바탕으로 공개 키 분배 및 디지털 서명(digital signature) 등의 기능을 수행한다. 따라서 타원곡선 암호 시스템을 하드웨어로 구현하기 위해서는 스칼라 곱셈 연산장치의 개발을 필요로 한다.
스칼라 곱셈 연산장치는 기본적으로 유한체 승산기, 유한체 역원기, 유한체 제곱기, 유한체 가산기로 구성된다. 이상의 연산기는 기저(basis)에 따라 다르게 구현되며 본 발명에서는 다항식 기저(polynomial basis)를 사용하는 연산기 설계방법을 제안한다.
종래의 타원곡선 암호 시스템의 스칼라 곱셈 연산장치는 승산기, 역원기, 제곱기, 가산기를 각각 설계하고 이를 별도로 구현하였다. 또한 마이크로프로세서와 같은 형태의 장치에서 소프트웨어적으로 구현하였다. 유한체 연산장치는 암호 비트수에 비례하는 레지스터를 이용하여 연산을 수행하기 때문에, 여러 종류의 유한체 연산기를 사용하는 경우 레지스터의 수가 증가함으로써 전체적인 암호 시스템의 면적을 크게 차지하게 되는 문제점이 있었다.
한편, 스마트카드에 내장되는 칩에는 마이크로 프로세서, 메모리, 암호화 프로세서, 입출력 제어회로 등이 포함되는데, 이러한 스마트카드 칩은 카드 리더 (READER) 시스템과의 인터페이스를 원할히 하기 위하여 그 규격이 국제적으로 정하여져 있으며 칩의 크기가 한정되어 있다. 따라서, 마이크로 프로세서, 메모리, 암호화 프로세서, 입출력 제어회로와 같은 기능이 한정된 공간에서 구현되어야 하기 때문에 최소 면적의 회로 구조를 갖추어야 한다. 이에 따라 카드에 있어 가장 큰 면적을 차지하는 암호 회로를 최소로 만드는 것이 요구된다.
본 발명은, 상기한 바와 같은 문제점을 해결하기 위하여 제시된 것으로, 본 발명의 목적은 타원곡선 암호화의 유한체 역원 및 승산 장치를 제공하는 것이다.
또한 본 발명의 또 다른 목적은, 타원곡선 암호화의 유한체 역원 및 승산 장치를 이용한 승산 연산 및 역산 연산 방법을 제공하는 것이다.
즉, 레지스터의 수를 감소시키기 위하여 타원곡선 암호 시스템에서 스칼라 곱셈을 실행하는 유한체 승산기와 역원기가 동일한 레지스터를 겸용하고, 또한 레지스터 및 대부분의 회로를 겸용하는데 적합하도록 유한체 승산 방법을 LFSR구조로 하고 유한체 역원 방법은 Almost Inverse Algorithm 구조를 갖는 다항식 기저에서 유한체 승산과 역원 겸용장치 및 그 방법과 상기 방법을 실현시키기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록매체를 제공하는데 그 목적이 있다.
본 발명의 상기 목적은, 유한체 다항식의 역원 연산을 수행하는 회로와 승산 연산을 수행하는 회로가 동일한 소정의 저장 장치와 게이트를 겸용하는 타원곡선 암호화의 유한체 역원 및 승산 장치로서, 역원 연산시 입력 다항식을 저장하고, 승산 연산시 승산 연산의 결과를 저장하는 제 1 레지스터; 역원 연산시 기약 다항식을 저장하고, 승산 연산시 피승수를 저장하는 제 2 레지스터; 및 역원 연산시 임시 저장 수단의 역할을 수행하고, 승산 연산시 승수를 저장하는 제 3 레지스터를 구비하는 것을 특징으로 하는 타원곡선 암호화의 유한체 역원 및 승산 장치에 의해 달성 가능하다.
보다 바람직하게는 본 발명의 유한체 역원 및 승산 장치는, 입력 다항식의 역원인 출력 다항식을 저장하는 제 4 레지스터와 입력 다항식의 차수를 연산하는 제 5 레지스터와 차수를 저장하는 제 6 레지스터와 역원 연산을 통해 생성되는 다항식의 차수가 상기 기약 다항식의 차수보다 작아지도록 제산 연산을 수행하는 제 7 레지스터와 제산 연산에 필요한 차수를 저장하는 제 8 레지스터와 제 1 레지스터의 입력값을 선택하는 제 1 다중화기와 제 4 레지스터의 입력값을 선택하는 제 2 다중화기와 승산 연산시, 상기 승수를 상기 제 3 레지스터에 입력하거나, 상기 제 4 레지스터의 출력값을 상기 제 2 레지스터로 입력시키는 제 3 다중화기와 승산 연산시, 승수와 피승수를 AND 연산하거나, 역원 연산시 제 2 레지스터의 출력값과 제 1 레지스터의 출력값을 XOR 연산하는 다중화/가산기와 제 3 레지스터와 제 4 레지스터의 출력을 XOR 연산하는 XOR 게이트를 더 구비하도록 한다.
또한 본 발명의 또 다른 목적은, 본 발명에 따른 유한체 역원 및 승산 장치를 이용하고, 올모스트 인버스 알고리즘을 이용하는 역원 연산 방법으로, 제 1 레지스터에 입력 다항식을 입력하고, 제 2 레지스터에 기약 다항식을 입력하고, 제 3 레지스터를 0 으로 설정하고, 제 4 레지스터를 1 로 설정하는 제 1 단계; 제 1 레지스터의 저장값의 최하위 비트가 0 인 경우, 제 1 레지스터의 저장값을 오른쪽으로 1 비트 쉬프트하고, 제 3 레지스터의 저장값을 왼쪽으로 1 비트 쉬프트하고, 제 8 레지스터의 저장값을 1 증가시키는 제 2 단계; 제 1 레지스터의 저장값의 최하위 비트가 1 이고, 제 5 레지스터의 차수가 1 이고, 제 6 레지스터의 차수가 제 5 레지스터의 차수보다 큰 경우, 제 1 레지스터와 제 2 레지스터의 저장값을 교환하고, 제 3 레지스터와 제 4 레지스터의 저장값을 교환하는 제 3 단계; 및 제 1 레지스터와 제 3 레지스터의 저장값을 XOR 연산하여 제 1 레지스터에 저장하고, 제 2 레지스터와 제 4 레지스터의 저장값을 XOR 연산하여 제 4 레지스터에 저장하는 제 4 단계를 포함하고, 제 5 레지스터의 차수가 0 이 될 때까지, 1 단계 내지 4 단계를 반복하고, 제 5 레지스터의 차수가 0 인 경우, 제 4 레지스터에 저장된 다항식을 상기 제 8 레지스터의 차수로 축약 연산을 수행하고, 축약 연산의 결과를 입력 다항식의 역원 다항식으로 출력하는 단계를 더 포함하는 것을 특징으로 하는 역원 연산 방법에 의해 달성 가능하다.
또한 본 발명의 또 다른 목적은, 본 발명에 따른 유한체 역원 및 승산 장치를 이용하고, 엘.에프.에스.알을 이용하는 승산 연산 방법으로, 1 비트와 제 2 레지스터의 저장값을 AND 연산하는 제 1 단계; AND 연산의 결과값과 제 1 레지스터의 저장값과 XOR 연산을 하고, 제 1 레지스터에 저장하는 제 2 단계; 제 2 레지스터와 제 3 레지스터의 저장값을 1 비트씩 오른쪽으로 쉬프트하는 제 3 단계; 제 2 레지스터의 저장값을 오른쪽으로 쉬프트 할 때, 기약 다항식으로 승산결과를 축소하는 스위치가 1 인 비트와, 제 2 레지스터의 최상위 비트를 XOR 연산하고 저장하는 제 3 단계를 포함하는 것을 특징으로 하는 승산 연산 방법에 의해 달성 가능하다.
본 발명의 장점, 특징 및 바람직한 실시례는 첨부한 도면을 참조하여 상세히 설명한다.
도 1 은 본 발명에 따른 유한체 역원과 승산 겸용장치의 구성도.
도 2 는 본 발명에 따른 유한체 역원 장치에 있어서, Almost Inverse Algorithm 에 기반한 역원 장치의 동작 흐름도.
도 3 은 본 발명에 따른 유한체 승산 장치에 있어서, LFSR(Linear Feedback Shift Register) 구조를 갖는 승산기의 구성도.
도 4 는 본 발명에 따른 유한체 역원과 승산 겸용장치에 있어서, 역원기의 저장장치와 회로를 이용한 승산기의 구성도.
도 5 는 본 발명에 따른 유한체 역원과 승산 겸용장치에 있어서, 역원과 승산 기능을 선택하기 위한 선택회로의 회로도.
도 6 은 본 발명에 따른 유한체 역원과 승산 겸용장치에 있어서, 레지스터 A의 회로도.
*** 도면의 주요 부분에 대한 부호의 설명 ***
11 : Z 레지스터 12 : A 레지스터
13 : B 레지스터 14 : D 레지스터
15 : F 레지스터 16 : G 레지스터
17 : R 레지스터 18 : K 레시스터
19 : 제어기
101 : 제1 2X1 다중화기 102 : 제2 2X1 다중화기
103 : 제3 2X1 다중화기 104 : 다중화/가산기
105 : XOR
본 발명의 구성 및 작용은, 다항식 기저를 바탕으로 하여 기약다항식으로 하기의 수학식1 을 이용하여 설명한다.
도 1 은 본 발명에 따른 유한체 역원과 승산 겸용장치의 구성도이다. 도 1 을 참조하면, 본 발명에 따른 유한체 역원과 승산 겸용장치의 구성은, Z 레지스터 (11), A 레지스터(12), B 레지스터(13), D 레지스터(14), F 레지스터(15), G 레지스터(16), R 레지스터(17), K 레지스터(18), 제어기(19), 4개의 2X1 다중화기(MUX) (101 내지 104) 및 유한체 가산기(105)를 포함한다.
본 발명에 따른 Z 레지스터(11)는, 역원 계산에 필요한 입력 다항식을 다항식 기저(polynomial basis)에서 벡터로 표현된 이진(binary) 값으로 저장한다. 입력 다항식이 Z 레지스터(11)에 저장될 때에는 버스(bus)의 전송단위로 여러 번에 걸쳐 입력된다. 일례로 193 비트의 입력 다항식을 32비트 버스를 사용하여 입력하기 위해서는 7번으로 나누어 입력 동작이 수행된다.
본 발명에 따른 A 레지스터(12)는, 기약다항식 저장 레지스터이며 역원 계산을 진행하면서 Z 레지스터(11)의 내용과 교환이 이루어 진다.
본 발명에 따른 B 레지스터(13)는, 임시 저장 레지스터이며 역원 계산을 진행하면서 D 레지스터(14)의 내용과 교환이 이루어 진다.
본 발명에 따른 D 레지스터(14)는, 출력 다항식을 저장하는 레지스터이며 출력 다항식은 입력 다항식의 역원이 된다.
본 발명에 따른 F 레지스터(15)는, Z 레지스터(11)에 있는 다항식의 차수를 계산하여 차수를 저장하는 G 레지스터(16)와 제어기(19)에 전송하여 역원계산시 조건을 판단하는데 사용되도록 한다. F 레지스터(15)에서 계산된 차수는 이진값 형태로 G 레지스터 (16)에 저장된다.
본 발명에 따른 R 레지스터(17)는, 역원 계산 과정에서 만들어진 다항식을 기약 다항식의 차수보다 작아지도록 다항식을 축소하는 과정(modular reduction)을 실행한다.
본 발명에 따른 K 레지스터(18)는, 다항식 축소에 필요한 차수를 저장하는 장치이다.
본 발명에 따른 제어기(19)는, 각 장치들을 이용하여 역원과정을 수행하도록 제어하는 장치이며 각 장치들에 필요한 제어신호를 생성한다.
본 발명에 따른 제 1 2X1 다중화기(101)는, Z 레지스터(11)에 입력되는 값을 선택하는 장치로, 역원계산의 1 단계 동작에서는 입력 다항식의 값이 Z 레지스터 (11)에 입력되도록 선택되고, 역원 계산이 진행되면 조건에 따라 A 레지스터(12)와 값의 교환이 이루어지도록 선택된다.
본 발명에 따른 제 2 2X1 다중화기(102)는, D 레지스터(14)에 입력되는 값을 선택하는 장치로, 조건에 따라 B 레지스터(13)의 값이 입력되거나 축소된(modularreduction) 출력 다항식 값이 입력되도록 선택하는 장치이다.
본 발명에 따른 제 3 2X1 다중화기(103)는, 역원기를 승산기로 겸용하여 사용할 때 승산기의 승수(multiplier) 값을 B 레지스터(13)에 입력하거나, D 레지스터(14) 값이 B 레지스터(13)에 전달되도록 선택하는 장치이다.
본 발명에 따른 다중화/가산기(104)는, 역원기를 승산기로 겸용하여 사용할 때 승수와 A 레지스터(12)에 있는 피승수값을 AND 연산하도록 선택하거나, 역원계산시 A 레지스터(12)와 Z 레지스터(11)를 XOR 연산하도록 선택하는 장치이다.
본 발명에 따른 XOR(105)는, B 레지스터(13)와 D 레지스터(14)를 XOR 한다.
도 2 는 본 발명에 따른 유한체 역원 장치에 있어서, Almost Inverse Algorithm 에 기반한 역원 장치의 동작 흐름도이다. 도 2 를 참조하면, Almost Inverse Algorithm 에 기반한 역원 장치의 동작은 다음과 같다.
초기화 과정(100 단계)에서 Z 레지스터(11)에 입력다항식을, A 레지스터(12)에 기약다항식을 입력한다. 또한 B 레지스터(13)는 0값으로 D 레지스터(14)는 1 값으로 초기화한다.(110 단계)
Z 레지스터(11)의 최하위 비트 Z(0)가 0 인지 판단한다.(120 단계)
Z(0)가 0 인 경우, Z 레지스터(11)를 1 비트 오른쪽으로 쉬프트하고, B 레지스터(13)를 1 비트 왼쪽으로 쉬프트한다. 또한 차수 K 레지스터(18) 값을 1 증가한다.(130 단계)
Z(0)가 1 인 경우, 차수 F 가 0 인지 판단한다.(140 단계)
차수 F 가 1 인 경우, 차수 F 와 차수 G의 크기를 비교한다.(150 단계)
차수 G 가 큰 경우, Z 레지스터(11)와 A 레지스터(12)의 내용을 교환하고, D 레지스터(14) 와 B 레지스터(13)의 내용을 교환한다.(160 단계)
Z 와 B 를 XOR 하여 다시 Z 에 저장하고, D 와 A 를 XOR 하여 D 에 저장한다.(170 단계)
상기의 과정을 차수 F 가 0 이 될 때까지 반복한다. 차수 F 가 0 이되면 다항식 D 의 값을 차수 K 값으로 축약하고(180 단계), 축약결과가 입력 다항식의 역원 다항식이 되며 역원계산 과정을 종료한다.(190 단계)
도 3 은 본 발명에 따른 유한체 승산 장치에 있어서, LFSR(Linear Feedback Shift Register) 구조를 갖는 승산기의 구성도이다.
LFSR 구조는 1 비트씩 승산을 수행하기 때문에 회로를 구현하는데 필요한 게이트 수를 줄일 수 있으며, 승산값을 기약다항식으로 축소하는 제산(modular reduction)을 위한 별도의 회로를 갖지 않기 때문에, 스마트 카드와 같이 제한된 크기의 시스템에 사용하는데 큰 장점을 갖는다.
도 3 의 승산 장치는, 승산 결과를 저장하는 Z 레지스터(31), 피승수를 저장하는 A 레지스터(32), 승수를 저장하는 B 레지스터(33) 및 기약 다항식으로 승산결과를 축소하는데 필요한 스위치(34)로 구성된다.
승산의 연산 과정은 다음과 같다.
승수가 최하위 비트인 1 비트와 A 레지스터(32)의 값을 AND 연산하고, 이 결과는 Z 레지스터(31)의 값과 XOR 연산을 한 후 다시 Z 레지스터(31)에 저장한다. 승수의 1 비트에 대한 연산이 완료되면 A 레지스터(32)와 B 레지스터(33)는 1 비트 오른쪽 쉬프트를 수행한다. 특히, A 레지스터(32)가 오른쪽으로 쉬프트 할 때, 스위치 P(34) 가 1 인 비트는 A 레지스터(32)의 최상위 비트와 XOR 연산을 하고 저장된다. 스위치 P(34) 는 기약다항식으로 축소하는 역할을 수행하며, 스위치 P (34) 가 ON, OFF 되는 것은 기약다항식의 계수에 의하여 결정된다. 예를 들어 수학식 1 의 기약 다항식을 사용하면 P0 와 P15 가 ON 되고 나머지는 모두 OFF된다.
본 발명은 타원곡선 암호화 시스템을 구현하는데 있어서 핵심 기술인 스칼라 곱셈기를 구현하는데, 회로의 크기를 최소화 하기 위하여 역원기 회로와 승산기 회로를 겸용하는 방법을 제안한다. 스칼라 곱셈을 수행하는데 역원기와 승산기가 회로를 겸용할 수 있음은 다음 수학식 2 에 의해 알 수 있다.
수학식 2 의 (1) 은 타원곡선 방정식을 나타내며 타원곡선 암호 시스템의 대수 문제는 이 방정식이 정의하는 타원곡선 좌표를 이용한다. 수학식 2 의 (2) 는 제시된 타원곡선의 임의의 두 좌표점을 나타낸다. 스칼라 곱셈은 수학식 2 의 (3) 과 (6) 의 두가지 경우로 구성되며, (3)의 경우에는 (4) 와 (5) 의 식으로 임의의 두 좌표점의 덧셈을 구하고, (6)의 경우에는 (7)과 (8)의 식으로 임의의 두 좌표점의 덧셈을 구한다. 수학식 2의 (4),(5),(7),(8) 을 통하여 역원,승산,제곱,가산으로 구성됨을 알 수 있으며, 역원과 승산이 동시에 이루지지 않음을 알 수 있다. 본 발명은 수학식 2 를 근거로 하여, 역원기와 승산기를 분리하여 각각 회로로 제작하지 않고 역원기와 승산기의 회로를 겸용하도록 제안한다.
본 발명에서는 역원기와 승산기를 겸용할 수 있도록 역원기를 Almost Inversion Algorithm 에 근거하여 도 1, 도 2 에서 도시된 바대로 회로를 설계하고, 승산기는 도 3 에 도시된 바대로 회로를 설계한다.
도 4 는 본 발명에 따른 유한체 역원과 승산 겸용장치에 있어서, 역원기의 저장장치와 회로를 이용한 승산기의 구성도이다. 도 4 는 역원기의 일부 회로이며 이 부분에서 도 3 과 같은 LFSR 구조의 유한체 승산을 실시한다. 도 3 의 Z 레지스터(31)는 도 4 의 Z 레지스터(41)에 해당하고, 도 3 의 A 레지스터(32)는 도 4 의 A 레지스터(42)에 해당한다. 그리고, 도 3 의 B 레지스터(33)는 도 4 의 B 레지스터(43)에 해당한다. 도 3 의 AND 게이트와 Z 레지스터(31)의 XOR 게이트의 연결방법은 도 4 의 다중화기(46)에 해당하며 다중화기의 내부 회로는 도 5 에 도시되어 있다.
도 3 에서 다항식 축소(modular reduction)를 하기 위한 스위치 P(34)는 도 4 에서 레지스터 A(42)에 포함된다.
도 5 는 상기한 바대로, 본 발명에 따른 유한체 역원과 승산 겸용 장치에 있어서, 역원과 승산 기능을 선택하기 위한 선택회로의 회로도이다. 도 3 은 상기한 바와 같이, 도 4 의 다중화기의 내부 회로도로서, 상세한 설명은 생략한다.
도 6 은 본 발명에 따른 유한체 역원과 승산 겸용 장치에 있어서, 레지스터 A 의 회로도로서, 상세한 설명은 생략한다.
이상 설명한 바대로, 본 발명은 타원곡선 암호화 시스템에서 역원기 회로와 승산기 회로를 겸용하는 방식을 사용함으로써 부피가 작은 회로를 제공이 가능하도록 한다.
이에 따라, 본 발명은 스마트카드와 같은 전자카드의 암호화 프로세서 회로에서 부피를 감소시키고 빠른 속도를 가지며 비도를 높이는 현저한 효과가 있다.
본 발명의 바람직한 실시례가 특정 용어들을 사용하여 기술되어 왔지만, 그러한 기술은 오로지 설명을 하기 위한 것이며, 다음의 청구범위의 기술적 사상 및 범위로부터 이탈되지 않고서 여러 가지 변경 및 변화가 가해질 수 있는 것으로 이해되어져야 한다.

Claims (5)

  1. 삭제
  2. 유한체 다항식의 역원 연산을 수행하는 회로와 승산 연산을 수행하는 회로가 동일한 소정의 저장 장치와 게이트를 겸용하는 타원곡선 암호화의 유한체 역원 및 승산 장치로서,
    상기 역원 연산시 입력 다항식을 저장하고, 상기 승산 연산시 승산 연산의 결과를 저장하는 제 1 레지스터;
    상기 역원 연산시 기약 다항식을 저장하고, 상기 승산 연산시 피승수를 저장하는 제 2 레지스터;
    상기 역원 연산시 임시 저장 수단의 역할을 수행하고, 상기 승산 연산시 승수를 저장하는 제 3 레지스터;
    상기 입력 다항식의 역원인 출력 다항식을 저장하는 제 4 레지스터;
    상기 입력 다항식의 차수를 연산하는 제 5 레지스터;
    상기 차수를 저장하는 제 6 레지스터;
    상기 역원 연산을 통해 생성되는 다항식의 차수가 상기 기약 다항식의 차수보다 작아지도록 제산 연산을 수행하는 제 7 레지스터;
    상기 제산 연산에 필요한 차수를 저장하는 제 8 레지스터;
    상기 제 1 레지스터의 입력값을 선택하는 제 1 다중화기;
    상기 제 4 레지스터의 입력값을 선택하는 제 2 다중화기;
    상기 승산 연산시, 상기 승수를 상기 제 3 레지스터에 입력하거나, 상기 제 4 레지스터의 출력값을 상기 제 2 레지스터로 입력시키는 제 3 다중화기;
    상기 승산 연산시, 상기 승수와 상기 피승수를 AND 연산하거나, 상기 역원 연산시 상기 제 2 레지스터의 출력값과 상기 제 1 레지스터의 출력값을 XOR 연산하는 다중화/가산기; 및
    상기 제 3 레지스터와 상기 제 4 레지스터의 출력을 XOR 연산하는 XOR 게이트를 구비하는 것을 특징으로 하는 타원곡선 암호화의 유한체 역원 및 승산 장치.
  3. 제 2 항에 있어서,
    상기 제 3 레지스터가, 최상위 비트를 피드백시키는 기능을 구비하는 것을 특징으로 하는 타원곡선 암호화의 유한체 역원 및 승산 장치.
  4. 제 2 항의 유한체 역원 및 승산 장치를 이용하고, 올모스트 인버스 알고리즘을 이용하는 역원 연산 방법으로,
    상기 제 1 레지스터에 상기 입력 다항식을 입력하고, 상기 제 2 레지스터에 상기 기약 다항식을 입력하고, 상기 제 3 레지스터를 0 으로 설정하고, 상기 제 4 레지스터를 1 로 설정하는 제 1 단계;
    상기 제 1 레지스터의 저장값의 최하위 비트가 0 인 경우, 상기 제 1 레지스터의 저장값을 오른쪽으로 1 비트 쉬프트하고, 상기 제 3 레지스터의 저장값을 왼쪽으로 1 비트 쉬프트하고, 상기 제 8 레지스터의 저장값을 1 증가시키는 제 2 단계;
    상기 제 1 레지스터의 저장값의 최하위 비트가 1 이고, 상기 제 5 레지스터의 차수가 1 이고, 상기 제 6 레지스터의 차수가 상기 제 5 레지스터의 차수보다 큰 경우,
    상기 제 1 레지스터와 상기 제 2 레지스터의 저장값을 교환하고, 상기 제 3 레지스터와 상기 제 4 레지스터의 저장값을 교환하는 제 3 단계; 및
    상기 제 1 레지스터와 상기 제 3 레지스터의 저장값을 XOR 연산하여 상기 제 1 레지스터에 저장하고, 상기 제 2 레지스터와 상기 제 4 레지스터의 저장값을 XOR 연산하여 상기 제 4 레지스터에 저장하는 제 4 단계를 포함하고,
    상기 제 5 레지스터의 차수가 0 이 될 때까지, 상기 1 단계 내지 상기 4 단계를 반복하고,
    상기 제 5 레지스터의 차수가 0 인 경우, 상기 제 4 레지스터에 저장된 다항식을 상기 제 8 레지스터의 차수로 축약 연산을 수행하고, 상기 축약 연산의 결과를 상기 입력 다항식의 역원 다항식으로 출력하는 단계를 더 포함하는 것을 특징으로 하는 역원 연산 방법.
  5. 제 2 항의 유한체 역원 및 승산 장치를 이용하고, 엘.에프.에스.알을 이용하는 승산 연산 방법으로,
    1 비트와 상기 제 2 레지스터의 저장값을 AND 연산하는 제 1 단계;
    상기 AND 연산의 결과값과 상기 제 1 레지스터의 저장값과 XOR 연산을 하고, 상기 제 1 레지스터에 저장하는 제 2 단계;
    상기 제 2 레지스터와 상기 제 3 레지스터의 저장값을 1 비트씩 오른쪽으로 쉬프트하는 제 3 단계;
    상기 제 2 레지스터의 저장값을 오른쪽으로 쉬프트 할 때,
    기약 다항식으로 승산결과를 축소하는 스위치가 1 인 비트와, 상기 제 2 레지스터의 최상위 비트를 XOR 연산하고 저장하는 제 3 단계를 포함하는 것을 특징으로 하는 승산 연산 방법.
KR10-2001-0031869A 2001-06-08 2001-06-08 타원곡선암호화의 유한체 역원과 승산 장치 및 그 방법 KR100416291B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR10-2001-0031869A KR100416291B1 (ko) 2001-06-08 2001-06-08 타원곡선암호화의 유한체 역원과 승산 장치 및 그 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR10-2001-0031869A KR100416291B1 (ko) 2001-06-08 2001-06-08 타원곡선암호화의 유한체 역원과 승산 장치 및 그 방법

Publications (2)

Publication Number Publication Date
KR20020094256A KR20020094256A (ko) 2002-12-18
KR100416291B1 true KR100416291B1 (ko) 2004-01-31

Family

ID=27708157

Family Applications (1)

Application Number Title Priority Date Filing Date
KR10-2001-0031869A KR100416291B1 (ko) 2001-06-08 2001-06-08 타원곡선암호화의 유한체 역원과 승산 장치 및 그 방법

Country Status (1)

Country Link
KR (1) KR100416291B1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100606435B1 (ko) 2005-02-04 2006-08-01 고려대학교 산학협력단 유한체에서의 역원 연산 장치 및 방법

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20030003435A (ko) * 2001-06-30 2003-01-10 주식회사 시큐리티테크놀로지스 암호시스템에 사용하기 위한 최적의 역원을 구하기 위한방법 및 장치
KR100450750B1 (ko) * 2002-04-17 2004-10-01 한국전자통신연구원 향상된 선형 궤환 시프트 레지스터 구조의 유한체 승산기
KR100451570B1 (ko) * 2002-10-29 2004-10-08 (주)미래스멕스 에스피에이에 견디는 타원 곡선 암호화 알고리즘을구현하는 방법 및 장치
KR100550015B1 (ko) * 2003-12-18 2006-02-08 한국전자통신연구원 GF(3^m)의 유한체 곱셈 연산에 적합한 유한체 곱셈연산 장치, 이에 적합한 mod 3 비트 곱셈기, 그리고이에 적합한 mod 3 비트열 덧셈기
KR100965813B1 (ko) * 2007-12-28 2010-06-24 경원대학교 산학협력단 유비쿼터스 환경에서 안전한 메시지 전송을 위한타원곡선기반의 rfid 암호 방법
KR102272862B1 (ko) * 2017-04-27 2021-07-05 한국전자통신연구원 소수체 나눗셈 연산 장치 및 그 방법
CN109710212B (zh) * 2018-12-07 2023-05-16 深圳职业技术学院 一种基于心动模型的复合有限域求逆装置
CN115062565B (zh) * 2022-06-22 2024-01-05 北京理工大学 一种低时延椭圆曲线点乘电路设计方法

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5982895A (en) * 1997-12-24 1999-11-09 Motorola, Inc. Finite field inverse circuit for use in an elliptic curve processor
KR20000026250A (en) * 1998-10-19 2000-05-15 Samsung Electronics Co Ltd Method and apparatus for operating finite field
JP2000353077A (ja) * 1999-04-07 2000-12-19 Matsushita Electric Ind Co Ltd 多倍長演算装置
KR20020079144A (ko) * 2001-04-13 2002-10-19 한국전자통신연구원 다항식 기저에서 유한체 승산 장치 및 그 방법
KR20020086005A (ko) * 2001-05-10 2002-11-18 학교법인 정석학원 타원곡선 암호 시스템을 위한 역원 연산기

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5982895A (en) * 1997-12-24 1999-11-09 Motorola, Inc. Finite field inverse circuit for use in an elliptic curve processor
KR20000026250A (en) * 1998-10-19 2000-05-15 Samsung Electronics Co Ltd Method and apparatus for operating finite field
JP2000353077A (ja) * 1999-04-07 2000-12-19 Matsushita Electric Ind Co Ltd 多倍長演算装置
KR20020079144A (ko) * 2001-04-13 2002-10-19 한국전자통신연구원 다항식 기저에서 유한체 승산 장치 및 그 방법
KR20020086005A (ko) * 2001-05-10 2002-11-18 학교법인 정석학원 타원곡선 암호 시스템을 위한 역원 연산기

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100606435B1 (ko) 2005-02-04 2006-08-01 고려대학교 산학협력단 유한체에서의 역원 연산 장치 및 방법

Also Published As

Publication number Publication date
KR20020094256A (ko) 2002-12-18

Similar Documents

Publication Publication Date Title
US7277540B1 (en) Arithmetic method and apparatus and crypto processing apparatus for performing multiple types of cryptography
US6876745B1 (en) Method and apparatus for elliptic curve cryptography and recording medium therefore
Mamiya et al. Efficient countermeasures against RPA, DPA, and SPA
CN107040362B (zh) 模乘设备和方法
JP3950638B2 (ja) 耐タンパーモジュラ演算処理方法
Daly et al. An FPGA implementation of a GF (p) ALU for encryption processors
US20150339102A1 (en) Cryptography Method Comprising an Operation of Multiplication by a Scalar or an Exponentiation
Sasdrich et al. Implementing Curve25519 for side-channel--protected elliptic curve cryptography
WO2000005645A1 (en) Circuit and method of modulo multiplication
JP5182364B2 (ja) サイドチャネル攻撃に対する耐タンパ性を有する暗号処理方法
KR100442218B1 (ko) 몽고메리의 알고리즘을 이용한 멱승 잉여 연산기
Karakoyunlu et al. Efficient and side-channel-aware implementations of elliptic curve cryptosystems over prime fields
KR100416291B1 (ko) 타원곡선암호화의 유한체 역원과 승산 장치 및 그 방법
Großschädl A bit-serial unified multiplier architecture for finite fields GF (p) and GF (2 m)
EP1068565B1 (en) Acceleration and security enhancements for elliptic curve and rsa coprocessors
EP1687930A1 (en) Randomized modular reduction method and hardware therefor
US10057064B2 (en) Computational method, computational device and computer software product for montgomery domain
Jung et al. A reconfigurable coprocessor for finite field multiplication in GF (2n)
Telle et al. Customising hardware designs for elliptic curve cryptography
JP2001034167A (ja) 演算装置及び暗号処理装置
JP2000207387A (ja) 演算装置及び暗号処理装置
JP2004125891A (ja) べき乗剰余演算器
JP3904421B2 (ja) 剰余乗算演算装置
Ibrahim et al. New and improved word-based unified and scalable architecture for radix 2 Montgomery modular multiplication algorithm
JP3779479B2 (ja) Icカード

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20080108

Year of fee payment: 5

LAPS Lapse due to unpaid annual fee