KR100363253B1 - 통신에서 비밀키를 생성하는 방법 및 그 장치 - Google Patents

통신에서 비밀키를 생성하는 방법 및 그 장치 Download PDF

Info

Publication number
KR100363253B1
KR100363253B1 KR1020000000667A KR20000000667A KR100363253B1 KR 100363253 B1 KR100363253 B1 KR 100363253B1 KR 1020000000667 A KR1020000000667 A KR 1020000000667A KR 20000000667 A KR20000000667 A KR 20000000667A KR 100363253 B1 KR100363253 B1 KR 100363253B1
Authority
KR
South Korea
Prior art keywords
key
secret value
secret
called
generating
Prior art date
Application number
KR1020000000667A
Other languages
English (en)
Other versions
KR20010068651A (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 KR1020000000667A priority Critical patent/KR100363253B1/ko
Publication of KR20010068651A publication Critical patent/KR20010068651A/ko
Application granted granted Critical
Publication of KR100363253B1 publication Critical patent/KR100363253B1/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/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/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)
  • Theoretical Computer Science (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Computer Security & Cryptography (AREA)
  • Mathematical Physics (AREA)
  • Physics & Mathematics (AREA)
  • Pure & Applied Mathematics (AREA)
  • Mathematical Optimization (AREA)
  • Computing Systems (AREA)
  • Mathematical Analysis (AREA)
  • General Physics & Mathematics (AREA)
  • Algebra (AREA)
  • Mobile Radio Communication Systems (AREA)

Abstract

본 발명은 통신에서 비밀키를 생성하는 방법 및 그 장치를 개시한다.
본 발명에 의하면, 통신하는 양 측에서 각각 공개키를 상대에게 전송하고, 상대의 공개키를 이용하여 중간 비밀값을 소정의 방법으로 계산하고, 이 중간 비밀값들을 서로 교환하며, 이 중간 비밀값과 자신의 개인 키를 이용하여 공동으로 사용되는 비밀값을 생성함으로 해서, 공동의 비밀값을 이용해서 통신에 전송하는 데이터를 암호화하고 수신한 측에서는 상기의 공동의 비밀값을 이용해서 암호화된 데이터의 암호를 풀어 수신한 데이터를 사용하게 되어 통신 장치의 보안성이 대폭 향상될 수 있으며, 이를 위한 과정이 상당히 단순하여 통신 장치에 대한 부담도 작게 된다.

Description

통신에서 비밀키를 생성하는 방법 및 그 장치{Method for generating a secret key in communication and apparatus thereof}
본 발명은 내재적으로 인증되어 공유된 비밀을 인증하는 방법과 장치에 관한 것으로서, 특히 불안한 개인 채널을 통한 안전한 데이터 처리 환경을 만드는 방법및 그 장치에 관한 것이다.
W. Diffie와 M.E. Hellman은 미국특허 No. 4,200,770에서 통신하는 한 쌍이 엿듣기 쉬운 불안전한 통신 채널을 통한 암호키를 생성하는 프로토콜과 "New Direction in Cryptography", IEEE Transaction on Information Theory, vol IT-22, no.6 November 1976, pp.644-654의 논문에서 처음으로 그와 관련된 개념을 도입했다.
통상적인 DH 키 동의 프로토콜(key agreement protocol)은 일반적으로 다음과 같이 설명될 수 있다. 다음의 설명에서 모든 숫자 계산들은 큰 솟수 p에 의해 생성되는 갈로이스 필드(Galois field) GF(p)에서 진행되는 것으로 간주한다. 그리고 두 명의 사용자 A, B가 공통의 비밀값을 공유하고 있으며, 그들의 개인키와 공용 키는 다음의 표와 같은 값들에 의해 설정된다고 가정한다.
사용자 A의 개인키 사용자 A의 공용 키 사용자 B의 개인키 사용자 B의 공용 키
Xa Yb = gXamod p Xb Yb = gXbmod p
이때에 p는 큰 솟수 모듈러스(modulus)이고 g는 갈로이스 필드의 곱셈 연산에 관한 갈로이스 필드 GF(p)에 대한 생성자이다.
Ya로부터 Xa를 다시 생성하는 문제는 Ya의 이산 알고리즘을 결정하는 결과가 되며, 이것은 계산적으로 어려운 문제로 여겨진다.
사용자 A와 B가 그들의 공용 키(public key)들을 각각 상대에게 전송하는 방법은 다음의 단계들에 따른다.
(1a) A는 YbXamod p를 계산한다.
(1b) B는 YaXbmod p를 계산한다.
그러면 그들은 다음의 공동의 비밀키를 공유한다.
(1c) 키 = YaXb= YbXa= gXaXbmod p
이 원래의 DH 키 공유 프로토콜은 매우 간단하고 효율적이다. 그러나 상기의 DH 프로토콜은 소위 '전방과 후방의 비밀'이라고 불리는 보안의 고려 사항을 만족시키지 않는다. 이 프로토콜은 근래의 암호 사용자들에 의해 제안되었고 '중간에 공격하는 사람'에 의해 침해될 수 있을 것이다.
Simon Balke-Wilson, Don Johnson, and Alfred Menezes, "Key agreement protocols and their security analysis", Sixths IMA International Conference on Cryptography and Coding, Cirencester, England, December 1997 과 Laurie Law, Alfred Menezes, M. Qu, Jerry Solinas and S. Vanstone, "An efficient protocol for authenticated key aggrement"(이하 Law이라 함)(이 문서는 http://grouper.ieee.org/groups/1363/contrib.html에서 구할 수 있다)의 논문에서 키 동의 프로토콜들에서 필요한 고려 사항들을 다음과 같이 제안하였다.
. 알려진 키 보안
. (완전한) 전방 비밀
. 키-포함 흉내
. 알려지지 않은 키 공유
. 키 제어
상기 Law의 논문에서, 1986년에 제안된 MTI/C0 와 MTI/A0 키 동의 프로토콜(이하 AK 프로토콜이라 함)에 대한 작은 서브그룹 공격과 알려지지 않은 키 공유 공격이 도입된다. 일반적으로 키 동의 프로토콜을 위한 보안 수준은 상기의 고려 사항들 중 얼마나 많은 고려 사항들이 그 프로토콜에서 만족되는가를 검사하는 가에 의해 측정된다. 그리고, 키 동의 프로토콜을 위한 계산량은 GF(p)에서의 모듈러스 지수 계산의 개수나 E(GF(q))에서의 한 점에 대한 큰 정수 곱셈의 개수에 의해 계산된다. 이때에 E(GF(q))는 갈로이스 필드 GF(q)에 대한 타원 곡선 상의 점들의 수학적인 그룹을 의미한다.
계산량의 측정은 일반 정수군에 기반한 RSA(Rivesi, Shamir, Adleman) 알고리즘을 사용하는 시스템이나 ElGamal 시스템에서는 큰 수의 지수승 연산을 의미하며, 타원 곡선 시스템에서는 타원 곡선군에 있는 점에 대한 정수 곱셈 연산을 의미한다.
과거에 언급되었던 상기의 AK 프로토콜에서, MTI/A0는 '알려지지 않은 키 공유 공격'이라는 약점을 가지고 있으며, 통신의 양 측을 위해 계산량 3을 가진다. 또한 MTI/C0는 '작은 서브 그룹 공격'이라는 보안상의 약점을 가지고 있으며, 통신의 양 측을 위해 계산량 2를 가진다. 근래 새로운 AK 프로토콜인 MQV가 제안되었으며, 이제는 ANSI X9.42-1998의 키 동의 프로토콜을 위한 초벌 표준이다. 이것은 이전에 언급되었던 모든 보안 속성들을 극복할 것으로 여겨졌으며 통신의 양 측마다 계산량을 2.5로 낮추도록 변형되었다.
그런데 이 프로토콜도 비교적 복잡하며, 계산량도 작아지기는 했으나 아직도 통신하는 양 측에서의 계산량이 크다는 문제점이 있다.
본 발명이 이루고자 하는 기술적인 과제는, 상기의 문제점들을 해결하기 위해, 통신에서의 보안을 유지하면서 계산량이 작은, 통신에서 비밀키를 생성하는 방법와 그 장치 및 컴퓨터가 읽을 수 있는 기록 매체를 제공하는데 있다.
도 1은 Diffie-Hellman 키 동의 시스템의 블록 다이아그램을 도시한 것이다.
도 2는 본 발명에 따른 두 통신 장치간의 비밀을 유지하는 방법의 흐름을 도시한 것이다.
도 3은 본 발명에 따른 두 통신 장치간의 비밀을 유지하는 장치의 일 예를 도시한 블록 다이아그램이다.
도 4a는 모듈러 지수승부의 연산을 블록으로 도시한 것이다.
도 4b는 모듈러 곱셈부의 연산을 블록으로 도시한 것이다.
도 4c는 모듈러 나눗셈부의 연산을 블록으로 도시한 것이다.
도 5는 도 2의 방법의 흐름을 타원 곡선 암호 해독법을 바탕으로 한 동작의 흐름으로 도시한 것이다.
상기 기술적 과제를 해결하기 위한 본 발명에 의한, 통신에서 비밀키를 생성하는 방법은, 각각 소정의 개인키와 공개키를 내장하는 장치들간의 통신에서 보안을 유지하는 방법에 있어서, (a) 상기 장치들이 각각 상대 장치에게 상기 자신의 공유키를 전송하는 단계; (b) 상기 장치들 중에서 통신을 위해 호출한 장치가 호출된 상대 장치로부터 전송된 상기 공개키를 이용하여 제1 중간 비밀값을 생성하여 상기 호출된 장치에게 전송하는 단계; (c) 상기 호출된 장치가 수신한 상기 제1 중간 비밀값과 자신의 개인키를 이용하여 제2 중간 비밀값을 생성하여 상기 호출한 장치에게 전송하고, 상기 제1 중간 비밀값과 상기 호출한 장치의 공유키를 이용하여 호출된 장치의 비밀값을 생성하는 단계; 및 (d) 상기 호출한 장치가 수신한 상기 제2 중간 비밀값과 상기 (b) 단계에서 생성한 제1 중간 비밀값 및 자신의 개인키를 이용하여 호출한 장치의 비밀값을 생성하는 단계를 포함하는 것을 특징으로 한다.
상기 (c) 단계에서 생성된 호출된 장치의 비밀값과 상기 (d) 단계에서 생성된 호출한 장치의 비밀값은 동일한 값임을 특징으로 한다.
그리고, 상기 (b) 단계에서 상기 제1 중간 비밀값은 상기 호출된 장치에게서 전송된 공개키와 상기 호출한 장치가 임의적으로 생성한 수를 이용하여 생성되는 것이 바람직하다.
상기 (d) 단계의 호출한 장치의 비밀값은 상기 제1 중간 비밀값, 상기 제2 중간 비밀값, 상기 호출한 장치의 개인키 및 상기 호출한 장치가 임의적으로 생성한 수를 이용하여 생성되는 것이 바람직하다.
상기 (c) 단계에서 상기 제2 중간 비밀값은 상기 제1 중간 비밀값, 상기 호출된 장치가 임의적으로 생성한 수 및 상기 호출된 장치의 개인키를 이용하여 생성되는 것이 바람직하다.
상기 (c) 단계의 호출된 장치의 비밀값은 상기 제1 중간 비밀값, 상기 호출한 장치의 공개키 및 상기 호출된 장치가 임의적으로 생성한 수를 이용하여 생성되는 것이 바람직하다.
상기 다른 기술적 과제를 해결하기 위한 본 발명에 의한, 비밀키를 생성하는 통신 호출 장치는, 통신 채널의 보안을 유지하며 호출하는 통신 장치에 있어서, 소정의 공개키와 개인키를 저장하는 키 저장부; 상기 공개키를 상기 채널을 통해 전송하는 제1전송수단; 상기 호출에 응한 다른 통신 장치의 공개키를 상기 채널을 통해 수신하는 제1수신수단; 상기 다른 통신 장치의 공개키와 임의의 수를 이용하여 제1 중간 비밀값을 생성하여 상기 채널을 통해 상기 다른 통신 장치에 전송하는 제2전송수단; 상기 다른 통신 장치가 전송한 제2 중간 비밀값을 상기 채널을 통해 수신하는 제2수신수단; 및 상기 제1 중간 비밀값, 상기 제2 중간 비밀값, 상기 소정의 개인키 및 상기 임의의 수를 이용하여 비밀키를 생성하는 수단을 포함하는 것을 특징으로 한다.
상기 또 다른 기술적 과제를 해결하기 위한 본 발명에 의한, 비밀키를 생성하는 통신 호출 수신 장치는, 통신 채널의 보안을 유지하며 호출을 받는 통신 장치에 있어서, 소정의 공개키와 개인키를 저장하는 키 저장부; 상기 공개키를 상기 채널을 통해 전송하는 제1전송수단; 상기 호출을 한 다른 통신 장치의 공개키를 상기 채널을 통해 수신하는 제1수신수단; 상기 다른 통신 장치의 제1 중간 비밀값을 상기 채널을 통해 수신하는 제2수신수단; 상기 제1 중간 비밀값과 상기 소정의 개인키 및 임의의 수를 이용하여 제2 중간 비밀값을 생성하여 상기 다른 통신 장치에 상기 채널을 통해 전송하는 제2전송수단; 및 상기 제1 중간 비밀값, 상기 다른 통신 장치의 공개키 및 상기 임의의 수를 이용하여 비밀키를 생성하는 수단을 포함하는 것을 특징으로 한다.
상기 또 다른 기술적 과제를 해결하기 위한 본 발명에 의한, 비밀키를 생성하는 통신 장치는, 통신 채널의 보안을 유지하며 호출하는 통신 장치와 그 호출에 응한 호출받는 통신 장치에 있어서,
호출하는 통신 장치는, 소정의 제1공개키와 제1개인키를 저장하는 제1키 저장부; 상기 제1공개키를 상기 호출받는 통신 장치에 전송하는 제1전송수단; 상기 호출받는 통신 장치의 제2공개키를 수신하는 제1수신수단; 상기 호출받는 통신 장치의 제2공개키와 제1 임의의 수를 이용하여 제1 중간 비밀값을 생성하여 상기 호출받는 통신 장치에 전송하는 제2전송수단; 상기 호출받는 통신 장치가 전송한 제2 중간 비밀값을 수신하는 제2수신수단; 및 상기 제1 중간 비밀값, 상기 제2 중간 비밀값, 상기 제1 개인키 및 상기 제1 임의의 수를 이용하여 비밀키를 생성하는 제1비밀키 생성수단을 포함하며,
상기 호출받는 통신 장치는, 소정의 제2공개키와 제2개인키를 저장하는 제2키 저장부; 상기 제2공개키를 전송하는 제3전송수단; 상기 제1공개키를 수신하는 제3수신수단; 상기 제1 중간 비밀값을 수신하는 제4수신수단; 상기 제1 중간 비밀값과 상기 제2개인키 및 제2 임의의 수를 이용하여 제2 중간 비밀값을 생성하여 상기 호출을 하는 통신 장치에 전송하는 제4전송수단; 및 상기 제1 중간 비밀값, 상기 제1 공개키 및 상기 제2 임의의 수를 이용하여 비밀키를 생성하는 제1비밀키 생성수단을 포함하는 것을 특징으로 한다.
상기 또 다른 기술적 과제를 해결하기 위한 본 발명에 의한, 컴퓨터가 읽을 수 있는 기록 매체는, 각각 소정의 개인키와 공개키를 내장하는 장치들간의 통신에서 보안을 유지하는 방법을 기록한 기록 매체에 있어서,
(a) 상기 장치들이 각각 상대 장치에게 상기 자신의 공유키를 전송하는 단계; (b) 상기 장치들 중에서 통신을 위해 호출한 장치가 호출된 상대 장치로부터 전송된 상기 공개키와 임의로 생성한 제1난수를 이용하여 제1 중간 비밀값을 생성하여 상기 호출된 장치에게 전송하는 단계; (c) 상기 호출된 장치가 수신한 상기 제1 중간 비밀값과 자신의 개인키 및 임의로 생성한 제2난수를 이용하여 제2 중간 비밀값을 생성하여 상기 호출한 장치에게 전송하고, 상기 제1 중간 비밀값과 상기 호출한 장치의 공유키 및 상기 제2난수를 이용하여 호출된 장치의 비밀값을 생성하는 단계; 및 (d) 상기 호출한 장치가 수신한 상기 제2 중간 비밀값과 상기 (b) 단계에서 생성한 제1 중간 비밀값과 자신의 개인키 및 상기 제1난수를 이용하여 호출한 장치의 비밀값을 생성하는 단계를 포함하는 것을 특징으로 한다.
이하에서 첨부된 도면을 참조하여 본 발명의 바람직한 일 실시예를 상세히 설명한다.
A와 B 사이의 통신을 할 때의 비밀 공유를 위한 MQV 알고리즘을 간단히 설명한다. 이하의 모든 설명에서는, 명시된 예외를 제외하면, ANSI X9.42-1998 문서에 언급된 다음의 표와 같은 표기법을 사용할 것이다.
(p,q,g) 통계적인(암호의) 영역 변수들의 묶음
U ^ V U의 V 승의 mod p, 즉 UVmod p
UV 같은 비트의 길이를 가지는 2개의 비트 스트링 U와 V의 비트별 exclusive-or
U v V 같은 비트의 길이를 가지는 2개의 비트 스트링 U와 V의 비트별 inclusive-or
U + V 두 숫자 U와 V의 합에 대한 q에 의한 모듈로
U / V 두 숫자 U와 V의 나누기에 대한 q에 의한 모듈로
Xa, Ya=g^Xa 사용자 A의 개인키와 공용 키
Xb, Yb=g^Xb 사용자 B의 개인키와 공용 키
|m| 숫자 m의 비트 길이
상기 표에서 영역 변수 (p,q,g)에 대한 더 상세한 설명은, p는 큰 솟수이고 g는 GF(p)의 원소이며 q는 GF(p)에서의 수학적인 g 곱셈 차수이다.
MQV 알고리즘에서 사용자 A가 사용자 B와 공유하는 비밀의 공통값 Z를 얻기 위해서 다음의 단계들을 밟는다.
(2a) 난수 r1을 생성하고 A의 순간적인 키 Ra=g^r1를 B에 전송한다.
(2b) B에 의해 생성된 B의 순간적인 키 Rb=g^r2를 수신한다.
(2c) Ra'=Ra(mod 2w) + 2w를 계산한다. 이때에 w=|q|/2이다.
(2d) Sa=(r1+Ra'Xa) mod q, Rb'=Rb(mod 2w) + 2w를 계산한다.
(2e) Z=R b(Yb ^ Rb')^Sa mod p를 계산한다.
상기와 같은 방법에 의해 MQV AK 프로토콜은 통신의 양 측을 위해 2.5의 계산량을 갖는다.
비록 본 발명이 ECC(Elliptic Curve Cryptosystem; 타원 곡선 암호 해독법)를 바탕으로 설명될 수 있지만, 이전에 사용된 암호 영역 (p,q,g)을 바탕으로 하고 같은 표기법을 사용하여 본 발명에 대해 설명을 한다.
MQV 프로토콜 혹은 다른 AK 프로토콜들에서 그 방법들의 첫 번째 단계는 그 방법들의 임의적으로 생성된 순간적인 키들(상기의 MQV의 경우에는 Ra와 Rb)을 대칭적으로 교환하는 것이다. 더 나아가, 공동의 비밀을 얻기 위한 상기의 단계 (2a) 내지 (2e)의 계산들은 통신의 양 측에서 대칭적으로 진행된다
그러나 상기의 방법들과 비교하면 본 발명은 비대칭적인 계산 단계들로 구성된다.
도 1은 W. Diffie와 M.E. Hellman은 "New Direction in Cryptography", IEEE Transaction on Information Theory, vol IT-22, no.6 November 1976, pp.644-654 의 649 쪽이나 혹은 미국특허 No. 4,200,770에서 설명된 Diffie-Hellman 키 동의 프로토콜의 통상적인 모습을 보여준다.
Diffie-Hellman 키 동의 프로토콜의 일반적인 모습에 따라, 각 사용자 혹은 각 통신 장치 A(100)와 B(102)는 각각 개인키 생성부(104, 106)에서 개인 키 값 Xa와 Xb를 생성한다. A(100)는 제1 모듈로 지수승부(110)에서 자신의 공용 키인 참조번호 112의 Ya=g^Xa를 생성한다. B(102)는 제1모듈로 지수승부(111)에서 자신의 공용 키인 참조번호 116의 Yb=g^Xb를 생성한다. 사용자 A(100)와 B(102)는 안전한 혹은 안전하지 않은 채널(190)을 통해 그 키들을 교환한다.
그리고 제2 모듈로 지수승부(108)에서 수신한 공용 키 값 Yb(116)을 이용하여 자신의 개인 키 Xa로 지수승을 취한 A는 그들의 공통의 비밀값(118)을 생성한다. 사용자 B(102) 역시 제2 모듈로 지수승부(119)에서 수신한 공개키 값 Ya(112)를 이용하여 자신의 개인 키 Xb로 지수승을 취하여 공통의 비밀값(114)을 생성한다.
도 2는 본 발명에 따른 두 통신 장치간의 비밀을 유지하는 방법의 흐름을 도시한 것이다. 이 방법은 다음과 같이 진행된다. 점선 화살표는 계수들이 이동하는 것을 나타낸다. 그리고 실행되는 각 연산의 정의는 상기 표 2에 기재된 것과 같은 것이다.
A 장치는 난수 r1을 생성한다(200 단계). A 장치는 자신의 공개키 Ya를 B 장치에 전송하고(204 단계), B 장치는 자신의 공개키 Yb를 A 장치에 전송한다(206 단계). A 장치는 Ra = Yb ^ r1을 계산한다(208 단계). 이 연산은 상기 표 2에 정의되어 있다. A 장치는 이 Ra를 B 장치에 전송한다(210 단계). B 장치는 난수 r2를 생성하고, B 장치는 이 값과 자신의 개인 키 Xb를 이용하여 Rb=Ra^(r2/Xb)를 계산한다(212 단계). 이 값이 A 장치에 전송되며(214 단계), A 장치와 B 장치는 각각 공유된 비밀키 값 Z를 계산한다(216, 212 단계).
도 3은 본 발명에 따른 두 통신 장치간의 비밀을 유지하는 장치의 일 예를 도시한 블록 다이아그램이다. 참조 번호 300의 A와 참조 번호 302의 B는 통신 장치일 수도 있고 그 통신 장치를 사용하는 사용자일 수도 있을 것이다. 이하의 설명은 사용자라는 용어보다는 장치라는 용어를 사용한다. 그리고 양 장치는 거의 같은 기능 블록을 포함한다.
A 장치(300)는 A 장치의 개인 키(Xa)를 저장하는 개인키 저장부(304), A 장치의 공용 키(Ya)를 저장하는 공개키 저장부(308), 임의의 수를 발생하는 난수 생성부(312), 입력되는 두 수의 지수승을 취하고 모듈러(modular) 연산을 하는 제1 및 제2 모듈러 지수승부(316, 332), 입력되는 두 수를 곱하고 모듈러 연산을 하는 모듈러 곱셈부(330) 및 제1입력을 제2입력으로 나누고 모듈러 연산을 하는 모듈러 나눗셈부(328)를 포함한다.
B 장치(302)도 A 장치(300)와 마찬가지로 B 장치의 개인 키(Xb)를 저장하는 개인키 저장부(306), B 장치의 공용 키(Yb)를 저장하는 공개키 저장부(310), 임의의 수를 발생하는 난수 생성부(313), 입력되는 두 수의 지수승을 취하고 모듈러 연산을 하는 제1 및 제2 모듈러 지수승부(317, 333), 입력되는 두 수를 곱하고 모듈러 연산을 하는 모듈러 곱셈부(331) 및 제1입력을 제2입력으로 나누고 모듈러 연산을 하는 모듈러 나눗셈부(329)를 포함한다.
그리고 A 장치(300)와 B 장치(302)는 채널(390)을 통해 데이터를 교환한다.
도 4a는 모듈러 지수승부의 연산을, 도 4b는 모듈러 곱셈부의 연산을 그리고 도 4c는 모듈러 나눗셈부의 연산을 블록으로 도시한 것이다. 이때에 p는 상기의 설명과 같이 소정의 솟수이며, q는 p 모듈러 시스템에서의 g의 차수(order)이며, g는 갈로이스 필드 GF(p)의 원소이다.
이하 도 2와 도 3을 참조하여 본 발명의 일 실시예를 상세하게 설명한다. 이하의 각 장치의 동작은 A 장치(300)가 B 장치(302)를 호출한 경우에 대해 설명될 것이다.
A 장치(300)의 소정의 개인 키 Xa와 공용 키 Ya가 각각 개인 키 저장부(304)와 공용 키 저장부(308)에 저장되어 있다. 표 2에서 보는 바와 같이 Ya = gXamod p의 관계가 있다. B 장치(302)에도 마찬가지로 소정의 개인 키 Xb와 공용 키 Yb가 각각 개인 키 저장부(306)와 공용 키 저장부(310)에 저장되어 있다. 마찬가지로 Yb = gXamod p의 관계가 있다.
이 저장부들은 ROM, EPROM 혹은 EEPROM 등을 사용한다. 상기의 공용 키들은 인증을 받은 미리 정해진 값들이므로 휘발성 메모리를 사용하여 저장하는 것보다는 비휘발성 메모리를 사용하여 저장하는 것이 바람직하다. 공용 키는 다른 장치들에게 전달되어 자신을 나타내는 값이 될 것이며, 개인 키는 자신만이 사용하는 값이며, 외부에 공개되지 않아야 한다. 만일 공용 키나 개인 키의 하나를 변경하려면 다시 인증을 받은 값들을 할당받아야 할 것이다.
A 장치(300)는 난수 생성부(312)에서 하나의 난수 r1을 생성한다(200 단계).난수의 값은 다음의 통신 연결시에는 당연히 다른 값들로 변할 것이다.
A 장치(300)와 B 장치(302)는 각각 자신의 공용 키의 값을 상대 장치에게 전송한다(204, 206 단계).
각 장치는 자신에 전송된 상대 장치의 공용 키의 값이 바른 것인가를 소정의 절차를 통해 판별하는 확인부를 포함하는 것이 바람직하다. 확인부(314, 315)에서는 자신에 전송된 상대 장치의 공용 키의 값이 바른 것인가를 소정의 절차를 통해 판별한다. 판별하는 방법의 일 예를 설명한다. 공용 키에는 인증을 위한 별도의 사인 키를 포함되어 있다. 이 사인키는 공용 키를 할당할 때에 같이 정해진 코드이다. 공용 키를 수신한 장치는 상기 사인 키를 추출하고, 이 추출된 사인 키를 이용해서 수신한 공용 키가 바른 것인지를 판단하게 된다.
A 장치(300)에 전송된 B 장치(302)의 공용 키 Yb는 제1 모듈러 지수승부(316)에 전달되며, 소정의 절차를 거쳐 수신된 공용 키 Yb가 바른 것이라고 판단되면, 제1 모듈러 지수승부(316)에서는 B장치(302)의 공개키 Yb와 난수 생성부(312)에서 생성된 난수 r1을 입력으로 하여 출력 Ra를 계산한다. 이때에 Yb가 밑이고 r1이 지수부가 된다(208 단계). 모듈러 지수승의 연산의 정의는 도 4a에 도시되어 있다. Ra는 다음의 식과 같이 표시된다.
참조번호 208 단계에서 계산된 값 Ra는 B장치(302)에 전송된다(210 단계).
B장치(302)는 자신의 난수 생성부(313)에서 하나의 난수 r2를 생성한다. 이난수를 발생하는 것은 상기 참조번호 206 단계 이전에 실시하여도 본 발명의 사상에는 관계없다. 제1모듈러 지수승부(317)에서 상기 전달된 A 장치의 공용 키 Ya를 밑으로 하고 상기 난수 r2를 지수부로 하여 도 4a에 도시된 모듈러 지수승 연산을 실행한다. 이 연산의 결과(322)는 모듈러 곱셈부(331)에 입력되며, 모듈러 곱셈부(331)에서는 이 연산 결과(322)와 A 장치에서 전송된 상기 Ra를 도 4b에 도시된 것과 같이 모듈러 곱셈을 하여 A 장치와 B 장치 공동의 비밀값인 Z를 생성한다(212 단계). 이 Z는 다음의 식과 같이 표시된다.
또, 참조 번호 212 단계에서 모듈러 나눗셈부(329)에서는 상기의 난수 r2와 개인 키 저장부(306)에 저장된 B 장치(302)의 개인 키 Xb를 이용해서 도 4c와 같은 모듈러 나눗셈 연산을 실행한다. 이때에 난수 r2가 분자이고 개인 키 Xb가 분모가 된다. 이 계산 결과는 제1 모듈러 지수승부(317)에 전달되고, 제1 모듈러 지수승부(317)는 이 값을 지수부로 하고 A 장치(300)로부터 수신한 상기 Ra를 밑으로 하여 연산을 실행한다(212 단계). 이 연산의 결과인 Rb는 다음의 식과 같이 표시된다.
이 연산의 결과인 Rb는 A 장치(300)에 전송된다(214 단계).
A 장치(300)의 모듈러 나눗셈부(328)는 개인 키 Xa를 분자로 하고 난수 생성부(312)에서 생성된 난수 r1을 분모로 하여 도 4c에 도시된 모듈러 나눗셈을 실행한다. 이 결과(336)는 제 2모듈러 지수승부(332)에 전달되며, 제2 모듈러 전송부(332)는 모듈러 나숫셈부(328)의 출력(336)을 지수부로 하고 B 장치(302)에서 전송된 상기 Rb를 밑으로 하여 모듈러 지수승 연산을 실행한다. 이 결과(338)는 다음의 식과 같다.
상기 수학식 3과 같은 이 결과(338)는 모듈러 곱셈부(330)으로 전달된다. 모듈러 곱셈부(330)는 제2 모듈러 지수승부(332)의 결과(338)와 제1 모듈러 지수승부(316)의 결과인 상기 Ra를 입력으로 하여 도 4b와 같은 모듈러 곱셈 연산을 실행하여 A 장치와 B 장치 공동의 비밀값인 Z를 생성한다(216 단계). Z는 다음의 식과 같이 표시된다.
B 장치(302)에서 생성된 상기 수학식 2와 같이 표현된 비밀값 Z와 A 장치(300)에서 생성된 상기 수학식 5와 같은 비밀값 Z는 같은 값이다.
비밀키가 설정되면, A 장치(300)와 B 장치(302)간의 통신은 각각 자신이 계산한 Z 값을 이용하여 암호화를 하여 전송하고, 암호화된 내용을 수신한 장치에서는 자신이 계산한 Z 값을 이용하여 암호화된 내용을 해독하면 보안이 유지된 통신을 할 수 있다. 그러므로 통신에 이용되는 채널(390)이 안전하지 않은 채널이더라도 통신에서의 보안이 보장될 수 있다.
A 장치(300)와 B 장치(302)간에 송수신되는 채널(390)을 제 3자가 도청하여 상호 송수신되는 Ya, Yb, Ra 및 Rb를 알아내더라도 모듈러 연산을 통한 결과를 가지고 원래의 데이터를 알아내기 위해 상기의 수학식 1과 수학식 3의 역산을 하여 r1, r2, Xa 혹은 Xb를 구해내는 것은 이론적으로는 가능할 지 몰라도, 보통의 시간 내에는 거의 불가능하다. 그러므로 송수신하는 데이터가 유출되더라도 비밀값 Z를 제3자가 계산할 수가 없다.
또한 본 발명은 계산 흐름에서 상기의 MQV 프로토콜보다 간단하며 그 계산량은 통신의 양 측마다 2에 불과하다.
상기에 설명된 이 프로토콜은 ECC(타원 곡선 암호 해독법)에 대한 설명과 유사하게 설명될 수 있다. ECC를 통한 본 발명에 따른 도 2의 방법에 대한 설명은 도 5에 도시되어 있다.
도 5에서 사용된 연산 표기법은 상기 표 2의 표기와 다르다. 도 5에서 사용된 표기를 설명한다. '+' 연산은 타원 곡선에서의 점들 간의 덧셈을 뜻한다. Ya= Xa * G 연산에서, G는 타원 곡선에 생성된 점이며 Xa는 A 장치의 개인키로 사용되는 임의적으로 생성된 난수이다. 그래서 Ya=G+G+...+G와 같이 Ya는 G를 Xa번만큼 더한 결과가 된다.
그러므로 도 2 혹은 도 3에서의 설명을 바탕으로 도 5의 과정의 결과를 설명하면, A 장치(300)에서 임의적으로 생성된 수를 r1, 타원 곡선에 생성된 B 장치(302)의 공개키를 Yb라 하면, 상기 제1 중간 비밀값 Ra는 Yb를 r1번만큼 타원 곡선에서의 더한 것을 의미하는 것을 의미하는 Ra = r1 * Yb 로 표시된다(508 단계).
A 장치(300)의 개인키와 A 장치(300)에서 임의적으로 생성된 수를 각각 Xa, r1이라고 하고, 상기 제1 중간 비밀값을 Ra, 상기 제2 중간 비밀값을 Rb라고 하면, A 장치(300)의 비밀키는 상기 Rb를 (Xa/r1)번만큼 타원 곡선에서 더한 결과에 Ra를 타원 곡선에서 더하는 것을 의미하는 Ra +((Xa/r1) * Rb)로 표시된다(516 단계).
B 장치(302)의 개인키와 B 장치(302)에서 임의적으로 생성된 수를 각각 Xb, r2라 하고, 상기 제1 중간 비밀값을 Ra라고 하면, 상기 제2 중간 비밀값 Rb는 Ra를 (r2/Xb)번만큼 타원 곡선에서 더한 것을 의미하는 Rb=(r2/Xb)*Ra 로 표시되며, A 장치(302)의 공개키를 Ya, B 장치(302)에서 임의적으로 생성된 값을 r2, 상기 제1 중간 비밀값을 Ra라 하면, 상기 B 장치(302)의 비밀키는 Ya를 r2번만큼 타원 곡선에서 더한 결과에 Ra를 타원 곡선에서 더한 것을 의미하는 Ra+(r2*Ya)로 표시된다(512 단계).
상기의 방법과 장치는 하드웨어적이나 혹은 소프트웨어적인 방법으로 구현될 수 있을 것이다. 상기의 설명들은 본 발명의 사상을 구현한 일 예에 불과하며, 여러 가지 다른 구현 방법이 존재할 수 있다는 것은 본 발명이 속한 기술 분야의 통상의 지식을 가진 사람에게는 자명할 것이다.
본 발명에 따른 방법은 또한 컴퓨터로 읽을 수 있는 기록매체에 컴퓨터가 읽을 수 있는 코드로서 구현하는 것이 가능하다. 컴퓨터가 읽을 수 있는 기록매체는 컴퓨터 시스템에 의하여 읽혀질 수 있는 데이터가 저장되는 모든 종류의 기록장치를 포함한다. 컴퓨터가 읽을 수 있는 기록매체의 예로는 ROM, RAM, CD-ROM, 자기 테이프, 플로피디스크, HDD, 광 디스크, 광자기 저장장치, 메모리 카드 등이 있다. 또한 컴퓨터가 읽을 수 있는 기록매체는 네트워크로 연결된 컴퓨터 시스템에 분산되어, 분산방식으로 컴퓨터가 읽을 수 있는 코드로 저장되고 실행될 수 있다
본 발명에 의하면, 통신하는 양 측에서 각각 공개키를 상대에게 전송하고, 상대의 공개키를 이용하여 중간 비밀값을 소정의 방법으로 계산하고, 이 중간 비밀값들을 서로 교환하며, 이 중간 비밀값과 자신의 개인 키를 이용하여 공동으로 사용되는 비밀값을 생성함으로 해서, 공동의 비밀값을 이용해서 통신에 전송하는 데이터를 암호화하고 수신한 측에서는 상기의 공동의 비밀값을 이용해서 암호화된 데이터의 암호를 풀어 수신한 데이터를 사용하게 되어 통신 장치의 보안성이 대폭 향상될 수 있으며, 이를 위한 과정이 상당히 단순하여 통신 장치에 대한 부담도 작게 된다.

Claims (20)

  1. 각각 소정의 개인키와 공개키를 내장하는 장치들간의 통신에서 보안을 유지하는 방법에 있어서,
    (a) 상기 장치들이 각각 상대 장치에게 상기 자신의 공유키를 전송하는 단계;
    (b) 상기 장치들 중에서 통신을 위해 호출한 장치가 호출된 상대 장치로부터 전송된 상기 공개키를 이용하여 제1 중간 비밀값을 생성하여 상기 호출된 장치에게 전송하는 단계;
    (c) 상기 호출된 장치가 수신한 상기 제1 중간 비밀값과 자신의 개인키를 이용하여 제2 중간 비밀값을 생성하여 상기 호출한 장치에게 전송하고, 상기 제1 중간 비밀값과 상기 호출한 장치의 공유키를 이용하여 호출된 장치의 비밀값인 제1 최종 비밀값을 생성하는 단계; 및
    (d) 상기 호출한 장치가 수신한 상기 제2 중간 비밀값과 상기 (b) 단계에서 생성한 제1 중간 비밀값 및 자신의 개인키를 이용하여, 상기 제1 최종 비밀값과 동일한 호출한 장치의 비밀값인 제2 최종 비밀값을 생성하는 단계를 포함하는 것을 특징으로 하는 통신에서 비밀키를 생성하는 방법.
  2. 삭제
  3. 제1항에 있어서,
    상기 (b) 단계에서 상기 제1 중간 비밀값은 상기 호출된 장치에게서 전송된 공개키와 상기 호출한 장치가 임의적으로 생성한 수를 이용하여 생성되는 것을 특징으로 하는 통신에서 비밀키를 생성하는 방법.
  4. 제3항에 있어서, 상기 (d) 단계의 호출한 장치의 비밀값은 상기 제1 중간 비밀값, 상기 제2 중간 비밀값, 상기 호출한 장치의 개인키 및 상기 호출한 장치가 임의적으로 생성한 수를 이용하여 생성되는 것을 특징으로 하는 통신에서 비밀키를 생성하는 방법.
  5. 제1항에 있어서, 상기 (c) 단계에서 상기 제2 중간 비밀값은 상기 제1 중간 비밀값, 상기 호출된 장치가 임의적으로 생성한 수 및 상기 호출된 장치의 개인키를 이용하여 생성되는 것을 특징으로 하는 통신에서 비밀키를 생성하는 방법.
  6. 제5항에 있어서,
    상기 (c) 단계의 호출된 장치의 비밀값은 상기 제1 중간 비밀값, 상기 호출한 장치의 공개키 및 상기 호출된 장치가 임의적으로 생성한 수를 이용하여 생성되는 것을 특징으로 하는 통신에서 비밀키를 생성하는 방법.
  7. 제3항에 있어서,
    상기 호출한 장치에서 임의적으로 생성된 수를 r1, 호출된 장치의 공개키를 Yb라 하고, p는 솟수 모듈러스(prime modulus)이면, 상기 제1 중간 비밀값 Ra는
    임을 특징으로 하는 통신에서 비밀키를 생성하는 방법.
  8. 제4항에 있어서,
    상기 호출한 장치의 개인키와 상기 호출한 장치에서 임의적으로 생성된 수를 각각 Xa, r1이라고 하고, 상기 제1 중간 비밀값을 Ra, 상기 제2 중간 비밀값을 Rb라고 하고, p는 솟수 모듈러스이고, q는 p 모듈러 시스템에서의 g의 차수(order)이며, g는 갈로이스 필드 GF(p)의 원소일 때에, 상기 호출한 장치의 비밀키는
    임을 특징으로 하는 통신에서 비밀키를 생성하는 방법.
  9. 제5항에 있어서,
    호출된 장치의 개인키와 상기 호출된 장치에서 임의적으로 생성된 수를 각각 Xb, r2라고 하고, 상기 제1 중간 비밀값을 Ra라고 하며, p는 솟수 모듈러스이면, 상기 제2 중간 비밀값 Rb는
    임을 특징으로 하는 통신에서 비밀키를 생성하는 방법.
  10. 제6항에 있어서,
    상기 호출한 장치의 공개키를 Ya, 상기 호출된 장치에서 임의적으로 생성된 값을 r2, 상기 제1 중간 비밀값을 Ra라 하고, p는 솟수 모듈러스이면, 상기 호출된 장치의 비밀키는
    임을 특징으로 하는 통신에서 비밀키를 생성하는 방법.
  11. 제3항에 있어서,
    상기 호출한 장치에서 임의적으로 생성된 수를 r1, 호출된 장치의 타원 곡선에서 생성된 공개키를 Yb라 하면, 상기 제1 중간 비밀값 Ra는 Yb를 r1번만큼 타원 곡선에서의 더한 것을 의미하는 것을 의미하는 Ra= r1 * Yb 로 표시됨을 특징으로 하는 통신에서 비밀키를 생성하는 방법.
  12. 제4항에 있어서,
    상기 호출한 장치의 타원 곡선에서 생성된 개인키와 상기 호출한 장치에서 임의적으로 생성된 수를 각각 Xa, r1이라고 하고, 상기 제1 중간 비밀값을 Ra, 상기 제2 중간 비밀값을 Rb라고 하면, 상기 호출한 장치의 비밀키는 상기 Rb를 (Xa/r1)번만큼 타원 곡선에서 더한 결과에 Ra를 타원 곡선에서 더하는 것을 의미하는 Ra +((Xa/r1) * Rb)로 표시됨을 특징으로 하는 통신에서 비밀키를 생성하는 방법.
  13. 제5항에 있어서,
    호출된 장치의 타원 곡선에서 생성된 개인키와 상기 호출된 장치에서 임의적으로 생성된 수를 각각 Xb, r2라 하고, 상기 제1 중간 비밀값을 Ra라고 하면, 상기 제2 중간 비밀값 Rb는 Ra를 (r2/Xb)번만큼 타원 곡선에서 더한 것을 의미하는 Rb=(r2/Xb)*Ra 로 표시되는 것을 특징으로 하는 통신에서 비밀키를 생성하는 방법.
  14. 제6항에 있어서,
    상기 호출한 장치의 타원 곡선에서 생성된 공개키를 Ya, 상기 호출된 장치에서 임의적으로 생성된 값을 r2, 상기 제1 중간 비밀값을 Ra라 하면, 상기 호출된 장치의 비밀키는 Ya를 r2번만큼 타원 곡선에서 더한 결과에 Ra를 타원 곡선에서 더한 것을 의미하는 Ra+(r2*Ya)로 표시되는 것을 특징으로 하는 통신에서 비밀키를 생성하는 방법.
  15. 통신 채널의 보안을 유지하며 호출하는 통신 장치와 그 호출에 응한 호출받는 통신 장치에 있어서,
    호출하는 통신 장치는,
    소정의 제1공개키와 제1개인키를 저장하는 제1키 저장부;
    상기 제1공개키를 상기 호출받는 통신 장치에 전송하는 제1전송수단;
    상기 호출받는 통신 장치의 제2공개키를 수신하는 제1수신수단;
    상기 호출받는 통신 장치의 제2공개키와 제1 임의의 수를 이용하여 제1 중간 비밀값을 생성하여 상기 호출받는 통신 장치에 전송하는 제2전송수단;
    상기 호출받는 통신 장치가 전송한 제2 중간 비밀값을 수신하는 제2수신수단; 및
    상기 제1 중간 비밀값, 상기 제2 중간 비밀값, 상기 제1 개인키 및 상기 제1 임의의 수를 이용하여 제1 최종 비밀키를 생성하는 제1비밀키 생성수단을 포함하며,
    상기 호출받는 통신 장치는,
    소정의 제2공개키와 제2개인키를 저장하는 제2키 저장부;
    상기 제2공개키를 전송하는 제3전송수단;
    상기 제1공개키를 수신하는 제3수신수단;
    상기 제1 중간 비밀값을 수신하는 제4수신수단;
    상기 제1 중간 비밀값과 상기 제2개인키 및 제2 임의의 수를 이용하여 제2 중간 비밀값을 생성하여 상기 호출을 하는 통신 장치에 전송하는 제4전송수단; 및
    상기 제1 중간 비밀값, 상기 제1 공개키 및 상기 제2 임의의 수를 이용하여 상기 제1 최종 비밀키와 동일한 비밀키인 제2 최종 비밀키를 생성하는 제1비밀키 생성수단을 포함하는 것을 특징으로 하는 비밀키를 생성하는 통신 장치.
  16. 제15항에 있어서,
    상기 제1 임의의 수를 r1, 상기 제2 임의의 수를 r2, 상기 제2 공개키를 Yb, 상기 제2개인키를 Xb 라고 하고, p는 솟수 모듈러스(prime modulus)이면, 상기 제1 중간 비밀값 Ra는
    이며,
    상기 제2 중간 비밀값 Rb는
    임을 특징으로 하는 비밀키를 생성하는 통신 장치.
  17. 제15항에 있어서,
    상기 제1개인키를 Xa, 상기 제1 공개키를 Ya, 상기 제1 임의의 수를 r1, 상기 제2 임의의 수를 r2, 상기 제1 중간 비밀값을 Ra, 상기 제2 중간 비밀값을 Rb라고 하고, p는 솟수 모듈러스이고, q는 p 모듈러 시스템에서의 g의 차수(order)이며, g는 갈로이스 필드 GF(p)의 원소일 때에, 상기 제1비밀키 생성수단에서 생성된 비밀키는
    이며,
    상기 제2 비밀키 생성수단에서 생성된 비밀키는
    임을 특징으로 하는 비밀키를 생성하는 통신 장치.
  18. 각각 소정의 개인키와 공개키를 내장하는 장치들간의 통신에서 보안을 유지하는 방법을 기록한 기록 매체에 있어서,
    (a) 상기 장치들이 각각 상대 장치에게 상기 자신의 공유키를 전송하는 단계;
    (b) 상기 장치들 중에서 통신을 위해 호출한 장치가 호출된 상대 장치로부터 전송된 상기 공개키와 임의로 생성한 제1난수를 이용하여 제1 중간 비밀값을 생성하여 상기 호출된 장치에게 전송하는 단계;
    (c) 상기 호출된 장치가 수신한 상기 제1 중간 비밀값과 자신의 개인키 및 임의로 생성한 제2난수를 이용하여 제2 중간 비밀값을 생성하여 상기 호출한 장치에게 전송하고, 상기 제1 중간 비밀값과 상기 호출한 장치의 공유키 및 상기 제2난수를 이용하여 호출된 장치의 비밀값을 생성하는 단계; 및
    (d) 상기 호출한 장치가 수신한 상기 제2 중간 비밀값과 상기 (b) 단계에서 생성한 제1 중간 비밀값과 자신의 개인키 및 상기 제1난수를 이용하여 호출한 장치의 비밀값을 생성하는 단계를 포함하여 실행하는 것을 특징으로 하는 프로그램을 기록한 컴퓨터가 읽을 수 있는 기록 매체.
  19. 제18항에 있어서,
    상기 제1난수를 r1, 상기 제2난수를 r2, 상기 제2 공개키를 Yb라 하고, 상기 제2개인키를 Xb라고 하고, p는 솟수 모듈러스(prime modulus)이면, 상기 제1 중간 비밀값 Ra는
    이며,
    상기 제2 중간 비밀값 Rb는
    임을 특징으로 하는 프로그램을 기록한 컴퓨터가 읽을 수 있는 기록 매체.
  20. 제18항에 있어서,
    상기 제1개인키를 Xa, 상기 제1 공개키를 Ya, 상기 제1난수를 r1, 상기 제2 난수를 r2, 상기 제1 중간 비밀값을 Ra, 상기 제2 중간 비밀값을 Rb라고 하고, p는 솟수 모듈러스이고, q는 p 모듈러 시스템에서의 g의 차수(order)이며, g는 갈로이스 필드 GF(p)의 원소일 때에, 상기 (c) 단계에서 생성된 비밀키는
    이며,
    상기 (d) 단계에서 생성된 비밀키는
    임을 특징으로 하는 프로그램을 기록한 컴퓨터가 읽을 수 있는 기록 매체.
KR1020000000667A 2000-01-07 2000-01-07 통신에서 비밀키를 생성하는 방법 및 그 장치 KR100363253B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020000000667A KR100363253B1 (ko) 2000-01-07 2000-01-07 통신에서 비밀키를 생성하는 방법 및 그 장치

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020000000667A KR100363253B1 (ko) 2000-01-07 2000-01-07 통신에서 비밀키를 생성하는 방법 및 그 장치

Publications (2)

Publication Number Publication Date
KR20010068651A KR20010068651A (ko) 2001-07-23
KR100363253B1 true KR100363253B1 (ko) 2002-11-30

Family

ID=19637020

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020000000667A KR100363253B1 (ko) 2000-01-07 2000-01-07 통신에서 비밀키를 생성하는 방법 및 그 장치

Country Status (1)

Country Link
KR (1) KR100363253B1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101502652B1 (ko) * 2011-11-16 2015-03-17 경희대학교 산학협력단 무선 단말기와 유선 단말기 사이의 비밀키 교환 방법

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20020146127A1 (en) * 2001-04-05 2002-10-10 Marcus Wong System and method for providing secure communications between wireless units using a common key
CN103427997B (zh) * 2013-08-16 2016-06-22 西安西电捷通无线网络通信股份有限公司 一种生成数字签名的方法及装置

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5241599A (en) * 1991-10-02 1993-08-31 At&T Bell Laboratories Cryptographic protocol for secure communications
US5519778A (en) * 1993-08-13 1996-05-21 Silvio Micali Method for enabling users of a cryptosystem to generate and use a private pair key for enciphering communications between the users
JPH10164048A (ja) * 1996-11-26 1998-06-19 Alcatel Alsthom Co General Electricite 大規模サービスにおける秘密保全通信方法、ならびにそのための加入者施設およびサーバ
JPH10224340A (ja) * 1997-02-07 1998-08-21 Brother Ind Ltd 無線通信方法及び無線通信システム
KR19980067310A (ko) * 1997-02-03 1998-10-15 김호성 도청이 불가능한 통신방법
JPH11191761A (ja) * 1997-12-25 1999-07-13 Nippon Telegr & Teleph Corp <Ntt> 相互認証方法及びその装置

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5241599A (en) * 1991-10-02 1993-08-31 At&T Bell Laboratories Cryptographic protocol for secure communications
US5519778A (en) * 1993-08-13 1996-05-21 Silvio Micali Method for enabling users of a cryptosystem to generate and use a private pair key for enciphering communications between the users
JPH10164048A (ja) * 1996-11-26 1998-06-19 Alcatel Alsthom Co General Electricite 大規模サービスにおける秘密保全通信方法、ならびにそのための加入者施設およびサーバ
KR19980067310A (ko) * 1997-02-03 1998-10-15 김호성 도청이 불가능한 통신방법
JPH10224340A (ja) * 1997-02-07 1998-08-21 Brother Ind Ltd 無線通信方法及び無線通信システム
JPH11191761A (ja) * 1997-12-25 1999-07-13 Nippon Telegr & Teleph Corp <Ntt> 相互認証方法及びその装置

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101502652B1 (ko) * 2011-11-16 2015-03-17 경희대학교 산학협력단 무선 단말기와 유선 단말기 사이의 비밀키 교환 방법

Also Published As

Publication number Publication date
KR20010068651A (ko) 2001-07-23

Similar Documents

Publication Publication Date Title
Blake-Wilson et al. Authenticated Diffe-Hellman key agreement protocols
Kaliski Jr An unknown key-share attack on the MQV key agreement protocol
US5889865A (en) Key agreement and transport protocol with implicit signatures
EP1526676B1 (en) Conference session key distribution method on an id-based cryptographic system
JP2606419B2 (ja) 暗号通信システムと暗号通信方法
EP0873617B1 (en) Key agreement and transport protocol with implicit signatures
JP5329676B2 (ja) 鍵合意プロトコルの加速
Frankel et al. Parallel reliable threshold multisignature
CA2855099C (en) Key agreement protocol for generating a shared secret key for use by a pair of entities in a data communication system
US8527765B2 (en) Shared secret verification method and system
US20080165955A1 (en) Password protocols using xz-elliptic curve cryptography
Fiore et al. Making the Diffie-Hellman protocol identity-based
US20080095371A1 (en) Ends-Messaging Protocol That Recovers And Has Backward Security
EP0940944B1 (en) Elliptic curve transformation device, utilization device and utilization system
Nagaraj et al. Data encryption and authetication using public key approach
US9356783B2 (en) Method for ciphering and deciphering, corresponding electronic device and computer program product
US20160352689A1 (en) Key agreement protocol
KR100363253B1 (ko) 통신에서 비밀키를 생성하는 방법 및 그 장치
Hwang et al. EPA: An efficient password-based protocol for authenticated key exchange
Moldovyan et al. Bi-deniable public-encryption protocols based on standard PKI
WO2016187690A1 (en) Key agreement protocol
US6724893B1 (en) Method of passing a cryptographic key that allows third party access to the key
Kwon Virtual software tokens-a practical way to secure PKI roaming
KR100258310B1 (ko) 안전 모듈에서의 사전계산을 이용한 공개키 암호화 방법
Fiore et al. Identity-based key exchange protocols without pairings

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

Year of fee payment: 7

LAPS Lapse due to unpaid annual fee