KR100445574B1 - 대화형 영 지식 증명을 이용한 패스워드 기반의 인증 및키 교환 프로토콜 설계 방법 - Google Patents

대화형 영 지식 증명을 이용한 패스워드 기반의 인증 및키 교환 프로토콜 설계 방법 Download PDF

Info

Publication number
KR100445574B1
KR100445574B1 KR10-2001-0081105A KR20010081105A KR100445574B1 KR 100445574 B1 KR100445574 B1 KR 100445574B1 KR 20010081105 A KR20010081105 A KR 20010081105A KR 100445574 B1 KR100445574 B1 KR 100445574B1
Authority
KR
South Korea
Prior art keywords
server
user
password
authentication
key exchange
Prior art date
Application number
KR10-2001-0081105A
Other languages
English (en)
Other versions
KR20030050620A (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-0081105A priority Critical patent/KR100445574B1/ko
Priority to US10/066,729 priority patent/US20030115464A1/en
Priority to CA002388906A priority patent/CA2388906C/en
Publication of KR20030050620A publication Critical patent/KR20030050620A/ko
Application granted granted Critical
Publication of KR100445574B1 publication Critical patent/KR100445574B1/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
    • 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
    • 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
    • H04L9/0844Key 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 with user authentication or key authentication, e.g. ElGamal, MTI, MQV-Menezes-Qu-Vanstone protocol or Diffie-Hellman protocols using implicitly-certified keys
    • 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/3218Cryptographic 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 proof of knowledge, e.g. Fiat-Shamir, GQ, Schnorr, ornon-interactive zero-knowledge proofs
    • H04L9/3221Cryptographic 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 proof of knowledge, e.g. Fiat-Shamir, GQ, Schnorr, ornon-interactive zero-knowledge proofs interactive zero-knowledge proofs

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Storage Device Security (AREA)
  • Computer And Data Communications (AREA)
  • Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)

Abstract

본 발명은 대화형 영 지식 증명을 이용하여 패스워드 기반의 인증 및 키 교환을 안전하게 수행하는 프로토콜의 설계 방법에 관한 것이다. 본 방법에서는, 먼저, 인증에 필요한 각종 시스템 파라미터를 설정한다. 그리고, 그 설정된 파라미터에 의거하여 사용자가 임의로 랜덤 수를 선택하여, 사용자 ID, 소정의 일방향 함수를 적용한 시험수(A), 및 서버와 사용자에게만 알려지는 질문수를 생성하기 위한 값(X)으로 이루어진 메시지를 서버에게 보낸다. 그 후, 이 메시지를 이용하여 서버가 서버의 공개키 소유 여부에 대한 증명(Auth)과 서버와 사용자에게만 알려지는 질문수를 생성하기 위한 값(Y)으로 이루어진 메시지를 사용자에게 보낸다. 사용자가 그 Auth를 검증해서 서버를 인증하고, 서버와 사용자만 아는 비밀 동전 던지기의 결과 값(c)과 세션 키(SK)를 계산 후, 사용자 인증을 위해 목격자 수(B)를 서버에게 전송한다. 그 후, 각 사용자에 대한 패스워드 확인자(V)가 보관된 서버가 c를 이용하여 그 B를 검증하고, SK를 계산하여 세션 키를 교환한다. 따라서, 본 발명은, 대화형 영 지식 증명 프로토콜을 사용하면서도 스마트카드 등의 도구없이 패스워드만 기억하므로써 안전한 인증 및 키교환을 할 수 있도록 도와준다.

Description

대화형 영 지식 증명을 이용한 패스워드 기반의 인증 및 키 교환 프로토콜 설계 방법{METHOD OF DESIGNING PASSWORD BASED AUTHENTICATION AND KEY EXCHANGE PROTOCOL USING ZERO-KNOWLEDGE INTERACTIVE PROOF}
본 발명은 통신망에서 패스워드를 이용해서 사용자 인증 및 안전한 통신을 위한 키 교환을 수행하기 위한 방법에 관한 것으로, 특히 기존의 대화형 영 지식 증명(Zero-Knowledge Interactive Proof)을 이용한 패스워드 기반의 인증 및 키 교환 프로토콜 설계 방법에 관한 것이다. 이러한 사용자는 다른 일체의 도구 없이 패스워드만을 기억함으로써 자신의 신분을 증명할 수 있고, 이후의 통신에 사용될 세션 키를 안전하게 서버와 공유할 수 있게 된다. 여기서, 사용자는 인증 요청을 수행하는 주체이고, 서버는 인증을 수행하는 주체를 나타낸다.
상기와 같이 패스워드를 이용한 사용자 인증은, 통신에 참여하는 두 주체가 상대방이 자신이 통신하려고 하는 그 주체임을 패스워드를 통해 확인하는 과정을 말한다. 이때, 사용자 인증에 필요한 정보 이외에 아무런 정보도 상대방에게 노출해서는 안된다. 또한, 패스워드를 이용한 키 교환은, 통신에 참여하는 두 주체가 키를 공유하는 과정을 말한다. 이때, 도청자가 이 공유된 키를 알 수 없도록 해야한다.
또한, 패스워드는 대칭키 또는 공개키 암호 시스템 등에서 사용되는 키와는 달리, 매우 짧고 랜덤성도 크지 않으므로 패스워드를 이용한 사용자 인증 및 키 교환 프로토콜은 오프라인 사전 공격에 공격당하기 쉽다.
일반적인 영 지식 증명이 사용자 인증에 사용되기는 하지만 키로서 패스워드를 사용하는 경우에는 안전하지 못하다. 그러나, 본 발명에서는 일반적인 영 지식증명 프로토콜이, 키로서 패스워드를 갖는 경우에도 안전하게 수행 될 수 있는 방법을 제시한다.
현재 사용되고 있는 패스워드를 이용한 인증 프로토콜은 오프라인 사전 공격(offline dictionary attack)에 매우 취약한 것으로 알려져 있다. 이를 보완하기 위해서 Tom Wu의 SRP, David Jablon의 B-SPEKE, Belloving 등의 EKE 등이 설계되었다. 하지만 기존의 사용자 인증 프로토콜은 패스워드를 이용하는 경우 그 안전성이 수학적으로 증명되지 않았다. 최근에는 EKE(encrypted key exchange)의 일부분에 대해 안전성이 증명되었으며, 수학적인 안전성 증명을 갖는 프로토콜들이 제안되었으나 대부분 adhoc 설계에 의존하고 있다.
또한, 인증 프로토콜중 패스워드를 이용하지 않고 공개키 암호시스템을 사용하는 경우 사용자의 비밀키나 인증서를 저장하고 있는 스마트카드 등의 보안 토큰을 사용자가 소지해야하는 불편함이 따른다. 따라서, 종래기술에 의하면, 패스워드를 이용한 인증 및 키 교환 프로토콜의 편리함을 제공하지 못한다.
따라서, 상기와 같은 문제점을 해결하기 위해서, 본 발명은, 오프라인 사전 공격에 대해 수학적인 안전성 증명을 가지며, adhoc 설계가 아닌 체계적인 패스워드 기반 인증 프로토콜 설계를 가능하게 하는데 하나의 목적이 있다.
또한, 본 발명은, 본 발명에서 정의하는 패스워드 기반의 인증 및 키 교환 프로토콜을 이용할 경우 사용자로 하여금 패스워드만을 기억하게 함으로써, 사용자자신을 인증시킬 수 있고, 키 교환을 수행할 수 있게 하는데 다른 목적이 있다.
부연하면, 본 발명은, 주어진 대화형 영 지식 증명을 이용해서 패스워드 기반의 인증 및 키 교환 프로토콜을 체계적으로 설계하는 방법을 제공한다. 이러한 본 발명은, 어떤 영 지식 증명이 주어졌을 때 새로운 인증 및 키 교환 프로토콜로 변환 할 수 있는 방법이다.
도 1은 본 발명의 사용자 인증 과정 및 키 교환 알고리즘의 프레임웍을 나타낸 도면,
도 2는 본 발명의 사용자 인증 과정 및 키 교환 프레임웍에 RSA 문제를 적용한 프로토콜을 나타낸 도면,
도 3은 본 발명의 사용자 인증 과정 및 키 교환 프레임웍에 이산 대수 문제를 적용한 프로토콜을 나타낸 도면,
도 4는 본 발명의 사용자 인증 과정 및 키 교환 프레임웍에 소인수 분해에 기초한 제곱근 문제를 적용한 프로토콜을 나타낸 도면.
*도면의 주요 부분에 대한 부호의 설명*
50 : 사용자 60 : 서버
100 : 시스템 설정
상술한 목적을 달성하기 위해 본 발명의 대화형 영 지식 증명을 이용한 패스워드 기반의 인증 및 키 교환 프로토콜 설계 방법을 제공한다. 이 방법은, 먼저, 인증에 필요한 각종 시스템 파라미터를 설정한다. 그 후, 그 설정된 파라미터에 의거하여 사용자가 임의로 랜덤 수(r, x)를 선택하여, 사용자 ID(IDuser), 일방향 함수(OWF)를 적용해서 얻은 시험수인 (A=OWF(r)), 및 서버와 사용자에게만 알려지는 제 1 질문수 생성 값(X)으로 이루어진 메시지를 서버에게 보낸다. 이 보내진 메시지를 이용하여 서버가 서버의 공개키 소유 여부에 대한 증명(Auth)과 서버와 사용자에게만 알려지는 제 2 질문수 생성 값(Y)으로 이루어진 메시지를 사용자에게 보낸다. 사용자가 상기 Auth를 검증해서 서버를 인증하고, 서버와 사용자만 아는 비밀 동전 던지기의 결과 값(c)과 세션 키(SK)를 계산한다. 이와 같이 서버와 사용자만 아는 비밀 동전 던지기의 결과 값으로 인해 오프라인 사전공격을 막을 수 있다. 그 계산 후, 사용자 인증을 위해 목격자 수(B)를 서버에게 전송한다. 각 사용자에 대한 패스워드 확인자(V=OWF(f(P))가 비밀리에 보관된 서버가 목격자 수(B)를 상기A, V 및 c를 이용해 검증하고, SK를 계산하여 세션 키를 교환한다. 이에 따라서, 본 발명에서 주어진 대화형 영 지식 증명을 이용해서 패스워드 기반의 인증 및 키 교환 프로토콜을 체계적으로 설계할 수 있다.
또한, 본 발명에서는, 도 1의 프레임웍에 RSA 문제, 이산 대수 문제 및 소인수 분해 문제에 대응한 패스워드 확인자가 각각 서버에 비밀리에 보관되고, 상기 문제에 대응하게 사용자가 목격자 수(B)를 서로 다르게 하고, 이러한 서로 다른 목격자 수에 상응하게 검증요소를 다르게 한다. 이들은, 이후에 상세히 설명하겠다.
이와 같이 본 발명은, 종래기술에서처럼 하나의 인증 프로토콜만을 제시하지 않고, 암호학에 대한 깊은 지식 없이도 쉽게 새로운 인증 및 키 교환 프로토콜을 설계할 수 있는 방법을 여러 문제에 상응하게 응용할 수 있다.
이하, 사용자가 패스워드만을 이용해서 자신을 서버에게 인증시키고 이후의 안전한 통신을 위해 키를 교환하는 본 발명의 실시예들을 첨부된 도면을 참조하여 설명하겠다.
도 1은 패스워드를 이용한 인증 및 키 교환 프로토콜의 프레임웍을 도시한 것이다.
먼저, 사용자(50)와 서버(60)가 프로토콜을 수행하기 전에 시스템 파라미터를 미리 설정해 둔다(100). 시스템 파라미터는 사용자와 서버간의 약속으로, 시스템 전체를 통해 사용자들이 공유하게 된다. G는 배수 그룹(multiplicative group) Z* p나 타원 곡선그룹 등의 유한 순환 그룹이고, g는 유한 순환 그룹 G의생성기(generator)이다. 본 발명에서는 편의상 배수 그룹 표기법을 따랐다. OWF는 일방향 함수(oneway function)로서, 본 발명의 실시예들에서는, RSA(Rivest, Shamir, Adleman) 문제에 기초한 일방향 함수, 이산 대수 문제에 기초한 일방향 함수 또는 소인수 분해 문제에 기초한 일방향 함수 등으로 한정되어 예시되었지만, 이외의 다른 문제에 기초한 일방향 함수의 예에서도 본 발명이 적용 가능하다. 그리고, f(P)는 패스워드 P를 OWF의 입력값이 되도록 길이를 늘려주는 함수이고, 암호학적 성질을 가질 필요는 없다. V(x)는 x를 키 V로 대칭키 암호화하는 것, V-1(x)는 x를 키 V로 대칭키 복호화하는 것을 의미한다. 여기서, 대칭키 암호는 잘 알려진 DES, 3DES, RC5, AES 등이 될 수 있다. H()는 sha-1, md5 등의 해쉬함수이고, ||는 연결(concatenation)을 의미한다.
도 1에서 사용자의 비밀 정보는 패스워드뿐이고, 서버의 비밀 정보는 각 사용자에 대한 패스워드 확인자 V=OWF(f(P))가 된다.
도 1에서 사용자(50)는 사용자 ID(IDUser), 랜덤수 r을 임의로 선택해서 계산한(101a) 시험수 A=OWF(r), 및 랜덤수 x를 임의로 선택해서 계산한(101b) 서버와 사용자에게만 알려지는 질문수 생성을 위한 값인 X=V(gx)를 포함한 메시지를 서버(60)에게 전송한다(101). 이에 따라, 사용자 및 서버의 인증과, 키 교환 프로토콜을 시작할 수 있게 된다.
상기 전송된 메시지를 받은 서버(60)는, 그 메시지를 이용하여 랜덤수 y를 임의로 선택하여 계산한 서버의 공개키 소유여부에 대한 증명 Auth=H(K'||1)(102a)과 서버와 사용자에게만 알려지는 질문수 생성을 위한 값인 Y=V(gy)(102b)를 포함한 메시지를 사용자(50)에게 전송한다(102). 위에서, Auth=H(K'||1)는 K=[V-1(X)]y, K'=H(K||gx||gy||IDUser||IDServer)를 이용해서 계산한다. 이 과정에 따라서, 다음 과정에서 사용자가 서버 인증정보 및 랜덤 도전(random challenge)(도면부호 103b에서 'c')을 계산하도록 해준다.
서버(60)로부터 전송된(102) 메시지를 받은 사용자(50)는 다음식, K=[V-1(Y)]x, K'=H(K||gx||gy||IDUser||IDServer)을 계산해서 Auth를 검증한다. 이 검증 결과, 성공하면 서버(60)가 패스워드 확인자 V를 알고 있음을 사용자(50)는 확신할 수 있다. 그러므로, 사용자는 서버의 패스워드 확인자 소유여부를 확인함으로써 서버 인증을 완료할 수 있다(103a). 그리고, 사용자(50)는, 상기 A와 TSK=H(K'||0)를 이용해 c=H(TSK||A)를 계산한다. 이때, c는 비밀 동전 던지기의 결과가 되며, 일반적인 영 지식 증명에서 c는 평문형태로 서버에서 사용자로 전송되는 것과는 달리 서버와 사용자만 아는 c값이다. 또한, 이와 같이 인증을 수행하는 주체인 서버가 인증 요청을 수행하는 주체인 사용자에게 인증을 위해 전송하는 랜덤 도전(상기 c를 말함)을 서버와 사용자만 알도록 함으로써 오프라인 사전 공격을 막을 수 있다. 이와 마찬가지로, 후술하는 도 2, 도 3 및 도 4에서도 서버와 사용자만이 랜덤 도전을 알도록 함으로써 오프라인 사전 공격을 막을 수 있다.
이와 같이 계산 후, 사용자는 목격자 수 B를 상술한 c, r 그리고 자신이 가지고 있는 패스워드 P를 이용해서 계산한 후 서버에게 전송한다(103b). 아울러, 사용자는, 세션 키 SK를 SK=H(K'||A||B||2)에 의해 계산한다(103c). 상기 세 진행 단계 103a 내지 103c로 이루어져, 사용자가 서버를 인증하고, 목격자 수 B를 전송하는 과정(103)을 수행한다.
서버(60)는 c=H(TSK||A)를 계산하고 사용자의 목격자수 B를 A, V, c를 이용해서 검증한다. 그 검증 결과, 성공하면 서버의 사용자 인증이 완료된다(104a). 그리고, 서버는 세션 키 SK를 SK=H(K'||A||B||2)에 의해 계산한다(104b). 이 프로토콜 종료 후, 사용자와 서버 사이에 교환된 세션키는 SK=H(K'||A||B||2)이다(104).
도 2는 상술한 도 1의 프레임웍에 RSA 문제를 적용한 프로토콜이다. 도 1에서 설명한 시스템 설정과 모두 같은 의미를 갖고, 다른 부분인 (n=p*q, e)은 RSA 공개키이다. 이때, p, q는 RSA 소수이고, e는 소수이다. 따라서 일방향 함수 OWF(r)=remod n 이다. f(P)는 패스워드 P를 log2(n) bits로 늘려주는 함수이다(200).
도 2에서 사용자의 비밀 정보는 패스워드뿐이고, 서버의 비밀 정보는 각 사용자에 대한 패스워드 확인자 V=[f(P)-1]emod n가 된다.
도 2에서 사용자(50)는 사용자 ID(IDUser), 랜덤수 r을 임의로 선택해서 계산한(201a) 시험수 A=remod n, 및 랜덤수 x를 임의로 선택해서 계산한(201b) 서버와 사용자에게만 알려지는 질문수 생성을 위한 값인 X=V(gx)를 포함한 메시지를서버(60)에게 전송한다(201).
상기 전송된 메시지를 받은 서버(60)는, 그 메시지를 이용하여 랜덤수 y를 임의로 선택하여 계산한 서버의 공개키 소유여부에 대한 증명 Auth=H(K'||1)(202a)과 서버와 사용자에게만 알려지는 질문수 생성을 위한 값인 Y=V(gy)(202b)를 포함한 메시지를 사용자(50)에게 전송한다(202). 위에서, Auth=H(K'||1)는 K=[V-1(X)]y, K'=H(K||gx||gy||IDUser||IDServer)를 이용해서 계산한다.
서버(60)로부터 전송된(202) 메시지를 받은 사용자(50)는 다음식, K=[V-1(Y)]x, K'=H(K||gx||gy||IDUser||IDServer)을 계산해서 Auth를 검증한다. 이 검증 결과, 성공하면 서버(60)가 패스워드 확인자 V를 알고 있음을 사용자(50)는 확신할 수 있다. 그러므로, 사용자는 서버의 패스워드 확인자 소유여부를 확인함으로써 서버 인증을 완료할 수 있다(203a). 그리고, 사용자(50)는, 상기 A와 TSK=H(K'||0)를 이용해 c=H(TSK||A)를 계산한다. 이때, c는 비밀 동전 던지기의 결과가 되며, 일반적인 영 지식 증명에서 c는 평문형태로 서버에서 사용자로 전송되는 것과는 달리 서버와 사용자만 아는 c값이다. 이와 같이 계산 후, 사용자는 목격자 수 B를 상술한 c, r 그리고 자신이 가지고 있는 패스워드 P를 이용해서 계산 후 서버에게 전송한다(203b). 이때의 목격자 수 B는, B=r*f(P)cmod n이다. 아울러, 사용자는, 세션 키 SK를 SK=H(K'||A||B||2)에 의해 계산한다(203c). 상기 세 진행 단계 203a 내지203c로 이루어져, 사용자가 서버를 인증하고, 목격자 수 B를 전송하는 과정(203)을 수행한다.
서버(60)는 c=H(TSK||A)를 계산하고 사용자의 목격자수 B를 Be*Vc=A mod n 을 이용해서 검증한다. 그 검증 결과, 성공하면 서버의 사용자 인증이 완료된다(204a). 그리고, 서버는 세션 키 SK를 SK=H(K'||A||B||2)에 의해 계산한다(204b). 이 프로토콜 종료 후, 사용자와 서버 사이에 교환된 세션키는 SK=H(K'||A||B||2)이다(204).
도 3은 상술한 도 1의 프레임웍에 이산대수문제(Discrete Logarithm Problem)를 적용한 프로토콜이다. 도 1에서 설명한 시스템 설정과 모두 같은 의미를 가지며, p는 p-1이 큰 소수 q를 인수로 갖는 소수이다. a는 Z* q의 생성기이고, 따라서 OWF(r)=armod p 이다. f(P)는 패스워드 P를 log2(q) bits로 늘려주는 함수이다(300).
도 3에서 사용자의 비밀 정보는 패스워드뿐이고, 서버의 비밀 정보는 각 사용자에 대한 패스워드 확인자 V=a-f(P)mod p가 된다.
도 3에서 사용자(50)는 사용자 ID(IDUser), 랜덤수 r을 임의로 선택해서 계산한(301a) 시험수 A= armod p, 및 랜덤수 x를 임의로 선택해서 계산한(301b) 서버와 사용자에게만 알려지는 질문수 생성을 위한 값인 X=V(gx)를 포함한 메시지를 서버(60)에게 전송한다(301).
상기 전송된 메시지를 받은 서버(60)는, 그 메시지를 이용하여 랜덤수 y를 임의로 선택하여 계산한 서버의 공개키 소유여부에 대한 증명 Auth=H(K'||1)(302a)과 서버와 사용자에게만 알려지는 질문수 생성을 위한 값인 Y=V(gy)(302b)를 포함한 메시지를 사용자(50)에게 전송한다(302). 위에서, Auth=H(K'||1)는 K=[V-1(X)]y, K'=H(K||gx||gy||IDUser||IDServer)를 이용해서 계산한다.
서버(60)로부터 전송된(302) 메시지를 받은 사용자(50)는 다음식, K=[V-1(Y)]x, K'=H(K||gx||gy||IDUser||IDServer)을 계산해서 Auth를 검증한다. 이 검증 결과, 성공하면 서버(60)가 패스워드 확인자 V를 알고 있음을 사용자(50)는 확신할 수 있다. 그러므로, 사용자는 서버의 패스워드 확인자 소유여부를 확인함으로써 서버 인증을 완료할 수 있다(303a). 그리고, 사용자(50)는, 상기 A와 TSK=H(K'||0)를 이용해 c=H(TSK||A)를 계산한다. 이때, c는 비밀 동전 던지기의 결과가 되며, 일반적인 영 지식 증명에서 c는 평문형태로 서버에서 사용자로 전송되는 것과는 달리 서버와 사용자만 아는 c값이다. 이와 같이 계산 후, 사용자는 목격자 수 B를 상술한 c, r 그리고 자신이 가지고 있는 패스워드 P를 이용해서 계산 후 서버에게 전송한다(303b). 이때의 목격자 수 B는, B=r+f(P)*c mod q이다. 아울러, 사용자는, 세션 키 SK를 SK=H(K'||A||B||2)에 의해 계산한다(303c). 상기 세 진행 단계 303a 내지 303c로 이루어져, 사용자가 서버를 인증하고, 목격자 수 B를 전송하는 과정(303)을 수행한다.
서버(60)는 c=H(TSK||A)를 계산하고 사용자의 목격자수 B를 aB*Vc=A mod p를 이용해서 검증한다. 그 검증 결과, 성공하면 서버의 사용자 인증이 완료된다(304a). 그리고, 서버는 세션 키 SK를 SK=H(K'||A||B||2)에 의해 계산한다(304b). 이 프로토콜 종료 후, 사용자와 서버 사이에 교환된 세션키는 SK=H(K'||A||B||2)이다(304).
도 4는 상술한 도 1의 프레임웍에 소인수 분해에 기초한 제곱근 문제를 적용한 프로토콜이다. 도 1에서 설명한 시스템 설정과 모두 같은 의미를 가지며, (n= p*q)는 RSA 공개키이다. 따라서 OWF(r) = r2mod n 이다. f(P)는 패스워드 P를 log2(n) bits로 늘려주는 함수이다(400).
도 4에서 사용자의 비밀 정보는 패스워드뿐이고, 서버의 비밀 정보는 각 사용자에 대한 패스워드 확인자,
[V1=[f(P+1)-1]2mod n, V2=[f(P+2)-1]2mod n, V3=[f(P+3)-1]2mod n, ..., Vk=[f(P+k)-1]2mod n, V=H(V1,V2,...,Vk)]가 된다.
도 4에서 사용자(50)는 사용자 ID(IDUser), 랜덤수 r을 임의로 선택해서 계산한(401a) 시험수 A= r2mod n, 및 랜덤수 x를 임의로 선택해서 계산한(401b) 서버와 사용자에게만 알려지는 질문수 생성을 위한 값인 X=V(gx)를 포함한 메시지를 서버(60)에게 전송한다(401).
상기 전송된 메시지를 받은 서버(60)는, 그 메시지를 이용하여 랜덤수 y를 임의로 선택하여 계산한 서버의 공개키 소유여부에 대한 증명 Auth=H(K'||1)(402a)과 서버와 사용자에게만 알려지는 질문수 생성을 위한 값인 Y=V(gy)(402b)를 포함한 메시지를 사용자(50)에게 전송한다(402). 위에서, Auth=H(K'||1)는 K=[V-1(X)]y, K'=H(K||gx||gy||IDUser||IDServer)를 이용해서 계산한다.
서버(60)로부터 전송된(402) 메시지를 받은 사용자(50)는 다음식, K=[V-1(Y)]x, K'=H(K||gx||gy||IDUser||IDServer)을 계산해서 Auth를 검증한다. 이 검증 결과, 성공하면 서버(60)가 패스워드 확인자 V를 알고 있음을 사용자(50)는 확신할 수 있다. 그러므로, 사용자는 서버의 패스워드 확인자 소유여부를 확인함으로써 서버 인증을 완료할 수 있다(403a). 그리고, 사용자(50)는, 상기 A와 TSK=H(K'||0)를 이용해 c=H(TSK||A)를 계산한다. 이때, c는 비밀 동전 던지기의 결과가 되며, 일반적인 영 지식 증명에서 c는 평문형태로 서버에서 사용자로 전송되는 것과는 달리 서버와 사용자만 아는 c값이다. 이와 같이 계산 후, 사용자는 목격자 수 B를 상술한 c, r 그리고 자신이 가지고 있는 패스워드 P를 이용해서 계산 후 서버에게 전송한다(403b). 이때의 목격자 수 B는,
이다. 아울러, 사용자는, 세션 키 SK를 SK=H(K'||A||B||2)에 의해 계산한다(403c). 이렇게 하여서, 사용자가 서버를 인증하고, 목격자 수 B를 전송하는 과정(403)을 수행한다.
서버(60)는 c=H(TSK||A)를 계산하고 사용자의 목격자수 B를,
를 이용해서 검증한다. 그 검증 결과, 성공하면 서버의 사용자 인증이 완료된다(404a). 그리고, 서버는 세션 키 SK를 SK=H(K'||A||B||2)에 의해 계산한다(404b). 이 프로토콜 종료 후, 사용자와 서버 사이에 교환된 세션키는 SK=H(K'||A||B||2)이다(404).
이상과 같은 본 발명은 다음과 같은 효과를 갖는다.
먼저, 본 발명에 의해 설계된 프로토콜은 오프라인 사전 공격(Offline dictionary attack)에 강하다.
또한, 통신망에서 사용되는 사용자 인증 및 키 교환 프로토콜에 응용될 수 있다. 예를 들어, 인터넷 정보보호를 위해 사용되는 TLS(Transport Layer Security)(IETF(Internet Engineering Task Force)에서 제정한 트랜스포트 계층의보안 프로토콜)를 인증서와 비밀키 없이 패스워드만으로 수행하도록 정의할 수 있다. 또한, IEEE 802.11i 그룹에서 논의되고 있는 인증프로토콜에 본 발명을 응용할 수도 있다.
또한, UNIX의 사용자 인증 과정을 본 발명으로 대체할 수도 있다.
이렇게 본 발명을 실제로 응용하는 것 이외에도, 본 발명에서 제시한 프레임웍을 이용하여 새로운 인증 및 키 교환 프로토콜을 쉽게 설계할 수 있다. 따라서, 사용자가 암호학에 대한 깊은 지식 없이도, 쉽게 안전한 인증 및 키 교환 프로토콜을 설계할 수 있게 된다.

Claims (13)

  1. 인증에 필요한 각 종 시스템 파라미터를 설정하는 제 1 과정과,
    상기 설정된 파라미터에 의거하여 사용자가 임의로 랜덤 수(r, x)를 선택하여, 사용자 ID, 일방향 함수를 적용한 시험수(A=OWF(r)), 및 서버와 사용자에게만 알려지는 제 1 질문수 생성 값(X)으로 이루어진 메시지를 서버에게 보내는 제 2 과정과;
    상기 메시지를 이용하여 서버가 서버의 공개키 소유 여부에 대한 증명(Auth)과 서버와 사용자에게만 알려지는 제 2 질문수 생성 값(Y)으로 이루어진 메시지를 사용자에게 보내는 제 3 과정과,
    사용자가 상기 Auth를 검증해서 서버를 인증하고, 일반적인 영 지식 증명에서 서버와 사용자만 아는 비밀 동전 던지기의 결과 값(c)과 세션 키(SK)를 계산 후, 사용자 인증을 위해 목격자 수(B)를 서버에게 전송하는 제 4 과정과,
    각 사용자에 대한 패스워드 확인자(V=OWF(f(P))가 보관된 서버가 상기 B를 상기 A, V 및 c를 이용해 검증하고, SK를 계산하여 세션 키를 교환하는 제 5 과정을 포함하는 것을 특징으로 하는 대화형 영 지식 증명을 이용한 패스워드 기반의 인증 및 키 교환 프로토콜 설계 방법.
  2. 제 1 항에 있어서,
    상기 목격자 수(B)는 상기 c, r 및 자신의 패스워드(P)를 이용하여 서버에게 전송하는 것을 특징으로 하는 대화형 영 지식 증명을 이용한 패스워드 기반의 인증 및 키 교환 프로토콜 설계 방법.
  3. 제 1 항에 있어서,
    상기 서버의 패스워드 확인자 소유 여부를 사용자가 확인하여 서버를 인증하는 것을 특징으로 하는 대화형 영 지식 증명을 이용한 패스워드 기반의 인증 및 키 교환 프로토콜 설계 방법.
  4. 제 1 항에 있어서,
    상기 일방향 함수가 RSA 문제에 기초한 경우 상기 패스워드 확인자를 V=[f(P)-1]emod n 로 하는 것을 특징으로 하는 대화형 영 지식 증명을 이용한 패스워드 기반의 인증 및 키 교환 프로토콜 설계 방법(여기서, (n=p*q(p, q는 RSA소수), e(소수))는 RSA 공개키이고, f(P)는 패스워드 P를 log2(n)bit로 늘려주는 함수임).
  5. 제 1 항 또는 제 4 항 중 어느 한 항에 있어서,
    상기 목격자 수(B)를 B=r*f(P)cmod n 으로 하는 것을 특징으로 하는 대화형 영 지식 증명을 이용한 패스워드 기반의 인증 및 키 교환 프로토콜 설계 방법(여기서, c=H(TSK||A), TSK=H(K'||0), K=[V-1(X)]y, K'=H(K||gx||gy||IDUser||IDServer, H( )는 해쉬함수임).
  6. 제 5 항에 있어서,
    상기 목격자 수(B)의 검증을 BeVc=A mod n 을 이용하여 수행하는 것을 특징으로 하는 대화형 영 지식 증명을 이용한 패스워드 기반의 인증 및 키 교환 프로토콜 설계 방법(여기서, c=H(TSK||A), TSK=H(K'||0), K=[V-1(Y)]x, K'=H(K||gx||gy||IDUser||IDServer).
  7. 제 1 항에 있어서,
    상기 일방향 함수가 이산 대수 문제에 기초한 경우 상기 패스워드 확인자를 V=a-F(p)mod p 로 하는 것을 특징으로 하는 대화형 영 지식 증명을 이용한 패스워드 기반의 인증 및 키 교환 프로토콜 설계 방법(여기서, a는 Z* q의 생성기, p는 소수, f(P)는 패스워드 P를 log2(n)bit로 늘려주는 함수임).
  8. 제 1 항 또는 제 7 항 중 어느 한 항에 있어서,
    상기 목격자 수(B)를 B=r+f(P)*c mod q 로 하는 것을 특징으로 하는 대화형 영 지식 증명을 이용한 패스워드 기반의 인증 및 키 교환 프로토콜 설계 방법(여기서, c=H(TSK||A), TSK=H(K'||0), K=[V-1(X)]y, K'=H(K||gx||gy||IDUser||IDServer, H( )는 해쉬함수임).
  9. 제 8 항에 있어서,
    상기 목격자 수(B)의 검증을 aBVc=A mod p 을 이용하여 수행하는 것을 특징으로 하는 대화형 영 지식 증명을 이용한 패스워드 기반의 인증 및 키 교환 프로토콜 설계 방법(여기서, c=H(TSK||A), TSK=H(K'||0), K=[V-1(Y)]x, K'=H(K||gx||gy||IDUser||IDServer).
  10. 제 1 항에 있어서,
    상기 일방향 함수가 소인수 분해 문제에 기초한 경우 상기 패스워드 확인자를 [V1=[f(P+1)-1]2mod n, V2=[f(P+2)-1]2mod n, V3=[f(P+3)-1]2mod n, ..., Vk=[f(P+k)-1]2mod n, V=H(V1,V2, ...,Vk)]로 하는 것을 특징으로 하는 대화형 영 지식 증명을 이용한 패스워드 기반의 인증 및 키 교환 프로토콜 설계 방법(여기서, n=p*q(p, q는 RSA 소수), f(P)는 패스워드 P를 log2(n)bit로 늘려주는 함수임).
  11. 제 1 항 또는 제 10 항 중 어느 한 항에 있어서,
    상기 목격자 수(B)를
    으로 하는 것을 특징으로 하는 대화형 영 지식 증명을 이용한 패스워드 기반의 인증 및 키 교환 프로토콜 설계 방법(여기서, c=H(TSK||A), TSK=H(K'||0), K=[V-1(X)]y, K'=H(K||gx||gy||IDUser||IDServer, 여기서, H( )는 해쉬함수임).
  12. 제 11 항에 있어서,
    상기 목격자 수(B)의 검증을
    을 이용하여 수행하는 것을 특징으로 하는 대화형 영 지식 증명을 이용한 패스워드 기반의 인증 및 키 교환 프로토콜 설계 방법(여기서, c=H(TSK||A), TSK=H(K'||0), K=[V-1(Y)]x, K'=H(K||gx||gy||IDUser||IDServer, ci는 c의 i번째 비트임).
  13. 제 1 항에 있어서,
    상기 서버가 사용자에게 인증을 위해 전송하는 랜덤 도전을 서버와 사용자만이 알도록 함으로써 오프라인 사전공격을 막는 것을 특징으로 하는 대화형 영 지식 증명을 이용한 패스워드 기반의 인증 및 키 교환 프로토콜 설계 방법.
KR10-2001-0081105A 2001-12-19 2001-12-19 대화형 영 지식 증명을 이용한 패스워드 기반의 인증 및키 교환 프로토콜 설계 방법 KR100445574B1 (ko)

Priority Applications (3)

Application Number Priority Date Filing Date Title
KR10-2001-0081105A KR100445574B1 (ko) 2001-12-19 2001-12-19 대화형 영 지식 증명을 이용한 패스워드 기반의 인증 및키 교환 프로토콜 설계 방법
US10/066,729 US20030115464A1 (en) 2001-12-19 2002-02-07 Method of designing password-based authentication and key exchange protocol using zero-knowledge interactive proof
CA002388906A CA2388906C (en) 2001-12-19 2002-06-04 Method of designing password-based authentication and key exchange protocol using zero-knowledge interactive proof

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR10-2001-0081105A KR100445574B1 (ko) 2001-12-19 2001-12-19 대화형 영 지식 증명을 이용한 패스워드 기반의 인증 및키 교환 프로토콜 설계 방법

Publications (2)

Publication Number Publication Date
KR20030050620A KR20030050620A (ko) 2003-06-25
KR100445574B1 true KR100445574B1 (ko) 2004-08-25

Family

ID=19717229

Family Applications (1)

Application Number Title Priority Date Filing Date
KR10-2001-0081105A KR100445574B1 (ko) 2001-12-19 2001-12-19 대화형 영 지식 증명을 이용한 패스워드 기반의 인증 및키 교환 프로토콜 설계 방법

Country Status (3)

Country Link
US (1) US20030115464A1 (ko)
KR (1) KR100445574B1 (ko)
CA (1) CA2388906C (ko)

Families Citing this family (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20030077857A (ko) * 2002-03-27 2003-10-04 이형우 디지털 워터마크에 대한 영지식 증명 기반 검증 방법
US6708893B2 (en) * 2002-04-12 2004-03-23 Lucent Technologies Inc. Multiple-use smart card with security features and method
US20040073795A1 (en) * 2002-10-10 2004-04-15 Jablon David P. Systems and methods for password-based connection
US7840806B2 (en) * 2002-10-16 2010-11-23 Enterprise Information Management, Inc. System and method of non-centralized zero knowledge authentication for a computer network
US8239917B2 (en) * 2002-10-16 2012-08-07 Enterprise Information Management, Inc. Systems and methods for enterprise security with collaborative peer to peer architecture
US7284127B2 (en) * 2002-10-24 2007-10-16 Telefonktiebolaget Lm Ericsson (Publ) Secure communications
KR100545628B1 (ko) * 2002-12-09 2006-01-24 한국전자통신연구원 보안연계 협상과 키교환 시스템 및 방법
US7975142B2 (en) 2006-12-04 2011-07-05 Electronics And Telecommunications Research Institute Ring authentication method for concurrency environment
CN101431413B (zh) 2007-11-08 2012-04-25 华为技术有限公司 进行认证的方法、系统、服务器及终端
KR100989185B1 (ko) * 2008-08-26 2010-10-20 충남대학교산학협력단 Rsa기반 패스워드 인증을 통한 세션키 분배방법
WO2011094869A1 (en) * 2010-02-05 2011-08-11 Lipso Systèmes Inc. Secure authentication system and method
EP3220575B1 (de) * 2016-03-17 2018-09-26 Marcellus Schmidt Verfahren zur herstellung einer sicheren kommunikation zwischen einem client und einem server
CN111865603A (zh) * 2016-09-05 2020-10-30 华为技术有限公司 认证方法、认证装置和认证系统
EP3596680A4 (en) * 2017-03-15 2020-12-30 Nuid, Inc. PROCEDURES AND SYSTEMS FOR UNIVERSAL STORAGE AND ACCESS TO USER-DEFINED ACCESS DATA FOR TRANSINSTITUTIONAL DIGITAL AUTHENTICATION
US11538031B2 (en) * 2017-03-31 2022-12-27 Vijay Madisetti Method and system for identity and access management for blockchain interoperability
US11849043B2 (en) * 2020-11-13 2023-12-19 Sony Group Corporation Zero-knowledge authentication based on device information

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20000017575A (ko) * 1998-08-28 2000-03-25 루센트 테크놀러지스 인크 세션 키이 설정 방법
KR20010090167A (ko) * 2000-03-23 2001-10-18 윤종용 패스워드를 기반으로 한 상호 인증 및 키 교환방법과 그장치
KR20020085734A (ko) * 2001-05-10 2002-11-16 (주) 비씨큐어 복구 가능한 패스워드 기반의 상호인증과 키 교환 방법
KR20030037145A (ko) * 2001-11-02 2003-05-12 한국전자통신연구원 패스워드 기반 키교환 방법 및 그 시스템

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR2700430B1 (fr) * 1992-12-30 1995-02-10 Jacques Stern Procédé d'authentification d'au moins un dispositif d'identification par un dispositif de vérification et dispositif pour sa mise en Óoeuvre.
US5633929A (en) * 1995-09-15 1997-05-27 Rsa Data Security, Inc Cryptographic key escrow system having reduced vulnerability to harvesting attacks
US5841869A (en) * 1996-08-23 1998-11-24 Cheyenne Property Trust Method and apparatus for trusted processing
FR2763451B1 (fr) * 1997-05-13 1999-06-18 France Telecom Procede d'identification a cle publique utilisant deux fonctions de hachage
EP0881557B1 (en) * 1997-05-28 2003-04-16 Siemens Aktiengesellschaft Computer system for protecting software and a method for protecting software
JP3562262B2 (ja) * 1997-10-17 2004-09-08 富士ゼロックス株式会社 認証方法および装置
JP3812123B2 (ja) * 1998-02-12 2006-08-23 富士ゼロックス株式会社 認証方法および装置

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20000017575A (ko) * 1998-08-28 2000-03-25 루센트 테크놀러지스 인크 세션 키이 설정 방법
KR20010090167A (ko) * 2000-03-23 2001-10-18 윤종용 패스워드를 기반으로 한 상호 인증 및 키 교환방법과 그장치
KR20020085734A (ko) * 2001-05-10 2002-11-16 (주) 비씨큐어 복구 가능한 패스워드 기반의 상호인증과 키 교환 방법
KR20030037145A (ko) * 2001-11-02 2003-05-12 한국전자통신연구원 패스워드 기반 키교환 방법 및 그 시스템

Also Published As

Publication number Publication date
CA2388906C (en) 2007-03-13
KR20030050620A (ko) 2003-06-25
US20030115464A1 (en) 2003-06-19
CA2388906A1 (en) 2003-06-19

Similar Documents

Publication Publication Date Title
US11722305B2 (en) Password based threshold token generation
CN107948189B (zh) 非对称密码身份鉴别方法、装置、计算机设备及存储介质
US9628273B2 (en) Cryptographic method and system for secure authentication and key exchange
Halevi et al. Public-key cryptography and password protocols
Lin et al. Three-party encrypted key exchange: attacks and a solution
US8443194B2 (en) Method of authentication and session key agreement for secure data transmission, a method for securely transmitting data, and an electronic data transmission system
US6757825B1 (en) Secure mutual network authentication protocol
US8437473B2 (en) Small public-key based digital signatures for authentication
EP1134929B1 (en) Secure mutual network authentication and key exchange protocol
US7359507B2 (en) Server-assisted regeneration of a strong secret from a weak secret
Acar et al. Single password authentication
JP4944886B2 (ja) 展性攻撃に対して改良された安全性を有する技術(これに限定されない)を含む非ワンタイムパッド暗号で暗号化した署名鍵を用いた、暗号認証、及び/又は共有暗号鍵の設定
KR100445574B1 (ko) 대화형 영 지식 증명을 이용한 패스워드 기반의 인증 및키 교환 프로토콜 설계 방법
Chakrabarti et al. Password-based authentication: Preventing dictionary attacks
US20040111615A1 (en) Authentication method using symmetric authenticated key exchange and asymmetric authenticated key exchange
Gennaro et al. Okamoto-Tanaka revisited: Fully authenticated Diffie-Hellman with minimal overhead
MacKenzie et al. Secure network authentication with password identification
Bao Security analysis of a password authenticated key exchange protocol
Harkins Secure password ciphersuites for transport layer security (TLS)
KR20080005344A (ko) 인증서버가 사용자단말기를 인증하는 시스템
Lee et al. Improvement of Lee and Lee’s authenticated key agreement scheme
Shim Security flaws of remote user access over insecure networks
Lee et al. Efficient password-based authenticated key agreement protocol
Saeednia How to maintain both privacy and authentication in digital libraries
Jung et al. Password-based independent authentication and key exchange protocol

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

Year of fee payment: 5

LAPS Lapse due to unpaid annual fee