KR101233682B1 - 타원곡선암호를 위한 연산 장치 및 방법 - Google Patents

타원곡선암호를 위한 연산 장치 및 방법 Download PDF

Info

Publication number
KR101233682B1
KR101233682B1 KR1020100090249A KR20100090249A KR101233682B1 KR 101233682 B1 KR101233682 B1 KR 101233682B1 KR 1020100090249 A KR1020100090249 A KR 1020100090249A KR 20100090249 A KR20100090249 A KR 20100090249A KR 101233682 B1 KR101233682 B1 KR 101233682B1
Authority
KR
South Korea
Prior art keywords
elliptic curve
coordinate
scalar multiplication
value
coordinate axis
Prior art date
Application number
KR1020100090249A
Other languages
English (en)
Other versions
KR20120028432A (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 KR1020100090249A priority Critical patent/KR101233682B1/ko
Publication of KR20120028432A publication Critical patent/KR20120028432A/ko
Application granted granted Critical
Publication of KR101233682B1 publication Critical patent/KR101233682B1/ko

Links

Images

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
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • G06F17/10Complex mathematical operations

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • Algebra (AREA)
  • Data Mining & Analysis (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Computer Security & Cryptography (AREA)
  • Computational Mathematics (AREA)
  • Computing Systems (AREA)
  • Databases & Information Systems (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Storage Device Security (AREA)

Abstract

본 발명은 타원곡선을 이용한 암호를 위한 연산 장치 및 방법에 관한 것으로, 본 발명에 따른 타원곡선암호를 위한 연산 방법은 좌표 공간 중 하나의 좌표축만을 사용하여 타원곡선상의 점에 대한 스칼라 곱셈을 설정하고, 설정된 스칼라 곱셈을 제곱 형태로 변환하고, 변환된 제곱 형태의 스칼라 곱셈을 투영 좌표의 형태로 변환하며, 변환된 투영 좌표 형태의 스칼라 곱셈을 이용하여 하나의 좌표축에 대한 좌표값을 산출한다.

Description

타원곡선암호를 위한 연산 장치 및 방법{Calculating apparatus and method for elliptic curve cryptography}
본 발명은 타원곡선을 이용한 암호를 위한 연산 장치 및 방법에 관한 것으로, 특히 타원곡선암호를 위해 타원곡선상에서 표현되는 점들에 대한 기하학적인 연산인 스칼라 곱셈을 처리하는 연산 장치, 방법 및 이를 기록한 기록매체에 관한 것이다.
암호학은 정보를 보호하기 위한 언어학적 및 수학적 방법론을 다루는 학문으로 수학을 중심으로 컴퓨터 및 통신 등 여러 학분 분야에서 공동으로 연구, 개발되고 있다. 통상적인 암호 시스템에서 송신자가 메시지의 의미를 알 수 있는 평문을 암호화하여 송신하게 되면, 수신자는 수신된 암호문을 다시 복호화하여 평문으로 복원하게 된다. 이러한 암호화 및 복호화 과정에서 사용되는 일정한 규칙 내지 방법을 암호화 키(key)라고 한다.
키는 암호화 과정에서 사용되는 암호키와 복호화 과정에서 사용되는 복호키가 동일한 대칭 암호키(symmetric cipher key)와 암호키와 복호키가 다른 비대칭 암호키(asymmetric cipher key)로 구분될 수 있다. 암호 시스템의 안전성은 키의 길이 및 키의 안전한 관리에 의존하는데, 대칭 암호키 시스템에서는 암호키와 복호키가 동일하기 때문에 암호문의 작성자와 그 수신자가 키의 관리에 보다 주의하여야 할 필요가 있다. 즉, 대칭 암호키 시스템은 암호문의 작성자(송신자)와 수신자 모두가 폐쇄적인 사용자 그룹에 속하여 있는 것이 바람직하다. 그러나, 이러한 대칭 암호키 시스템은 키의 보안 유지에 어려움이 있을 뿐만 아니라, 해당 시스템 그룹에 속하는 사용자가 증가할수록 관리하여야 할 키의 개수가 급격하게 증가하게 된다는 불편함이 존재한다.
이러한 한계를 보완하기 위해 등장한 암호 시스템이 비대칭 암호 시스템이다. 비대칭 암호 시스템에서 각 사용자는 두 개의 키를 부여받는다. 두 개의 키 중 하나(공개키, public key)는 공개되고, 다른 하나(비밀키, private key)는 사용자에 의해 비밀리에 관리되어야 한다. 따라서, 비대칭 암호 시스템은 공개키 암호 시스템이라고도 한다. 이러한 비대칭 암호 시스템은 암호키와 복호키가 서로 다르기 때문에 양자의 수학적 특성에 기반하여 암호화 및 복호화 과정에서 여러 단계의 산술 연산을 수행하게 된다. 그로 인해 비대칭 암호 시스템은 대칭 암호키 시스템에 비해 그 수행 속도가 상대적으로 느리다는 약점을 갖는다.
본 발명이 해결하고자 하는 기술적 과제는 비대칭 암호 시스템에서 암호화 및 복호화 과정에 많은 연산이 필요함으로 인해 그 수행 속도가 느려지는 한계를 극복하고, 더불어 암호화 및 복호화를 위해 많은 시스템 자원이 소모됨으로써 암호화 및 복호화 시스템의 구현 환경이 제약받는 문제점을 해결하는데 있다.
상기 기술적 과제를 해결하기 위하여, 본 발명에 따른 타원곡선암호를 위한 연산 방법은 타원곡선상의 점을 표현하는 좌표 공간 중 제 1 좌표축만을 사용하여 상기 점에 대한 스칼라 곱셈(scalar multiplication)을 설정하는 단계; 상기 설정된 스칼라 곱셈을 제곱 형태(square form)로 변환하는 단계; 상기 제곱 형태의 스칼라 곱셈을 투영 좌표(projective coordinate)의 형태로 변환하는 단계; 및 상기 투영 좌표 형태의 스칼라 곱셈을 이용하여 상기 제 1 좌표축에 대한 좌표값을 산출하는 단계를 포함한다.
상기 기술적 과제를 해결하기 위하여, 본 발명에 따른 타원곡선암호를 위한 연산 방법은 제 1 좌표축에 대한 투영 좌표 형태의 스칼라 곱셈으로부터 좌표 공간상의 제 2 좌표축에 대한 좌표값을 산출하는 단계를 더 포함한다.
상기 다른 기술적 과제를 해결하기 위하여, 본 발명에 따른 타원곡선암호를 위한 연산 방법은 비밀키를 입력받는 단계; 타원곡선상의 점을 표현하는 좌표 공간 중 제 1 좌표축만을 사용하여 상기 점에 대한 스칼라 곱셈을 설정하는 단계; 상기 설정된 스칼라 곱셈을 제곱 형태로 변환하고, 상기 변환된 제곱 형태의 스칼라 곱셈을 투영 좌표의 형태로 변환하며, 상기 변환된 투영 좌표 형태의 스칼라 곱셈을 이용하여 상기 제 1 좌표축에 대한 좌표값을 산출하는 단계; 상기 제 1 좌표축에 대한 투영 좌표 형태의 스칼라 곱셈으로부터 상기 좌표 공간상의 제 2 좌표축에 대한 좌표값을 산출하는 단계; 및 상기 입력받은 비밀키를 이용하여 상기 제 1 좌표축 및 제 2 좌표축에 대한 좌표값으로부터 공개키를 생성하는 단계를 포함한다. 또한, 상기 타원곡선암호를 위한 연산 방법은 생성된 공개키를 이용하여 암호화한 암호문을 수신하는 단계; 및 상기 비밀키를 이용하여 상기 수신된 암호문으로부터 평문을 복호화하는 단계를 더 포함할 수 있다.
상기 또 다른 기술적 과제를 해결하기 위하여, 본 발명에 따른 타원곡선암호를 위한 연산 방법은 소정 연산 방법을 이용하여 생성된 공개키를 수신하는 단계; 및 상기 수신된 공개키를 이용하여 평문으로부터 암호문을 생성하는 단계를 포함하고, 상기 소정 연산 방법은, 타원곡선상의 점을 표현하는 좌표 공간 중 제 1 좌표축만을 사용하여 상기 점에 대한 스칼라 곱셈을 설정하고, 상기 설정된 스칼라 곱셈을 제곱 형태로 변환하고, 상기 변환된 제곱 형태의 스칼라 곱셈을 투영 좌표의 형태로 변환하고, 상기 변환된 투영 좌표 형태의 스칼라 곱셈을 이용하여 상기 제 1 좌표축에 대한 좌표값을 산출하고, 상기 제 1 좌표축에 대한 투영 좌표 형태의 스칼라 곱셈으로부터 상기 좌표 공간상의 제 2 좌표축에 대한 좌표값을 산출하며, 상기 입력받은 비밀키를 이용하여 상기 제 1 좌표축 및 제 2 좌표축에 대한 좌표값으로부터 공개키를 생성하는 것이 바람직하다.
또한, 이하에서는 상기 기재된 타원곡선암호를 위한 연산 방법을 컴퓨터에서 실행시키기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록매체를 제공한다.
상기 기술적 과제를 해결하기 위하여, 본 발명에 따른 타원곡선암호를 위한 연산 장치는 타원곡선상의 점을 표현하는 좌표값을 입력받는 입력부; 소정 연산 방법을 이용하여 상기 입력받은 좌표값으로부터 상기 타원곡선에 대한 스칼라 곱셈 결과값을 산출하는 연산부; 및 상기 산출된 스칼라 곱셈 결과값을 출력하는 출력부를 포함하고, 상기 소정 연산 방법은, 상기 타원곡선상의 점을 표현하는 좌표 공간 중 제 1 좌표축만을 사용하여 상기 점에 대한 스칼라 곱셈을 설정하고, 상기 설정된 스칼라 곱셈을 제곱 형태로 변환하고, 상기 제곱 형태의 스칼라 곱셈을 투영 좌표의 형태로 변환하며, 상기 투영 좌표 형태의 스칼라 곱셈을 이용하여 상기 제 1 좌표축에 대한 좌표값을 산출하는 것이 바람직하다.
본 발명은 변환된 스칼라 곱셈을 이용하여 타원곡선상의 점에 대한 좌표값을 산출함으로써 비대칭 암호 시스템의 암호화 및 복호화 과정에 상대적으로 적은 수의 연산이 필요하게 되고, 그로 인해 그 수행 속도가 향상되며, 더불어 암호화 및 복호화를 위해 요구되는 시스템 자원을 감소시킴으로써, 스마트 카드(smart cards)와 같이 보다 열약한 컴퓨팅 파워를 갖는 환경에서도 효과적이고 신뢰도 높은 암호화 및 복호화 시스템을 구현할 수 있다.
도 1은 공개키 암호 시스템에서 평문을 암호화하고 이를 다시 복호화하는 과정을 설명하기 위한 도면이다.
도 2는 타원곡선암호의 알고리즘을 설명하기 위해 예시한 몽고메리 래더 알고리즘(Montgomery ladder algorithm)의 의사 코드(pseudo code)이다.
도 3은 본 발명의 일 실시예에 따른 타원곡선암호를 위한 연산 방법을 도시한 흐름도이다.
도 4는 본 발명의 일 실시예에 따른 타원곡선암호를 위한 연산 방법에서 제 1 좌표축에 대한 투영 좌표 형태의 스칼라 곱셈으로부터 제 2 좌표축에 대한 좌표값을 복원하는 방법을 설명하기 위한 도면이다.
도 5는 본 발명의 일 실시예에 따른 타원곡선암호를 위한 연산 방법을 설명하기 위한 알고리즘을 예시한 의사 코드이다.
도 6은 본 발명의 다른 실시예에 따른 타원곡선암호를 위한 연산 방법에 대해 각각 암호문 송신자 및 암호문 수신자 측의 처리 과정을 설명하기 위한 도면이다.
도 7은 본 발명의 일 실시예에 따른 타원곡선암호를 위한 연산 장치를 도시한 도면이다.
본 발명의 실시예들을 구체적으로 설명하기에 앞서, 본 발명의 실시예들이 구현될 수 있는 대표적인 환경인 공개키 암호 시스템에 대해 도 1을 참조하여 개괄적으로 소개하고자 한다. 도 1은 공개키 암호 시스템에서 평문을 암호화하고 이를 다시 복호화하는 과정을 설명하기 위한 도면으로서, 공개키 암호 시스템은 암호화 측을 나타내는 송신자(10), 복호화 측을 나타내는 수신자(20) 및 공개키 관리 시스템(30)을 포함한다.
앞서 간단히 소개하였듯이, 공개키 암호 시스템에서 각 사용자는 비밀키(41) 및 공개키(42)의 두 개의 키를 부여받는다. 공개키 암호 시스템에서 각 사용자는 자신의 비밀키만을 관리하면 되므로 키 관리의 어려움을 감소시킬 수 있다. 여기서, 키 교환시에는 공개키를 암호화키로 사용하여 일반에게 공개하게 되고, 비밀키를 이용하여 복호화한다고 가정하자. 통상적으로 공개키 암호 시스템은 상기된 바와 같은 구조를 갖는 것이 일반적이나, 전자서명시에는 반대로 이용될 수도 있다. 이하에서 도 1의 실시예에서는 수신자(20)를 기준으로 공개키와 비밀키를 설명하도록 하겠다.
공개키 관리 시스템(30)은 공개키 디렉터리라고도 불리며, 공개키 암호 시스템을 이용하는 사용자는 이러한 관리 시스템(30)에 자유롭게 접근하여 다른 사용자의 공개키를 열람할 수 있다. 한편, 공개키 관리 시스템(30)의 물리적인 위치는 구현의 편의에 따라 송신자(10)나 수신자(20) 측에 위치할 수도 있고, 도 1에 도시된 바와 같이 별도의 공간에 위치할 수도 있다. 도 1에서 공개키 관리 시스템(30)에는 다수의 공개키들이 저장될 수 있으며, 수신자(20)의 비밀키(41)에 대응하는 공개키(42) 역시 저장되어 있음을 볼 수 있다.
우선, 송신자(10)는 공개키 관리 시스템(30)에 접근하여 수신자(20)의 공개키(42)를 이용하여 평문을 암호화함으로써 암호문을 생성한다. 이렇게 생성된 암호문은 수신자(20)에게 전달된다. 다음으로 수신자(20)는 수신한 암호문을 자신의 비밀키(41)를 이용하여 복호화한다. 즉, 수신자(20)는 암호문을 해독하여 평문을 복원한다.
이상의 암호 시스템의 구조에서 비록 공개키 관리 시스템(30)에는 다양한 사용자의 공개키들이 저장되어 있고, 이를 이용하여 누구나 자유롭게 암호문을 생성할 수 있지만, 생성된 암호문을 평문으로 복호화할 수 있는 것은 해당 암호화 과정에 사용된 공개키에 대응하는 비밀키를 소유한 사용자만이 가능하다. 예를 들어, 도 1의 예에서 수신자(20) 이외의 제 3자가 송신자(10)가 생성한 암호문을 중간에서 가로채더라도 수신자(20) 고유의 비밀키가 없는 이상 암호문을 복호화할 수 없다.
이상과 같이 공개키 암호 시스템에서 각 사용자에게 부여되는 공개키와 비밀키에는 수학적 연관이 있기 때문에 암호화 및 복화화가 가능하다. 즉, 공개키 암호 방식은 그 설계자만이 알고 있는 특정한 종류의 정보 없이는 매우 풀기 어려운 수학적 문제를 바탕으로 만들어진다. 키를 만드는 사람은 이 문제(공개키)를 일반에 공개하고 특정한 정보(비밀키)는 자신만이 알 수 있도록 숨긴다. 그러면 어떤 사람이건 이 문제를 이용해 메시지를 암호화하더라도 키를 만든 사람만이 이 문제를 풀어 원래의 메시지를 해독할 수 있다.
본 발명의 실시예들은 이러한 공개키 암호 시스템에 기반하면서도 특히 이러한 수학적 문제에 타원곡선암호라는 방식을 채용하고 있다. 타원곡선암호(Elliptic Curve Cryptography, ECC)는 타원곡선 이론에 기반한 공개키 암호 방식의 일종으로, 유한체(finite field)에서 해법이 어렵다고 알려진 타원곡선 이산로그문제(Elliptic Curve Discrete Logarithm Problem, ECDLP)를 바탕으로 만들어진 암호이다. 타원곡선 이산로그문제는 타원곡선상의 임의의 한 점 P에 정수 k를 곱한 값이 Q=kP일 때, 점 Q와 P를 알고 있더라도 정수 k를 계산하기 어려움을 의미한다. 따라서, 타원곡선암호 시스템의 핵심 연산은 스칼라 곱셈(scalar multiplication), 즉 Q=kP를 구하는 것이며, 이러한 스칼라 곱셈은 타원곡선암호 시스템의 안전성과 효율성에 가장 큰 영향을 준다.
공간 상에서 타원곡선은 (x, y)의 점들로 구성되어지고, x 및 y 좌표간의 관계로 표현된 타원곡선의 형태를 갖는다. 스칼라 곱셈을 연산은 동일한 두 점의 합을 구하는 더블링(doubling) 연산과 서로 다른 두 점의 합을 구하는 애디션(addition) 연산을 반복적으로 이용함으로써 연산이 수행된다. 그런데, 타원곡선 스칼라 곱셈에 사용되는 타원곡선 더블링(ECDBL) 연산과 타원곡선 애디션(ECADD) 연산은 키 비트(key bit)에 따라 실행되는 연산에 차이가 생기기 때문에 단순전력분석(Simple Power Analysis, SPA)에 의해 분석이 많이 진행되었다.
타원곡선 스칼라 곱셈 알고리즘에 대한 단순전력분석이 진행되면서 이를 방어하기 위한 많은 대응방법들이 제안되었다. 이러한 대응방법들 중, 몽고메리 알고리즘(Montgomery algorithm)은 몽고메리에 의해서 처음으로 제안된 알고리즘으로 몽고메리 폼(Montgomery form) 상에서의 스칼라 곱셈 연산을 x 좌표만을 사용하여 연산함으로서 연산을 빠르게 할 수 있는 방법이다. 그 이후, Lopez and Dahab과 Izu and Takagi등에 의해서 일반적인 바이어슈트라스 폼(Weierstrass form)에서의 x 좌표만을 이용한 몽고메리 래더 알고리즘(Montgomery ladder algorithm)의 연산식이 제안되었다. 몽고메리 래더 알고리즘은 x 좌표만을 사용함으로써 타원곡선에서의 스칼라 곱셈을 빠르고 효율적으로 할 수 있고, 포인트(point) 압축면에서도 매우 효율적인 방법으로 알려져 있다.
도 2는 타원곡선암호의 알고리즘을 설명하기 위해 예시한 몽고메리 래더 알고리즘의 의사 코드(pseudo code)로서, 다음과 같은 단계로 수행된다.
우선 입력 값으로 타원곡선상의 한 점 P와 상수(스칼라를 의미한다.) d를 입력받는다. 도 2의 몽고메리 래더 알고리즘은 매 루프(loop)마다 타원곡선 더블링(ECDBL) 연산과 타원곡선 애디션(ECADD) 연산이 반복적으로 수행된다. 따라서, 몽고메리 래더 알고리즘은 스칼라 곱셈의 매 루프마다 동일한 연산을 수행하므로 단순전력분석에 안전할 수 있다. 이러한 몽고메리 래더 알고리즘은 바이어슈트라스 폼에서 점 P, Q와 P-Q 세 점의 X 좌표만을 이용하여 P+Q의 x 좌표를 구할 수 있다는 특징이 있다.
그러나, 이러한 타원곡선 스칼라 곱셈을 위해 이상에서 제안된 다양한 방법들 역시 많은 연산이 필요함으로 인해 수행 속도가 느려지고, 과도한 시스템 자원을 요구한다는 문제점이 여전히 내재되어 있다. 따라서, 본 발명의 실시예들은 스칼라 연산에 필요한 연산 수와 각각의 연산에 요구되는 자원을 줄일 수 있는 방법을 제안하고자 한다. 이하에서 도면을 참조하여 본 발명의 다양한 실시예들을 상세하게 설명한다.
도 3은 본 발명의 일 실시예에 따른 타원곡선암호를 위한 연산 방법을 도시한 흐름도이다. 설명의 편의를 위해 이하의 본 발명의 실시예들은 타원곡선 함수로서 자코비 4차 형태(Jacobi quartic form)의 타원곡선을 예시하고 있다. 자코비 4차 형태의 타원곡선은 x의 차수가 4차인 다음의 수학식 1과 같이 표현될 수 있으며, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자는 이러한 자코비 4차 타원곡선 이외에 이에 상응하는 다양한 타원곡선이 본 발명의 기술적 사상을 구현하는데 활용될 수 있음을 알 수 있다.
Figure 112010059827051-pat00001
즉,
Figure 112010059827051-pat00002
이고 소수 p를 선택하였다고 가정하면, 유한체 Fp 상의 자코비 4차 타원곡선은 상기된 수학식 1과 같이 정의될 수 있다. 이 타원곡선 위의 점
Figure 112010059827051-pat00003
,
Figure 112010059827051-pat00004
Figure 112010059827051-pat00005
과 두 점의 차가 다음의 수학식 2와 같이 유지되면 이하에서 소개될 수학식 3 내지 수학식 5를 만족한다.
Figure 112010059827051-pat00006
특히 수학식 2는 몽고메리 래더 알고리즘에 관한 도 2의 알고리즘 역시 만족하는 것을 나타내고 있으며, 매 루프(loop)마다 두 개의 점의 차는 일정한 값 P를 유지한다.
이상의 내용에 기초하여 도 3을 순서대로 설명하면 다음과 같다.
310 단계에서 타원곡선상의 점을 표현하는 좌표 공간 중 제 1 좌표축만을 사용하여 상기 점에 대한 스칼라 곱셈을 설정한다. 본 발명의 실시예에서는 자코비 4차 타원곡선에서 몽고메리 래더 알고리즘을 적용함에 있어서, x2 좌표만을 이용하여 스칼라 곱셈 연산을 수행한다. 즉, (x, y)의 2차원 좌표 공간에서 하나의 좌표축인 x 좌표축의 좌표값만을 이용하게 된다.
보다 구체적으로 스칼라 곱셈에서 활용되는 애디션 연산과 더블링 연산은 각각 다음의 수학식 3과 같이 정의된다.
Figure 112010059827051-pat00007
320 단계에서는 310 단계를 통해 설정된 스칼라 곱셈을 제곱 형태(square form)로 변환한다. 즉, 상기 수학식 3을 x 좌표의 제곱에 관한 식으로 정리하면 다음의 수학식 4와 같다.
Figure 112010059827051-pat00008
이러한 변환을 통해 x2 좌표를 이용하여 스칼라 곱셈 연산의 주요 연산인 애디션 연산과 더블링 연산을 표현할 수 있게 되었다. 이와 같이 x2 좌표를 이용한 표현 방법을 사용할 경우 기존의 x 좌표를 이용한 스칼라 곱셈 연산보다 제곱 연산이 줄어드는 효과를 얻을 수 있다. 타원곡선에서 스칼라 곱셈 과정에서 두 점의 합을 계산하기 위해서는 이상의 수학식 3 내지 수학식 4에서 볼 수 있듯이 곱셈, 나눗셈 및 덧셈 연산이 필요하다. 이 중에서 가장 많은 시간과 자원이 소모되는 연산은 나눗셈 연산에 해당한다. 왜냐하면 이러한 나눗셈 연산에는 역원(inverse) 연산이 포함되기 때문이다. 따라서, 타원곡선암호 방법에서 스칼라 곱셈의 성능을 향상시키기 위해서는 연산의 효율을 위해 이러한 역원 연산을 가능한 배제시킬 필요가 있다.
330 단계에서는 320 단계를 통해 변환된 제곱 형태의 스칼라 곱셈을
Figure 112010059827051-pat00009
의 투영 좌표(projective coordinate)의 형태로 변환한다. 이러한 투영 좌표 변환은 나눗셈 연산(역원 연산)을 소거시키는 역할을 한다. 따라서, 상기 수학식 4는 투영 좌표계
Figure 112010059827051-pat00010
에 의해 다음의 수학식 5와 같이 표현될 수 있다.
Figure 112010059827051-pat00011
이 때, 타원곡선 애디션 연산
Figure 112010059827051-pat00012
의 연산량은 '4M+2S'로 표현될 수 있으며, 타원곡선 더블링 연산
Figure 112010059827051-pat00013
의 연산량은 '2M+2S+1C'로 표현될 수 있다. 여기서, M은 곱셈(multiplication)을 의미하고, S는 제곱(square)을 의미하며, C는 상수(constant)를 의미한다.
340 단계에서는 330 단계를 통해 변환된 투영 좌표 형태의 스칼라 곱셈을 이용하여 제 1 좌표축에 대한 좌표값을 산출한다. 즉, 340 단계는 kP의 x 좌표의 제곱값을 산출한다.
이상에서 기술한 310 단계 내지 340 단계는 설정된 스칼라 곱셈을 보다 적은 연산을 통해 수행 가능하도록 변환하고, 그 변환식에 따른 연산 결과를 산출하는 과정에 해당하므로, 전자적 형태의 정보 및 수학식을 처리할 수 있는 처리기(processor) 및 이러한 연산에 필요한 기억공간(memory)을 통해 구현될 수 있으며, 필요에 따라서는 처리기와 기억공간 간의 데이터 처리를 적절하게 제어할 수 있는 제어기(controller)가 활용될 수도 있을 것이다. 이러한 처리기, 기억공간 및 제어기는 본 발명이 속하는 기술분야의 활용 환경이나 동작 환경을 고려하여 통상의 기술자에 의해 적절하게 선택될 수 있을 것이다. 나아가, 이러한 스칼라 곱셈의 설정 및 변환 과정에는 이상에서 예시된 하드웨어들을 제어하기 위한 부가적인 소프트웨어 코드(code)도 활용될 수 있을 것이다.
한편, 350 단계에서는 상기된 과정에 이어 y 좌표를 복원하는 과정을 기술하고 있는 것으로 이러한 350 단계는 추가적으로 수행될 수 있다. 이상의 310 단계 내지 340 단계를 통해 본 발명의 실시예는 제안된 스칼라 곱셈을 통해 kP의 x 좌표의 제곱값을 얻을 수 있다. 그런데, 타원곡선암호 시스템에서는 암호학적으로 x 좌표뿐만 아니라, y 좌표의 값이 필요하기 때문에 이를 복원할 필요가 있다.
따라서, 350 단계에서는 제 1 좌표축에 대한 투영 좌표 형태의 스칼라 곱셈으로부터 좌표 공간상의 제 2 좌표축에 대한 좌표값을 산출한다. 즉, 제 1 좌표축인 x 축에 대한 스칼라 곱셈으로부터 제 2 좌표축인 y 축에 대한 좌표값을 산출한다. 보다 구체적으로 y 좌표값을 복원하기 위해서 다음의 수학식 6이 사용된다.
Figure 112010059827051-pat00014
수학식 6은 y 좌표를 복원하는 데 필요한 연산량을 줄이기 위해 도입된 것으로,
Figure 112010059827051-pat00015
의 연산량은 '4M+4S'이다.
이제 도 4를 참조하여 y 좌표를 복원하는 방법이 제시된다. 도 4는 본 발명의 일 실시예에 따른 타원곡선암호를 위한 연산 방법에서 제 1 좌표축에 대한 투영 좌표 형태의 스칼라 곱셈으로부터 제 2 좌표축에 대한 좌표값을 복원하는 방법을 설명하기 위한 도면이다.
도 4에서도 역시 자코비 4차 타원곡선을 예시하고 있으며, 타원곡선 상의 점
Figure 112010059827051-pat00016
,
Figure 112010059827051-pat00017
Figure 112010059827051-pat00018
과 두 점의 차
Figure 112010059827051-pat00019
는 일정한 값으로 유지된다. 즉, 타원곡선상에 위치한 2개의 점들의 차이가 P로서 유지되는 특징을 갖는다.
도 4를 참조하면, 우선 몽고메리 래더 알고리즘에서 i=1일 때의 루프 종료 후, Q[0]=((k-k0)/2)P이고, Q[1]=((k-k0)/2)P+P 를 얻을 수 있다.
그런 다음,
Figure 112010059827051-pat00020
를 이용하여 Q[0], Q[1] 및 -P=(-x,y)로부터 Q[0]-P를 산출한다. 이어서,
Figure 112010059827051-pat00021
를 이용하여 Q[0]-P, Q[1] 및 2P로부터 2Q[0]=(k-k0)P를 산출하고, Q[0], Q[1] 및 P로부터 2Q[0]+P=(k-k0)P+P를 각각 산출한다.
그 결과, kP는 다음과 같이 산출된다. 만약 k0=0(마지막 비트가 0임을 의미한다.)이라면 2Q[0]=kP-k0P 로서 y 좌표를 복원하고, 만약 k0=1(마지막 비트가 1임을 의미한다.)이라면 2Q[0]=kP-k0P+P 로서 y 좌표를 복원한다.
이러한 복원 절차를 통해 y 좌표를 산출하는 방법은 다음의 수학식 7과 같이 표현된다.
Figure 112010059827051-pat00022
상기 수학식 7의 연산량은 '1I+4M'과 같이 표현될 수 있다. 여기서 I는 역원(inverse)를 의미한다.
도 5는 본 발명의 일 실시예에 따른 타원곡선암호를 위한 연산 방법을 설명하기 위한 알고리즘을 예시한 의사 코드로서, 제곱 형태 및 투영 좌표의 형태로 변환된 스칼라 곱셈을 이용하여 타원곡선상의 점에 대한 x 좌표값을 산출하고,
Figure 112010059827051-pat00023
,
Figure 112010059827051-pat00024
Figure 112010059827051-pat00025
를 사용하여 y 좌표를 복원하는 본 발명의 실시예를 전체적으로 도시하고 있다.
도 5에서 본 발명의 예시 알고리즘은 타원곡선상의 점 P와 스칼라 d를 입력받는다. 이제 본 알고리즘은 for 구문의 루프를 통해 각각 x 좌표의 제곱값에 대한 타원곡선 더블링 연산(
Figure 112010059827051-pat00026
)과 타원곡선 애디션 연산(
Figure 112010059827051-pat00027
)을 수행한다. 여기서, 타원곡선 애디션 연산과 타원곡선 더블링 연산은 각각 다른 저장공간을 활용하여 각각 다른 점들에 대한 연산을 수행하므로 병렬적으로 수행될 수 있다.
이어서 도 5의 알고리즘은 line 8, 9를 통해 ECADD 연산이 (x,z)의 값을 산출하므로 '4M'의 연산량을 갖는다. 마지막으로 ECRE(x, y) 연산을 통해 y 좌표를 산출한다.
상기된 본 발명의 실시예들에 따르면 제곱 형태 및 투영 좌표의 형태로 변환된 스칼라 곱셈을 이용하여 타원곡선상의 점에 대한 좌표값을 산출함으로써 비대칭 암호 시스템의 암호화 및 복호화 과정에 상대적으로 적은 수의 연산이 필요하게 되고, 그로 인해 그 수행 속도가 향상된다. 더불어 암호화 및 복호화를 위해 요구되는 시스템 자원을 감소시킴으로써, 낮은 컴퓨팅 파워를 갖는 환경에서도 효과적이고 신뢰도 높은 암호화 및 복호화 시스템을 구현하는 것이 가능하다.
이렇게 개선된 본 발명의 실시예들에서 제안하는 타원곡선암호를 위한 연산 방법을 기존에 알려진 연산 방법과 비교하면 다음과 같다.
Figure 112010059827051-pat00028
상기 표 1에서 본 발명의 실시예에서 제안하고 있는 타원곡선 애디션 연산(
Figure 112010059827051-pat00029
)을 수행하기 위해 필요공간(데이터 저장을 위한 레지스터를 의미한다.)이 2로 감소하였고, 연산량도 감소함으로 인해 연산 속도가 향상될 수 있음을 알 수 있다.
Figure 112010059827051-pat00030
이어서, 상기 표 2에서도 본 발명의 실시예에서 제안하고 있는 타원곡선 더블링 연산(
Figure 112010059827051-pat00031
)을 수행하기 위해 필요공간(데이터 저장을 위한 레지스터를 의미한다.)이 2로 감소하였고, 연산량도 감소함으로 인해 연산 속도가 향상될 수 있음을 알 수 있다.
이러한 필요공간의 감소는 앞서 설명한 도 5에 예시된 알고리즘을 참조하면 보다 분명히 확인할 수 있다. 즉, 도 4에서 타원곡선 애디션 연산은 각각 Q[0], Q[1]을 저장하기 위한 레지스터(register)를 사용하게 되고, 타원곡선 더블링 연산은 각각 Q[0], Q[2]을 저장하기 위한 레지스터(register)를 사용하게 된다.
이제 이상에서 제안한 타원곡선암호를 위한 연산 방법을 활용하여 실질적인 공개키 암호 시스템에 적용하는 실시예들을 제안하고자 한다.
도 6은 본 발명의 다른 실시예에 따른 타원곡선암호를 위한 연산 방법에 대해 각각 암호문 송신자 및 암호문 수신자 측의 처리 과정을 설명하기 위한 도면으로, 시간 순서에 따라 암호화 및 복호화 과정에서 이상에서 제안된 스칼라 곱셈 연산이 활용되는 방법을 도시하고 있다.
수신자(20)의 측면에서의 활용 과정은 다음과 같다. 우선, 21 단계에서 수신자(20)는 비밀키를 입력받는다. 이러한 입력은 수신자(20)가 직접 입력할 수도 있으며, 필요에 따라서는 수신자(20)의 암호 시스템에서 자동으로 생성할 수도 있을 것이다.
다음으로 22 단계에서는 변환된 스칼라 곱셈을 이용하여 타원곡선상의 점에 대한 제 1 좌표축 및 제 2 좌표축에 대한 좌표값을 산출한다. 여기서 변환된 스칼라 곱셈이란, 앞서 설명한 제곱 형태의 변환 및 투영 좌표의 형태로 변환된 스칼라 곱셈을 의미한다. 즉, 22 단계는 본 발명의 실시예들을 통해 제안한 스칼라 곱셈을 이용하여 x, y 좌표값을 산출한다.
23 단계에서 수신자(20)는 21 단계를 통해 입력받은 비밀키를 이용하여 22 단계를 통해 산출한 제 1 좌표축 및 제 2 좌표축에 대한 좌표값으로부터 공개키를 생성한다. 이렇게 생성된 공개키는 앞서 도 1을 통해 설명한 공개키 관리 시스템에 등록될 수 있으며, 이후에 암호문을 작성하고자 하는 송신자(10)에 의해 열람될 수 있다.
이제, 송신자(10)의 측면으로 넘어오면, 송신자(10)는 11 단계를 통해 수신자(20)가 생성한 공개키를 획득(공개키 열람을 의미한다.)한다. 다음으로 12 단계에서 송신자(10)는 이러한 공개키를 이용하여 평문으로부터 암호문을 생성한다. 이렇게 생성된 암호문은 수신자(20)의 비밀키로만 복원이 가능하며, 설사 제 3자에 의해 획득되더라도 복호화가 불가능하다.
다시 수신자(20)의 측면으로 돌아오면, 수신자(20)는 24 단계에서 송신자(10)에 의해 암호화된 암호문을 수신한다. 마지막으로 수신자(20)는 25 단계에서 자신의 비밀키를 이용하여 암호문으로부터 평문을 복호화한다.
상기된 본 발명의 다른 실시예에 따르면 공개키 암호 시스템의 암호화 및 복호화 과정에 상대적으로 적은 수의 연산이 필요하게 되고, 그로 인해 그 수행 속도가 향상되며, 적은 시스템 자원만으로도 타원곡선 암호화 시스템을 구현하는 것이 가능하다.
도 7은 본 발명의 일 실시예에 따른 타원곡선암호를 위한 연산 장치(700)를 도시한 도면으로 입력부(721), 연산부(722) 및 출력부(723)를 포함한다. 또한, 스칼라 곱셈을 실질적으로 구현하는 애디션 연산과 더블링 연산을 위해 선택적으로 저장부(724)를 포함할 수 있다.
입력부(721)는 타원곡선상의 점을 표현하는 좌표값을 입력받는다. 이러한 입력부(721)는 전자적인 형태의 데이터를 수신할 수 있는 입력 장치로서 구현될 수 있으며, 필요에 따라 물리적인 인터페이스를 포함할 수 있다.
연산부(722)는 본 발명의 실시예들이 제안하는 변환된 스칼라 곱셈 연산 방법을 이용하여 입력부(721)를 통해 입력받은 좌표값으로부터 타원곡선에 대한 스칼라 곱셈 결과값을 산출한다. 이러한 연산부(722)는 앞서 도 3을 통해 설명한 310 단계 내지 350 단계에 대응하는 것으로 여기서는 구체적인 설명을 생략한다.
다만 본 실시예의 연산 장치를 하드웨어로 구현함에 있어서, 연산부(722)는 열거된 연산을 수행하기 위한 모듈러 곱셈기(modular multiplier), 모듈러 덧셈기(adder) 및 뺄셈기(subtracter)의 조합으로 구현될 수 있다. 이러한 하드웨어의 설계는 본 발명이 속하는 기술분야에서 회로 설계에 관한 통상의 지식을 가진 자에 의해 구현 가능한 것이다.
출력부(723)는 연산부(722)를 통해 산출된 스칼라 곱셈 결과값을 출력한다. 이러한 출력부(723)는 전자적인 형태로 가공된 데이터를 출력할 수 있는 입력 장치로서 구현될 수 있으며, 필요에 따라 물리적인 인터페이스를 포함할 수 있다.
한편, 연산부(722)에서 설정된 스칼라 곱셈은 타원곡선 애디션 연산과 타원곡선 더블링 연산을 포함하므로, 타원곡선 애디션 연산과 타원곡선 더블링 연산을 수행하기 위해 각각 적어도 2개의 저장부(724)를 활용할 수 있다. 앞서 표 1 및 표 2를 통해 설명한 바와 같이 스칼라 곱셈의 2가지 연산은 각각 2개의 레지스터를 필요로 한다. 나아가 본 실시예의 연산 장치에는 상기된 하드웨어 장치들을 제어하기 위한 제어기(controller)와 입출력 데이터들을 전송하기 위한 데이터 버스(bus)가 포함될 수 있다.
상기된 본 발명의 실시예에 따르면 스칼라 곱셈 연산 과정에 상대적으로 적은 수의 연산이 필요하게 되고, 그로 인해 그 수행 속도가 향상되며, 적은 시스템 자원만으로도 타원곡선 암호화 시스템을 구현하는 것이 가능하다.
한편, 본 발명은 컴퓨터로 읽을 수 있는 기록 매체에 컴퓨터가 읽을 수 있는 코드로 구현하는 것이 가능하다. 컴퓨터가 읽을 수 있는 기록 매체는 컴퓨터 시스템에 의하여 읽혀질 수 있는 데이터가 저장되는 모든 종류의 기록 장치를 포함한다.
컴퓨터가 읽을 수 있는 기록 매체의 예로는 ROM, RAM, CD-ROM, 자기 테이프, 플로피디스크, 광 데이터 저장장치 등이 있으며, 또한 캐리어 웨이브(예를 들어 인터넷을 통한 전송)의 형태로 구현하는 것을 포함한다. 또한, 컴퓨터가 읽을 수 있는 기록 매체는 네트워크로 연결된 컴퓨터 시스템에 분산되어, 분산 방식으로 컴퓨터가 읽을 수 있는 코드가 저장되고 실행될 수 있다. 그리고 본 발명을 구현하기 위한 기능적인(functional) 프로그램, 코드 및 코드 세그먼트들은 본 발명이 속하는 기술 분야의 프로그래머들에 의하여 용이하게 추론될 수 있다.
이상에서 본 발명에 대하여 그 다양한 실시예들을 중심으로 살펴보았다. 본 발명에 속하는 기술 분야에서 통상의 지식을 가진 자는 본 발명이 본 발명의 본질적인 특성에서 벗어나지 않는 범위에서 변형된 형태로 구현될 수 있음을 이해할 수 있을 것이다. 그러므로 개시된 실시예들은 한정적인 관점이 아니라 설명적인 관점에서 고려되어야 한다. 본 발명의 범위는 전술한 설명이 아니라 특허청구범위에 나타나 있으며, 그와 동등한 범위 내에 있는 모든 차이점은 본 발명에 포함된 것으로 해석되어야 할 것이다.
10 : 송신자 (암호화 측) 20 : 수신자 (복호화 측)
30 : 공개키 관리 시스템 (공개키 디렉터리)
41 : 비밀키 42 : 공개키
700 : 타원곡선암호화 장치
721 : 입력부 722 : 연산부
723 : 출력부 724 : 저장부

Claims (12)

  1. 적어도 하나의 처리기(processor)를 이용하여 타원곡선암호를 위한 연산을 수행하는 방법에 있어서,
    타원곡선상의 점 P를 표현하는 좌표 공간 중 제 1 좌표축만을 사용하여 상기 점에 대한 타원곡선 애디션(addition) 연산과 타원곡선 더블링(doubling) 연산을 포함하는 스칼라 곱셈(scalar multiplication) Q=kP(k는 정수)를 설정하는 단계;
    상기 타원곡선 애디션 연산과 상기 타원곡선 더블링 연산을 제곱함으로써 상기 설정된 스칼라 곱셈을 제곱 형태(square form)로 변환하는 단계;
    상기 제곱 형태의 스칼라 곱셈 내에 포함된 역원(inverse) 연산을 소거시킬 수 있도록 상기 제곱 형태의 스칼라 곱셈을 투영 좌표(projective coordinate)의 형태로 변환하는 단계; 및
    상기 투영 좌표 형태의 스칼라 곱셈을 이용하여 상기 kP의 제 1 좌표축에 대한 좌표값의 제곱값을 획득함으로써 상기 제 1 좌표축에 대한 좌표값을 산출하는 단계를 포함하는 타원곡선암호를 위한 연산 방법.
  2. 제 1 항에 있어서,
    상기 타원곡선상에 위치한 2개의 점들의 좌표를 이용하여 상기 제 1 좌표축에 대한 투영 좌표 형태의 스칼라 곱셈으로부터 상기 좌표 공간상의 제 2 좌표축에 대한 좌표값을 산출하는 단계를 더 포함하는 타원곡선암호를 위한 연산 방법.
  3. 제 2 항에 있어서,
    상기 설정된 스칼라 곱셈은 상기 타원곡선상에 위치한 2개의 점들의 차이가 소정값으로 유지되는 것을 특징으로 하는 타원곡선암호를 위한 연산 방법.
  4. 제 1 항에 있어서,
    상기 타원곡선 애디션 연산과 상기 타원곡선 더블링 연산은 병렬적으로 수행되는 것을 특징으로 하는 타원곡선암호를 위한 연산 방법.
  5. 적어도 하나의 처리기를 이용하여 타원곡선암호를 위한 연산을 수행하는 방법에 있어서,
    비밀키를 입력받는 단계;
    타원곡선상의 점 P를 표현하는 좌표 공간 중 제 1 좌표축만을 사용하여 상기 점에 대한 타원곡선 애디션 연산과 타원곡선 더블링 연산을 포함하는 스칼라 곱셈 Q=kP(k는 정수)를 설정하는 단계;
    상기 타원곡선 애디션 연산과 상기 타원곡선 더블링 연산을 제곱함으로써 상기 설정된 스칼라 곱셈을 제곱 형태로 변환하고, 상기 변환된 제곱 형태의 스칼라 곱셈 내에 포함된 역원 연산을 소거시킬 수 있도록 상기 제곱 형태의 스칼라 곱셈을 투영 좌표의 형태로 변환하며, 상기 변환된 투영 좌표 형태의 스칼라 곱셈을 이용하여 상기 kP의 제 1 좌표축에 대한 좌표값의 제곱값을 획득함으로써 상기 제 1 좌표축에 대한 좌표값을 산출하는 단계;
    상기 타원곡선상에 위치한 2개의 점들의 좌표를 이용하여 상기 제 1 좌표축에 대한 투영 좌표 형태의 스칼라 곱셈으로부터 상기 좌표 공간상의 제 2 좌표축에 대한 좌표값을 산출하는 단계; 및
    상기 입력받은 비밀키를 이용하여 상기 제 1 좌표축 및 제 2 좌표축에 대한 좌표값으로부터 공개키를 생성하는 단계를 포함하는 타원곡선암호를 위한 연산 방법.
  6. 제 5항에 있어서,
    상기 생성된 공개키를 이용하여 암호화한 암호문을 수신하는 단계; 및
    상기 비밀키를 이용하여 상기 수신된 암호문으로부터 평문을 복호화하는 단계를 더 포함하는 타원곡선암호를 위한 연산 방법.
  7. 적어도 하나의 처리기를 이용하여 타원곡선암호를 위한 연산을 수행하는 방법에 있어서,
    소정 연산 방법을 이용하여 생성된 공개키를 수신하는 단계; 및
    상기 수신된 공개키를 이용하여 평문으로부터 암호문을 생성하는 단계를 포함하고,
    상기 소정 연산 방법은,
    타원곡선상의 점 P를 표현하는 좌표 공간 중 제 1 좌표축만을 사용하여 상기 점에 대한 타원곡선 애디션 연산과 타원곡선 더블링 연산을 포함하는 스칼라 곱셈 Q=kP(k는 정수)를 설정하고,
    상기 타원곡선 애디션 연산과 상기 타원곡선 더블링 연산을 제곱함으로써 상기 설정된 스칼라 곱셈을 제곱 형태로 변환하고, 상기 변환된 제곱 형태의 스칼라 곱셈 내에 포함된 역원 연산을 소거시킬 수 있도록 상기 제곱 형태의 스칼라 곱셈을 투영 좌표의 형태로 변환하고, 상기 변환된 투영 좌표 형태의 스칼라 곱셈을 이용하여 상기 kP의 제 1 좌표축에 대한 좌표값의 제곱값을 획득함으로써 상기 제 1 좌표축에 대한 좌표값을 산출하고,
    상기 타원곡선상에 위치한 2개의 점들의 좌표를 이용하여 상기 제 1 좌표축에 대한 투영 좌표 형태의 스칼라 곱셈으로부터 상기 좌표 공간상의 제 2 좌표축에 대한 좌표값을 산출하며,
    비밀키를 이용하여 상기 제 1 좌표축 및 제 2 좌표축에 대한 좌표값으로부터 상기 공개키를 생성하는 것을 특징으로 하는 타원곡선암호를 위한 연산 방법.
  8. 제 1 항 내지 제 7 항 중에 어느 한 항의 방법을 컴퓨터에서 실행시키기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록매체.
  9. 타원곡선상의 점 P를 표현하는 좌표값을 입력받는 입력부;
    소정 연산 방법을 이용하여 상기 입력받은 좌표값으로부터 상기 타원곡선에 대한 스칼라 곱셈 결과값을 산출하는 연산부; 및
    상기 산출된 스칼라 곱셈 결과값을 출력하는 출력부를 포함하고,
    상기 소정 연산 방법은,
    상기 타원곡선상의 점을 표현하는 좌표 공간 중 제 1 좌표축만을 사용하여 상기 점에 대한 타원곡선 애디션 연산과 타원곡선 더블링 연산을 포함하는 스칼라 곱셈 Q=kP(k는 정수)를 설정하고,
    상기 타원곡선 애디션 연산과 상기 타원곡선 더블링 연산을 제곱함으로써 상기 설정된 스칼라 곱셈을 제곱 형태로 변환하고,
    상기 제곱 형태의 스칼라 곱셈 내에 포함된 역원 연산을 소거시킬 수 있도록 상기 제곱 형태의 스칼라 곱셈을 투영 좌표의 형태로 변환하며,
    상기 투영 좌표 형태의 스칼라 곱셈을 이용하여 상기 kP의 제 1 좌표축에 대한 좌표값의 제곱값을 획득함으로써 상기 제 1 좌표축에 대한 좌표값을 산출하는 것을 특징으로 하는 타원곡선암호를 위한 연산 장치.
  10. 제 9 항에 있어서,
    상기 연산부는 상기 타원곡선상에 위치한 2개의 점들의 좌표를 이용하여 상기 제 1 좌표축에 대한 투영 좌표 형태의 스칼라 곱셈으로부터 상기 좌표 공간상의 제 2 좌표축에 대한 좌표값을 더 산출하는 것을 특징으로 하는 타원곡선암호를 위한 연산 장치.
  11. 제 10 항에 있어서,
    상기 설정된 스칼라 곱셈은 상기 타원곡선상에 위치한 2개의 점들의 차이가 소정값으로 유지되는 것을 특징으로 하는 타원곡선암호를 위한 연산 장치.
  12. 제 9 항에 있어서,
    상기 타원곡선 애디션 연산과 상기 타원곡선 더블링 연산을 수행하기 위해 각각 적어도 2개의 저장부를 더 포함하는 것을 특징으로 하는 타원곡선암호를 위한 연산 장치.
KR1020100090249A 2010-09-15 2010-09-15 타원곡선암호를 위한 연산 장치 및 방법 KR101233682B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020100090249A KR101233682B1 (ko) 2010-09-15 2010-09-15 타원곡선암호를 위한 연산 장치 및 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020100090249A KR101233682B1 (ko) 2010-09-15 2010-09-15 타원곡선암호를 위한 연산 장치 및 방법

Publications (2)

Publication Number Publication Date
KR20120028432A KR20120028432A (ko) 2012-03-23
KR101233682B1 true KR101233682B1 (ko) 2013-02-15

Family

ID=46133232

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020100090249A KR101233682B1 (ko) 2010-09-15 2010-09-15 타원곡선암호를 위한 연산 장치 및 방법

Country Status (1)

Country Link
KR (1) KR101233682B1 (ko)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101391216B1 (ko) 2006-03-23 2014-05-02 지멘스 악티엔게젤샤프트 타원형 곡선들을 사용한 암호화 방법
KR101524661B1 (ko) * 2014-04-03 2015-06-03 고려대학교 산학협력단 재배치를 통한 트리플-베이스 체인 기반 타원곡선 스칼라 곱셈을 위한 연산 장치 및 방법
KR102187267B1 (ko) 2020-07-08 2020-12-04 국방과학연구소 타원곡선에 기반한 초 특이성 디피-헬만 암호 교환 방법 및 장치
KR20240045557A (ko) 2022-09-30 2024-04-08 주식회사 디지트로그 타원 곡선 암호를 이용한 키 유도함수 기반의 이중 암호화 장치 및 방법

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102457163B1 (ko) 2020-11-23 2022-10-20 부산대학교 산학협력단 Fpga를 이용한 타원곡선암호 스칼라 곱셈을 위한 연산 장치 및 방법
CN114650135B (zh) * 2022-04-01 2024-01-02 浙江大学 一种软硬件协同的sm2椭圆曲线密码算法实现方法
KR102536397B1 (ko) * 2022-10-26 2023-05-26 주식회사 시옷 컴퓨팅 장치에서 수행되는 서명 검증 방법 및 이를 수행하는 컴퓨팅 장치
KR102649929B1 (ko) * 2022-11-28 2024-03-21 (주)드림시큐리티 저사양 plc를 위한 전자서명 생성 및 검증 방법

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
"타원곡선암호시스템에서 Montgomery ladder방법에 기반한 새로운 스칼라 곱셈 알고리즘", 조성민 외 4명, 정보보호학회논문지 제19호 제4호, 3-19쪽, 2009년 8월 *

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101391216B1 (ko) 2006-03-23 2014-05-02 지멘스 악티엔게젤샤프트 타원형 곡선들을 사용한 암호화 방법
KR101524661B1 (ko) * 2014-04-03 2015-06-03 고려대학교 산학협력단 재배치를 통한 트리플-베이스 체인 기반 타원곡선 스칼라 곱셈을 위한 연산 장치 및 방법
KR102187267B1 (ko) 2020-07-08 2020-12-04 국방과학연구소 타원곡선에 기반한 초 특이성 디피-헬만 암호 교환 방법 및 장치
KR20240045557A (ko) 2022-09-30 2024-04-08 주식회사 디지트로그 타원 곡선 암호를 이용한 키 유도함수 기반의 이중 암호화 장치 및 방법

Also Published As

Publication number Publication date
KR20120028432A (ko) 2012-03-23

Similar Documents

Publication Publication Date Title
KR101233682B1 (ko) 타원곡선암호를 위한 연산 장치 및 방법
US9503259B2 (en) System and method for generating and protecting cryptographic keys
US7688973B2 (en) Encryption apparatus, decryption apparatus, key generation apparatus, program, and method
US20060251247A1 (en) Encryption apparatus, decryption apparatus, key generation apparatus, program and method therefor
US11323255B2 (en) Methods and systems for encryption and homomorphic encryption systems using Geometric Algebra and Hensel codes
KR101449239B1 (ko) 환 동형 사상을 이용한 동형 암호화 방법과 복호화 방법 및 이를 이용한 장치
JP6974461B2 (ja) 幾何代数を用いた高度データ中心型暗号化システムのための方法およびシステム
JP2013178589A (ja) 秘密分散システム、分散装置、分散管理装置、取得装置、それらの処理方法、秘密分散方法、プログラム
Dawahdeh et al. A new modification for menezes-vanstone elliptic curve cryptosystem
CN108964869A (zh) 短密钥全同态加密方法及系统
Vigila et al. Nonce Based Elliptic Curve Cryptosystem for Text and Image Applications.
Alam et al. A Comparative Study of RSA and ECC and Implementation of ECC on Embedded Systems
US7177422B2 (en) Elliptic curve encryption processing method, elliptic curve encryption processing apparatus, and program
JP4626148B2 (ja) 復号または署名作成におけるべき乗剰余算の計算方法
KR100817048B1 (ko) 여러 가지 포인트 표현을 기반으로 한 ecc에서 dfa대책을 위한 암호화 방법 및 장치
JP4706811B2 (ja) 依頼計算を用いた演算装置、及び記録媒体
Chakraborty et al. A secure cloud computing authentication using cryptography
KR20220079522A (ko) 기하 대수 및 헨젤 코드들을 이용한 암호화를 위한 방법들 및 시스템들과 동형 암호화 시스템들
KR101440680B1 (ko) 중국인 나머지 정리에 기반한 준동형 암복호화 방법 및 이를 이용한 장치
CN109756335A (zh) 一种阶为梅森素数的有限域乘法群的公钥加密解密方法
Wang et al. Secure outsourced calculations with homomorphic encryption
JPWO2011033672A1 (ja) 演算装置、方法およびプログラム
John et al. Elliptic-Curve Groups in Quantum-Era Cryptography
JP4783061B2 (ja) 楕円曲線暗号におけるスカラー倍計算装置
Rao et al. Secure and practical outsourcing of linear programming in cloud computing: A survey

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
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: 20160201

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20170109

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20180108

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20190201

Year of fee payment: 7

FPAY Annual fee payment

Payment date: 20200128

Year of fee payment: 8