KR101405321B1 - 키 연산 방법 및 이를 이용한 공유 키 생성 방법 - Google Patents

키 연산 방법 및 이를 이용한 공유 키 생성 방법 Download PDF

Info

Publication number
KR101405321B1
KR101405321B1 KR1020070026334A KR20070026334A KR101405321B1 KR 101405321 B1 KR101405321 B1 KR 101405321B1 KR 1020070026334 A KR1020070026334 A KR 1020070026334A KR 20070026334 A KR20070026334 A KR 20070026334A KR 101405321 B1 KR101405321 B1 KR 101405321B1
Authority
KR
South Korea
Prior art keywords
key
keys
public key
groups
unit
Prior art date
Application number
KR1020070026334A
Other languages
English (en)
Other versions
KR20080084499A (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 KR1020070026334A priority Critical patent/KR101405321B1/ko
Priority to US11/835,720 priority patent/US8160256B2/en
Publication of KR20080084499A publication Critical patent/KR20080084499A/ko
Application granted granted Critical
Publication of KR101405321B1 publication Critical patent/KR101405321B1/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/14Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using a plurality of keys or algorithms
    • 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
    • H04L9/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • H04L9/0838Key agreement, i.e. key establishment technique in which a shared key is derived by parties as a function of information contributed by, or associated with, each of these
    • H04L9/0841Key agreement, i.e. key establishment technique in which a shared key is derived by parties as a function of information contributed by, or associated with, each of these involving Diffie-Hellman or related key agreement protocols
    • 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

Landscapes

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

Abstract

키 연산 방법 및 이를 이용한 공유 키 생성 방법이 개시된다. 본 발명의 일실시예에 따른 키 연산 방법은 키 연산을 수행하기 위한 두 개의 키들을 생성하는 단계, 상기 두 개의 키들 각각에 포함된 계수들 중 동일한 계수값을 갖는 계수들을 기초로 제1 값을 연산하는 단계 및 상기 연산된 제1 값을 기초로 좌표 연산 또는 지수승 연산을 수행하는 단계를 포함하고, 상기 제1 값을 연산하는 단계는 상기 두 개의 키들에 포함된 0이 아닌 계수값들 각각에 대해 수행되는 것을 특징으로 한다.
키 연산, 계수값, 공유 키, 비밀 키, 공개 키, 좌표 연산

Description

키 연산 방법 및 이를 이용한 공유 키 생성 방법 {KEY CALCULATION MEHTOD AND KEY AGREEMENT METHOD USING THE SAME}
도 1은 본 발명의 일 실시예에 따른 키 연산 장치의 구성 블록도이다.
도 2는 도 1에 도시한 키 생성 관리부에 대한 일 실시예 구성 블록도이다.
도 3은 본 발명의 일 실시예에 따른 공유 키 생성 장치에 대한 구성 블록도이다.
도 4는 도 3에 도시한 키 생성 관리부에 대한 일 실시예 구성 블록도이다.
도 5는 본 발명의 일 실시예에 따른 키 연산 방법에 대한 동작 흐름도이다.
도 6은 도 5에 도시한 단계 S510에 대한 일 실시예 동작 흐름도이다.
도 7은 도 5에 도시한 단계 S510에 대한 또 다른 일 실시예 동작 흐름도이다.
도 8은 본 발명의 일 실시예에 따른 공유 키 생성 방법에 대한 동작 흐름도이다.
도 9는 본 발명에 따른 공유 키 생성 방법을 설명하기 위한 일 예시도이다.
도 10은 전자 서명을 생성하고 배포하는 과정의 동작 흐름도이다.
도 11은 배포된 전자 서명을 수신하여 전자 서명 검증을 수행하는 동작 흐름도이다.
<도면의 주요 부분에 대한 부호의 설명>
110, 310: 키 생성 관리부
120: 계수값 연산부
130: 키 연산부
210, 410: 그룹 선택부
220, 420: 스트링 대체부
230, 430: 키 생성부
320: 제1 연산부
330: 제2 연산부
340: 공유 키 생성부
350: 송수신부
본 발명은 키 연산 및 공유 키에 관한 것으로, 더욱 상세하게는 두 개의 키들을 이용하여 빠른 좌표 연산 또는 지수승 연산을 가능하도록 하는 키 연산 방법 및 이를 이용한 공유 키 생성 방법에 관한 것이다.
날이 갈수록 증대되어 온 정보보안의 중요성으로 인해 많은 암호화 방법들이 등장되었다.  일 예로, Diffie-Hellman(DH) 암호화와 ECC(Elliptic Curve Cryptography)도 보다 효율적인 정보보안을 위해 등장한 암호화 방법들이다.
DH 암호화는 암호화 과정에서 지수승 연산을 수반한다.  그리고, DH 암호화 이외에도 지수승 연산을 수반하는 많은 암호화 방법들이 존재한다.
보다 안정적인 정보보안을 위해서는 지수승 연산에서 지수가 되는 키의 길이가 일정 길이만큼 길어져야 한다.  그런데, 지수가 되는 키의 길이가 길어지게 되면, 지수승 연산량이 많아지게 되어, 연산속도가 느려지게 되는 결과를 유발하게 된다.  이와 같은 연산속도의 저하는 프로세서의 성능이 낮은 모바일 기기에서 더욱 심각해진다.
한편, ECC는 암호화 과정에서 좌표 덧셈 연산을 수반한다.
ECC의 경우에도 보다 안정적인 정보보안을 위해서는 좌표 덧셈 연산에서 좌표에 곱해지는 계수인 키의 길이가 일정 길이만큼 길어져야 한다.  그런데, 키의 길이가 길어지게 되면, 좌표 덧셈 연산량이 많아지게 되어 연산속도가 느려지게 되는 결과를 유발하게 된다.  이와 같은 연산속도의 저하는 프로세서의 성능이 낮은 모바일 기기에서 더욱 심각해짐은, ECC의 경우도 마찬가지이다.
또한, 연산량이 많아질수록 많은 메모리가 사용된다.
따라서, 빠른 연산을 수행하면서 적은 메모리를 사용할 수 있는 방법의 필요성이 대두된다.
본 발명은 상술한 바와 같은 종래기술의 문제점을 해결하기 위해 안출된 것으로서, 두 개의 키들을 이용한 좌표 연산 또는 지수승 연산을 수행하여 안전성을 유지하면서 연산 처리 속도를 향상시키는 것을 목적으로 한다.
또한, 본 발명은 두 개의 비밀 키들 및 수신된 두 개의 공개 키들을 두 개의 키들을 이용한 키 연산 기능을 통해 공유 키를 생성하는 것을 목적으로 한다.
또한, 본 발명은 적은 메모리를 이용하면서 연산 처리 속도를 향상시킬 수 있는 키 연산 방법을 제공하는 것을 목적으로 한다.
상기의 목적을 달성하고 종래기술의 문제점을 해결하기 위하여, 본 발명의 일 실시예에 따른 키 연산 방법은 키 연산을 수행하기 위한 두 개의 키들을 생성하는 단계, 상기 두 개의 키들 각각에 포함된 계수들 중 동일한 계수값을 갖는 계수들을 기초로 제1 값을 연산하는 단계 및 상기 연산된 제1 값을 기초로 좌표 연산 또는 지수승 연산을 수행하는 단계를 포함하고, 상기 제1 값을 연산하는 단계는 상기 두 개의 키들에 포함된 0이 아닌 계수값들 각각에 대해 수행되는 것을 특징으로 한다.
이때, 상기 두 개의 키들 각각은 절대값이 qw/2 이하이고 q로 나누어 떨어지지 않는 정수이며 연속된 w개의 계수들 중 0이 아닌 계수가 최대 하나인 키이고, 상기 q는 소수 또는 소수의 멱수이고, 상기 w는 2 이상의 자연수이고, 상기 키 연산 방법은 상기 연산된 제1 값에 기초한 좌표 연산을 수행할 수 있다.
이때, 상기 두 개의 키들 각각은 각 계수가 0 또는 2w 이하의 양의 홀수이며 연속된 w개의 계수들 중 0이 아닌 계수가 최대 하나인 키이고, 상기 w는 2 이상의 자연수이고, 상기 키 연산 방법은 상기 연산된 제1 값을 지수로 하여 지수승 연산 을 수행할 수 있다.
이때, 상기 두 개의 키들을 생성하는 단계는 연산을 수행하기 위한 연산 대상 키를 스플릿하여 상기 연산 대상 키에 상응하는 두 개의 키들을 생성하고, 상기 두 개의 키들 각각에 포함된 계수들 중 0이 아닌 계수의 개수가 상기 연산 대상 키에 포함된 계수들 중 0이 아닌 계수의 개수보다 적을 수 있다.
이때, 상기 두 개의 키들을 생성하는 단계는 기 설정된 키들의 집합으로부터 상기 두 개의 키들을 선택하여 상기 두 개의 키들을 생성할 수 있다.
본 발명의 일 실시예에 따른 공유 키 생성 방법은 두 개의 비밀 키들을 생성하는 단계, 상기 두 개의 비밀 키들을 기초로 제1 공개 키를 연산하는 단계, 상기 제1 공개 키를 기초로 제2 공개 키를 연산하는 단계, 상기 제1 공개 키 및 상기 제2 공개 키를 전송하고, 제3 공개 키 및 제4 공개 키를 수신하는 단계 및 상기 두 개의 비밀 키들, 상기 제3 공개 키 및 상기 제4 공개 키를 기초로 공유 키를 생성하는 단계를 포함하는 것을 특징으로 한다.
이때, 상기 두 개의 비밀 키들 각각은 절대값이 qw/2 이하이고 q로 나누어 떨어지지 않는 정수이며 연속된 w개의 계수들 중 0이 아닌 계수가 최대 하나인 키이고, 상기 q는 소수 또는 소수의 멱수이고, 상기 w는 2 이상의 자연수일 수 있다.
이때, 상기 제1 공개 키를 연산하는 단계는 계수들을 기초로 제1 값을 연산하는 단계 및 상기 연산된 제1 값에 기초한 좌표 연산을 수행하여 상기 제1 공개 키를 연산하는 단계를 포함하고, 상기 제1 값을 연산하는 단계는 상기 두 개의 비 밀 키들에 포함된 0이 아닌 계수값들 각각에 대해 수행될 수 있다.
이때, 상기 두 개의 비밀 키들 각각은 각 계수가 0 또는 2w 이하의 양의 홀수이며 연속된 w개의 계수들 중 0이 아닌 계수가 최대 하나인 키이고, 상기 w는 2 이상의 자연수일 수 있다.
이때, 상기 제1 공개 키를 연산하는 단계는 상기 두 개의 비밀 키들 각각에 포함된 계수들 중 동일한 계수값을 갖는 계수들을 기초로 제1 값을 연산하는 단계 및 상기 연산된 제1 값을 지수로 하는 지수승 연산을 수행하여 상기 제1 공개 키를 연산하는 단계를 포함하고, 상기 제1 값을 연산하는 단계는 상기 두 개의 비밀 키들에 포함된 0이 아닌 계수값들 각각에 대해 수행될 수 있다.
본 발명의 일 실시예에 따른 키 연산 장치는 키 연산을 수행하기 위한 두 개의 키들을 생성하는 키 생성 관리부, 상기 두 개의 키들 각각에 포함된 계수들 중 동일한 계수값을 갖는 계수들을 기초로 제1 값을 연산하는 계수값 연산부 및 상기 연산된 제1 값을 기초로 좌표 연산 또는 지수승 연산을 수행하는 키 연산부를 포함하고, 상기 계수값 연산부는 상기 두 개의 키들에 포함된 0이 아닌 계수값들 각각에 대해 수행되는 것을 특징으로 한다.
본 발명의 일 실시예에 따른 공유 키 생성 장치는 두 개의 비밀 키들을 생성하는 키 생성 관리부, 상기 두 개의 비밀 키들을 기초로 제1 공개 키를 연산하는 제1 연산부, 상기 제1 공개 키를 기초로 제2 공개 키를 연산하는 제2 연산부, 상기 제1 공개 키 및 상기 제2 공개 키를 전송하고, 제3 공개 키 및 제4 공개 키를 수신 하는 송수신부 및 상기 두 개의 비밀 키들, 수신된 상기 제3 공개 키 및 상기 제4 공개 키를 기초로 공유 키를 생성하는 공유 키 생성부를 포함하는 것을 특징으로 한다.
이하, 본 발명에 따른 바람직한 실시예를 첨부된 도면을 참조하여 상세하게 설명한다.
도 1은 본 발명의 일 실시예에 따른 키 연산 장치의 구성 블록도이다.
도 1을 참조하면, 키 연산 장치는 키 생성 관리부(110), 계수값 연산부(120) 및 키 연산부(130)를 포함한다.
키 생성 관리부(110)는 키 연산을 수행하기 위한 두 개의 키들을 생성한다.
이때, 키 생성 관리부(110)는 기 설정된 키들의 집합으로부터 임의의 두 키들을 선택하여 키 연산을 수행하기 위한 두 개의 키들을 생성할 수 있다.
이때, 키 생성 관리부(110)는 타원 곡선의 경우 두 개의 τ-adic w-NAF(width-Non Adjacent Form) 키들을 생성할 수 있다.
여기서, τ-adic w-NAF는 τ와 w-NAF를 결합한 형으로, τ는 프로베니우스 자기준동형 사상(Frobenius endomorphism map)인 (x,y)→(xq,yq)를 의미한다.
여기서, w-NAF 키는 키를 구성하는 계수들 중 0이 아닌 계수의 절대값이 2w-1 이하의 홀수이며 연속된 w개의 계수들 중 0이 아닌 계수가 최대 하나인 키를 말하는 것으로, w는 2 이상의 자연수를 말한다.
즉, τ-adic w-NAF 키는 계수들 중 0이 아닌 계수는 절대값이 qw/2 이하이고 q로 나누어 떨어지지 않는 정수이며, 연속된 w개의 계수들 중 0이 아닌 계수가 최대 하나인 키를 말한다. 여기서, q는 소수 또는 소수의 멱수이다.
이때, 키 생성 관리부(110)는 유한체의 경우 두 개의 부호없는(unsigned) w-NAF 키들을 생성할 수 있다.
여기서, 부호없는 w-NAF 키는 키를 구성하는 계수들 중 0이 아닌 계수는 2w 이하의 양의 홀수이며 연속된 W개의 계수들 중 0이 아닌 계수가 최대 하나인 키를 말한다.
이때, 키 생성 관리부(110)는 연산 대상이 되는 연산 대상 키를 입력받고, 그 입력받은 연산 대상 키를 스플릿하여 연산 대상 키에 상응하는 두 개의 키들을 생성할 수 있는데, 연산 대상 키에 상응하는 두 개의 키들 각각에 포함된 계수들 중 0이 아닌 계수의 개수가 연산 대상 키에 포함된 계수들 중 0이 아닌 계수의 개수보다 적은 것이 바람직하다. 즉, 키 생성 관리부(110)는 키 연산을 수행할 때 키 연산 수행 시간을 줄이기 위해 연산 대상 키에 포함된 계수들 중 0이 아닌 계수의 개수보다 적은 0이 아닌 계수의 개수를 포함하는 두 개의 키들을 생성한다.
계수값 연산부(120)는 키 생성 관리부(110)에 의해 생성된 두 개의 키들 각각에 포함된 계수들 중 동일한 계수값을 갖는 계수들을 기초로 제1 값을 연산한다.
여기서, 계수값 연산부(120)는 두 개의 키들에 포함된 0이 아닌 계수값들 각각에 대해 수행된다. 즉, 계수값 연산부(120)는 두 개의 키들에 포함된 모든 계수값들 각각을 기초로 하는 복수 개의 제1 값들을 연산한다.
즉, 계수값 연산부(130)는 타원 곡선의 경우 선택된 두 개의 τ-adic w-NAF 키들 또는 연산 대상 키에 상응하는 두 개의 τ-adic w-NAF 키들에 포함된 계수값들을 기초로 제1 값을 연산하고, 유한체의 경우 선택된 두 개의 부호없는 w-NAF 키들 또는 연산 대상 키에 상응하는 두 개의 부호없는 w-NAF 키들에 포함된 계수값들을 기초로 제1 값을 연산한다.
키 연산부(130)는 계수값 연산부(120)에 의해 연산된 제1 값을 기초로 좌표 연산 또는 지수승 연산을 수행한다.
즉, 키 연산부(130)는 연산된 제1 값들에 기초한 좌표 연산을 수행하거나 연산된 제1 값을 지수로 하여 지수승 연산을 수행한다.
예를 들어, 타원 곡선의 경우 두 개의 τ-adic w-NAF 키들이 k=(km -1, km -2, ..., k0), l=(lm -1, lm -2, ..., l0)이고 입력된 타원 곡선 점이 P, Q라 가정하면 키 연산부(130)에 의해 연산된 타원 곡선 점 T는 kP+lQ가 되는데, 키 연산부(130)에 의해 T를 연산하는 과정에 대해 설명한다. 여기서, m은 항의 위치를 말한다.
먼저, 0부터 m-1항까지 순차적으로 계수값이 1 또는 -1인 항을 k와 l키에서 검출하여 계수값이 1 또는 -1인 항에 대한 덧셈 값을 계수값 1에 대한 레지스터에 저장한다. 즉, k와 l키에 대해 계수값이 1 또는 -1인 항에 대한 덧셈 값을 레지스터 R[1]에 저장한다. 예컨대, k키에서 계수값이 1 또는 -1인 항이 3, m-1이고, l키에서 계수값이 1 또는 -1인 항이 2, m-2라 가정하면, 레지스터 R[1]에 저장된 값 즉, 계수값 1 또는 -1에 대한 제1 값은 sign(l2)*τ2(P)+sign(k3)*τ3(P)+ sign(lm - 2)*τm-2(P)+ sign(km -1)*τm-1(P)가 된다.
여기서, sign(x)는 x의 부호를 나타내는 함수로서, x가 양수이면 sign(x)=1, x가 음수이면 sign(x)=-1, x가 0이면 sign(x)=0이다.
이런 과정을 계수값 ±1, ±3, ..., ±2w-1-1까지 반복 수행하여 계수값 각각에 대한 제1 값을 연산하고, 그 연산된 제1 값들 즉, R[2w-1-1] 부터 R[1]까지의 값을 이용한 덧셈을 통해 타원 곡선 점 T가 연산된다.
이와 같이 본 발명에 따른 키 연산 방법을 이용하면 덧셈 회수를 줄일 수 있고, 적은 메모리를 사용하면서도 덧셈 연산 처리 속도를 향상시킬 수 있다. 즉, 많은 메모리를 사용하여 얻어질 수 있는 덧셈 연산 처리 속도를 적은 메모리를 사용하면서도 얻을 수 있다.
도 2는 도 1에 도시한 키 생성 관리부에 대한 일 실시예 구성 블록도이다.
도 2를 참조하면, 키 생성 관리부(110)는 그룹 선택부(210), 스트링 대체부(220) 및 키 생성부(230)를 포함한다.
그룹 선택부(210)는 타원 곡선의 경우 m-(w-1)*(t-1) 개의 그룹들 중 t개의 그룹을 선택하고, 유한체의 경우 m-(w-1)*t 개의 그룹들 중 t개의 그룹을 선택한다. 여기서, m 및 t는 양의 정수이다.
스트링 대체부(220)는 타원 곡선의 경우 선택된 t개의 그룹 각각을 절대값이 qw/2 이하이고 q로 나누어 떨어지지 않는 정수들 중 어느 하나와 w-1개의 0을 나열 하여 구성한 스트링으로 대체하고, 유한체의 경우 선택된 t개의 그룹 각각을 2w 이하의 양의 홀수들 중 어느 하나와 w-1개의 0을 나열하여 구성한 스트링으로 대체한다.
이때, 절대값이 qw/2 이하이고 q로 나누어 떨어지지 않는 정수들 중 어느 하나는 w-1개의 0뒤에 나열될 수 있다.
이때, 2w 이하의 양의 홀수들 중 어느 하나는 w-1개의 0뒤에 나열될 수 있다.
키 생성부(230)는 타원 곡선의 경우 선택되지 않은 그룹을 0으로 대체하여 τ-adic w-NAF 키를 생성하고, 유한체의 경우 선택되지 않은 그룹을 0으로 대체하여 부호없는 w-NAF 키를 생성한다.
즉, 키 생성 관리부(110)는 그룹 선택부(210), 스트링 대체부(220) 및 키 생성부(230)를 통해 두 개의 τ-adic w-NAF 키들 또는 부호없는 w-NAF 키들을 생성한다.
도 3은 본 발명의 일 실시예에 따른 공유 키 생성 장치에 대한 구성 블록도이다.
도 3을 참조하면, 공유 키 생성 장치는 키 생성 관리부(310), 제1 연산부(320), 제2 연산부(330), 공유 키 생성부(340) 및 송수신부(350)를 포함한다.
키 생성 관리부(310)는 두 개의 비밀 키들을 생성한다.
이때, 키 생성 관리부(310)는 비밀 키들의 집합으로부터 두 개의 비밀 키들 을 선택할 수도 있다.
이때, 키 생성 관리부(310)는 타원 곡선의 경우 두 개의 τ-adic w-NAF(width-Non Adjacent Form) 비밀 키들을 생성할 수 있다.
즉, 키 생성 관리부(310)는 계수들 중 0이 아닌 계수는 절대값이 qw/2 이하이고 q로 나누어 떨어지지 않는 정수이며, 연속된 w개의 계수들 중 0이 아닌 계수가 최대 하나인 비밀 키를 두 개 생성한다.
이때, 키 생성 관리부(310)는 유한체의 경우 두 개의 부호없는 w-NAF 키들을 생성할 수 있다.
즉, 키 생성 관리부(310)는 키를 구성하는 계수들 중 0이 아닌 계수는 2w 이하의 양의 홀수이며 연속된 W개의 계수들 중 0이 아닌 계수가 최대 하나인 부호없는 w-NAF 키를 두 개 생성한다.
제1 연산부(320)는 키 생성 관리부(310)에 의해 생성된 두 개의 비밀 키들을 기초로 제1 공개 키를 연산한다.
이때, 제1 공개 키는 타원 곡선의 경우 [수학식 1]에 의해 연산될 수 있다.
Figure 112007021509547-pat00001
여기서, X[i]는 제1 공개 키를 말하고, x[i] 및 y[i]는 비밀 키들을 말하고, P 및 Q는 입력된 타원 곡선의 점을 말한다. 이때, Q와 P의 관계는 Q=αP가 될 수 있고, α는 임의의 선택된 값일 수 있다.
여기서, 타원 곡선의 경우 두 개의 비밀 키들을 이용하여 제1 공개 키를 연산하는 과정은 도 1의 계수값 연산부(120) 및 키 연산부(130)에 의해 수행되는 키 연산 과정과 동일하다.
즉, 제1 연산부(320)는 타원 곡선의 경우 두 개의 비밀 키들 각각에 포함된 계수들 중 동일한 계수값을 갖는 계수들을 기초로 제1 값을 연산하고, 그 연산된 제1 값에 기초한 좌표 연산을 수행하여 제1 공개 키를 연산한다. 이때, 제1 연산부(320)는 두 개의 비밀 키들에 포함된 0이 아닌 계수값들 각각에 대해 제1 값을 연산할 수 있다.
물론, 제1 연산부(320)는 유한체의 경우 두 개의 비밀 키들 각각에 포함된 계수들 중 동일한 계수값을 갖는 계수들을 기초로 제1 값을 연산하고, 그 연산된 제1 값을 지수로 하는 지수승 연산을 수행하여 제1 공개 키를 연산한다. 이때, 제1 연산부(320)는 두 개의 비밀 키들에 포함된 0이 아닌 계수값들 각각에 대해 제1 값을 연산할 수 있다.
제2 연산부(330)는 제1 연산부(320)에 의해 연산된 제1 공개 키를 기초로 제2 공개 키를 연산한다.
이때, 제2 공개 키는 타원 곡선의 경우 [수학식 2]에 의해 연산될 수 있다.
Figure 112007021509547-pat00002
여기서, Y[i]는 제2 공개 키를 말하고, X[i]는 제1 공개 키를 말하고, α는 임의의 선택된 값을 말한다. 즉, α는 입력된 타원 곡선의 점 Q, P에 있어서, Q=αP를 만족하는 값을 말한다.
송수신부(350)는 제1 공개 키 및 제2 공개 키를 전송하고, 제3 공개 키 및 제4 공개 키를 수신한다.
이때, 송수신부(350)는 제1 공개 키 및 제2 공개 키를 제3 공개 키 및 제4 공개 키를 전송한 장치로 전송할 수 있다.
여기서, 제3 공개 키 및 제4 공개 키는 제1 공개 키 및 제2 공개 키에 상응한다.
즉, 공유 키를 생성하기 위한 두 장치 중 제1 장치가 제1 공개 키 및 제2 공개 키를 생성하고, 제2 장치가 제3 공개 키 및 제 4 공개 키를 생성하면, 제1 공개 키 및 제2 공개 키를 생성한 제1 장치가 제2 장치로부터 전송된 제3 공개 키 및 제4 공개 키를 수신한다. 물론, 제3 공개 키 및 제 4 공개 키를 생성한 제2 장치는 제1 장치로부터 전송된 제1 공개 키 및 제2 공개 키를 수신한다.
공유 키 생성부(340)는 키 생성 관리부(310)에 의해 생성된 두 개의 비밀 키들, 수신된 제3 공개 키 및 제4 공개 키를 기초로 공유 키를 생성한다.
이때, 공유 키는 타원 곡선의 경우 [수학식 3]에 의한 연산을 통해 생성될 수 있다.
Figure 112007021509547-pat00003
여기서, K는 공유 키를 말하고, x[i] 및 y[i]는 비밀 키들을 말하고, X[j] 및 Y[j]는 제3 공개 키 및 제4 공개 키를 말한다.
도 4는 도 3에 도시한 키 생성 관리부에 대한 일 실시예 구성 블록도이다.
도 4를 참조하면, 키 생성 관리부(310)는 그룹 선택부(410), 스트링 대체부(420) 및 키 생성부(430)를 포함한다.
그룹 선택부(410)는 타원 곡선의 경우 m-(w-1)*(t-1) 개의 그룹들 중 t개의 그룹을 선택하고, 유한체의 경우 m-(w-1)*t 개의 그룹들 중 t개의 그룹을 선택한다.
스트링 대체부(420)는 타원 곡선의 경우 선택된 t개의 그룹 각각을 절대값이 qw/2 이하이고 q로 나누어 떨어지지 않는 정수들 중 어느 하나와 w-1개의 0을 나열하여 구성한 스트링으로 대체하고, 유한체의 경우 선택된 t개의 그룹 각각을 2w 이하의 양의 홀수들 중 어느 하나와 w-1개의 0을 나열하여 구성한 스트링으로 대체한다.
키 생성부(430)는 타원 곡선의 경우 선택되지 않은 그룹을 0으로 대체하여 τ-adic w-NAF 비밀 키를 생성하고, 유한체의 경우 선택되지 않은 그룹을 0으로 대체하여 부호없는 w-NAF 비밀 키를 생성한다.
즉, 키 생성 관리부(310)는 그룹 선택부(410), 스트링 대체부(420) 및 키 생성부(230)를 통해 두 개의 τ-adic w-NAF 비밀 키들 또는 부호없는 w-NAF 비밀 키들을 생성한다.
도 5는 본 발명의 일 실시예에 따른 키 연산 방법에 대한 동작 흐름도이다.
도 5를 참조하면, 키 연산 방법은 키 연산을 수행하기 위한 두 개의 키들을 생성한다(S510).
이때, 키 연산을 수행하기 위한 두 개의 키들은 기 설정된 키들의 집합으로부터 선택되어 생성될 수 있다.
이때, 키 연산을 수행하기 위한 두 개의 키들은 연산을 수행하기 위한 연산 대상 키의 스플릿에 의해 생성될 수 있는데, 빠른 키 연산을 수행하기 위해 두 개의 키들 각각에 포함된 계수들 중 0이 아닌 계수의 개수가 연산 대상 키에 포함된 계수들 중 0이 아닌 계수의 개수보다 적은 것이 바람직하다.
이때, 두 개의 키들은 타원 곡선의 경우 두 개의 τ-adic w-NAF 키들일 수 있고, 유한체의 경우 두 개의 부호없는 w-NAF 키들일 수 있다.
생성된 두 개의 키들에 포함된 계수들 중 동일한 계수값을 갖는 계수들을 기초로 제1 값을 연산한다(S520).
여기서, 제1 값은 두 개의 키들에 포함된 0이 아닌 계수값들 각각에 대해 수 행된다.
즉, 타원 곡선의 경우 선택된 두 개의 τ-adic w-NAF 키들 또는 연산 대상 키에 상응하는 두 개의 τ-adic w-NAF 키들에 포함된 계수값들을 기초로 제1 값을 연산하고, 유한체의 경우 선택된 두 개의 부호없는 w-NAF 키들 또는 연산 대상 키에 상응하는 두 개의 부호없는 w-NAF 키들에 포함된 계수값들을 기초로 제1 값을 연산한다.
연산된 제1 값을 기초로 키 연산을 수행한다(S530).
즉, 연산된 제1 값들에 기초한 좌표 연산을 수행하거나 연산된 제1 값을 지수로 하여 지수승 연산을 수행한다.
도 6은 도 5에 도시한 단계 S510에 대한 일 실시예 동작 흐름도이다.
여기서, 도 6은 타원 곡선의 경우 두 개의 키들을 생성하는 동작 흐름도이다.
도 6을 참조하면, 두 개의 키들을 생성하는 단계는 m-(w-1)*(t-1) 개의 그룹들 중 임의의 t개의 그룹을 선택한다(S610).
여기서, m은 생성하고자 하는 τ-adic w-NAF 키를 구성하는 계수들의 개수와 관련된 정수이고, w는 선택된 그룹을 구성하는 계수의 개수로서 2 이상의 양의 정수이며, t는 τ-adic w-NAF 키를 구성하는 계수들 중 0이 아닌 계수의 개수로서 양의 정수이다.
그룹이 선택되면 선택된 t개의 그룹 각각을, 절대값이 qw/2 이하이고 q로 나 누어 떨어지지 않는 정수들 중 어느 하나와 w-1개의 0을 나열하여 구성한 스트링으로 대체하고, 선택되지 않은 그룹을 0으로 대체한다(S620, S630).
이때, 대체되는 스트링은 w-1개의 0뒤에 절대값이 qw/2 이하이고 q로 나누어 떨어지지 않는 정수들 중 어느 하나가 나열되어 형성된 스트링일 수 있다.
이때, 절대값이 qw/2 이하이고 q로 나누어 떨어지지 않는 정수들 중 어느 하나는 w-1개의 0뒤에 나열될 수 있다.
단계 S620 및 S630을 통해 생성된 계수열을 τ-adic w-NAF 키로 생성한다(S640).
단계 S610 내지 S640을 두 개의 τ-adic w-NAF 키들을 생성할 때까지 반복 수행한다(S650).
도 7은 도 5에 도시한 단계 S510에 대한 또 다른 일 실시예 동작 흐름도이다.
여기서, 도 7은 유한체의 경우 두 개의 키들을 생성하는 동작 흐름도이다.
도 7을 참조하면, 두 개의 키들을 생성하는 단계는 m-(w-1)*t 개의 그룹들 중 임의의 t개의 그룹을 선택한다(S710).
여기서, m은 생성하고자 하는 부호없는 w-NAF 키를 구성하는 계수들의 개수이고, w는 선택된 그룹을 구성하는 계수들의 개수로서 2 이상의 양의 정수이며, t는 부호없는 w-NAF 키를 구성하는 계수들 중 0이 아닌 계수의 개수로서 양의 정수이다.
그룹이 선택되면 선택된 t개의 그룹 각각을, 2w 이하의 양의 홀수들 중 어느 하나와 w-1개의 0을 나열하여 구성한 스트링으로 대체하고, 선택되지 않은 그룹을 0으로 대체한다(S720, S730).
단계 S720 및 S730을 통해 생성된 계수열을 부호없는 w-NAF 키로 생성한다(S740).
단계 S710 내지 S740을 두 개의 부호없는 w-NAF 키들을 생성할 때까지 반복 수행한다(S750).
도 8은 본 발명의 일 실시예에 따른 공유 키 생성 방법에 대한 동작 흐름도이다.
도 8을 참조하면, 공유 키 생성 방법은 두 개의 비밀 키들을 생성한다.
이때, 두 개의 비밀 키들은 비밀 키들의 집합으로부터 선택되어 생성될 수 있다.
이때, 두 개의 비밀 키들은 타원 곡선의 경우 두 개의 τ-adic w-NAF 비밀 키들일 수 있고, 유한체의 경우 두 개의 부호없는 w-NAF 키들일 수 있다.
생성된 두 개의 비밀 키들을 기초로 제1 공개 키를 연산한다(S820).
예컨대, 제1 공개 키는 타원 곡선의 경우 상술한 [수학식 1]에 의해 연산된다. 즉, 타원 곡선의 점 P, Q와 생성된 두 개의 τ-adic w-NAF 비밀 키들을 이용하여 제1 공개 키를 연산한다. 여기서, 타원 곡선의 점 P와 Q의 관계는 Q=αP가 되고, α는 임의의 선택된 값이다.
이때, 제1 공개 키는 타원 곡선의 경우 두 개의 비밀 키들 각각에 포함된 계수들 중 동일한 계수값을 갖는 계수들을 기초로 제1 값을 연산하고, 그 연산된 제1 값에 기초한 좌표 연산을 수행하여 얻어질 수 있다. 여기서, 제1 값은 두 개의 비밀 키들에 포함된 0이 아닌 계수값들 각각에 대해 수행된다.
이때, 제1 공개 키는 유한체의 경우 두 개의 비밀 키들 각각에 포함된 계수들 중 동일한 계수값을 갖는 계수들을 기초로 제1 값을 연산하고, 그 연산된 제1 값을 지수로 하는 지수승 연산을 수행하여 얻어질 수 있다. 여기서, 제1 값은 두 개의 비밀 키들에 포함된 0이 아닌 계수값들 각각에 대해 수행된다.
제1 공개 키가 연산되면 연산된 제1 공개 키를 기초로 제2 공개 키를 연산한다(S830).
이때, 제2 공개 키는 제1 공개 키 및 임의의 선택된 값 α를 기초로 연산될 수 있다. 예컨대, 제2 공개 키는 타원 곡선의 경우 상술한 [수학식 2]에 의해 연산된다.
제2 공개 키가 연산되면 연산된 제1 공개 키 및 제2 공개 키를 공유 키를 함께 생성할 다른 장치로 전송한다(S840). 예컨대, 제1 장치와 제2 장치 사이의 거래를 위해 두 장치에서 공유 키를 생성하고, 제1 장치가 제1 공개 키 및 제2 공개 키를 연산하는 경우 제1 장치는 제1 공개 키 및 제2 공개 키를 제2 장치로 전송한다.
공유 키를 함께 생성할 다른 장치로부터 연산되어 전송된 제3 공개 키 및 제4 공개 키를 수신한다(S850).
여기서, 제3 공개 키 및 제4 공개 키는 제1 공개 키 및 제2 공개 키에 상응한다.
공유 키 생성 장치는 생성된 두 개의 비밀 키들, 수신된 제3 공개 키 및 제4 공개 키를 기초로 공유 키를 생성한다(S860).
이때, 공유 키는 타원 곡선의 경우 상술한 [수학식 3]에 의해 생성될 수 있다.
본 발명의 일 실시예에 따른 공유 키 생성 방법에 대해 도 9를 참조하여 조금 더 설명한다.
도 9는 본 발명에 따른 공유 키 생성 방법을 설명하기 위한 일 예시도이다.
여기서, 도 9는 두 참여자간 안전 온라인 거래를 위한 공유 키를 생성하는 과정에 대한 것으로, 타원 곡선의 경우에 대한 동작 흐름도이다.
도 9를 참조하면, 제1 참여자 및 제2 참여자가 구비한 공유 키 생성 장치 각각은 두 개의 비밀 키들을 생성한다. 예컨대, 제1 참여자의 공유 키 생성 장치(이하, 제1 장치)는 두 개의 비밀 키들 x[1], y[1]을 생성하고, 제2 참여자의 공유 키 생성 장치(이하, 제2 장치)는 두 개의 비밀 키들 x[2], y[2]를 생성한다.
제1 장치는 x[1], y[1]을 기초로 공개 키들 X[1], Y[1]을 연산하고 그 연산된 X[1], Y[1]을 제2 장치로 전송한다.
제2 장치 또한 x[2], y[2]를 기초로 공개 키들 X[2], Y[2]를 연산하고 그 연산된 X[2], Y[2]를 제1 장치로 전송한다.
제1 장치는 제2 장치로부터 전송된 공개 키들 X[2], Y[2]를 수신하고, 비밀 키들 x[1], y[1] 및 수신된 공개 키들 X[2], Y[2]를 기초로 공유 키(K)를 생성한다. 이때, 제1 장치에 의해 생성된 공유 키 K는 x[1]X[2]+y[1]Y[2]가 된다.
제2 장치 또한 제1 장치로부터 전송된 공개 키들 X[1], Y[1]을 수신하고, 비밀 키들 x[2], y[2] 및 수신된 공개 키들 X[1], Y[1]을 기초로 공유 키(K)를 생성한다. 이때, 제2 장치에 의해 생성된 공유 키 K는 x[2]X[1]+y[2]Y[1]이 된다.
두 장치에 의해 생성된 두 공유 키가 일치하면 두 참여자 모두 안전한 참여자로 인식하여 안전 온라인 거래가 성립된다.
상술한 본 발명에 있어서, α가 공개되어 있지 않은 경우에는 비밀키, 제1 공개키 및 제2 공개키를 각 장치가 직접 생성하는 대신 α를 비밀 정보로 보유한 제 3의 장치로부터 전송받을 수 있으며, 이 경우 도 3의 제1 연산부(320) 및 제2 연산부(330), 도 8의 비밀키 생성 단계(S810), 제1 공개 키 연산 단계(S820) 및 제2 공개키 연산 단계(S830), 도 9의 제1 참여자의 X[1], Y[1] 연산 및 제2 참여자의 X[2], Y[2] 연산 등은 생략 가능하다.
도 10 내지 및 도 11은 본 발명에 따른 키 연산 방법이 적용된 일 실시예를 설명하기 위한 동작 흐름도로서, 본 발명의 키 연산 방법이 전자 서명에 적용된 경우이다. 이하, 타원 곡선의 경우에 대한 전자 서명을 설명한다.
도 10은 전자 서명을 생성하고 배포하는 과정의 동작 흐름도이다.
도 10을 참조하면, 서명을 생성하기 위한 비밀 키들, 제1 공개 키 및 제2 공개 키를 생성한다(S1010).
예컨대, 두 개의 τ-adic w-NAF 비밀 키들 x, y를 생성하고 x, y를 이용하여 제1 공개 키 X 및 제2 공개 키 Y를 생성 또는 연산한다.
이때, 제1 공개 키 및 제2 공개 키는 [수학식 4]에 의해 연산될 수 있다.
Figure 112007021509547-pat00004
여기서, X 및 Y는 제1 공개 키 및 제2 공개 키를 말하고, x 및 y는 비밀 키들을 말하고, P는 위수 p의 생성자를 말하고, α는 {0, 1, ..., p-1}에서 선택된 임의의 수를 말한다.
그 다음, 랜덤 공개 키를 생성한다(S1020).
이때, 랜덤 공개 키 R=rP가 되고, r은 {0, 1, ..., p-1}에서 선택된 임의의 수로서 랜덤 비밀 키이다.
생성된 비밀 키들 및 랜덤 공개 키를 기초로 서명 값을 생성한다(S1030).
이때, 서명 값은 [수학식 5]에 의해 생성될 수 있다.
Figure 112007021509547-pat00005
여기서, σ는 서명 값을 말하고, r 및 α는 {0, 1, ..., p-1}에서 선택된 임의의 수를 말하고, x 및 y는 비밀 키들을 말하고, H는 해시(hash) 함수를 말하고, m은 메시지를 말하고, R는 공개 랜덤 키를 말한다.
메시지에 대한 서명 값이 생성되면 메시지에 대한 전자 서명을 생성하여 배포한다(S1040).
이때, 전자 서명은 (c1, c2, σ)로 구성될 수 있다.
이런 과정을 통해 생성된 전자 서명이 사용자에게 배포된다.
도 11은 배포된 전자 서명을 수신하여 전자 서명 검증을 수행하는 동작 흐름도이다.
도 11을 참조하면, 배포된 전자 서명들을 수신한다(S1110). 즉, 배포된 (c1, c2, σ)의 전자 서명을 수신한다.
배포된 전자 서명이 수신되면 수신된 전자 서명, 전자 서명 생성 시 생성된 제1 공개 키 및 제2 공개 키를 기초로 제1 서명 검증 값을 연산한다(S1120).
예컨대, 제1 서명 검증 값은 H(m, σP- c1X- c2Y)가 될 수 있다.
제1 서명 검증 값이 연산되면 연산된 제1 서명 검증 값과 기 결정된 검증 판단 값을 비교한다(S1130).
이때, 검증 판단 값은 H(c1, c2)가 될 수 있다.
단계 S1130 판단 결과, 제1 서명 검증 값과 검증 판단 값이 일치하면 수신된 전자 서명이 검증된 것으로 판단한다(S1140).
반면, 단계 S1130 판단 결과, 제1 서명 검증 값과 검증 판단 값이 다르면 수신된 전자 서명이 이상한 것으로 판단한다(S1150).
 본 발명에 따른 키 연산 방법 및 이를 이용한 공유 키 생성 방법은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 매체에 기록되는 프로그램 명령은 본 발명을 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 상기 매체는 프로그램 명령, 데이터 구조 등을 지정하는 신호를 전송하는 반송파를 포함하는 광 또는 금속선, 도파관 등의 전송 매체일 수도 있다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다. 상기된 하드웨어 장치는 본 발명의 동작을 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.
이상과 같이 본 발명은 비록 한정된 실시예와 도면에 의해 설명되었으나, 본 발명은 상기의 실시예에 한정되는 것은 아니며, 본 발명이 속하는 분야에서 통상의 지식을 가진 자라면 이러한 기재로부터 다양한 수정 및 변형이 가능하다.
그러므로, 본 발명의 범위는 설명된 실시예에 국한되어 정해져서는 아니 되며, 후술하는 특허청구범위뿐 아니라 이 특허청구범위와 균등한 것들에 의해 정해져야 한다.
본 발명의 일 실시예에 따른 키 연산 방법 및 이를 이용한 공유 키 생성 방법은, 두 개의 키들을 이용한 좌표 연산 또는 지수승 연산을 수행하여 안전성을 유지하면서 연산 처리 속도를 향상시킬 수 있다.
또한, 본 발명은 두 개의 비밀 키들 및 수신된 두 개의 공개 키들을 두 개의 키들을 이용한 키 연산 기능을 통해 공유 키를 생성할 수 있다.
또한, 본 발명은 적은 메모리를 이용하면서 연산 처리 속도를 향상시킬 수 있다.

Claims (31)

  1. 키 연산을 수행하기 위한 두 개의 키들을 생성하는 단계;
    상기 두 개의 키들에 포함된 0이 아닌 계수값들 각각에 대해 상기 두 개의 키들 각각에 포함된 계수들 중 동일한 계수값을 갖는 계수들을 기초로 제1 값을 연산하는 단계; 및
    상기 연산된 제1 값을 기초로 좌표 연산 또는 지수승 연산을 수행하는 단계
    를 포함하고,
    상기 좌표 연산 또는 상기 지수승 연산을 수행하는 단계는,
    상기 두 개의 키들 각각의 절대값이 qw/2 이하이고 q로 나누어 떨어지지 않는 정수이며 연속된 w개의 계수들 중 0이 아닌 계수가 최대 하나인 키이고, 상기 q는 소수 또는 소수의 멱수이고, 상기 w는 2 이상의 자연수이면, 상기 좌표 연산을 수행하고,
    상기 두 개의 키들 각각의 각 계수가 0 또는 2w 이하의 양의 홀수이며 연속된 w개의 계수들 중 0이 아닌 계수가 최대 하나인 키이고, 상기 w는 2 이상의 자연수이면, 상기 지수승 연산을 수행하는,
    키 연산 방법.
  2. 삭제
  3. 제1항에 있어서,
    상기 좌표 연산을 수행하는 경우를 위한 상기 두 개의 키들 각각은
    m-(w-1)*(t-1) 개의 그룹들 중 t개의 그룹을 선택하는 단계;
    선택된 상기 t개의 그룹 각각을 절대값이 qw/2 이하이고 q로 나누어 떨어지지 않는 정수들 중 어느 하나와 w-1개의 0을 나열하여 구성한 스트링으로 대체하는 단계; 및
    선택되지 않은 그룹을 0으로 대체하는 단계
    를 통해 생성되고,
    상기 m 및 상기 t는 양의 정수인 것을 특징으로 하는 키 연산 방법.
  4. 삭제
  5. 제1항에 있어서,
    상기 지수승 연산을 수행하는 경우를 위한 상기 두 개의 키들 각각은
    m-(w-1)*t 개의 그룹들 중 t개의 그룹을 선택하는 단계;
    선택된 상기 t개의 그룹 각각을 2w 이하의 양의 홀수들 중 어느 하나와 w-1개의 0을 나열하여 구성한 스트링으로 대체하는 단계; 및
    선택되지 않은 그룹을 0으로 대체하여 단계
    를 통해 생성되고,
    상기 m 및 상기 t는 양의 정수인 것을 특징으로 하는 키 연산 방법.
  6. 제1항에 있어서,
    상기 두 개의 키들을 생성하는 단계는
    연산을 수행하기 위한 연산 대상 키를 스플릿하여 상기 연산 대상 키에 상응하는 상기 두 개의 키들을 생성하고,
    상기 두 개의 키들 각각에 포함된 계수들 중 0이 아닌 계수의 개수가 상기 연산 대상 키에 포함된 계수들 중 0이 아닌 계수의 개수보다 적은 것을 특징으로 하는 키 연산 방법.
  7. 제1항에 있어서,
    상기 두 개의 키들을 생성하는 단계는
    기 설정된 키들의 집합으로부터 상기 두 개의 키들을 선택하여 상기 두 개의 키들을 생성하는 것을 특징으로 하는 키 연산 방법.
  8. 두 개의 비밀 키들을 생성하는 단계;
    상기 두 개의 비밀 키들에 포함된 0이 아닌 계수값들 각각에 대해 상기 두 개의 비밀 키들 각각에 포함된 계수들 중 동일한 계수값을 갖는 계수들을 기초로 제1 값을 연산하는 단계;
    상기 연산된 제1 값을 기초로 좌표 연산 또는 지수승 연산을 수행하여 제1 공개 키를 연산하는 단계;
    상기 제1 공개 키를 기초로 제2 공개 키를 연산하는 단계;
    상기 제1 공개 키 및 상기 제2 공개 키를 전송하고, 제3 공개 키 및 제4 공개 키를 수신하는 단계; 및
    상기 두 개의 비밀 키들, 상기 제3 공개 키 및 상기 제4 공개 키를 기초로 공유 키를 생성하는 단계
    를 포함하고,
    상기 1 공개 키를 연산하는 단계는,
    상기 두 개의 키들 각각의 절대값이 qw/2 이하이고 q로 나누어 떨어지지 않는 정수이며 연속된 w개의 계수들 중 0이 아닌 계수가 최대 하나인 키이고, 상기 q는 소수 또는 소수의 멱수이고, 상기 w는 2 이상의 자연수이면, 상기 연산된 제1 값을 기초한 상기 좌표 연산을 수행하여 상기 제1 공개 키를 연산하고,
    상기 두 개의 키들 각각의 각 계수가 0 또는 2w 이하의 양의 홀수이며 연속된 w개의 계수들 중 0이 아닌 계수가 최대 하나인 키이고, 상기 w는 2 이상의 자연수이면, 상기 연산된 제1 값을 지수로 하는 상기 지수승 연산을 수행하여 상기 제1 공개키 연산을 수행하는
    공유 키 생성 방법.
  9. 삭제
  10. 삭제
  11. 제8항에 있어서,
    상기 좌표 연산을 수행하는 경우를 위한 상기 두 개의 비밀 키들 각각은
    m-(w-1)*(t-1) 개의 그룹들 중 t개의 그룹을 선택하는 단계;
    선택된 상기 t개의 그룹 각각을 절대값이 qw/2 이하이고 q로 나누어 떨어지지 않는 정수들 중 어느 하나와 w-1개의 0을 나열하여 구성한 스트링으로 대체하는 단계; 및
    선택되지 않은 그룹을 0으로 대체하는 단계
    를 통해 생성되고,
    상기 m 및 상기 t는 양의 정수인 것을 특징으로 하는 공유 키 생성 방법.
  12. 삭제
  13. 삭제
  14. 제8항에 있어서,
    상기 지수승 연산을 수행하는 경우를 위한 상기 두 개의 비밀 키들 각각은
    m-(w-1)*t 개의 그룹들 중 t개의 그룹을 선택하는 단계;
    선택된 상기 t개의 그룹 각각을 2w 이하의 양의 홀수들 중 어느 하나와 w-1개의 0을 나열하여 구성한 스트링으로 대체하는 단계; 및
    선택되지 않은 그룹을 0으로 대체하는 단계
    를 통해 생성되고,
    상기 m 및 상기 t는 양의 정수인 것을 특징으로 하는 공유 키 생성 방법.
  15. 제8항에 있어서,
    상기 제1 공개 키 및 상기 제2 공개 키는
    상기 제3 공개 키 및 상기 제4 공개 키를 전송한 장치로 전송되는 것을 특징으로 하는 공유 키 생성 방법.
  16. 제1항, 제3항, 제5항, 제6항, 제7항, 제8항, 제11항, 제14항 또는 제15항 중 어느 하나의 항의 방법을 실행시키기 위한 프로그램을 기록한 컴퓨터 판독 가능한 기록 매체.
  17. 키 연산을 수행하기 위한 두 개의 키들을 생성하는 키 생성 관리부;
    상기 두 개의 키들에 포함된 0이 아닌 계수값들 각각에 대해 상기 두 개의 키들 각각에 포함된 계수들 중 동일한 계수값을 갖는 계수들을 기초로 제1 값을 연산하는 계수값 연산부; 및
    상기 연산된 제1 값을 기초로 좌표 연산 또는 지수승 연산을 수행하는 키 연산부
    를 포함하고,
    상기 키 연산부는,
    상기 두 개의 키들 각각의 절대값이 qw/2 이하이고 q로 나누어 떨어지지 않는 정수이며 연속된 w개의 계수들 중 0이 아닌 계수가 최대 하나인 키이고, 상기 q는 소수 또는 소수의 멱수이고, 상기 w는 2 이상의 자연수이면, 상기 좌표 연산을 수행하고,
    상기 두 개의 키들 각각의 각 계수가 0 또는 2w 이하의 양의 홀수이며 연속된 w개의 계수들 중 0이 아닌 계수가 최대 하나인 키이고, 상기 w는 2 이상의 자연수이면, 상기 지수승 연산을 수행하는
    키 연산 장치.
  18. 삭제
  19. 제17항에 있어서,
    상기 키 생성 관리부는
    m-(w-1)*(t-1) 개의 그룹들 중 t개의 그룹을 선택하는 그룹 선택부;
    선택된 상기 t개의 그룹 각각을 절대값이 qw/2 이하이고 q로 나누어 떨어지지 않는 정수들 중 어느 하나와 w-1개의 0을 나열하여 구성한 스트링으로 대체하는 스트링 대체부; 및
    선택되지 않은 그룹을 0으로 대체하여 키를 생성하는 키 생성부
    를 포함하고,
    상기 m 및 상기 t는 양의 정수이고,
    상기 키 생성 관리부는 상기 그룹 선택부, 상기 스트링 대체부 및 상기 키 생성부를 통해 상기 좌표 연산을 수행하는 경우를 위한 상기 두 개의 키들을 생성하는 것을 특징으로 하는 키 연산 장치.
  20. 삭제
  21. 제17항에 있어서,
    상기 키 생성 관리부는
    m-(w-1)*t 개의 그룹들 중 t개의 그룹을 선택하는 그룹 선택부;
    선택된 상기 t개의 그룹 각각을 2w 이하의 양의 홀수들 중 어느 하나와 w-1개의 0을 나열하여 구성한 스트링으로 대체하는 스트링 대체부; 및
    선택되지 않은 그룹을 0으로 대체하여 키를 생성하는 키 생성부
    를 포함하고,
    상기 m 및 상기 t는 양의 정수이고,
    상기 키 생성 관리부는 상기 그룹 선택부, 상기 스트링 대체부 및 상기 키 생성부를 통해 상기 두 개의 키들을 생성하는 것을 특징으로 하는 키 연산 장치.
  22. 제17항에 있어서,
    상기 키 생성 관리부는
    연산을 수행하기 위한 연산 대상 키를 스플릿하여 상기 연산 대상 키에 상응하는 상기 두 개의 키들을 생성하고,
    상기 두 개의 키들 각각에 포함된 계수들 중 0이 아닌 계수의 개수가 상기 연산 대상 키에 포함된 계수들 중 0이 아닌 계수의 개수보다 적은 것을 특징으로 하는 키 연산 장치.
  23. 제17항에 있어서,
    상기 키 생성 관리부는
    기 설정된 키들의 집합으로부터 상기 두 개의 키들을 선택하여 상기 두 개의 키들을 생성하는 것을 특징으로 하는 키 연산 장치.
  24. 두 개의 비밀 키들을 생성하는 키 생성 관리부;
    상기 두 개의 비밀 키들에 포함된 0이 아닌 계수값들 각각에 대해 상기 두 개의 비밀 키들 각각에 포함된 계수들 중 동일한 계수값을 갖는 계수들을 기초로 제1 값을 연산하고, 상기 연산된 제1 값을 기초로 좌표 연산 또는 지수승 연산을 수행하여 제1 공개 키를 연산하는 제1 연산부;
    상기 제1 공개 키를 기초로 제2 공개 키를 연산하는 제2 연산부;
    상기 제1 공개 키 및 상기 제2 공개 키를 전송하고, 제3 공개 키 및 제4 공개 키를 수신하는 송수신부; 및
    상기 두 개의 비밀 키들, 수신된 상기 제3 공개 키 및 상기 제4 공개 키를 기초로 공유 키를 생성하는 공유 키 생성부를 포함하고,
    상기 제1 연산부는,
    상기 두 개의 키들 각각의 절대값이 qw/2 이하이고 q로 나누어 떨어지지 않는 정수이며 연속된 w개의 계수들 중 0이 아닌 계수가 최대 하나인 키이고, 상기 q는 소수 또는 소수의 멱수이고, 상기 w는 2 이상의 자연수이면, 상기 연산된 제1 값을 기초한 상기 좌표 연산을 수행하여 상기 제1 공개 키를 연산하고,
    상기 두 개의 키들 각각의 각 계수가 0 또는 2w 이하의 양의 홀수이며 연속된 w개의 계수들 중 0이 아닌 계수가 최대 하나인 키이고, 상기 w는 2 이상의 자연수이면, 상기 연산된 제1 값을 지수로 하는 상기 지수승 연산을 수행하여 상기 제1 공개키 연산을 수행하는
    공유 키 생성 장치.
  25. 삭제
  26. 삭제
  27. 제24항에 있어서,
    상기 키 생성 관리부는
    m-(w-1)*(t-1) 개의 그룹들 중 t개의 그룹을 선택하는 그룹 선택부;
    선택된 상기 t개의 그룹 각각을 절대값이 qw/2 이하이고 q로 나누어 떨어지지 않는 정수들 중 어느 하나와 w-1개의 0을 나열하여 구성한 스트링으로 대체하는 스트링 대체부; 및
    선택되지 않은 그룹을 0으로 대체하여 비밀 키를 생성하는 키 생성부
    를 포함하고,
    상기 m 및 상기 t는 양의 정수이고,
    상기 키 생성 관리부는 상기 그룹 선택부, 상기 스트링 대체부 및 상기 키 생성부를 통해 상기 좌표 연산을 수행하는 경우를 위한 상기 두 개의 비밀 키들을 생성하는 것을 특징으로 공유 키 생성 장치.
  28. 삭제
  29. 삭제
  30. 제24항에 있어서,
    상기 키 생성 관리부는
    m-(w-1)*t 개의 그룹들 중 t개의 그룹을 선택하는 그룹 선택부;
    선택된 상기 t개의 그룹 각각을 2w 이하의 양의 홀수들 중 어느 하나와 w-1개의 0을 나열하여 구성한 스트링으로 대체하는 스트링 대체부; 및
    선택되지 않은 그룹을 0으로 대체하여 비밀 키를 생성하는 키 생성부
    를 포함하고,
    상기 m 및 상기 t는 양의 정수이고,
    상기 키 생성 관리부는 상기 그룹 선택부, 상기 스트링 대체부 및 상기 키 생성부를 통해 상기 지수승 연산을 수행하는 경우를 위한 상기 두 개의 비밀 키들을 생성하는 것을 특징으로 공유 키 생성 장치.
  31. 제24항에 있어서,
    상기 송수신부는
    상기 제1 공개 키 및 상기 제2 공개 키를 상기 제3 공개 키 및 상기 제4 공개 키를 전송한 장치로 전송하는 것을 특징으로 하는 공유 키 생성 장치.
KR1020070026334A 2007-03-16 2007-03-16 키 연산 방법 및 이를 이용한 공유 키 생성 방법 KR101405321B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020070026334A KR101405321B1 (ko) 2007-03-16 2007-03-16 키 연산 방법 및 이를 이용한 공유 키 생성 방법
US11/835,720 US8160256B2 (en) 2007-03-16 2007-08-08 Key calculation method and key agreement method using the same

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020070026334A KR101405321B1 (ko) 2007-03-16 2007-03-16 키 연산 방법 및 이를 이용한 공유 키 생성 방법

Publications (2)

Publication Number Publication Date
KR20080084499A KR20080084499A (ko) 2008-09-19
KR101405321B1 true KR101405321B1 (ko) 2014-06-27

Family

ID=39762721

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020070026334A KR101405321B1 (ko) 2007-03-16 2007-03-16 키 연산 방법 및 이를 이용한 공유 키 생성 방법

Country Status (2)

Country Link
US (1) US8160256B2 (ko)
KR (1) KR101405321B1 (ko)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101309797B1 (ko) * 2006-12-01 2013-09-23 삼성전자주식회사 성긴 w-NAF 키 생성방법,이를 이용한 연산 방법 및암호화 방법
JP5360836B2 (ja) * 2008-08-29 2013-12-04 国立大学法人 岡山大学 ペアリング演算装置、ペアリング演算方法、及びペアリング演算プログラム
FR2947404B1 (fr) * 2009-06-30 2011-12-16 Sagem Securite Cryptographie par parametrisation sur une courbe elliptique
US8549299B2 (en) 2011-02-28 2013-10-01 Certicom Corp. Accelerated key agreement with assisted computations
EP2493112B1 (en) * 2011-02-28 2018-02-28 Certicom Corp. Accelerated key agreement with assisted computations
JP5367039B2 (ja) * 2011-09-30 2013-12-11 株式会社東芝 サーバ装置及びプログラム
CN107820283B (zh) * 2016-09-13 2021-04-09 华为技术有限公司 一种网络切换保护方法、相关设备及系统

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050251680A1 (en) 2004-04-02 2005-11-10 Brown Michael K Systems and methods to securely generate shared keys
US20060034457A1 (en) 2004-08-12 2006-02-16 Damgaard Ivan B Key derivation functions to enhance security
US7043018B1 (en) * 1998-11-27 2006-05-09 Murata Kikai Kabushiki Kaisha Prime number generation method, prime number generation apparatus, and cryptographic system

Family Cites Families (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4935961A (en) * 1988-07-27 1990-06-19 Gargiulo Joseph L Method and apparatus for the generation and synchronization of cryptographic keys
US5123047A (en) * 1988-12-09 1992-06-16 The Exchange System Limited Partnership Method of updating encryption device monitor code in a multichannel data encryption system
US5016277A (en) * 1988-12-09 1991-05-14 The Exchange System Limited Partnership Encryption key entry method in a microcomputer-based encryption system
US5835592A (en) * 1995-06-01 1998-11-10 Chang; Chung Nan Secure, swift cryptographic key exchange
US5583939A (en) * 1995-06-01 1996-12-10 Chung N. Chang Secure, swift cryptographic key exchange
WO1999005818A1 (en) * 1997-07-28 1999-02-04 The Director Government Communications Headquarters Split-key cryptographic system and method
US6701434B1 (en) * 1999-05-07 2004-03-02 International Business Machines Corporation Efficient hybrid public key signature scheme
WO2001030020A1 (fr) * 1999-10-20 2001-04-26 Fujitsu Limited Systeme de cryptage de cle a longueur variable
JP3724399B2 (ja) * 2001-01-23 2005-12-07 株式会社日立製作所 疑似乱数生成装置またはそれを用いた暗号復号処理装置
US7251326B2 (en) * 2001-06-29 2007-07-31 Harris Corporation Method and apparatus for data encryption
JP3822501B2 (ja) * 2002-01-28 2006-09-20 株式会社東芝 識別情報復号装置及び識別情報復号方法、識別情報埋込装置及び識別情報埋込方法、並びにプログラム
ATE352830T1 (de) * 2002-10-26 2007-02-15 Additional Director Ipr Defenc Verfahren zur elliptische-kurven-verschlüsselung
US7263185B2 (en) * 2003-02-27 2007-08-28 Realnetworks, Inc. Key based decipher including its generation, distribution and usage
US20060002562A1 (en) * 2003-06-02 2006-01-05 Arkady Berenstein Method and apparatus for geometric key establishment protocols based on topological groups
EP1649635A1 (en) 2003-07-31 2006-04-26 THOMSON Licensing Generation and validation of diffie-hellman digital signatures
JP4611305B2 (ja) * 2003-10-03 2011-01-12 パナソニック株式会社 情報伝達システム、暗号装置及び復号装置
WO2005039100A1 (en) * 2003-10-16 2005-04-28 Matsushita Electric Industrial Co., Ltd. Encrypted communication system and communication device
EP1578051B1 (en) * 2004-03-18 2008-10-29 STMicroelectronics (Research & Development) Limited Apparatus comprising a key selector and a key update mechanism for encrypting/decrypting data to be written/read in a store
US7613881B2 (en) * 2004-06-08 2009-11-03 Dartdevices Interop Corporation Method and system for configuring and using virtual pointers to access one or more independent address spaces
US7805615B2 (en) * 2005-07-15 2010-09-28 Tyfone, Inc. Asymmetric cryptography with user authentication
JP4664850B2 (ja) * 2006-03-30 2011-04-06 株式会社東芝 鍵生成装置、プログラム及び方法
US7813503B2 (en) * 2006-09-13 2010-10-12 Pitney Bowes Inc. Method and system for generation of cryptographic keys for use in cryptographic systems

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7043018B1 (en) * 1998-11-27 2006-05-09 Murata Kikai Kabushiki Kaisha Prime number generation method, prime number generation apparatus, and cryptographic system
US20050251680A1 (en) 2004-04-02 2005-11-10 Brown Michael K Systems and methods to securely generate shared keys
US20060034457A1 (en) 2004-08-12 2006-02-16 Damgaard Ivan B Key derivation functions to enhance security

Also Published As

Publication number Publication date
KR20080084499A (ko) 2008-09-19
US8160256B2 (en) 2012-04-17
US20080226083A1 (en) 2008-09-18

Similar Documents

Publication Publication Date Title
KR101273465B1 (ko) 집합 검증 장치 및 그 방법
KR101405321B1 (ko) 키 연산 방법 및 이를 이용한 공유 키 생성 방법
KR101194837B1 (ko) 멱지수를 숨기는 dpa 대책의 고속 계산을 위한 암호화장치 및 방법
US9064123B2 (en) Secure product-sum combination system, computing apparatus, secure product-sum combination method and program therefor
JP5329676B2 (ja) 鍵合意プロトコルの加速
US7853013B2 (en) Cryptographic method and system for encrypting input data
KR101269737B1 (ko) 암호 처리 장치 및 암호 처리 방법과 프로그램을 기록한 컴퓨터 판독 가능한 기록매체
EP3035587B1 (en) Hypersphere-based multivariable public key signature/verification system and method
KR20120028432A (ko) 타원곡선암호를 위한 연산 장치 및 방법
US20220092150A1 (en) Calculation verification for approximate calculation
JP5972181B2 (ja) 改ざん検知装置、改ざん検知方法、およびプログラム
US9419789B2 (en) Method and apparatus for scalar multiplication secure against differential power attacks
JP2020053860A (ja) 秘匿計算装置、秘匿計算方法及び秘匿計算プログラム
CN111740821B (zh) 建立共享密钥的方法及装置
EP2493112B1 (en) Accelerated key agreement with assisted computations
KR101309797B1 (ko) 성긴 w-NAF 키 생성방법,이를 이용한 연산 방법 및암호화 방법
KR101989950B1 (ko) 부채널 공격에 안전한 연산 장치 및 방법
KR100723863B1 (ko) 랜덤화한 프로베니우스 분해방법을 이용한 차분 공격 방지방법 및 그 장치
KR20180121247A (ko) 부채널 공격에 안전한 연산 장치 및 방법
KR20230003954A (ko) 영지식 증명을 위한 암호문 처리 방법 및 장치
KR102507861B1 (ko) 부채널 공격에 안전한 연산 장치 및 방법
EP3854024B1 (en) Identity-based encryption method based on lattices
KR102510077B1 (ko) 부채널 공격에 안전한 연산 장치 및 방법
JP2008299335A (ja) 圧縮rsa係数の計算方法
JP5010508B2 (ja) 楕円曲線暗号演算装置、方法及びプログラム並びに楕円曲線暗号演算システム及び方法

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: 20170522

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20180518

Year of fee payment: 5