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

KR102118476B1 - 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
KR102118476B1
KR102118476B1 KR1020180098165A KR20180098165A KR102118476B1 KR 102118476 B1 KR102118476 B1 KR 102118476B1 KR 1020180098165 A KR1020180098165 A KR 1020180098165A KR 20180098165 A KR20180098165 A KR 20180098165A KR 102118476 B1 KR102118476 B1 KR 102118476B1
Authority
KR
South Korea
Prior art keywords
data
random number
storage medium
input values
user terminal
Prior art date
Application number
KR1020180098165A
Other languages
Korean (ko)
Other versions
KR20200022258A (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 Hardware Design (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • User Interface Of Digital Computer (AREA)
  • Telephonic Communication Services (AREA)

Abstract

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

Figure R1020180098165
Figure R1020180098165

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 an apparatus and methods for processing a password input from a user.

최근 데이터 통신망의 발달로 인하여 많은 사람들이 인터넷을 이용하며, 이에 따라 인터넷을 이용한 다양한 서비스들이 제공되고 있다. 이러한 서비스들 중 일부는 사용자 인증을 위해 비밀번호를 요구하며, 따라서 사용자가 입력한 비밀번호가 해킹 등의 공격으로부터 유출되지 않도록 하기 위해 비밀번호에 대한 높은 보안성이 요구된다. 예를 들면, 이러한 요구에 따라 사용자가 입력한 비밀번호는 암호화되어 전송될 수 있다.Recently, due to the development of data communication networks, many people use the Internet, and accordingly 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 leaking attacks. For example, the password entered by the user according to this request may be encrypted and transmitted.

비밀번호에 대한 보안성을 더 향상시키기 위해, 가상 키패드가 제공될 수 있다. 가상 키패드의 배열은 그것이 생성될 때마다 변하며, 사용자가 가상 키패드의 버튼들을 비밀번호로서 선택할 때 비밀번호와 연관된 데이터가 결정(혹은 생성)된다. 비밀번호와 연관된 데이터는 추가적으로 암호화될 수 있으며, 비밀번호와 연관된 데이터 혹은 추가적으로 암호화된 데이터는 비밀번호를 대체하여 전송될 수 있다. 가상 키패드의 배열이 그것이 생성될 때마다 변하는 것은, 비밀번호와 연관된 데이터가 비밀번호 자체보다 더 향상된 보안성을 가짐을 의미할 수 있다.In order to further improve the security of the password, a virtual keypad can be provided. The arrangement of the virtual keypad changes each time it is created, and data associated with the password is determined (or generated) when the user selects the buttons of the virtual keypad as a password. Data associated with the password may be additionally encrypted, and data associated with the password or additionally encrypted data may be transmitted by replacing 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 of the technical ideas of the present invention, and therefore it cannot be understood as the content corresponding to the prior art known to those skilled in the art of the present invention.

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

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

상기 로컬 컨트롤러는 상기 랜덤 넘버를 암호화하고 상기 입력값들을 암호화하도록 구성되는 암호화기를 포함하되, 상기 제 1 데이터는 상기 암호화된 랜덤 넘버를 포함하고, 상기 제 2 데이터는 상기 암호화된 입력값들을 포함할 수 있다.The local controller includes an encryptor configured to encrypt the random number and 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 through 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 displays a virtual keypad including a plurality of button regions on the display device, and changes the 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 selecting the plurality of button regions as the password; It is configured to 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.

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

상기 프로세서는, 제 2 커맨드 신호에 응답하여 상기 외부 서버에 액세스하여 상기 제 1 데이터를 획득하고; 상기 획득된 제 1 데이터에 기반하여 상기 랜덤 넘버를 복원하고 상기 저장 매체로부터 독출된 제 2 데이터에 기반하여 상기 입력값들을 복원하도록 구성될 수 있다.The processor accesses the external server in response to a second command signal to obtain the first data; It may be configured to 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.

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

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

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

본 발명의 다른 일면은 사용자로부터 입력되는 비밀번호를 처리하기 위한 방법에 관한 것이다. 상기 방법은, 제 1 커맨드 신호에 응답하여 랜덤 넘버를 생성하는 단계; 복수의 버튼 영역들을 포함하는 가상 키패드를 디스플레이 장치에 표시하되, 상기 랜덤 넘버에 따라 상기 가상 키패드의 배열은 변경되는, 단계; 상기 복수의 버튼 영역들을 상기 비밀번호로 선택하는 사용자 입력들에 응답하여, 상기 선택된 버튼 영역들에 각각 대응하는 입력값들을 결정하는 단계; 및 상기 랜덤 넘버에 기반한 제 1 데이터와 상기 입력값들에 기반한 제 2 데이터를 외부 서버 및 내부 저장 매체에 분산 저장하는 단계를 포함한다.Another aspect of the present 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 regions in response to user inputs selecting the plurality of button regions as the password; And distributedly storing the first data based on the random number and the second data based on the input values on an external server and an internal storage medium.

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

상기 방법은, 제 2 커맨드 신호에 응답하여, 상기 네트워크를 통해 상기 외부 서버에 액세스하여 상기 제 1 데이터를 획득하는 단계; 상기 획득된 제 1 데이터에 기반하여 상기 랜덤 넘버를 복원하는 단계; 상기 저장 매체로부터 상기 제 2 데이터를 독출하는 단계; 및 상기 독출된 상기 제 2 데이터에 기반하여 상기 입력값들을 복원하는 단계를 더 포함할 수 있다.The method comprises: in response to a second command signal, accessing the external server through 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 that provides program codes to a user terminal. The client server includes a communicator; A processor configured to communicate with a user terminal through the communicator; And a database storing program codes to be executed by the user terminal. The program codes include first instructions for displaying a virtual keypad including a plurality of button regions on a display device of the user terminal, and changing the arrangement of the virtual keypad according to a random number; Second commands for determining input values respectively corresponding to the selected button areas in response to user inputs selecting the plurality of button areas as a password; And third commands for distributedly storing the first data based on the random number and the second data based on the input values on 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 in the external server and storing the second data in 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; Reading the second data from the storage medium; Further, fourth instructions for restoring the input values based on the read second data may be further included.

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

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

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

이하, 본 발명에 따른 바람직한 실시 예를 첨부한 도면을 참조하여 상세히 설명한다. 하기의 설명에서는 본 발명에 따른 동작을 이해하는데 필요한 부분만이 설명되며 그 이외 부분의 설명은 본 발명의 요지를 모호하지 않도록 하기 위해 생략될 것이라는 것을 유의하여야 한다. 또한 본 발명은 여기에서 설명되는 실시 예에 한정되지 않고 다른 형태로 구체화될 수도 있다. 단지, 여기에서 설명되는 실시 예는 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 본 발명의 기술적 사상을 용이하게 실시할 수 있을 정도로 상세히 설명하기 위하여 제공되는 것이다.Hereinafter, preferred 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 are described, and descriptions of other parts will be omitted so as not to obscure the subject matter 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 that the technical spirit of the present invention can be easily carried out to a person having ordinary knowledge in the technical field to which the present invention pertains.

명세서 전체에서, 어떤 부분이 다른 부분과 "연결"되어 있다고 할 때, 이는 "직접적으로 연결"되어 있는 경우뿐 아니라, 그 중간에 다른 소자를 사이에 두고 "간접적으로 연결"되어 있는 경우도 포함한다. 여기에서 사용된 용어는 특정한 실시예들을 설명하기 위한 것이며 본 발명을 한정하기 위한 것이 아니다. 명세서 전체에서, 어떤 부분이 어떤 구성요소를 "포함"한다고 할 때, 이는 특별히 반대되는 기재가 없는 한 다른 구성요소를 제외하는 것이 아니라 다른 구성요소를 더 포함할 수 있는 것을 의미한다. "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 describing specific embodiments and is not intended to limit the present invention. Throughout the specification, when a part “includes” a certain component, this means that other components may be further included rather than excluding other components unless specifically stated to the contrary. "At least one of X, Y, and Z" and "at least one selected from the group consisting of X, Y, and Z" are X one, one Y, one Z, or two of X, Y, and Z, or Any further combination (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 showing a network system according to an 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 operative to perform various methods according to embodiments of the invention described herein. The devices and/or servers shown in FIG. 1 can be configured in different ways, and the operations and services provided by the devices and/or servers can 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 enterprises.

네트워크(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 include at least one of a public network, at least one private network, a wired network, a wireless network, other suitable types of networks, 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 through 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 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 is a computer, a UMPC (Ultra Mobile PC), a workstation, a netbook (net-book), PDA (Personal Digital Assistants), portable (portable) computer, a web tablet (web tablet), wireless It may be a computer device capable of transmitting and receiving information in a wired and/or wireless environment, such as a wireless phone, mobile phone, and smart phone.

웹 서버(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 data for user authentication from the user terminal 10 before providing some of the services. The user terminal 10 may process the entered password when the user enters the 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 security for a password input by a 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 varies according to the generated random number. Can be. When receiving user inputs for selecting button regions included in the virtual keypad as a password, the user terminal 10 may determine input values respectively assigned to the selected buttons. Random numbers and input values may be provided as data associated with a password.

랜덤 넘버 및 입력값들은 다양한 방식들에 따라 더 처리될 수 있으며, 본 발명의 실시 예들은 여기에 한정되지 않는다. 예를 들면, 랜덤 넘버 및 입력값들은 암호화될 수 있다. 예를 들면, 웹 서버(20)가 디지털 서명된 공인인증서를 요청하는 경우, 랜덤 넘버와 입력값들을 이용하여 공인인증서에 디지털 서명하고 디지털 서명된 공인인증서를 웹 서버(20)에 전송할 수 있다.Random numbers and input values may be further processed according to various methods, 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 digital server can digitally sign the public certificate using random numbers 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 through 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 showing a user terminal according to an embodiment of the present invention. 3 is a view showing an embodiment of a screen including a virtual keypad displayed on a user terminal. 4 is a table showing input values respectively corresponding to character buttons of a virtual keypad. 5 is a block diagram illustrating a method of storing a set of random numbers and input values.

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

컨트롤러(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 device 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 the 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 a channel (CH). The local controller 111 may operate in response to command signals received through the channel CH. The local controller 111 controls the random number generator 112 to output a random number by outputting the first control signal CTRL1 when the first command signal for calling the virtual keypad is received through the channel CH. Can be. The local controller 110 may control the virtual keypad driver 113 to generate a virtual keypad by outputting a second control signal CTRL2.

랜덤 넘버 생성기(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, the random number generator 112 is shown as being included in the controller 110. However, this is exemplary, and 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 can be generated according to various methods. For example, the random number may be a time stamp. As another example, the random number may be an output value calculated using a 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)에 따라 가상 키패드의 배열을 변경한다.The virtual keypad driver 113, in response to the second control signal CTRL2, generates a virtual keypad according to the random number RD and generates the generated virtual keypad to the display device 120 through the first interface 101. It is 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, a 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 a letter 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 in the password display area 210. Alternatively, in order to prevent the password from being recognized by someone other than the user, an appropriate symbol may be displayed in the password display area 210 instead of a letter corresponding to the selected button area. The button area provided as the inactive symbol 222 may not be selected as a password. In FIG. 3, the button regions provided as the inactive symbol 222 are patterned diagonally.

비밀번호 입력 영역(230)의 버튼 영역들에 채워지는 문자들(221) 및 비활성 심볼들(222)의 배열은 랜덤 넘버(RD)에 따라 변경된다. 문자들(221) 및 비활성 심볼들(222)의 배열은 다양한 방식들에 따라 결정될 수 있으며, 본 발명의 실시 예들은 여기에 한정되지 않는다. 예를 들면, 랜덤 넘버(RD)에 따라 비활성 심볼들(222)의 개수 및/또는 위치들이 결정되고, 나머지 버튼 영역들에 문자들(221)이 채워질 수 있다. 문자들(221)이 채워지는 버튼 영역들의 배열은 마찬가지로 랜덤 넘버(RD)에 따라 변경될 수 있다.The arrangement of characters 221 and 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 the characters 221 and the inactive symbols 222 may be determined in various ways, and embodiments of the present invention are not limited thereto. For example, the number and/or positions of the inactive symbols 222 may be determined according to the random number RD, and characters 221 may be filled in the remaining button regions. The arrangement of the button regions in which the characters 221 are filled 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 selecting the 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 for selecting the enter button 224, 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)로서 출력할 수 있다.The virtual keypad driver 113 responds to a user input for selecting a password using the virtual keypad 220, and inputs values corresponding to selected button areas of the password input area 230 as local input values (INVS). Transfer to the controller 111. Referring to FIG. 4, the first to mth button areas BTN1 to BTNm included in the password input area 230 correspond to first to mth input values INV1 to INVm, respectively (m is 1). Integer greater than or equal to). When at least some of the first to mth button regions BTN1 to BTNm are selected as a password, corresponding input values may be specified. The virtual keypad driver 113 may output the specified input values as an input value set (INVS).

다시 도 2를 참조하면, 로컬 컨트롤러(111)는 랜덤 넘버 생성기(112)에 의해 생성된 랜덤 넘버(RD) 및 가상 키패드 드라이버(113)에 의해 생성된 입력값 세트(INVS)를 수신한다.Referring to FIG. 2 again, the local controller 111 receives the random number RD generated by the random number generator 112 and the 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 the first data based on the random number RD, generates the 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 an external storage server (30, see FIG. 1). The local controller 111 may include an encryption/decryptor 114 configured to encrypt a random number RD and an input value set INVS, for example, through a Rivest Shamir Adleman (RSA) algorithm. In addition, 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 a set of input values (EINVS) encrypted by the encryptor/decryptor 114 on the storage medium 130, and encrypt/decryptor 114 The random number (ERD) encrypted by 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 through the second and third interfaces 102 and 103, respectively. The local controller 111 writes a set of encrypted input values (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 previously inputted password or data associated with the password without having to re-enter the password 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 receiving a password. In this case, restoration 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 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 a set of distributed randomly encrypted encrypted numbers and encrypted input values from the storage medium 130 and the storage server 30. In embodiments, the local controller 111 reads the encrypted set of input values from the storage medium 130 through the second interface 102 and controls the communicator 140 through the third interface 103 to store the storage server. From 30, an encrypted random number can be obtained.

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

복원된 랜덤 넘버(RD)와 복원된 입력값 세트(INVS) 혹은 복원된 비밀번호는 제 2 커맨드 신호에 대한 피드백 신호로서 제공될 수 있다. 예를 들면, 복원된 랜덤 넘버(RD)와 복원된 입력값 세트(INVS) 혹은 복원된 비밀번호는 채널(CH)을 통해 연결된 사용자 단말기(100) 내 다른 구성 요소에 제공될 수 있다.The restored random number RD and the restored input value set INVS or the restored 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 encryptor/decryptor 114 is at least one of a hardware module, a software module, a firmware module, and combinations 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 invention, the user terminal 100 may include first data (eg, an encrypted random number) based on a random number (RD) and second data (eg, an encrypted value) based on an input value set (INVS). , A set of encrypted input values) is distributed to 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 restore the password using the input value set INVS without the random number RD. Likewise, it is very difficult to restore 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 safely protected as long as the data of both the storage medium 130 and the storage server 30 are not leaked. Considering 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, the virtual keypad 220 It may mean that it provides improved security to the user terminal 100 that supports) and the network system 1 including the same. Accordingly, a user terminal 100 having improved security for a user password and a network system 1 including the same 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 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 to call the virtual keypad, a random number is generated. For example, the application application installed in the user terminal 10 may generate a first command signal to generate a virtual keypad 220 (see FIG. 3 ).

S120단계에서, 랜덤 넘버에 따라 가상 키패드(220)가 생성 및 디스플레이된다. 가상 키패드(220)의 배열은 랜덤 넘버에 따라 변경된다. In step 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 a rearrange button 223 of the virtual keypad 220 is received, a first command signal is generated again, and 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 step S140, user inputs for selecting a plurality of button regions of the virtual keypad 220 as a password are detected. For example, at least some of the button regions filled with characters 221 (see FIG. 3) may be selected by user inputs, and button regions filled with inactive symbols 222 (see FIG. 3) may be selected. none. In step S150, input values respectively corresponding to the selected button regions 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 step S170, the encrypted random number and the encrypted input value set are distributedly stored in the internal storage medium 130 (see FIG. 2) and the external storage server 30. In embodiments, the set of encrypted 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 requesting a password or data associated with a password, the external storage server 30 is accessed to obtain an encrypted random number. In step S220, the encrypted input value set is read from the internal storage medium 130 (see FIG. 2).

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

구현 례에 따라, 제 2 커맨드 신호에 대한 피드백 신호로서 비밀번호의 제공이 요구될 수 있다. 이러한 경우, S240단계가 더 수행될 수 있다. S240단계에서, 복호화된 랜덤 넘버와 복호화된 입력값 세트에 따라 비밀번호가 복원된다. 예를 들면, 복호화된 입력값 세트(INVS)에 따라 비밀번호로서 선택되었던 비밀번호 입력 영역(230, 도 3 참조)의 버튼 영역들이 결정되고 복호화된 랜덤 넘버(RD)에 따라 선택되었던 버튼 영역들에 대응하는 문자들(221, 도 3 참조)이 결정되어 비밀번호를 복원할 수 있다. 복원된 비밀번호는 제 2 커맨드 신호에 대한 피드백 신호로서 제공될 수 있다.According to an implementation example, it may be required to provide a password as a feedback signal for the second command signal. In this case, step S240 may be further performed. In step S240, the password is restored according to the decrypted random number and the set of decrypted input values. For example, the button regions of the password input region 230 (see FIG. 3) that were selected as the password according to the decrypted input value set INVS are determined and correspond to the button regions that were selected according to the decrypted random number RD. The characters (221, see FIG. 3) are determined and the password can be restored. The restored password can 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 on 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 safely protected as long as the data of both the storage medium 130 and the storage server 30 are not leaked. Therefore, a method for processing a user password having improved security for the user password can be provided.

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

도 8을 참조하면, 사용자 단말기(1000)는 통신기(1100), A/V(Audio/Video) 입력기(1200), 사용자 인터페이스(1300), 디스플레이 장치(1400), 불휘발성 저장 매체(1500), 프로세서(1600), 및 시스템 메모리(1700)를 포함한다.Referring to FIG. 8, the user terminal 1000 includes a communicator 1100, an audio/video (A/V) input device 1200, a user interface 1300, a display device 1400, and a nonvolatile storage medium 1500. Processor 1600, and 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/reception of text/multimedia messages. Further, the communicator 1100 is configured to access the wireless Internet. Further, the communicator 1100 is configured to perform short-range communication, and short-range such as Bluetooth, Radio Frequency Identification (RFID), Infrared Data Association (IrDA), Ultra Wideband (UWB), ZigBee, etc. Communication technologies can be used. The communicator 1100 can be provided as the communicator 140 described with reference to FIG. 2.

A/V 입력기(1200)는 오디오 신호 및 비디오 신호의 입력을 위한 것으로, 카메라를 포함할 수 있다. 카메라는 이미지 센서에 의해 얻어지는 이미지를 처리한다. 카메라에 의해 처리된 이미지는 시스템 메모리(1700)에 저장되거나 통신기(1100)를 통해 외부로 전송될 수 있다.The A/V input device 1200 is for input of 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/blackout), 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, it 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 device 1400 operates in response to 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 formed integrally 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, and a multimedia card. The non-volatile storage medium 1500 is configured to write and read data in response to control of the processor 1600. The nonvolatile storage medium 1500 may 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 audio/video (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 A system bus that connects with each other to provide a communication interface may be further provided. 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 dedicated processor, a communicator 1100, an A/V input device 1200, a user interface 1300, a display device 1400, and a nonvolatile storage medium 1500 , And controls the operations of 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, including instructions that provide various functions when executed, from the nonvolatile storage medium 1500 to the system memory 1700 and execute the loaded program codes. When the processor 1600 is executed by the processor 1600, the virtual keypad module 1710 performing the functions of the controller 110 described with reference to FIG. 2 is loaded into the system memory 1700, and the loaded virtual keypad module (1710) can 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 it may include instructions 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 button areas of the virtual keypad. User inputs to select them.

실시 예들에서, 시스템 메모리(1700)는 프로세서(1600)의 워킹 메모리로서 제공될 수 있다. 도 8에서, 시스템 메모리(1700)는 프로세서(1600)와 분리된 구성 요소로서 도시되어 있으나, 이는 예시적인 것으로 시스템 메모리(1700)의 적어도 일부는 프로세서(1600) 내에 통합될 수 있다. 실시 예들에서, 시스템 메모리(1700)는 버퍼 메모리로서 제공될 수 있다.In embodiments, system memory 1700 may be provided as a working memory of 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 invention, 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 can be executed by the user terminal 1000 and/or the processor 1600 of FIG. 8, for example, the virtual keypad module 1710 or virtual keypad module 1710 of FIG. 8. The application application can be stored. The processor 2200 may provide the 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, this is provided only to assist in a more general understanding of the present invention, and the present invention is not limited to the above embodiments and has ordinary knowledge in the field to which the present invention pertains. Various modifications and variations are possible from this description when grown.

따라서, 본 발명의 사상은 설명된 실시예에 국한되어 정해져서는 아니되며, 후술하는 특허청구범위뿐 아니라 이 특허청구범위와 균등하거나 등가적 변형이 있는 모든 것들은 본 발명 사상의 범주에 속한다고 할 것이다.Accordingly, the spirit of the present invention should not be limited to the described embodiments, and should not be determined, and all claims that are equivalent or equivalent to the scope of the claims as well as the claims to be described later belong to the scope of the spirit of the 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 데이터 중 어느 하나를 외부 서버에 전송 및 저장하고, 상기 제 1 데이터와 상기 제 2 데이터 중 다른 하나를 상기 저장 매체에 저장하도록 구성되는 로컬 컨트롤러를 포함하며,
상기 로컬 컨트롤러는 커맨드 신호에 응답하여, 상기 외부 서버에 액세스하여 상기 제 1 데이터와 상기 제 2 데이터 중 상기 어느 하나를 획득하고 상기 저장 매체로부터 상기 제 1 데이터와 상기 제 2 데이터 중 상기 다른 하나를 독출하도록 구성되는 사용자 단말기.
In the user terminal for processing the password input from the user:
Display device;
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;
A virtual keypad including a plurality of button areas is displayed on the display device, the array of the virtual keypad is changed according to the random number, and the selected button is selected in response to user inputs selecting the plurality of button areas as the password. A virtual keypad driver configured to determine input values respectively corresponding to the button regions; And
It is configured to transmit and store any one of the first data based on the random number and the second data based on the input values to an external server, and to store the other of the first data and the second data on the storage medium. Includes a local controller,
The local controller accesses the external server to obtain the one of the first data and the second data in response to a command signal, and obtains the other one of the first data and the second data from the storage medium. A user terminal configured to read.
제 1 항에 있어서,
상기 로컬 컨트롤러는 상기 랜덤 넘버를 암호화하고 상기 입력값들을 암호화하도록 구성되는 암호화기를 포함하되,
상기 제 1 데이터는 상기 암호화된 랜덤 넘버를 포함하고,
상기 제 2 데이터는 상기 암호화된 입력값들을 포함하는 사용자 단말기.
According to claim 1,
The local controller includes an encryptor configured to encrypt the random number and encrypt the input values,
The first data includes the encrypted random number,
The second data is a user terminal including the encrypted input values.
제 2 항에 있어서,
상기 암호화기는 상기 랜덤 넘버 및 상기 입력값들을 RSA(Rivest Shamir Adleman) 알고리즘을 통해 암호화하도록 구성되는 사용자 단말기.
According to claim 2,
The encrypter is a user terminal configured to encrypt the random number and the input values through a Rivest Shamir Adleman (RSA) algorithm.
사용자로부터 입력되는 비밀번호를 처리하기 위한 사용자 단말기에 있어서:
디스플레이 장치;
저장 매체;
외부 서버와 통신하도록 구성되는 통신기; 및
상기 디스플레이 장치, 상기 저장 매체, 및 상기 통신기를 제어하도록 구성되는 프로세서를 포함하되,
상기 프로세서는,
복수의 버튼 영역들을 포함하는 가상 키패드를 상기 디스플레이 장치에 표시하되, 제 1 커맨드 신호에 응답하여 생성되는 랜덤 넘버에 따라 상기 가상 키패드의 배열을 변경하고;
상기 복수의 버튼 영역들을 상기 비밀번호로 선택하는 사용자 입력들에 응답하여 상기 선택된 버튼 영역들에 각각 대응하는 입력값들을 결정하고;
상기 랜덤 넘버에 기반한 제 1 데이터와 상기 입력값들에 기반한 제 2 데이터 중 어느 하나를 상기 통신기를 통해 외부 서버에 전송 및 저장하고, 상기 제 1 데이터와 상기 제 2 데이터 중 다른 하나를 상기 저장 매체에 저장하도록 구성되며,
상기 프로세서는 제 2 커맨드 신호에 응답하여, 상기 외부 서버에 액세스하여 상기 제 1 데이터와 상기 제 2 데이터 중 상기 어느 하나를 획득하고 상기 저장 매체로부터 상기 제 1 데이터와 상기 제 2 데이터 중 상기 다른 하나를 독출하도록 구성되는 사용자 단말기.
In the user terminal for processing the password input from the user:
Display device;
Storage media;
A communicator configured to communicate with an external server; And
A processor configured to control the display device, the storage medium, and the communicator,
The processor,
Displaying a virtual keypad including a plurality of button regions on the display device, and changing the 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 selecting the plurality of button regions as the password;
Any one of the first data based on the random number and the second data based on the input values is transmitted to and stored in an external server through the communicator, and the other of the first data and the second data is stored in the storage medium. Is configured to store in,
The processor, in response to a second command signal, accesses the external server to obtain the one of the first data and the second data, and the other one of the first data and the second data from the storage medium. User terminal is configured to read.
제 4 항에 있어서,
상기 프로세서는 상기 제 1 데이터를 상기 통신기를 통해 상기 외부 서버에 전송하고 상기 제 2 데이터를 상기 저장 매체에 저장하도록 구성되는 사용자 단말기.
The method of claim 4,
The processor is a user terminal configured to transmit the first data to the external server through the communicator and to store the second data on the storage medium.
제 5 항에 있어서,
상기 프로세서는,
상기 제 2 커맨드 신호에 응답하여 상기 외부 서버에 액세스하여 상기 제 1 데이터를 획득하고 상기 저장 매체로부터 상기 제 2 데이터를 독출하며,
상기 획득된 제 1 데이터에 기반하여 상기 랜덤 넘버를 복원하고 상기 독출된 제 2 데이터에 기반하여 상기 입력값들을 복원하도록 구성되는 사용자 단말기.
The method of claim 5,
The processor,
Accessing the external server in response to the second command signal to obtain the first data and read the second data from the storage medium,
A user terminal configured to restore the random number based on the obtained first data and restore the input values based on the read second data.
제 6 항에 있어서,
상기 프로세서는,
상기 복원된 랜덤 넘버와 상기 복원된 입력값들에 따라 상기 비밀번호를 복원하도록 구성되는 사용자 단말기.
The method of claim 6,
The processor,
A user terminal configured to 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 decrypt the acquired first data and decrypt the read second data,
The decrypted first data includes the restored random number,
The decrypted second data includes the restored input values.
제 4 항에 있어서,
상기 프로세서는 상기 제 2 커맨드 신호에 응답하여 상기 제 1 데이터를 상기 저장 매체에 저장하고 상기 제 2 데이터를 상기 통신기를 통해 상기 외부 서버에 전송하도록 구성되는 사용자 단말기.
The method of claim 4,
The processor is configured to store the first data in the storage medium in response to the second command signal and to transmit the second data to the external server through the communicator.
사용자로부터 입력되는 비밀번호를 처리하기 위한 방법에 있어서:
제 1 커맨드 신호에 응답하여 랜덤 넘버를 생성하는 단계;
복수의 버튼 영역들을 포함하는 가상 키패드를 디스플레이 장치에 표시하되, 상기 랜덤 넘버에 따라 상기 가상 키패드의 배열은 변경되는, 단계;
상기 복수의 버튼 영역들을 상기 비밀번호로 선택하는 사용자 입력들에 응답하여, 상기 선택된 버튼 영역들에 각각 대응하는 입력값들을 결정하는 단계;
상기 랜덤 넘버에 기반한 제 1 데이터와 상기 입력값들에 기반한 제 2 데이터 중 어느 하나를 외부 서버에 전송 및 저장하고, 상기 제 1 데이터와 상기 제 2 데이터 중 다른 하나를 내부 저장 매체에 저장하는 단계; 및
제 2 커맨드 신호에 응답하여, 상기 외부 서버에 액세스하여 상기 제 1 데이터와 상기 제 2 데이터 중 상기 어느 하나를 획득하고 상기 저장 매체로부터 상기 제 1 데이터와 상기 제 2 데이터 중 상기 다른 하나를 독출하는 단계를 포함하는 방법.
In the method for handling the password entered from the user:
Generating a random number in response to the first command signal;
Displaying a virtual keypad including a plurality of button areas 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 regions in response to user inputs selecting the plurality of button regions as the password;
Transmitting and storing any one of the first data based on the random number and the second data based on the input values to an external server, and storing the other one of the first data and the second data on an internal storage medium ; And
In response to a second command signal, the external server is accessed to obtain the first one of the first data and the second data and read the other one of the first data and the second data from the storage medium. How to include the steps.
제 10 항에 있어서,
상기 저장하는 단계는,
상기 제 1 데이터를 네트워크를 통해 상기 외부 서버에 전송 및 저장하는 단계; 및
상기 제 2 데이터를 상기 내부 저장 매체에 저장하는 단계를 포함하는 방법.
The method of claim 10,
The storing step,
Transmitting and storing the first data to the external server through a network; And
And storing the second data in the internal storage medium.
제 11 항에 있어서,
상기 독출하는 단계는,
상기 네트워크를 통해 상기 외부 서버에 액세스하여 상기 제 1 데이터를 획득하는 단계; 및
상기 저장 매체로부터 상기 제 2 데이터를 독출하는 단계를 포함하고,
상기 방법은,
상기 획득된 제 1 데이터에 기반하여 상기 랜덤 넘버를 복원하는 단계; 및
상기 독출된 상기 제 2 데이터에 기반하여 상기 입력값들을 복원하는 단계를 더 포함하는 방법.
The method of claim 11,
The reading step,
Acquiring the first data by accessing the external server through the network; And
Reading the second data from the storage medium,
The above method,
Restoring the random number based on the obtained first data; And
And restoring the input values based on the read second data.
제 12 항에 있어서,
상기 복원된 랜덤 넘버와 상기 복원된 입력값들에 따라 상기 비밀번호를 복원하는 단계를 더 포함하는 방법.
The method of claim 12,
And restoring the password according to the restored random number and the restored input values.
통신기;
상기 통신기를 통해 사용자 단말기와 통신하도록 구성되는 프로세서; 및
상기 사용자 단말기에 의해 실행될 프로그램 코드들을 저장하는 데이터베이스를 포함하되,
상기 프로그램 코드들은,
복수의 버튼 영역들을 포함하는 가상 키패드를 상기 사용자 단말기의 디스플레이 장치에 표시하되, 랜덤 넘버에 따라 상기 가상 키패드의 배열을 변경하기 위한 제 1 명령어들;
상기 복수의 버튼 영역들을 비밀번호로 선택하는 사용자 입력들에 응답하여 상기 선택된 버튼 영역들에 각각 대응하는 입력값들을 결정하기 위한 제 2 명령어들;
상기 랜덤 넘버에 기반한 제 1 데이터와 상기 입력값들에 기반한 제 2 데이터 중 어느 하나를 상기 사용자 단말기의 외부 서버에 전송 및 저장하고, 상기 제 1 데이터와 상기 제 2 데이터 중 다른 하나를 상기 사용자 단말기의 내부 저장 매체에 저장하기 위한 제 3 명령어들; 및
상기 외부 서버에 액세스하여 상기 제 1 데이터와 상기 제 2 데이터 중 상기 어느 하나를 획득하고 상기 저장 매체로부터 상기 제 1 데이터와 상기 제 2 데이터 중 상기 다른 하나를 독출하기 위한 제 4 명령어들을 포함하는 클라이언트 서버.
Communicator;
A processor configured to communicate with a user terminal through the communicator; And
A database storing program codes to be executed by the user terminal,
The program codes are:
First commands for displaying a virtual keypad including a plurality of button regions on a display device of the user terminal, and changing the arrangement of the virtual keypad according to a random number;
Second commands for determining input values respectively corresponding to the selected button areas in response to user inputs selecting the plurality of button areas as a password;
Any one of the first data based on the random number and the second data based on the input values is transmitted to and stored in an external server of the user terminal, and the other of the first data and the second data is transferred to the user terminal. Instructions for storing on the internal storage medium of the; And
A client including fourth instructions for accessing the external server to obtain the one of the first data and the second data and to read the other of the first data and the second data from the storage medium server.
제 14 항에 있어서,
상기 제 3 명령어들은,
상기 제 1 데이터를 상기 외부 서버에 전송 및 저장하고 상기 제 2 데이터를 상기 내부 저장 매체에 저장하기 위한 명령어들을 포함하는 클라이언트 서버.
The method of claim 14,
The third instructions,
A client server comprising instructions for transmitting and storing the first data to the external server and for storing the second data in the internal storage medium.
제 15 항에 있어서,
상기 제 4 명령어들은,
상기 외부 서버에 액세스하여 상기 제 1 데이터를 획득하고;
상기 획득된 제 1 데이터에 기반하여 상기 랜덤 넘버를 복원하고;
상기 저장 매체로부터 상기 제 2 데이터를 독출하고;
상기 독출된 상기 제 2 데이터에 기반하여 상기 입력값들을 복원하기 위한 명령어들을 더 포함하는 클라이언트 서버.
The method of claim 15,
The fourth instructions,
Accessing the external server to obtain the first data;
Restore the random number based on the obtained first data;
Reading the second data from the storage medium;
And instructions for restoring the input values based on the read second data.
제 16 항에 있어서,
상기 프로그램 코드들은,
상기 복원된 랜덤 넘버와 상기 복원된 입력값들에 따라 상기 비밀번호를 복원하기 위한 제 5 명령어들을 더 포함하는 클라이언트 서버.
The method of claim 16,
The program codes are:
And a fifth command 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 KR20200022258A (en) 2020-03-03
KR102118476B1 true 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)

Families Citing this family (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 (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101129894B1 (en) * 2010-04-21 2012-03-28 루멘소프트 (주) Method for preventing memory hacking usign image and system thereof

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100745489B1 (en) * 2005-07-19 2007-08-02 소프트포럼 주식회사 Preventing method for hacking key input data

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101129894B1 (en) * 2010-04-21 2012-03-28 루멘소프트 (주) Method for preventing memory hacking usign image and system thereof

Also Published As

Publication number Publication date
KR20200022258A (en) 2020-03-03

Similar Documents

Publication Publication Date Title
US10171428B2 (en) Confidential data management method and device, and security authentication method and system
EP3086587B1 (en) Method and apparatus for transmitting and receiving encrypted message between terminals
US9183373B2 (en) Secure input via a touchscreen
CN110704860A (en) Longitudinal federal learning method, device and system for improving safety and storage medium
CN108769027B (en) Secure communication method, device, mobile terminal and storage medium
EP2187330A1 (en) Method and apparatus for encrypting user data
WO2016045469A1 (en) Information encryption method and mobile terminal
CN104954126B (en) Sensitive operation verification method, device and system
US20190147169A1 (en) Electronic device including display and method of encrypting and decrypting information
AU2020202014A1 (en) Raw sensor input encryption for passcode entry security
CN104573548A (en) Information encryption and decryption methods and devices and terminal
CN108900553B (en) Communication method, device and computer readable storage medium
KR102118476B1 (en) Device and method to process password input from user
CN105743860A (en) Method and device for converting characters
CN105022965A (en) Data encryption method and apparatus
CN109800583B (en) Electronic device comprising a display and method of encrypting information
KR20130140926A (en) System and method for processing scanned images
JP6800165B2 (en) Cryptography method and encryption system
CN115276966A (en) Data encryption method and device, electronic equipment and storage medium
CN108763964B (en) Data processing method and device, readable storage medium and equipment
CN113193956A (en) Account information processing method and device
KR101648779B1 (en) Method for secure text input in information terminal
US20140150084A1 (en) User authentication apparatus of portable terminal
JP2015023550A (en) Data decryption system and program
CN106803030A (en) A kind of encryption and decryption method and device, user equipment

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