KR101035394B1 - 공개키 생성시간좌표를 이용한 ecc 인증방법 - Google Patents

공개키 생성시간좌표를 이용한 ecc 인증방법 Download PDF

Info

Publication number
KR101035394B1
KR101035394B1 KR1020080048224A KR20080048224A KR101035394B1 KR 101035394 B1 KR101035394 B1 KR 101035394B1 KR 1020080048224 A KR1020080048224 A KR 1020080048224A KR 20080048224 A KR20080048224 A KR 20080048224A KR 101035394 B1 KR101035394 B1 KR 101035394B1
Authority
KR
South Korea
Prior art keywords
public key
mobile terminal
server
generation time
coordinate
Prior art date
Application number
KR1020080048224A
Other languages
English (en)
Other versions
KR20090122029A (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 KR1020080048224A priority Critical patent/KR101035394B1/ko
Publication of KR20090122029A publication Critical patent/KR20090122029A/ko
Application granted granted Critical
Publication of KR101035394B1 publication Critical patent/KR101035394B1/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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3263Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving certificates, e.g. public key certificate [PKC] or attribute certificate [AC]; Public key infrastructure [PKI] arrangements

Abstract

본 발명은 유한체(GF(P))상에서 파라미터를 생성하는 타원곡선 E(GF(p))인
Figure 112010031339116-pat00001
연산자가 서버/모바일단말기에 설치되고, 임의로 생성되어 미리 설정된 파라미터 a, b, p가 상기 E(GF(p))에 입력되어 타원곡선상의 임의의 점의 좌표 파라미터 G를 생성하여 공유하는 단계와 G점의 좌표 및 서버의 공개키 생성시간값을 좌표로 나타낸 시간좌표 T를 덧셈연산을 수행하여 서버 공개키 R을 생성하고, 이를 모바일단말기로 전송하는 단계와 모바일단말기는 전송받은 서버공개키에 대하여 G의 역원과 덧셈연산을 수행하여 T를 복원하고, 이를 모바일단말기 공개키 시간값과 통합하여 모바일단말기 공개키 생성시간좌표 T'를 생성하는 단계와 모바일단말기는 T'와 G점의 좌표에 대하여 덧셈연산을 수행하여 모바일단말기 공개키 C를 생성하고, 서버로 전송하는 단계와 서버는 전송받은 모바일단말기 공개키 C에 대하여 G의 역원과 덧셈연산을 수행하여 T'를 복원하는 단계와 상기 서버 공개키 생성시간과 상기 모바일단말기 공개키 생성시간 차의 절대값을 계산하여 배수k로 지정하는 단계와 서버와 모바일단말기에서 G점의 좌표에 배수k 만큼 스칼라 곱을 하여 암호키 Q/복호키 Q'를 생성하고 암호화/복호화하는 단계를 포함하는 공개키 생성시간좌표를 이용한 ECC 인증방법에 관한 것이다. 본 발명은 서버와 모바일 단말기에서 공개키 전송에 소요되는 시간값 차를 이용하여 암호키를 생성함으로써, 스칼라 곱을 위주로 연산을 수행하던 종래 ECC 암호화 방법에 비해 연산을 단순화하여 부하를 줄이고, 상기 공개키 전송에 소요되는 시간값이 일정 시간을 초과한 경우 및 동일한 공개키가 2회 이상 수신된 경우 인증실패결정을 하여 제3자에 의한 정보 유출을 방지하는 효과가 있다.
암호화, 복호화, ECC 알고리즘, 서버, 공개키

Description

공개키 생성시간좌표를 이용한 ECC 인증방법{ECC Authentication method using Public Key Generation Time Coordinates}
본 발명은 두 개체의 상호인증에 관한 정보 보안 기술로서, 특히 타원곡선을 이용하여 공개키 생성 시 인증절차를 처리하는 두 통신기기 사이에 공개키 생성시간좌표를 이용하여 공개키를 생성하고 생성된 공개키 및 상대 통신기기로부터 전송된 공개키를 이용하여 데이터를 암호화하여 인증절차를 처리하는 ECC 인증방법에 관한 것이다.
최근 이동성을 제공하는 네트워크 단말기인 PDA, 휴대폰, 노트북 등의 보급과 확산으로 인해 데이터 통신의 수요가 증폭되고 있다. 따라서 데이터의 안전한 송,수신의 관심이 증폭되고 있으며 특히 개인 정보(주민등록번호, 공인인증서 등) 보호를 위한 연구가 활발히 진행 중이다.
정보의 암호화/복호화 기술은 '키' 값을 이용하여 암호화하여 전송하고 수신자는 복호화 과정을 통해 원래의 정보를 추출하는 방법으로 제3자가 암호화된 정보 를 가로채도 원래의 정보를 알 수 없도록 하는 것이다.
암호화/복호화 방식은 대칭키(Symmetric Key) 방식과 비대칭키(Asymmetric Key) 방식이 있으며, 대칭키에 기반한 암호 알고리즘은 암호화될 때의 키와 복호화될 때의 키가 같은 키가 사용된다. 이러한 대칭키 암호기술은 암호화와 복호화에서 빠른 속도를 가지는 장점이 있으나, 키 관리 및 키 분배에 어려움이 있고, 각각의 송수신자가 다른 키를 가지고 있어야 하므로 관리하는 키의 숫자가 많아지고 키가 전달되는 과정에서 노출될 가능성이 큰 문제가 있다.
따라서 효율적인 키 관리 및 분배 기법이 필요하게 되었고, 적은 수의 키로 다수의 상대방과 안전한 통신을 가능하게 하고 전자서명 용도로도 활용할 수 있는 효율적인 암호기법이 필요하게 된 것이다. 이와 같은 배경에서 등장한 암호화 기법이 공개키 방식이다.
공개키 암호기술은 공개키(Public Key)와 개인키(Private Key)를 사용해서 인증과 서명 및 암호화를 수행하며, 암호키와 복호키가 다르기 때문에 비대칭 암호화라고도 불린다. 공개키 암호기술로는 RSA(Rivest Shamir Adleman), DES(Data Encryption Standard), AES(Advanced Encryption Standard) 등의 암호 알고리즘이 개발되어 표준화되었다.
종래에 가장 널리 사용해왔던 암호 알고리즘은 RSA로, RSA는 암호화 및 복호화를 위해 막대한 계산량이 필요한 것은 물론 처리속도가 느리다는 단점이 있고, RSA를 이용해 공개키 암호시스템을 구축하기 위해 CPU, 메모리 등의 하드웨어의 고급화를 수반한다. 더욱이 개인이 하나씩의 공개키를 취득하게 되는 이동형 단말 장 치(Mobile Appliance)를 이용하고자 할 때, 처리용량 및 속도 개선은 불가피한 것이다.
이에 대응하는 새로운 공개키 방식이 제시되고 있는데 바로 타원 곡선의 원리를 이용한 타원곡선 암호화기법이다.
타원곡선 암호시스템(Elliptic Curve Crypto-system: ECC)은 Neal Kobliz와 Victor Miller에 의해 1985년에 제안된 이후로 공개키 암호 시스템으로서 많은 연구가 수행되어 왔다. 이 암호 시스템은 타원곡선 상의 점들의 이산대수의 어려움에 기반한 것으로, 같은 안전도에서 비교할 때 기존의 공캐키 암호시스템으로 널리 활용되는 RSA(Rivest-Shamir-Adleman)/DSA(Digital Signature Algorithm)보다 빠르고, 키의 크기가 작다는 장점이 있다. 예를 들어, 약 160비트의 키 크기를 가지는 ECC의 안전도는 키 크기가 1024비트인 RSA의 안전도와 동일하다고 알려져 있다.
타원곡선 암호시스템은 스칼라 곱셈(scalar multiplication)연산을 바탕으로 공개키 분배 및 디지털 서명 등의 기능을 수행하며,상기 타원곡선 암호에서의 연산은 타원곡선 위의 점들의 연산으로 구성되는데, 이 타원곡선 위의 점의 연산들은 유한체의 덧셈, 유한체 뺄셈, 유한체 곱셈, 유한체 나눗셈 등의 조합으로 이루어 지며, 유한체의 곱셈의 경우 시간이 많이 소요되고 부하가 많이 걸리는 문제점이 있다. 따라서, 타원곡선에 기반을 둔 암호화 방법은 공개키 생성시 유한체의 곱셈 연산을 감소시킬 필요가 있다.
본 발명은 전술한 문제점을 해소하기 위하여 안출된 것으로서, 본 발명의 목적은 인증절차를 처리하는 양 통신기기간에 공개키 전송에 소요되는 시간값 차를 이용하여 암호키를 생성함으로써, 종래의 암호키 생성시 연산에 사용되는 유한체의 곱셈 연산 수를 감소시켜 통신 속도를 개선하고 매 인증시마다 다른 공개키를 생성하며, 상기 공개키 생성 시간값 차가 일정 시간 범위를 초과하게 되면 인증절차가 진행되지 않도록 인증실패결정을 하여 안전하게 메시지를 전송하는 공개키 생성 시간좌표를 이용한 ECC 인증방법을 제안하는데 그 목적이 있다.
상기의 과제를 해결하기 위하여, 본 발명의 일실시예에 따르면 유한체(GF(p))상에서 파라미터를 생성하는 타원곡선 E(GF(p))인
Figure 112010031339116-pat00002
연산자가 서버 및 모바일단말기에 설치되고, 임의로 생성되어 미리 설정된 파라미터 a, b, p가 상기 E(GF(p))에 입력되어 타원곡선상의 임의의 점의 좌표 파라미터 G를 생성하여 공유하는 단계와 서버는 상기 모바일단말기로부터 서비스 요청 신호가 수신되면, 상기 생성된 타원곡선상의 G점의 좌표 (XG, YG) 및 상기 서버의 공개키 생성시간값을 좌표로 나타낸 시간좌표 T를 상기 타원곡선상의 덧셈연산을 수행하여 서버 공개키 R을 생성하고, 상기 서버 공개키 R을 모바일단말기로 전송하는 단계와 모바일단말기는 전송받은 서버 공개키에 대하여 상기 타원곡선상의 G의 역원과 덧셈연산을 수행하여 상기 서버 공개키 생성시간좌표 T를 복원하고, 상기 복원된 서버 공개키 생성시간좌표 T를 모바일단말기 공개키 시간값과 통합하여 모바일단말기 공개키 생성시간좌표 T'를 생성하는 단계와 모바일단말기는 상기 모바일단말기 공개키 생성시간좌표 T' 및 상기 생성된 타원곡선 위의 G점의 좌표 (XG, YG)에 대하여 타원곡선상의 덧셈연산을 수행하여 모바일단말기 공개키 C를 생성하고, 상기 서버로 전송하는 단계와 서버는 전송받은 상기 모바일단말기 공개키 C에 대하여 타원곡선상의 G의 역원과 덧셈연산을 수행하여 상기 모바일단말기 공개키의 생성시간좌표 T'를 복원하는 단계와 상기 서버와 모바일단말기에서 모바일단말기 공개키 생성시간좌표로부터 상기 서버 공개키 생성시간과 상기 모바일단말기 공개키 생성시간 차의 절대값을 계산하여 배수k로 지정하는 단계와 상기 서버와 모바일단말기에서 상기 프로그램된 타원곡선 위의 G점의 좌표 (XG, YG)에 배수k 만큼 타원곡선상의 덧셈연산을 이용한 스칼라 곱을 하여 암호키 Q를 생성하고 암호키의 역원인 복호키 Q'를 생성하는 단계와 상기 암호키 Q와 전송할 데이터 M을 타원곡선상의 덧셈연산을 수행하여 데이터를 암호화하는 단계 및 상기 전송된 암호화된 데이터 M' 및 복호키 Q'를 타원곡선상의 덧셈연산을 수행하여 암호화된 데이터를 복호화하는 단계를 포함하는 공개키 생성 시간 좌표를 이용한 ECC 인증방법에 관한 것이다.
이상 설명한 바와 같이, 본 발명은 종래의 ECC 암호화 방법이 주로 스칼라곱을 위주로 연산을 수행하여 많은 부하가 발생하고 인증속도가 느려지는 점을 개선하기 위해 인증절차를 처리하는 통신기기 사이의 공개키 전송에 소요되는 시간값 차이의 절대값을 암호키 생성에 활용하여 스칼라 곱 수행 횟수를 줄이고, 새로운 데이터를 전달할 때마다 새로운 공개키 생성이 가능하며, 공개키의 도청이 있어도 일정 시간 범위를 초과한 공개키 전송의 경우에는 인증절차를 처리하지 못하도록 설정할 수 있으므로 제3자의 공격에 의한 데이터 유출이 불가능하게 되는 효과가 있다.
이하, 첨부된 도면을 참조하여 본 발명의 바람직한 실시예를 상세히 설명한다.
도 1은 본 발명의 일실시예에 따른 공개키 생성시간좌표를 이용한 ECC 인증방법에 대한 흐름도로서, 상기 공개키 생성시간좌표를 이용한 ECC 인증방법은 다음과 같은 단계로 이루어진다.
서버와 모바일단말기에 유한체(GF(p))상에서 파라미터를 생성하는 타원곡선 E(GF(p)) 인
Figure 112010031339116-pat00003
연산자가 설치되고, 임의로 생성되어 미리 설정된 파라미터 a, b, p가 상기 E(GF(p))에 입력되어 타원곡선상의 임의의 점의 좌표 파라미터 G를 생성하여 공유하는 단계(S10)와, 서버는 모바일단말기로부터 서비스 요청 신호가 수신되면 상기 생성된 타원곡선상의 G점의 좌표 (XG, YG) 및 상기 서버의 공개키 생성시간값을 좌표로 나타낸 시간좌표 T를 상기 타원곡선상의 덧셈연산을 수행하여 서버 공개키 R을 생성하고, 상기 서버 공개키 R을 모바일단말기로 전송하는 단계(S20)와, 모바일단말기는 전송받은 서버공개키에 대하여 상기 타원곡선상의 G의 역원과 덧셈연산을 수행하여 상기 서버 공개키 생성시간좌표 T를 복원하고, 상기 복원된 서버 공개키 생성시간좌표 T를 모바일단말기 공개키 시간값과 통합하여 모바일단말기 공개키 생성시간좌표 T'를 생성하는 단계(S30)와 모바일단말기는 상기 모바일단말기 공개키 생성시간좌표 T' 및 상기 생성된 타원곡선 위의 G점의 좌표 (XG, YG)에 대하여 타원곡선상의 덧셈연산을 수행하여 모바일단말기 공개키 C를 생성하고, 상기 서버로 전송하는 단계(S40)와 서버는 전송받은 상기 모바일단말기 공개키 C에 대하여 타원곡선상의 G의 역원과 덧셈연산을 수행하여 상기 모바일단말기 공개키의 생성시간좌표 T'를 복원하는 단계(S50)와 상기 서버와 모바일단말기에서 모바일단말기 공개키 생성시간좌표로부터 상기 서버 공개키 생성시간과 상기 모바일단말기 공개키 생성시간 차의 절대값을 계산하여 배수k로 지정하는 단계(S60)와 상기 서버와 모바일단말기에서 상기 프로그램된 타원곡선상의 G점의 좌표(XG, YG)에 배수k 만큼 타원곡선상의 덧셈연산을 이용한 스칼라 곱을 하여 암호키 Q를 생성하고 암호키의 역원인 복호키 Q'를 생성하는 단계(S70)와 상기 암호키 Q와 전송할 데이터 M을 타원곡선상의 덧셈연산을 수행하여 데이터를 암호화하는 단계 및 상기 전송된 암호화된 데이터 M' 및 복호키 Q'를 타원곡선상의 덧셈연산을 수행하여 암호화된 데이터를 복호화하는 단계(S80)로 이루어져 ECC 인증절차를 수행한다.
상기 각 단계(S10 내지 S80)에 대하여 도 2에 도시된 공개키 생성시간좌표를 이용한 ECC 인증방법의 단계별 처리과정을 도시한 데이터 흐름도와 함께 보다 상세하게 설명하면 다음과 같다.
서버와 모바일단말기에 유한체(GF(p))상에서 파라미터를 생성하는 타원곡선 E(GF(p))인
Figure 112010031339116-pat00004
연산자가 설치되고, 임의로 생성되어 미리 설정된 파라미터 a, b, p가 상기 E(GF(p))에 입력되어 타원곡선상의 임의의 점의 좌표인 파라미터 G를 생성하여 공유하는 단계(S10)는, 유한체상의 타원곡선인 E(GF(p))에 파라미터 a, b, p를 대입하여 상기 방정식을 만족시키는 타원곡선상의 점의 좌표들 중 임의의 점의 좌표가 상기 파라미터 G로 설정되고 양 통신기기에 공유된다. 따라서, 양 통신기기는 파라미터 a, b, p, G를 공유하도록 프로그램 설치 시 동기화된다. 상기 E(GF(p))는 [수학식 1]과 같다.
Figure 112008036883314-pat00005
a, b, p : 임의로 생성되는 서버에 미리 설정된 파라미터(단, p는 3보다 큰 소수임)
x, y : 좌표
따라서, 상기 [수학식 1]을 적용하여 파라미터 G를 검증하기 위한 단순화된 예는 다음과 같다.
즉, E(GF(p)) :
Figure 112010031339116-pat00006
에서 파라미터가 p=11, a=3, b=2 일 경우, 타원곡선상의 점의 좌표 (x, y)는 다음과 같이 생성된다.
(2, 4) , (2, 7) , (3, 4) , (3, 7) , (4, 1) , (4, 10) , (6, 4) , (6, 7) , (7, 5) , (7, 6) , (10, 3) , (10, 8)
이와 같이 생성된 임의의 점의 좌표 중에서 미리 설정된 점의 좌표 파라미터 G가 상기 타원곡선상의 점의 좌표(x, y)로 설정되며, 상기 파라미터 a, b, p, G를 상기 타원곡선 방정식에 대입하여 검증한다.
상기 서버 및 모바일단말기는 생성된 파라미터 G를 인증절차에 사용하는 파라미터로 공유한다.
즉, 상기 서버에 설정된 a, b, p 및 G 파라미터는 인증절차를 처리하는 동안 일정한 값으로 고정되며, 모바일단말기에도 동일한 파라미터 값을 공유한다.
예컨대, 상기 a, b, p 값에 대한 타원곡선상의 점의 좌표 G는 12개의 값을 가질 수 있고, 데이터를 송수신하는 서버 및 모바일단말기가 동일한 G의 좌표를 갖도록 상기 서버 및 모바일단말기에 설정된 G의 좌표가 공유된다.
서버가 상기 생성된 타원곡선상의 점의 좌표 G(XG, YG) 및 상기 서버의 공개키 생성시간값을 좌표로 나타낸 시간좌표 T를 타원곡선상의 덧셈연산을 수행하여 서버 공개키 R을 생성하고, 상기 서버 공개키 R을 모바일단말기로 전송하는 단계(S20)는, 상기 생성된 파라미터 G의 좌표와 공개키 생성시간값을 좌표로 표시한 시간좌표 T로부터 공개키를 생성한다. 상기 서버 공개키 생성시간좌표 T는 x좌 표값은 "0"이고, y좌표값은 "서버 내에서 생성되는 시간값 t"로 설정된다.
상기 타원곡선상의 덧셈연산은 아래 [수학식 2], [수학식 3]이 적용되며, 타원곡선상의 덧셈연산의 결과 좌표값 (X3, Y3)는 아래와 같다.
Figure 112008036883314-pat00007
Figure 112008036883314-pat00008
Figure 112008036883314-pat00009
Figure 112008036883314-pat00010
Figure 112008036883314-pat00011
Figure 112008036883314-pat00012
Figure 112008036883314-pat00013
Figure 112008036883314-pat00014
단순한 예시를 들어보면, (X1, Y1)=(2, 4), (X2, Y2)=(6, 7), (X1, Y1)+(X2, Y2)=(2, 4)+(6,7)에서 x1 은 2이고, x2 는 6이므로 [수학식 2]가 적용된다.
[수학식 2]에 의해 먼저 k를 계산하면, k=3/4 이 되고, 상기 k값을 구하기 위하여 타원곡선상의 "/"연산 대신 유클리드 알고리즘을 이용하여 역원을 구한다.
상기 160비트 이상의 파라미터의 "/" 연산은 프로그램상 계산의 오차를 발생시킬 수 있으므로 "/" 연산을 하지 않고, 역원을 구해 "*" 연산을 하여 "/" 연산과 같은 결과를 얻을 수 있도록 유클리드 알고리즘을 이용한다.
상기 유클리드 알고리즘을 이용하여 k값을 구하면, 4x=1 (mod 11)을 만족하는 x=3 (mod 11) 이므로 k값은 9가 되고, [수학식 2]에서 X3, Y3 를 계산하면,
X3 = 81 - 2 - 6 (mod 11) = 7
Y3 = 9(2 -7) - 4 (mod 11) = 6
즉, 결과값 (X3, Y3)=(7, 6)이 된다.
상기 수학식에 의해 생성된 서버 공개키 R은 서비스를 요청한 모바일단말기로 전송되고, 상기 모바일단말기는 전송받은 서버 공개키에 대하여 상기 타원곡선상의 G의 역원과 덧셈연산을 수행하여 서버 공개키 생성시간좌표 T를 복원하고, 상기 복원된 서버 공개키 생성시간좌표 T를 모바일단말기 공개키 시간값과 통합하여 모바일단말기 공개키 생성시간좌표 T'를 생성한다(S30).
상기 모바일단말기 공개키 생성시간좌표 T'를 생성하는 단계(S30)에서 상기 서버 공개키 생성시간좌표 T(0, t)와 모바일단말기 공개키 시간값 t'를 통합하는 것은 상기 서버 공개키 생성시간좌표 T의 y좌표값 t를 상기 모바일단말기 공개키 생성시간좌표 T'의 x좌표값으로 설정하고, 상기 모바일단말기 공개키 시간값 t'를상기 모바일단말기 공개키 생성시간좌표 T'의 y좌표값으로 설정하는 것으로, 상기 모바일단말기 공개키 생성시간좌표 T'에는 서버 공개키 생성시간과 모바일단말기 공개키 생성시간이 모두 포함된다.
즉, 상기 모바일단말기 공개키 생성시간좌표 T'는 (t, t')이고, t: 서버 공개키 생성시간값, t': 모바일단말기 공개키 생성시간을 의미한다.
상기 타원곡선상의 점 G좌표의 역원인 G'는 G좌표와 x값은 동일하고 y값만 다른 좌표값으로 쉽게 구할 수 있으며, 상기 서버 공개키와 G좌표의 뺄셈연산 대신 서버 공개키와 상기 G'좌표의 덧셈연산을 수행하여 서버 공개키 생성시간 좌표 T를 복원할 수 있다.
또한, 모바일단말기는 상기 모바일단말기 공개키 생성시간좌표 T' 및 상기 생성된 타원곡선상의 G점의 좌표에 대하여 타원곡선사의 덧셈연산을 수행하여 모바일단말기 공개키 C를 생성하여 서버로 전송한다(S40).
상기 모바일단말기 공개키 C를 전송받은 서버가 상기 모바일단말기 공개키의 생성시간좌표 T'를 복원하는 단계(S50)는 모바일단말기 공개키 C와 타원곡선상의 점 G의 역원 G'를 덧셈연산을 수행하여 모바일단말기 공개키의 생성시간좌표 T'를 구할 수 있다.
상기 서버와 모바일단말기에서 모바일단말기 공개키 생성시간좌표로부터 상기 서버 공개키 생성시간과 상기 모바일단말기 공개키 생성시간의 차를 계산하여 배수k로 지정하는 단계(S60)는 상기 서버와 모바일단말기 사이의 공개키 전송에 소요되는 시간값 차이의 절대값이 배수 k로 지정된다.
Figure 112008036883314-pat00015
상기 배수k 값이 미리 설정된 공개키 수신대기시간값을 초과하는 경우, 상기 서버 또는 모바일 단말기로 ECC 인증절차의 상대 측 통신기기에서 생성된 공개키가 2번 이상 전송된 경우 인증실패결정을 내리는 단계를 더 포함할 수 있으며, 이는 제3자에 의한 공개키 유출을 방지하기 위함이다.
상기 서버로부터 인증실패결정을 전송받은 모바일단말기는 인증절차를 처음부터 다시 수행해야하며, 서버로부터 새로운 공개키 생성시간값에 대응되는 새로운 공개키를 전송받게 된다.
상기 서버와 모바일단말기에서 생성되어 공유된 타원곡선 위의 G점의 좌표 (XG, YG)에 배수k 만큼 스칼라 곱을 하여 암호키 Q를 생성하고 암호키의 역원인 복호키 Q'를 생성하는 단계(S70)는, 상기 배수 k만큼 G점의 좌표를 타원곡선상의 덧셈연산을 수행하여 스칼라 곱을 수행하여 암호키 Q를 생성한다.
상기 암호키/복호키 생성 단계는 상기 서버와 모바일단말기 사이의 공개키 전송 시간을 암호키/복호키 생성에 이용하는 것으로서 새로운 인증절차가 진행되는 경우에는 공개키 생성 및 전송 시간이 상이하여 동일한 서버와 모바일단말기 사이에서도 다른 암호키/복호키 생성이 가능하다.
상기 암호키 Q와 전송할 데이터 M을 타원곡선상의 덧셈연산을 수행하여 데이 터를 암호화하는 단계 및 상기 전송된 암호화된 데이터 M' 및 복호키 Q'를 타원곡선상의 덧셈연산을 수행하여 암호화된 데이터를 복호화하는 단계(S80)는, 상기 생성된 암호키/복호키와 타원곡선상의 점 G좌표를 덧셈연산을 수행하여 암호화 또는 복호화한다.
본 발명에 의한 ECC 알고리즘을 실제 서버 및 모바일 단말기에 적용한 예시데이터인 도 3a 및 도 3b를 참조하여 공개키 생성 및 암호화/복호화 과정을 살펴본다.
상기 프로토콜 구현을 위해 160bit 정수의 사칙 연산이 가능한 함수를 구현하고, 유한체상에서 파라미터를 생성하는 타원곡선
Figure 112008036883314-pat00016
연산자가 서버 및 모바일단말기에 설치되고, 임의로 생성되어 미리 설정된 파라미터 a, b, p 및 타원곡선상의 점 G(XG, YG)의 좌표는 아래와 같이 설정된다.
a : 1461501637330902918203684832716283019653785059324
b : 618161358937170673988121756987436237099350920727
p : 1461501637330902918203684832716283019653785059327
XG : 1168983055804381306122964739888353823030159703303
YG : 591673640518579811944247307252990789873540735386
타원곡선상의 점 G의 좌표는 상기 파라미터 XG , YG 값으로 주어지고 서버 공개키 생성시간좌표 T는 (0, 20080201155622731)이며, 상기 서버 공개키 R= G+T이므 로, 타원곡선상의 덧셈정리를 수 행하면 서버 공개키 R(XR , YR)은 아래와 같다.
XR : 0705252251986122734508705059871883404525479711286
YR : 0644247137415270048652035102962775188137242407276)
상기 서버 공개키가 모바일단말기로 전송되면, 상기 모바일단말기에서는 서버 공개키 R과 G좌표의 역원 G'를 덧셈연산을 수행하여 서버 공개키 생성시간좌표 T를 복원한다.
즉, G좌표의 역원 G'은 상기
Figure 112008036883314-pat00017
식을 만족하는 타원곡선상의 점으로 G좌표와 x값이 동일하고 y값만 다른 x축 대칭인 점의 좌표를 의미하며, G'( XG' , YG')는 아래와 같다.
XG' : 1168983055804381306122964739888353823030159703303
YG' : 0869827996812323106259437525463292229780244323941
따라서, 모바일단말기에서 상기 서버 공개키 생성시간좌표 T를 이용하여 모바일단말기 공개키 생성시간좌표 T'를 생성하며, T'의 x값은 T의 y값을 대입하고, T'의 y값은 모바일단말기 공개키 생성시간값을 대입한다.
예시데이터에 의하면, T'(20080201155622731, 20080201155623028)이고, 모바일단말기 공개키 C(XC, YC)는 T'와 G좌표의 덧셈연산을 수행한 결과이다.
XC : 0626596640431141068978076944865888931528156503616
YC : 0827394782815803576352611169962912872087600192540
상기 모바일단말기의 공개키를 전송받은 서버는 C와 G'를 덧셈연산을 수행하고 상기 모바일단말기의 공개키 생성시간좌표 T'를 복원한다. 또한, T와 T'의 y값의 차이의 절대값인 공개키 전송 소요 시간은 배수 k로 설정되며, 배수 k는 암호키/복호키를 생성하는데 이용된다.
도 3b는 배수 k값을 이용하여 암호키 및 복호키를 생성하는 예시데이터로서, k = t'-t = 297 이고, 암호키 Q = kG , 복호키 Q' 는 암호키 Q의 역원에 해당된다.
상기 암호키를 구하기 위해서 배수 k와 타원곡선상의 좌표 G를 스칼라 곱해야 하며 스칼라 곱 kG는 G를 k번 덧셈연산을 수행한 결과와 동일하고 암호키 Q(XQ ,YQ) 및 복호키 Q'(XQ' ,YQ')는 아래와 같다.
XQ : 515327075141625540374921420100707238148949856626
YQ : 1182027462271984850465029530203563033444554787779
XQ': 515327075141625540374921420100707238148949856626
YQ': 0279474175058918067738655302512719986209230271548
전송하려는 데이터 M = (99999999999999999999, 11111111111111111111) 인 경우, 암호화 된 데이터 M' = M + Q 이며, M'(XM' ,YM')는 M과 Q를 타원곡선상의 덧셈연산을 수행한 결과이고, 원래의 데이터를 복원하기 위해 암호화된 데이터 M'와 복호키 Q'를 타원곡선상의 덧셈연산을 수행하여 원래의 데이터 M을 복원할 수 있다.
XM': 0454068423475932379563533708930611396466396473756
YM': 0193236021908021304983022885552075820014564013044
한편, 본 발명의 공개키 생성시간좌표를 이용한 ECC 인증방법은 아래의 공개키 생성시간좌표를 이용한 ECC 인증모듈에 의해서 수행될 수 있다.
공개키 생성시간좌표를 이용한 ECC 인증모듈은 유한체상에서 파라미터를 생성하는 타원곡선
Figure 112008036883314-pat00018
연산자가 설치되고, 파라미터 a, b, p 및 타원곡선상의 점 G의 좌표가 설정된 인증절차를 처리하는 통신기기의 인증모듈에 있어서, 송신측 통신기기로부터 전송된 공개키와 상기 설정된 타원곡선상의 점 G의 좌표로부터 송신측 공개키 생성 시간좌표를 복원하고, 상기 G의 좌표와 상기 공개키를 수신받은 통신기기의 공개키 시간좌표로부터 수신측 공개키를 생성하고, 상기 G의 좌표, 상기 수신측 공개키 시간좌표 및 송신측 공개키 시간좌표를 이용하여 메시지를 암호화/복호화하는 공개키생성/암호화/복호화부와 상기 송신측으로부터 전송된 암호화된 데이터를 복호화하기 위해 복호키 Q'를 생성하는 ECC 키변환부와 상기 ECC 키변환부, 공개키생성/암호화/복호화부의 공개키, 암호키, 복호키 생성 및 시간좌표 값 복원을 위해 타원곡선상의 160비트 사칙연산을 수행하는 오퍼레이션부와 상기 오퍼레이션부의 사칙연산을 단순화시키기 위해 유클리드 알고리즘을 이용하여 정수의 역원을 구하는 역원산출부와 상기 암호화된 데이터와 함께 전송된 데이터 인증코드를 산출하고 데이터의 변조사실을 검사하는 데이터인증부와 상기 데이터인증부와 공개키생성/암호화/복호화부를 구분하여 연동되도록 제어하는 제어부 및 상기 제어부의 제어신호에 따라 인증절차를 처리하는 상대 인증모듈과 서비스 요청신호, 공개키, 암호화된 데이터를 송수신하는 송수신부를 포함한다.
도 4는 본 발명에 따른 공개키 생성시간좌표를 이용한 ECC 인증모듈의 구성도로서, 공개키생성/암호화/복호화부(110, 210), ECC 키변환부(120, 220), 오퍼레이션부(130, 230), 역원산출부(140, 240), 데이터인증부(150, 250), 제어부(160, 260) 및 송수신부(170, 270)를 포함한다.
상기 공개키생성/암호화/복호화부(110, 210)는 공개키 생성, 전송할 데이터의 암호화 및 전송받은 데이터를 복호화한다.
상기 공개키 생성은 공개키 생성시간좌표를 이용하며, 매 인증절차마다 새로운 공개키가 생성된다. 상기 공개키 생성 과정은 수신측 통신기기의 서비스 요청에 의해 송신측 통신기기로부터 전송된 공개키 R 및 설정된 파라미터 값을 대입하여 생성된 타원곡선
Figure 112008036883314-pat00019
위의 점 G의 역원 G'의 좌표를 타원곡선상의 덧셈연산을 수행하여 송신측 공개키 생성시간좌표 T를 복원하고, 송신측 공개키 생성시간좌표로부터 수신측 공개키 생성시간좌표 T'를 생성한다. 여기서 송신측 공개키 생성시간좌표는 T(0, t)로 t는 송신측 공개키 생성시간값이다.
또한, 상기 생성된 수신측 공개키 생성시간좌표 T'와 타원곡선상의 점 G좌표 를 덧셈연산을 수행하여 수신측 공개키 C를 생성한다. 여기서, 수신측 공개키 생성시간좌표 T'의 x값은 송신측 공개키생성시간좌표의 y값을 대입하고, 수신측 공개키 생성시간좌표의 y값은 수신측 공개키 생성시간값을 대입하며, T'는 (t, t')로 나타낸다.
상기 암호화 과정은 공개키 생성시간좌표 T, T'의 y값인 t, t'의 차와 타원곡선상의 점 G의 좌표를 스칼라 곱하여 암호키 Q를 생성하고, 전송할 데이터 M과 암호키 Q를 덧셈연산하여 암호화 데이터 M'를 생성한다.
상기 암호키는 공개키 전송시간 차이를 반영된 것으로 새로운 데이터를 전송할 때마다 암호키가 갱신되므로 공격자에 대비할 수 있다.
또한, 상기 공개키 전송시간 차이가 일정시간을 초과한 경우(예를 들어, 1분을 초과한 경우)에는 인증실패결정을 내리고 다시 처음부터 인증절차를 수행하도록 제어할 수 있으며, 동일한 공개키가 두 번 수신되는 경우에도 인증실패결정을 하여 정보 유출을 방지할 수 있다.
상기 복호화 과정은 상기 ECC 키변환부(120, 220)로부터 생성된 복호키를 이용하며, 암호화된 데이터 M'와 복호키 Q'를 덧셈연산을 수행하여 원래의 데이터 M을 복원한다.
상기 오퍼레이션부(130, 230)는 ECC 키변환부(120, 230), 공개키생성/암호화/복호화부(110, 210)의 공개키, 암호키, 복호키 생성 및 시간좌표값 복원을 위해 160비트 사칙연산을 수행하며, 상기 역원산출부(140, 240)는 유클리드 알고리즘을 이용하여 정수의 역원을 구하며, 상기 오퍼레이션부(130, 230)의 사칙연산을 단순 화시키기 위해 제공된다.
상기 역원산출부(140, 240)에서 유클리드 알고리즘을 이용하여 정수의 역원을 구하는 단순한 예를 들어 설명하면, 1/2=1(mod 11) 을 계산하기 위해 2의 역원을 구한다.
즉, 2x=1 (mod 11) 을 만족하는 x=6 (mod 11)이므로 2의 역원은 6이 된다.
상기 유클리드 알고리즘을 이용하면 타원곡선상의 사칙연산을 타원곡선상의 덧셈연산으로 전환할 수 있으므로 계산을 단순화시킬 수 있다.
상기 데이터인증부(150, 250)는 암호화된 데이터와 함께 전송된 데이터 인증코드를 산출하고 데이터의 변조 여부를 검사하며, 상기 제어부(160, 260)에 의해 상기 공개키생성/암호화/복호화부(110, 210)와 구분하여 연동되도록 제어되며, 상기 송수신부(170, 270)는 상기 제어부(160, 260)의 제어신호에 따라 인증절차를 처리하는 상대 인증모듈과 서비스 요청신호, 공개키, 암호화된 데이터를 송수신한다.
검토한 바와 같이, 본 발명에 의한 암호화 방법은 공개키가 생성되는 시간값에 따라 공개키를 갱신하여 암호키/복호키를 생성하고 배수를 공유할 수 있도록 구성하며, 공격자에 의해 공개키의 도청이 있어도 일정 시간 값의 범위를 초과하면 공격을 감지할 수 있도록 하고, 각 파라미터 값, ECC 연산방법 및 프로토콜의 패턴을 알지 못할 경우 공격자는 인증메시지를 알 수 없으므로 정보 보안유지를 강화하는 효과가 있다.
또한, 본 발명에 의한 암호화 방법은 일반적으로 사용하는 ECC 암호화 방법에 비해 스칼라 곱 연산을 반으로 줄이면서 보안강도를 동일하게 유지하므로 시스 템 부하를 줄이는데 효과적이다.
본 발명의 범위는 상기 상세한 설명에 의하여 제한되지 않으며, 후술하는 특허청구범위에 의하여 나타내어지며,특허청구범위의 의미 및 범위는 특허청구범위에 기재된 사항과 그 등가개념으로부터 도출되는 모든 변경 또는 변형된 형태가 본 발명의 범위에 포함되는 것으로 해석되어야 한다.
도 1은 본 발명에 따른 공개키 생성시간좌표를 이용한 ECC 인증방법의 흐름도이다.
도 2는 본 발명에 따른 공개키 생성시간좌표를 이용한 ECC 인증방법의 단계별 처리과정을 도시한 것이다.
도 3a는 본 발명에 따른 공개키 생성시간좌표를 이용한 ECC 인증방법의 공개키 생성결과를 도시한 것이다.
도 3b는 본 발명에 따른 공개키 생성시간좌표를 이용한 ECC 인증방법의 메시지 암호화 및 복호화 결과를 도시한 것이다.
도 4는 본 발명에 따른 공개키 생성시간좌표를 이용한 ECC 인증장치의 구성도이다.

Claims (3)

  1. (a) 유한체(GF(p))상에서 파라미터를 생성하는 타원곡선 E(GF(p))인
    Figure 112010031339116-pat00020
    연산자가 서버 및 모바일단말기에 설치되고, 임의로 생성되어 미리 설정된 파라미터 a, b, p가 상기 E(GF(p))에 입력되어 타원곡선상의 임의의 점의 좌표 파라미터 G를 생성하여 공유하는 단계;
    (b) 서버는 상기 모바일단말기로부터 서비스 요청 신호가 수신되면, 상기 생성된 타원곡선상의 G점의 좌표 (XG, YG) 및 상기 서버의 공개키 생성시간값을 좌표로 나타낸 시간좌표 T를 상기 타원곡선상의 덧셈연산을 수행하여 서버 공개키 R을 생성하고, 상기 서버 공개키 R을 모바일단말기로 전송하는 단계;
    (c) 모바일단말기는 전송받은 서버 공개키에 대하여 상기 타원곡선상의 G의 역원과 덧셈연산을 수행하여 상기 서버 공개키 생성시간좌표 T를 복원하고, 상기 복원된 서버 공개키 생성시간좌표 T를 모바일단말기 공개키 시간값과 통합하여 모바일단말기 공개키 생성시간좌표 T'를 생성하는 단계;
    (d) 모바일단말기는 상기 모바일단말기 공개키 생성시간좌표 T' 및 상기 생성된 타원곡선 위의 G점의 좌표 (XG, YG)에 대하여 타원곡선상의 덧셈연산을 수행하여 모바일단말기 공개키 C를 생성하고, 상기 서버로 전송하는 단계;
    (e) 서버는 전송받은 상기 모바일단말기 공개키 C에 대하여 타원곡선상의 G의 역원과 덧셈연산을 수행하여 상기 모바일단말기 공개키의 생성시간좌표 T'를 복원하는 단계;
    (f) 상기 서버와 모바일단말기에서 모바일단말기 공개키 생성시간좌표로부터 상기 서버 공개키 생성시간과 상기 모바일단말기 공개키 생성시간 차의 절대값을 계산하여 배수k로 지정하는 단계;
    (g) 상기 서버와 모바일단말기에서 상기 생성된 타원곡선상의 G점의 좌표 (XG, YG)에 배수k 만큼 타원곡선상의 덧셈연산을 이용한 스칼라 곱을 하여 암호키 Q를 생성하고 암호키의 역원인 복호키 Q'를 생성하는 단계;
    (h) 상기 암호키 Q와 전송할 데이터 M을 타원곡선상의 덧셈연산을 수행하여 데이터를 암호화하는 단계; 및
    (i) 상기 전송된 암호화된 데이터 M' 및 복호키 Q'를 타원곡선상의 덧셈연산을 수행하여 암호화된 데이터를 복호화하는 단계를 포함하는 공개키 생성 시간 좌표를 이용한 ECC 인증방법.
  2. 제 1항에 있어서,
    상기 (b)단계에서 상기 서버 공개키 생성시간좌표 T는 x좌표 값은 0이고, y좌표 값은 서버 내에서 공개키가 생성되는 시간값 t로 설정되고, 상기 (c)단계에서 상기 모바일단말기 공개키 생성시간좌표 T'는 x좌표 값은 상기 서버 공개키 생성시간좌표의 y좌표값인 t이고, y좌표값은 모바일단말기 내에서 공개키가 생성되는 시간값 t'로 설정되는 것을 특징으로 하는 공개키 생성시간좌표를 이용한 ECC 인증방 법.
  3. 제 1항에 있어서,
    상기 배수k 값이 미리 설정된 공개키 수신 대기 시간값을 초과하는 경우 인증실패결정을 내리는 것을 특징으로 하는 공개키 생성시간좌표를 이용한 ECC 인증방법.
KR1020080048224A 2008-05-23 2008-05-23 공개키 생성시간좌표를 이용한 ecc 인증방법 KR101035394B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020080048224A KR101035394B1 (ko) 2008-05-23 2008-05-23 공개키 생성시간좌표를 이용한 ecc 인증방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020080048224A KR101035394B1 (ko) 2008-05-23 2008-05-23 공개키 생성시간좌표를 이용한 ecc 인증방법

Publications (2)

Publication Number Publication Date
KR20090122029A KR20090122029A (ko) 2009-11-26
KR101035394B1 true KR101035394B1 (ko) 2011-05-20

Family

ID=41604876

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020080048224A KR101035394B1 (ko) 2008-05-23 2008-05-23 공개키 생성시간좌표를 이용한 ecc 인증방법

Country Status (1)

Country Link
KR (1) KR101035394B1 (ko)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR19990077606A (ko) * 1998-03-05 1999-10-25 마츠시타 덴끼 산교 가부시키가이샤 타원곡선변환장치,이용장치및이용시스템
JP2004139125A (ja) 1993-06-18 2004-05-13 Matsushita Electric Ind Co Ltd 楕円曲線による署名、認証及び秘密通信方式
US20060165231A1 (en) 2002-10-26 2006-07-27 The Additional Director (Ipr) Defence Research & Development Organisation Method of elliptic curve encryption
KR20070003292A (ko) * 2005-07-01 2007-01-05 주식회사 아이킨 타원곡선 알고리즘을 이용한 원격제어 방법

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004139125A (ja) 1993-06-18 2004-05-13 Matsushita Electric Ind Co Ltd 楕円曲線による署名、認証及び秘密通信方式
KR19990077606A (ko) * 1998-03-05 1999-10-25 마츠시타 덴끼 산교 가부시키가이샤 타원곡선변환장치,이용장치및이용시스템
US20060165231A1 (en) 2002-10-26 2006-07-27 The Additional Director (Ipr) Defence Research & Development Organisation Method of elliptic curve encryption
KR20070003292A (ko) * 2005-07-01 2007-01-05 주식회사 아이킨 타원곡선 알고리즘을 이용한 원격제어 방법

Also Published As

Publication number Publication date
KR20090122029A (ko) 2009-11-26

Similar Documents

Publication Publication Date Title
KR101492644B1 (ko) 타원 곡선 공개키 암호화 검증을 위한 방법
WO2018236908A1 (en) SECURE COMMUNICATIONS PROVIDING PERSISTENT CONFIDENTIALITY
US20160380767A1 (en) Re-encryption key generator, re-encryption apparatus, encryption apparatus, decryption apparatus, and storage medium
US9729311B2 (en) Proxy system for security processing without entrusting certified secret information to a proxy
US11870891B2 (en) Certificateless public key encryption using pairings
US9166790B2 (en) Commission information generator for making processes on communication performed by another computer
EP1471680A1 (en) Identifier-Based Encryption method and apparatus
KR101516114B1 (ko) 인증서 기반 프록시 재암호화 방법 및 이를 위한 시스템
US11658815B2 (en) System and method for performing key operations during a multi-party computation process
CN110784314A (zh) 无证书的加密信息处理方法
Sarwar et al. Lightweight ECC with Fragile Zero-Watermarking for Internet of Things Security
US20190294417A1 (en) Method and system for deriving deterministic prime number
US20050021973A1 (en) Cryptographic method and apparatus
CN112910627B (zh) 密钥的更新方法、数据解密方法、数字签名的验证方法
WO2013004691A1 (en) Traitor tracing for software-implemented decryption algorithms
KR20040009766A (ko) 암호 시스템에서 송수신 장치 및 방법
US20220038267A1 (en) Methods and devices for secured identity-based encryption systems with two trusted centers
US8484471B2 (en) Multi-party distributed multiplication device, multi-party distributed multiplication system and method
KR20030047148A (ko) Rsa를 이용한 클라이언트/서버 기반의 메신저 보안 방법
KR101035394B1 (ko) 공개키 생성시간좌표를 이용한 ecc 인증방법
GB2421407A (en) Generating a shared symmetric key using identifier based cryptography
JP2005176144A (ja) 端末装置、通信システム及び通信方法
CN109905232B (zh) 一种签解密方法、系统、设备及计算机可读存储介质
JP3694242B2 (ja) 署名付き暗号通信方法及びその装置
KR20070003292A (ko) 타원곡선 알고리즘을 이용한 원격제어 방법

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

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20150312

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20160502

Year of fee payment: 6

LAPS Lapse due to unpaid annual fee