KR100377185B1 - 암호시스템의 연산속도 개선 방법 - Google Patents

암호시스템의 연산속도 개선 방법 Download PDF

Info

Publication number
KR100377185B1
KR100377185B1 KR10-1999-0059757A KR19990059757A KR100377185B1 KR 100377185 B1 KR100377185 B1 KR 100377185B1 KR 19990059757 A KR19990059757 A KR 19990059757A KR 100377185 B1 KR100377185 B1 KR 100377185B1
Authority
KR
South Korea
Prior art keywords
elliptic curve
constant
point
coefficients
constant multiple
Prior art date
Application number
KR10-1999-0059757A
Other languages
English (en)
Other versions
KR20010062971A (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-1999-0059757A priority Critical patent/KR100377185B1/ko
Publication of KR20010062971A publication Critical patent/KR20010062971A/ko
Application granted granted Critical
Publication of KR100377185B1 publication Critical patent/KR100377185B1/ko

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/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
    • 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

Landscapes

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

Abstract

본 발명은 암호시스템의 연산속도 개선 방법과, 상기 방법을 실현시키기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록매체에 관한 것으로, 유한체의 위수 및 정수를 입력하는 제 1 단계; 타원곡선 위의 임의의 한 점에 대한 윈도우 크기에 따른 상수배를 연산하는 제 2 단계; 상기 타원곡선 위의 임의의 한 점에 대한 윈도우 크기에 따른 상수배 연산결과를 이용하여 프로비니어스 사상 및 각 프로비니어스 사상의 계수를 연산하는 제 3 단계; 상기 각 프로비니어스 사상의 계수 및 타원곡선 위의 임의의 한 점에 대한 상수배 연산결과를 이용하여 프로비니어스 사상 및 타원곡선상의 점의 상수배를 연산하는 제 4 단계; 및 상기 타원곡선상의 점의 상수배 연산결과를 출력하는 제 5 단계를 수행한다.

Description

암호시스템의 연산속도 개선 방법{METHOD FOR IMPROVING OPERATION SPEED IN CRYPTOGRAPHY}
본 발명은 암호시스템의 연산방법에 관한 것으로, 특히 타원곡선 암호시스템 구현시 최적 확장체(optimal extension field)위에서 정의된 타원곡선군 원소의 상수배 연산을 프로비니어스 사상을 이용하여 그 연산속도를 향상시킬 수 있는 함소시스템의 연산속도 개선 방법과 상기 방법을 실현시키기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록매체에 관한 것이다.
일반적으로 타원곡선(ellipic curves)은 암호시스템에서 주로 사용되고 있으며, 타원곡선 암호시스템은 비트당 안전도가 다른 공개키 시스템보다 효율적이기 때문에 널리 사용되고 있다.
일반적인 타원곡선에 사용하는 종래의 타원곡선에서의 상수배 연산방법은, 주어진 상수의 2진 수열의 비트수가 n이라고 할 때, 특수한 형태의 타원곡선을 사용하는 경우에는 최대 n번의 타원곡선 덧셈 연산이 필요한 방법과 이를 개선하여 최대 n/2번의 타원곡선 덧셈 연산이 필요한 방법이 있다.
일반적인 타원곡선에 사용하는 상수배 연산의 경우에 기본적으로 이진방법(binary method)를 사용하는데, 상기 이진방법을 사용할 경우 최대 2n번의 연산이 필요하다. 상기 이진방법을 개선한 덧셈-뺄셈(addition-subtraction)방법을 사용할 경우, 최대 3n/2번의 타원곡선 덧셈 연산이 필요하다.
메모리를 이용하는 경우에는, 필요한 타원곡선 덧셈 연산 횟수를 줄일 수 있으나, 필요한 타원곡선 덧셈 연산의 개수를 n개 이하로 줄일 수 없는 문제가 있으며, 원소의 개수가 2인 유한체 GF(2)위에 정의되는 특수한 2개의 타원곡선에만 적용되므로, 다양한 타원곡선에 적용할 수 없는 문제가 있다.
따라서, 상기와 같은 문제점을 해결하기 위해 안출된 본 발명은, 주어진 상수의 2진 수열 비트수의 2분의 1보다 작은 수의 타원곡선 연산으로 상수배 연산을 수행할 수 있는 암호시스템의 연산속도 개선 방법과, 상기 방법을 실현시키기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록매체를 제공하는데 그 목적이 있다.
도1은 본 발명이 적용되는 암호시스템 연산장치의 구성 예시도.
도2는 본 발명에 따른 암호시스템의 연산속도 개선 방법에 대한 일실시예 처리흐름을 나타낸 개략도.
도3은 상기 도2의 연산속도 개선 방법에 대한 일실시예 상세 흐름도.
상기 목적을 달성하기 위한 본 발명에 따른 암호시스템의 연산속도 개선 방법은, 유한체의 위수 및 정수를 입력하는 제 1 단계; 타원곡선 위의 임의의 한 점에 대한 윈도우 크기에 따른 상수배를 연산하는 제 2 단계; 상기 타원곡선 위의 임의의 한 점에 대한 윈도우 크기에 따른 상수배 연산결과를 이용하여 프로비니어스 사상 및 각 프로비니어스 사상의 계수를 연산하는 제 3 단계; 상기 각 프로비니어스 사상의 계수 및 타원곡선 위의 임의의 한 점에 대한 상수배 연산결과를 이용하여 프로비니어스 사상 및 타원곡선상의 점의 상수배를 연산하는 제 4 단계; 및 상기 타원곡선상의 점의 상수배 연산결과를 출력하는 제 5 단계를 포함한다.
또한, 본 발명은, 프로세서를 구비한, 암호시스템의 연산장치에, 유한체의 위수 및 정수를 입력하는 제 1 기능; 타원곡선 위의 임의의 한 점에 대한 윈도우 크기에 따른 상수배를 연산하는 제 2 기능; 상기 타원곡선 위의 임의의 한 점에 대한 윈도우 크기에 따른 상수배 연산결과를 이용하여 프로비니어스 사상 및 각 프로비니어스 사상의 계수를 연산하는 제 3 기능; 상기 각 프로비니어스 사상의 계수 및 타원곡선 위의 임의의 한 점에 대한 상수배 연산결과를 이용하여 프로비니어스 사상 및 타원곡선상의 점의 상수배를 연산하는 제 4 기능; 및 상기 타원곡선상의 점의 상수배 연산결과를 출력하는 제 5 기능을 실현시키기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록매체를 제공한다.
상술한 목적, 특징들 및 장점은 첨부된 도면과 관련한 다음의 상세한 설명을 통하여 보다 분명해 질 것이다. 이하, 첨부된 도면을 참조하여 본 발명에 따른 바람직한 일실시예를 상세히 설명한다.
도1은 본 발명이 적용되는 암호시스템 연산장치의 구성 예시도이다.
도1에 도시된 바와 같이, 본 발명이 적용되는 암호시스템 연산장치는, 전체적인 동작을 제어하고 관리하는 중앙처리장치(11)와, 상기 중앙처리장치(11)에서 수행되는 프로그램을 저장하고 작업 수행중 이용되는 또는 작업 수행중에 발생되는 각종 데이터를 저장하는 주기억장치(12)와 보조기억장치(13) 및 사용자와의 데이터 입출력을 위한 입출력장치(14,15)를 포함한다.
그리고, 상기 보조기억장치(13)는 대량의 데이터를 저장하는 역할을 하며, 상기 입출력장치(14,15)는 일반적인 키보드, 디스플레이 장치 및 프린터 등을 포함한다.
그러나, 상기한 바와 같은 구성을 갖는 컴퓨터 하드웨어 환경을 당해 분야에서 이미 주지된 기술에 지나지 아니하므로 여기에서는 그에 관한 자세한 설명은 생략하기로 한다.
이제, 상기 주기억장치(11)에 탑재되어 타원곡선 위에서의 상수배를 수행하는 과정에 대해 보다 상세히 설명한다.
도2는 본 발명에 따른 암호시스템의 연산속도 개선 방법에 대한 일실시예 처리흐름을 나타낸 개략도이다.
도2에 도시된 바와 같이, 본 발명에 따른 암호시스템의 연산속도 개선 방법은, 유한체의 위수 및 정수를 입력하고(100), 임의의 점에 대한 윈도우 크기에 따른 상수배 연산을 수행한 후(102), 상기 상수배 연산결과를 이용하여 프로비니어스사상 및 각 프로비니어스 사상의 계수를 구한다(104).
그리고, 프로비니어스 사상을 이용한 타원곡선 상의 점의 상수배 연산을 수행하고(106), 타원곡선 상의 점의 상수배 연산결과를 출력한다(105).
본 발명에서, 입력은 정수 q, 타원곡선 E, 정수 m, E(GF(qn))의 원소 P, 타원곡선군 E(GF(q))의 위수 N1및 타원곡선군 E(GF(qn)의 위수 Nn이고, 출력은 타원곡선위의 한 점인 mP이다. 상기 q와 E가 주어졌을 때, N1은 공지의 "Schoof" 알고리즘에 의해 구할 수 있으며, Nn은 N1으로부터 계산된다.
본 발명에서 E(GF(qn))의 임의의 점은 GF(qn)의 두 원소의 순서쌍으로 구성되며, 각 원소들은 다항식 기저를 사용하여 표시된다. E(GF(qn))의 임의의 두 점을 더하는 연산은 타원곡선 E의 방정식의 계수들을 이용하여 타원곡선 덧셈 연산으로 수행한다.
도3을 참조하여, 상기 도2의 연산시스템의 연산속도 개선 방법을 더 상세히 설명하면 다음과 같다.
우선, 유한체의 위수 q, 정수 m, N1, Nn을 입력하고(200), 타원곡선 위의 임의의 한 점 P에 대한 윈도우 크기에 따른 상수배 연산을 위해 P, 3P, 5P, ... , (2w-1)P를 계산한다(202). 여기서, 윗첨자 w는 사용하고자 하는 윈도우의 크기이다.
다음으로, 프로비니어스 사상 및 각 프로비니어스 사상의 계수를 연산하기위해 상기 타원곡선 위의 임의의 한 점 P에 대한 상수배 연산 결과에 프로비니어스 사상을 n-1번 수행하고(204), 그 중간결과를 테이블에 저장한다. 여기서, 프로비니어스 사상을 구하는 방법은 공지의 "Kobayashi" 방법을 이용한다.
상기 프로비니어스 사상에 의한 전개를 수행하여 각 상수배의 계수 즉, c0, c1, c2, ..., cn-1를 계산하고, 타원곡선 위에서의 상수배 값 Q와 i의 초기값을 0으로 설정한다(206).
여기서, 타원곡선 E가 GF(q)위에서 정의되는 타원곡선이라 할 때, E(GF(qn)) 위의 프로비니어스 사상 φ는 다음 「수학식1」과 같이 정의한다.
(xq,yq)
상기 「수학식1」에서 φ2- tφ+ q = 0 (단, t는 φ의 자취)라는 사실을 이용하면, 임의의 정수 m은 다음 「수학식2」와 같은 프로비니어스 사상의 다항식으로 대치할 수 있다.
그리고, 상기 「수학식2」를 이용하여 타원곡선상의 점의 상수배 연산을 수행하기 위하여, Q(i)=0, j=0으로 설정하고(206), Q(i,j)=ciji로 설정한다(208). 여기서, ciji는 상기 204단계에서 구한 테이블에 저장되어 있으며, cij는 ci의 j번째 윈도우를 나타낸다. 이때, 상기 cij를 결정하는 방법으로 슬라이딩 윈도우 기법을 사용한다.
이어서, Q(i)=Q(i)+Q(i,j)를 수행하고(212), Q(i)=2wQ(i)를 수행한 (214)후, cij가 마지막 윈도우가 아니고, 연결된 비트열이 0일동안 Q(i)=2Q(i)를 수행한다(216, 220).
만일, cij가 ci의 마지막 윈도우가 아니면, j를 증가시킨 후, 상기 212단계를 진행한다(218, 222).
그리고, i가 n-1와 같은가를 판단한다(224).
상기 판단결과(224), i가 n-1보다 크거나 작을 경우, Q=Q+Q(i) 및 i를 증가시킨 후(228), 상기 208단계를 수행한다.
마지막으로, 타원곡선상의 점의 상수배 결과 Q를 출력한다(226).
이상에서 설명한 본 발명은, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에 있어 본 발명의 기술적 사상을 벗어나지 않는 범위 내에서 여러 가지 치환, 변형 및 변경이 가능하므로 전술한 실시예 및 첨부된 도면에 한정되는 것이 아니다.
상기와 같은 본 발명은, 프로비니어스 사상 전개식의 연산에 슬라이딩 윈도우 기법을 활용한 타원곡선 위에서의 상수배 연산을 수행하므로써, 타원곡선 상수배 연산을 사용하는 타원곡선 암호시스템의 연산속도를 크게 개선할 수 있으며, 특히, 타원곡선 방정식의 계수가 큰 유한체에 속하는 경우 및 타원곡선의 최적 확장체를 활용할 경우에 타원곡선의 상수배 연산 효율을 현저하게 높일 수 있는 효과가 있다.

Claims (4)

  1. 암호시스템의 연산속도 개선 방법에 있어서,
    유한체의 위수 및 정수를 입력하는 제1단계;
    타원곡선 위의 임의의 한 점에 대한 윈도우 크기에 따른 상수배를 연산하는 제2단계;
    상기 타원곡선 위의 임의의 한 점에 대한 윈도우 크기에 따른 상수배 연산결과를 이용하여 프로비니어스 사상 및 각 프로비니어스 사상의 계수를 연산하는 제3단계;
    상기 각 프로비니어스 사상의 계수 및 타원곡선 위의 임의의 한 점에 대한 상수배 연산결과를 이용하여 프로비니어스 사상 및 타원곡선상의 점의 상수배를 연산하는 제4단계; 및
    상기 타원곡선상의 점의 상수배 연산결과를 출력하는 제5단계
    를 포함하는 암호시스템의 연산속도 개선 방법.
  2. 제1항에 있어서,
    상기 제3단계는,
    하기 「수학식」으로 정의되는 프로비니어스 사상 φ을 이용하여 상기 타원곡선 위의 임의의 한 점에 대한 상수배 연산결과를 이용하여 프로비니어스 사상을 수행하는 것
    을 특징으로 하는 암호시스템의 연산속도 개선 방법.
    [수학식 1]
    φ: (x,y)(xq,yq)
  3. 제1항 또는 제2항에 있어서,
    상기 제4단계는,
    타원곡선 위에서의 상수배 연산을 수행하기 위하여 프로비니어스 사상 전개식의 연산에 슬라이딩 윈도우 기법을 사용하는 것
    을 특징으로 하는 암호시스템의 연산속도 개선 방법.
  4. 암호시스템의 연산속도 개선을 위해, 프로세서를 구비한 암호시스템의 연산장치에,
    유한체의 위수 및 정수를 입력하는 제1기능;
    타원곡선 위의 임의의 한 점에 대한 윈도우 크기에 따른 상수배를 연산하는 제2기능;
    상기 타원곡선 위의 임의의 한 점에 대한 윈도우 크기에 따른 상수배 연산결과를 이용하여 프로비니어스 사상 및 각 프로비니어스 사상의 계수를 연산하는 제3기능;
    상기 각 프로비니어스 사상의 계수 및 타원곡선 위의 임의의 한 점에 대한 상수배 연산결과를 이용하여 프로비니어스 사상 및 타원곡선상의 점의 상수배를 연산하는 제4기능; 및
    상기 타원곡선상의 점의 상수배 연산결과를 출력하는 제5기능
    을 실현시키기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록매체.
KR10-1999-0059757A 1999-12-21 1999-12-21 암호시스템의 연산속도 개선 방법 KR100377185B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR10-1999-0059757A KR100377185B1 (ko) 1999-12-21 1999-12-21 암호시스템의 연산속도 개선 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR10-1999-0059757A KR100377185B1 (ko) 1999-12-21 1999-12-21 암호시스템의 연산속도 개선 방법

Publications (2)

Publication Number Publication Date
KR20010062971A KR20010062971A (ko) 2001-07-09
KR100377185B1 true KR100377185B1 (ko) 2003-03-28

Family

ID=19627588

Family Applications (1)

Application Number Title Priority Date Filing Date
KR10-1999-0059757A KR100377185B1 (ko) 1999-12-21 1999-12-21 암호시스템의 연산속도 개선 방법

Country Status (1)

Country Link
KR (1) KR100377185B1 (ko)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20030078350A (ko) * 2002-03-29 2003-10-08 박근수 타원 곡선 암호에서 단위원의 n-제곱근 함수를 이용한프로베니우스 전개 방법
KR100518687B1 (ko) * 2003-12-01 2005-10-05 한국전자통신연구원 합성수 차원을 가지는 유한체에서 정의된 타원곡선의상수배 연산 방법 및 그 프로그램을 기록한 컴퓨터로 읽을수 있는 기록매체

Also Published As

Publication number Publication date
KR20010062971A (ko) 2001-07-09

Similar Documents

Publication Publication Date Title
US8498411B1 (en) Using multiples above two with running totals and reference values other than 0 and 2 (window size) in elliptic curve cryptography scalar multiplication acceleration tables
US8422669B2 (en) Method and apparatus for elliptic curve cryptographic processing
JPWO2005015526A1 (ja) 楕円曲線暗号装置,楕円曲線暗号方法および楕円曲線暗号プログラム
JP6732959B2 (ja) 秘密計算方法、秘密計算システム、秘密計算装置、およびプログラム
CN101371285B (zh) 加密处理装置、加密处理方法
JP2006145945A (ja) 暗号処理演算方法、および暗号処理装置、並びにコンピュータ・プログラム
JP3794266B2 (ja) 楕円曲線スカラー倍計算方法及び装置並びに記憶媒体
CN101842824B (zh) 配对计算装置、配对计算方法
CN116527274B (zh) 基于多标量乘快速计算的椭圆曲线验签方法及系统
KR100377185B1 (ko) 암호시스템의 연산속도 개선 방법
US20030026419A1 (en) Elliptic curve encryption processing method, elliptic curve encryption processing apparatus, and program
KR101223498B1 (ko) 타원 곡선 암호 방식에서 공개키를 생성하는 방법 및 상기방법을 수행하는 시스템
Nath et al. Security and efficiency trade-offs for elliptic curve Diffie–Hellman at the 128-bit and 224-bit security levels
JP4621162B2 (ja) 有限可換群演算方法、装置およびそのプログラム
CN113467752B (zh) 用于隐私计算的除法运算装置、数据处理系统及方法
JP2004125891A (ja) べき乗剰余演算器
JP4599859B2 (ja) 暗号処理演算方法、および暗号処理装置、並びにコンピュータ・プログラム
Khabbazian et al. Double point compression with applications to speeding up random point multiplication
JP4202701B2 (ja) 多項式剰余系演算装置、方法及びプログラム
KR20200058249A (ko) 꼬인 에드워즈 곡선에 대한 3차 아이소제니 계산 방법
KR20020086005A (ko) 타원곡선 암호 시스템을 위한 역원 연산기
JP5168649B2 (ja) ペアリング演算装置、ペアリング演算方法、及びペアリング演算プログラム
JP4752176B2 (ja) 一方向性関数演算方法及び装置及びプログラム
US20080091754A1 (en) Reciprocal calculation unit and reciprocal calculation method
JP3884853B2 (ja) べき乗演算装置

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E601 Decision to refuse application
J201 Request for trial against refusal decision
AMND Amendment
B701 Decision to grant
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20090115

Year of fee payment: 7

LAPS Lapse due to unpaid annual fee