KR20140057134A - Method for password based authentication and apparatus executing the method - Google Patents

Method for password based authentication and apparatus executing the method Download PDF

Info

Publication number
KR20140057134A
KR20140057134A KR1020130059249A KR20130059249A KR20140057134A KR 20140057134 A KR20140057134 A KR 20140057134A KR 1020130059249 A KR1020130059249 A KR 1020130059249A KR 20130059249 A KR20130059249 A KR 20130059249A KR 20140057134 A KR20140057134 A KR 20140057134A
Authority
KR
South Korea
Prior art keywords
server
secret key
terminal
key
key element
Prior art date
Application number
KR1020130059249A
Other languages
Korean (ko)
Other versions
KR101493214B1 (en
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 PCT/KR2013/008152 priority Critical patent/WO2014069783A1/en
Priority to CN201310473362.8A priority patent/CN103795534B/en
Priority to US14/067,232 priority patent/US9515825B2/en
Publication of KR20140057134A publication Critical patent/KR20140057134A/en
Application granted granted Critical
Publication of KR101493214B1 publication Critical patent/KR101493214B1/en

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/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0861Generation of secret information including derivation or calculation of cryptographic keys or passwords
    • H04L9/0863Generation of secret information including derivation or calculation of cryptographic keys or passwords involving passwords or one-time passwords
    • 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/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • 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/0861Generation of secret information including derivation or calculation of cryptographic keys or passwords
    • H04L9/0869Generation of secret information including derivation or calculation of cryptographic keys or passwords involving random numbers or seeds
    • 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/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/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/3236Cryptographic 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 cryptographic hash functions
    • H04L9/3242Cryptographic 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 cryptographic hash functions involving keyed hash functions, e.g. message authentication codes [MACs], CBC-MAC or HMAC

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Power Engineering (AREA)
  • Storage Device Security (AREA)

Abstract

A password based authentication method and an apparatus for executing the same are disclosed. The password based authentication method according to an embodiment of the present invention comprises a step where a terminal generates an ID based private key (K) by using an ID of a terminal user and a key generation element exchanged with a server; a step where the terminal encrypts a user password by using a symmetric key encrypting algorithm which uses the generated private key as a symmetric key and transmits the encrypted password to the server to request the authentication of the terminal user; and a step where the terminal receives a response to the authentication request from the server.

Description

패스워드 기반 인증 방법 및 이를 수행하기 위한 장치{METHOD FOR PASSWORD BASED AUTHENTICATION AND APPARATUS EXECUTING THE METHOD}Technical Field [0001] The present invention relates to a password-based authentication method and apparatus,

본 발명은 네트워크 상에서의 보안 기술과 관련된다.
The present invention relates to security technology on a network.

패스워드 기반의 키 교환 프로토콜(PAKE; Password Authenticated Key Exchange)이란 통신에 참여하는 둘 이상의 주체가, 이 중 하나 이상의 주체가 알고 있는 패스워드를 기반으로 암호화된 통신을 위한 비밀키를 공유하는 과정을 의미한다. PAKE는 그 구현 방식에 따라 공개키 인증서 기반 PAKE 및 비 공개키 인증서 기반 PAKE로 나뉠 수 있다.A password-based key exchange protocol (PAKE) is a process in which two or more subjects participating in a communication share a secret key for encrypted communication based on a password known by one or more subjects . PAKE can be divided into PAKE based on public key certificate and PAKE based on non-public key certificate depending on its implementation.

공개키 인증서 기반 PAKE 경우, 키 교환을 위하여 항상 공개키 인증을 수행하는 절차가 필요하며, 서버의 개인키가 유출될 경우 해당 계정에 대한 전방향 안전성(forward secrecy)과 후방향 안전성(backward security)이 보장되지 않는 문제가 있다. 한편, 이러한 공개키 인증서 기반의 문제점을 해결하기 위해 제시되었던 비 공개키 인증서 기반 PAKE(관련 표준: IEEE P1363.2 및 ISO/IEC 11770-4) 의 경우 패스워드를 직접 지수승하여 저장하는 인증자(verifier) 구성방식으로 인하여 기존 시스템의 마이그레이션(migration) 및 파라미터(parameter) 갱신이 어려운 새로운 문제점이 발생하였다. 또한 이 방식의 경우 패스워드를 그룹 파라미터(group parameter)와 직접 결합해야 하므로 이에 대한 오프라인 분석에 대응하기 위해 상대적으로 많은 실시간 계산량이 필요하고 프로토콜의 메시지 흐름을 유연하게 교체하는 것이 불가능한 문제가 있었다.
In case of PAKE based on public key certificate, it is necessary to perform public key authentication for key exchange at all times. In case of leakage of the private key of the server, forward secrecy and backward security for the account, There is a problem that is not guaranteed. In the case of the PAKE (related standards: IEEE P1363.2 and ISO / IEC 11770-4) based on the non-public key certificate proposed to solve the problem based on the public key certificate, an authenticator verifier configuration, it is difficult to migrate and update parameters of the existing system. Also, in this method, since the password is directly coupled with the group parameter, relatively large amount of real-time calculation is required to cope with offline analysis, and it is impossible to flexibly change the message flow of the protocol.

본 발명은 상기와 같은 문제를 해결하기 위한 것으로서, 본 발명의 실시예들은 기존의 패스워드 기반 키 교환 프로토콜에 아이디 기반 암호 기술을 적용함으로써 공개키 인증서 기반의 PAKE 및 비 공개키 인증서 기반의 PAKE의 장점을 모두 갖춘 효율적인 인증 및 키 교환 프로토콜을 제공하는 데 그 목적이 있다.
SUMMARY OF THE INVENTION The present invention has been made to solve the above problems, and it is an object of the present invention to provide a method and system for encrypting and decrypting information by applying an ID-based encryption technique to an existing password- The present invention provides an efficient authentication and key exchange protocol having both of the above functions.

본 발명의 일 실시예에 따른 인증 방법은, 단말에서, 상기 단말 사용자의 아이디(ID) 및 서버와 교환한 키 생성 인자를 이용하여 아이디 기반의 비밀키(K)를 생성하는 단계; 상기 단말에서, 생성된 상기 비밀키(K)를 대칭키로 하는 대칭키 암호화 알고리즘을 이용하여 상기 사용자의 패스워드를 암호화하고, 암호화된 상기 패스워드를 상기 서버로 송신함으로써 상기 단말 사용자의 인증을 요청하는 단계; 및 상기 단말에서, 상기 서버로부터 상기 인증 요청에 대한 응답을 수신하는 단계를 포함한다.According to an embodiment of the present invention, there is provided an authentication method, comprising: generating an identity-based secret key (K) using an ID of a terminal user and a key generation factor exchanged with a server; Encrypting the password of the user using a symmetric key encryption algorithm using the generated secret key K as a symmetric key in the terminal and requesting authentication of the terminal user by transmitting the encrypted password to the server ; And receiving, at the terminal, a response to the authentication request from the server.

상기 비밀키를 생성하는 단계는, 상기 단말에서, 단말측 난수(x)로부터 계산된 제1 비밀키 엘리먼트(X)를 서버로 송신하는 단계; 및 상기 단말에서, 상기 서버로부터 제2 비밀키 엘리먼트(Y)를 수신하는 단계를 포함하며, 상기 단말은, 상기 단말측 난수(x), 상기 제1 비밀키 엘리먼트(X), 상기 제2 비밀키 엘리먼트(Y) 및 상기 아이디(ID)를 이용하여 상기 비밀키(K)를 생성할 수 있다.The step of generating the secret key comprises: transmitting, at the terminal, a first secret key element (X) calculated from a terminal side random number (x) to a server; And receiving, at the terminal, a second secret-key element (Y) from the server, wherein the terminal transmits the terminal-side random number (x), the first secret-key element (X) The secret key K may be generated using the key element Y and the ID.

상기 단말은, 상기 제1 비밀키 엘리먼트(X), 상기 제2 비밀키 엘리먼트(Y) 및 상기 아이디(ID)의 해시값(I)을 이용하여 공통 해시값(e)을 생성하고, 상기 공통 해시값(e), 상기 단말측 난수(x), 상기 제1 비밀키 엘리먼트(X), 상기 제2 비밀키 엘리먼트(Y) 및 상기 아이디(ID)의 해시값(I)을 이용하여 상기 비밀키(K)를 생성할 수 있다.The terminal generates a common hash value (e) using the hash value (I) of the first secret key element (X), the second private key element (Y) and the ID (ID) Using the hash value (e), the terminal side random number (x), the first secret key element (X), the second secret key element (Y) and the hash value (I) The key K can be generated.

상기 비밀키(K)는 상기 공통 해시값(e), 상기 단말측 난수(x), 상기 제1 비밀키 엘리먼트(X), 상기 제2 비밀키 엘리먼트(Y) 및 상기 아이디(ID)의 해시값(I)을 포함하는 제1문자열을 해싱함으로써 생성될 수 있다.The secret key K is a hash of the common hash value e, the terminal side random number x, the first secret key element X, the second secret key element Y and the ID May be generated by hashing the first string containing the value (I).

상기 제1 비밀키 엘리먼트(X)는 다음의 수학식에 의하여 계산될 수 있다.The first secret key element X may be calculated by the following equation.

X = gx X = g x

(이때, g는 유한한 군 ZN = {0, 1, 2, ..., N-1}의 최대 순환 부분군의 생성원을

Figure pat00001
라 할 때,
Figure pat00002
으로 생성되는 순환 부분군 G의 생성원, N은 N=pq를 만족하는 정수, p 및 q는 각각 p≡3 (mod 4), q≡3 (mod 4)를 만족하는 소수)(Where g is the source of the largest circulating subgroup of the finite group Z N = {0, 1, 2, ..., N-1}
Figure pat00001
In other words,
Figure pat00002
(N) is an integer satisfying N = pq, and p and q are prime numbers satisfying p? 3 (mod 4) and q? 3 (mod 4)

상기 비밀키(K)는 다음의 수학식에 의하여 계산될 수 있다.The secret key K may be calculated by the following equation.

K = h1(X, (Y,I), (YIe)x) K = h 1 (X, ( Y, I), (YI e) x)

(이때, h1은 제1 랜덤 해시함수, I = H(ID), H는 H:{0,1}*->G 의 관계를 만족하는 해시함수)(Where h 1 is a first random hash function, I = H (ID), H is a hash function satisfying the relation of H: {0,1} * -> G)

상기 방법은, 상기 암호화된 패스워드를 상기 서버로 송신하는 단계의 수행 이후, 상기 단말에서, 상기 공통 해시값(e), 상기 단말측 난수(x), 상기 제1 비밀키 엘리먼트(X), 상기 제2 비밀키 엘리먼트(Y) 및 상기 아이디(ID)의 해시값(I)을 포함하는 문자열을 제2 랜덤 해시함수(h2)로 해싱하여 세션키(sk)를 생성하는 단계; 상기 단말에서, 상기 제1 비밀키 엘리먼트(X), 상기 제2 비밀키 엘리먼트(Y), 상기 아이디(ID)의 해시값(I), 상기 세션키(sk) 및 상기 패스워드를 포함하는 제2문자열을 제3 랜덤 해시함수(h3)로 해싱하여 제1검증값을 생성하는 단계; 및 상기 단말에서, 상기 제1검증값을 상기 서버로 송신하는 단계를 더 포함할 수 있다.The method may further include, after performing the step of transmitting the encrypted password to the server, transmitting the common hash value (e), the terminal side random number (x), the first secret key element (X) Generating a session key sk by hashing a string including a second secret key element Y and a hash value I of the ID into a second random hash function h 2 ; Wherein the hash value (I) of the first secret key element (X), the second secret key element (Y), the ID (ID), the session key (sk) a step of hashing the string to a third random hash function (h 3) generates a first verification value; And transmitting, at the terminal, the first verification value to the server.

상기 세션키(sk)는 다음의 수학식에 의하여 계산될 수 있다.The session key sk can be calculated by the following equation.

sk = h2(X, (Y,I), (YIe)x) sk = h 2 (X, ( Y, I), (YI e) x)

상기 단말은, 상기 제1 비밀키 엘리먼트(X)와 함께 상기 아이디를 상기 서버로 송신하거나, 또는 상기 제1검증값과 함께 상기 아이디를 상기 서버로 송신할 수 있다.The terminal may transmit the ID together with the first secret key element (X) to the server, or may transmit the ID together with the first verification value to the server.

상기 방법은, 상기 제1검증값을 상기 서버로 송신하는 단계의 수행 이후, 상기 단말에서, 상기 서버로부터 제2검증값을 수신하는 단계; 및 상기 단말에서, 상기 제1 비밀키 엘리먼트(X), 상기 제2 비밀키 엘리먼트(Y), 상기 아이디(ID)의 해시값(I), 상기 세션키(sk), 상기 패스워드 및 제4 랜덤 해시함수(h4)를 이용하여 상기 제2검증값을 검증하는 단계를 더 포함할 수 있다.The method may further include, after performing the step of transmitting the first verification value to the server, receiving, at the terminal, a second verification value from the server; And the hash value (I) of the first secret key element (X), the second secret key element (Y), the ID (ID), the session key (sk) And verifying the second verification value using a hash function h 4 .

한편, 본 발명의 다른 실시예에 따른 인증 방법은, 서버에서, 단말 사용자의 아이디(ID) 및 상기 단말과 교환한 키 생성 인자를 이용하여 아이디 기반의 비밀키(K)를 생성하는 단계; 상기 서버에서, 상기 단말로부터 상기 사용자의 암호화된 패스워드를 수신하는 단계; 및 상기 서버에서, 생성된 상기 비밀키(K)를 대칭키로 하는 대칭키 복호화 알고리즘을 이용하여 상기 암호화된 패스워드를 복호화하고, 복호화된 상기 패스워드를 이용하여 상기 단말 사용자를 인증하는 단계를 포함한다.Meanwhile, an authentication method according to another embodiment of the present invention includes: generating an identity-based secret key K by using an ID of a terminal user and a key generation factor exchanged with the terminal; Receiving, at the server, the encrypted password of the user from the terminal; And decrypting the encrypted password using a symmetric key decryption algorithm using the generated secret key K as a symmetric key in the server, and authenticating the terminal user using the decrypted password.

상기 비밀키를 생성하는 단계는, 상기 서버에서, 키 발급 장치로부터 상기 아이디(ID)에 대응되는 개인키(sID)를 발급받는 단계; 상기 서버에서, 상기 단말로부터 제1 비밀키 엘리먼트(X)를 수신하는 단계; 및 상기 서버에서, 서버측 난수(y)로부터 계산된 제2 비밀키 엘리먼트(Y)를 상기 단말로 송신하는 단계를 더 포함하며, 상기 서버는, 상기 제1 비밀키 엘리먼트(X), 상기 서버측 난수(y), 상기 제2 비밀키 엘리먼트(Y), 상기 아이디(ID) 및 상기 개인키(sID)를 이용하여 상기 비밀키(K)를 생성할 수 있다.Generating the secret key is issued by a method comprising: receiving a private key (s ID) corresponding to the ID (ID) from at the server, the key issuing apparatus; Receiving, at the server, a first secret-key element (X) from the terminal; And transmitting, in the server, a second secret key element (Y) calculated from a server side random number (y) to the terminal, wherein the server further comprises: The secret key K may be generated using the side random number y, the second secret key element Y, the ID, and the private key s ID .

상기 서버는, 상기 제1 비밀키 엘리먼트(X), 상기 제2 비밀키 엘리먼트(Y) 및 상기 아이디(ID)의 해시값(I)을 이용하여 공통 해시값(e)을 생성하고, 상기 공통 해시값(e), 상기 제1 비밀키 엘리먼트(X), 상기 서버측 난수(y), 상기 제2 비밀키 엘리먼트(Y), 상기 아이디(ID)의 해시값(I) 및 상기 개인키(SID)를 이용하여 상기 비밀키(K)를 생성할 수 있다.The server generates a common hash value (e) using the hash value (I) of the first private key element (X), the second private key element (Y) and the ID (ID) Hash value (e), the first secret key element (X), the server side random number (y), the second secret key element (Y), the hash value (I) S ID ) can be used to generate the secret key (K).

상기 비밀키(K)는 상기 공통 해시값(e), 상기 제1 비밀키 엘리먼트(X), 상기 서버측 난수(y), 상기 제2 비밀키 엘리먼트(Y), 상기 아이디(ID)의 해시값(I) 및 상기 개인키(SID)를 포함하는 제1문자열을 해싱함으로써 생성될 수 있다.Wherein the secret key K is a hash of the common hash value e, the first secret key element X, the server side random number y, the second secret key element Y, value (I) and may be generated by hashing the first string that contains the private key (S ID).

상기 개인키(sID)는 다음의 수학식에 의하여 계산될 수 있다.The private key (s ID) may be calculated by the following equation.

Figure pat00003
Figure pat00003

(이때, g는 유한한 군 ZN = {0, 1, 2, ..., N-1}의 최대 순환 부분군의 생성원을

Figure pat00004
라 할 때,
Figure pat00005
으로 생성되는 순환 부분군 G의 생성원, N는 N = pq의 관계를 만족하는 정수, p 및 q는 각각 p≡3 (mod 4), q≡3 (mod 4)를 만족하는 소수, IDi는 상기 아이디를 구성하는 i번째 문자, α는 상기 아이디의 길이),
Figure pat00006
h는 h:{0,1}*->ZN의 관계를 만족하는 랜덤해시함수,
Figure pat00007
)(Where g is the source of the largest circulating subgroup of the finite group Z N = {0, 1, 2, ..., N-1}
Figure pat00004
In other words,
Figure pat00005
P and q are prime numbers satisfying p? 3 (mod 4) and q? 3 (mod 4), respectively, and ID i Is the i-th character constituting the ID, and? Is the length of the ID)
Figure pat00006
h is a random hash function satisfying the relation of h: {0, 1} * -> Z N ,
Figure pat00007
)

상기 제2 비밀키 엘리먼트는 다음의 수학식에 의하여 계산될 수 있다.The second secret key element may be calculated by the following equation.

Y = gy Y = g y

상기 비밀키(K)는 다음의 수학식에 의하여 계산될 수 있다.The secret key K may be calculated by the following equation.

K = h1(X, (Y,I), Xy + sID *e) K = h 1 (X, ( Y, I), X y + sID * e)

(이때, h1은 제1 랜덤 해시함수, I = H(ID), H는 H:{0,1}*->G 의 관계를 만족하는 해시함수)(Where h 1 is a first random hash function, I = H (ID), H is a hash function satisfying the relation of H: {0,1} * -> G)

상기 방법은, 상기 단말을 인증하는 단계의 수행 이후, 상기 서버에서, 상기 단말로부터 제1검증값을 수신하는 단계; 상기 서버에서, 상기 공통 해시값(e), 상기 제1 비밀키 엘리먼트(X), 상기 서버측 난수(y), 상기 제2 비밀키 엘리먼트(Y), 상기 아이디(ID)의 해시값(I) 및 상기 개인키(SID)를 포함하는 문자열을 제2 랜덤 해시함수(h2)로 해싱하여 세션키(sk)를 생성하는 단계; 및 상기 서버에서, 상기 제1 비밀키 엘리먼트(X), 상기 제2 비밀키 엘리먼트(Y), 상기 아이디(ID)의 해시값(I), 상기 세션키(sk), 상기 복호화된 패스워드 및 제3 랜덤 해시함수(h3)를 이용하여 상기 제1검증값을 검증하는 단계를 더 포함할 수 있다.The method may further include, after performing the step of authenticating the terminal, receiving, at the server, a first verification value from the terminal; The hash value (I) of the common hash value (e), the first secret key element (X), the server side random number (y), the second secret key element (Y) ) And the private key (S ID ) to a second random hash function (h 2 ) to generate a session key (sk); And a hash value (I) of the first secret key element (X), the second secret key element (Y), the ID (ID), the session key (sk), the decrypted password, And verifying the first verification value using a third random hash function h 3 .

상기 세션키는, 다음의 수학식에 의하여 계산될 수 있다.The session key can be calculated by the following equation.

sk = h2(X, (Y,I), Xy + sID *e) sk = h 2 (X, ( Y, I), X y + sID * e)

상기 서버는, 상기 제1 비밀키 엘리먼트(X)와 함께 상기 아이디를 수신하거나, 또는 상기 제1검증값과 함께 상기 아이디를 수신할 수 있다.The server may receive the ID together with the first secret key element (X), or may receive the ID together with the first verification value.

상기 방법은, 상기 제1검증값을 검증하는 단계의 수행 이후, 상기 서버에서, 상기 제1 비밀키 엘리먼트(X), 상기 제2 비밀키 엘리먼트(Y), 상기 아이디(ID)의 해시값(I), 상기 세션키(sk) 및 상기 패스워드를 포함하는 제2문자열을 제4 랜덤 해시함수(h4)로 해싱하여 제2검증값을 생성하는 단계; 및 상기 서버에서, 상기 제2검증값을 상기 단말로 송신하는 단계를 더 포함할 수 있다.The method may further comprise the step of verifying the hash value of the first secret key element (X), the second secret key element (Y), and the ID (ID) in the server after performing the step of verifying the first verification value I), hashing the second string including the session key (sk) and the password into a fourth random hash function (h 4 ) to generate a second verification value; And transmitting, in the server, the second verification value to the terminal.

상기 단말을 인증하는 단계는, 상기 서버에서, 하드웨어 보안 모듈을 이용하여 복호화된 상기 패스워드의 MAC 값을 생성하는 단계; 및 생성된 상기 MAC 값을 기 저장된 값과의 일치 여부를 판단하는 단계를 더 포함할 수 있다.The step of authenticating the terminal may include: generating, in the server, a MAC value of the password decrypted using a hardware security module; And determining whether the generated MAC value matches the pre-stored value.

한편, 본 발명의 일 실시예에 따른 장치는, 하나 이상의 프로세서; 메모리; 및 하나 이상의 프로그램을 포함하는 장치로서, 상기 하나 이상의 프로그램은 상기 메모리에 저장되고 상기 하나 이상의 프로세서에 의해 실행되도록 구성되며, 상기 프로그램은, 단말 사용자의 아이디(ID) 및 서버와 교환한 키 생성 인자를 이용하여 아이디 기반의 비밀키(K)를 생성하는 단계; 생성된 상기 비밀키(K)를 대칭키로 하는 대칭키 암호화 알고리즘을 이용하여 상기 사용자의 패스워드를 암호화하고, 암호화된 상기 패스워드를 상기 서버로 송신함으로써 상기 단말 사용자의 인증을 요청하는 단계; 및 상기 서버로부터 상기 인증 요청에 대한 응답을 수신하는 단계를 실행하기 위한 명령어들을 포함한다.According to an embodiment of the present invention, there is provided an apparatus comprising: at least one processor; Memory; And one or more programs, wherein the one or more programs are stored in the memory and are configured to be executed by the one or more processors, wherein the program further comprises: an identification (ID) of the terminal user and a key generation factor Generating a secret key K based on the identity; Encrypting the password of the user using a symmetric key encryption algorithm using the generated secret key K as a symmetric key and requesting authentication of the terminal user by transmitting the encrypted password to the server; And receiving a response to the authentication request from the server.

한편, 본 발명의 다른 실시예에 따른 장치는, 하나 이상의 프로세서; 메모리; 및 하나 이상의 프로그램을 포함하는 장치로서, 상기 하나 이상의 프로그램은 상기 메모리에 저장되고 상기 하나 이상의 프로세서에 의해 실행되도록 구성되며, 상기 프로그램은, 단말 사용자의 아이디(ID) 및 상기 단말과 교환한 키 생성 인자를 이용하여 아이디 기반의 비밀키(K)를 생성하는 단계; 상기 단말로부터 상기 사용자의 암호화된 패스워드를 수신하는 단계; 및 생성된 상기 비밀키(K)를 대칭키로 하는 대칭키 복호화 알고리즘을 이용하여 상기 암호화된 패스워드를 복호화하고, 복호화된 상기 패스워드를 이용하여 상기 단말 사용자를 인증하는 단계를 실행하기 위한 명령어들을 포함한다.
According to another aspect of the present invention, there is provided an apparatus comprising: at least one processor; Memory; And one or more programs, wherein the one or more programs are stored in the memory and are configured to be executed by the one or more processors, the program comprising: an identification (ID) of a terminal user and a key generation Generating an identity-based secret key (K) using an argument; Receiving an encrypted password of the user from the terminal; And decrypting the encrypted password using a symmetric key decryption algorithm using the generated secret key K as a symmetric key, and authenticating the terminal user using the decrypted password .

본 발명의 실시예들에 따를 경우 기존의 패스워드 기반 인증 및 키 교환 프로토콜에 아이디 기반 암호 기술을 적용함으로써 키 교환을 위하여 공개키 인증이 필요하지 않으면서도 전방향 안전성 및 후방향 안전성을 보장할 수 있다.According to the embodiments of the present invention, by applying ID-based cryptographic techniques to existing password-based authentication and key exchange protocols, it is possible to guarantee forward and backward security without requiring public key authentication for key exchange .

또한, 기존 비 공개키 인증서 기반의 문제점으로 지적되었던 기존 서버의 마이그레이션 및 향후 파라미터 갱신 등이 용이하며, 키 교환을 위하여 클라이언트 및 서버에서 각각 한 번의 지수승 연산만을 실시하면 되므로 기존의 알고리즘에 비해 계산량을 현저히 감소할 수 있는 장점이 있다.
In addition, it is easy to migrate the existing server and update the parameters in future, which is pointed out as a problem based on the existing non-public key certificate. In addition, since only one exponentiation operation is required for each client and server for key exchange, Can be significantly reduced.

도 1은 본 발명의 일 실시예에 따른 패스워드 기반 인증 시스템(100)을 설명하기 위한 블록도이다.
도 2는 본 발명의 일 실시예에 따른 패스워드 기반 인증 알고리즘(200)의 전체 단계를 설명하기 위한 도면이다.
도 3은 본 발명의 본 발명의 일 실시예에 따른 패스워드 기반 인증 알고리즘(200)의 키 교환 단계(206)를 상세히 설명하기 위한 도면이다.
1 is a block diagram illustrating a password-based authentication system 100 according to an embodiment of the present invention.
FIG. 2 is a diagram for explaining the entire steps of the password-based authentication algorithm 200 according to an embodiment of the present invention.
FIG. 3 is a diagram for explaining in detail the key exchange step 206 of the password-based authentication algorithm 200 according to an embodiment of the present invention.

이하, 도면을 참조하여 본 발명의 구체적인 실시형태를 설명하기로 한다. 그러나 이는 예시에 불과하며 본 발명은 이에 제한되지 않는다.Hereinafter, specific embodiments of the present invention will be described with reference to the drawings. However, this is merely an example and the present invention is not limited thereto.

본 발명을 설명함에 있어서, 본 발명과 관련된 공지기술에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우에는 그 상세한 설명을 생략하기로 한다. 그리고, 후술되는 용어들은 본 발명에서의 기능을 고려하여 정의된 용어들로서 이는 사용자, 운용자의 의도 또는 관례 등에 따라 달라질 수 있다. 그러므로 그 정의는 본 명세서 전반에 걸친 내용을 토대로 내려져야 할 것이다. In the following description, a detailed description of known functions and configurations incorporated herein will be omitted when it may make the subject matter of the present invention rather unclear. The following terms are defined in consideration of the functions of the present invention, and may be changed according to the intention or custom of the user, the operator, and the like. Therefore, the definition should be based on the contents throughout this specification.

본 발명의 기술적 사상은 청구범위에 의해 결정되며, 이하의 실시예는 본 발명의 기술적 사상을 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 효율적으로 설명하기 위한 일 수단일 뿐이다.
The technical idea of the present invention is determined by the claims, and the following embodiments are merely a means for effectively explaining the technical idea of the present invention to a person having ordinary skill in the art to which the present invention belongs.

도 1은 본 발명의 일 실시예에 따른 패스워드 기반 인증 시스템(100)을 설명하기 위한 블록도이다. 도시된 바와 같이, 본 발명의 일 실시예에 따른 패스워드 기반 인증 시스템(100)은 단말(102), 서버(104) 및 키 발급 장치(106)를 포함한다.1 is a block diagram illustrating a password-based authentication system 100 according to an embodiment of the present invention. As shown, the password-based authentication system 100 includes a terminal 102, a server 104, and a key issuing device 106 according to an embodiment of the present invention.

단말(102)은 서버(104)와의 안전한 통신을 위하여 서버(104)와의 사이에서 아이디 기반의 비밀키(K)를 생성한다. 즉, 상기 비밀키(K)의 생성 및 검증을 위하여 단말(102) 사용자의 아이디(ID) 및 패스워드가 이용된다. 상기 아이디는 단말(102)의 사용자를 식별하기 위하여 각 사용자별로 고유하게 부여된 식별 정보를 의미한다. 또한, 상기 패스워드는 사용자가 서버(104)에 로그인하기 위하여 상기 아이디와 함께 사용되는 비밀 문자열이다. 본 발명의 실시예에서 사용자의 아이디 및 패스워드는 사용자가 단말(102)을 통해 서버(104)에 로그인하기 위해서 사용되는 동시에, 비밀키(K)를 생성하기 위한 요소로서도 사용될 수 있다.The terminal 102 generates an identity-based private key K with the server 104 for secure communication with the server 104. [ That is, the ID and the password of the user of the terminal 102 are used for generating and verifying the secret key K. The ID refers to identification information uniquely assigned to each user in order to identify a user of the terminal 102. Also, the password is a secret string that is used with the ID to allow the user to log into the server 104. In the embodiment of the present invention, the user's ID and password can be used as an element for generating the secret key K, while being used by the user to log in to the server 104 through the terminal 102. [

단말(102)은, 상기 단말 사용자의 아이디(ID) 및 서버와 교환한 키 생성 인자를 이용하여 아이디 기반의 비밀키(K)를 생성한다. 구체적으로, 비밀키(K)의 생성을 위하여 단말(102)은 단말측 난수(x)를 생성하고, 이로부터 제1 비밀키 엘리먼트(X)를 계산한다. 또한 단말(102)은 서버(104)로부터 제2 비밀키 엘리먼트(Y)를 수신하고, 상기 단말측 난수(x), 상기 제1 비밀키 엘리먼트(X), 상기 제2 비밀키 엘리먼트(Y) 및 상기 사용자의 아이디(ID)를 이용하여 비밀키(K)를 생성한다. 즉, 본 발명의 실시예에서, 단말(102)측에서 비밀키를 생성하기 위한 키 생성 인자는, 상기 단말측 난수(x), 상기 제1 비밀키 엘리먼트(X) 및 상기 제2 비밀키 엘리먼트(Y)를 포함할 수 있다.The terminal 102 generates an ID-based secret key K by using the ID of the terminal user and the key generation factor exchanged with the server. Specifically, for the generation of the secret key K, the terminal 102 generates the terminal side random number x and calculates the first secret key element X from it. The terminal 102 receives the second secret key element Y from the server 104 and transmits the terminal side random number x, the first secret key element X, the second secret key element Y, And a secret key K using the ID of the user. That is, in the embodiment of the present invention, the key generation factor for generating the secret key on the terminal 102 side is the random number x, the first secret key element X, (Y).

상기 비밀키(K)가 생성되면, 단말(102)은 생성된 상기 비밀키(K)를 대칭키로 하는 대칭키 암호화 알고리즘을 이용하여 상기 사용자의 패스워드를 암호화하고, 암호화된 상기 패스워드를 상기 서버로 송신함으로써 상기 단말 사용자의 인증을 요청하게 된다.When the secret key K is generated, the terminal 102 encrypts the password of the user using a symmetric key encryption algorithm using the generated secret key K as a symmetric key, and transmits the encrypted password to the server Thereby requesting authentication of the terminal user.

서버(104)는 단말(102)와의 안전한 통신을 위하여, 서버에서, 단말 사용자의 아이디(ID) 및 상기 단말과 교환한 키 생성 인자를 이용하여 아이디 기반의 비밀키(K)를 생성한다. 먼저, 서버(104)는 키 발급 장치(106)로 사용자의 아이디(ID)를 송신하고, 이에 대응되는 개인키(sID)를 발급받는다. 또한, 서버(104)는 단말(102)로부터 제1 비밀키 엘리먼트(X)를 수신하고, 이와 별도로 서버측 난수(y)를 생성한 뒤 이로부터 제2 비밀키 엘리먼트(Y)를 계산한다. 이후, 서버(104)는 상기 제1 비밀키 엘리먼트(X), 상기 서버측 난수(y), 상기 제2 비밀키 엘리먼트(Y), 상기 아이디(ID) 및 상기 개인키(SID)를 이용하여 비밀키(K)를 생성한다. 즉, 상기 비밀키의 생성을 위한 서버(104)측 키 생성 인자는 상기 제1 비밀키 엘리먼트(X), 상기 서버측 난수(y), 상기 제2 비밀키 엘리먼트(Y), 및 상기 개인키(SID)를 포함할 수 있다. 이때, 서버(104)에서 생성되는 비밀키(K)는 단말(102)에서 생성되는 비밀키(K)와 동일하다. 즉, 본 발명의 실시예에서 단말(102)과 서버(104)는 서로 비밀키(K)를 직접 주고받지 않고도 서로 동일한 비밀키(K)를 공유할 수 있게 된다. 구체적인 단말(102) 및 서버(104)에서의 비밀키(K) 생성 방법에 대해서는 후술하기로 한다. 한편, 서버(104)는 단말(102)로부터 수신된 패스워드의 인증을 위한 별도의 하드웨어 보안 모듈(HSM; Hardware Security Module)을 포함할 수 있으며, 이에 대해서는 도 3에서 상세히 설명한다.In order to securely communicate with the terminal 102, the server 104 generates an ID-based secret key K by using an ID of the terminal user and a key generation factor exchanged with the terminal. First, the server 104 transmits the identity (ID) of the user to the key issuing apparatus 106, and are issued the private key (s ID) corresponding thereto. In addition, the server 104 receives the first secret-key element X from the terminal 102, separately generates a server-side random number y, and calculates a second secret-key element Y from the server-side random number y. Thereafter, the server 104 uses the first secret key element X, the server side random number y, the second secret key element Y, the ID, and the private key S ID Thereby generating a secret key K. That is, the server 104 side key generation factor for generating the secret key includes at least one of the first secret key element X, the server side random number y, the second secret key element Y, It may include (S ID). At this time, the secret key K generated in the server 104 is the same as the secret key K generated in the terminal 102. That is, in the embodiment of the present invention, the terminal 102 and the server 104 can share the same secret key K without directly exchanging the secret key K with each other. A specific method of generating the secret key K in the terminal 102 and the server 104 will be described later. Meanwhile, the server 104 may include a separate hardware security module (HSM) for authenticating the password received from the terminal 102, which will be described in detail with reference to FIG.

비밀키가 생성되면, 서버(104)는 단말(102)로부터 상기 사용자의 암호화된 패스워드를 수신한 뒤, 생성된 상기 비밀키(K)를 대칭키로 하는 대칭키 복호화 알고리즘을 이용하여 상기 암호화된 패스워드를 복호화하고, 복호화된 상기 패스워드를 이용하여 상기 단말 사용자를 인증한 뒤 그 결과를 단말(102)로 회신하게 된다.When the secret key is generated, the server 104 receives the encrypted password of the user from the terminal 102, and then uses the symmetric key decryption algorithm in which the generated secret key K is a symmetric key, Decrypts the decrypted password, authenticates the terminal user using the decrypted password, and returns the result to the terminal 102.

키 발급 장치(106, Private Key Generator)는 서버(104)로부터 아이디(ID)를 수신하고, 수신된 상기 아이디(ID)에 대응되는 개인키(sID)를 발급한다. 이때 상기 개인키(sID)는 상기 아이디(ID)의 이산로그값으로서, 키 발급 장치(106)는 기 설정된 시스템 파라미터와 자신의 마스터키, 그리고 트랩도어 이산 로그(Trapdoor discrete logarithm) 군에 해당하는 사전계산 데이터를 기반으로 수신된 아이디에 대응되는 개인키를 계산한다. 구체적인 개인키(sID) 생성 방법에 대해서는 후술한다.The private key generator 106 receives an ID from the server 104 and issues a private key s ID corresponding to the received ID . In this case, the private key (s ID) corresponds to a discrete logarithm value, the key issuing apparatus 106 is a group of configured system parameters and his master key, and the trapdoor discrete log (Trapdoor discrete logarithm) group of the identity (ID) And calculates a private key corresponding to the received ID based on the pre-computed data. It will be described later to generate specific private key (s ID) method.

이하에서는 상술한 구성을 가지는 패스워드 기반 인증 시스템(100)에서의 구체적인 인증 방법을 설명한다. 도 2에 도시된 바와 같이, 본 발명의 실시예에 다른 패스워드 기반 인증 방법(200)은 셋업(Setup, 202), 개인키 발급(Key extract, 204), 및 키 교환(Key Exchange, 206) 의 3단계로 구분된다. 이 중, 셋업 단계(202)에서는 시스템 전체의 구성 요소를 정의하고, 개인키 발급 단계(204)에서는 서버(104)의 요청에 따라 키 발급 장치(106)에서 마스터 키를 기반으로 아이디에 대응되는 개인키를 생성한다. 키 교환 단계(206)에서는 단말(102) 및 서버(104) 간에 공통된 비밀키(K)를 생성하고, 이로부터 세션키(sk)를 생성하게 된다.
Hereinafter, a concrete authentication method in the password-based authentication system 100 having the above-described configuration will be described. 2, another password-based authentication method 200 according to an embodiment of the present invention includes setup, 202, a key extract 204, and a key exchange 206 It is divided into three stages. In the private key issue step 204, in response to a request from the server 104, the key issuing device 106 registers a key corresponding to the ID based on the master key in the setup step 202, Generate the private key. In the key exchange step 206, a common secret key K is generated between the terminal 102 and the server 104, and a session key sk is generated therefrom.

셋업set up (202)(202)

본 발명의 실시예에서 셋업 단계는 단말(102)과 서버(104) 간의 비밀키 교환을 위한 파라미터 및 마스터키를 정의하는 단계이다.In the embodiment of the present invention, the setup step is a step of defining a parameter and a master key for secret key exchange between the terminal 102 and the server 104.

먼저, 각각 p≡3 (mod 4), q≡3 (mod 4)를 만족하고 B 스무스(B smooth)인 비슷한 크기의 큰 두 소수 p, q로부터 N = pq 를 계산한다. 이 때, p와 q는 주어진 안전성 파라미터에 해당하는 보안 강도 (security level)를 만족하고 암호학적으로 안전한 소수이다. 안정성 파라미터란 암호화 알고리즘에 대한 기본공격의 시간과 비용을 결정짓는 알고리즘의 요소를 의미한다. 이때 기본 공격이란 주어진 데이터(평문과 암호문)를 만족시키는 키를 발견할 때까지 모든 가능한 키 후보를 검색하는 전수조사(Exhaustive Search) 방식의 공격을 의미한다. 전수 조사에 걸리는 시간은 가능한 키의 개수에 의존하고 키의 개수는 키의 길이에 의해 결정되므로, 이 경우 안전성 파라미터는 키의 길이를 의미한다. 또한, B 값은 상기 보안 강도에 따라 적절하게 설정될 수 있다.First, we calculate N = pq from two large prime numbers p and q of similar size that satisfy p≡3 (mod 4), q≡3 (mod 4) and B smooth. Where p and q satisfy a security level corresponding to a given security parameter and are cryptographically safe prime numbers. A stability parameter is an element of an algorithm that determines the time and cost of a basic attack on an encryption algorithm. In this case, a basic attack means an exhaustive search attack that searches all possible key candidates until a key satisfying the given data (plaintext and ciphertext) is found. Since the time required for the total number examination depends on the number of possible keys and the number of keys is determined by the length of the key, in this case, the safety parameter means the length of the key. In addition, the B value can be set appropriately according to the security strength.

다음으로, 비밀키 교환에 사용되는 해시 함수 H 및 랜덤 해시 함수 hi를 정의한다. 유한한 군 ZN = {0, 1, 2, ..., N-1}의 최대 순환 부분군(maximal cyclic subgroup) 의 생성원(generator)을

Figure pat00008
라 하자. 이제 생성원
Figure pat00009
으로 생성되는 순환 부분군을 G라고 정의하면 이로부터 해시 함수 H는 다음의 수학식 1과 같이 정의된다.
Next, a hash function H and a random hash function h i used for secret key exchange are defined. The generator of a maximal cyclic subgroup of a finite group Z N = {0, 1, 2, ..., N-1}
Figure pat00008
Let's say. Now,
Figure pat00009
Is defined as G, the hash function H is defined as shown in Equation (1) below.

[수학식 1][Equation 1]

H: {0,1}* -> GH: {0,1} * - > G

(이때, {0,1}* 은 0과 1로 이루어진 임의의 유한한 비트열)
(Where {0, 1} * is an arbitrary finite bit string consisting of 0 and 1)

즉, 상기 해시 함수 H는 아이디를 입력값으로 할 때 그 출력값이 군 G의 원소가 되도록 정의된다. 예를 들어, 다음과 같은 랜덤 해시함수 h:{0,1}* -> Zn 가 있을 경우, 해시 함수 H는 다음의 수학식 2와 같이 정의될 수 있다.
That is, the hash function H is defined such that the output value of the hash function H becomes an element of the group G when an ID is an input value. For example, if there is the following random hash function h: {0,1} * -> Z n , the hash function H can be defined as Equation 2 below.

[수학식 2]&Quot; (2) "

H(ID) = h(ID)2
H (ID) = h (ID) 2

또한, 해시 함수 hi는 다음의 수학식 3과 같이 정의된다.
In addition, the hash function h i is defined by the following equation (3).

[수학식 3]&Quot; (3) "

Hi: {0,1}* -> {0,1}ni H i : {0, 1} * -> {0, 1} ni

(이때, {0,1}ni 은 0 또는 1 중 임의의 비트로 구성된 ni비트의 문자열을 의미하며, i∈{0, 1, 2, 3, 4, 5, 6})
({0,1} ni I = {0, 1, 2, 3, 4, 5, 6} denotes a string of n i bits composed of any bits of 0 or 1,

즉, 본 발명의 실시예에서는 6개의 랜덤 해시 함수가 사용되며, 각각의 랜덤 해시 함수의 출력값의 비트수는 알고리즘의 구체적인 형태에 따라 적절히 정해질 수 있다. 즉, n0 내지 n6의 값은 필요에 따라 적절히 설정될 수 있다. 각각의 랜덤 해시 함수로는 예를 들어, SHA1, SHA-256, SHA-512 등이 사용될 수 있으나 본 발명이 특정한 함수에 한정되는 것은 아니다. 또한 상기 실시예에서는 각 랜덤 해시 함수가 0 내지 6의 값을 가지도록 기술하였으나, 이는 단지 각 랜덤 해시 함수를 구분하기 위한 것일 뿐, 각각의 랜덤 해시 함수들이 특정한 순서를 가지는 것은 아니다.That is, in the embodiment of the present invention, six random hash functions are used, and the number of bits of the output value of each random hash function can be appropriately determined according to the concrete form of the algorithm. That is, the values of n 0 to n 6 can be appropriately set as needed. For example, SHA1, SHA-256, and SHA-512 may be used as the random hash functions, but the present invention is not limited to the specific functions. Also, in the above embodiment, each random hash function has a value ranging from 0 to 6. However, this is merely for distinguishing each random hash function, and each random hash function does not have a specific order.

이와 같은 과정을 거쳐 도출되는 시스템 파라미터(paramR) 및 마스터키(mk)는 다음과 같다.
The system parameters (param R ) and the master key (mk) derived through this process are as follows.

param = {N, G, g, H, h0, h1, h2, h3, h4, h5, h6}param = {N, G, g , H, h 0, h 1, h 2, h 3, h 4, h 5, h 6}

mk = (p, q)
mk = (p, q)

개인키 발급(204)Private key issuance (204)

본 단계는 키 발급 장치(106)에서 서버(104)로부터 수신된 아이디를 기반으로 개인키(private key, sID)를 발급하는 단계이다. 키 발급 장치(106)는 상기 시스템 파라미터(paramR) 및 마스터키(mk), 그리고 트랩도어 이산 로그(TDL) 군에 해당하는 사전계산 데이터를 기반으로 주어진 아이디에 대응되는 개인키를 계산한다. 이산 로그 계산이 암호학적으로 불가능하지만 트랩도어를 알고 있을 경우 이산 로그 값을 쉽게 계산할 수 있는 군이 존재하며, 이를 트랩도어 이산 로그 군이라 한다. 본 발명에서는 이와 같은 트랩도어 이산 로그군의 특성을 이용하여 각 아이디에 대응되는 개인키를 계산한다. 즉, 상기 개인키 생성자는 상기 마스터키와 상기 트랩도어 이산 로그군에 해당하는 각 값들에 대한 사전 계산 데이터를, 예를 들어 테이블 등의 형태로 저장해 두었다가 수신되는 아이디와 상기 테이블에 저장된 사전 계산 데이터를 이용하여 수신된 아이디에 대응되는 개인키를 계산한다. This step is a step of issuing a private key (s ID ) based on the ID received from the server 104 in the key issuing device 106. The key issuing device 106 calculates a private key corresponding to the given ID based on the system parameter param R , the master key mk, and the pre-computation data corresponding to the trapdoor discrete log (TDL) group. Discrete logarithm calculations are cryptographically impossible, but there is a group that can easily calculate the discrete logarithm if the trapdoor is known, which is called the trapdoor discrete logarithm. In the present invention, the private key corresponding to each ID is calculated using the characteristics of the trapdoor discrete log group. That is, the private key generator stores pre-computed data for each value corresponding to the master key and the trapdoor discrete log group in the form of a table, for example, and stores the received ID and the pre-computed data To calculate the private key corresponding to the received ID.

구체적으로, 개인키 생성자(PKG)는 수신되는 아이디(ID)를 한 문자 또는 숫자씩 분리하여

Figure pat00010
(이때, α는 상기 아이디의 길이)와 같이 표현한다. 예를 들어 ID가 abc01인 경우
Figure pat00011
로 나타낼 수 있다. 즉, IDi는 상기 아이디를 구성하는 i번째 문자를 의미한다. 각
Figure pat00012
에 대해 해시함수 H를 이용하여 이를 TDL 군 G의 원소로 변환하고, 전술한 사전계산 데이터를 이용하여
Figure pat00013
의 밑 g에 대한 이산로그 값을 계산하며, 이를 수학식으로 나타내면 다음과 같다.
Specifically, the private key generator PKG separates the received IDs by one character or number
Figure pat00010
(In this case,? Is the length of the ID). For example, if the ID is abc01
Figure pat00011
. That is, the ID i means the i-th character constituting the ID. bracket
Figure pat00012
By using the hash function H and converting it into an element of the TDL group G, and by using the above-mentioned pre-calculation data
Figure pat00013
And the discrete logarithm of the logarithm of the logarithm of the logarithm to the logarithm of the logarithm of the logarithm of the logarithm of the logarithm of the logarithm of the logarithm of the logarithm.

[수학식 4]&Quot; (4) "

Figure pat00014

Figure pat00014

이때, H(ID)는 수학식 2에서 설명한 바와 같이, 상기 랜덤 해시함수 h에 대해

Figure pat00015
의 관계를 가진다.At this time, as described in Equation (2), H (ID)
Figure pat00015
.

상기 ID에 대응되는 개인키(sID)는 다음의 수학식 5와 같이 계산된다.
The private key (s ID) corresponding to the ID, is calculated by the following equation (5) of.

[수학식 5]&Quot; (5) "

Figure pat00016

Figure pat00016

이와 같이 계산된 상기 개인키(sID)는 안전한 채널을 통하여 서버(104)로 전달된다.
The thus calculated the private key (s ID) is transmitted to the server 104 via a secure channel.

키 교환(206)Key exchange (206)

본 단계는 단말(102)과 서버(104) 간의 안전한 통신을 위한 비밀키(K)를 교환하고 이를 이용하여 세션키(sk)를 생성하는 단계이다. 도 3은 본 발명의 일 실시예에 따른 비밀키 교환 과정(206)을 설명하기 위한 블록도이다.In this step, a secret key K for secure communication between the terminal 102 and the server 104 is exchanged and a session key sk is generated using the same. FIG. 3 is a block diagram illustrating a secret key exchange process 206 according to an embodiment of the present invention.

먼저, 단말(102)은 상기 202 단계에서 정의된 시스템 파라미터에 따라 ZN에서 임의의 단말측 난수(random number) x를 선택하고(300), 상기 단말측 난수 x로부터 제1 비밀키 엘리먼트(X)를 계산한다(302). 이때 상기 제1 비밀키 엘리먼트(X)는 다음의 수학식 6과 같이 계산된다.
First, the UE 102 selects (300) an arbitrary terminal random number x in Z N according to the system parameters defined in step 202, and generates a first secret key element X (302). At this time, the first secret-key element X is calculated according to Equation (6).

[수학식 6]&Quot; (6) "

X = gx X = g x

(이때, g는 상기 순환 부분군 G의 생성원, N은 N=pq를 만족하는 정수, p 및 q는 각각 p≡3 (mod 4), q≡3 (mod 4)를 만족하는 소수)
(Where g is a generator of the cyclic subgroup G, N is an integer satisfying N = pq, and p and q are prime numbers satisfying p? 3 (mod 4) and q? 3 (mod 4)

상기와 같이 제1 비밀키 엘리먼트(X)가 계산되면, 단말(102)은 상기 제1 비밀키 엘리먼트(X)를 서버(104)로 송신한다. 또한, 도시된 바와 같이 단말(102)은 상기 제1 비밀키 엘리먼트(X)와 함께 아이디(ID)를 서버(104)로 전송할 수 있으나, 반드시 본 단계에서 상기 아이디(ID)를 전송하여야 하는 것은 아니며, 실시예에 따라 후술할 320 단계에서 제1 검증키와 함께 상기 아이디(ID)를 전송하는 것도 가능하다.When the first secret key element X is calculated as described above, the terminal 102 transmits the first secret key element X to the server 104. Also, as shown, the terminal 102 can transmit an ID to the server 104 together with the first secret key element X, but it is necessary to transmit the ID in this step , But it is also possible to transmit the ID together with the first verification key in step 320 according to an embodiment.

한편, 서버(104)는 ZN에서 임의의 서버측 난수(random number) y를 선택하고(306), 상기 단말측 난수 y로부터 제2 비밀키 엘리먼트(Y)를 계산한다(308). 이때 상기 제1 비밀키 엘리먼트(X)는 다음의 수학식 7과 같이 계산된다.
Meanwhile, the server 104 calculates the random server side random number (random number), select y and 306, the second secret key elements (Y) from the terminal side in the random number y Z N (308). At this time, the first secret-key element X is calculated according to the following Equation (7).

[수학식 7]&Quot; (7) "

Y = gy
Y = g y

상기와 같이 제2 비밀키 엘리먼트(Y)가 계산되면, 서버(104)는 상기 제2 비밀키 엘리먼트(Y)를 단말(102)로 송신한다.When the second secret key element Y is calculated as described above, the server 104 transmits the second secret key element Y to the terminal 102.

한편, 도시된 실시예에서는 서버(104)에서 단말(102)로부터 아이디 및 제1 비밀키 엘리먼트를 수신한 이후 서버(104)에서 306, 308 단계를 수행하는 것으로 도시되었으나, 본 발명의 실시예들은 이에 한정되는 것은 아니다. 즉, 본 발명의 실시예에서 306 및 308 단계는 300 및 302 단계와는 별도로 수행된다. 즉, 실시예에 따라 제2 비밀키 엘리먼트(Y)는 제1 비밀키 엘리먼트(X)보다 먼저 생성될 수도 있고, 동시에 생성될 수도 있다. 또한, 본 발명의 실시예에서 제1 비밀키 엘리먼트(X) 및 제2 비밀키 엘리먼트(Y)는 각각 단말(102) 및 서버(104)에서 미리 계산되어 저장되는 값일 수도 있다. 이 경우에는 본 방법을 수행하는 데 있어 300 및 302 단계, 306 및 308 단계를 수행할 필요 없이 저장된 값을 불러오기만 하면 되므로, 제1 비밀키 엘리먼트(X) 및 제2 비밀키 엘리먼트(Y)의 계산에 따른 오버헤드가 없어지게 된다. (단, 이때, 해시함수, 대칭키 암호 알고리즘, 곱셈 연산 등의 연산 시간은 무시할 수 있다고 가정한다.)In the illustrated embodiment, the server 104 is shown performing steps 306 and 308 in the server 104 after receiving the ID and the first secret key element from the terminal 102. However, But is not limited thereto. That is, steps 306 and 308 are performed separately from steps 300 and 302 in the embodiment of the present invention. That is, according to the embodiment, the second secret-key element Y may be generated earlier than the first secret-key element X, or may be generated at the same time. Also, in the embodiment of the present invention, the first secret key element X and the second secret key element Y may be values previously calculated and stored in the terminal 102 and the server 104, respectively. In this case, since only the stored values need to be retrieved without performing steps 300, 302, 306, and 308 in performing the method, the values of the first secret key element X and the second secret key element Y The overhead due to the calculation is lost. (However, at this time, it is assumed that the operation time of the hash function, the symmetric key encryption algorithm, and the multiplication operation can be ignored.)

이와 같이 단말(102)과 서버(104) 사이에 제1 비밀키 엘리먼트(X) 및 제2 비밀키 엘리먼트(Y)가 교환되면, 단말(102) 및 서버(104)는 각각 비밀키(K)를 계산한다.When the first secret key element X and the second secret key element Y are exchanged between the terminal 102 and the server 104 as described above, the terminal 102 and the server 104 respectively transmit the secret key K, .

먼저, 단말(102)은 상기 제1 비밀키 엘리먼트(X), 상기 제2 비밀키 엘리먼트(Y) 및 상기 아이디(ID)의 해시값(I)과 상기 해시함수 h0를 이용하여 공통 해시값(e= h0(X,Y,I))를 계산한다.First, the terminal 102 is the first secret key elements (X), said second secret element (Y), and by using a hash value (I) and the hash function h 0 of the identity (ID) common hash value, calculates (e = h 0 (X, Y, I)).

다음으로, 단말(102)은 상기 계산한 공통 해시값(e), 상기 단말측 난수(x), 상기 제1 비밀키 엘리먼트(X), 상기 제2 비밀키 엘리먼트(Y) 및 상기 아이디(ID)의 해시값(I)을 포함하는 제1문자열을 해싱함으로써 비밀키(K)를 생성한다(312). 이를 수식으로 나타내면 수학식 8과 같다.
Next, the terminal 102 transmits the calculated common hash value e, the terminal side random number x, the first secret key element X, the second secret key element Y, and the ID (312) by hashing the first string including the hash value (I) of the secret key (K). This can be expressed by Equation (8).

[수학식 8]&Quot; (8) "

K = h1(X, (Y,I), (YIe)x) K = h 1 (X, ( Y, I), (YI e) x)

(이때, I = H(ID))
(I = H (ID)),

한편, 서버(104) 또한 단말(102)과 마찬가지로 상기 제1 비밀키 엘리먼트(X), 상기 제2 비밀키 엘리먼트(Y) 및 상기 아이디(ID)의 해시값(I)과 상기 해시함수 h0를 이용하여 공통 해시값(e= h0(X,Y,I))를 계산하고, 상기 계산한 공통 해시값(e), 상기 제1 비밀키 엘리먼트(X), 상기 서버측 난수(y), 상기 제2 비밀키 엘리먼트(Y), 상기 아이디(ID)의 해시값(I) 및 상기 개인키(SID)를 포함하는 제1문자열을 해싱함으로써 비밀키(K)를 생성한다(314). 이를 수식으로 나타내면 수학식 9와 같다.
The server 104 also transmits the hash value I (I) of the first secret key element X, the second secret key element Y and the ID (ID) to the hash function h 0 using the common hash value (e = h 0 (X, y, I)) calculated, and the calculated common hash value (e) for the first private key elements (X), wherein the server side, the random number (y) (314) by hashing the first string including the second secret key element (Y), the hash value (I) of the ID , and the private key (SID) . This can be expressed by Equation (9).

[수학식 9]&Quot; (9) "

K = h1(X, (Y,I), Xy + sID *e)
K = h 1 (X, ( Y, I), X y + sID * e)

전술한 바와 같이, 상기 312 단계 및 314 단계에서 생성되는 개인키는 동일하다. 즉, 본 발명의 실시예에 따를 경우 단말(102)과 서버(104) 사이에 별도의 비밀키 교환 과정이 없이도 서로 공통된 비밀키를 생성할 수 있다. 또한 비밀키를 생성하기 위하여 단말(102) 및 서버(104)에서 각각 제1 비밀키 엘리먼트(X) 제2 비밀키 엘리먼트(Y)를 얻기 위한 지수승 한 번의 연산만을 수행하면 되므로 비밀키 생성을 위한 계산량이 종래에 비래 현저히 감소하게 된다.As described above, the private keys generated in steps 312 and 314 are the same. That is, according to the embodiment of the present invention, a common secret key can be generated between the terminal 102 and the server 104 without a separate secret key exchange process. In order to generate the secret key, the terminal 102 and the server 104 only need to perform one exponentiation and one operation to obtain the first secret-key element X and the second secret-key element Y, respectively, The amount of calculations for the conventional method is significantly reduced.

이와 같이, 단말(102)과 서버(104) 사이에 공통된 비밀키(K)가 생성되면, 다음으로 단말(102)은 비밀키(K)를 대칭키로 하는 대칭키 암호화 알고리즘(symmetric key algorithm, Ek)을 이용하여 단말(102)의 패스워드를 암호화한다(316). 암호화된 상기 패스워드는 이후 서버(104)로 전달되어 단말(102)을 인증하는 데 사용된다.When the secret key K common to the terminal 102 and the server 104 is generated as described above, the terminal 102 generates a symmetric key algorithm (E) using the secret key K as a symmetric key, k to encrypt the password of the terminal 102 (316). The encrypted password is then forwarded to the server 104 and used to authenticate the terminal 102.

다음으로, 단말(102)은 상기 공통 해시값(e), 상기 단말측 난수(x), 상기 제1 비밀키 엘리먼트(X), 상기 제2 비밀키 엘리먼트(Y) 및 상기 아이디(ID)의 해시값(I)을 포함하는 문자열을 제2 랜덤 해시함수(h2)로 해싱하여 세션키(sk)를 생성한다(318). 이를 수식으로 나타내면 다음과 같다.
Next, the terminal 102 transmits the common hash value e, the terminal side random number x, the first secret key element X, the second secret key element Y, and the ID The session key sk is generated 318 by hashing a string including the hash value I into a second random hash function h 2 . The equation is expressed as follows.

[수학식 10]&Quot; (10) "

sk = h2(X, (Y,I), (YIe)x)
sk = h 2 (X, ( Y, I), (YI e) x)

서버(104) 또한 상기 공통 해시값(e), 상기 제1 비밀키 엘리먼트(X), 상기 서버측 난수(y), 상기 제2 비밀키 엘리먼트(Y), 상기 아이디(ID)의 해시값(I) 및 상기 개인키(SID)를 포함하는 문자열을 제2 랜덤 해시함수(h2)로 해싱하여 세션키(sk)를 생성한다(320). 이를 수식으로 나타내면 다음과 같다.
The server 104 also stores the hash value of the common hash value e, the first secret key element X, the server side random number y, the second secret key element Y, I) and the private key (S ID ) to the second random hash function (h 2 ) to generate a session key sk (320). The equation is expressed as follows.

[수학식 11]&Quot; (11) "

sk = h2(X, (Y,I), Xy + sID *e)
sk = h 2 (X, ( Y, I), X y + sID * e)

이후, 단말(102)은 상기 제1 비밀키 엘리먼트(X), 상기 제2 비밀키 엘리먼트(Y), 상기 아이디(ID)의 해시값(I), 상기 세션키(sk) 및 상기 패스워드를 포함하는 제2문자열을 제3 랜덤 해시함수(h3)로 해싱하여 제1검증값을 생성하고, 상기 생성된 비밀키(K)를 이용하여 패스워드를 암호화하며, 상기 제1검증값 및 상기 암호화된 패스워드(EK(pw))를 서버(104)로 송신한다(322). 이때 상기 제1검증값은 다음의 수학식에 의해 계산될 수 있다.
The terminal 102 then stores the first secret key element X, the second secret key element Y, the hash value I of the ID, the session key sk and the password the hashing the second string to a third random hash function (h 3) to generate a first verification value and, using the generated secret key (K) encrypts the password, the first verification value and the encryption And transmits the password (E K (pw)) to the server 104 (322). At this time, the first verification value may be calculated by the following equation.

[수학식 12]&Quot; (12) "

제1검증값 = h3(X, Y, I, sk, PW)
The first verification value = h 3 (X, Y, I, sk, PW)

한편, 전술한 바와 같이 304 단계에서 아이디가 송신되지 않은 경우에는 본 단계에서 아이디를 함께 전송할 수도 있다.On the other hand, if the ID is not transmitted in step 304 as described above, it is also possible to transmit the ID together in this step.

상기 제1검증값을 수신한 서버(104)는 단말(102)과 동일한 대칭키 암호화 알고리즘을 이용하여 암호화된 패스워드를 복호화하고, 복호화된 패스워드 및 아이디를 이용하여 사용자를 인증한다(324). 즉, 서버(104)에 의하여 복호화된 상기 패스워드는 수신된 상기 아이디와 함께 단말(102)의 사용자를 인증하는 데 사용된다.The server 104 receiving the first verification value decrypts the encrypted password using the same symmetric key encryption algorithm as that of the terminal 102, and authenticates the user using the decrypted password and the ID (324). That is, the password decrypted by the server 104 is used to authenticate the user of the terminal 102 together with the received ID.

상기 사용자 인증을 위하여, 서버(104)는 데이터베이스 등 별도의 저장 공간에 각 사용자의 패스워드를 기록하여 두었다가, 단말(102)로부터 수신되어 복호화된 패스워드와 기 저장된 패스워드와의 일치 여부를 검증하도록 구성될 수 있다. 또한, 실시예에 따라 서버(104)는 상기 패스워드 자체를 저장 및 관리할 수도 있고, 또는 패스워드의 해시값을 저장하거나, 별도의 하드웨어 보안 모듈(HSM)을 이용하여 계산된 MAC 값을 저장할 수도 있다.In order to authenticate the user, the server 104 records the password of each user in a separate storage space such as a database and verifies whether the password received from the terminal 102 matches the decrypted password with the stored password . In addition, the server 104 may store and manage the password itself, store the hash value of the password, or store the calculated MAC value using a separate hardware security module (HSM) .

본 발명의 실시예에서, 하드웨어 보안 모듈(또는 HSM 장비로 지칭)는 강력한 인증을 위해 디지털 키를 이용한 하드웨어적 연산을 수행하는 장비이다. HSM 장비는 일반적으로 플러그인 카드(plug-in card) 형태나 임베디드 칩(embedded chip) 형태로 구현되며 탬퍼링(tampering)이나 버스 프로빙(bus probing) 등으로부터 안전한 하나 이상의 보안 크립토프로세서(secure cryptoprocessor)를 탑재하고 있다. 이러한 HSM 장비를 활용하면 종래의 해싱 기법 등에 비해 더욱 안전한 패스워드 관리가 가능하다. In an embodiment of the present invention, a hardware security module (or HSM device) is a device that performs hardware operations using a digital key for strong authentication. HSM devices are typically implemented in the form of plug-in cards or embedded chips and include one or more secure cryptoprocessors that are secure from tampering or bus probing. . Using such HSM devices, more secure password management is possible compared with the conventional hashing technique.

서버(104) 측에서 HSM 장비를 이용하여 패스워드 매칭을 수행하는 방법을 설명하면 다음과 같다. 먼저, 서버(104)는 데이터베이스에 단순한 패스워드의 해시값이 아니라, 서버(104) 측에 구비된 HSM 장비의 비밀키(kHSM)가 반영된 MAC(message authentication code) 값 (MAC_k(pw))을 저장한다.A method of performing password matching using the HSM device on the server 104 side will be described below. First, the server 104 notifies the database of a MAC (message authentication code) value (MAC_k (pw)) reflecting the secret key (k HSM ) of the HSM equipment provided on the server 104 side instead of a hash value of a simple password .

이후, 상기 322 단계에서 단말(102)로부터 암호화된 패스워드가 전송될 경우, 서버(104)는 단말(102)로부터 받은 암호화된 패스워드를 복호화하여(324 단계), HSM 장비에 입력한다. 그러면 상기 HSM 장비는 서버(104)로부터 제공받은 패스워드와 탑재한 비밀키 kHSM 를 이용하여 MAC 값(MAC_k(pw))을 계산하고, 계산된 MAC 값을 서버(104)로 반환한다. 이후, 서버(104)는 데이터베이스에 기 저장된 MAC 값과 HSM 장비로부터 계산된 MAC 값을 비교하여 사용자를 인증하게 된다.When the encrypted password is transmitted from the terminal 102 in step 322, the server 104 decrypts the encrypted password received from the terminal 102 (step 324) and inputs the decrypted password to the HSM device. Then, the HSM device calculates a MAC value (MAC_k (pw)) using the secret key k HSM mounted on the password provided from the server 104, and returns the calculated MAC value to the server 104. Then, the server 104 compares the MAC value previously stored in the database with the MAC value calculated from the HSM device to authenticate the user.

상기 MAC 연산 시간은 기본적으로 대칭키 암호화 연산 시간과 비슷하므로, 이를 이용할 경우 기존 방법에 비해 효율성은 비슷하면서도 더욱 향상된 안전성을 제공한다. 왜냐하면, 일반적인 hash 함수와 달리 MAC의 경우 key 값이 반영되므로 MAC의 output은 단순히 password 길이에 따른 random성 뿐 아니라 key값에 따라 암호학적 안전성 (예를 들어, key 값이 128bit일 경우 기존 AES-128과 동일한 안전성)을 제공할 수 있게 되어 원천적으로 패스워드 크래킹(password cracking)을 불가능하게 하기 때문이다.Since the MAC computation time is basically similar to the symmetric key encryption computation time, the efficiency is similar to that of the conventional method, but provides further improved safety. Because the key value is reflected in the MAC, unlike the normal hash function, the output of the MAC is not only random according to the length of the password but also cryptographically secure according to the key value (for example, when the key value is 128 bits, To provide the same security), which in essence makes password cracking impossible.

그러나 기존의 패스워드 기반 키 교환 방법의 경우 알고리즘 상 패스워드 자체를 전달하는 것이 불가능하며, 단지 패스워드의 매칭 여부를 확인할 수 있는 값을 전달하는 형태이므로, 기존의 알고리즘에서 HSM 장비를 활용하기 위해서는 제안한 방법에 비해 2000배 이상 느린 지수승 또는 공개키 암호 연산이 필요하다. 따라서 종래기술에 따를 경우에는 서버와 클라이언트 사이에 매우 빈번히 발생하는 로그인 작업에 HSM 장비를 사용하기 불가능하였다. 그러나 본 발명의 실시예들에 따를 경우 비밀키를 이용하여 서버 측으로 직접 암호화된 패스워드를 전달할 수 있게 되는 바, 사용자 로그인 등의 과정에서 별도의 서버측 부하를 가중시키지 않으면서도 HSM 장비를 적용하여 키 교환 및 인증 과정에서의 안정성을 배가시킬 수 있는 장점이 있다.However, in the case of the conventional password-based key exchange method, it is impossible to transmit the password itself in the algorithm, and only a value that confirms whether the password is matched is transmitted. Therefore, in order to utilize the HSM device in the existing algorithm, Exponentiation or public key cryptography operations that are slower than 2000 times are needed. Therefore, according to the related art, it is impossible to use the HSM equipment for the login work that occurs very frequently between the server and the client. However, according to the embodiments of the present invention, it is possible to transmit the encrypted password directly to the server side using the secret key, so that the HSM device can be applied to the key It is possible to double the stability in the exchange and authentication process.

상기과 같은 패스워드 복호화 및 인증이 완료되면, 다음으로 서버(104)는 복호화된 패스워드를 이용하여 상기 제1검증값을 검증한다(326). 본 단계에서는, 서버(104)에서 알고 있는 인자들, 즉 상기 제1 비밀키 엘리먼트(X), 상기 제2 비밀키 엘리먼트(Y), 상기 아이디(ID)의 해시값(I), 상기 세션키(sk), 복호화된 패스워드 및 제3 랜덤 해시함수(h3)를 이용하여 제1검증값을 별도로 생성하고, 이를 수신된 값과 비교함으로써 상기 제1검증값을 검증할 수 있다. 이때 두 개의 값이 서로 일치하는 경우 상기 검증은 성공한 것이 되며, 일치하지 않는 경우 상기 검증은 실패한 것이 된다.When the above password decryption and authentication are completed, the server 104 verifies the first verification value using the decrypted password (326). In this step, the hash value (I) of the first secret key element (X), the second secret key element (Y), the ID (ID) (sk), the decrypted password, and the third random hash function (h 3 ), and comparing the first verification value with the received value to verify the first verification value. At this time, if the two values coincide with each other, the verification is successful. Otherwise, the verification fails.

이후, 서버(104)는 상기 제1 비밀키 엘리먼트(X), 상기 제2 비밀키 엘리먼트(Y), 아이디(ID)의 해시값(I), 상기 세션키(sk) 및 상기 패스워드를 포함하는 제2문자열을 제4 랜덤 해시함수(h4)로 해싱하여 제2검증값을 생성한 뒤 이를 단말(102)로 송신한다(328). 이때 상기 제2검증값은 다음의 수학식에 의해 계산될 수 있다.
Thereafter, the server 104 transmits the hash value (I) of the first secret key element X, the second secret key element Y, the ID, the session key sk, Generates a second verification value by hashing the second character string with a fourth random hash function h 4 , and transmits the generated second verification value to the terminal 102 (328). At this time, the second verification value may be calculated by the following equation.

[수학식 13]&Quot; (13) "

제2검증값 = h4(X, Y, I, sk, PW)
A second verification value = h 4 (X, Y, I, sk, PW)

이후, 단말(102)은 자신이 알고 있는 값, 즉 상기 제1 비밀키 엘리먼트(X), 상기 제2 비밀키 엘리먼트(Y), 아이디(ID)의 해시값(I), 상기 세션키(sk), 상기 패스워드 및 제4 랜덤 해시함수(h4)를 이용하여 별도의 제2검증값을 생성하고, 이를 수신된 값과 비교함으로써 상기 제2검증값을 검증한다. 이때 두 개의 값이 서로 일치하는 경우 상기 검증은 성공한 것이 되며, 일치하지 않는 경우 상기 검증은 실패한 것이 된다. 본 발명에서는 상기 제1검증값을 통한 검증 및 제2검증값을 통한 검증이 모두 성공한 경우 세션키 교환에 성공한 것으로 판단할 수 있다.Then, the terminal 102 determines whether the value of the first secret key element X, the second secret key element Y, the hash value I of the ID, the session key sk ), Generates a separate second verification value using the password and the fourth random hash function (h 4 ), and verifies the second verification value by comparing it with the received value. At this time, if the two values coincide with each other, the verification is successful. Otherwise, the verification fails. According to the present invention, when both the verification using the first verification value and the verification using the second verification value are successful, it can be determined that the session key exchange is successful.

한편, 본 발명의 실시예는 본 명세서에서 기술한 방법들을 컴퓨터상에서 수행하기 위한 프로그램을 포함하는 컴퓨터 판독 가능 기록매체를 포함할 수 있다. 상기 컴퓨터 판독 가능 기록매체는 프로그램 명령, 로컬 데이터 파일, 로컬 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 매체는 본 발명을 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 분야에서 통상의 지식을 가진 자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체, CD-ROM, DVD와 같은 광 기록 매체, 플로피 디스크와 같은 자기-광 매체, 및 롬, 램, 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함할 수 있다.On the other hand, an embodiment of the present invention may include a computer-readable recording medium including a program for performing the methods described herein on a computer. The computer-readable recording medium may include a program command, a local data file, a local data structure, or the like, alone or in combination. The media may be those specially designed and constructed for the present invention or may be known and available to those of ordinary skill in the computer software arts. Examples of computer readable media include magnetic media such as hard disks, floppy disks and magnetic tape, optical recording media such as CD-ROMs and DVDs, magneto-optical media such as floppy disks, and magnetic media such as ROMs, And hardware devices specifically configured to store and execute program instructions. Examples of program instructions may include machine language code such as those generated by a compiler, as well as high-level language code that may be executed by a computer using an interpreter or the like.

이상에서 대표적인 실시예를 통하여 본 발명에 대하여 상세하게 설명하였으나, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자는 상술한 실시예에 대하여 본 발명의 범주에서 벗어나지 않는 한도 내에서 다양한 변형이 가능함을 이해할 것이다. While the present invention has been particularly shown and described with reference to exemplary embodiments thereof, it is clearly understood that the same is by way of illustration and example only and is not to be construed as limiting the scope of the present invention. I will understand.

그러므로 본 발명의 권리범위는 설명된 실시예에 국한되어 정해져서는 안 되며, 후술하는 특허청구범위뿐만 아니라 이 특허청구범위와 균등한 것들에 의해 정해져야 한다.
Therefore, the scope of the present invention should not be limited to the above-described embodiments, but should be determined by equivalents to the appended claims, as well as the appended claims.

100: 패스워드 기반 키 교환 시스템
102: 단말
104: 서버
106: 키 발급 장치
100: Password-based key exchange system
102: terminal
104: Server
106: key issuing device

Claims (25)

단말에서, 상기 단말 사용자의 아이디(ID) 및 서버와 교환한 키 생성 인자를 이용하여 아이디 기반의 비밀키(K)를 생성하는 단계;
상기 단말에서, 생성된 상기 비밀키(K)를 대칭키로 하는 대칭키 암호화 알고리즘을 이용하여 상기 사용자의 패스워드를 암호화하고, 암호화된 상기 패스워드를 상기 서버로 송신함으로써 상기 단말 사용자의 인증을 요청하는 단계; 및
상기 단말에서, 상기 서버로부터 상기 인증 요청에 대한 응답을 수신하는 단계를 포함하는 인증 방법.
Generating an identity-based secret key (K) using an ID of the terminal user and a key generation factor exchanged with the server;
Encrypting the password of the user using a symmetric key encryption algorithm using the generated secret key K as a symmetric key in the terminal and requesting authentication of the terminal user by transmitting the encrypted password to the server ; And
And receiving, at the terminal, a response to the authentication request from the server.
청구항 1에 있어서,
상기 비밀키를 생성하는 단계는,
상기 단말에서, 단말측 난수(x)로부터 계산된 제1 비밀키 엘리먼트(X)를 서버로 송신하는 단계; 및
상기 단말에서, 상기 서버로부터 제2 비밀키 엘리먼트(Y)를 수신하는 단계를 포함하며,
상기 단말은, 상기 단말측 난수(x), 상기 제1 비밀키 엘리먼트(X), 상기 제2 비밀키 엘리먼트(Y) 및 상기 아이디(ID)를 이용하여 상기 비밀키(K)를 생성하는, 인증 방법.
The method according to claim 1,
Wherein the generating the secret key comprises:
Transmitting, at the terminal, a first secret key element (X) calculated from a terminal side random number (x) to a server; And
Receiving, at the terminal, a second secret-key element (Y) from the server,
The terminal generates the secret key (K) using the terminal side random number (x), the first secret key element (X), the second secret key element (Y), and the ID (ID) Authentication method.
청구항 1에 있어서,
상기 단말은, 상기 제1 비밀키 엘리먼트(X), 상기 제2 비밀키 엘리먼트(Y) 및 상기 아이디(ID)의 해시값(I)을 이용하여 공통 해시값(e)을 생성하고,
상기 공통 해시값(e), 상기 단말측 난수(x), 상기 제1 비밀키 엘리먼트(X), 상기 제2 비밀키 엘리먼트(Y) 및 상기 아이디(ID)의 해시값(I)을 이용하여 상기 비밀키(K)를 생성하는, 인증 방법.
The method according to claim 1,
The terminal generates a common hash value (e) using the hash value (I) of the first secret key element (X), the second secret key element (Y) and the ID (ID)
Using the hash value (I) of the common hash value (e), the terminal side random number (x), the first secret key element (X), the second secret key element (Y) And generates the secret key (K).
청구항 3에 있어서,
상기 비밀키(K)는 상기 공통 해시값(e), 상기 단말측 난수(x), 상기 제1 비밀키 엘리먼트(X), 상기 제2 비밀키 엘리먼트(Y) 및 상기 아이디(ID)의 해시값(I)을 포함하는 제1문자열을 해싱함으로써 생성되는, 인증 방법.
The method of claim 3,
The secret key K is a hash of the common hash value e, the terminal side random number x, the first secret key element X, the second secret key element Y and the ID Is generated by hashing a first string containing a value (I).
청구항 4에 있어서,
상기 제1 비밀키 엘리먼트(X)는 다음의 수학식
X = gx
(이때, g는 유한한 군 ZN = {0, 1, 2, ..., N-1}의 최대 순환 부분군의 생성원을
Figure pat00017
라 할 때,
Figure pat00018
으로 생성되는 순환 부분군 G의 생성원, N은 N=pq를 만족하는 정수, p 및 q는 각각 p≡3 (mod 4), q≡3 (mod 4)를 만족하는 소수)
에 의하여 계산되는, 인증 방법.
The method of claim 4,
The first secret-key element (X)
X = g x
(Where g is the source of the largest circulating subgroup of the finite group Z N = {0, 1, 2, ..., N-1}
Figure pat00017
In other words,
Figure pat00018
(N) is an integer satisfying N = pq, and p and q are prime numbers satisfying p? 3 (mod 4) and q? 3 (mod 4)
, ≪ / RTI >
청구항 5에 있어서,
상기 비밀키(K)는 다음의 수학식
K = h1(X, (Y,I), (YIe)x)
(이때, h1은 제1 랜덤 해시함수, I = H(ID), H는 H:{0,1}*->G 의 관계를 만족하는 해시함수)
에 의하여 계산되는, 인증 방법.
The method of claim 5,
The secret key K may be expressed by the following equation
K = h 1 (X, ( Y, I), (YI e) x)
(Where h 1 is a first random hash function, I = H (ID), H is a hash function satisfying the relation of H: {0,1} * -> G)
, ≪ / RTI >
청구항 6에 있어서,
상기 암호화된 패스워드를 상기 서버로 송신하는 단계의 수행 이후,
상기 단말에서, 상기 공통 해시값(e), 상기 단말측 난수(x), 상기 제1 비밀키 엘리먼트(X), 상기 제2 비밀키 엘리먼트(Y) 및 상기 아이디(ID)의 해시값(I)을 포함하는 문자열을 제2 랜덤 해시함수(h2)로 해싱하여 세션키(sk)를 생성하는 단계;
상기 단말에서, 상기 제1 비밀키 엘리먼트(X), 상기 제2 비밀키 엘리먼트(Y), 상기 아이디(ID)의 해시값(I), 상기 세션키(sk) 및 상기 패스워드를 포함하는 제2문자열을 제3 랜덤 해시함수(h3)로 해싱하여 제1검증값을 생성하는 단계; 및
상기 단말에서, 상기 제1검증값을 상기 서버로 송신하는 단계를 더 포함하는, 인증 방법.
The method of claim 6,
After performing the step of transmitting the encrypted password to the server,
The hash value (I) of the common hash value (e), the terminal side random number (x), the first secret key element (X), the second secret key element (Y) ) To a second random hash function (h 2 ) to generate a session key (sk);
Wherein the hash value (I) of the first secret key element (X), the second secret key element (Y), the ID (ID), the session key (sk) a step of hashing the string to a third random hash function (h 3) generates a first verification value; And
And transmitting, at the terminal, the first verification value to the server.
청구항 7에 있어서,
상기 세션키(sk)는 다음의 수학식
sk = h2(X, (Y,I), (YIe)x)
에 의하여 계산되는, 인증 방법.
The method of claim 7,
The session key sk may be expressed by the following equation
sk = h 2 (X, ( Y, I), (YI e) x)
, ≪ / RTI >
청구항 7에 있어서,
상기 단말은, 상기 제1 비밀키 엘리먼트(X)와 함께 상기 아이디를 상기 서버로 송신하거나, 또는 상기 제1검증값과 함께 상기 아이디를 상기 서버로 송신하는, 인증 방법.
The method of claim 7,
The terminal transmits the ID together with the first secret key element (X) to the server, or transmits the ID together with the first verification value to the server.
청구항 7에 있어서,
상기 제1검증값을 상기 서버로 송신하는 단계의 수행 이후,
상기 단말에서, 상기 서버로부터 제2검증값을 수신하는 단계; 및
상기 단말에서, 상기 제1 비밀키 엘리먼트(X), 상기 제2 비밀키 엘리먼트(Y), 상기 아이디(ID)의 해시값(I), 상기 세션키(sk), 상기 패스워드 및 제4 랜덤 해시함수(h4)를 이용하여 상기 제2검증값을 검증하는 단계를 더 포함하는, 인증 방법.
The method of claim 7,
After performing the step of transmitting the first verification value to the server,
Receiving, at the terminal, a second verification value from the server; And
The hash value (I) of the first secret key element (X), the second secret key element (Y), the ID (ID), the session key (sk), the password, and the fourth random hash Further comprising verifying the second verification value using a function (h 4 ).
서버에서, 단말 사용자의 아이디(ID) 및 상기 단말과 교환한 키 생성 인자를 이용하여 아이디 기반의 비밀키(K)를 생성하는 단계;
상기 서버에서, 상기 단말로부터 상기 사용자의 암호화된 패스워드를 수신하는 단계; 및
상기 서버에서, 생성된 상기 비밀키(K)를 대칭키로 하는 대칭키 복호화 알고리즘을 이용하여 상기 암호화된 패스워드를 복호화하고, 복호화된 상기 패스워드를 이용하여 상기 단말 사용자를 인증하는 단계를 포함하는 인증 방법.
(K) based on an ID of a terminal user and a key generation factor exchanged with the terminal;
Receiving, at the server, the encrypted password of the user from the terminal; And
Decrypting the encrypted password using a symmetric key decryption algorithm using the generated secret key K as a symmetric key in the server and authenticating the terminal user using the decrypted password .
청구항 11에 있어서,
상기 비밀키를 생성하는 단계는,
상기 서버에서, 키 발급 장치로부터 상기 아이디(ID)에 대응되는 개인키(sID)를 발급받는 단계;
상기 서버에서, 상기 단말로부터 제1 비밀키 엘리먼트(X)를 수신하는 단계; 및
상기 서버에서, 서버측 난수(y)로부터 계산된 제2 비밀키 엘리먼트(Y)를 상기 단말로 송신하는 단계를 더 포함하며,
상기 서버는, 상기 제1 비밀키 엘리먼트(X), 상기 서버측 난수(y), 상기 제2 비밀키 엘리먼트(Y), 상기 아이디(ID) 및 상기 개인키(sID)를 이용하여 상기 비밀키(K)를 생성하는, 인증 방법.
The method of claim 11,
Wherein the generating the secret key comprises:
Receiving issuing the private key (s ID) corresponding to the ID (ID) from at the server, the key issuing apparatus;
Receiving, at the server, a first secret-key element (X) from the terminal; And
Further comprising, in the server, transmitting to the terminal a second secret-key element (Y) calculated from a server-side random number (y)
The server uses the first secret-key element X, the server-side random number y, the second secret-key element Y, the ID, and the private key s ID , To generate a key (K).
청구항 12에 있어서,
상기 서버는, 상기 제1 비밀키 엘리먼트(X), 상기 제2 비밀키 엘리먼트(Y) 및 상기 아이디(ID)의 해시값(I)을 이용하여 공통 해시값(e)을 생성하고,
상기 공통 해시값(e), 상기 제1 비밀키 엘리먼트(X), 상기 서버측 난수(y), 상기 제2 비밀키 엘리먼트(Y), 상기 아이디(ID)의 해시값(I) 및 상기 개인키(SID)를 이용하여 상기 비밀키(K)를 생성하는, 인증 방법.
The method of claim 12,
The server generates a common hash value (e) using the hash value (I) of the first private key element (X), the second private key element (Y) and the ID (ID)
The hash value (I) of the first hash value (e), the first secret key element (X), the server side random number (y), the second secret key element (Y) key, an authentication method for generating the secret key (K) using the (S ID).
청구항 13에 있어서,
상기 비밀키(K)는 상기 공통 해시값(e), 상기 제1 비밀키 엘리먼트(X), 상기 서버측 난수(y), 상기 제2 비밀키 엘리먼트(Y), 상기 아이디(ID)의 해시값(I) 및 상기 개인키(SID)를 포함하는 제1문자열을 해싱함으로써 생성되는, 인증 방법.
14. The method of claim 13,
Wherein the secret key K is a hash of the common hash value e, the first secret key element X, the server side random number y, the second secret key element Y, value (I) and which is generated by hashing the first string that contains the private key (S ID), authentication methods.
청구항 14에 있어서,
상기 개인키(sID)는 다음의 수학식
Figure pat00019

(이때, g는 유한한 군 ZN = {0, 1, 2, ..., N-1}의 최대 순환 부분군의 생성원을
Figure pat00020
라 할 때,
Figure pat00021
으로 생성되는 순환 부분군 G의 생성원, N는 N = pq의 관계를 만족하는 정수, p 및 q는 각각 p≡3 (mod 4), q≡3 (mod 4)를 만족하는 소수, IDi는 상기 아이디를 구성하는 i번째 문자, α는 상기 아이디의 길이),
Figure pat00022
h는 h:{0,1}*->ZN의 관계를 만족하는 랜덤해시함수,
Figure pat00023
)
에 의하여 계산되는, 인증 방법.
15. The method of claim 14,
The private key (s ID) is the following equation
Figure pat00019

(Where g is the source of the largest circulating subgroup of the finite group Z N = {0, 1, 2, ..., N-1}
Figure pat00020
In other words,
Figure pat00021
P and q are prime numbers satisfying p? 3 (mod 4) and q? 3 (mod 4), respectively, and ID i Is the i-th character constituting the ID, and? Is the length of the ID)
Figure pat00022
h is a random hash function satisfying the relation of h: {0, 1} * -> Z N ,
Figure pat00023
)
, ≪ / RTI >
청구항 15에 있어서,
상기 제2 비밀키 엘리먼트는 다음의 수학식
Y = gy
에 의하여 계산되는, 인증 방법.
16. The method of claim 15,
The second secret-key element is expressed by the following equation
Y = g y
, ≪ / RTI >
청구항 16에 있어서,
상기 비밀키(K)는 다음의 수학식
K = h1(X, (Y,I), Xy + sID *e)
(이때, h1은 제1 랜덤 해시함수, I = H(ID), H는 H:{0,1}*->G 의 관계를 만족하는 해시함수)
에 의하여 계산되는, 인증 방법.
18. The method of claim 16,
The secret key K may be expressed by the following equation
K = h 1 (X, ( Y, I), X y + sID * e)
(Where h 1 is a first random hash function, I = H (ID), H is a hash function satisfying the relation of H: {0,1} * -> G)
, ≪ / RTI >
청구항 17에 있어서,
상기 단말을 인증하는 단계의 수행 이후,
상기 서버에서, 상기 단말로부터 제1검증값을 수신하는 단계;
상기 서버에서, 상기 공통 해시값(e), 상기 제1 비밀키 엘리먼트(X), 상기 서버측 난수(y), 상기 제2 비밀키 엘리먼트(Y), 상기 아이디(ID)의 해시값(I) 및 상기 개인키(SID)를 포함하는 문자열을 제2 랜덤 해시함수(h2)로 해싱하여 세션키(sk)를 생성하는 단계; 및
상기 서버에서, 상기 제1 비밀키 엘리먼트(X), 상기 제2 비밀키 엘리먼트(Y), 상기 아이디(ID)의 해시값(I), 상기 세션키(sk), 상기 복호화된 패스워드 및 제3 랜덤 해시함수(h3)를 이용하여 상기 제1검증값을 검증하는 단계를 더 포함하는, 인증 방법.
18. The method of claim 17,
After performing the step of authenticating the terminal,
Receiving, at the server, a first verification value from the terminal;
The hash value (I) of the common hash value (e), the first secret key element (X), the server side random number (y), the second secret key element (Y) ) And the private key (S ID ) to a second random hash function (h 2 ) to generate a session key (sk); And
The hash value (I) of the first secret key element (X), the second secret key element (Y), the ID (ID), the session key (sk), the decrypted password, using a random hash function (h 3) further comprises the step of verifying said first verification value, the authentication method.
청구항 18에 있어서,
상기 세션키는, 다음의 수학식
sk = h2(X, (Y,I), Xy + sID *e)
에 의하여 계산되는, 인증 방법.
19. The method of claim 18,
The session key is expressed by the following equation
sk = h 2 (X, ( Y, I), X y + sID * e)
, ≪ / RTI >
청구항 18에 있어서,
상기 서버는, 상기 제1 비밀키 엘리먼트(X)와 함께 상기 아이디를 수신하거나, 또는 상기 제1검증값과 함께 상기 아이디를 수신하는, 인증 방법.
19. The method of claim 18,
Wherein the server receives the ID together with the first secret key element (X), or receives the ID together with the first verification value.
청구항 18에 있어서,
상기 제1검증값을 검증하는 단계의 수행 이후,
상기 서버에서, 상기 제1 비밀키 엘리먼트(X), 상기 제2 비밀키 엘리먼트(Y), 상기 아이디(ID)의 해시값(I), 상기 세션키(sk) 및 상기 패스워드를 포함하는 제2문자열을 제4 랜덤 해시함수(h4)로 해싱하여 제2검증값을 생성하는 단계; 및
상기 서버에서, 상기 제2검증값을 상기 단말로 송신하는 단계를 더 포함하는, 인증 방법.
19. The method of claim 18,
After performing the step of verifying the first verification value,
Wherein the hash value (I) of the first secret key element (X), the second secret key element (Y), the ID (ID), the session key (sk) a step of hashing the string to the fourth random hash function (h 4) generating a second verification value; And
And in the server, transmitting the second verification value to the terminal.
청구항 11에 있어서,
상기 단말을 인증하는 단계는,
상기 서버에서, 하드웨어 보안 모듈을 이용하여 복호화된 상기 패스워드의 MAC 값을 생성하는 단계; 및
생성된 상기 MAC 값을 기 저장된 값과의 일치 여부를 판단하는 단계를 더 포함하는, 인증 방법.
The method of claim 11,
The step of authenticating the terminal may include:
Generating, at the server, a MAC value of the decrypted password using a hardware security module; And
Further comprising determining whether the generated MAC value matches a pre-stored value.
청구항 1 내지 청구항 22 중 어느 한 항에 기재된 방법을 컴퓨터상에서 수행하기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록매체.
A computer-readable recording medium recording a program for performing the method according to any one of claims 1 to 22 on a computer.
하나 이상의 프로세서;
메모리; 및
하나 이상의 프로그램을 포함하는 장치로서,
상기 하나 이상의 프로그램은 상기 메모리에 저장되고 상기 하나 이상의 프로세서에 의해 실행되도록 구성되며,
상기 프로그램은,
단말 사용자의 아이디(ID) 및 서버와 교환한 키 생성 인자를 이용하여 아이디 기반의 비밀키(K)를 생성하는 단계;
생성된 상기 비밀키(K)를 대칭키로 하는 대칭키 암호화 알고리즘을 이용하여 상기 사용자의 패스워드를 암호화하고, 암호화된 상기 패스워드를 상기 서버로 송신함으로써 상기 단말 사용자의 인증을 요청하는 단계; 및
상기 서버로부터 상기 인증 요청에 대한 응답을 수신하는 단계를 실행하기 위한 명령어들을 포함하는 장치.
One or more processors;
Memory; And
An apparatus comprising one or more programs,
Wherein the one or more programs are stored in the memory and are configured to be executed by the one or more processors,
The program includes:
Generating an identity-based secret key (K) using an ID of a terminal user and a key generation factor exchanged with a server;
Encrypting the password of the user using a symmetric key encryption algorithm using the generated secret key K as a symmetric key and requesting authentication of the terminal user by transmitting the encrypted password to the server; And
And receiving a response to the authentication request from the server.
하나 이상의 프로세서;
메모리; 및
하나 이상의 프로그램을 포함하는 장치로서,
상기 하나 이상의 프로그램은 상기 메모리에 저장되고 상기 하나 이상의 프로세서에 의해 실행되도록 구성되며,
상기 프로그램은,
단말 사용자의 아이디(ID) 및 상기 단말과 교환한 키 생성 인자를 이용하여 아이디 기반의 비밀키(K)를 생성하는 단계;
상기 단말로부터 상기 사용자의 암호화된 패스워드를 수신하는 단계; 및
생성된 상기 비밀키(K)를 대칭키로 하는 대칭키 복호화 알고리즘을 이용하여 상기 암호화된 패스워드를 복호화하고, 복호화된 상기 패스워드를 이용하여 상기 단말 사용자를 인증하는 단계를 실행하기 위한 명령어들을 포함하는 장치.
One or more processors;
Memory; And
An apparatus comprising one or more programs,
Wherein the one or more programs are stored in the memory and are configured to be executed by the one or more processors,
The program includes:
Generating an identity-based secret key (K) using an ID of a terminal user and a key generation factor exchanged with the terminal;
Receiving an encrypted password of the user from the terminal; And
Decrypting the encrypted password using a symmetric key decryption algorithm using the generated secret key K as a symmetric key, and authenticating the terminal user using the decrypted password. .
KR20130059249A 2012-10-31 2013-05-24 Method for password based authentication and apparatus executing the method KR101493214B1 (en)

Priority Applications (3)

Application Number Priority Date Filing Date Title
PCT/KR2013/008152 WO2014069783A1 (en) 2012-10-31 2013-09-10 Password-based authentication method, and apparatus for performing same
CN201310473362.8A CN103795534B (en) 2012-10-31 2013-10-11 Authentication method and apparatus for carrying out the method based on password
US14/067,232 US9515825B2 (en) 2012-10-31 2013-10-30 Method for password based authentication and apparatus executing the method

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR1020120121951 2012-10-31
KR20120121951 2012-10-31

Publications (2)

Publication Number Publication Date
KR20140057134A true KR20140057134A (en) 2014-05-12
KR101493214B1 KR101493214B1 (en) 2015-02-24

Family

ID=50888154

Family Applications (1)

Application Number Title Priority Date Filing Date
KR20130059249A KR101493214B1 (en) 2012-10-31 2013-05-24 Method for password based authentication and apparatus executing the method

Country Status (1)

Country Link
KR (1) KR101493214B1 (en)

Cited By (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101599994B1 (en) * 2014-11-12 2016-03-04 고려대학교 산학협력단 Method and system for identity-based key exchange
KR20160029640A (en) * 2014-09-05 2016-03-15 삼성에스디에스 주식회사 System and method for key exchange based on authtication information
WO2016153123A1 (en) * 2015-03-24 2016-09-29 손태식 System for performing authentication using mac address and method therefor
KR20170074195A (en) * 2015-12-21 2017-06-29 고려대학교 산학협력단 Forward secure non-interactive key exchange method from indistinguishability obfuscation
KR20170129549A (en) * 2016-05-17 2017-11-27 한국전자통신연구원 Method and Apparatus for Authenticated Key Exchange Using Password and Identity-based Signature
KR20180046720A (en) * 2016-10-28 2018-05-09 삼성에스디에스 주식회사 Apparatus and method for generating key, apparatus and method for encryption
US10447669B2 (en) 2015-05-06 2019-10-15 Samsung Sds Co., Ltd. System and method for key exchange based on authentication information
KR102109771B1 (en) * 2018-12-05 2020-06-01 영남대학교 산학협력단 METHOD FOR SECURITY MOBILITY ADAPTABLE ROUTING FOR CRITICAL IoT AND RECORDING MEDIUM FOR PERFORMING THE METHOD
CN114036565A (en) * 2021-11-19 2022-02-11 上海勃池信息技术有限公司 Private information retrieval system and private information retrieval method
WO2022255757A1 (en) * 2021-06-01 2022-12-08 주식회사 진앤현시큐리티 Security certification system and method using otid
CN117395474A (en) * 2023-12-12 2024-01-12 法序(厦门)信息科技有限公司 Locally stored tamper-resistant video evidence obtaining and storing method and system

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102264720B1 (en) * 2021-03-03 2021-06-14 (주)진앤현시큐리티 Method of User Authentication executed in authentication server, management server and user terminal

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100315387B1 (en) * 1999-08-02 2001-11-26 윤금 Private Key, Certificate Administration System and Method Thereof
KR100789354B1 (en) 2001-04-12 2007-12-28 (주)크립토텔레콤 Method and apparatus for mataining data security on network camera, home gateway and home automation
KR100883648B1 (en) 2002-03-16 2009-02-18 삼성전자주식회사 Method of access control in wireless environment and recording medium in which the method is recorded
KR20070035342A (en) * 2005-09-27 2007-03-30 한국정보보호진흥원 Method for mutual authentication based on the user's password

Cited By (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20160029640A (en) * 2014-09-05 2016-03-15 삼성에스디에스 주식회사 System and method for key exchange based on authtication information
KR101599994B1 (en) * 2014-11-12 2016-03-04 고려대학교 산학협력단 Method and system for identity-based key exchange
WO2016153123A1 (en) * 2015-03-24 2016-09-29 손태식 System for performing authentication using mac address and method therefor
US10447669B2 (en) 2015-05-06 2019-10-15 Samsung Sds Co., Ltd. System and method for key exchange based on authentication information
KR20170074195A (en) * 2015-12-21 2017-06-29 고려대학교 산학협력단 Forward secure non-interactive key exchange method from indistinguishability obfuscation
US10263969B2 (en) 2016-05-17 2019-04-16 Electronics And Telecommunications Research Institute Method and apparatus for authenticated key exchange using password and identity-based signature
KR20170129549A (en) * 2016-05-17 2017-11-27 한국전자통신연구원 Method and Apparatus for Authenticated Key Exchange Using Password and Identity-based Signature
KR20180046720A (en) * 2016-10-28 2018-05-09 삼성에스디에스 주식회사 Apparatus and method for generating key, apparatus and method for encryption
KR102109771B1 (en) * 2018-12-05 2020-06-01 영남대학교 산학협력단 METHOD FOR SECURITY MOBILITY ADAPTABLE ROUTING FOR CRITICAL IoT AND RECORDING MEDIUM FOR PERFORMING THE METHOD
WO2022255757A1 (en) * 2021-06-01 2022-12-08 주식회사 진앤현시큐리티 Security certification system and method using otid
CN114036565A (en) * 2021-11-19 2022-02-11 上海勃池信息技术有限公司 Private information retrieval system and private information retrieval method
CN114036565B (en) * 2021-11-19 2024-03-08 上海勃池信息技术有限公司 Private information retrieval system and private information retrieval method
CN117395474A (en) * 2023-12-12 2024-01-12 法序(厦门)信息科技有限公司 Locally stored tamper-resistant video evidence obtaining and storing method and system
CN117395474B (en) * 2023-12-12 2024-02-27 法序(厦门)信息科技有限公司 Locally stored tamper-resistant video evidence obtaining and storing method and system

Also Published As

Publication number Publication date
KR101493214B1 (en) 2015-02-24

Similar Documents

Publication Publication Date Title
KR101493214B1 (en) Method for password based authentication and apparatus executing the method
US9515825B2 (en) Method for password based authentication and apparatus executing the method
US10447669B2 (en) System and method for key exchange based on authentication information
KR101685810B1 (en) System and method for key exchange based on authtication information
CN108111301B (en) Method and system for realizing SSH protocol based on post-quantum key exchange
KR101493212B1 (en) Method and system for id-based encryption and decryption
CN109922077B (en) Identity authentication method and system based on block chain
CN103124269B (en) Based on the Bidirectional identity authentication method of dynamic password and biological characteristic under cloud environment
US10027654B2 (en) Method for authenticating a client device to a server using a secret element
US10015159B2 (en) Terminal authentication system, server device, and terminal authentication method
US9065637B2 (en) System and method for securing private keys issued from distributed private key generator (D-PKG) nodes
US20190052622A1 (en) Device and method certificate generation
WO2019216950A1 (en) Password based threshold token generation
WO2017147503A1 (en) Techniques for confidential delivery of random data over a network
KR20170035665A (en) Apparatus and method for exchanging encryption key
US20230188325A1 (en) Computer-implemented system and method for highly secure, high speed encryption and transmission of data
US11528127B2 (en) Computer-implemented system and method for highly secure, high speed encryption and transmission of data
EP3232603B1 (en) Key-exchange method, key-exchange system, terminal device, and program
CN106230840B (en) A kind of command identifying method of high security
Shin et al. Security analysis of password-authenticated key retrieval
CN116388995A (en) Lightweight smart grid authentication method based on PUF
CN112468983A (en) Low-power-consumption access authentication method for intelligent equipment of power internet of things and auxiliary device thereof
KR100917564B1 (en) Method for ID-based ticket authentication
Yang et al. A password-authentication scheme based on ciphertext random sampling transmission
CN117749413A (en) Secure communication method and secure communication system based on TLCP (transport layer control protocol) business-to-business protocol

Legal Events

Date Code Title Description
A201 Request for examination
E701 Decision to grant or registration of patent right
LAPS Lapse due to unpaid annual fee