Nothing Special   »   [go: up one dir, main page]

KR20200022258A - Device and method to process password input from user - Google Patents

Device and method to process password input from user Download PDF

Info

Publication number
KR20200022258A
KR20200022258A KR1020180098165A KR20180098165A KR20200022258A KR 20200022258 A KR20200022258 A KR 20200022258A KR 1020180098165 A KR1020180098165 A KR 1020180098165A KR 20180098165 A KR20180098165 A KR 20180098165A KR 20200022258 A KR20200022258 A KR 20200022258A
Authority
KR
South Korea
Prior art keywords
data
random number
input values
password
storage medium
Prior art date
Application number
KR1020180098165A
Other languages
Korean (ko)
Other versions
KR102118476B1 (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 KR1020180098165A priority Critical patent/KR102118476B1/en
Publication of KR20200022258A publication Critical patent/KR20200022258A/en
Application granted granted Critical
Publication of KR102118476B1 publication Critical patent/KR102118476B1/en

Links

Images

Classifications

    • 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/45Structures or tools for the administration of authentication
    • G06F21/46Structures or tools for the administration of authentication by designing passwords or checking the strength of 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/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

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)
  • Telephonic Communication Services (AREA)
  • User Interface Of Digital Computer (AREA)

Abstract

According to an embodiment of the present invention, a user terminal comprises a display device, a storage medium, and a controller configured to control the display device and the storage medium. The controller comprises: a random number generator configured to provide a random number; a virtual keypad driver configured to change arrangement of a virtual keypad according to a random number while displaying the virtual keypad including a plurality of button areas on the display device and determine input values corresponding to a plurality of button areas selected in response to user inputs for selecting the plurality of button areas as a password; and a local controller configured to distribute and store first data based on the random number and second data based on the input values to an external server and the storage medium.

Description

사용자로부터 입력되는 비밀번호를 처리하기 위한 장치 및 방법{DEVICE AND METHOD TO PROCESS PASSWORD INPUT FROM USER}Device and method for processing password input from user {DEVICE AND METHOD TO PROCESS PASSWORD INPUT FROM USER}

본 발명은 네트워크 시스템에 관한 것으로, 좀 더 구체적으로는 사용자로부터 입력되는 비밀번호를 처리하기 위한 장치들 및 방법들에 관한 것이다.The present invention relates to a network system, and more particularly to apparatuses and methods for processing a password input from a user.

최근 데이터 통신망의 발달로 인하여 많은 사람들이 인터넷을 이용하며, 이에 따라 인터넷을 이용한 다양한 서비스들이 제공되고 있다. 이러한 서비스들 중 일부는 사용자 인증을 위해 비밀번호를 요구하며, 따라서 사용자가 입력한 비밀번호가 해킹 등의 공격으로부터 유출되지 않도록 하기 위해 비밀번호에 대한 높은 보안성이 요구된다. 예를 들면, 이러한 요구에 따라 사용자가 입력한 비밀번호는 암호화되어 전송될 수 있다.Recently, due to the development of a data communication network, many people use the Internet, and thus, various services using the Internet are provided. Some of these services require passwords for user authentication, and therefore, high security of passwords is required to prevent passwords entered by users from being leaked from attacks such as hacking. For example, according to such a request, a password input by a user may be encrypted and transmitted.

비밀번호에 대한 보안성을 더 향상시키기 위해, 가상 키패드가 제공될 수 있다. 가상 키패드의 배열은 그것이 생성될 때마다 변하며, 사용자가 가상 키패드의 버튼들을 비밀번호로서 선택할 때 비밀번호와 연관된 데이터가 결정(혹은 생성)된다. 비밀번호와 연관된 데이터는 추가적으로 암호화될 수 있으며, 비밀번호와 연관된 데이터 혹은 추가적으로 암호화된 데이터는 비밀번호를 대체하여 전송될 수 있다. 가상 키패드의 배열이 그것이 생성될 때마다 변하는 것은, 비밀번호와 연관된 데이터가 비밀번호 자체보다 더 향상된 보안성을 가짐을 의미할 수 있다.To further improve security for passwords, a virtual keypad may be provided. The arrangement of the virtual keypad changes each time it is created, and the data associated with the password is determined (or generated) when the user selects the buttons of the virtual keypad as the password. The data associated with the password may be further encrypted, and the data associated with the password or additionally encrypted data may be transmitted in place of the password. Changing the arrangement of the virtual keypad each time it is created may mean that the data associated with the password has more security than the password itself.

위 기재된 내용은 오직 본 발명의 기술적 사상들에 대한 배경 기술의 이해를 돕기 위한 것이며, 따라서 그것은 본 발명의 기술 분야의 당업자에게 알려진 선행 기술에 해당하는 내용으로 이해될 수 없다.The above description is only to assist in understanding the background art of the technical idea of the present invention, and thus it cannot be understood as the content corresponding to the prior art known to those skilled in the art.

본 발명의 실시 예들은 사용자에 의해 입력된 비밀번호 및 비밀번호와 연관된 데이터에 대한 향상된 보안성을 제공하는 장치 및 방법을 제공하기 위한 것이다.Embodiments of the present invention provide an apparatus and method for providing improved security for a password input by a user and data associated with the password.

본 발명의 실시 예에 따른 사용자로부터 입력되는 비밀번호를 처리하기 위한 사용자 단말기는, 디스플레이 장치; 저장 매체; 및 상기 디스플레이 장치 및 상기 저장 매체를 제어하도록 구성되는 컨트롤러를 포함한다. 상기 컨트롤러는, 랜덤 넘버를 제공하도록 구성되는 랜덤 넘버 생성기; 복수의 버튼 영역들을 포함하는 가상 키패드를 상기 디스플레이 장치에 표시하되, 상기 랜덤 넘버에 따라 상기 가상 키패드의 배열을 변경하고, 상기 복수의 버튼 영역들을 상기 비밀번호로 선택하는 사용자 입력들에 응답하여 상기 선택된 버튼 영역들에 각각 대응하는 입력값들을 결정하도록 구성되는 가상 키패드 드라이버; 및 상기 랜덤 넘버에 기반한 제 1 데이터와 상기 입력값들에 기반한 제 2 데이터를 외부 서버 및 상기 저장 매체에 분산 저장하도록 구성되는 로컬 컨트롤러를 포함한다.A user terminal for processing a password input from a user according to an embodiment of the present invention, a display device; Storage media; And a controller configured to control the display device and the storage medium. The controller includes a random number generator configured to provide a random number; Displaying a virtual keypad including a plurality of button regions on the display device, changing the arrangement of the virtual keypad according to the random number, and selecting the plurality of button regions as the password; A virtual keypad driver configured to determine input values respectively corresponding to button areas; And a local controller configured to distribute and store first data based on the random number and second data based on the input values in an external server and the storage medium.

상기 로컬 컨트롤러는 상기 랜덤 넘버를 암호화하고 상기 입력값들을 암호화하도록 구성되는 암호화기를 포함하되, 상기 제 1 데이터는 상기 암호화된 랜덤 넘버를 포함하고, 상기 제 2 데이터는 상기 암호화된 입력값들을 포함할 수 있다.The local controller includes an encryptor configured to encrypt the random number and to encrypt the input values, wherein the first data includes the encrypted random number and the second data includes the encrypted input values. Can be.

상기 암호화기는 상기 랜덤 넘버 및 상기 입력값들을 RSA 알고리즘을 통해 암호화하도록 구성될 수 있다.The encryptor may be configured to encrypt the random number and the input values via an RSA algorithm.

본 발명의 다른 실시 예에 따른 사용자로부터 입력되는 비밀번호를 처리하기 위한 사용자 단말기는, 디스플레이 장치; 저장 매체; 및 상기 디스플레이 장치 및 상기 저장 매체를 제어하도록 구성되는 프로세서를 포함한다. 상기 프로세서는, 복수의 버튼 영역들을 포함하는 가상 키패드를 상기 디스플레이 장치에 표시하되, 제 1 커맨드 신호에 응답하여 생성되는 랜덤 넘버에 따라 상기 가상 키패드의 배열을 변경하고; 상기 복수의 버튼 영역들을 상기 비밀번호로 선택하는 사용자 입력들에 응답하여 상기 선택된 버튼 영역들에 각각 대응하는 입력값들을 결정하고; 상기 랜덤 넘버에 기반한 제 1 데이터와 상기 입력값들에 기반한 제 2 데이터를 외부 서버 및 상기 저장 매체에 분산 저장하도록 구성된다.A user terminal for processing a password input from a user according to another embodiment of the present invention, a display device; Storage media; And a processor configured to control the display device and the storage medium. The processor is configured to: display a virtual keypad including a plurality of button regions on the display device, and change an arrangement of the virtual keypad according to a random number generated in response to a first command signal; Determine input values respectively corresponding to the selected button regions in response to user inputs for selecting the plurality of button regions with the password; And distribute first and second data based on the random number and second data based on the input values to an external server and the storage medium.

상기 사용자 단말기는 네트워크를 통해 상기 외부 서버와 통신하도록 구성되는 통신기를 더 포함하되, 상기 프로세서는 상기 제 1 데이터를 상기 통신기를 통해 상기 외부 서버에 저장하고 상기 제 2 데이터를 상기 저장 매체에 저장하도록 구성될 수 있다.The user terminal further comprises a communicator configured to communicate with the external server via a network, wherein the processor is configured to store the first data in the external server through the communicator and store the second data in the storage medium. Can be configured.

상기 프로세서는, 제 2 커맨드 신호에 응답하여 상기 외부 서버에 액세스하여 상기 제 1 데이터를 획득하고; 상기 획득된 제 1 데이터에 기반하여 상기 랜덤 넘버를 복원하고 상기 저장 매체로부터 독출된 제 2 데이터에 기반하여 상기 입력값들을 복원하도록 구성될 수 있다.The processor is configured to access the external server in response to a second command signal to obtain the first data; The random number may be restored based on the obtained first data and the input values may be restored based on the second data read from the storage medium.

상기 프로세서는, 상기 복원된 랜덤 넘버와 상기 복원된 입력값들에 따라 상기 비밀번호를 복원하도록 구성될 수 있다.The processor may be configured to recover the password according to the restored random number and the restored input values.

상기 프로세서는 상기 획득된 제 1 데이터를 복호화하고 상기 독출된 제 2 데이터를 복호화하도록 구성되고, 상기 복호화된 제 1 데이터는 상기 복원된 랜덤 넘버를 포함하고, 상기 복호화된 제 2 데이터는 상기 복원된 입력값들을 포함할 수 있다.The processor is configured to decode the obtained first data and to decode the read second data, wherein the decoded first data includes the reconstructed random number, and the decoded second data is decoded. May contain input values.

상기 사용자 단말기는 네트워크를 통해 상기 외부 서버와 통신하도록 구성되는 통신기를 더 포함하되, 상기 프로세서는 상기 제 1 데이터를 상기 저장 매체에 저장하고 상기 제 2 데이터를 상기 통신기를 통해 상기 외부 서버에 저장하도록 구성될 수 있다.The user terminal further comprises a communicator configured to communicate with the external server via a network, wherein the processor is configured to store the first data in the storage medium and store the second data in the external server via the communicator. Can be configured.

본 발명의 다른 일면은 사용자로부터 입력되는 비밀번호를 처리하기 위한 방법에 관한 것이다. 상기 방법은, 제 1 커맨드 신호에 응답하여 랜덤 넘버를 생성하는 단계; 복수의 버튼 영역들을 포함하는 가상 키패드를 디스플레이 장치에 표시하되, 상기 랜덤 넘버에 따라 상기 가상 키패드의 배열은 변경되는, 단계; 상기 복수의 버튼 영역들을 상기 비밀번호로 선택하는 사용자 입력들에 응답하여, 상기 선택된 버튼 영역들에 각각 대응하는 입력값들을 결정하는 단계; 및 상기 랜덤 넘버에 기반한 제 1 데이터와 상기 입력값들에 기반한 제 2 데이터를 외부 서버 및 내부 저장 매체에 분산 저장하는 단계를 포함한다.Another aspect of the invention relates to a method for processing a password input from a user. The method includes generating a random number in response to a first command signal; Displaying a virtual keypad including a plurality of button regions on a display device, wherein the arrangement of the virtual keypad is changed according to the random number; Determining input values respectively corresponding to the selected button areas in response to user inputs for selecting the plurality of button areas as the password; And distributing and storing the first data based on the random number and the second data based on the input values in an external server and an internal storage medium.

상기 분산 저장하는 단계는, 상기 제 1 데이터를 네트워크를 통해 상기 외부 서버에 저장하는 단계; 및 상기 제 2 데이터를 상기 내부 저장 매체에 저장하는 단계를 포함할 수 있다.The distributed storage may include: storing the first data on the external server through a network; And storing the second data in the internal storage medium.

상기 방법은, 제 2 커맨드 신호에 응답하여, 상기 네트워크를 통해 상기 외부 서버에 액세스하여 상기 제 1 데이터를 획득하는 단계; 상기 획득된 제 1 데이터에 기반하여 상기 랜덤 넘버를 복원하는 단계; 상기 저장 매체로부터 상기 제 2 데이터를 독출하는 단계; 및 상기 독출된 상기 제 2 데이터에 기반하여 상기 입력값들을 복원하는 단계를 더 포함할 수 있다.The method includes: in response to a second command signal, accessing the external server via the network to obtain the first data; Restoring the random number based on the obtained first data; Reading the second data from the storage medium; And restoring the input values based on the read second data.

상기 방법은, 상기 복원된 랜덤 넘버와 상기 복원된 입력값들에 따라 상기 비밀번호를 복원하는 단계를 더 포함할 수 있다.The method may further include restoring the password according to the restored random number and the restored input values.

본 발명의 또 다른 일면은 사용자 단말기에 프로그램 코드들을 제공하는 클라이언트 서버에 관한 것이다. 상기 클라이언트 서버는, 통신기; 상기 통신기를 통해 사용자 단말기와 통신하도록 구성되는 프로세서; 및 상기 사용자 단말기에 의해 실행될 프로그램 코드들을 저장하는 데이터베이스를 포함한다. 상기 프로그램 코드들은, 복수의 버튼 영역들을 포함하는 가상 키패드를 상기 사용자 단말기의 디스플레이 장치에 표시하되, 랜덤 넘버에 따라 상기 가상 키패드의 배열을 변경하기 위한 제 1 명령어들; 상기 복수의 버튼 영역들을 비밀번호로 선택하는 사용자 입력들에 응답하여 상기 선택된 버튼 영역들에 각각 대응하는 입력값들을 결정하기 위한 제 2 명령어들; 상기 랜덤 넘버에 기반한 제 1 데이터와 상기 입력값들에 기반한 제 2 데이터를 상기 사용자 단말기의 외부 서버 및 상기 사용자 단말기의 내부 저장 매체에 분산 저장하기 위한 제 3 명령어들을 포함한다.Another aspect of the invention relates to a client server for providing program codes to a user terminal. The client server includes a communicator; A processor configured to communicate with a user terminal via the communicator; And a database for storing program codes to be executed by the user terminal. The program codes may include: first instructions for displaying a virtual keypad including a plurality of button areas on a display device of the user terminal, and for changing an arrangement of the virtual keypad according to a random number; Second instructions for determining input values respectively corresponding to the selected button areas in response to user inputs for selecting the plurality of button areas as a password; And third instructions for distributing and storing the first data based on the random number and the second data based on the input values in an external server of the user terminal and an internal storage medium of the user terminal.

상기 제 3 명령어들은, 상기 제 1 데이터를 상기 외부 서버에 저장하고 상기 제 2 데이터를 상기 내부 저장 매체에 저장하기 위한 명령어들을 포함할 수 있다.The third instructions may include instructions for storing the first data on the external server and storing the second data on the internal storage medium.

상기 프로그램 코드들은, 상기 외부 서버에 액세스하여 상기 제 1 데이터를 획득하고; 상기 획득된 제 1 데이터에 기반하여 상기 랜덤 넘버를 복원하고; 상기 저장 매체로부터 상기 제 2 데이터를 독출하고; 상기 독출된 상기 제 2 데이터에 기반하여 상기 입력값들을 복원하기 위한 제 4 명령어들을 더 포함할 수 있다.The program codes access the external server to obtain the first data; Restore the random number based on the obtained first data; Read the second data from the storage medium; The apparatus may further include fourth instructions for restoring the input values based on the read second data.

상기 프로그램 코드들은, 상기 복원된 랜덤 넘버와 상기 복원된 입력값들에 따라 상기 비밀번호를 복원하기 위한 제 5 명령어들을 더 포함할 수 있다.The program codes may further include fifth instructions for recovering the password according to the restored random number and the restored input values.

본 발명의 실시 예들에 따르면, 사용자에 의해 입력된 비밀번호 및 비밀번호와 연관된 데이터에 대한 향상된 보안성을 제공하는 장치 및 방법이 제공된다.According to embodiments of the present invention, an apparatus and method for providing improved security for a password input by a user and data associated with the password are provided.

도 1은 본 발명의 실시 예에 따른 네트워크 시스템을 보여주는 블록도이다.
도 2는 본 발명의 실시 예에 따른 사용자 단말기를 보여주는 블록도이다.
도 3은 사용자 단말기에 디스플레이되는 가상 키패드를 포함하는 화면의 실시 예를 보여주는 도면이다.
도 4는 가상 키패드의 문자 버튼들에 각각 대응하는 입력값들을 보여주는 테이블이다.
도 5는 랜덤 넘버와 입력값 세트를 저장하는 방법을 설명하기 위한 블록도이다.
도 6은 본 발명의 실시 예에 따라 사용자 단말기에서 사용자로부터 입력되는 비밀번호를 처리하는 방법을 보여주는 순서도이다.
도 7은 본 발명의 실시 예에 따른 비밀번호를 제공하는 제공하는 방법을 보여주는 순서도이다.
도 8은 본 발명의 다른 실시 예에 따른 사용자 단말기를 보여주는 블록도이다.
도 9는 도 8의 사용자 단말기와 통신할 수 있는 클라이언트 서버를 보여주는 블록도이다.
1 is a block diagram illustrating a network system according to an exemplary embodiment of the present invention.
2 is a block diagram illustrating a user terminal according to an exemplary embodiment of the present invention.
3 is a diagram illustrating an embodiment of a screen including a virtual keypad displayed on a user terminal.
4 is a table showing input values corresponding to character buttons of a virtual keypad, respectively.
5 is a block diagram illustrating a method of storing a random number and an input value set.
6 is a flowchart illustrating a method of processing a password input from a user in a user terminal according to an exemplary embodiment of the present invention.
7 is a flowchart illustrating a method of providing a password according to an embodiment of the present invention.
8 is a block diagram illustrating a user terminal according to another exemplary embodiment.
9 is a block diagram illustrating a client server capable of communicating with the user terminal of FIG. 8.

이하, 본 발명에 따른 바람직한 실시 예를 첨부한 도면을 참조하여 상세히 설명한다. 하기의 설명에서는 본 발명에 따른 동작을 이해하는데 필요한 부분만이 설명되며 그 이외 부분의 설명은 본 발명의 요지를 모호하지 않도록 하기 위해 생략될 것이라는 것을 유의하여야 한다. 또한 본 발명은 여기에서 설명되는 실시 예에 한정되지 않고 다른 형태로 구체화될 수도 있다. 단지, 여기에서 설명되는 실시 예는 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 본 발명의 기술적 사상을 용이하게 실시할 수 있을 정도로 상세히 설명하기 위하여 제공되는 것이다.Hereinafter, exemplary embodiments of the present invention will be described in detail with reference to the accompanying drawings. It should be noted that in the following description, only parts necessary for understanding the operation according to the present invention will be described, and descriptions of other parts will be omitted so as not to obscure the gist of the present invention. In addition, the present invention is not limited to the embodiments described herein and may be embodied in other forms. However, the embodiments described herein are provided to explain in detail enough to easily implement the technical idea of the present invention to those skilled in the art.

명세서 전체에서, 어떤 부분이 다른 부분과 "연결"되어 있다고 할 때, 이는 "직접적으로 연결"되어 있는 경우뿐 아니라, 그 중간에 다른 소자를 사이에 두고 "간접적으로 연결"되어 있는 경우도 포함한다. 여기에서 사용된 용어는 특정한 실시예들을 설명하기 위한 것이며 본 발명을 한정하기 위한 것이 아니다. 명세서 전체에서, 어떤 부분이 어떤 구성요소를 "포함"한다고 할 때, 이는 특별히 반대되는 기재가 없는 한 다른 구성요소를 제외하는 것이 아니라 다른 구성요소를 더 포함할 수 있는 것을 의미한다. "X, Y, 및 Z 중 적어도 어느 하나", 그리고 "X, Y, 및 Z로 구성된 그룹으로부터 선택된 적어도 어느 하나"는 X 하나, Y 하나, Z 하나, 또는 X, Y, 및 Z 중 둘 또는 그 이상의 어떤 조합 (예를 들면, XYZ, XYY, YZ, ZZ) 으로 해석될 수 있다. 여기에서, "및/또는"은 해당 구성들 중 하나 또는 그 이상의 모든 조합을 포함한다.Throughout the specification, when a part is "connected" to another part, this includes not only "directly connected" but also "indirectly connected" with another element in between. . The terminology used herein is for the purpose of describing particular embodiments only and is not intended to be limiting of the invention. Throughout the specification, when a part is said to "include" a certain component, it means that it can further include other components, except to exclude other components unless otherwise stated. "At least one of X, Y, and Z" and "at least one selected from the group consisting of X, Y, and Z" is X one, Y one, Z one, or two of X, Y, and Z or Any combination of the above (eg, XYZ, XYY, YZ, ZZ) can be interpreted. Here, "and / or" includes all combinations of one or more of the configurations.

도 1은 본 발명의 실시 예에 따른 네트워크 시스템을 보여주는 블록도이다.1 is a block diagram illustrating a network system according to an exemplary embodiment of the present invention.

도 1을 참조하면, 네트워크 시스템(1)은 네트워크(5), 사용자 단말기(10), 웹 서버(20), 및 저장 서버(30)를 포함한다.Referring to FIG. 1, the network system 1 includes a network 5, a user terminal 10, a web server 20, and a storage server 30.

네트워크 시스템(1)은 여기에 설명된 본 발명의 실시 예들에 따른 다양한 방법들을 수행하도록 동작하는 복수의 장치들, 서버들, 및/또는 소프트웨어 구성들을 포함할 수 있다. 도 1에 도시된 장치들 및/또는 서버들은 다른 방식들로 구성될 수 있으며, 장치들 및/또는 서버들에 의해 제공되는 동작들 및 서비스들은 여기에 설명된 실시 예들을 위해 결합되거나 분리될 수 있으며, 더 많은 수 혹은 더 적은 수의 장치들 및/또는 서버들에 의해 수행될 수 있다. 하나 또는 그 이상의 장치들 및/또는 서버들은 동일 혹은 상이한 기업체들에 의해 구동 및/또는 유지될 수 있다.The network system 1 may include a plurality of devices, servers, and / or software configurations that operate to perform various methods in accordance with embodiments of the invention described herein. The devices and / or servers shown in FIG. 1 may be configured in other ways, and the operations and services provided by the devices and / or servers may be combined or separated for the embodiments described herein. And may be performed by more or fewer devices and / or servers. One or more devices and / or servers may be run and / or maintained by the same or different businesses.

네트워크(5)는 사용자 단말기(10), 웹 서버(20), 및 저장 서버(30)와 같은 네트워크 시스템(1) 내 다양한 구성 요소들을 연결한다. 네트워크(5)는 공용 네트워크(public network), 적어도 하나의 사설 네트워크(private network), 유선 네트워크, 무선 네트워크, 다른 적절한 타입의 네트워크, 및 그것들의 조합들 중 적어도 하나를 포함할 수 있다.The network 5 connects various components in the network system 1 such as the user terminal 10, the web server 20, and the storage server 30. The network 5 may comprise at least one of a public network, at least one private network, a wired network, a wireless network, another suitable type of network, and combinations thereof.

사용자 단말기(10)는 네트워크(5)를 통해 웹 서버(20) 및 저장 서버(30)와 통신할 수 있다. 사용자 단말기(10)는 웹 서버(20)에 액세스하여 사용자 아이디를 등록하고 웹 서버(20)가 제공하는 서비스들을 이용하기 위한 동작들을 수행하도록 구성된다.The user terminal 10 may communicate with the web server 20 and the storage server 30 via the network 5. The user terminal 10 is configured to access the web server 20 to register a user ID and perform operations for using the services provided by the web server 20.

실시 예들에서, 사용자 단말기(110)는 컴퓨터, UMPC (Ultra Mobile PC), 워크스테이션, 넷북(net-book), PDA (Personal Digital Assistants), 포터블(portable) 컴퓨터, 웹 타블렛(web tablet), 무선 전화기(wireless phone), 모바일 폰(mobile phone), 스마트폰(smart phone) 등과 같이 정보를 유선 및/또는 무선 환경에서 송수신할 수 있는 컴퓨터 장치일 수 있다.In embodiments, the user terminal 110 may be a computer, a Ultra Mobile PC (UMPC), a workstation, a net-book, a Personal Digital Assistants (PDA), a portable computer, a web tablet, a wireless device. It may be a computer device capable of transmitting and receiving information in a wired and / or wireless environment such as a telephone, a mobile phone, a smart phone, or the like.

웹 서버(20)는 네트워크(5)를 통해 사용자 단말기(10)와 통신하여 다양한 서비스들을 제공할 수 있다. 웹 서버(20)는 서비스들 중 일부를 제공하기 전에, 사용자 인증을 위한 데이터를 사용자 단말기(10)에 요청할 수 있다. 사용자 단말기(10)는 사용자가 비밀번호를 입력할 때 입력된 비밀번호를 처리하고, 처리된 데이터를 비밀번호와 연관된 데이터로서 웹 서버(20)에 전송할 수 있다. 웹 서버(20)는 전송된 데이터를 이용하여 사용자 인증을 수행할 수 있다.The web server 20 may communicate with the user terminal 10 through the network 5 to provide various services. The web server 20 may request the user terminal 10 for data for user authentication before providing some of the services. The user terminal 10 may process the input password when the user inputs a password, and transmit the processed data to the web server 20 as data associated with the password. The web server 20 may perform user authentication using the transmitted data.

사용자가 입력하는 비밀번호에 대한 보안성을 향상시키기 위해, 사용자 단말기(10)는 가상 키패드를 사용자 인터페이스로서 제공할 수 있다. 사용자 단말기(10)는 가상 키패드를 호출하는 커맨드 신호가 내부적으로 생성될 때, 생성된 커맨드 신호에 응답하여 랜덤 넘버를 생성하고, 생성된 랜덤 넘버에 따라 변하는 배열을 갖는 가상 키패드를 생성 및 디스플레이할 수 있다. 사용자 단말기(10)는 가상 키패드에 포함된 버튼 영역들을 선택하는 사용자 입력들을 비밀번호로서 수신할 때, 선택된 버튼들에 각각 할당된 입력값들을 결정할 수 있다. 랜덤 넘버 및 입력값들은 비밀번호와 연관된 데이터로서 제공될 수 있다.In order to improve the security of the password entered by the user, the user terminal 10 may provide a virtual keypad as a user interface. When the command signal for calling the virtual keypad is generated internally, the user terminal 10 generates a random number in response to the generated command signal, and generates and displays a virtual keypad having an arrangement that changes according to the generated random number. Can be. When the user terminal 10 receives user inputs for selecting button areas included in the virtual keypad as a password, the user terminal 10 may determine input values respectively assigned to the selected buttons. The random number and input values may be provided as data associated with the password.

랜덤 넘버 및 입력값들은 다양한 방식들에 따라 더 처리될 수 있으며, 본 발명의 실시 예들은 여기에 한정되지 않는다. 예를 들면, 랜덤 넘버 및 입력값들은 암호화될 수 있다. 예를 들면, 웹 서버(20)가 디지털 서명된 공인인증서를 요청하는 경우, 랜덤 넘버와 입력값들을 이용하여 공인인증서에 디지털 서명하고 디지털 서명된 공인인증서를 웹 서버(20)에 전송할 수 있다.The random number and input values may be further processed in various ways, and embodiments of the present invention are not limited thereto. For example, random numbers and input values can be encrypted. For example, when the web server 20 requests a digitally signed public certificate, the web server 20 may digitally sign the public certificate using a random number and input values, and transmit the digitally signed public certificate to the web server 20.

저장 서버(30)는 네트워크(5)를 통해 사용자 단말기와 통신할 수 있다. 저장 서버(30)는 사용자 단말기(10)가 액세스하여 데이터를 저장할 수 있는 저장 공간을 제공한다.The storage server 30 can communicate with the user terminal via the network 5. The storage server 30 provides a storage space for the user terminal 10 to access and store data.

도 2는 본 발명의 실시 예에 따른 사용자 단말기를 보여주는 블록도이다. 도 3은 사용자 단말기에 디스플레이되는 가상 키패드를 포함하는 화면의 실시 예를 보여주는 도면이다. 도 4는 가상 키패드의 문자 버튼들에 각각 대응하는 입력값들을 보여주는 테이블이다. 도 5는 랜덤 넘버와 입력값 세트를 저장하는 방법을 설명하기 위한 블록도이다.2 is a block diagram illustrating a user terminal according to an exemplary embodiment of the present invention. 3 is a diagram illustrating an embodiment of a screen including a virtual keypad displayed on a user terminal. 4 is a table showing input values corresponding to character buttons of a virtual keypad, respectively. 5 is a block diagram illustrating a method of storing a random number and an input value set.

도 2를 참조하면, 사용자 단말기(100)는 제 1 내지 제 3 인터페이스들(101, 102, 103), 컨트롤러(110), 디스플레이 장치(120), 저장 매체(130), 및 통신기(140)를 포함할 수 있다.Referring to FIG. 2, the user terminal 100 may control the first to third interfaces 101, 102, and 103, the controller 110, the display device 120, the storage medium 130, and the communicator 140. It may include.

컨트롤러(110)는 제 1 내지 제 3 인터페이스들(101~103)을 통해 디스플레이 장치(120), 저장 매체(130), 및 통신기(140)와 각각 통신할 수 있다. 실시 예들에서, 제 1 내지 제 3 인터페이스들(101~103)은 사용자 단말기(100)에 포함된 시스템 버스의 구성 요소들로서 제공될 수 있다. 제 1 인터페이스(101)는 컨트롤러(110)와 디스플레이 장치(120) 사이의 통신 인터페이스를 제공한다. 제 2 인터페이스(102)는 컨트롤러(110)와 저장 매체(130) 사이의 통신 인터페이스를 제공한다. 제 3 인터페이스(103)는 컨트롤러(110)와 통신기(140) 사이의 통신 인터페이스를 제공한다.The controller 110 may communicate with the display apparatus 120, the storage medium 130, and the communicator 140 through the first to third interfaces 101 to 103, respectively. In embodiments, the first to third interfaces 101 to 103 may be provided as components of a system bus included in the user terminal 100. The first interface 101 provides a communication interface between the controller 110 and the display device 120. The second interface 102 provides a communication interface between the controller 110 and the storage medium 130. The third interface 103 provides a communication interface between the controller 110 and the communicator 140.

컨트롤러(110)는 로컬 컨트롤러(111), 랜덤 넘버 생성기(112), 및 가상 키패드 드라이버(113)를 포함한다. 로컬 컨트롤러(111)는 채널(CH)을 통해 사용자 단말기(100) 내 다른 구성 요소들과 통신할 수 있다. 로컬 컨트롤러(111)는 채널(CH)을 통해 수신되는 커맨드 신호들에 응답하여 동작할 수 있다. 로컬 컨트롤러(111)는 채널(CH)을 통해 가상 키패드를 호출하는 제 1 커맨드 신호가 수신될 때, 제 1 제어 신호(CTRL1)를 출력하여 랜덤 넘버를 출력하도록 랜덤 넘버 생성기(112)를 제어할 수 있다. 로컬 컨트롤러(110)는 제 2 제어 신호(CTRL2)를 출력하여 가상 키패드를 생성하도록 가상 키패드 드라이버(113)를 제어할 수 있다.The controller 110 includes a local controller 111, a random number generator 112, and a virtual keypad driver 113. The local controller 111 may communicate with other components in the user terminal 100 through the channel CH. The local controller 111 may operate in response to command signals received through the channel CH. When the first command signal for calling the virtual keypad is received through the channel CH, the local controller 111 may control the random number generator 112 to output the first control signal CTRL1 to output the random number. Can be. The local controller 110 may control the virtual keypad driver 113 to output the second control signal CTRL2 to generate the virtual keypad.

랜덤 넘버 생성기(112)는 제 1 제어 신호(CTRL1)에 응답하여 랜덤 넘버를 생성하도록 구성된다. 도 2에서, 랜덤 넘버 생성기(112)는 컨트롤러(110)에 포함되는 것으로 도시된다. 그러나 이는 예시적인 것으로, 랜덤 넘버 생성기(112)는 컨트롤러(110)의 외부에 배치되어 사용자 단말기(100)의 다른 구성 요소에 포함될 수 있다.The random number generator 112 is configured to generate a random number in response to the first control signal CTRL1. In FIG. 2, random number generator 112 is shown to be included in controller 110. However, this is merely an example. The random number generator 112 may be disposed outside the controller 110 and included in other components of the user terminal 100.

랜덤 넘버는 다양한 방식들에 따라 생성될 수 있다. 예를 들면, 랜덤 넘버는 타임 스탬프일 수 있다. 다른 예로서, 랜덤 넘버는 타임 스탬프를 입력값으로 이용하여 연산된 출력값일 수 있다. 랜덤 넘버 생성기(112)는 생성된 랜덤 넘버(RD)를 가상 키패드 드라이버(113)에 전송한다.The random number may be generated in various ways. For example, the random number may be a time stamp. As another example, the random number may be an output value calculated using the time stamp as an input value. The random number generator 112 transmits the generated random number RD to the virtual keypad driver 113.

가상 키패드 드라이버(113)는, 제 2 제어 신호(CTRL2)에 응답하여, 랜덤 넘버(RD)에 따라 가상 키패드를 생성하고 생성된 가상 키패드를 제 1 인터페이스(101)를 통해 디스플레이 장치(120)에 디스플레이하도록 구성된다. 가상 키패드 드라이버(113)는 수신되는 랜덤 넘버(RD)에 따라 가상 키패드의 배열을 변경한다.In response to the second control signal CTRL2, the virtual keypad driver 113 generates a virtual keypad according to the random number RD and transmits the generated virtual keypad to the display device 120 through the first interface 101. Configured to display. The virtual keypad driver 113 changes the arrangement of the virtual keypad according to the received random number RD.

도 2와 함께 도 3을 참조하면, 사용자 단말기(100)에 디스플레이되는 화면은 비밀번호 표시 영역(210) 및 가상 키패드(220)를 포함한다. 가상 키패드(220)는 비밀번호 입력 영역(230)을 포함하며, 비밀번호 입력 영역(230)은 복수의 버튼 영역들을 포함한다. 버튼 영역들 각각은 문자(221)로 채워지거나, 비활성(inactive) 심볼(222)로 제공될 수 있다. 비밀번호 입력 영역(230)의 버튼 영역을 선택하는 사용자 입력이 수신될 때마다, 비밀번호 표시 영역(210)에 선택된 버튼 영역에 대응하는 문자(221)가 표시될 수 있다. 또는, 사용자가 아닌 다른 사람에 의해 비밀번호가 인식되는 것을 방지하기 위해, 선택된 버튼 영역에 대응하는 문자 대신 적절한 심볼이 비밀번호 표시 영역(210)에 표시될 수 있다. 비활성 심볼(222)로 제공되는 버튼 영역은 비밀번호로서 선택될 수 없을 수 있다. 도 3에서, 비활성 심볼(222)로 제공되는 버튼 영역들은 사선으로 패터닝되어 있다.Referring to FIG. 3 together with FIG. 2, the screen displayed on the user terminal 100 includes a password display area 210 and a virtual keypad 220. The virtual keypad 220 includes a password input area 230, and the password input area 230 includes a plurality of button areas. Each of the button regions may be filled with characters 221 or provided as an inactive symbol 222. Whenever a user input for selecting a button area of the password input area 230 is received, a character 221 corresponding to the selected button area may be displayed on the password display area 210. Alternatively, in order to prevent the password from being recognized by anyone other than the user, an appropriate symbol may be displayed in the password display area 210 instead of the letter corresponding to the selected button area. The button area provided by the inactive symbol 222 may not be selected as a password. In FIG. 3, button regions provided as inactive symbols 222 are patterned diagonally.

비밀번호 입력 영역(230)의 버튼 영역들에 채워지는 문자들(221) 및 비활성 심볼들(222)의 배열은 랜덤 넘버(RD)에 따라 변경된다. 문자들(221) 및 비활성 심볼들(222)의 배열은 다양한 방식들에 따라 결정될 수 있으며, 본 발명의 실시 예들은 여기에 한정되지 않는다. 예를 들면, 랜덤 넘버(RD)에 따라 비활성 심볼들(222)의 개수 및/또는 위치들이 결정되고, 나머지 버튼 영역들에 문자들(221)이 채워질 수 있다. 문자들(221)이 채워지는 버튼 영역들의 배열은 마찬가지로 랜덤 넘버(RD)에 따라 변경될 수 있다.The arrangement of the characters 221 and the inactive symbols 222 filled in the button areas of the password input area 230 is changed according to the random number RD. The arrangement of characters 221 and inactive symbols 222 may be determined in various ways, and embodiments of the invention are not limited in this regard. For example, the number and / or positions of the inactive symbols 222 may be determined according to the random number RD, and the characters 221 may be filled in the remaining button areas. The arrangement of the button regions filled with the characters 221 may likewise be changed according to the random number RD.

가상 키패드(220)는 재배열(rearrange) 버튼(223), 엔터(enter) 버튼(224), 및 기타 필요한 버튼들을 더 포함할 수 있다. 재배열 버튼(223)을 선택하는 사용자 입력에 응답하여, 위 설명된 제 1 커맨드 신호가 재생성될 수 있다. 컨트롤러(110)는 재생성된 제 1 커맨드 신호에 응답하여 제 1 제어 신호(CTRL1)를 출력하며, 랜덤 넘버 생성기(112)는 제 1 제어 신호(CTRL1)에 응답하여 랜덤 넘버(RD)를 재생성할 수 있다. 가상 키패드 드라이버(113)는 재생성된 랜덤 넘버(RD)에 따라 상이한 배열을 갖는 비밀번호 입력 영역(230)을 포함하는 가상 키패드(220)를 제공한다. 엔터 버튼(224)을 선택하는 사용자 입력에 응답하여, 비밀번호 입력 영역(230)의 선택된 버튼 영역들의 문자들(221)이 비밀번호로 결정될 수 있다.The virtual keypad 220 may further include a rearrange button 223, an enter button 224, and other necessary buttons. In response to a user input of selecting rearrange button 223, the first command signal described above may be regenerated. The controller 110 outputs the first control signal CTRL1 in response to the regenerated first command signal, and the random number generator 112 regenerates the random number RD in response to the first control signal CTRL1. Can be. The virtual keypad driver 113 provides a virtual keypad 220 including a password input area 230 having a different arrangement according to the regenerated random number RD. In response to a user input of selecting the enter button 224, the characters 221 of the selected button areas of the password input area 230 may be determined as a password.

가상 키패드 드라이버(113)는 가상 키패드(220)를 이용해 비밀번호를 선택하는 사용자 입력에 응답하여, 비밀번호 입력 영역(230)의 선택된 버튼 영역들에 각각 대응하는 입력값들을 입력값 세트(INVS)로서 로컬 컨트롤러(111)에 전송한다. 도 4를 참조하면, 비밀번호 입력 영역(230)에 포함된 제 1 내지 제 m 버튼 영역들(BTN1~BTNm)은 각각 제 1 내지 제 m 입력값들(INV1~INVm)에 대응한다(m은 1보다 크거나 같은 정수). 제 1 내지 제 m 버튼 영역들(BTN1~BTNm) 중 적어도 일부가 비밀번호로 선택될 때, 해당 입력값들이 특정될 수 있다. 가상 키패드 드라이버(113)는 특정된 입력값들을 입력값 세트(INVS)로서 출력할 수 있다.In response to a user input for selecting a password using the virtual keypad 220, the virtual keypad driver 113 may locally input input values corresponding to the selected button areas of the password input area 230 as the input value set INVS. Transfer to the controller 111. Referring to FIG. 4, the first to m th button areas BTN1 to BTNm included in the password input area 230 correspond to the first to m th input values INV1 to INVm, respectively, where m is 1. Integer greater than or equal to). When at least some of the first to m-th button areas BTN1 to BTNm are selected as passwords, corresponding input values may be specified. The virtual keypad driver 113 may output the specified input values as the input value set INVS.

다시 도 2를 참조하면, 로컬 컨트롤러(111)는 랜덤 넘버 생성기(112)에 의해 생성된 랜덤 넘버(RD) 및 가상 키패드 드라이버(113)에 의해 생성된 입력값 세트(INVS)를 수신한다.Referring back to FIG. 2, the local controller 111 receives a random number RD generated by the random number generator 112 and an input value set INVS generated by the virtual keypad driver 113.

로컬 컨트롤러(111)는 랜덤 넘버(RD)에 기반하여 제 1 데이터를 생성하고, 입력값 세트(INVS)에 기반하여 제 2 데이터를 생성하고, 생성된 제 1 데이터 및 제 2 데이터를 저장 매체(130) 및 외부의 저장 서버(30, 도 1 참조)에 분산 저장하도록 구성된다. 로컬 컨트롤러(111)는 랜덤 넘버(RD) 및 입력값 세트(INVS)를, 예를 들면 RSA(Rivest Shamir Adleman) 알고리즘을 통해 암호화하도록 구성되는 암복호화기(114)를 포함할 수 있다. 그리고, 로컬 컨트롤러(111)는 암호화된 랜덤 넘버 및 암호화된 입력값 세트를 저장 매체(130) 및 저장 서버(30)에 분산 저장할 수 있다. 실시 예들에서, 도 5에 도시된 바와 같이, 로컬 컨트롤러(111)는 암복호화기(114)에 의해 암호화된 입력값 세트(EINVS)를 저장 매체(130)에 저장하고, 암복호화기(114)에 의해 암호화된 랜덤 넘버(ERD)를 네트워크(105)를 통해 저장 서버(30)에 저장할 수 있다. 로컬 컨트롤러(111)는 제 2 및 제 3 인터페이스들(102, 103)을 통해 저장 매체(130) 및 통신기(140)와 각각 통신한다. 로컬 컨트롤러(111)는 제 2 인터페이스(102)를 통해 암호화된 입력값 세트(EINVS)를 저장 매체(130)에 기입(write)하고, 제 3 인터페이스(103)를 통해 통신기(140)를 제어함으로써 암호화된 랜덤 넘버(ERD)를 저장 서버(30)에 저장할 수 있다.The local controller 111 generates first data based on the random number RD, generates second data based on the input value set INVS, and stores the generated first data and the second data in a storage medium ( 130 and distributed storage on an external storage server 30 (see FIG. 1). The local controller 111 may include an encryption / decryptor 114 configured to encrypt the random number RD and the input value set INVS through, for example, a Rivest Shamir Adleman (RSA) algorithm. The local controller 111 may distribute and store the encrypted random number and the encrypted input value set in the storage medium 130 and the storage server 30. In embodiments, as shown in FIG. 5, the local controller 111 stores the input value set EINVS encrypted by the decryptor 114 in the storage medium 130, and the decryptor 114. The random number (ERD) encrypted by the PDU may be stored in the storage server 30 through the network 105. The local controller 111 communicates with the storage medium 130 and the communicator 140 via the second and third interfaces 102, 103, respectively. The local controller 111 writes the encrypted input value set EINVS through the second interface 102 to the storage medium 130, and controls the communicator 140 through the third interface 103. The encrypted random number ERD may be stored in the storage server 30.

사용자 단말기(100)는 사용자로부터 비밀번호를 재차 입력받지 않고도 이전에 입력된 비밀번호 혹은 비밀번호와 연관된 데이터를 이용한 동작들이 요구될 수 있다. 예를 들면, 사용자 단말기(100)는 비밀번호를 수신하는 사용자 입력없이, 웹 서버(20)와 통신하여 사용자 인증을 위한 동작들을 수행할 수 있다. 이러한 경우, 비밀번호 혹은 비밀번호와 연관된 데이터의 복원이 요구된다.The user terminal 100 may require operations using a password or data associated with a password previously input without receiving the password again from the user. For example, the user terminal 100 may perform operations for user authentication by communicating with the web server 20 without a user input for receiving a password. In such a case, recovery of the password or data associated with the password is required.

비밀번호 혹은 비밀번호와 연관된 데이터를 요청하는 제 2 커맨드 신호가 채널(CH)을 통해 컨트롤러(110)에 수신될 수 있다. 로컬 컨트롤러(111)는 분산 저장된 암호화된 랜덤 넘버와 암호화된 입력값 세트를 저장 매체(130) 및 저장 서버(30)로부터 획득할 수 있다. 실시 예들에서, 로컬 컨트롤러(111)는 제 2 인터페이스(102)를 통해 저장 매체(130)로부터 암호화된 입력값 세트를 독출하고, 제 3 인터페이스(103)를 통해 통신기(140)를 제어함으로써 저장 서버(30)로부터 암호화된 랜덤 넘버를 획득할 수 있다.A second command signal for requesting a password or data associated with the password may be received by the controller 110 through the channel CH. The local controller 111 may obtain the distributed randomly stored encrypted random number and the encrypted input value set from the storage medium 130 and the storage server 30. In embodiments, the local controller 111 may read the encrypted set of input values from the storage medium 130 via the second interface 102 and control the communicator 140 via the third interface 103. An encrypted random number can be obtained from (30).

암복호화기(114)는 암호화된 랜덤 넘버 및 암호화된 입력값 세트를, 예를 들면 RSA(Rivest Shamir Adleman) 알고리즘을 통해 복호화하여 랜덤 넘버 및 입력값 세트를 복원하도록 구성된다. 나아가, 로컬 컨트롤러(111)는 복원된 랜덤 넘버(RD) 및 복원된 입력값 세트(INVS)를 가상 키패드 드라이버(113)에 제공하고, 가상 키패드 드라이버(113)는 복원된 랜덤 넘버(RD) 및 복원된 입력값 세트(INVS)를 이용하여 비밀번호를 복원할 수 있다. 예를 들면, 가상 키패드 드라이버(113)는 복원된 입력값 세트(INVS)에 따라 비밀번호로서 선택되었던 비밀번호 입력 영역(230)의 버튼 영역들을 결정하고 복원된 랜덤 넘버(RD)에 따라 선택되었던 버튼 영역들에 대응하는 문자들을 결정함으로써, 비밀번호를 복원할 수 있다.The decryptor 114 is configured to decrypt the encrypted random number and the encrypted input value set, for example, via a Rist Shamir Adleman (RSA) algorithm to recover the random number and input value set. Furthermore, the local controller 111 provides the restored random number RD and the restored input value set INVS to the virtual keypad driver 113, and the virtual keypad driver 113 provides the restored random number RD and The password can be restored using the restored set of input values (INVS). For example, the virtual keypad driver 113 determines the button areas of the password input area 230 that were selected as passwords according to the restored input value set INVS, and the button areas that were selected according to the restored random number RD. By determining the characters corresponding to the data, the password can be recovered.

복원된 랜덤 넘버(RD)와 복원된 입력값 세트(INVS) 혹은 복원된 비밀번호는 제 2 커맨드 신호에 대한 피드백 신호로서 제공될 수 있다. 예를 들면, 복원된 랜덤 넘버(RD)와 복원된 입력값 세트(INVS) 혹은 복원된 비밀번호는 채널(CH)을 통해 연결된 사용자 단말기(100) 내 다른 구성 요소에 제공될 수 있다.The recovered random number RD and the restored input value set INVS or the recovered password may be provided as a feedback signal for the second command signal. For example, the restored random number RD and the restored input value set INVS or the restored password may be provided to other components in the user terminal 100 connected through the channel CH.

실시 예들에서, 로컬 컨트롤러(111), 랜덤 넘버 생성기(112), 가상 키패드 드라이버(113), 및 암복호화기(114) 각각은 하드웨어 모듈, 소프트웨어 모듈, 펌웨어 모듈, 및 그것들의 조합 중 적어도 하나로서 제공될 수 있다.In embodiments, each of the local controller 111, the random number generator 112, the virtual keypad driver 113, and the decryptor 114 may each be at least one of a hardware module, a software module, a firmware module, and a combination thereof. Can be provided.

본 발명의 실시 예에 따르면, 사용자 단말기(100)는 랜덤 넘버(RD)에 기반한 제 1 데이터(예를 들면, 암호화된 랜덤 넘버) 및 입력값 세트(INVS)에 기반한 제 2 데이터(예를 들면, 암호화된 입력값 세트)를 저장 매체(130) 및 외부의 저장 서버(30)에 분산 저장하도록 구성된다. 앞서 설명된 바와 같이, 가상 키패드(220, 도 3 참조)의 배열은 랜덤 넘버(RD)에 따라 변하므로 랜덤 넘버(RD) 없이 입력값 세트(INVS)를 이용하여 비밀번호를 복원하는 것은 매우 어렵다. 마찬가지로, 입력값 세트(INVS) 없이 랜덤 넘버(RD)를 이용하여 비밀번호를 복원하는 것은 매우 어렵다. 이에 따라, 저장 매체(130) 및 저장 서버(30) 중 어느 하나의 데이터가 유출되더라도, 저장 매체(130) 및 저장 서버(30) 모두의 데이터가 유출되지 않는 한 비밀번호는 안전하게 보호될 수 있다. 이는, 가상 키패드(220)를 통해 비밀번호를 입력받는 사용자 단말기(100)가 랜덤 넘버(RD) 및 입력값 세트(INVS)를 비밀번호와 연관된 데이터로서 제공하도록 구성된다는 점을 고려할 때, 가상 키패드(220)를 지원하는 사용자 단말기(100) 및 그것을 포함하는 네트워크 시스템(1)에 향상된 보안성을 제공함을 의미할 수 있다. 따라서, 사용자 비밀번호에 대해 향상된 보안성을 갖는 사용자 단말기(100) 및 그것을 포함하는 네트워크 시스템(1)이 제공될 수 있다.According to an embodiment of the present disclosure, the user terminal 100 may include first data (eg, encrypted random number) based on a random number RD and second data (eg, based on an input value set INVS). , The encrypted set of input values) are distributed and stored in the storage medium 130 and the external storage server 30. As described above, since the arrangement of the virtual keypad 220 (see FIG. 3) varies according to the random number RD, it is very difficult to recover the password using the input value set INVS without the random number RD. Similarly, it is very difficult to recover a password using a random number RD without an input value set INVS. Accordingly, even if data of any one of the storage medium 130 and the storage server 30 is leaked, the password can be secured as long as the data of both the storage medium 130 and the storage server 30 are not leaked. This takes into account that the user terminal 100 receiving a password through the virtual keypad 220 is configured to provide a random number RD and an input value set INVS as data associated with the password. It may mean that it provides enhanced security to the user terminal 100 and the network system 1 including the same. Thus, the user terminal 100 and the network system 1 including the same having improved security for the user password can be provided.

도 6은 본 발명의 실시 예에 따라 사용자 단말기에서 사용자로부터 입력되는 비밀번호를 처리하는 방법을 보여주는 순서도이다.6 is a flowchart illustrating a method of processing a password input from a user in a user terminal according to an exemplary embodiment of the present invention.

도 1 및 도 6을 참조하면, S110단계에서, 가상 키패드를 호출하는 제 1 커맨드 신호에 응답하여, 랜덤 넘버가 생성된다. 예를 들면, 사용자 단말기(10)에 설치된 응용 어플리케이션은 가상 키패드(220, 도 3 참조)의 생성을 위해 제 1 커맨드 신호를 생성할 수 있다.1 and 6, in step S110, in response to the first command signal for calling the virtual keypad, a random number is generated. For example, an application installed in the user terminal 10 may generate a first command signal for generating the virtual keypad 220 (see FIG. 3).

S120단계에서, 랜덤 넘버에 따라 가상 키패드(220)가 생성 및 디스플레이된다. 가상 키패드(220)의 배열은 랜덤 넘버에 따라 변경된다. In operation S120, the virtual keypad 220 is generated and displayed according to the random number. The arrangement of the virtual keypad 220 is changed according to the random number.

S130단계에서, 다른 가상 키패드(220)가 요청되는지 여부가 판별된다. 만약 그렇다면, S110단계 내지 S120단계가 재수행된다. 예를 들면, 가상 키패드(220)의 재배열 버튼(223, 도 3 참조)을 선택하는 사용자 입력이 수신될 때, 제 1 커맨드 신호가 다시 생성되고, 생성된 제 1 커맨드 신호에 응답하여 S110단계 및 S120단계가 재수행될 수 있다. 만약 그렇지 않다면, S140단계가 수행된다.In step S130, it is determined whether another virtual keypad 220 is requested. If so, steps S110 to S120 are performed again. For example, when a user input for selecting the rearrangement button 223 (see FIG. 3) of the virtual keypad 220 is received, a first command signal is generated again, and in step S110 in response to the generated first command signal. And step S120 may be performed again. If not, step S140 is performed.

S140단계에서, 가상 키패드(220)의 복수의 버튼 영역들을 비밀번호로서 선택하는 사용자 입력들이 감지된다. 예를 들면, 문자들(221, 도 3 참조)로 채워진 버튼 영역들 중 적어도 일부가 사용자 입력들에 의해 선택될 수 있으며, 비활성 심볼들(222, 도 3 참조)로 채워진 버튼 영역들은 선택될 수 없다. S150단계에서, 선택된 버튼 영역들에 각각 대응하는 입력값들이 결정된다.In operation S140, user inputs for selecting a plurality of button areas of the virtual keypad 220 as a password are sensed. For example, at least some of the button areas filled with characters 221 (see FIG. 3) may be selected by user inputs, and button areas filled with inactive symbols 222 (see FIG. 3) may be selected. none. In operation S150, input values corresponding to the selected button areas are determined.

S160단계에서, 랜덤 넘버와 입력값 세트 각각이 암호화된다. 예를 들면, RSA(Rivest Shamir Adleman) 알고리즘을 통해 랜덤 넘버와 입력값 세트가 암호화될 수 있다. S170단계에서, 암호화된 랜덤 넘버와 암호화된 입력값 세트가 내부 저장 매체(130, 도 2 참조) 및 외부 저장 서버(30)에 분산 저장된다. 실시 예들에서, 암호화된 입력값 세트는 내부 저장 매체(130)에 저장되고, 암호화된 랜덤 넘버는 외부 저장 서버(30)에 저장될 수 있다.In step S160, each of the random number and the input value set is encrypted. For example, a random number and a set of input values may be encrypted through a Rivest Shamir Adleman (RSA) algorithm. In operation S170, the encrypted random number and the encrypted input value set are distributed and stored in the internal storage medium 130 (see FIG. 2) and the external storage server 30. In embodiments, the encrypted set of input values may be stored in the internal storage medium 130 and the encrypted random number may be stored in the external storage server 30.

도 7은 본 발명의 실시 예에 따른 비밀번호를 제공하는 제공하는 방법을 보여주는 순서도이다.7 is a flowchart illustrating a method of providing a password according to an embodiment of the present invention.

도 1 및 도 7을 참조하면, S210단계에서, 비밀번호 혹은 비밀번호와 연관된 데이터를 요청하는 제 2 커맨드 신호에 응답하여, 외부 저장 서버(30)에 액세스하여 암호화된 랜덤 넘버를 획득한다. S220단계에서, 암호화된 입력값 세트가 내부 저장 매체(130, 도 2 참조)로부터 독출된다.1 and 7, in step S210, in response to a second command signal for requesting a password or data associated with a password, the external storage server 30 is accessed to obtain an encrypted random number. In operation S220, the encrypted input value set is read from the internal storage medium 130 (see FIG. 2).

S230단계에서, 암호화된 랜덤 넘버와 암호화된 입력값 세트 각각이 복호화되어 랜덤 넘버 및 입력값 세트를 복원한다. 구현 례에 따라, 제 2 커맨드 신호에 대한 피드백 신호로서 복원된 랜덤 넘버 및 복원된 입력값 세트가 비밀번호와 연관된 데이터로서 제공될 수 있다.In operation S230, each of the encrypted random number and the encrypted input value set is decrypted to recover the random number and the input value set. According to an implementation example, a random number restored as a feedback signal for the second command signal and a restored set of input values may be provided as data associated with the password.

구현 례에 따라, 제 2 커맨드 신호에 대한 피드백 신호로서 비밀번호의 제공이 요구될 수 있다. 이러한 경우, S240단계가 더 수행될 수 있다. S240단계에서, 복호화된 랜덤 넘버와 복호화된 입력값 세트에 따라 비밀번호가 복원된다. 예를 들면, 복호화된 입력값 세트(INVS)에 따라 비밀번호로서 선택되었던 비밀번호 입력 영역(230, 도 3 참조)의 버튼 영역들이 결정되고 복호화된 랜덤 넘버(RD)에 따라 선택되었던 버튼 영역들에 대응하는 문자들(221, 도 3 참조)이 결정되어 비밀번호를 복원할 수 있다. 복원된 비밀번호는 제 2 커맨드 신호에 대한 피드백 신호로서 제공될 수 있다.According to an implementation example, provision of a password may be required as a feedback signal for the second command signal. In this case, step S240 may be further performed. In operation S240, the password is restored according to the decrypted random number and the decrypted input value set. For example, the button areas of the password input area 230 (refer to FIG. 3) that were selected as the password according to the decrypted input value set INVS are determined and correspond to the button areas that were selected according to the decrypted random number RD. The characters 221 (see FIG. 3) may be determined to restore the password. The recovered password may be provided as a feedback signal for the second command signal.

본 발명의 실시 예에 따르면, 랜덤 넘버에 기반한 제 1 데이터(예를 들면, 암호화된 랜덤 넘버) 및 입력값 세트에 기반한 제 2 데이터(예를 들면, 암호화된 입력값 세트)는 저장 매체(130) 및 외부의 저장 서버(30)에 분산 저장된다. 이에 따라, 저장 매체(130) 및 저장 서버(30) 중 어느 하나의 데이터가 유출되더라도, 저장 매체(130) 및 저장 서버(30) 모두의 데이터가 유출되지 않는 한 비밀번호는 안전하게 보호될 수 있다. 따라서, 사용자 비밀번호에 대해 향상된 보안성을 갖는 사용자 비밀번호의 처리 방법이 제공될 수 있다.According to an embodiment of the present invention, the first data (eg, encrypted random number) based on the random number and the second data (eg, encrypted input value set) based on the input value set are stored in the storage medium 130. ) And externally stored in the storage server 30. Accordingly, even if data of any one of the storage medium 130 and the storage server 30 is leaked, the password can be secured as long as the data of both the storage medium 130 and the storage server 30 are not leaked. Accordingly, a method of processing a user password having improved security with respect to the user password can be provided.

도 8은 본 발명의 다른 실시 예에 따른 사용자 단말기를 보여주는 블록도이다.8 is a block diagram illustrating a user terminal according to another exemplary embodiment.

도 8을 참조하면, 사용자 단말기(1000)는 통신기(1100), A/V(Audio/Video) 입력기(1200), 사용자 인터페이스(1300), 디스플레이 장치(1400), 불휘발성 저장 매체(1500), 프로세서(1600), 및 시스템 메모리(1700)를 포함한다.Referring to FIG. 8, the user terminal 1000 may include a communicator 1100, an A / V input device 1200, a user interface 1300, a display device 1400, a nonvolatile storage medium 1500, A processor 1600, and a system memory 1700.

통신기(1100)는 이동 통신망 상에서 기지국, 외부의 서버, 및 외부의 단말 중 적어도 하나와 무선 신호를 송신하도록 구성된다. 이때, 무선 신호는 음성 호 신호, 화상 통화 호 신호, 또는 문자/멀티미디어 메시지 송수신에 따른 다양한 타입들의 데이터를 포함할 수 있다. 또한, 통신기(1100)는 무선 인터넷에 접속하도록 구성된다. 나아가, 통신기(1100)는 근거리 통신을 수행하도록 구성되며, 블루투스(Bluetooth), RFID(Radio Frequency Identification), 적외선 통신(IrDA, infrared Data Association), UWB(Ultra Wideband), 지그비(ZigBee) 등의 근거리 통신 기술들이 이용될 수 있다. 통신기(1100)는 도 2를 참조하여 설명된 통신기(140)로서 제공될 수 있다.The communicator 1100 is configured to transmit a radio signal with at least one of a base station, an external server, and an external terminal on a mobile communication network. In this case, the wireless signal may include a voice call signal, a video call signal, or various types of data according to transmission and reception of a text / multimedia message. In addition, the communicator 1100 is configured to connect to the wireless Internet. Furthermore, the communicator 1100 is configured to perform short-range communication, and may include short-range communication such as Bluetooth, Radio Frequency Identification (RFID), infrared data association (IrDA), Ultra Wideband (UWB), ZigBee, and the like. Communication techniques can be used. The communicator 1100 may be provided as the communicator 140 described with reference to FIG. 2.

A/V 입력기(1200)는 오디오 신호 및 비디오 신호의 입력을 위한 것으로, 카메라를 포함할 수 있다. 카메라는 이미지 센서에 의해 얻어지는 이미지를 처리한다. 카메라에 의해 처리된 이미지는 시스템 메모리(1700)에 저장되거나 통신기(1100)를 통해 외부로 전송될 수 있다.The A / V input unit 1200 is for inputting an audio signal and a video signal, and may include a camera. The camera processes the image obtained by the image sensor. The image processed by the camera may be stored in the system memory 1700 or transmitted to the outside through the communicator 1100.

사용자 인터페이스(1300)는 사용자 단말기(1000) 혹은 프로세서(1600)의 동작들을 제어하기 위한 사용자 입력을 수신한다. 사용자 인터페이스(1300)는 키 패드(key pad), 돔 스위치(dome switch), 터치 패드(정압/정전), 조그 휠, 조그 스위치, 핑거 마우스 등을 포함할 수 있다. 특히, 터치 패드가 디스플레이 장치(1400)와 일체로 형성되는 경우, 이를 터치 스크린(touch screen)이라 부를 수 있다. 이러한 경우, 사용자 인터페이스(1300)는 디스플레이 장치(1400)에 의해 시각화될 수 있다.The user interface 1300 receives a user input for controlling operations of the user terminal 1000 or the processor 1600. The user interface 1300 may include a key pad, a dome switch, a touch pad (static pressure / capacitance), a jog wheel, a jog switch, a finger mouse, and the like. In particular, when the touch pad is integrally formed with the display device 1400, this may be referred to as a touch screen. In this case, the user interface 1300 may be visualized by the display device 1400.

디스플레이 장치(1400)는 프로세서(1600)의 제어에 응답하여 동작한다. 디스플레이 장치(1400)는 사용자 단말기(1000) 혹은 프로세서(1600)에 의해 처리되는 정보를 표시한다. 예를 들면, 디스플레이 장치(1400)는 프로세서(1600)의 제어에 따라 이미지를 디스플레이할 수 있다. 디스플레이 장치(1400)가 터치 패드와 일체로 형성되어 터치 스크린을 구성하는 경우, 디스플레이 장치(1400)는 사용자 인터페이스(1300)를 시각화할 수 있다. 디스플레이 장치(1400)는 도 2의 디스플레이 장치(120)로서 제공될 수 있다.The display apparatus 1400 operates under the control of the processor 1600. The display device 1400 displays information processed by the user terminal 1000 or the processor 1600. For example, the display device 1400 may display an image under the control of the processor 1600. When the display device 1400 is integrally formed with the touch pad to form a touch screen, the display device 1400 may visualize the user interface 1300. The display device 1400 may be provided as the display device 120 of FIG. 2.

디스플레이 장치(1400)는 액정 디스플레이(liquid crystal display), 유기 발광 다이오드(organic light-emitting diode) 디스플레이, 플렉서블 디스플레이(flexible display) 등 다양한 타입의 디스플레이 장치들 중 적어도 하나를 포함할 수도 있다.The display device 1400 may include at least one of various types of display devices, such as a liquid crystal display, an organic light-emitting diode display, and a flexible display.

불휘발성 저장 매체(1500)는 플래시 메모리(flash memory type), 하드 디스크 (hard disk type), 멀티미디어 카드(multimedia card) 등 중 적어도 하나일 수 있다. 불휘발성 저장 매체(1500)는 프로세서(1600)의 제어에 응답하여 데이터를 기입하고 독출하도록 구성된다. 불휘발성 저장 매체(1500)는 도 2의 저장 매체(130)로서 제공될 수 있다.The nonvolatile storage medium 1500 may be at least one of a flash memory type, a hard disk type, a multimedia card, and the like. The nonvolatile storage medium 1500 is configured to write and read data in response to the control of the processor 1600. The nonvolatile storage medium 1500 can be provided as the storage medium 130 of FIG. 2.

통신기(1100), A/V(Audio/Video) 입력기(1200), 사용자 인터페이스(1300), 디스플레이 장치(1400), 불휘발성 저장 매체(1500), 프로세서(1600), 및 시스템 메모리(1700)를 서로 연결하여 통신 인터페이스를 제공하는 시스템 버스가 더 제공될 수 있다. 이때, 시스템 버스는 도 2의 제 1 내지 제 3 인터페이스들(101~103)로서 제공될 수 있다.The communicator 1100, the A / V input device 1200, the user interface 1300, the display device 1400, the nonvolatile storage medium 1500, the processor 1600, and the system memory 1700 may be connected. A system bus may be further provided that connects to each other to provide a communication interface. In this case, the system bus may be provided as the first to third interfaces 101 to 103 of FIG. 2.

프로세서(1600)는 범용 혹은 전용 프로세서 중 어느 하나를 포함할 수 있으며, 통신기(1100), A/V 입력기(1200), 사용자 인터페이스(1300), 디스플레이 장치(1400), 불휘발성 저장 매체(1500), 및 시스템 메모리(1700)의 동작들을 제어한다.The processor 1600 may include either a general purpose or a dedicated processor, and may include a communicator 1100, an A / V inputter 1200, a user interface 1300, a display device 1400, and a nonvolatile storage medium 1500. And control operations of the system memory 1700.

프로세서(1600)는 실행될 때 다양한 기능들을 제공하는 명령어들을 포함하는 프로그램 코드들을 불휘발성 저장 매체(1500)로부터 시스템 메모리(1700)에 로딩하고, 로딩된 프로그램 코드들을 실행하도록 구성된다. 프로세서(1600)는 프로세서(1600)에 의해 실행될 때 도 2를 참조하여 설명된 컨트롤러(110)의 기능들을 수행하는 가상 키패드 모듈(1710)을 시스템 메모리(1700)에 로딩하고, 로딩된 가상 키패드 모듈(1710)을 실행할 수 있다. 예를 들면, 가상 키패드 모듈(1710)은, 프로세서(1600)에 의해 실행될 때, 로컬 컨트롤러(111)의 기능들을 수행하기 위한 명령어들, 랜덤 넘버 생성기(112)의 기능들을 수행하기 위한 명령어들, 그리고 가상 키패드 드라이버(113)의 기능들을 수행하기 위한 명령어들을 포함할 수 있다. 가상 키패드 모듈(1710)은, 프로세서(1600)에 의해 실행될 때, 가상 키패드를 추가적인 사용자 인터페이스로서 디스플레이 장치(140)에 디스플레이(혹은 시각화)하고, 사용자 인터페이스(1300)를 이용하여 가상 키패드의 버튼 영역들을 선택하는 사용자 입력들을 감지할 수 있다.The processor 1600 is configured to load program codes from the nonvolatile storage medium 1500 into the system memory 1700 and to execute the loaded program codes, including instructions that provide various functions when executed. The processor 1600, when executed by the processor 1600, loads a virtual keypad module 1710 into the system memory 1700 that performs the functions of the controller 110 described with reference to FIG. 2, and loads the loaded virtual keypad module. 1710 may be executed. For example, the virtual keypad module 1710, when executed by the processor 1600, instructions for performing the functions of the local controller 111, instructions for performing the functions of the random number generator 112, And commands for performing the functions of the virtual keypad driver 113. The virtual keypad module 1710, when executed by the processor 1600, displays (or visualizes) the virtual keypad as an additional user interface on the display device 140, and uses the user interface 1300 to display the button area of the virtual keypad. Detect user inputs to select them.

실시 예들에서, 시스템 메모리(1700)는 프로세서(1600)의 워킹 메모리로서 제공될 수 있다. 도 8에서, 시스템 메모리(1700)는 프로세서(1600)와 분리된 구성 요소로서 도시되어 있으나, 이는 예시적인 것으로 시스템 메모리(1700)의 적어도 일부는 프로세서(1600) 내에 통합될 수 있다. 실시 예들에서, 시스템 메모리(1700)는 버퍼 메모리로서 제공될 수 있다.In embodiments, the system memory 1700 may be provided as a working memory of the processor 1600. In FIG. 8, the system memory 1700 is shown as a separate component from the processor 1600, but this is exemplary and at least a portion of the system memory 1700 may be integrated into the processor 1600. In embodiments, system memory 1700 may be provided as a buffer memory.

시스템 메모리(1700)는 램(Random Access Memory, RAM), 롬(Read Only Memory, ROM), 및 다른 타입들의 컴퓨터에 의해 판독 가능한 저장 매체들 중 적어도 하나를 포함할 수 있다.The system memory 1700 may include at least one of random access memory (RAM), read only memory (ROM), and other types of computer readable storage media.

도 9는 도 8의 사용자 단말기와 통신할 수 있는 클라이언트 서버를 보여주는 블록도이다.9 is a block diagram illustrating a client server capable of communicating with the user terminal of FIG. 8.

본 발명의 실시 예에 따르면, 도 8의 사용자 단말기(1000)에 의해 실행되는 프로그램 코드들은 클라이언트 서버(2000)로부터 제공될 수 있다. 도 9를 참조하면, 클라이언트 서버(2000)는 통신기(2100), 프로세서(2200), 및 데이터베이스(2300)를 포함할 수 있다. 통신기(2100)는 네트워크(5, 도 1 참조)를 통해 사용자 단말기(1000)와 통신할 수 있다. 데이터베이스(2300)는 사용자 단말기(1000) 및/또는 도 8의 프로세서(1600)에 의해 실행될 수 있는 프로그램 코드들, 예를 들면 도 8의 가상 키패드 모듈(1710) 혹은 가상 키패드 모듈(1710)을 포함하는 응용 어플리케이션을 저장할 수 있다. 프로세서(2200)는 사용자 단말기(1000)로부터의 요청에 응답하여, 데이터베이스(2300)에 저장된 프로그램 코드들을 통신기(2100)를 통해 사용자 단말기(1000)에 제공할 수 있다. 프로그램 코드들은 사용자 단말기(1000)에 설치되어 실행될 수 있다.According to an embodiment of the present disclosure, program codes executed by the user terminal 1000 of FIG. 8 may be provided from the client server 2000. Referring to FIG. 9, the client server 2000 may include a communicator 2100, a processor 2200, and a database 2300. The communicator 2100 may communicate with the user terminal 1000 through a network 5 (see FIG. 1). The database 2300 includes program codes that may be executed by the user terminal 1000 and / or the processor 1600 of FIG. 8, for example, the virtual keypad module 1710 or the virtual keypad module 1710 of FIG. 8. You can save your application. The processor 2200 may provide program codes stored in the database 2300 to the user terminal 1000 through the communicator 2100 in response to a request from the user terminal 1000. The program codes may be installed and executed in the user terminal 1000.

비록 특정 실시 예들 및 적용 례들이 여기에 설명되었으나, 이는 본 발명의 보다 전반적인 이해를 돕기 위해서 제공된 것일 뿐, 본 발명은 상기의 실시예에 한정되는 것은 아니며 본 발명이 속하는 분야에서 통상적인 지식을 가진 자라면 이러한 기재로부터 다양한 수정들 및 변형들이 가능하다.Although specific embodiments and application examples have been described herein, these are provided only to aid a more general understanding of the present invention, and the present invention is not limited to the above embodiments, and has ordinary skill in the art to which the present invention pertains. Many modifications and variations are possible in this disclosure from this disclosure.

따라서, 본 발명의 사상은 설명된 실시예에 국한되어 정해져서는 아니되며, 후술하는 특허청구범위뿐 아니라 이 특허청구범위와 균등하거나 등가적 변형이 있는 모든 것들은 본 발명 사상의 범주에 속한다고 할 것이다.Therefore, the spirit of the present invention should not be limited to the described embodiments, and all of the equivalents and equivalents of the claims, as well as the appended claims, will belong to the scope of the present invention. .

10: 사용자 단말기
20: 웹 서버
30: 저장 서버
110: 컨트롤러
120: 디스플레이 장치
130: 저장 매체
140: 통신기
10: user terminal
20: web server
30: storage server
110: controller
120: display device
130: storage medium
140: communicator

Claims (17)

사용자로부터 입력되는 비밀번호를 처리하기 위한 사용자 단말기에 있어서:
디스플레이 장치;
저장 매체; 및
상기 디스플레이 장치 및 상기 저장 매체를 제어하도록 구성되는 컨트롤러를 포함하되,
상기 컨트롤러는,
랜덤 넘버를 제공하도록 구성되는 랜덤 넘버 생성기;
복수의 버튼 영역들을 포함하는 가상 키패드를 상기 디스플레이 장치에 표시하되, 상기 랜덤 넘버에 따라 상기 가상 키패드의 배열을 변경하고, 상기 복수의 버튼 영역들을 상기 비밀번호로 선택하는 사용자 입력들에 응답하여 상기 선택된 버튼 영역들에 각각 대응하는 입력값들을 결정하도록 구성되는 가상 키패드 드라이버; 및
상기 랜덤 넘버에 기반한 제 1 데이터와 상기 입력값들에 기반한 제 2 데이터를 외부 서버 및 상기 저장 매체에 분산 저장하도록 구성되는 로컬 컨트롤러를 포함하는 사용자 단말기.
A user terminal for processing a password input from a user:
Display devices;
Storage media; And
A controller configured to control the display device and the storage medium,
The controller,
A random number generator configured to provide a random number;
Displaying a virtual keypad including a plurality of button regions on the display device, changing an arrangement of the virtual keypad according to the random number, and selecting the plurality of button regions as the password; A virtual keypad driver configured to determine input values respectively corresponding to button areas; And
And a local controller configured to distribute and store the first data based on the random number and the second data based on the input values in an external server and the storage medium.
제 1 항에 있어서,
상기 로컬 컨트롤러는 상기 랜덤 넘버를 암호화하고 상기 입력값들을 암호화하도록 구성되는 암호화기를 포함하되,
상기 제 1 데이터는 상기 암호화된 랜덤 넘버를 포함하고,
상기 제 2 데이터는 상기 암호화된 입력값들을 포함하는 사용자 단말기.
The method of claim 1,
The local controller comprises an encrypter configured to encrypt the random number and to encrypt the input values,
The first data includes the encrypted random number,
The second data comprises the encrypted input values.
제 2 항에 있어서,
상기 암호화기는 상기 랜덤 넘버 및 상기 입력값들을 RSA(Rivest Shamir Adleman) 알고리즘을 통해 암호화하도록 구성되는 사용자 단말기.
The method of claim 2,
And the encryptor is configured to encrypt the random number and the input values through a Rivest Shamir Adleman (RSA) algorithm.
사용자로부터 입력되는 비밀번호를 처리하기 위한 사용자 단말기에 있어서:
디스플레이 장치;
저장 매체; 및
상기 디스플레이 장치 및 상기 저장 매체를 제어하도록 구성되는 프로세서를 포함하되,
상기 프로세서는,
복수의 버튼 영역들을 포함하는 가상 키패드를 상기 디스플레이 장치에 표시하되, 제 1 커맨드 신호에 응답하여 생성되는 랜덤 넘버에 따라 상기 가상 키패드의 배열을 변경하고;
상기 복수의 버튼 영역들을 상기 비밀번호로 선택하는 사용자 입력들에 응답하여 상기 선택된 버튼 영역들에 각각 대응하는 입력값들을 결정하고;
상기 랜덤 넘버에 기반한 제 1 데이터와 상기 입력값들에 기반한 제 2 데이터를 외부 서버 및 상기 저장 매체에 분산 저장하도록 구성되는 사용자 단말기.
A user terminal for processing a password input from a user:
Display devices;
Storage media; And
A processor configured to control the display device and the storage medium,
The processor,
Displaying a virtual keypad including a plurality of button regions on the display device, wherein the arrangement of the virtual keypad is changed according to a random number generated in response to a first command signal;
Determine input values respectively corresponding to the selected button regions in response to user inputs for selecting the plurality of button regions with the password;
And distribute the first data based on the random number and the second data based on the input values to an external server and the storage medium.
제 4 항에 있어서,
네트워크를 통해 상기 외부 서버와 통신하도록 구성되는 통신기를 더 포함하되,
상기 프로세서는 상기 제 1 데이터를 상기 통신기를 통해 상기 외부 서버에 저장하고 상기 제 2 데이터를 상기 저장 매체에 저장하도록 구성되는 사용자 단말기.
The method of claim 4, wherein
Further comprising a communicator configured to communicate with the external server via a network,
And the processor is configured to store the first data in the external server through the communicator and store the second data in the storage medium.
제 5 항에 있어서,
상기 프로세서는,
제 2 커맨드 신호에 응답하여 상기 외부 서버에 액세스하여 상기 제 1 데이터를 획득하고;
상기 획득된 제 1 데이터에 기반하여 상기 랜덤 넘버를 복원하고 상기 저장 매체로부터 독출된 제 2 데이터에 기반하여 상기 입력값들을 복원하도록 구성되는 사용자 단말기.
The method of claim 5, wherein
The processor,
Access the external server in response to a second command signal to obtain the first data;
And restore the random number based on the obtained first data and restore the input values based on the second data read from the storage medium.
제 6 항에 있어서,
상기 프로세서는,
상기 복원된 랜덤 넘버와 상기 복원된 입력값들에 따라 상기 비밀번호를 복원하도록 구성되는 사용자 단말기.
The method of claim 6,
The processor,
And restore the password according to the restored random number and the restored input values.
제 6 항에 있어서,
상기 프로세서는 상기 획득된 제 1 데이터를 복호화하고 상기 독출된 제 2 데이터를 복호화하도록 구성되고,
상기 복호화된 제 1 데이터는 상기 복원된 랜덤 넘버를 포함하고,
상기 복호화된 제 2 데이터는 상기 복원된 입력값들을 포함하는 사용자 단말기.
The method of claim 6,
The processor is configured to decode the obtained first data and to decode the read second data,
The decoded first data includes the reconstructed random number,
The decoded second data includes the restored input values.
제 4 항에 있어서,
네트워크를 통해 상기 외부 서버와 통신하도록 구성되는 통신기를 더 포함하되,
상기 프로세서는 상기 제 1 데이터를 상기 저장 매체에 저장하고 상기 제 2 데이터를 상기 통신기를 통해 상기 외부 서버에 저장하도록 구성되는 사용자 단말기.
The method of claim 4, wherein
Further comprising a communicator configured to communicate with the external server via a network,
And the processor is configured to store the first data in the storage medium and store the second data in the external server via the communicator.
사용자로부터 입력되는 비밀번호를 처리하기 위한 방법에 있어서:
제 1 커맨드 신호에 응답하여 랜덤 넘버를 생성하는 단계;
복수의 버튼 영역들을 포함하는 가상 키패드를 디스플레이 장치에 표시하되, 상기 랜덤 넘버에 따라 상기 가상 키패드의 배열은 변경되는, 단계;
상기 복수의 버튼 영역들을 상기 비밀번호로 선택하는 사용자 입력들에 응답하여, 상기 선택된 버튼 영역들에 각각 대응하는 입력값들을 결정하는 단계; 및
상기 랜덤 넘버에 기반한 제 1 데이터와 상기 입력값들에 기반한 제 2 데이터를 외부 서버 및 내부 저장 매체에 분산 저장하는 단계를 포함하는 방법.
A method for processing passwords input from a user:
Generating a random number in response to the first command signal;
Displaying a virtual keypad including a plurality of button regions on a display device, wherein the arrangement of the virtual keypad is changed according to the random number;
Determining input values respectively corresponding to the selected button areas in response to user inputs for selecting the plurality of button areas as the password; And
Distributing and storing the first data based on the random number and the second data based on the input values in an external server and an internal storage medium.
제 10 항에 있어서,
상기 분산 저장하는 단계는,
상기 제 1 데이터를 네트워크를 통해 상기 외부 서버에 저장하는 단계; 및
상기 제 2 데이터를 상기 내부 저장 매체에 저장하는 단계를 포함하는 방법.
The method of claim 10,
The distributed storage step,
Storing the first data on the external server via a network; And
Storing the second data on the internal storage medium.
제 11 항에 있어서,
제 2 커맨드 신호에 응답하여, 상기 네트워크를 통해 상기 외부 서버에 액세스하여 상기 제 1 데이터를 획득하는 단계;
상기 획득된 제 1 데이터에 기반하여 상기 랜덤 넘버를 복원하는 단계;
상기 저장 매체로부터 상기 제 2 데이터를 독출하는 단계; 및
상기 독출된 상기 제 2 데이터에 기반하여 상기 입력값들을 복원하는 단계를 더 포함하는 방법.
The method of claim 11,
In response to a second command signal, accessing the external server via the network to obtain the first data;
Restoring the random number based on the obtained first data;
Reading the second data from the storage medium; And
Restoring the input values based on the read second data.
제 12 항에 있어서,
상기 복원된 랜덤 넘버와 상기 복원된 입력값들에 따라 상기 비밀번호를 복원하는 단계를 더 포함하는 방법.
The method of claim 12,
Restoring the password according to the restored random number and the restored input values.
통신기;
상기 통신기를 통해 사용자 단말기와 통신하도록 구성되는 프로세서; 및
상기 사용자 단말기에 의해 실행될 프로그램 코드들을 저장하는 데이터베이스를 포함하되,
상기 프로그램 코드들은,
복수의 버튼 영역들을 포함하는 가상 키패드를 상기 사용자 단말기의 디스플레이 장치에 표시하되, 랜덤 넘버에 따라 상기 가상 키패드의 배열을 변경하기 위한 제 1 명령어들;
상기 복수의 버튼 영역들을 비밀번호로 선택하는 사용자 입력들에 응답하여 상기 선택된 버튼 영역들에 각각 대응하는 입력값들을 결정하기 위한 제 2 명령어들;
상기 랜덤 넘버에 기반한 제 1 데이터와 상기 입력값들에 기반한 제 2 데이터를 상기 사용자 단말기의 외부 서버 및 상기 사용자 단말기의 내부 저장 매체에 분산 저장하기 위한 제 3 명령어들을 포함하는 클라이언트 서버.
A communicator;
A processor configured to communicate with a user terminal via the communicator; And
A database storing program codes to be executed by the user terminal,
The program codes,
First instructions for displaying a virtual keypad including a plurality of button regions on a display device of the user terminal, and for changing an arrangement of the virtual keypad according to a random number;
Second instructions for determining input values respectively corresponding to the selected button areas in response to user inputs for selecting the plurality of button areas as a password;
And third instructions for distributedly storing first data based on the random number and second data based on the input values in an external server of the user terminal and an internal storage medium of the user terminal.
제 14 항에 있어서,
상기 제 3 명령어들은,
상기 제 1 데이터를 상기 외부 서버에 저장하고 상기 제 2 데이터를 상기 내부 저장 매체에 저장하기 위한 명령어들을 포함하는 클라이언트 서버.
The method of claim 14,
The third instructions,
Instructions for storing the first data on the external server and storing the second data on the internal storage medium.
제 15 항에 있어서,
상기 프로그램 코드들은,
상기 외부 서버에 액세스하여 상기 제 1 데이터를 획득하고;
상기 획득된 제 1 데이터에 기반하여 상기 랜덤 넘버를 복원하고;
상기 저장 매체로부터 상기 제 2 데이터를 독출하고;
상기 독출된 상기 제 2 데이터에 기반하여 상기 입력값들을 복원하기 위한 제 4 명령어들을 더 포함하는 클라이언트 서버.
The method of claim 15,
The program codes,
Access the external server to obtain the first data;
Restore the random number based on the obtained first data;
Read the second data from the storage medium;
And fourth instructions for restoring the input values based on the read second data.
제 16 항에 있어서,
상기 프로그램 코드들은,
상기 복원된 랜덤 넘버와 상기 복원된 입력값들에 따라 상기 비밀번호를 복원하기 위한 제 5 명령어들을 더 포함하는 클라이언트 서버.
The method of claim 16,
The program codes,
And fifth instructions for restoring the password according to the restored random number and the restored input values.
KR1020180098165A 2018-08-22 2018-08-22 Device and method to process password input from user KR102118476B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020180098165A KR102118476B1 (en) 2018-08-22 2018-08-22 Device and method to process password input from user

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020180098165A KR102118476B1 (en) 2018-08-22 2018-08-22 Device and method to process password input from user

Publications (2)

Publication Number Publication Date
KR20200022258A true KR20200022258A (en) 2020-03-03
KR102118476B1 KR102118476B1 (en) 2020-06-03

Family

ID=69937975

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020180098165A KR102118476B1 (en) 2018-08-22 2018-08-22 Device and method to process password input from user

Country Status (1)

Country Link
KR (1) KR102118476B1 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113111324A (en) * 2021-04-21 2021-07-13 北京京东方传感技术有限公司 Identity verification method and terminal

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20070010557A (en) * 2005-07-19 2007-01-24 소프트포럼 주식회사 Preventing method for hacking key input data
KR101129894B1 (en) * 2010-04-21 2012-03-28 루멘소프트 (주) Method for preventing memory hacking usign image and system thereof

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20070010557A (en) * 2005-07-19 2007-01-24 소프트포럼 주식회사 Preventing method for hacking key input data
KR101129894B1 (en) * 2010-04-21 2012-03-28 루멘소프트 (주) Method for preventing memory hacking usign image and system thereof

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113111324A (en) * 2021-04-21 2021-07-13 北京京东方传感技术有限公司 Identity verification method and terminal

Also Published As

Publication number Publication date
KR102118476B1 (en) 2020-06-03

Similar Documents

Publication Publication Date Title
CN103718187B (en) Input via the safety of touch screen
US10171428B2 (en) Confidential data management method and device, and security authentication method and system
CN108769027B (en) Secure communication method, device, mobile terminal and storage medium
EP3086587B1 (en) Method and apparatus for transmitting and receiving encrypted message between terminals
AU2022204797B2 (en) Raw sensor input encryption for passcode entry security
CN110704860A (en) Longitudinal federal learning method, device and system for improving safety and storage medium
CN110347723A (en) A kind of data query method, system and electronic equipment and storage medium
US20140324708A1 (en) Raw sensor input encryption for passcode entry security
CN108809906B (en) Data processing method, system and device
CN104954126B (en) Sensitive operation verification method, device and system
CN106778295B (en) File storage method, file display method, file storage device, file display device and terminal
CN105184183A (en) Chatting record encryption method and mobile terminal
CN106503507A (en) Method and mobile terminal that a kind of password shows
US8639941B2 (en) Data security in mobile devices
CN112636916A (en) Data processing method, data processing device, storage medium and electronic equipment
KR102118476B1 (en) Device and method to process password input from user
CN105743860A (en) Method and device for converting characters
CN110826097A (en) Data processing method and electronic equipment
TWI599903B (en) Encryption and decryption system and encryption and decryption method of electronic device
CN109145644A (en) Private key obscures and digital signature generation method, device, smart machine
CN109905236B (en) Anti-quantum computing Elgamal encryption and decryption method and system based on private key pool
CN115589286B (en) Data encryption and decryption method and device, electronic equipment and storage medium
CN114389802B (en) Information decryption method and device, electronic equipment and readable storage medium
CN111050316B (en) Card locking method and device, computer readable storage medium and terminal equipment
CN115276966A (en) Data encryption method and device, electronic equipment and storage medium

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant