KR20020056820A - 공개키 암호 알고리즘을 위한 일회용 키 생성방법 - Google Patents

공개키 암호 알고리즘을 위한 일회용 키 생성방법 Download PDF

Info

Publication number
KR20020056820A
KR20020056820A KR1020010077913A KR20010077913A KR20020056820A KR 20020056820 A KR20020056820 A KR 20020056820A KR 1020010077913 A KR1020010077913 A KR 1020010077913A KR 20010077913 A KR20010077913 A KR 20010077913A KR 20020056820 A KR20020056820 A KR 20020056820A
Authority
KR
South Korea
Prior art keywords
key
public key
server
client
authentication
Prior art date
Application number
KR1020010077913A
Other languages
English (en)
Other versions
KR100447712B1 (ko
Inventor
최창원
Original Assignee
최창원
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 최창원 filed Critical 최창원
Priority to KR10-2001-0077913A priority Critical patent/KR100447712B1/ko
Publication of KR20020056820A publication Critical patent/KR20020056820A/ko
Application granted granted Critical
Publication of KR100447712B1 publication Critical patent/KR100447712B1/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/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/3226Cryptographic 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 using a predetermined code, e.g. password, passphrase or PIN
    • H04L9/3228One-time or temporary data, i.e. information which is sent for every authentication or authorization, e.g. one-time-password, one-time-token or one-time-key
    • 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/3006Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy underlying computational problems or public-key parameters
    • H04L9/302Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy underlying computational problems or public-key parameters involving the integer factorization problem, e.g. RSA or quadratic sieve [QS] schemes

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computing Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Storage Device Security (AREA)
  • Computer And Data Communications (AREA)

Abstract

본 발명은 공개키 암호 알고리즘을 위한 일회용 키 생성방법에 관한 것으로서, 공개키 암호 알고리즘을 위한 일회용 키 생성방법에 있어서, 서버/클라이언트간 정보 전달 요청 발생시 실시간으로 생성되는 공개키후보집합을 서버/클라이언트가 공유하는 과정과; 서버/클라이언트가 그 공개키후보집합으로부터 각기 선정한 공개키후보에 의거하여 1차인증을 수행하는 과정과; 1차인증 성공시 상대방의 공개키후보를 도출한 후, 그 상대방의 공개키후보에 의거하여 2차인증을 수행하는 과정과; 2차인증에 성공한 경우 소정의 키 발생 알고리즘에 의거하여 서버/클라이언트의 비밀키, 개인키 및 공개키를 각각 생성하는 과정과; 상기 비밀키, 개인키 및 공개키에 의거하여 3차인증을 수행하는 과정과; 3차인증에 성공한 경우 해당 개인키 및 공개키를 공개키 암호 알고리즘을 위한 일회용 키로 생성하는 과정을 포함하여, 공개키 암호 알고리즘을 사용하는 서버/클라이언트가 통신망을 이용하지 않고 일회용 키를 공유할 수 있도록 한다는 특징이 있다. 따라서, 일회용 키를 통신망을 이용하여 서버/클라이언트가 공유할 경우 그 일회용 키가 제3자에게 유출되는 것을 방지할 수 있고, 이로 인해, 정보 전달시 보다 효과적으로 보안을 유지할 수 있다는 장점이 있다.

Description

공개키 암호 알고리즘을 위한 일회용 키 생성방법{One-time key generating method for public-key algorithm}
본 발명은 공개키 암호 알고리즘을 위한 일회용 키 생성방법에 관한 것이다.
최근 정보통신 분야의 급속한 성장과 함께 통신망을 이용한 정보의 전달이 일반화되고 있는 현실이다.
그러나, 이와 같이 통신망을 이용하여 정보를 전달하고자 할 경우, 전화망의 '도청' 또는 인터넷상의 '해킹'등으로 인해 그 정보의 보안 유지가 사실상 어렵다는 단점이 있다.
따라서, 이러한 '도청'이나 '해킹'으로부터 정보를 안전하게 보호하기 위해, 정보를 전달하는 측에서 정보에 대한 암호화를 수행하고, 그 정보를 수신하는 측에서 해당 정보를 해독하는 과정을 거침으로써, 해당 정보의 유출을 방지하고자 하는 기술이 발달하고 있다.
이러한 기술을 일반적으로 암호 알고리즘이라고 하며, 도 1에 일반적인 암호 알고리즘에 대한 절차도가 나타나 있다.
도 1은 서버/클라이언트 구조에서 임의의 클라이언트가 서버로부터 원하는 서비스를 제공받기 위해 자신의 신상정보 등과 같이 보안이 요구되는 정보를 서버측으로 전송하고자 하는 경우, 그 정보를 암호화하기 위한 암호화 알고리즘을 나타낸다.
즉, 임의의 클라이언트(10)가 서버(20)측으로 전송할 정보를 생성(s10)하여 그 정보를 암호화한 후(s20) 암호화된 정보를 서버측으로 전송하면(s30), 서버(20)는 그 암호화된 정보를 복호화함으로써(s40) 해당 내용을 해독한다.
이러한 암호 알고리즘은 해당 정보를 암호화하고 복호화하는 키의 종류에 따라 암호화 및 복호화 시 동일키를 사용하는 '비밀키 암호 알고리즘'과, 암호화 및복호화 시 서로 다른 키를 사용하는 '공개키 암호 알고리즘'으로 구분된다.
본 발명은 이들 중 '공개키 암호 알고리즘'에 관한 것으로서, '공개키 암호 알고리즘'은 암호화 및 복호화 시 서로 다른 키를 사용한다는 특징으로 인해 비대칭키 암호 알고리즘이라고도 칭한다. 이러한 '공개키 암호 알고리즘'은 키 생성 알고리즘을 통해 두 개의 키를 생성하여 그중 하나를 전화번호부에 전화번호를 공개하듯이 공개하고, 나머지 하나를 개인키로 자신이 보관하여 사용한다. 예를 들어, 'A'가 'B'로 문서를 송신하고자 할 경우, 'A'는 공개된 'B'의 공개키를 이용하여 해당 문서를 암호화하고, 'B'는 수신된 암호문을 자신의 개인키로 풀게되는 것이다. 따라서, '공개키 암호 알고리즘'의 사용자는 상호 정보를 교환하고자 하는 사람들의 수가 증가하더라도, 그 사람들의 수와 관계없이 자신의 개인키만을 관리하면 된다. '공개키 암호 알고리즘'의 대표적인 예로 RSA(Rivest-Shamir-Adleman) 알고리즘이 있다.
RSA 알고리즘에서는 3개의 개인키와 2개의 공개키를 사용하게 되며, 이러한 개인키 및 공개키는 소정의 키 생성 알고리즘에 의해 생성된다.
일반적으로 RSA 알고리즘에서 개인키 및 공개키를 선정하는 과정은 다음과 같다.
우선, 두 개의 큰 소수(p,q)를 선택하여, 그 소수들(p,q)을 2개의 개인키로 사용하고, 그 두수의 곱(p*q)을 공개키(n)로 선정한다. 그리고, 그 공개키(n)를 오일러(Euler) 공식에 적용한 후, 그 결과값(∮(n))과 서로 소인 임의의 정수(e)를 선정하여 또 하나의 공개키(e)로 선정한다. 마지막으로,유클리드_알고리즘(Euclidean Algorithm)에 의해 (수학식 1)을 만족하는 수(d)를 계산하여, 상기 두 개의 소수(p,q)와 함께 개인키로 선정한다.
e·d ≡ 1 (mod ∮(n))
하지만, 이러한 공개키 암호 알고리즘은 '공개키 암호 알고리즘'의 특성으로 인해, 공개키 암호 알고리즘 사용자의 개인키가 제3자에게 유출될 경우, 그 제3자는 해당 사용자에게 전송되는 모든 정보를 해독할 수 있게된다는 단점이 있다. 예를들어, 회원들에게 금융 거래 서비스 또는 전자 상거래 관련 서비스 등을 제공하기 위해, 공개키 암호 알고리즘을 채택하고 있는 서버의 경우, 그 개인키가 제3자에게 유출될 경우 해당 서버 및 회원(클라이언트)들 모두에게 치명적이다.
따라서, 본 발명에서는 이와 같은 문제점을 해결하기 위해, 공개키 암호 알고리즘을 이용하는 사용자들간 정보 전달 요청이 발생할 경우, 그 요청에 따른 일회용 키를 생성하여 정보를 전달하고자 하는 당사자들이 공유할 수 있도록 하는 공개키 암호 알고리즘을 위한 일회용 키 생성방법을 제공하는 것을 목적으로 한다.
도 1은 일반적인 암호 알고리즘에 대한 절차도,
도 2는 본 발명의 실시예에 따른 일회용 키 생성방법에 대한 처리 흐름도,
도 2a는 본 발명의 실시예에 따른 공개키후보집합(N)생성 과정에 대한 처리 흐름도,
도 2b는 본 발명의 실시예에 따른 1차인증 과정에 대한 처리 흐름도,
도 2c는 본 발명의 실시예에 따른 일회용 키 생성 과정에 대한 처리 흐름도,
도 2d는 본 발명의 실시예에 따른 3차인증 과정에 대한 처리 흐름도,
도 3은 본 발명의 실시예에 따라 일회용 키를 생성하기 위한 클라이언트와 서버 각각의 처리 흐름을 나타낸 절차도.
♣도면의 주요 부분에 대한 부호의 설명 ♣
10 : 클라이언트 20 : 서버
상기 목적을 달성하기 위해, 본 발명에서 제공하는 공개키 암호 알고리즘을 위한 일회용 키 생성방법은 공개키 암호 알고리즘을 위한 일회용 키 생성방법에 있어서, 서버/클라이언트가 정보 전달 요청이 발생한 경우 공개키후보집합(N)을 생성한 후, 서버/클라이언트가 그 공개키후보집합(N)을 공유하는 제1 과정과, 서버/클라이언트가 상기 공개키후보집합(N)으로부터 공개키후보(nS, nC)를 각각 선정하고, 그 공개키후보(nS, nC)를 이용하여 생성한 소정의 인증정보를 교환하여 서버/클라이언트간 1차인증을 수행하는 제2 과정과, 상기 1차인증 성공시 상기 소정의 인증정보 및 공개키후보집합(N)에 의거하여 상대방의 공개키후보(nC, nS)를 도출한 후, 그 상대방의 공개키후보(nC, nS)에 의거하여 2차인증을 수행하는 제3 과정과, 상기 2차인증에 성공한 경우 소정의 키 발생 알고리즘에 의거하여 서버/클라이언트의 비밀키(KeyS, KeyC), 개인키(dS, dC) 및 공개키(eS, eC)를 각각 생성하는 제4 과정과, 상기 비밀키(KeyS, KeyC), 개인키(dS, dC) 및 공개키(eS, eC)에 의거하여 3차인증을 수행하는 제5 과정과, 3차인증에 성공한 경우 해당 개인키(d) 및 공개키(e)를 공개키 암호 알고리즘을 위한 일회용 키로 확정하는 제6 과정을 포함하는 것을 특징으로 한다.
이하, 첨부된 도면을 참조하여 본 발명의 실시예에 따른 일회용 키 생성방법을 좀 더 상세히 설명하고자 한다.
도 2는 본 발명의 실시예에 따른 일회용 키 생성방법에 대한 처리 흐름도이다. 도 2를 참조하면, 서버 또는 클라이언트로부터 공개키 암호 알고리즘을 이용한 정보전달 요청이 발생한 경우 공개키후보집합(N={n1, n2, …, nm})을 생성한다(s100). 이 때, 공개키후보집합(N)은 공개키 암호 알고리즘을 이용하여 정보를 전달하고자 하는 당사자들(예컨대, 서버/클라이언트) 중 어느 한 측(예컨대,서버 또는 클라이언트)에서 생성하며, 그 공개키후보집합(N)을 나머지 한측(예컨대, 클라이언트 또는 서버)으로 전송함으로써, 공개키후보집합(N)을 양측(서버 및 클라이언트)이 공유하도록 한다(s200). 이후에 표기되는 참조부호의 아래첨자 'S'는 서버측정보를 나타내고, 아래첨자 'C'는 클라이언트측 정보를 나타낸다.
그리고, 서버/클라이언트는 그 공개키후보집합(N)을 이용하여 소정의 인증정보를 각각 생성한 후, 그 인증정보에 의해 상호 인증하는 과정을 거친다(s300, s400). 이를 위해, 서버/클라이언트는 공개키후보집합(N)으로부터 공개키후보(nS, nC)를 각각 선정한 후, 그 공개키후보(nS, nC)를 이용하여 생성한 소정의 인증정보를 교환함으로써, 서버/클라이언트간 1차인증을 수행한다(s300). 상기 1차인증 결과 서버/클라이언트간 1차인증이 성공하였으면, 상대방으로부터 전송된 소정의 인증정보 및 공개키후보집합(N)에 의거하여 상대방의 공개키후보(nC, nS)를 도출한 후, 그 상대방의 공개키후보(nC, nS)가 자신의 공개키후보집합(N)내에 있는지를 확인하여 2차인증을 수행한다(s400). 즉, 상대방의 공개키후보(nC, nS)가 자신의 공개키후보집합(N)에 포함된 원소 중 하나인 경우 2차인증에 성공한 것으로 판단한다.
이와 같이 2차에 걸친 인증수행 결과 서버/클라이언트가 인증되었으면, 서버/클라이언트는 소정의 키 발생 알고리즘에 의거하여 각각의 비밀키(KeyS, KeyC), 개인키(dS, dC) 및 공개키(eS, eC)를 생성한다(s500). 이 때, 소정의 키 발생 알고리즘은 사전에 생성된 것으로서, 서버와 클라이언트가 이미 공유하고 있으며,그 키 발생 알고리즘에 의해 서버/클라이언트 각각의 비밀키(KeyS, KeyC), 개인키(dS, dC) 및 공개키(eS, eC)를 생성하기 위한 세부 정보는 상기 인증과정(s300, s400) 수행시 상호 교환한 정보를 이용한다.
한편, 서버/클라이언트는 상기와 같이 생성된 비밀키(KeyS, KeyC), 개인키(dS, dC) 및 공개키(eS, eC)에 의거하여 서버/클라이언트간 3차인증을 수행한 후(s600), 3차인증에 성공한 경우 해당 개인키(d) 및 공개키(e)를 공개키 암호 알고리즘을 위한 일회용 키로 확정한다(s700).
도 2a는 본 발명의 실시예에 따른 공개키후보집합(N)생성 과정(s100)에 대한 처리 흐름도이다.
이 때, 공개키후보집합(N)의 원소들(n1, n2, …, nm)은 RSA 암호화 알고리즘에서 사용되는 공개키(n)을 말하는 것으로서, RSA 암호화 알고리즘에서 공개키(n)은 두 소수(p,q)들의 곱으로 생성된다. 따라서, 공개키후보집합(N)을 생성하기 위해서는 먼저, 소정 개(m)의 소수들로 구성된 제1 소수집합(P)과, 제2 소수집합(Q)을 생성하고(s110, s120), 그 제1 및 제2 소수집합들(P, Q)을 곱하여(P*Q), 공개키후보집합(N)을 생성한다. (수학식 2)에 제1 소수집합(P)과, 제2 소수집합(Q) 및 공개키후보집합(N)들에 대한 예가 나타나 있다.
한편, 상기 제1 및 제2 소수집합들(P, Q)은 바이너리(binary) 200자리 이상의 소수들로 구성되며, 그 소수들은 다음과 같은 조건을 만족해야 한다.
1. (p-1)과 (q-1)은 거의 같은 크기이다.
2. (p-1)과 (q-1)은 큰 소인수를 갖는다.
3. (p-1)과 (q-1)의 최대공약수는 작은 수이다.
이 때, 상기 조건들은 RSA 암호화 알고리즘에서 p와 q를 선택하는 조건과 같다.
도 2b는 본 발명의 실시예에 따른 1차인증 과정(s300)에 대한 처리 흐름도이다. 도 2b를 참조하면, 서버/클라이언트간 1차인증을 수행하기 위해서 서버/클라이언트는 먼저, 자신의 공개키후보집합(N)으로부터 공개키후보(nS, nC)를 각각 선정한다(s310).
그리고, 서버/클라이언트는 기 설정된 암호문생성알고리즘을 이용하여 암호문리스트(VS, V1S,…,VmS/ VC,V1C,…,VmC)를 각각 생성한다(s320). 이 때, 암호문생성알고리즘은 기 설정되어 서버/클라이언트가 공유하고 있어야 하며, 서버/클라이언트가 공유하고 있는 소정의 정보를 이용하는 것을 원칙으로 한다. (수학식 3)에는 공개키후보집합(N)의 원소들을 이용하여 암호문리스트(VS, V1S,…,VmS/ VC,V1C,…,VmC)를 생성하는 암호문생성알고리즘의 예가 나타나 있다.
여기서, 'n'은 서버/클라이언트가 각각 선정한 '공개키후보'를 말함
이와 같이 서버/클라이언트 각측에서 암호문리스트(VS, V1S,…,VmS/ VC,V1C,…,VmC)가 생성되었으면, 서버/클라이언트 각각의 공개키후보(nS, nC)를 기 설정된 암호해독알고리즘에 적용하여 상기 암호문리스트(VS, V1S,…,VmS/ VC,V1C,…,VmC)를 해독한다(s330). 이 때, 암호해독알고리즘은 기 설정되어 서버/클라이언트가 사전에 공유하도록 하는 것을 원칙으로 하며, (수학식 4)에는 이러한 암호해독알고리즘의 예가 나타나 있다.
이 때, C는 '암호문', Me는 '평문', n은 '공개키후보'
상기 예와 같은 암호해독알고리즘에 의해 암호문리스트(VS, V1S,…,VmS/ VC,V1C,…,VmC)를 해독하였으면, 서버/클라이언트는 그 해독결과인 소정 개의 평문리스트(MS,M1S,…, MmS/ MC,M1C,…, MmC)상호 교환한다(s340).
한편, 서버/클라이언트는 상기 공개키후보집합(N)에 포함된 모든 원소들(n1, n2, …, nm)을 상기 (수학식 4)와 같은 암호해독알고리즘에 적용하여 상기 암호문리스트(V1S,…,VmS/ V1C,…,VmC)를 해독하고(s350), 그 결과 공개키후보집합(N)의 각 원소들(n1, n2, …, nm)별로 생성된 소정개의 평문리스트들(n1(M1S,…, MmS), …,nm(M1S,…, MmS2)/ n1(M1C,…, MmC), …,nm(M1C,…, MmC))들 중 상대방으로부터 전달된 평문리스트(M1C,…, MmC/ M1S,…, MmS)와 동일한 값이 있는지를 비교하여 1차인증을 수행한다(s360).
이러한 1차인증 결과는 상기 2차인증을 위한 인증정보로 사용되는데, 상기 공개키후보집합(N)의 원소들(n1, n2, …, nm) 중 상기 과정(s360)의 비교결과 상대방으로부터 전달된 평문리스트(M1C, …, MmC/ M1S, …, MmS)와 동일한 평문리스트로 판단된 평문리스트(nx(M1S,…, MmS)/ nx(M1C,…, MmC))를 발생시킨 값(nx)을 상대방의 공개키후보(nC, nS)로 도출한 후, 그 상대방의 공개키후보(nC, nS)가 자신의 공개키후보집합(N)내에 있는지를 확인하여 2차인증을 수행한다(s400).
도 2c는 본 발명의 실시예에 따른 일회용 키 생성 과정(s500)에 대한 처리 흐름도이다. 도 2c를 참조하면, 일회용 키를 생성하기 위해, 서버/클라이언트 간 공통인증정보를 생성한 후(s510), 그 공통인증정보 중 소정값을 서버/클라이언트가 각각 선택하고(s520), 그 정보에 의거하여 서버/클라이언트 각각의 비밀키(KeyS, KeyC)를 생성한다(s530). 그리고, 오일러의 정의 및 유클리드 호제법등을 이용하여 서버/클라이언트 각각의 개인키(dS, dC) 및 공개키(eS, eC)를 생성한다(s540).
이 때, 서버/클라이언트 간 공통인증정보를 생성하기(s510) 위해서는 상기 1차인증(s300)시 서버/클라이언트가 상호 교환한 암호해독정보인 평문리스트를 이용한다. 즉, 상대방으로부터 전달된 평문리스트(M1C, …, MmC/ M1S, …, MmS)와, 자신이 상대방측으로 전달한 평문리스트(M1S, …, MmS/ M1C, …, MmC)를 논리연산하여() 서버/클라이언트간 공통평문리스트(M1, …, Mm)를 생성하고, 그 공통평문리스트(M1, …, Mm)를 공통인증정보로 사용한다.
그리고, 서버/클라이언트 각각의 비밀키(KeyS, KeyC)를 생성하기(s530) 위해, 서버/클라이언트는 상기 공통평문리스트(M1, …, Mm) 중 하나(MS, MC)를 각각 선택한 후(s520), 그 값(MS, MC)을 (수학식 5)에 적용한다.
이와 같이 서버/클라이언트 각각의 비밀키(KeyS, KeyC)를 생성하였으면, (수학식 6)에 나타난 오일러의 정의를 이용하여 서버/클라이언트 각각의 공개키후보(nS, nC)가 두 소수들의 곱(pS*qS, pC*qC)일 때 성립되는 값(∮(nS) 및 ∮(nC))을 각각 계산한 후, 그 결과를 (수학식 7)에 나타난 유클리드 호제법에 적용하여 서버/클라이언트 각각의 개인키(dS, dC) 및 공개키(eS, eC)를 생성한다.
∮(n) = (p-1)(q-1)
e·d ≡1(mod ∮(n))
도 2d는 본 발명의 실시예에 따른 3차인증 과정(s600)에 대한 처리 흐름도이다. 도 2d를 참조하면, 본 발명에서는 3차인증을 위해 서버/클라이언트가 각각의 비밀키(KeyS, KeyC)와, 개인키(dS, dC) 및 공개키(eS, eC)를 이용한다. 즉, 서버/클라이언트가 각각의 비밀키(KeyS, KeyC)를 이용하여 개인키(dS, dC) 및 공개키(eS, eC)를 암호화한 후(s610), 그 암호문을 상호 전송한다(s620). 그러면, 서버/클라이언트 각각은 자신의 비밀키(KeyS, KeyC)를 이용하여 상기 전송된 암호문을 복호화함으로써, 상대방의 개인키(dC, dS) 및 공개키(eC, eS)를 도출하고(s630), 상기 도출된 상대방의 개인키(dC, dS) 및 공개키(eC, eS)와 자신의 개인키(dS, dC) 및 공개키(eS, eC)를 비교하여 상기 서버/클라이언트간 3차인증을 수행한다(s640).
도 3은 본 발명의 실시예에 따라 일회용 키를 생성하기 위한 클라이언트와 서버 각각의 처리 흐름을 나타낸 절차도이다. 도 3을 참조하면, 이러한 일련의 과정을 수행하기 위해 서버(20) 및 클라이언트(10) 각 측의 처리 과정을 보다 쉽게 파악할 수가 있다.
먼저, 클라이언트(10)는 공개키 암호 알고리즘을 위한 일회용 키를 생성하기 위해, 공개키후보집합(N)을 생성하여(s801) 서버(20)측으로 전송한다(s802). 이 때, 도 3에서는 클라이언트(10)측에서 공개키후보집합(N)을 생성하는 경우에 대한 예를 나타내었으나, 공개키후보집합(N)은 서버(20)측에서 생성하여 클라이언트(20)측으로 전송하도록 할 수도 있다.
이와 같이 하여 동일한 공개키후보집합(N)을 클라이언트(10)와 서버(20)가 공유하였으면, 클라이언트(10)와 서버(20)는 그 공개키후보집합(N)으로부터 자신의 공개키후보(nC, nS)를 각각 선택한다(s803, s804). 그리고, 그 공개키후보(nC, nS)및 공개키후보집합(N)에 의거하여 소정의 인증보조정보(InC, InS)를 각각 생성하여(s805, s806) 상호 교환한다(s807, s808).
이 때, 인증보조정보(InC, InS)는 상기 도 2b를 참조한 설명에서와 같이 소정의 알고리즘에 의해 생성된 평문리스트가 될 수 있다.
그리고, 그 인증보조정보(InC, InS)에 의거하여, 클라이언트(10)와 서버(20)가 상호 1차인증을 수행한다(s809, s810).
상기 1차인증이 성공하였으면, 클라이언트(10)와 서버(20)는 상대방으로부터 전송된 인증보조정보(InS, InC) 및 자신의 인증보조정보(InC, InS)에 의거하여 상대방의 공개키후보(nS, nC)를 각각 도출한 후(s811, s812), 상대방의 공개키후보(nS, nC)에 의거하여 상호 2차인증을 수행한다(s813, s814).
상기 2차인증이 성공하였으면, 상기 과정(s807, s808)에서 상호 교환한 인증보조정보들(InC, InS)을 논리연산()하여 공통인증정보(In)을 생성한다(s815, s816). 이 때, 공통인증정보(In)는 클라이언트(10)와 서버(20)에서 각각 생성하지만, 상기 1차 및 2차인증시 상호 교환한 인증보조정보(InC, InS)를 이용함으로써, 클라이언트(10) 및 서버(20)에서 생성된 공통인증정보(In)는 동일한 값을 가지게 된다.
그리고, 그 공통인증정보(In)로부터 소정값을 선택하여 클라이언트(10)와 서버(20) 각각의 비밀키(KeyC, KeyS)를 생성하고(s817, s818), 오일러의 정의 및 유클리드 호제법 등의 알고리즘을 응용하여 클라이언트(10)와 서버(20) 각각의 개인키(dC, dS) 및 공개키(eC, eS)를 각각 생성하여 그 개인키(dC, dS) 및 공개키(eC, eS)를 각각의 비밀키(KeyC, KeyS)를 이용하여 암호화한다(s819, s820).
그 후, 상기 암호화된 개인키(dC, dS) 및 공개키(eC, eS)를 상호 교환한다(s821, s822). 클라이언트(10) 및 서버(20)는 그 상호 교환된 정보에 의거하여 상호 3차인증을 수행하게 되는데, 클라이언트(10) 및 서버(20) 각각의 비밀키(KeyC, KeyS)를 이용하여 상대방의 개인키(dS, dC) 및 공개키(eS, eC)를 복호화한 후(s823, s824), 자신의 개인키(dC, dS) 및 공개키(eC, eS)와 상대방의 개인키(dS, dC) 및 공개키(eS, eC)를 비교함으로써, 상호 3차인증을 수행한다(s825, s826).
마지막으로 상기 3차인증이 성공하면, 해당 일회용 키를 확정한다(s827, s828). 따라서, 클라이언트(10)와 서버(20)는 상기 일회용 키를 이용한 공개키 암호 알고리즘에 의해 문서를 암호하고, 복호하는 과정을 수행하게 되는 것이다.
이상의 설명은 하나의 실시예를 설명한 것에 불과한 것으로서, 본 발명은 상술한 실시예에 한정되지 않으며 첨부한 특허청구범위 내에서 다양하게 변경 가능하다. 예를 들어 본 발명의 실시예에 구체적으로 나타난 각 구성 요소의 형상 및 구조는 변형하여 실시할 수 있다.
상기와 같은 본 발명의 일회용 키 생성방법에 따르면, 공개키 암호 알고리즘을 사용하는 서버/클라이언트가 통신망을 이용하지 않고 일회용 키를 공유할 수 있도록 한다는 특징이 있다. 따라서, 일회용 키를 통신망을 이용하여 서버/클라이언트가 공유할 경우 그 일회용 키가 제3자에게 유출되는 것을 방지할 수 있고, 이로 인해, 정보 전달시 보다 효과적으로 보안을 유지할 수 있다는 장점이 있다.

Claims (10)

  1. 공개키 암호 알고리즘을 위한 일회용 키 생성방법에 있어서,
    서버/클라이언트가 정보 전달 요청이 발생한 경우 공개키후보집합(N)을 생성한 후, 서버/클라이언트가 그 공개키후보집합(N)을 공유하는 제1 과정과,
    서버/클라이언트가 상기 공개키후보집합(N)으로부터 공개키후보(nS, nC)를 각각 선정하고, 그 공개키후보(nS, nC)를 이용하여 생성한 소정의 인증정보를 교환하여 서버/클라이언트간 1차인증을 수행하는 제2 과정과,
    상기 1차인증 성공시 상기 소정의 인증정보 및 공개키후보집합(N)에 의거하여 상대방의 공개키후보(nC, nS)를 도출한 후, 그 상대방의 공개키후보(nC, nS)에 의거하여 2차인증을 수행하는 제3 과정과,
    상기 2차인증에 성공한 경우 소정의 키 발생 알고리즘에 의거하여 서버/클라이언트의 비밀키(KeyS, KeyC), 개인키(dS, dC) 및 공개키(eS, eC)를 각각 생성하는 제4 과정과,
    상기 비밀키(KeyS, KeyC), 개인키(dS, dC) 및 공개키(eS, eC)에 의거하여 3차인증을 수행하는 제5 과정과,
    3차인증에 성공한 경우 해당 개인키(d) 및 공개키(e)를 공개키 암호 알고리즘을 위한 일회용 키로 확정하는 제6 과정을 포함하는 것을 특징으로 하는 공개키암호 알고리즘을 위한 일회용 키 생성방법.
  2. 제1항에 있어서, 상기 제1 과정은
    서버 또는 클라이언트 중 한 측에서 공개키후보집합(N)을 생성한 후, 그 공개키후보집합(N)을 타측으로 전송하는 것을 특징으로 하는 공개키 암호 알고리즘을 위한 일회용 키 생성방법.
  3. 제2항에 있어서, 상기 제1 과정은
    소정 개수의 소수들로 구성된 복수개의 소수집합들(P,Q)을 생성한 후 그 소수집합들을 곱하여(P*Q), 공개키후보집합(N)을 생성하는 것을 특징으로 하는 공개키 암호 알고리즘을 위한 일회용 키 생성방법.
  4. 제3항에 있어서, 상기 제1 과정은
    200자리 이상의 소수들에 의해 상기 소수집합들(P,Q)을 생성하는 것을 특징으로 하는 공개키 암호 알고리즘을 위한 일회용 키 생성방법.
  5. 제1항에 있어서, 상기 제2 과정은
    서버/클라이언트가 상기 공개키후보집합(N)으로부터 공개키후보(nS, nC)를 각각 선정하는 제2-1 과정과,
    서버/클라이언트가 기 설정된 암호문생성알고리즘을 이용하여 암호문리스트(VS, V1S,…,VmS/ VC,V1C,…,VmC)를 각각 생성하는 제2-2 과정과,
    서버/클라이언트가 상기 각각의 공개키후보(nS, nC)를 기 설정된 암호해독알고리즘에 적용하여 상기 암호문리스트(VS,V1S,…,VmS/ VC,V1C,…,VmC)를 해독하는 제2-3 과정과,
    서버/클라이언트가 상기 제2-3 과정 수행결과로 생성된 소정개의 평문리스트(MS,M1S,…, MmS/ MC,M1C,…, MmC)상호 교환하는 제2-4 과정과,
    서버/클라이언트가 상기 공개키후보집합(N)에 포함된 모든 원소들(n1, n2, …, nm)을 상기 암호해독알고리즘에 적용하여 상기 암호문리스트(V1S,…,VmS/ V1C,…,VmC)를 해독하는 제2-5 과정과,
    상기 제2-5 과정 수행결과 상기 각 원소들(n1, n2, …, nm)별로 생성된 소정개의 평문리스트들(n1(M1S,…, MmS), …,nm(M1S,…, MmS2)/ n1(M1C,…, MmC), …,nm(M1C,…, MmC)) 중 상대방으로부터 전달된 평문리스트(M1C,…, MmC/ M1S,…, MmS)와 동일한 값이 있는지를 비교하여 1차인증을 수행하는 제2-6 과정을 포함하는 것을 특징으로 하는 공개키 암호 알고리즘을 위한 일회용 키 생성방법.
  6. 제5항에 있어서, 상기 제2-3 과정 및 상기 제2-5 과정 각각은
    서버/클라이언트가 (수학식)을 포함하는 암호해독알고리즘에 의거하여, 해당 암호문리스트를 해독하는 것을 특징으로 하는 공개키 암호 알고리즘을 위한 일회용 키 생성방법.
    (수학식)
    C = Me(mod n)
    이 때, C는 '암호문', Me는 '평문', n은 '공개키후보'
  7. 제5항에 있어서, 상기 제3 과정은
    상기 공개키후보집합(N)의 원소들(n1, n2, …, nm) 중 상기 제2-6 과정의 비교결과 상대방으로부터 전달된 평문리스트(M1C, …, MmC/ M1S, …, MmS)와 동일한 평문리스트로 판단된 평문리스트(nx(M1S,…, MmS)/ nx(M1C,…, MmC))를 발생시킨 값(nx)을 상대방의 공개키후보로 도출하는 것을 특징으로 하는 공개키 암호 알고리즘을 위한 일회용 키 생성방법.
  8. 제5항에 있어서, 상기 제4 과정은
    상기 제2-6 과정의 비교결과 상대방으로부터 전달된 평문리스트(M1C, …, MmC/ M1S, …, MmS)와, 그 평문리스트(M1C, …, MmC/ M1S, …, MmS)와 동일하다고 판단된평문리스트(nx(M1S,…, MmS)/ nx(M1C,…, MmC))를 논리연산하여 서버/클라이언트간 공통평문리스트(M1, …, Mm)를 생성하는 제4-1 과정과,
    서버/클라이언트가 상기 공통평문리스트(M1, …, Mm) 중 하나(MS, MC)를 각각 선택한 후, 그 값(MS, MC)을 (수학식 1)에 적용하여 각각의 비밀키(KeyS, KeyC)를 생성하는 제4-2 과정과,
    서버/클라이언트가 (수학식 2)에 나타난 오일러의 정의를 이용하여 상기 공개키후보(nS, nC)가 두 소수들의 곱(pS*qS, pC*qC)일 때 성립되는 값(∮(nS) 및 ∮(nC))을 각각 계산하는 제4-3 과정과,
    서버/클라이언트가 상기 제4-3 과정의 결과를 (수학식 3)에 나타난 유클리드 호제법에 적용하여 개인키(dS, dC) 및 공개키(eS, eC)를 각각 생성하는 제4-4 과정을 포함하는 것을 특징으로 하는 공개키 암호 알고리즘을 위한 일회용 키 생성방법.
    (수학식 1)
    KeyS= MS (nS×nC)
    KeyC= MC (nS×nC)
    (수학식 2)
    ∮(n) = (p-1)(q-1)
    (수학식 3)
    e·d ≡1(mod ∮(n))
  9. 제1항에 있어서, 상기 제5 과정은
    서버/클라이언트가 상기 제4 과정에서 생성된 비밀키(KeyS, KeyC)에 의해 상기 개인키(dS, dC) 및 공개키(eS, eC)를 암호화하여 상대방에게 전송하는 제5-1 과정과,
    서버/클라이언트가 자신의 비밀키(KeyS, KeyC)에 의해 상기 제5-1 과정에서 전송된 암호문을 복호화하여 상대방의 개인키(dC, dS) 및 공개키(eC, eS)를 도출하는 제5-2 과정과,
    상기 제5-2 과정에서 도출된 상대방의 개인키(dC, dS) 및 공개키(eC, eS)와 자신의 개인키(dS, dC) 및 공개키(eS, eC)를 비교하여, 상기 서버/클라이언트간 3차인증을 수행하는 제5-3 과정을 포함하는 것을 특징으로 하는 공개키 암호 알고리즘을 위한 일회용 키 생성방법.
  10. 컴퓨터로 읽을 수 있는 기록 매체에 있어서,
    그 기록 매체가 컴퓨터에 의해 구동될 때, 청구항 1 내지 9항 중 어느 한 항에 따른 방법을 실현시키기 위한 제어 명령들을 기록한 것을 특징으로 하는 컴퓨터로 읽을 수 있는 기록 매체.
KR10-2001-0077913A 2001-12-10 2001-12-10 공개키 암호 알고리즘을 위한 일회용 키 생성방법 KR100447712B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR10-2001-0077913A KR100447712B1 (ko) 2001-12-10 2001-12-10 공개키 암호 알고리즘을 위한 일회용 키 생성방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR10-2001-0077913A KR100447712B1 (ko) 2001-12-10 2001-12-10 공개키 암호 알고리즘을 위한 일회용 키 생성방법

Publications (2)

Publication Number Publication Date
KR20020056820A true KR20020056820A (ko) 2002-07-10
KR100447712B1 KR100447712B1 (ko) 2004-09-08

Family

ID=27725564

Family Applications (1)

Application Number Title Priority Date Filing Date
KR10-2001-0077913A KR100447712B1 (ko) 2001-12-10 2001-12-10 공개키 암호 알고리즘을 위한 일회용 키 생성방법

Country Status (1)

Country Link
KR (1) KR100447712B1 (ko)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100667757B1 (ko) * 2004-07-07 2007-01-11 삼성전자주식회사 자기 규제 방법 및 이를 이용한 콘텐츠 송수신 방법
WO2007109373A2 (en) * 2006-03-22 2007-09-27 Vadium Technology, Inc. Recording over the key in otp encryption
KR101020416B1 (ko) * 2009-02-20 2011-03-09 성균관대학교산학협력단 소스인증 및 부인방지를 제공하는 수신제한 시스템 및 그 방법

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR0143598B1 (ko) * 1995-04-27 1998-08-01 정명식 하나의 비밀키를 이용한 다수의 신분인증 및 디지탈서명 생성과 확인방법
KR100277689B1 (ko) * 1998-12-04 2001-01-15 정선종 개방형 통신망에서의 사용자 인증 방법
JP2001243196A (ja) * 2000-03-01 2001-09-07 Fujitsu Ltd 携帯電話とicカードを利用した個人認証システム
KR20030032327A (ko) * 2001-10-17 2003-04-26 엘지전자 주식회사 타원 곡선 암호를 이용한 사용자 인증 방법

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100667757B1 (ko) * 2004-07-07 2007-01-11 삼성전자주식회사 자기 규제 방법 및 이를 이용한 콘텐츠 송수신 방법
WO2007109373A2 (en) * 2006-03-22 2007-09-27 Vadium Technology, Inc. Recording over the key in otp encryption
WO2007109373A3 (en) * 2006-03-22 2007-11-08 Vadium Technology Inc Recording over the key in otp encryption
KR101020416B1 (ko) * 2009-02-20 2011-03-09 성균관대학교산학협력단 소스인증 및 부인방지를 제공하는 수신제한 시스템 및 그 방법

Also Published As

Publication number Publication date
KR100447712B1 (ko) 2004-09-08

Similar Documents

Publication Publication Date Title
US10785019B2 (en) Data transmission method and apparatus
Arshad et al. An efficient and secure authentication and key agreement scheme for session initiation protocol using ECC
Yang et al. Provably secure three-party authenticated key agreement protocol using smart cards
US7873169B2 (en) Methods, devices and systems for generating anonymous public keys in a secure communication system
US7865730B2 (en) Bcencryption (BCE)—a public-key based method to encrypt a data stream
Yang et al. New efficient user identification and key distribution scheme providing enhanced security
JP5544355B2 (ja) 共有の秘密の確認の方法およびシステム
JPH03128541A (ja) 暗号通信システムと暗号通信方法
Natanael et al. Text encryption in android chat applications using elliptical curve cryptography (ECC)
KR100989185B1 (ko) Rsa기반 패스워드 인증을 통한 세션키 분배방법
JP2008172736A (ja) 暗号文復号権委譲システム
Shukla et al. A new secure authenticated key agreement scheme for wireless (mobile) communication in an EHR system using cryptography
Tsai et al. An ECC-based blind signcryption scheme for multiple digital documents
Zhang et al. Robust and efficient password authenticated key agreement with user anonymity for session initiation protocol‐based communications
Daddala et al. Design and implementation of a customized encryption algorithm for authentication and secure communication between devices
Chen et al. NIST post-quantum cryptography standardization
KR100447712B1 (ko) 공개키 암호 알고리즘을 위한 일회용 키 생성방법
Zhu A provable privacy-protection system for multi-server environment
Nguyen et al. No-key protocol for deniable encryption
Madhusudhan et al. A novel DNA based password authentication system for global roaming in resource-limited mobile environments
Avestro et al. Hybrid Algorithm Combining Modified Diffie Hellman and RSA
KR20030047148A (ko) Rsa를 이용한 클라이언트/서버 기반의 메신저 보안 방법
Yau et al. Cryptanalysis of a chaotic map-based password-authenticated key agreement protocol using smart cards
Braeken An improved e-payment system and its extension to a payment system for visually impaired and blind people with user anonymity
Salim et al. Design and implementation of a secure mobile banking system based on elliptic curve integrated encryption schema

Legal Events

Date Code Title Description
A201 Request for examination
G15R Request for early opening
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20070831

Year of fee payment: 4

LAPS Lapse due to unpaid annual fee