KR100860573B1 - Method for User Authentication - Google Patents

Method for User Authentication Download PDF

Info

Publication number
KR100860573B1
KR100860573B1 KR1020060120786A KR20060120786A KR100860573B1 KR 100860573 B1 KR100860573 B1 KR 100860573B1 KR 1020060120786 A KR1020060120786 A KR 1020060120786A KR 20060120786 A KR20060120786 A KR 20060120786A KR 100860573 B1 KR100860573 B1 KR 100860573B1
Authority
KR
South Korea
Prior art keywords
random number
hash function
identification number
user
function value
Prior art date
Application number
KR1020060120786A
Other languages
Korean (ko)
Other versions
KR20080050040A (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 KR1020060120786A priority Critical patent/KR100860573B1/en
Publication of KR20080050040A publication Critical patent/KR20080050040A/en
Application granted granted Critical
Publication of KR100860573B1 publication Critical patent/KR100860573B1/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/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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/30Authentication, i.e. establishing the identity or authorisation of security principals
    • G06F21/31User authentication

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Hardware Design (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Storage Device Security (AREA)

Abstract

본 발명은 효율적이면서도 신뢰할만한 인증 프로토콜을 제시함으로써 디지털 컨텐츠를 제공하는 웹서비스 산업에서 사용자와 서버간의 신뢰도를 높일 수 있는 사용자 인증 방법을 제공하기 위한 것으로서, 사용자 자신의 패스워드를 해쉬(hash)하여 제 1 해쉬함수 값을 생성하는 생성단계와, 상기 제 1 해쉬함수 값을 키(key)로 하여 제 1 식별번호 및 제 1 난수를 비밀키 알고리즘으로 암호화하여 제 1 암호문을 생성하고 생성된 제 1 암호문과 상기 제 1 식별번호를 서버로 전송하는 전송단계와, 입력된 제 1 식별번호를 이용하여 기 저장된 패스워드 파일에서 해당하는 제 2 해쉬함수 값을 추출하는 추출단계와, 상기 제 2 해쉬함수 값을 키로 입력된 제 1 암호문을 복호화하여 제 2 식별번호 및 제 2 난수로 복원하는 복원단계와, 상기 복원된 정보를 통해 해당 사용자 여부를 판단하여 인증세션의 수행을 제어하는 제어단계를 포함하여 이루어지는데 있다.The present invention is to provide a user authentication method that can increase the trust between the user and the server in the web service industry that provides digital content by presenting an efficient and reliable authentication protocol, by hashing the user's own password 1 generating a hash function value, generating a first cipher text by encrypting a first identification number and a first random number with a secret key algorithm using the first hash function value as a key, and generating the first cipher text. And a transmission step of transmitting the first identification number to a server, an extraction step of extracting a corresponding second hash function value from a previously stored password file using the inputted first identification number, and the second hash function value. A restoring step of decrypting the first cipher text inputted with the key and restoring the second cipher text with the second identification number and the second random number; And determining a user to control whether to perform the authentication session.

해쉬함수, 신분위장 공격(impersonation attack), 스니핑(sniffing), 비밀키 알고리즘, 공개키 기반 알고리즘, 식별번호, 난수 Hash Function, Impersonation Attack, Sniffing, Secret Key Algorithm, Public Key Based Algorithm, Identification Number, Random Number

Description

사용자 인증 방법{Method for User Authentication}User Authentication Method {Method for User Authentication}

도 1 은 본 발명의 제 1 실시예에 따른 서버의 사용자 인증을 설명하기 위한 블록도1 is a block diagram illustrating user authentication of a server according to a first embodiment of the present invention.

도 2 는 본 발명의 제 1 실시예에 따른 서버의 사용자 인증을 상세히 설명하기 위한 흐름도2 is a flowchart for explaining user authentication of a server according to a first embodiment of the present invention in detail.

도 3 은 본 발명의 제 2 실시예에 따른 서버의 사용자 인증을 설명하기 위한 블록도3 is a block diagram illustrating user authentication of a server according to a second embodiment of the present invention.

도 4 는 본 발명의 제 2 실시예에 따른 서버의 사용자 인증을 상세히 설명하기 위한 흐름도4 is a flowchart for explaining user authentication of a server according to a second embodiment of the present invention in detail.

도 5 은 본 발명의 제 3 실시예에 따른 서버와 사용자 상호간의 인증을 설명하기 위한 블록도5 is a block diagram illustrating authentication between a server and a user according to a third embodiment of the present invention.

도 6 은 본 발명의 제 3 실시예에 따른 서버와 사용자 상호간의 인증을 상세히 설명하기 위한 흐름도6 is a flowchart for explaining in detail authentication between a server and a user according to a third embodiment of the present invention.

*도면의 주요부분에 대한 부호의 설명* Explanation of symbols for main parts of the drawings

10 : 사용자 컴퓨터 20 : 서버 컴퓨터10: user computer 20: server computer

본 발명은 사용자 인증 방법에 관한 것으로, 특히 신분위장 공격(impersonation attack)을 막을 수 있는 서버의 사용자 인증 또는 서버와 사용자 상호간의 인증 방법에 관한 것이다.TECHNICAL FIELD The present invention relates to a user authentication method, and more particularly, to a user authentication of a server or an authentication method between a server and a user, which can prevent an identitypersonal attack.

오늘날 세계 각국의 통신망이 상호 연결되어 인터넷을 통한 정보의 교환이 일반화되어 정보의 검색, 저장, 추출이 갈수록 활발해지고 있는 반면에, 특정 서버를 사용하는 사용자를 인식하는 기법은 초창기의 방법이 그대로 사용되고 있어서 개인정보의 누출, 전산망 해킹(hacking) 등 그 역기능 현상 또한 심각한 사회문제로 대두되고 있다. 그 동안 국내에서 발생한 대표적인 해킹 행위는 주로 단순 침입, 사용자 식별번호(ID) 도용, 자료 절취, 자료 변조 및 파괴 등이며 외국의 해킹 실태는 국내에 비하여 매우 심각한 실정이다.While communication networks around the world are interconnected and the exchange of information through the Internet is becoming more common, the search, storage, and extraction of information is becoming more and more active.However, the technique of recognizing users who use a specific server is still used. As such, dysfunction such as personal information leakage, computer network hacking, etc. is also a serious social problem. Representative hacking behaviors that occurred in Korea are mainly simple intrusions, ID theft, data cutting, data tampering and destruction, and the status of foreign hacking is more serious than that of Korea.

기존의 웹서버에 대한 일반적인 사용자 인증 기법은 사용자가 서버측에 자신의 식별번호(ID)와 패스워드(password)를 제공하면, 서버측은 모든 사용자의 패스워드에 대한 해쉬(hash)함수를 저장하고 있어서 수신한 패스워드의 해쉬값을 취하여, 두 값을 비교한 후 해당 사용자가 정당한 사용자인지 확인한다. 참고로 해쉬함수는 일 방향으로 계산이 빠르고 용이하게 되어지지만, 역방향으로는 계산이 이론적으로 불가능한 함수를 말한다. 즉, 해쉬함수 H(ㆍ)가 입력값 x를 입력으로 받아 출력값 y를 생성하게 되는 것은 빠르고 용이하지만, 출력값 y로부터 입력값 x를 계산해 내는 것은 이론적으로 매우 어려운 함수이다.In general, the user authentication scheme for the existing web server is that if the user provides his ID and password to the server side, the server stores a hash function for all user's passwords. Take a hash of one password, compare the two, and verify that the user is a legitimate user. For reference, a hash function is a function that can be calculated quickly and easily in one direction, but cannot be calculated in the reverse direction. In other words, it is fast and easy for the hash function H (·) to receive the input value x and generate the output value y. However, calculating the input value x from the output value y is a theoretically very difficult function.

따라서 사용자 인증 기술 중에 하나인 S/KEY의 일회용 패스워드는 이러한 성 질을 가진 단방향 해쉬함수(one-way hash function)를 여러 번 적용함으로써 통신로상의 도청이나 재시도 공격으로부터 안전한 사용자 인증기능을 제공하는 기술이다.Therefore, the one-time password of S / KEY, one of the user authentication technologies, applies a one-way hash function with this property several times to provide a user authentication function that is safe from eavesdropping or retry attacks on the communication channel. Technology.

하지만, S/KEY 일회용 패스워드 방식의 취약점은 모든 정보가 평문(plaintext)으로 전파된다는 것이다. 이것은 도용자가 스니핑(sniffing)에 의해서 도전(challenge)값과 응답(response)값을 쉽게 알 수 있다는 것을 위미하며, 이 정보들을 가지고 사전의 단어들에 적용한 도전값의 결과와 계속해서 비교하면, 어느 순간 일치하는 사용자의 패스워드를 알아낼 수 있게 된다는 문제점이 있다. 이것은 현재 S/KEY 소프트웨어가 클라이언트나 서버 어디서도 사용자 패스워드 선택 시에 보안성 검사를 하지 않는다는 중요한 결점을 가지고 있다.The weakness of the S / KEY one-time password method, however, is that all information is propagated to plaintext. This means that a hijacker can easily know the challenge and response values by sniffing, and with this information he continues to compare the results of the challenge values applied to the words in the dictionary. There is a problem that it is possible to find out the password of the matching user at the moment. This has the major drawback that current S / KEY software does not do security checks on user password selection either on the client or the server.

또한, 사용자가 사용하는 해쉬함수의 횟수가 서버로부터 사용자 측으로 전송되기 때문에, 도용자가 서버로 위장하여 공격(impersonation attack)할 수 있다는 치명적인 문제점이 있다. 이 방법은 가짜 게이트웨이(gateway)를 설정함으로 수행될 수 있다.In addition, since the number of hash functions used by the user is transmitted from the server to the user side, there is a fatal problem that the hijacker may impersonate the server and attack. This method can be performed by setting up a fake gateway.

이에 최근 네트워크를 감청하거나 식별번호(ID)와 패스워드를 도용하는 해킹 방법이 많이 사용되고 있으며, 또한 국내에서 발생한 해킹 사례의 많은 부분들이 타인의 식별번호(ID)와 패스워드를 도용하거나 또는 이를 이용하여 해킹하는 사례가 주류를 이루고 있다. 1996년 9월의 경우에 인터넷 서비스망에 홈뱅킹 이용자의 패스워드와 식별번호(ID)를 가로챌 수 있는 변형 원격접속 프로그램을 설치하여 계좌이체를 시도하다 검거된 사례도 발생하였다.Recently, many hacking methods have been used to intercept networks or steal identification numbers (IDs) and passwords, and many of the hacking cases in Korea have been hacked by using others' IDs and passwords or using them. This is the mainstream. In September 1996, an attempt was made to transfer money by installing a modified remote access program to intercept a home banking user's password and identification number on the Internet service network.

따라서 이의 대안으로서 기존발명(국내공개특허 제1998-76101호)에서 기재하고 있는 것과 같이, 패스워드를 전송하지 않고 해당 패스워드에 대한 해쉬함수를 식별번호(ID)와 함께 전송하는 방법이 사용될 수 있다. 다시 말하면, 사용자로부터 식별번호(ID)와 패스워드를 입력받아, 패스워드에 대한 해쉬값을 서버측에 전달함으로써, 패스워드가 네트워크상에 노출되는 것을 방지하는 것이다. Therefore, as an alternative to this, as described in the present invention (Korean Patent Publication No. 1998-76101), a method of transmitting a hash function for a corresponding password together with an identification number (ID) without transmitting a password may be used. In other words, by receiving the identification number (ID) and the password from the user, and passing the hash value for the password to the server side, the password is prevented from being exposed on the network.

즉, 스니핑(sniffing)을 성공한 도용자는 획득한 것이 패스워드가 아닌 해쉬값을 가지고 있기 때문에 사용자를 가장하기가 어렵다. 왜냐하면, 웹페이지의 입력부분이 식별번호(ID)와 패스워드이고, 웹페이지 내부에서 입력으로 들어온 패스워드를 해쉬(hash)하기 때문에 도용자가 획득한 패스워드에 대한 해쉬값은 입력값으로 사용될 수 없기 때문이다.That is, a hijacker who successfully sniffs is difficult to impersonate a user because the acquired one has a hash value rather than a password. This is because the input part of the web page is an identification number (ID) and a password, and because a hash value of the password entered as an input from within the web page is not used as the input value. .

그러나 도용자가 스니핑(sniffing) 기술뿐만 아니라, 송수신하는 패킷의 내용을 제어할 수 있는 능력까지 가지고 있는 경우에는 획득한 해쉬값을 해당 페이지로부터 계산된 것처럼 가장하여 서버측에 식별번호(ID)와 해쉬값을 전송한다면, 합당한 사용자인 것처럼 가장할 수 있으므로, 쉽게 신분위장 공격(impersonation attack)을 성공할 수 있다.However, if a hijacker has not only sniffing techniques but also the ability to control the contents of the packets being sent and received, the ID and hashes are stored on the server side by impersonating the obtained hash value as calculated from the page. If you send a value, it can be pretended to be a legitimate user, and can easily succeed in an identityperson attack.

위와 같이 도용자가 스니핑(sniffing) 기술뿐만 아니라, 송수신하는 패킷의 내용을 제어할 수 있는 능력까지 가지고 있는 경우에 도용자의 신분위장 공격(impersonation attack)을 차단하기 위한 방법으로 공개키 기반구조를 사용할 수 있다.As described above, if a hijacker has not only sniffing techniques but also the ability to control the contents of packets sent and received, the public key infrastructure can be used as a method to block the hijacker's impersonation attack. have.

공개키 기반 구조는 암호문을 생성하는 키와 복호하는 키가 서로 달라, 암호 하는 키는 공개하고 복호하는 키는 비공개한다. 따라서 송신자는 암호문을 생성할 때 공개키를 사용하고, 수신자는 비공개키를 사용하여 암호문을 복호한다. 여기서 사용되는 암호 알고리즘으로는 RSA, Elgamal, Rabin 공개키 암호 알고리즘 등이 존재한다.In the public key infrastructure, the key for generating the ciphertext and the key for decrypting are different from each other, so that the key to encrypt is public and the key to decrypt is private. Therefore, the sender uses the public key when generating the ciphertext, and the receiver decrypts the ciphertext using the private key. The cryptographic algorithms used here include RSA, Elgamal, and Rabin public key cryptographic algorithms.

이처럼 공개키 기반 구조에서는 식별번호(ID)와 패스워드를 서버 측의 공개키로 암호화하여 보내면 되므로, 위와 같은 문제들을 해결할 수 있다. 그러나 공개키 기반의 암호 알고리즘들은 비밀키 기반의 암호 알고리즘에 비해서 처리속도가 매우 느리다는 단점을 가지고 있다.As described above, in the public key infrastructure, the identification number and the password may be encrypted and sent with the public key of the server side, thereby solving the above problems. However, public key-based cryptographic algorithms have a disadvantage in that processing speed is very slow compared to secret key-based cryptographic algorithms.

따라서 본 발명은 상기와 같은 문제점을 해결하기 위해 안출한 것으로서, 효율적이면서도 신뢰할만한 인증 프로토콜을 제시함으로써 디지털 컨텐츠를 제공하는 웹서비스 산업에서 사용자와 서버간의 신뢰도를 높일 수 있는 사용자 인증 방법을 제공하는데 그 목적이 있다.Accordingly, the present invention has been made to solve the above problems, by providing an efficient and reliable authentication protocol to provide a user authentication method that can increase the reliability between the user and server in the web services industry that provides digital content. There is a purpose.

본 발명의 다른 목적은 도용자가 스니핑(sniffing) 기술뿐만 아니라, 송수신하는 패킷의 내용을 제어할 수 있는 능력까지 가지고 있는 경우에도 도용자의 신분위장 공격(impersonation attack)을 막는 안전한 사용자 인증 방법을 제공하는데 있다.Another object of the present invention is to provide a secure user authentication method that prevents an identityperson attack of a hijacker even if the hijacker has not only sniffing techniques but also the ability to control the contents of packets transmitted and received. have.

본 발명의 또 다른 목적은 동기 및 비동기 시스템에서 사용자가 인증을 시도할 때 서버가 한 번의 해쉬(hash) 연산만으로 사용자를 인증하는 간단한 방법을 갖는 사용자 인증 방법을 제공하는데 있다. It is still another object of the present invention to provide a user authentication method having a simple method in which a server authenticates a user using only one hash operation when a user attempts to authenticate in a synchronous and asynchronous system.

본 발명의 또 다른 목적은 암복호 알고리즘으로 비밀키 알고리즘을 채택함으로써, 공개키 기반 알고리즘에 비해 상당히 효율적인 사용자 인증 방법을 제공하는데 있다.It is still another object of the present invention to provide a user authentication method that is considerably more efficient than a public key based algorithm by adopting a secret key algorithm as an encryption / decryption algorithm.

상기와 같은 목적을 달성하기 위한 본 발명에 따른 사용자 인증 방법의 특징은 사용자 자신의 패스워드를 해쉬(hash)하여 제 1 해쉬함수 값을 생성하는 생성단계와, 상기 제 1 해쉬함수 값을 키(key)로 하여 제 1 식별번호 및 제 1 난수를 비밀키 알고리즘으로 암호화하여 제 1 암호문을 생성하고 생성된 제 1 암호문과 상기 제 1 식별번호를 서버로 전송하는 전송단계와, 입력된 제 1 식별번호를 이용하여 기 저장된 패스워드 파일에서 해당하는 제 2 해쉬함수 값을 추출하는 추출단계와, 상기 제 2 해쉬함수 값을 키로 입력된 제 1 암호문을 복호화하여 제 2 식별번호 및 제 2 난수로 복원하는 복원단계와, 상기 복원된 정보를 통해 해당 사용자 여부를 판단하여 인증세션의 수행을 제어하는 제어단계를 포함하여 이루어지는데 있다.A feature of the user authentication method according to the present invention for achieving the above object is a generation step of hashing the user's own password to generate a first hash function value, and key to the first hash function value (key) Transmitting the first identification number and the first random number using a secret key algorithm to generate a first ciphertext, and transmitting the generated first ciphertext and the first identification number to a server; An extraction step of extracting a corresponding second hash function value from a previously stored password file, and restoring the second hash function value to a second identification number and a second random number by decrypting the first cipher text inputted as a key; And a control step of controlling whether to perform an authentication session by determining whether the corresponding user is based on the restored information.

바람직하게 상기 제어단계는 상기 복원된 정보에 유효기간 정보가 포함되어 현재시각이 상기 유효기간 내에 포함되는지의 여부를 판단하는 단계와, 상기 판단결과 유효기간 내에 현재시각이 포함되지 않으면 인증 세션을 중단하고, 유효기간 내에 현재시각이 포함되면 인증 세션을 수행하는 단계를 포함하여 이루어지는 것을 특징으로 한다.Preferably, the controlling step includes determining whether the current time is included in the valid period by including the valid period information in the restored information, and stopping the authentication session when the current time is not included in the valid period. And, if the current time is included within the validity period, characterized in that it comprises the step of performing an authentication session.

바람직하게 상기 제어단계는 서버로부터 입력된 상기 제 1 난수를 복원된 제 2 난수와 비교하는 단계와, 상기 비교결과, 제 1 난수와 제 2 난수가 서로 다르면 인증 세션을 중단하고, 동일하면 인증 세션을 계속 수행하는 단계를 포함하여 이루어지는 것을 특징으로 한다.Preferably, the controlling step compares the first random number inputted from the server with the restored second random number, and as a result of the comparison, stops the authentication session if the first random number and the second random number are different; It characterized in that it comprises a step of continuing to perform.

바람직하게 상기 사용자 인증 방법은 제 3 난수를 발생시켜 제 3 식별번호와 함께 서버로 전송하는 단계와, 입력된 제 3 식별번호를 이용하여 기 저장된 패스워드 파일에서 해당하는 제 3 해쉬함수 값을 추출하는 단계와, 상기 제 3 해쉬함수 값을 키(key)로 제 3 식별번호, 제 3 난수를 비밀키 알고리즘으로 암호화하여 제 2 암호문을 생성하고 사용자에게 전송하는 단계와, 사용자 자신의 패스워드를 해쉬(hash)하여 제 4 해쉬함수 값을 생성하고, 상기 제 4 해쉬함수 값을 키로 입력된 제 2 암호문을 복호하여 제 4 식별번호 및 제 4 난수 로 복원하는 단계와, 상기 제 4 식별번호 및 제 4 난수를 제 3 식별번호 및 제 3 난수와 비교하는 단계와, 상기 비교결과, 제 4 식별번호 및 제 4 난수와 제 3 식별번호 및 제 3 난수가 서로 다르면 인증세션을 중단하고, 동일하면 인증세션을 수행하는 단계를 더 포함하여 이루어지는 것을 특징으로 한다.Preferably, the user authentication method generates a third random number and transmits it to the server along with the third identification number, and extracts a corresponding third hash function value from a previously stored password file using the inputted third identification number. And generating a second cipher text by encrypting the third hash function value with a key as a key and a third identification number using a secret key algorithm, and transmitting the second cipher text to the user; generating a fourth hash function value, decoding the second cipher text inputted as a key, and restoring the fourth hash function value to a fourth identification number and a fourth random number; Comparing the random number with the third identification number and the third random number; if the fourth identification number and the fourth random number and the third identification number and the third random number are different from each other, stop the authentication session; Characterized in that it further comprises the step of performing the session.

상기와 같은 목적을 달성하기 위한 본 발명에 따른 사용자 인증 방법의 다른 특징은 자신의 패스워드를 해쉬(hash)하여 제 1 해쉬함수 값을 생성하고, 임의의 제 1 난수(random number)를 발생하는 단계와, 상기 제 1 해쉬함수 값을 키(key)로 식별번호, 난수 및 현재시각 정보를 비밀키 알고리즘으로 암호화하여 암호문을 생성하고 생성된 암호문과 상기 식별번호를 서버로 전송하는 단계와, 입력된 식별번호를 이용하여 기 저장된 패스워드 파일에서 해당하는 제 2 해쉬함수 값을 추출하는 단계와, 상기 제 2 해쉬함수 값을 키(key)로 입력된 암호문을 복호화하여 식별번호, 난수 및 현재시각 정보를 복원하는 단계와, 복원된 정보 중 현재시각 정보 값을 통해 현재시각이 유효기간 내에 포함되는 지의 여부를 판단하는 단계와, 상기 판단 결과, 유효기간 내에 포함되지 않으면 인증 세션을 중단하고 유효기간 내에 포함되면 인증 세션을 수행하는 단계를 포함하여 이루어지는데 있다.Another feature of the user authentication method according to the present invention for achieving the above object is the step of hashing its own password to generate a first hash function value, generating an arbitrary first random number (random number) Generating a cipher text by encrypting the first hash function value with a key using an identification number, a random number, and current time information using a secret key algorithm, and transmitting the generated cipher text and the identification number to a server; Extracting a corresponding second hash function value from a previously stored password file using an identification number, and decrypting an encryption text inputted with the second hash function value as a key to obtain an identification number, a random number, and current time information. Restoring; determining whether the current time is within the validity period based on the current time information value of the restored information; and as a result of the determination, the current time is included within the validity period. Otherwise, the authentication session is terminated and the authentication session is performed if included within the validity period.

상기와 같은 목적을 달성하기 위한 본 발명에 따른 사용자 인증 방법의 또 다른 특징은 자신의 패스워드를 해쉬(hash)하여 제 1 해쉬함수 값을 생성하고, 서버로부터 임의의 제 1 난수를 입력받는 단계와, 상기 제 1 해쉬함수 값을 키(key)로 제 1 식별번호 및 입력된 제 1 난수를 비밀키 알고리즘으로 암호화하여 암호문을 생성하고 생성된 암호문과 제 1 식별번호를 서버로 전송하는 단계와, 입력된 제 1 식별번호를 이용하여 기 저장된 패스워드 파일에서 해당하는 제 2 해쉬함수 값을 추출하는 단계와, 상기 제 2 해쉬함수 값을 키(key)로 입력된 암호문을 복호화하여 제 2 식별번호(ID) 및 제 2 난수로 복원하는 단계와, 상기 복원된 제 2 난수와 상기 제 1 난수를 비교하는 단계와, 상기 비교결과, 제 1 난수와 제 2 난수가 서로 다르면 인증 세션을 중단하고, 동일하면 인증 세션을 계속 수행하는 단계를 포함하여 이루어지는데 있다.Another feature of the user authentication method according to the present invention for achieving the above object is the step of hashing its own password to generate a first hash function value, and receives an arbitrary first random number from the server; Encrypting the first hash function value with a key and a first identification number and the inputted first random number using a secret key algorithm to generate a cipher text, and transmitting the generated cipher text and the first identification number to a server; Extracting a corresponding second hash function value from a previously stored password file using the inputted first identification number, and decrypting a cipher text inputted with the second hash function value as a key to generate a second identification number ( ID) and the second random number, and comparing the restored second random number with the first random number; if the first random number and the second random number are different from each other, stop the authentication session and Ha If the authentication session is to continue.

상기와 같은 목적을 달성하기 위한 본 발명에 따른 사용자 인증 방법의 또 다른 특징은 제 1 난수를 발생시켜 식별번호와 함께 서버로 전송하는 단계와, 입력된 식별번호를 이용하여 기 저장된 패스워드 파일에서 해당하는 제 1 해쉬함수 값을 추출하고, 제 2 난수를 발생하는 단계와, 상기 제 1 해쉬함수 값을 키(key)로 제 1 식별번호, 제 1 난수 및 제 2 난수를 비밀키 알고리즘으로 암호화하여 제 1 암호문을 생성하고 사용자에게 전송하는 단계와, 사용자 자신의 패스워드를 해쉬(hash)하여 제 2 해쉬함수 값을 생성하고, 상기 제 2 해쉬함수 값을 키로 입력된 제 1 암호문을 복호하여 제 2 식별번호, 제 3 난수 및 제 4 난수를 복원하는 단계와, 상기 제 2 식별번호 및 임의의 제 3 난수를 제 1 식별번호 및 제 1 난수와 비교하는 1차 인증단계와, 상기 1차 인증단계 결과, 제 2 식별번호 및 제 3 난수와 제 1 식별번호 및 제 1 난수가 서로 다르면 인증세션을 중단하는 단계와, 상기 1차 인증단계 결과, 제 2 식별번호 및 제 3 난수와 제 1 식별번호 및 제 1 난수가 서로 동일하면 상기 제 2 해쉬함수 값을 키(key)로 제 1 식별번호 및 제 2 난수를 비밀키 알고리즘으로 암호화하여 제 2 암호문을 생성하고 서버로 전송하는 단계와, 입력된 제 1 식별번호를 이용하여 기 저장된 패스워드 파일에서 해당하는 제 3 해쉬함수를 추출하는 단계와, 상기 제 3 해쉬함수 값을 키(key)로 입력된 제 2 암호문을 복호화하여 제 3 식별번호 및 제 5 난수를 복원하는 단계와, 상기 제 2 난수와 제 5 난수를 비교하는 2차 인증단계와, 상기 2차 인증단계 결과, 제 2 난수와 제 5 난수가 서로 다르면 인증 세션을 중단하고, 동일하면 인증 세션을 수행하는 단계를 포함하여 이루어지는데 있다.Another feature of the user authentication method according to the present invention for achieving the above object is the step of generating a first random number and transmitting it to the server with the identification number, the corresponding password in the pre-stored password file Extracting a first hash function value, generating a second random number, encrypting a first identification number, a first random number, and a second random number using a secret key algorithm as a key; Generating a first cipher text and transmitting the first cipher text to a user, generating a second hash function value by hashing the user's own password, and decrypting the first cipher text inputted with the second hash function value as a key; Restoring an identification number, a third random number and a fourth random number, a first authentication step of comparing the second identification number and any third random number with a first identification number and a first random number, and the first authentication stepAnd, if the second identification number and the third random number and the first identification number and the first random number are different from each other, stopping the authentication session, and as a result of the first authentication step, the second identification number and the third random number and the first identification number. And if the first random numbers are the same, encrypting the first identification number and the second random number with a secret key algorithm using the second hash function value as a key, generating a second cipher text, and transmitting the encrypted data to the server. Extracting a corresponding third hash function from a previously stored password file by using the first identification number, and decrypting the second cipher text inputted with the third hash function value as a key to generate the third identification number and the third identification number. Restoring the random number; if the second random number and the fifth random number are different from each other, the second authentication step comparing the second random number and the fifth random number; Steps to Perform an Authentication Session It consists of including.

본 발명의 다른 목적, 특성 및 이점들은 첨부한 도면을 참조한 실시예들의 상세한 설명을 통해 명백해질 것이다.Other objects, features and advantages of the present invention will become apparent from the following detailed description of embodiments with reference to the accompanying drawings.

본 발명에 따른 사용자 인증 방법의 바람직한 실시예에 대하여 첨부한 도면을 참조하여 설명하면 다음과 같다. 그러나 본 발명은 이하에서 개시되는 실시예에 한정되는 것이 아니라 서로 다른 다양한 형태로 구현될 수 있으며, 단지 본 실시예 는 본 발명의 개시가 완전하도록 하며 통상의 지식을 가진 자에게 발명의 범주를 완전하게 알려주기 위해 제공되는 것이다.A preferred embodiment of the user authentication method according to the present invention will be described with reference to the accompanying drawings. However, the present invention is not limited to the embodiments disclosed below, but can be implemented in various different forms, only the embodiments are to make the disclosure of the present invention complete and complete the scope of the invention to those skilled in the art. It is provided to inform you.

제 1 실시예First embodiment

제 1 실시예에서는 사용자와 서버가 같은 시각을 공유(synchronized)하고 있다는 것을 가정한다.In the first embodiment, it is assumed that a user and a server are synchronizing the same time.

도 1 은 본 발명의 제 1 실시예에 따른 서버의 사용자 인증을 설명하기 위한 블록도이다.1 is a block diagram illustrating user authentication of a server according to a first embodiment of the present invention.

도 1과 같이, 사용자는 사용자 컴퓨터(10)에서 서비스를 제공하는 서버 컴퓨터(20)에 접속하여 원하는 서비스를 제공받고자 한다. 이때, 원하는 서비스를 제공하는 측면이나 받는 측면 양쪽 모두에게 서로에 대한 신뢰성이 요구된다. As illustrated in FIG. 1, a user accesses a server computer 20 that provides a service from a user computer 10 and receives a desired service. At this time, both sides providing the desired service or receiving sides are required to trust each other.

따라서 사용자 컴퓨터(10)는 인증을 위해 서버 컴퓨터(20)에 식별번호(ID)인 id와 현재시각 정보가 포함된 암호문을 전송하게 된다. 그러면 서버 컴퓨터(20)는 암호문에 포함된 현재시각 정보를 이용하여 사용자의 인증을 수행하게 된다. 이때 암호문은 사용자 컴퓨터(10)의 패스워드 해쉬함수 값을 키(key)로 하여 현재 시각이 포함된 사용자 정보를 통해 비밀키 알고리즘으로 암호화된 데이터를 말한다.Therefore, the user computer 10 transmits the ciphertext including the identification number (ID) and the current time information to the server computer 20 for authentication. The server computer 20 then authenticates the user using the current time information included in the cipher text. At this time, the cipher text refers to data encrypted by a secret key algorithm through user information including the current time using the password hash function value of the user computer 10 as a key.

도 2 는 본 발명의 제 1 실시예에 따른 서버의 사용자 인증을 상세히 설명하기 위한 흐름도이다.2 is a flowchart illustrating in detail a user authentication of a server according to the first embodiment of the present invention.

도 2를 참조하여 설명하면, 먼저 사용자 컴퓨터(10)는 자신의 패스워드를 해쉬(hash)하여 해쉬함수 값

Figure 112008009080021-pat00001
을 생성한다. 그리고 임의의 난수(random number) r을 발생시킨다(S1). 이때, 해쉬함수는 SHA-1, RIPEMD-160과 같은 임의의 입력으로부터 160비트(bit)를 생성하는 단방향 해쉬함수(one-way hash function)이다. 그리고 난수 r은 특정한 배열순서나 규칙을 가지지 않는 연속적인 임의의 수를 말한다.Referring to FIG. 2, first, the user computer 10 hashes its own password to hash its value.
Figure 112008009080021-pat00001
Create Then, a random number r is generated (S1). In this case, the hash function is a one-way hash function that generates 160 bits from arbitrary inputs such as SHA-1 and RIPEMD-160. And the random number r is a contiguous random number that does not have a specific collating sequence or rule.

이어 사용자 컴퓨터(10)는 생성된 해쉬함수 값

Figure 112008009080021-pat00002
을 키(key)로 하여 식별번호(ID)인 id, 발생된 난수 r 및 현재시각 정보인 date를 비밀키 알고리즘으로 암호화하여 암호문 C를 생성한다(S2). 이때, 비밀키 알고리즘은 DES(Data Encryption Standard), FEAL(Fast data Encryption Algorithm), IDEA(International Data Encryption Algorithm), AES(Advanced Encryption Standard) 등이 있으며, 여기서는 AES를 사용하는 것으로 설명한다. 그리고 현재시각 정보인 date는 현재시각 및 유효기간의 정보를 함께 기록하고 있다. 상기 유효기간은 현재시각부터 해당 id를 사용하여 사용자 인증이 가능한 기간으로, 도용자의 공격 또는 정보의 중요도 등에 따라 유효기간을 조절하는 것이 바람직하다.The user computer 10 then generates the generated hash function value.
Figure 112008009080021-pat00002
Using the key as a key id (ID), the generated random number r and the current time information date is encrypted using a secret key algorithm to generate a cipher text C (S2). At this time, the secret key algorithm includes a Data Encryption Standard (DES), a Fast Data Encryption Algorithm (FEAL), an International Data Encryption Algorithm (IDEA), an Advanced Encryption Standard (AES), and the like. And date, the current time information, records the current time and validity information together. The validity period is a period in which user authentication is possible using the corresponding id from the current time, and it is preferable to adjust the validity period according to the attacker's attack or the importance of information.

사용자 컴퓨터(10)는 이렇게 생성된 암호문 C를 식별번호(ID)인 id와 함께 서버 컴퓨터(20)로 전송한다(S3).The user computer 10 transmits the cipher text C generated as described above to the server computer 20 together with the ID which is the identification number (ID) (S3).

그러면 서버 컴퓨터(20)는 사용자 컴퓨터(10)로부터 입력된 식별번호(ID)인 id를 이용하여 해당하는 패스워드 해쉬함수 값

Figure 112008009080021-pat00003
을 패스워드 파일에서 검색하여 추출한다(S4). 이때, 서버 컴퓨터(20)는 모든 사용자의 패스워드에 대한 해쉬(hash)함수를 패스워드 파일로 저장하고 있어서 입력된 식별번호(ID)인 id에 따른 패스워드와 기 저장된 패스워드 파일을 비교하여 해당되는 해쉬함수 값을 추출한다.Then, the server computer 20 uses the ID, which is the identification number (ID) input from the user computer 10, to the corresponding password hash function value.
Figure 112008009080021-pat00003
Search for and extract from the password file (S4). At this time, the server computer 20 stores a hash function for all the user's passwords as a password file, and compares the password according to the ID, which is the input ID, with the previously stored password file, and the corresponding hash function. Extract the value.

그러면 서버 컴퓨터(20)는 추출된 해쉬함수 값

Figure 112008009080021-pat00004
을 키(key)로 하여 사용자 컴퓨터(10)로부터 수신한 암호문 C를 복호화 함으로써, 식별번호(ID)인 id', 발생된 난수 r' 및 현재시각 정보인 date'를 복원한다(S5).The server computer 20 then extracts the extracted hash function value.
Figure 112008009080021-pat00004
By decrypting the cipher text C received from the user computer 10 using the key as a key, id ', which is the identification number (ID), generated random number r', and date ', which is the current time information, are restored (S5).

그리고 복원된 정보 중 현재시각 정보인 date'의 값을 통해 현재시각이 유효기간 내에 포함되는 지의 유무에 따라서 입력된 식별번호 id가 유효한지를 확인하게 된다(S6).Then, it is checked whether the input identification number id is valid according to whether the current time is included in the validity period through the value of date ', which is the current time information among the restored information (S6).

따라서 입력된 암호문 C가 유효기간 내에 포함되는 기간 내의 date 값이 아니라면 해당 사용자가 아닌 것으로 판단하여 인증 세션을 중단하고(S7), 유효기간 내에 포함되는 기간 내의 date 값이라면 해당 사용자인 것으로 판단하여 인증 세션을 수행하여 사용자의 인증을 성공적으로 받아들인다(S8).Therefore, if the input ciphertext C is not a date value within the period included in the validity period, it is determined that the user is not the user and stops the authentication session (S7). The session is successfully accepted by the user (S8).

이처럼 사용자와 서버가 같은 시각을 공유하고 있다는 것을 가정하고, 사용자가 서버에게 보내는 암호문 C에 현재시각 정보인 date를 포함함으로써, 서버는 암호문 C에 포함된 식별번호(ID)인 id와 현재시각 정보인 date를 바탕으로 사용자를 인증하게 된다. Assuming that the user and the server share the same time, the date is included in ciphertext C sent by the user to the server, so that the server can identify the ID and current time information, which is the identification number (ID) included in the ciphertext C. The user is authenticated based on the date.

따라서 임의의 도용자가 스니핑(sniffing)을 통하거나 또는 도용자의 신분위장 공격(impersonation attack)을 통해 패킷을 중간에서 확보하더라도 date에 포함된 현재시각 정보의 유효기간을 벗어나게 되어 한번 사용된 패킷의 재사용으로 인한 공격을 방어할 수 있게 된다. 경우에 따라서는 date에 포함된 현재시각 정보의 유효기간을 매우 짧게 조정함으로써 한번 사용된 패킷의 재사용으로 인한 도용자의 공격을 더욱 강력하고 안정적으로 방어할 수도 있다.Therefore, even if an arbitrary thief acquires the packet in the middle through sniffing or through an identity attack of the hijacker, it is out of the validity period of the current time information included in the date. Can prevent attacks caused by In some cases, by adjusting the validity of the current time information contained in the date very shortly, it is possible to more powerfully and reliably defend against the attacker's attack by reusing the packet once used.

제 2 실시예Second embodiment

제 2 실시예에서는 사용자와 서버가 같은 시각을 공유하지 않는 경우(unsynchronized)를 가정한다.In the second embodiment, it is assumed that the user and the server do not share the same time (unsynchronized).

도 3 은 본 발명의 제 2 실시예에 따른 서버의 사용자 인증을 설명하기 위한 블록도이다.3 is a block diagram illustrating user authentication of a server according to a second embodiment of the present invention.

도 3과 같이, 사용자는 사용자 컴퓨터(10)에서 서비스를 제공하는 서버 컴퓨터(20)에 접속하여 원하는 서비스를 제공받고자 한다. 이때, 원하는 서비스를 제공하는 측면이나 받는 측면 양쪽 모두에게 서로에 대한 신뢰성이 요구된다. As shown in FIG. 3, a user wants to be provided with a desired service by accessing a server computer 20 that provides a service in the user computer 10. At this time, both sides providing the desired service or receiving sides are required to trust each other.

따라서 서버 컴퓨터(20)는 인증 세션을 시작할 때, 사용자 컴퓨터(10)에 임의의 난수

Figure 112008009080021-pat00005
을 전송하고, 사용자 컴퓨터(10)는 입력된 난수
Figure 112008009080021-pat00006
을 자신의 패스워드 해쉬함수 값으로 암호화한 후, 인증을 위해 서버 컴퓨터(20)에 식별번호(ID) 정보인 id와 암호문을 전송한다. 그러면 서버 컴퓨터(20)는 암호문에 포함된 임의의 난수
Figure 112008009080021-pat00007
을 이용하여 사용자의 인증을 수행하게 된다. 이때 암호문은 사용자 컴퓨터(10)의 패스워드 해쉬함수 값을 키(key)로 하여 id와 난수를 통해 비밀키 알고리즘으로 암호화된 데이터를 말한다.Thus, when the server computer 20 starts an authentication session, any random number is present in the user computer 10.
Figure 112008009080021-pat00005
And the user computer 10 inputs the random number
Figure 112008009080021-pat00006
Is encrypted with its own password hash function value, and transmits the identification number (ID) information and the cipher text to the server computer 20 for authentication. The server computer 20 then generates a random number included in the cipher text.
Figure 112008009080021-pat00007
User authentication is performed using. In this case, the ciphertext refers to data encrypted by a secret key algorithm through id and a random number using a password hash function value of the user computer 10 as a key.

도 4 는 본 발명의 제 2 실시예에 따른 서버의 사용자 인증을 상세히 설명하기 위한 흐름도이다.4 is a flowchart illustrating in detail a user authentication of a server according to a second embodiment of the present invention.

도 4를 참조하여 설명하면, 먼저 서버 컴퓨터(20)는 임의의 난수

Figure 112006089510351-pat00008
을 발생시켜 사용자 컴퓨터(10)에 전송한다(S10). 이때, 난수
Figure 112006089510351-pat00009
는 특정한 배열순서나 규칙을 가지지 않는 연속적인 임의의 수를 말한다.Referring to Figure 4, first the server computer 20 is any random number
Figure 112006089510351-pat00008
To generate and transmit to the user computer 10 (S10). Random number
Figure 112006089510351-pat00009
Is any consecutive number that does not have a specific collating sequence or rule.

이어 사용자 컴퓨터(10)는 자신의 패스워드를 해쉬(hash)하여 해쉬함수 값

Figure 112008009080021-pat00010
을 생성한다(S20). 이때, 해쉬함수는 SHA-1, RIPEMD-160과 같은 임의의 입력으로부터 160비트(bit)를 생성하는 단방향 해쉬함수(one-way hash function)이다.Subsequently, the user computer 10 hashes its own password to hash its value.
Figure 112008009080021-pat00010
To generate (S20). In this case, the hash function is a one-way hash function that generates 160 bits from arbitrary inputs such as SHA-1 and RIPEMD-160.

그리고 사용자 컴퓨터(10)는 생성된 해쉬함수 값

Figure 112008009080021-pat00011
을 키(key)로 하여 식별번호(ID)인 id와 서버 컴퓨터(20)에서 입력된 난수
Figure 112008009080021-pat00012
을 비밀키 알고리즘으로 암호화하여 암호문 C를 생성한다(S30). 이때, 비밀키 알고리즘은 DES(Data Encryption Standard), FEAL(Fast data Encryption Algorithm), IDEA(International Data Encryption Algorithm), AES(Advanced Encryption Standard) 등이 있으며, 여기서는 AES를 사용하는 것으로 설명한다.The user computer 10 generates a generated hash function value.
Figure 112008009080021-pat00011
Id as identification key and random number inputted from server computer 20
Figure 112008009080021-pat00012
To encrypt the secret key algorithm to generate a cipher text C (S30). At this time, the secret key algorithm includes a Data Encryption Standard (DES), a Fast Data Encryption Algorithm (FEAL), an International Data Encryption Algorithm (IDEA), an Advanced Encryption Standard (AES), and the like.

사용자 컴퓨터(10)는 이렇게 생성된 암호문 C를 식별번호(ID)인 id와 함께 서버 컴퓨터(20)로 전송한다(S40).The user computer 10 transmits the cipher text C generated as described above to the server computer 20 together with the ID which is the identification number (ID) (S40).

그러면 서버 컴퓨터(20)는 사용자 컴퓨터(10)로부터 입력된 식별번호(ID)인 id를 이용하여 해당하는 패스워드 해쉬함수 값

Figure 112008009080021-pat00013
을 패스워드 파일에서 검색하여 추출한다(S50). 이때, 서버 컴퓨터(20)는 모든 사용자의 패스워드에 대한 해쉬(hash)함수를 패스워드 파일로 저장하고 있어서 입력된 식별번호(ID)인 id에 따른 패스워드와 기 저장된 패스워드 파일을 비교하여 해당되는 해쉬함수 값을 추출한다.Then, the server computer 20 uses the ID, which is the identification number (ID) input from the user computer 10, to the corresponding password hash function value.
Figure 112008009080021-pat00013
Search for and extract from the password file (S50). At this time, the server computer 20 stores a hash function for all the user's passwords as a password file, and compares the password according to the ID, which is the input ID, with the previously stored password file, and the corresponding hash function. Extract the value.

그러면 서버 컴퓨터(20)는 추출된 해쉬함수 값

Figure 112008009080021-pat00014
을 키(key)로 하여 사용자 컴퓨터(10)로부터 수신한 암호문 C를 복호화 함으로써, 식별번호(ID)인 id', 발생된 난수
Figure 112008009080021-pat00015
를 복원한다(S60).The server computer 20 then extracts the extracted hash function value.
Figure 112008009080021-pat00014
Id ', which is the identification number (ID), is generated by decrypting the cipher text C received from the user computer 10 using the key as a key.
Figure 112008009080021-pat00015
Restore (S60).

서버 컴퓨터(20)는 복원된 정보 중 해당 사용자 컴퓨터(10)로 전송한 난수

Figure 112006089510351-pat00016
과 복원된 난수
Figure 112006089510351-pat00017
를 서로 비교하여 사용자 인증을 수행한다(S70).The server computer 20 transmits the random number transmitted to the corresponding user computer 10 among the restored information.
Figure 112006089510351-pat00016
And restored random numbers
Figure 112006089510351-pat00017
Are compared to each other to perform user authentication (S70).

즉, 상기 비교결과(S70), 전송한 난수

Figure 112006089510351-pat00018
과 복원된 난수
Figure 112006089510351-pat00019
값이 동일하지 않으면 해당 사용자가 아닌 것으로 판단하여 인증 세션을 중단한다(S80). 그리고 상기 비교결과(S70), 전송한 난수
Figure 112006089510351-pat00020
과 복원된 난수
Figure 112006089510351-pat00021
값이 동일하면 해당 사용자인 것으로 판단하여 인증 세션을 수행하여 사용자의 인증을 성공적으로 받아들인다(S90).That is, the comparison result (S70), the transmitted random number
Figure 112006089510351-pat00018
And restored random numbers
Figure 112006089510351-pat00019
If the value is not the same, it is determined that the corresponding user is not and the authentication session is stopped (S80). And the comparison result (S70), the transmitted random number
Figure 112006089510351-pat00020
And restored random numbers
Figure 112006089510351-pat00021
If the value is the same, it is determined that the user is a user and performs an authentication session to successfully receive the user's authentication (S90).

이처럼 사용자와 서버가 같은 시각을 공유하기 어려운 경우를 가정하고, 인증 세션을 시작할 때, 서버에서 임의의 난수를 발생시켜 이를 사용자에게 전달하고, 사용자는 이 난수를 자신의 패스워드 해쉬함수 값으로 암호화한 후 서버에 전달하게 된다. 그러면 서버는 이 난수를 바탕으로 사용자를 인증하게 되므로 도용자가 스니핑(sniffing)을 통하거나 또는 도용자의 신분위장 공격(impersonation attack)을 통해 패킷을 중간에서 확보하더라도 서버에서 사용자에게 최초에 전송한 임의의 난수는 파악할 수 없으므로 도용자의 공격을 강력하고 안정적으로 방어할 수 있게 된다.Assuming that it is difficult for the user and the server to share the same time, when the authentication session starts, the server generates a random number and passes it to the user. The user encrypts this random number with his password hash function value. After that, it is delivered to the server. The server then authenticates the user based on this random number, so that even if the thief obtains the packet in the middle through sniffing or through the hijacker's impersonation attack, the server first sent the user to the server. Since random numbers are not known, it is possible to reliably and defensively steal attacks from thieves.

제 3 실시예Third embodiment

제 3 실시예에서는 사용자와 서버가 같은 시각을 공유하지 않는 경우(unsynchronized)를 가정한다.In the third embodiment, it is assumed that the user and the server do not share the same time (unsynchronized).

도 5 은 본 발명의 제 3 실시예에 따른 서버와 사용자 상호간의 인증을 설명하기 위한 블록도이다.5 is a block diagram illustrating authentication between a server and a user according to a third embodiment of the present invention.

도 5와 같이, 사용자는 사용자 컴퓨터(10)에서 서비스를 제공하는 서버 컴퓨터(20)에 접속하여 원하는 서비스를 제공받고자 한다. 이때, 원하는 서비스를 제공하는 측면이나 받는 측면 양쪽 모두에게 서로에 대한 신뢰성이 요구된다. As shown in FIG. 5, a user wants to be provided with a desired service by accessing a server computer 20 that provides a service in the user computer 10. At this time, both sides providing the desired service or receiving sides are required to trust each other.

따라서 사용자 컴퓨터(10)는 식별번호(ID)인 id와 임의의 난수(random number) r을 서버 컴퓨터(20)에 전송하고, 서버 컴퓨터(20)에서 id를 통해 추출된 해쉬함수 값으로 암호화된 암호문 C1이 입력되면 암호문 C1에 포함된 id와 난수를 비교함으로써 1차 인증(사용자의 서버 인증)을 수행한다. 이후, 서버 컴퓨터(20)에서 입력된 임의의 난수를 변형하여 자신의 패스워드 해쉬함수 값으로 암호화하여 서버 컴퓨터(20)에 id와 암호문 C를 전송한다. 그러면 서버 컴퓨터(20)는 암호문에 포함된 난수

Figure 112008009080021-pat00022
를 이용하여 2차 인증(서버의 사용자 인증)을 수행하게 된다. 이때 암호문은 사용자 컴퓨터(10)의 패스워드 해쉬함수 값을 키(key)로 하여 식별번호 정보와 난수를 통해 비밀키 알고리즘으로 암호화된 데이터를 말한다.Therefore, the user computer 10 transmits the identification number ID and an arbitrary random number r to the server computer 20 and encrypts the hash function value extracted through the id from the server computer 20. When the ciphertext C1 is input, primary authentication (user's server authentication) is performed by comparing the random number with the id included in the ciphertext C1. Thereafter, any random number inputted from the server computer 20 is modified to be encrypted with its own password hash function value, and the id and the cipher text C are transmitted to the server computer 20. The server computer 20 then randomly contains the ciphertext
Figure 112008009080021-pat00022
Secondary authentication (user authentication of the server) is performed using. In this case, the ciphertext refers to data encrypted by a secret key algorithm through identification number information and random numbers using the password hash function value of the user computer 10 as a key.

도 6 은 본 발명의 제 3 실시예에 따른 서버와 사용자 상호간의 인증을 상세히 설명하기 위한 흐름도이다.6 is a flowchart illustrating in detail the authentication between the server and the user according to the third embodiment of the present invention.

도 6을 참조하여 설명하면, 먼저 사용자 컴퓨터(10)는 임의의 난수 r을 발생시켜 식별번호(ID)인 id와 함께 서버 컴퓨터(20)에 전송한다(S100). 이때, 난수 r은 특정한 배열순서나 규칙을 가지지 않는 연속적인 임의의 수를 말한다.Referring to FIG. 6, first, the user computer 10 generates a random number r and transmits the random number r to the server computer 20 together with an ID which is an identification number (S100). In this case, the random number r refers to a continuous random number having no specific arrangement order or rule.

이어 서버 컴퓨터(20)는 수신한 식별번호(ID) 정보인 id에 해당하는 패스워드 해쉬함수 값

Figure 112008009080021-pat00023
을 패스워드 파일에서 검색하여 추출한다. 그리고 임의의 난수(random number)
Figure 112008009080021-pat00024
을 발생시킨다(S110). 이때, 서버 컴퓨터(20)는 모든 사용자의 패스워드에 대한 해쉬(hash)함수 값을 패스워드 파일로 저장하고 있어서 입력된 식별번호(ID)인 id에 따른 패스워드와 기 저장된 패스워드 파일을 비교하여 해당되는 해쉬함수를 추출한다. 그리고 난수 r은 특정한 배열순서나 규칙을 가지지 않는 연속적인 임의의 수를 말한다.Subsequently, the server computer 20 generates a password hash function value corresponding to id, which is received identification number (ID) information.
Figure 112008009080021-pat00023
Is extracted from the password file. And random number
Figure 112008009080021-pat00024
To generate (S110). At this time, the server computer 20 stores the hash function values of all the user's passwords as a password file, and compares the password according to the ID, which is the input ID, with the previously stored password file, and applies the corresponding hash. Extract the function. And the random number r is a contiguous random number that does not have a specific collating sequence or rule.

그리고 서버 컴퓨터(20)는 추출된 해쉬함수 값

Figure 112008009080021-pat00025
을 키(key)로 하여 사용자 컴퓨터(10)에서 입력된 식별번호(ID)인 id 및 임의의 난수 r과 함께, 서버 컴퓨터(10)에서 발생한 임의의 난수
Figure 112008009080021-pat00026
을 비밀키 알고리즘으로 암호화하여 암호문
Figure 112008009080021-pat00027
을 생성한다(S120). 이때, 비밀키 알고리즘은 DES(Data Encryption Standard), FEAL(Fast data Encryption Algorithm), IDEA(International Data Encryption Algorithm), AES(Advanced Encryption Standard) 등이 있으며, 여기서는 AES를 사용하는 것으로 설명한다.The server computer 20 extracts the extracted hash function value.
Figure 112008009080021-pat00025
Any random number generated in the server computer 10 together with id as an identification number (ID) input from the user computer 10 and an arbitrary random number r with a key as a key.
Figure 112008009080021-pat00026
Ciphertext by encrypting
Figure 112008009080021-pat00027
To generate (S120). At this time, the secret key algorithm includes a Data Encryption Standard (DES), a Fast Data Encryption Algorithm (FEAL), an International Data Encryption Algorithm (IDEA), an Advanced Encryption Standard (AES), and the like.

그러면, 사용자 컴퓨터(10)는 자신의 패스워드를 해쉬(hash)하여 해쉬함수 값

Figure 112008009080021-pat00028
을 생성하고(S130), 이 해쉬함수 값
Figure 112008009080021-pat00029
을 이용하여 서버 컴퓨터(20)에서 입력된 암호문
Figure 112008009080021-pat00030
을 복호하여 식별번호(ID)인 id', 임의의 난수
Figure 112008009080021-pat00031
및 임의의 난수 r'을 복원한다(S140). 이때, 해쉬함수는 SHA-1, RIPEMD-160과 같은 임의의 입력으로부터 160비트(bit)를 생성하는 단방향 해쉬함수(one-way hash function)이다.Then, the user computer 10 hashes its password to hash function value.
Figure 112008009080021-pat00028
(S130), this hash function value
Figure 112008009080021-pat00029
Cipher text input from the server computer 20 using
Figure 112008009080021-pat00030
Decodes id 'as id', random number
Figure 112008009080021-pat00031
And random random number r 'are restored (S140). In this case, the hash function is a one-way hash function that generates 160 bits from arbitrary inputs such as SHA-1 and RIPEMD-160.

그리고 사용자 컴퓨터(10)는 복원된 식별번호(ID)인 id' 및 임의의 난수 r'을 최초 서버에 전송했던 식별번호(ID)인 id 및 임의의 난수 r과 비교함으로써, 1차 인증(사용자의 서버 인증)을 수행한다(S150).Then, the user computer 10 compares the restored identification number (id) id 'and the random number r' with the identification number (id), which was transmitted to the first server, and the random number r. Server authentication) (S150).

즉, 비교결과(S150), 복원된 식별번호(ID)인 id' 및 임의의 난수 r'이 최초 서버에 전송했던 식별번호(ID)인 id 및 임의의 난수 r과 서로 다르면 해당 사용자가 아닌 것으로 판단하여 인증세션을 중단한다(S210). That is, if the comparison result (S150), id ', which is the restored identification number (ID), and any random number r' are different from id, which is the identification number (ID) transmitted to the first server, and random number r, the user is not the corresponding user. The authentication session is stopped by the determination (S210).

비교결과(S150), 복원된 식별번호(ID)인 id' 및 임의의 난수 r'이 최초 서버에 전송했던 식별번호(ID)인 id 및 임의의 난수 r과 동일하면 해당 사용자인 것으로 판단한다. 그래서 생성된 해쉬함수 값

Figure 112008009080021-pat00032
을 키(key)로 하여 식별번호(ID)인 id와 서버 컴퓨터에서 입력된 난수
Figure 112008009080021-pat00033
을 비밀키 알고리즘으로 암호화하여 암호문 C를 생성한다(S160). 이때, 비밀키 알고리즘은 DES(Data Encryption Standard), FEAL(Fast data Encryption Algorithm), IDEA(International Data Encryption Algorithm), AES(Advanced Encryption Standard) 등이 있으며, 여기서는 AES를 사용하는 것으로 설명한다.If the comparison result (S150), id ', which is the restored identification number (ID), and any random number r' is the same as id, which is the identification number (ID) transmitted to the first server, and random number r, it is determined that the user. So the generated hash function value
Figure 112008009080021-pat00032
Id as identification key and random number inputted from server computer
Figure 112008009080021-pat00033
The cryptographic text C is generated by encrypting the secret key algorithm (S160). At this time, the secret key algorithm includes a Data Encryption Standard (DES), a Fast Data Encryption Algorithm (FEAL), an International Data Encryption Algorithm (IDEA), an Advanced Encryption Standard (AES), and the like.

사용자 컴퓨터(10)는 이렇게 생성된 암호문 C를 식별번호(ID)인 id와 함께 서버 컴퓨터(20)로 전송한다(S170).The user computer 10 transmits the cipher text C generated as described above to the server computer 20 together with the identification ID (ID) (S170).

그러면 서버 컴퓨터(20)는 사용자 컴퓨터(10)로부터 입력된 식별번호(ID)인 id를 이용하여 해당하는 패스워드 해쉬함수 값

Figure 112008009080021-pat00034
을 패스워드 파일에서 검색하여 추출한다(S180). 이때, 서버 컴퓨터(20)는 모든 사용자의 패스워드에 대한 해쉬(hash)함수를 패스워드 파일로 저장하고 있어서 수신한 패스워드의 해쉬함수 값과 저장된 패스워드 파일을 비교하여 해당되는 해쉬함수 값을 추출한다.Then, the server computer 20 uses the ID, which is the identification number (ID) input from the user computer 10, to the corresponding password hash function value.
Figure 112008009080021-pat00034
Search for and extract from the password file (S180). At this time, the server computer 20 stores a hash function for all the user's passwords as a password file, and extracts a corresponding hash function value by comparing the hash function value of the received password with the stored password file.

이어 서버 컴퓨터(20)는 추출된 해쉬함수 값

Figure 112008009080021-pat00035
을 키(key)로 하여 사용자 컴퓨터(10)로부터 수신한 암호문 C를 복호화 함으로써, 식별번호(ID)인 id', 발생된 임의의 난수
Figure 112008009080021-pat00036
를 복원한다(S190).Subsequently, the server computer 20 extracts the extracted hash function value.
Figure 112008009080021-pat00035
By decrypting the ciphertext C received from the user's computer 10 using the key as a key, id ', which is an identification number (ID), and any random number generated.
Figure 112008009080021-pat00036
Restore (S190).

그리고 복원된 정보 중 임의의 난수

Figure 112006089510351-pat00037
와 해당 사용자 컴퓨터(10)로 암호문
Figure 112006089510351-pat00038
과 함께 전송한 난수
Figure 112006089510351-pat00039
을 비교함으로써, 2차 인증(서버의 사용자 인증)을 수행한다(S200).And random number of restored information
Figure 112006089510351-pat00037
And passphrase to your computer (10)
Figure 112006089510351-pat00038
Random number sent with
Figure 112006089510351-pat00039
By comparing the second authentication (user authentication of the server) is performed (S200).

즉 비교결과(S200), 복원된 난수

Figure 112006089510351-pat00040
와 해당 사용자 컴퓨터(10)로 전송한 난수
Figure 112006089510351-pat00041
값이 동일하지 않으면 해당 사용자가 아닌 것으로 판단하여 인증 세션을 중단한다(S210).That is, the comparison result (S200), the restored random number
Figure 112006089510351-pat00040
And random numbers sent to the user's computer (10)
Figure 112006089510351-pat00041
If the value is not the same, it is determined that the corresponding user is not and the authentication session is stopped (S210).

그리고 비교결과(S200), 복원된 난수

Figure 112006089510351-pat00042
와 해당 사용자 컴퓨터(10)로 전송한 난수
Figure 112006089510351-pat00043
값이 동일하면 해당 사용자인 것으로 판단하여 인증 세션을 수행하여 사용자의 인증을 성공적으로 받아들인다(S220).And comparison result (S200), the restored random number
Figure 112006089510351-pat00042
And random numbers sent to the user's computer (10)
Figure 112006089510351-pat00043
If the value is the same, it is determined that the user is a user and performs an authentication session to successfully receive the user's authentication (S220).

이처럼 사용자와 서버가 같은 시각을 공유하기 어려운 경우를 가정하고, 인증 세션을 시작할 때, 사용자는 1차 인증을 통해 해당 서버가 자신이 접속하고자 했던 서버임을 확인하고, 이후 서버는 2차 인증을 통해 사용자를 인증하게 되므로, 도용자가 스니핑(sniffing)을 통하거나 또는 도용자의 신분위장 공격(impersonation attack)에 더욱 강력하고 더욱 안정적으로 방어할 수 있게 된다.Assuming that it is difficult for the user and the server to share the same time, when starting the authentication session, the user confirms that the server is the one he wants to connect to by first authentication, and then the server uses second authentication. By authenticating the user, the hijacker can be more powerful and more reliably defended against sniffing or the hijacker's impersonation attack.

상기에서 설명한 본 발명의 기술적 사상은 바람직한 실시예에서 구체적으로 기술되었으나, 상기한 실시예는 그 설명을 위한 것이며 그 제한을 위한 것이 아님을 주의하여야 한다. 또한, 본 발명의 본 발명의 기술적 분야의 통상의 지식을 가진자라면 본 발명의 기술적 사상의 범위 내에서 다양한 실시예가 가능함을 이해할 수 있을 것이다. 따라서 본 발명의 진정한 기술적 보호 범위는 첨부된 특허청구범위의 기술적 사상에 의해 정해져야 할 것이다. Although the technical spirit of the present invention described above has been described in detail in a preferred embodiment, it should be noted that the above-described embodiment is for the purpose of description and not of limitation. In addition, one of ordinary skill in the art of the present invention will understand that various embodiments are possible within the scope of the technical idea of the present invention. Therefore, the true technical protection scope of the present invention will be defined by the technical spirit of the appended claims.

이상에서 설명한 바와 같은 본 발명에 따른 사용자 인증 방법은 다음과 같은 효과가 있다.The user authentication method according to the present invention as described above has the following effects.

첫째, 도용자가 스니핑(sniffing) 기술뿐만 아니라, 송수신하는 패킷의 내용을 제어할 수 있는 능력까지 가지고 있는 경우에도 도용자의 신분위장 공격(impersonation attack)을 강력하고 안정적으로 방어할 수 있다.First, even if a hijacker has not only sniffing techniques but also the ability to control the contents of packets transmitted and received, the hijacker can strongly and reliably defend an identityperson attack.

둘째, 동기 및 비동기 시스템에서 사용자가 인증을 시도할 때 서버가 한 번의 해쉬(hash) 연산만으로도 사용자를 인증하는 간단한 방법을 갖는다.Second, in synchronous and asynchronous systems, when a user attempts to authenticate, the server has a simple way to authenticate the user with just one hash operation.

셋째, 암복호 알고리즘으로 비밀키 알고리즘을 채택함으로써, 공개키 기반 알고리즘에 비해 상당히 효율적인 사용자 인증 방법을 제공할 수 있다.Third, by adopting a secret key algorithm as an encryption / decryption algorithm, it is possible to provide a user authentication method that is considerably more efficient than a public key based algorithm.

넷째, 효율적이면서도 신뢰할만한 인증 프로토콜을 제시함으로써 디지털 컨텐츠를 제공하는 웹서비스 산업에서 사용자와 서버간의 신뢰도를 높일 수 있다.Fourth, by providing an efficient and reliable authentication protocol, it is possible to increase the trust between user and server in the web service industry that provides digital contents.

Claims (12)

사용자 단말기와 서버 단말기 간의 사용자 인증 방법에 있어서,In the user authentication method between the user terminal and the server terminal, 상기 사용자 단말기에서 사용자 패스워드를 해쉬(hash)하여 제 1 해쉬함수 값을 생성하는 생성단계와,Generating a first hash function value by hashing a user password in the user terminal; 상기 제 1 해쉬함수 값을 키(key)로 하여 제 1 식별번호 및 제 1 난수를 비밀키 알고리즘으로 암호화하여 제 1 암호문을 생성하고 생성된 제 1 암호문과 상기 제 1 식별번호를 상기 서버 단말기로 전송하는 전송단계와,A first cipher text is generated by encrypting a first identification number and a first random number using a secret key algorithm using the first hash function value as a key, and the generated first cipher text and the first identification number are transmitted to the server terminal. A transmission step for transmitting, 상기 서버 단말기는 상기 사용자 단말기에서 입력된 제 1 식별번호를 이용하여 기 저장된 패스워드 파일에서 해당하는 제 2 해쉬함수 값을 추출하는 추출단계와,An extracting step of extracting a corresponding second hash function value from a previously stored password file by using the first identification number input from the user terminal; 상기 제 2 해쉬함수 값을 키로 입력된 제 1 암호문을 복호화하여 제 2 식별번호 및 제 2 난수로 복원하는 복원단계와,Restoring the second hash function value by decrypting the first cipher text inputted as a key to a second identification number and a second random number; 상기 복원단계에서 복원된 제 2 식별번호 및 제 2 난수를 통해 해당 사용자 여부를 판단하여 상기 사용자 단말기와 서버 단말기 간의 인증세션의 수행을 제어하는 제어단계를 포함하여 이루어지는 사용자 인증 방법.And a control step of controlling whether to perform an authentication session between the user terminal and the server terminal by determining whether the corresponding user is determined based on the second identification number and the second random number restored in the restoration step. 제 1 항에 있어서, 상기 제어단계는The method of claim 1, wherein the controlling step 상기 복원단계에서 복원된 제 1 암호문에 유효기간 정보가 포함되어 현재시각이 상기 유효기간 내에 포함되는지의 여부를 판단하는 단계와,Determining whether the current time is included in the valid period by including the valid period information in the first encrypted text restored in the restoration step; 상기 판단결과 유효기간 내에 현재시각이 포함되지 않으면 인증 세션을 중단하고, 유효기간 내에 현재시각이 포함되면 인증 세션을 수행하는 단계를 포함하여 이루어지는 것을 특징으로 하는 사용자 인증 방법.And stopping the authentication session if the current time is not included in the validity period and performing the authentication session if the current time is included in the validity period. 제 1 항에 있어서, 상기 제어단계는The method of claim 1, wherein the controlling step 서버로부터 입력된 상기 제 1 난수를 복원된 제 2 난수와 비교하는 단계와,Comparing the first random number input from the server with the restored second random number; 상기 비교결과, 제 1 난수와 제 2 난수가 서로 다르면 인증 세션을 중단하고, 동일하면 인증 세션을 계속 수행하는 단계를 포함하여 이루어지는 것을 특징으로 하는 사용자 인증 방법.If the first random number and the second random number are different from each other, stopping the authentication session, and if the same is the same, continuing the authentication session. 제 3 항에 있어서, 상기 사용자 인증 방법은The method of claim 3, wherein the user authentication method is 상기 사용자 단말기에서 제 3 난수를 발생시켜 제 3 식별번호와 함께 서버로 전송하는 단계와,Generating a third random number in the user terminal and transmitting the third random number to a server together with a third identification number; 상기 서버 단말기는 상기 사용자 단말기에서 입력된 제 3 식별번호를 이용하여 기 저장된 패스워드 파일에서 해당하는 제 3 해쉬함수 값을 추출하는 단계와,Extracting, by the server terminal, a corresponding third hash function value from a previously stored password file using a third identification number input from the user terminal; 상기 제 3 해쉬함수 값을 키(key)로 제 3 식별번호 및 제 3 난수를 비밀키 알고리즘으로 암호화하여 제 2 암호문을 생성하고 상기 사용자 단말기로 전송하는 단계와,Generating a second cipher text by encrypting the third hash function value using a key as a key and a third identification number and a third random number using a secret key algorithm, and transmitting the second cipher text to the user terminal; 상기 사용자 단말기에서 사용자 패스워드를 해쉬(hash)하여 제 4 해쉬함수 값을 생성하고, 상기 제 4 해쉬함수 값을 키로 상기 입력된 제 2 암호문을 복호하여 제 3 식별번호를 제 4 식별번호로 복원하고, 제 3 난수를 제 4 난수로 복원하는 단계와,Hashing the user password in the user terminal to generate a fourth hash function value; decrypting the inputted second cipher text with the fourth hash function value as a key to restore a third identification number to a fourth identification number; Restoring the third random number to the fourth random number; 상기 제 2 암호문이 복원된 제 4 식별번호 및 제 4 난수를 상기 암호화 전 제 1 식별번호 및 제 3 난수와 각각 비교하는 단계와,Comparing the fourth identification number and the fourth random number in which the second cipher text is restored with the first identification number and the third random number before encryption, respectively; 상기 비교결과, 제 4 식별번호와 제 3 식별번호가, 또는 제 4 난수와 제 3 난수가 서로 다르면 인증세션을 중단하고, 동일하면 상기 사용자 단말기와 서버 단말기 간의 인증세션을 수행하는 단계를 더 포함하여 이루어지는 것을 특징으로 하는 사용자 인증 방법.If the fourth identification number and the third identification number, or if the fourth random number and the third random number is different from each other as a result of the comparison, and if the same further comprises the step of performing the authentication session between the user terminal and the server terminal User authentication method comprising the. 사용자 단말기와 서버 단말기 간의 사용자 인증 방법에 있어서,In the user authentication method between the user terminal and the server terminal, (a) 상기 사용자 단말기에서 사용자 패스워드를 해쉬(hash)하여 제 1 해쉬함수 값을 생성하고, 임의의 제 1 난수(random number)를 발생하는 단계와,(a) hashing a user password in the user terminal to generate a first hash function value and generating an arbitrary first random number; (b) 상기 제 1 해쉬함수 값을 키(key)로 식별번호, 난수 및 현재시각 정보를 비밀키 알고리즘으로 암호화하여 암호문을 생성하고 생성된 암호문과 상기 식별번호를 상기 서버 단말기로 전송하는 단계와,(b) generating a cipher text by encrypting the first hash function value with a key using an identification number, a random number, and current time information with a secret key algorithm, and transmitting the generated cipher text and the identification number to the server terminal; , (c) 상기 서버 단말기는 상기 사용자 단말기에서 입력된 식별번호를 이용하여 기 저장된 패스워드 파일에서 해당하는 제 2 해쉬함수 값을 추출하는 단계와,(c) the server terminal extracting a corresponding second hash function value from a previously stored password file by using the identification number input from the user terminal; (d) 상기 제 2 해쉬함수 값을 키(key)로 입력된 암호문을 복호화하여 식별번호, 난수 및 현재시각 정보를 복원하는 단계와,(d) restoring an identification number, a random number, and current time information by decrypting a cipher text inputted with the second hash function value as a key; (e) 복원된 정보 중 현재시각 정보 값을 통해 현재시각이 유효기간 내에 포함되는 지의 여부를 판단하는 단계와,(e) determining whether the current time is within the valid period using the current time information value of the restored information; (f) 상기 판단 결과, 유효기간 내에 포함되지 않으면 인증 세션을 중단하고 유효기간 내에 포함되면 상기 사용자 단말기와 서버 단말기 간의 인증 세션을 수행하는 단계를 포함하여 이루어지는 사용자 인증 방법.(f) stopping the authentication session if not included in the validity period as a result of the determination, and performing an authentication session between the user terminal and the server terminal if included in the validity period. 제 5 항에 있어서,The method of claim 5, wherein 상기 현재시각 정보는 현재시각 및 유효기간의 정보를 포함하여 기록하는 것을 특징으로 하는 사용자 인증 방법.The current time information is recorded, including the information of the current time and validity period. 제 6 항에 있어서,The method of claim 6, 상기 유효기간은 현재시각부터 해당 식별번호(ID)를 사용하여 사용자 인증이 가능한 기간으로, 기간은 도용자의 공격 또는 정보의 중요도에 따라 조절하는 것을 특징으로 하는 사용자 인증 방법.The validity period is a period in which user authentication is possible using a corresponding identification number from the current time, and the period is adjusted according to the attacker's attack or the importance of information. 사용자 단말기와 서버 단말기 간의 사용자 인증 방법에 있어서,In the user authentication method between the user terminal and the server terminal, (A) 상기 사용자 단말기에서 사용자 패스워드를 해쉬(hash)하여 제 1 해쉬함수 값을 생성하고, 상기 서버 단말기로부터 임의의 제 1 난수를 입력받는 단계와,(A) hashing a user password in the user terminal to generate a first hash function value, and receiving an arbitrary first random number from the server terminal; (B) 상기 제 1 해쉬함수 값을 키(key)로 제 1 식별번호 및 입력된 제 1 난수를 비밀키 알고리즘으로 암호화하여 암호문을 생성하고 생성된 암호문과 제 1 식별번호를 서버로 전송하는 단계와,(B) generating a cipher text by encrypting the first hash function value with a key and a first identification number and the inputted first random number with a secret key algorithm, and transmitting the generated cipher text and the first identification number to a server; Wow, (C) 상기 서버 단말기는 상기 사용자 단말기에서 입력된 제 1 식별번호를 이용하여 기 저장된 패스워드 파일에서 해당하는 제 2 해쉬함수 값을 추출하는 단계와,(C) the server terminal extracting a corresponding second hash function value from a previously stored password file by using the first identification number input from the user terminal; (D) 상기 제 2 해쉬함수 값을 키(key)로 입력된 암호문을 복호화하여 제 2 식별번호(ID) 및 제 2 난수로 복원하는 단계와,(D) restoring the second hash function value to a second identification number (ID) and a second random number by decrypting a cipher text inputted with a key; (E) 상기 복원된 제 2 난수와 상기 제 1 난수를 비교하는 단계와,(E) comparing the restored second random number with the first random number, (F) 상기 비교결과, 제 1 난수와 제 2 난수가 서로 다르면 인증 세션을 중단하고, 동일하면 상기 사용자 단말기와 서버 단말기 간의 인증 세션을 계속 수행하는 단계를 포함하여 이루어지는 사용자 인증 방법.(F) stopping the authentication session when the first random number and the second random number are different from each other, and continuing to perform the authentication session between the user terminal and the server terminal when the comparison is performed. 사용자 단말기와 서버 단말기 간의 사용자 인증 방법에 있어서,In the user authentication method between the user terminal and the server terminal, (1) 상기 사용자 단말기에서 제 1 난수를 발생시켜 식별번호와 함께 상기 서버 단말기로 전송하는 단계와,(1) generating a first random number in the user terminal and transmitting the first random number to the server terminal with an identification number; (2) 상기 서버 단말기는 상기 사용자 단말기에서 입력된 식별번호를 이용하여 기 저장된 패스워드 파일에서 해당하는 제 1 해쉬함수 값을 추출하고, 제 2 난수를 발생하는 단계와,(2) the server terminal extracting a corresponding first hash function value from a previously stored password file using an identification number input from the user terminal, and generating a second random number; (3) 상기 제 1 해쉬함수 값을 키(key)로 제 1 식별번호, 제 1 난수 및 제 2 난수를 비밀키 알고리즘으로 암호화하여 제 1 암호문을 생성하고 상기 사용자 단말기로 전송하는 단계와,(3) encrypting a first identification number, a first random number, and a second random number by a secret key algorithm using the first hash function value as a key, generating a first cipher text, and transmitting the first cipher text to the user terminal; (4) 상기 사용자 단말기에서 사용자 패스워드를 해쉬(hash)하여 제 2 해쉬함수 값을 생성하고, 상기 제 2 해쉬함수 값을 키로 상기 입력된 제 1 암호문을 복호하여 상기 제 1 식별번호를 제 2 식별번호로 복원하고, 상기 제 1 난수를 제 3 난수로 복원하고, 제 2 난수를 제 4 난수로 복원하는 단계와,(4) hashing the user password in the user terminal to generate a second hash function value; decrypting the inputted first cipher text with the second hash function value as a key to identify the first identification number second; Restoring a number, restoring the first random number to a third random number, restoring a second random number to a fourth random number, (5) 상기 복원된 제 2 식별번호 및 제 3 난수를 제 1 식별번호 및 제 1 난수와 각각 비교하는 1차 인증단계와,(5) a first authentication step of comparing the restored second identification number and the third random number with the first identification number and the first random number, respectively; (6) 상기 1차 인증단계 결과, 상기 제 2 식별번호 및 제 3 난수와 상기 제 1 식별번호 및 제 1 난수가 서로 다르면 인증세션을 중단하는 단계와,(6) stopping the authentication session if the second identification number and the third random number and the first identification number and the first random number are different from each other as a result of the first authentication step; (7) 상기 1차 인증단계 결과, 제 2 식별번호 및 제 3 난수와 제 1 식별번호 및 제 1 난수가 서로 동일하면 상기 제 2 해쉬함수 값을 키(key)로 제 1 식별번호 및 제 2 난수를 비밀키 알고리즘으로 암호화하여 제 2 암호문을 생성하고 상기 서버 단말기로 전송하는 단계와,(7) If the second identification number and the third random number and the first identification number and the first random number are the same as the result of the first authentication step, the first identification number and the second hash function value are used as keys. Encrypting a random number with a secret key algorithm to generate a second cipher text and transmitting it to the server terminal; (8) 상기 서버 단말기는 상기 사용자 단말기에서 입력된 제 1 식별번호를 이용하여 기 저장된 패스워드 파일에서 해당하는 제 3 해쉬함수 값을 추출하는 단계와,(8) the server terminal extracting a corresponding third hash function value from a previously stored password file using the first identification number input from the user terminal; (9) 상기 제 3 해쉬함수 값을 키(key)로 상기 입력된 제 2 암호문을 복호화하여 상기 제 1 식별번호를 제 3 식별번호로 복원하고, 상기 제 2 난수를 제 5 난수로 복원하는 단계와,(9) restoring the first identification number to a third identification number by decrypting the inputted second cipher text with the third hash function value as a key, and restoring the second random number to a fifth random number; Wow, (10) 상기 제 2 난수와 제 5 난수를 비교하는 2차 인증단계와,(10) a second authentication step of comparing the second random number with the fifth random number, (11) 상기 2차 인증단계 결과, 제 2 난수와 제 5 난수가 서로 다르면 인증 세션을 중단하고, 동일하면 상기 사용자 단말기와 서버 단말기 간의 인증 세션을 수행하는 단계를 포함하여 이루어지는 사용자 인증 방법.(11) stopping the authentication session if the second random number and the fifth random number are different as a result of the second authentication step, and if the same, performing the authentication session between the user terminal and the server terminal. 제 1 항, 제 5 항, 제 8 항 및 제 9 항 중 어느 하나에 있어서,The method according to any one of claims 1, 5, 8 and 9, 제 1 항, 제 5 항 및 제 8 항 중 어느 하나에 있어서는 상기 제 1, 2 해쉬함수 값 중 적어도 하나 이상이 임의의 입력으로부터 160비트(bit)를 생성하는 단방향 해쉬함수(one-way hash function)를 이용하여 산출하고,9. A one-way hash function according to any one of claims 1, 5 and 8, wherein at least one of the first and second hash function values generates 160 bits from any input. ), 제 9 항에 있어서는 상기 제 1, 2, 3 해쉬함수 값 중 적어도 하나 이상이 임의의 입력으로부터 160비트(bit)를 생성하는 단방향 해쉬함수(one-way hash function)를 이용하여 산출하는 것을 특징으로 하는 사용자 인증 방법.10. The method of claim 9, wherein at least one of the first, second, and third hash function values is calculated using a one-way hash function that generates 160 bits from any input. User authentication method. 제 1 항, 제 5 항, 제 8 항 및 제 9 항 중 어느 하나에 있어서,The method according to any one of claims 1, 5, 8 and 9, 상기 비밀키 알고리즘은 DES(Data Encryption Standard), FEAL(Fast data Encryption Algorithm), IDEA(International Data Encryption Algorithm), AES(Advanced Encryption Standard) 중 어느 하나인 것을 특징을 하는 사용자 인증 방법.The secret key algorithm is any one of a Data Encryption Standard (DES), Fast Data Encryption Algorithm (FEAL), an International Data Encryption Algorithm (IDEA), and an Advanced Encryption Standard (AES). 제 1 항, 제 5 항, 제 8 항 및 제 9 항 중 어느 하나에 있어서,The method according to any one of claims 1, 5, 8 and 9, 상기 어느 하나가 제 1 항이면, 제 1 항의 추출단계에서,If any one of the first claim, in the extraction step of claim 1, 상기 어느 하나가 제 5 항이면, (c)단계에서,If any one of the above claim 5, in step (c), 상기 어느 하나가 제 8 항이면, (C)단계에서,If any one of the above 8, in step (C), 상기 어느 하나가 제 9 항이면, (2) 단계에서,If one of the above is claim 9, in step (2), 상기 사용자의 패스워드에 대한 해쉬함수 값을 패스워드 파일로 저장하고 입력된 식별번호에 따른 패스워드와 기 저장된 패스워드 파일을 비교하여 해당되는 해쉬함수 값을 추출하는 것을 특징으로 하는 사용자 인증 방법.And storing a hash function value for the user's password as a password file and extracting a corresponding hash function value by comparing a password according to the input identification number with a previously stored password file.
KR1020060120786A 2006-12-01 2006-12-01 Method for User Authentication KR100860573B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020060120786A KR100860573B1 (en) 2006-12-01 2006-12-01 Method for User Authentication

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020060120786A KR100860573B1 (en) 2006-12-01 2006-12-01 Method for User Authentication

Publications (2)

Publication Number Publication Date
KR20080050040A KR20080050040A (en) 2008-06-05
KR100860573B1 true KR100860573B1 (en) 2008-09-26

Family

ID=39805555

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020060120786A KR100860573B1 (en) 2006-12-01 2006-12-01 Method for User Authentication

Country Status (1)

Country Link
KR (1) KR100860573B1 (en)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100999188B1 (en) 2001-12-20 2010-12-08 제말토 에스에이 Anti-pirate method for the distribution of digital content
KR101244853B1 (en) 2012-12-13 2013-03-18 정진원 Integration authentication method for user using random pulse generation
US10044703B2 (en) 2014-02-28 2018-08-07 Samsung Electronics Co., Ltd. User device performing password based authentication and password registration and authentication methods thereof
KR102127632B1 (en) * 2019-02-22 2020-06-29 손지영 Telephone number change notification processing apparatus and operating method thereof

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100945181B1 (en) * 2008-03-26 2010-03-03 한양대학교 산학협력단 Storage system, middle storage and data management method for data protection using file name
CN101291227A (en) * 2008-06-06 2008-10-22 薛明 Password inputting method, device and system
KR101069500B1 (en) * 2008-09-12 2011-09-30 포항공과대학교 산학협력단 Method for processing secret data based on virtualization and trusted platform module in network system, and computer readable recording medium
KR101632929B1 (en) * 2014-06-16 2016-06-23 주식회사 예티소프트 Terminal, system and method for verifying falsification of web page using the same
ES2788976B2 (en) * 2020-07-24 2022-03-16 Vega Crespo Jose Agustin Francisco Javier SYSTEM FOR THE ENCRYPTION AND AUTHENTICATION OF COMMUNICATIONS WITH MUTUAL AUTHENTICATION OF COMMUNICATORS
KR102435885B1 (en) * 2021-12-13 2022-08-24 캠플러스(주) Web camera applying a security solution based on onetime password

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20040105064A (en) * 2003-06-04 2004-12-14 학교법인 성균관대학 Key-exchange protocol method for mobile communication system
KR20050000481A (en) * 2003-06-27 2005-01-05 주식회사 케이티 Two-factor authenticated key exchange method and authentication method using the same, and recording medium storing program including the same
KR20050058653A (en) * 2003-12-12 2005-06-17 (주)제이엘원 Authenticating method for mobile communication terminal
WO2005106616A1 (en) * 2004-05-03 2005-11-10 Thomson Licensing Certificate validity checking
KR20060029883A (en) * 2004-10-04 2006-04-07 삼성전자주식회사 Method for authenticating the device using broadcast crptography
JP2006311529A (en) 2005-03-30 2006-11-09 Seiko Epson Corp Authentication system and authentication method therefor, authentication server and authentication method therefor, recording medium, and program

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20040105064A (en) * 2003-06-04 2004-12-14 학교법인 성균관대학 Key-exchange protocol method for mobile communication system
KR20050000481A (en) * 2003-06-27 2005-01-05 주식회사 케이티 Two-factor authenticated key exchange method and authentication method using the same, and recording medium storing program including the same
KR20050058653A (en) * 2003-12-12 2005-06-17 (주)제이엘원 Authenticating method for mobile communication terminal
WO2005106616A1 (en) * 2004-05-03 2005-11-10 Thomson Licensing Certificate validity checking
KR20060029883A (en) * 2004-10-04 2006-04-07 삼성전자주식회사 Method for authenticating the device using broadcast crptography
JP2006311529A (en) 2005-03-30 2006-11-09 Seiko Epson Corp Authentication system and authentication method therefor, authentication server and authentication method therefor, recording medium, and program

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100999188B1 (en) 2001-12-20 2010-12-08 제말토 에스에이 Anti-pirate method for the distribution of digital content
KR101244853B1 (en) 2012-12-13 2013-03-18 정진원 Integration authentication method for user using random pulse generation
WO2014092425A1 (en) * 2012-12-13 2014-06-19 Jeong Jin Won Method for performing integrated user authentication by random number generation
US10044703B2 (en) 2014-02-28 2018-08-07 Samsung Electronics Co., Ltd. User device performing password based authentication and password registration and authentication methods thereof
KR102127632B1 (en) * 2019-02-22 2020-06-29 손지영 Telephone number change notification processing apparatus and operating method thereof

Also Published As

Publication number Publication date
KR20080050040A (en) 2008-06-05

Similar Documents

Publication Publication Date Title
KR100860573B1 (en) Method for User Authentication
US8307208B2 (en) Confidential communication method
KR100769482B1 (en) Systems, methods and software for remote password authentication using multiple servers
US8132020B2 (en) System and method for user authentication with exposed and hidden keys
JP2009529832A (en) Undiscoverable, ie secure data communication using black data
Wang et al. Secure password-based remote user authentication scheme with non-tamper resistant smart cards
US20220385644A1 (en) Sharing encrypted items with participants verification
CN109347626B (en) Safety identity authentication method with anti-tracking characteristic
KR101531662B1 (en) Method and system for mutual authentication between client and server
WO2005088892A1 (en) A method of virtual challenge response authentication
US20220029819A1 (en) Ssl communication system, client, server, ssl communication method, and computer program
Chen et al. An efficient nonce-based authentication scheme with key agreement
US8806216B2 (en) Implementation process for the use of cryptographic data of a user stored in a data base
KR101014849B1 (en) Method for mutual authenticating and key exchanging to Public Key without trusted third party and apparatus thereof
KR100285791B1 (en) Method for authentication of id between user and server using password switching system
JP2011248778A (en) Authentication system, terminal device, ic card, computer program, authentication method and command transmission method
JP3078666B2 (en) Mutual authentication / encryption key distribution method
KR100744603B1 (en) Authentification method for packet level user by use of bio data
CN112751858B (en) Data encryption communication terminal method, device, terminal, server and storage medium
Patiyoot “Patiyoot” Cryptography Authentication Protocol for Computer Network
Kim et al. A Secure Hash-Based Strong-Password Authentication Protocol Using One-Time Public-Key Cryptography.
Obeidat et al. An authentication model based on cryptography
JPH11331148A (en) Cryptographic communication system
Abbas et al. A cryptographic authentication technique
Luo et al. defeating Active Phishing Attacks for Web-based transactions

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
AMND Amendment
E601 Decision to refuse application
AMND Amendment
J201 Request for trial against refusal decision
B701 Decision to grant
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20120906

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20130917

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20140918

Year of fee payment: 7

FPAY Annual fee payment

Payment date: 20150902

Year of fee payment: 8

FPAY Annual fee payment

Payment date: 20160628

Year of fee payment: 9

FPAY Annual fee payment

Payment date: 20170628

Year of fee payment: 10

FPAY Annual fee payment

Payment date: 20190701

Year of fee payment: 12