KR102153666B1 - System for preventing hacking according to key logging of authentication section and MITM and method thereof - Google Patents

System for preventing hacking according to key logging of authentication section and MITM and method thereof Download PDF

Info

Publication number
KR102153666B1
KR102153666B1 KR1020190061231A KR20190061231A KR102153666B1 KR 102153666 B1 KR102153666 B1 KR 102153666B1 KR 1020190061231 A KR1020190061231 A KR 1020190061231A KR 20190061231 A KR20190061231 A KR 20190061231A KR 102153666 B1 KR102153666 B1 KR 102153666B1
Authority
KR
South Korea
Prior art keywords
server
key
terminal
value
input value
Prior art date
Application number
KR1020190061231A
Other languages
Korean (ko)
Inventor
이동성
Original Assignee
이동성
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 이동성 filed Critical 이동성
Priority to KR1020190061231A priority Critical patent/KR102153666B1/en
Application granted granted Critical
Publication of KR102153666B1 publication Critical patent/KR102153666B1/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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/30Authentication, i.e. establishing the identity or authorisation of security principals
    • G06F21/31User authentication
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/55Detecting local intrusion or implementing counter-measures

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Input From Keyboards Or The Like (AREA)
  • User Interface Of Digital Computer (AREA)

Abstract

The present invention discloses a hacking prevention system in accordance with the key logging of an authentication section and the MITM, and a method thereof. That is, the hacking prevention system of the present invention shuffles a preset key table shared with a server by using a server key provided from a server in a terminal, generates various types of dynamic keyboards such as circular rings and cylinders based on the shuffled key table, provides a user input value in accordance with the user input on the generated dynamic keyboard and the server key to the server, and provides the authentication by determining whether the validity of the server key and the existing stored password match based on the user input value and the server key provided from the terminal in the server, so as to prevent hacking in accordance with the key logging and the meson attacks.

Description

인증구간의 키로깅과 MITM에 따른 해킹 방지 시스템 및 그 방법{System for preventing hacking according to key logging of authentication section and MITM and method thereof}TECHNICAL FIELD [System for preventing hacking according to key logging of authentication section and MITM and method thereof]

본 발명은 인증구간의 키로깅과 MITM에 따른 해킹 방지 시스템 및 그 방법에 관한 것으로서, 특히 단말에서 서버로부터 제공되는 서버키를 이용해서 상기 서버와 공유하는 미리 설정된 키 테이블을 셔플하고, 상기 셔플된 키 테이블을 근거로 원형링, 원통형 등의 다양한 형태의 키보드를 생성하고, 상기 생성된 키보드 상에서의 사용자 입력에 따른 사용자 입력값과 상기 서버키를 상기 서버에 제공하고, 상기 서버에서 상기 단말로부터 제공되는 사용자 입력값과 상기 서버키를 근거로 기존 저장된 비밀번호와의 일치 여부를 판단하여 인증 여부를 상기 단말에 제공하는 인증구간의 키로깅과 MITM에 따른 해킹 방지 시스템 및 그 방법에 관한 것이다.The present invention relates to a system and method for preventing hacking according to key logging of authentication section and MITM. In particular, a terminal shuffles a preset key table shared with the server using a server key provided from a server, and the shuffled Creates various types of keyboards such as circular rings and cylinders based on the key table, provides user input values according to user input on the generated keyboard and the server key to the server, and provides them from the terminal in the server The present invention relates to a system and method for preventing hacking according to key logging and MITM for providing authentication to the terminal by determining whether or not the user input value is matched with the previously stored password based on the server key.

키로깅(Keylogging, 또는 키 스트로크 로깅(Keystroke logging))은 사용자가 키보드로 PC에 입력하는 내용을 몰래 가로채어 기록하는 행위를 나타낸다. 이러한 키로깅 방법으로는 하드웨어, 소프트웨어 등을 활용한 방법에서부터 전자적, 음향기술 등을 활용한 기법까지 다양한 키로깅 방법이 존재한다.Keylogging (or keystroke logging) refers to the act of intercepting and recording what a user enters into a PC with a keyboard. As such keylogging methods, there are various keylogging methods ranging from methods using hardware and software to techniques using electronic and sound technologies.

이러한 키로깅에 따른 해킹을 방지하기 위해 단순히 키패드의 순서를 무작위로 배열하는 방법 등이 이용되고 있으나, 여전히 사용자의 좌/우/뒤에서 해당 키패드에 입력되는 입력값을 확인할 수 있고, 또한 한장의 스크린샷과 마우스 클릭 이벤트 만으로 키 정보 유출의 가능성이 존재하고 있다.In order to prevent hacking according to such keylogging, a method of simply arranging the sequence of the keypad at random is used, but it is still possible to check the input value input to the corresponding keypad from the left/right/back of the user, and also a single screen. There is a possibility of key information leakage only through shot and mouse click events.

중간자 공격(Man-in-the-middle Attack: MITM)은 장치(PC/전화)와 웹서버 사이에서 데이터 전송이 이루어지는 동안, 기술과 도구를 사용하여 공격자는 두 사이에 자신을 배치하고 데이터를 가로채는 방식이다. 대표적인 중간자 공격은 스니핑(Sniffing), 패킹 주입(Packet Injection), 세션 하이재킹(Session Hijacking), SSL 스트리핑(SSL Stripping) 등이 있다. 이러한 중간자 공격은 SSLStrip과 Port Redirect를 이용하여 사용자가 Https 보안 연결이 된 것으로 속여 중간에 계정의 키를 탈취할 수도 있다.Man-in-the-middle Attack (MITM) is where data is transmitted between a device (PC/phone) and a web server, while using technology and tools, an attacker places himself between the two and intercepts data. This is the way. Typical man-in-the-middle attacks include sniffing, packing injection, session hijacking, and SSL stripping. This man-in-the-middle attack uses SSLStrip and Port Redirect to trick a user into having a secure Https connection and steal the account key in the middle.

한국공개특허 제10-2018-0067082호 [제목: 다이얼식 가상 보안 키패드 및 이를 이용한 인증 방법 및 장치]Korean Patent Publication No. 10-2018-0067082 [Title: Dial-type virtual security keypad and authentication method and apparatus using the same]

본 발명의 목적은 단말에서 서버로부터 제공되는 서버키를 이용해서 상기 서버와 공유하는 미리 설정된 키 테이블을 셔플하고, 상기 셔플된 키 테이블을 근거로 원형링, 원통형 등의 다양한 형태의 키보드를 생성하고, 상기 생성된 키보드 상에서의 사용자 입력에 따른 사용자 입력값과 상기 서버키를 상기 서버에 제공하고, 상기 서버에서 상기 단말로부터 제공되는 사용자 입력값과 상기 서버키를 근거로 기존 저장된 비밀번호와의 일치 여부를 판단하여 인증 여부를 상기 단말에 제공하는 인증구간의 키로깅과 MITM에 따른 해킹 방지 시스템 및 그 방법을 제공하는 데 있다.An object of the present invention is to shuffle a preset key table shared with the server by using a server key provided from a server in a terminal, and generate various types of keyboards such as circular rings and cylinders based on the shuffled key table. , A user input value according to a user input on the generated keyboard and the server key are provided to the server, and whether the server matches an existing stored password based on the user input value provided from the terminal and the server key. It is to provide a hacking prevention system and method according to key logging and MITM of an authentication section that provides authentication to the terminal by determining whether to authenticate.

본 발명의 실시예에 따른 인증구간의 키로깅과 MITM에 따른 해킹 방지 방법은 미리 설정된 이벤트가 발생할 때, 단말에 의해, 키패드 형식, 입력 형식 및 단말의 식별 정보를 서버에 전송하는 단계; 상기 서버에 의해, 상기 입력 형식을 근거로 미리 설정된 크기로 구성되는 서버 키를 생성하는 단계; 상기 단말에 의해, 상기 서버로부터 전송되는 서버 키를 근거로 상기 입력 형식에 대응하여 상기 단말에 미리 저장된 키 테이블을 셔플하는 단계; 상기 단말에 의해, 상기 셔플된 키 테이블, 상기 키패드 형식 및 상기 입력 형식을 근거로 원형링 또는 원통형의 키보드를 생성하는 단계; 상기 단말에 의해, 사용자로부터 비밀번호에 대응하는 입력값을 수신하기 위해서 상기 생성된 키보드를 상기 단말의 일측에 표시하는 단계; 상기 단말에 의해, 상기 단말의 일측에 표시되는 키보드에 대해서 사용자 입력에 따른 입력값을 수신하는 단계; 상기 단말에 의해, 상기 수신된 입력값, 상기 서버 키 및 상기 키보드에 대응하는 순차로 정렬된 값을 근거로 미리 설정된 시프트 연산을 수행하여 시프트 연산된 사용자 입력값을 생성하는 단계; 상기 단말에 의해, 상기 생성된 시프트 연산된 사용자 입력값과 상기 서버 키를 조합한 데이터 및 상기 단말의 식별 정보를 상기 서버에 전송하는 단계; 상기 서버에 의해, 상기 단말로부터 전송되는 데이터에서 상기 서버 키와 상기 시프트 연산된 사용자 입력값을 분리하는 단계; 상기 서버에 의해, 상기 수신된 단말의 식별 정보에 대응하여 상기 서버에 미리 등록된 비밀번호, 상기 서버 키 및 상기 서버 키를 이용하여 셔플된 후 순차로 정렬된 값을 근거로 상기 미리 설정된 시프트 연산을 수행하여, 시프트 연산된 비교 대상 입력값을 생성하는 단계; 상기 서버에 의해, 상기 생성된 시프트 연산된 비교 대상 입력값과 상기 분리된 시프트 연산된 사용자 입력값 간의 일치 여부를 판단하는 단계; 상기 판단 결과, 상기 시프트 연산된 비교 대상 입력값과 상기 시프트 연산된 사용자 입력값이 일치할 때, 상기 서버에 의해, 인증이 성공하였음을 나타내는 정보를 상기 단말에 전송하는 단계; 상기 단말에 의해, 상기 서버로부터 전송되는 인증이 성공하였음을 나타내는 정보를 수신하는 단계; 상기 단말에 의해, 상기 수신된 인증이 성공하였음을 나타내는 정보를 출력하는 단계; 및 상기 단말에 의해, 상기 서버와 연동하여, 인증 성공에 따른 추가 기능을 수행하는 단계를 포함할 수 있다.The method for preventing hacking according to the key logging of the authentication section and the MITM according to an embodiment of the present invention includes, by a terminal, transmitting a keypad format, an input format, and identification information of the terminal to a server when a preset event occurs; Generating, by the server, a server key having a preset size based on the input format; Shuffling, by the terminal, a key table previously stored in the terminal in response to the input format based on the server key transmitted from the server; Generating, by the terminal, a circular ring or cylindrical keyboard based on the shuffled key table, the keypad format, and the input format; Displaying, by the terminal, the generated keyboard on one side of the terminal to receive an input value corresponding to a password from a user; Receiving, by the terminal, an input value according to a user input for a keyboard displayed on one side of the terminal; Generating, by the terminal, a shift-calculated user input value by performing a preset shift operation based on the received input value, the server key, and values arranged in sequence corresponding to the keyboard; Transmitting, by the terminal, data obtained by combining the generated shifted user input value and the server key and identification information of the terminal to the server; Separating, by the server, the server key and the shifted user input value from the data transmitted from the terminal; By the server, the preset shift operation is performed based on a value that is sequentially sorted after being shuffled using a password registered in advance in the server, the server key, and the server key in response to the received terminal identification information. Performing a shift operation to generate a comparison target input value; Determining, by the server, whether or not the generated shifted comparison target input value and the separated shifted user input value match; Transmitting, by the server, information indicating that authentication was successful to the terminal when the shift-calculated comparison target input value and the shift-calculated user input value match as a result of the determination; Receiving, by the terminal, information indicating that authentication transmitted from the server was successful; Outputting, by the terminal, information indicating that the received authentication was successful; And performing, by the terminal, an additional function according to success of authentication by interworking with the server.

본 발명과 관련된 일 예로서 상기 이벤트는, 상기 단말에 표시되는 특정 영역이 마우스 또는 사용자 입력에 따라 선택되는 경우, 상기 단말에 비밀번호 입력을 위한 화면이 표시되고 있는 상태에서 마우스의 버튼이 선택되는 경우, 상기 단말에 비밀번호 입력을 위한 화면이 표시되고 있는 상태에서 키보드 상의 미리 설정된 키가 선택되는 경우 및 상기 단말에 비밀번호 입력을 위한 화면이 표시되고 있는 상태에서 상기 단말의 화면 일측에 표시되는 특정 영역 또는 특정 버튼이 사용자 입력에 따라 선택되는 경우 중 어느 하나를 포함하며, 상기 키패드 형식은, 상기 단말에 표시될 키패드의 모양으로 원형링 및 원통형 중 어느 하나를 포함하며, 상기 입력 형식은, 숫자 형식, 문자 형식, 특수문자 형식 및 이들의 조합 형식 중 어느 하나를 포함할 수 있다.As an example related to the present invention, the event is, when a specific area displayed on the terminal is selected according to a mouse or user input, when a button of a mouse is selected while a screen for password input is displayed on the terminal , When a preset key on the keyboard is selected while the screen for password input is displayed on the terminal, and a specific area displayed on one side of the screen of the terminal while the screen for password input is displayed on the terminal, or A specific button is selected according to a user input, and the keypad format includes any one of a circular ring and a cylindrical shape as a shape of a keypad to be displayed on the terminal, and the input format is a number format, It may include any one of a character format, a special character format, and a combination format thereof.

본 발명과 관련된 일 예로서 상기 단말에 미리 저장된 키 테이블을 셔플하는 단계는, N×M 형태의 키 테이블 중에서 선택되는 n×m 형태의 서브 키 테이블을 대상으로 키값을 포함하는 행, 키값을 포함하는 열, 키값을 포함하는 행과 해당 행에 인접한 하나 이상의 다른 행, 키값을 포함하는 행에 인접한 하나 이상의 다른 행, 키값을 포함하는 열과 해당 열에 인접한 하나 이상의 다른 열, 키값을 포함하는 열에 인접한 하나 이상의 다른 열 및 행렬 형태의 키 테이블에서의 대각선 중 하나의 범위를 상기 서버 키의 크기만큼 순차로 선택하는 과정; 및 상기 순차로 선택된 각각의 복수의 범위를 기준으로 미리 설정된 방향으로 미리 설정된 단위만큼 시프트하는 복수의 서브 셔플 방식에 따라 상기 서버 키를 이용하여 상기 키 테이블을 셔플하는 과정을 포함하며, 상기 N과 M은 같거나 다른 자연수이고, 상기 n은 상기 N보다 작거나 같은 자연수이고, 상기 m은 상기 M보다 작거나 같은 자연수이고, 상기 n과 m은 같거나 다를 수 있다.As an example related to the present invention, the shuffling of the key table previously stored in the terminal includes a row including a key value and a key value for an n×m type sub-key table selected from an N×M type key table. The column containing the key value and one or more other rows adjacent to the row, one or more other rows adjacent to the row containing the key value, the column containing the key value and one or more other columns adjacent to the column, one adjacent to the column containing the key value Sequentially selecting one of the diagonal ranges of the other columns and matrix-type key tables by the size of the server key; And shuffling the key table using the server key according to a plurality of sub-shuffle methods shifting by a preset unit in a preset direction based on the plurality of sequentially selected ranges, wherein the N and M is the same or different natural number, n is a natural number less than or equal to N, m is a natural number less than or equal to M, and n and m may be the same or different.

본 발명과 관련된 일 예로서 상기 키보드를 생성하는 단계는, 상기 셔플된 키 테이블에 대응하여 미리 설정된 인디케이터를 기준으로 상기 셔플된 키 테이블에 포함된 값을 순차로 정렬하는 과정; 및 상기 순차로 정렬된 값을 상기 키패드 형식에 대응하는 원형링 또는 원통형의 키보드에 순차로 정렬하여, 상기 순차로 정렬된 값으로 구성되는 키보드를 생성하는 과정을 포함할 수 있다.As an example related to the present invention, generating the keyboard includes: sequentially sorting values included in the shuffled key table based on a preset indicator corresponding to the shuffled key table; And generating a keyboard composed of the sequentially arranged values by sequentially arranging the sequentially arranged values on a circular ring or cylindrical keyboard corresponding to the keypad type.

본 발명과 관련된 일 예로서 상기 판단 결과, 상기 시프트 연산된 비교 대상 입력값과 상기 시프트 연산된 사용자 입력값이 일치하지 않을 때, 상기 서버에 의해, 인증이 실패하였음을 나타내는 정보를 상기 단말에 전송하는 단계; 상기 단말에 의해, 상기 서버로부터 전송되는 인증이 실패하였음을 나타내는 정보를 수신하는 단계; 및 상기 단말에 의해, 상기 수신된 인증이 실패하였음을 나타내는 정보를 출력하는 단계를 더 포함할 수 있다.As an example related to the present invention, when the determination result, when the shift-calculated comparison target input value and the shift-calculated user input value do not match, information indicating that authentication has failed is transmitted to the terminal by the server. Step to do; Receiving, by the terminal, information indicating that authentication transmitted from the server has failed; And outputting, by the terminal, information indicating that the received authentication has failed.

본 발명의 실시예에 따른 인증구간의 키로깅과 MITM에 따른 해킹 방지 시스템은 미리 설정된 이벤트가 발생할 때, 키패드 형식, 입력 형식 및 단말의 식별 정보를 상기 서버에 전송하고, 상기 전송에 응답하여 상기 서버로부터 전송되는 서버 키를 수신하고, 상기 서버 키를 근거로 상기 입력 형식에 대응하여 단말에 미리 저장된 키 테이블을 셔플하고, 상기 셔플된 키 테이블, 상기 키패드 형식 및 상기 입력 형식을 근거로 원형링 또는 원통형의 키보드를 생성하고, 사용자로부터 비밀번호에 대응하는 입력값을 수신하기 위해서 상기 생성된 키보드를 상기 단말의 일측에 표시하고, 사용자 입력에 따른 입력값을 수신하고, 상기 수신된 입력값, 상기 서버 키 및 상기 키보드에 대응하는 순차로 정렬된 값을 근거로 미리 설정된 시프트 연산을 수행하여 시프트 연산된 사용자 입력값을 생성하고, 상기 생성된 시프트 연산된 사용자 입력값과 상기 서버 키를 조합한 데이터 및 상기 단말의 식별 정보를 상기 서버에 전송하는 상기 단말; 및 상기 단말로부터 전송되는 데이터에서 상기 서버 키와 상기 시프트 연산된 사용자 입력값을 분리하고, 상기 수신된 단말의 식별 정보에 대응하여 상기 서버에 미리 등록된 비밀번호, 상기 서버 키 및 상기 서버 키를 이용하여 셔플된 후 순차로 정렬된 값을 근거로 상기 미리 설정된 시프트 연산을 수행하여, 시프트 연산된 비교 대상 입력값을 생성하고, 상기 생성된 시프트 연산된 비교 대상 입력값과 상기 분리된 시프트 연산된 사용자 입력값 간의 일치 여부를 판단하고, 상기 판단 결과, 상기 시프트 연산된 비교 대상 입력값과 상기 시프트 연산된 사용자 입력값이 일치할 때 인증이 성공하였음을 나타내는 정보를 상기 단말에 전송하는 서버를 포함할 수 있다.The key logging of the authentication section and the hacking prevention system according to the MITM according to the embodiment of the present invention transmits the keypad format, input format and terminal identification information to the server when a preset event occurs, and in response to the transmission, the Receiving a server key transmitted from a server, shuffling a key table previously stored in the terminal corresponding to the input format based on the server key, and circular ring based on the shuffled key table, the keypad format, and the input format Alternatively, to generate a cylindrical keyboard, display the generated keyboard on one side of the terminal to receive an input value corresponding to a password from a user, receive an input value according to a user input, and the received input value, the Data obtained by performing a preset shift operation based on a server key and values arranged in a sequence corresponding to the keyboard to generate a shifted user input value, and combining the generated shifted user input value and the server key And the terminal transmitting identification information of the terminal to the server. And separating the server key and the shifted user input value from the data transmitted from the terminal, and using a password previously registered in the server, the server key, and the server key in response to the received terminal identification information. After being shuffled, the preset shift operation is performed on the basis of the sequentially sorted values to generate a shifted comparison target input value, and the generated shifted comparison target input value and the separated shifted user A server that determines whether the input values match or not, and transmits, to the terminal, information indicating that authentication is successful when the shift-calculated comparison target input value and the shift-calculated user input value match. I can.

본 발명과 관련된 일 예로서 상기 단말은, 상기 서버로부터 전송되는 인증이 성공하였음을 나타내는 정보를 수신하고, 상기 수신된 인증이 성공하였음을 나타내는 정보를 출력하고, 상기 서버와 연동하여, 인증 성공에 따른 추가 기능을 수행할 수 있다.As an example related to the present invention, the terminal receives information indicating that the authentication was successful transmitted from the server, outputs information indicating that the received authentication was successful, and interlocks with the server to determine the authentication success. Additional functions can be performed.

본 발명은 단말에서 서버로부터 제공되는 서버키를 이용해서 상기 서버와 공유하는 미리 설정된 키 테이블을 셔플하고, 상기 셔플된 키 테이블을 근거로 원형링, 원통형 등의 다양한 형태의 동적 키보드를 생성하고, 상기 생성된 동적 키보드 상에서의 사용자 입력에 따른 사용자 입력값과 상기 서버키를 상기 서버에 제공하고, 상기 서버에서 상기 단말로부터 제공되는 사용자 입력값과 상기 서버키를 근거로 서버키의 유효성 및 기존 저장된 비밀번호와의 일치 여부를 판단하여 인증 여부를 상기 단말에 제공함으로써, 키로깅과 중간자 공격에 따른 해킹을 방지할 수 있는 효과가 있다.The present invention shuffles a preset key table shared with the server using a server key provided from a server in a terminal, and generates various types of dynamic keyboards such as circular rings and cylinders based on the shuffled key table, A user input value according to a user input on the generated dynamic keyboard and the server key are provided to the server, and the server key validity and previously stored based on the user input value provided from the terminal and the server key in the server It is possible to prevent hacking due to keylogging and man-in-the-middle attacks by determining whether the password matches or not and providing the authentication status to the terminal.

도 1은 본 발명의 실시예에 따른 인증구간의 키로깅과 MITM에 따른 해킹 방지 시스템의 구성을 나타낸 블록도이다.
도 2는 본 발명의 실시예에 따른 단말의 구성을 나타낸 블록도이다.
도 3 내지 도 5는 본 발명의 실시예에 따른 키 테이블의 예를 나타낸 도이다.
도 6은 본 발명의 실시예에 따른 원통형 셔플 방식의 예를 나타낸 도이다.
도 7은 본 발명의 실시예에 따른 복수의 인디케이터로 구성되는 원형링의 예를 나타낸 도이다.
도 8은 본 발명의 실시예에 따른 복수의 인디케이터로 구성되는 원통형의 예를 나타낸 도이다.
도 9 내지 도 10은 본 발명의 실시예에 따른 인증구간의 키로깅과 MITM에 따른 해킹 방지 방법을 나타낸 흐름도이다.
도 11은 본 발명의 실시예에 따른 셔플 과정의 예를 나타낸 도이다.
도 12는 본 발명의 실시예에 따른 원형링 형태의 키보드의 예를 나타낸 도이다.
도 13은 본 발명의 실시예에 따른 시프트 연산된 사용자 입력값의 생성 예를 나타낸 도이다.
1 is a block diagram showing the configuration of a hacking prevention system according to the key logging of an authentication section and MITM according to an embodiment of the present invention.
2 is a block diagram showing the configuration of a terminal according to an embodiment of the present invention.
3 to 5 are diagrams showing an example of a key table according to an embodiment of the present invention.
6 is a diagram showing an example of a cylindrical shuffle method according to an embodiment of the present invention.
7 is a diagram showing an example of a circular ring composed of a plurality of indicators according to an embodiment of the present invention.
8 is a diagram showing an example of a cylinder composed of a plurality of indicators according to an embodiment of the present invention.
9 to 10 are flowcharts illustrating a method for preventing hacking according to the key logging of an authentication section and MITM according to an embodiment of the present invention.
11 is a diagram showing an example of a shuffle process according to an embodiment of the present invention.
12 is a diagram showing an example of a keyboard in the form of a circular ring according to an embodiment of the present invention.
13 is a diagram illustrating an example of generating a user input value subjected to a shift operation according to an embodiment of the present invention.

본 발명에서 사용되는 기술적 용어는 단지 특정한 실시예를 설명하기 위해 사용된 것으로, 본 발명을 한정하려는 의도가 아님을 유의해야 한다. 또한, 본 발명에서 사용되는 기술적 용어는 본 발명에서 특별히 다른 의미로 정의되지 않는 한, 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 의미로 해석되어야 하며, 과도하게 포괄적인 의미로 해석되거나, 과도하게 축소된 의미로 해석되지 않아야 한다. 또한, 본 발명에서 사용되는 기술적인 용어가 본 발명의 사상을 정확하게 표현하지 못하는 잘못된 기술적 용어일 때에는 당업자가 올바르게 이해할 수 있는 기술적 용어로 대체되어 이해되어야 할 것이다. 또한, 본 발명에서 사용되는 일반적인 용어는 사전에 정의되어 있는 바에 따라, 또는 전후 문맥상에 따라 해석되어야 하며, 과도하게 축소된 의미로 해석되지 않아야 한다.It should be noted that the technical terms used in the present invention are used only to describe specific embodiments, and are not intended to limit the present invention. In addition, the technical terms used in the present invention should be interpreted as generally understood by those of ordinary skill in the technical field to which the present invention belongs, unless otherwise defined in the present invention, and is excessively comprehensive. It should not be construed as a human meaning or an excessively reduced meaning. In addition, when a technical term used in the present invention is an incorrect technical term that does not accurately express the spirit of the present invention, it should be replaced with a technical term that can be correctly understood by those skilled in the art. In addition, general terms used in the present invention should be interpreted as defined in the dictionary or according to the context before and after, and should not be interpreted as an excessively reduced meaning.

또한, 본 발명에서 사용되는 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한 복수의 표현을 포함한다. 본 발명에서 "구성된다" 또는 "포함한다" 등의 용어는 발명에 기재된 여러 구성 요소들 또는 여러 단계를 반드시 모두 포함하는 것으로 해석되지 않아야 하며, 그 중 일부 구성 요소들 또는 일부 단계들은 포함되지 않을 수도 있고, 또는 추가적인 구성 요소 또는 단계들을 더 포함할 수 있는 것으로 해석되어야 한다.In addition, the singular expression used in the present invention includes a plurality of expressions unless the context clearly indicates otherwise. In the present invention, terms such as “consisting of” or “comprising” should not be construed as necessarily including all of the various components or steps described in the invention, and some components or some steps may not be included. It should be construed that it may or may further include additional components or steps.

또한, 본 발명에서 사용되는 제 1, 제 2 등과 같이 서수를 포함하는 용어는 구성 요소들을 설명하는데 사용될 수 있지만, 구성 요소들은 용어들에 의해 한정되어서는 안 된다. 용어들은 하나의 구성 요소를 다른 구성 요소로부터 구별하는 목적으로만 사용된다. 예를 들어, 본 발명의 권리 범위를 벗어나지 않으면서 제 1 구성 요소는 제 2 구성 요소로 명명될 수 있고, 유사하게 제 2 구성 요소도 제 1 구성 요소로 명명될 수 있다.In addition, terms including ordinal numbers such as first and second used in the present invention may be used to describe the constituent elements, but the constituent elements should not be limited by the terms. The terms are used only for the purpose of distinguishing one component from another. For example, without departing from the scope of the present invention, a first component may be referred to as a second component, and similarly, a second component may be referred to as a first component.

이하, 첨부된 도면을 참조하여 본 발명에 따른 바람직한 실시예를 상세히 설명하되, 도면 부호에 관계없이 동일하거나 유사한 구성 요소는 동일한 참조 번호를 부여하고 이에 대한 중복되는 설명은 생략하기로 한다.Hereinafter, preferred embodiments of the present invention will be described in detail with reference to the accompanying drawings, but the same or similar components are assigned the same reference numerals regardless of the reference numerals, and redundant descriptions thereof will be omitted.

또한, 본 발명을 설명함에 있어서 관련된 공지 기술에 대한 구체적인 설명이 본 발명의 요지를 흐릴 수 있다고 판단되는 경우 그 상세한 설명을 생략한다. 또한, 첨부된 도면은 본 발명의 사상을 쉽게 이해할 수 있도록 하기 위한 것일 뿐, 첨부된 도면에 의해 본 발명의 사상이 제한되는 것으로 해석되어서는 아니 됨을 유의해야 한다.In addition, in describing the present invention, when it is determined that a detailed description of a related known technology may obscure the subject matter of the present invention, a detailed description thereof will be omitted. In addition, it should be noted that the accompanying drawings are only for easily understanding the spirit of the present invention and should not be construed as limiting the spirit of the present invention by the accompanying drawings.

도 1은 본 발명의 실시예에 따른 인증구간의 키로깅과 MITM에 따른 해킹 방지 시스템(10)의 구성을 나타낸 블록도이다.1 is a block diagram showing the configuration of a hacking prevention system 10 according to the MITM and key logging of an authentication section according to an embodiment of the present invention.

도 1에 도시한 바와 같이, 인증구간의 키로깅과 MITM에 따른 해킹 방지 시스템(10)은 단말(100) 및 서버(200)로 구성된다. 도 1에 도시된 해킹 방지 시스템(10)의 구성 요소 모두가 필수 구성 요소인 것은 아니며, 도 1에 도시된 구성 요소보다 많은 구성 요소에 의해 해킹 방지 시스템(10)이 구현될 수도 있고, 그보다 적은 구성 요소에 의해서도 해킹 방지 시스템(10)이 구현될 수도 있다.As shown in FIG. 1, the hacking prevention system 10 according to the key logging of the authentication section and MITM is composed of a terminal 100 and a server 200. Not all of the components of the hacking prevention system 10 shown in FIG. 1 are essential components, and the hacking prevention system 10 may be implemented by more components than the components shown in FIG. 1, or less. Hacking prevention system 10 may also be implemented by components.

상기 단말(100)은 스마트 폰(Smart Phone), 휴대 단말기(Portable Terminal), 이동 단말기(Mobile Terminal), 폴더블 단말기(Foldable Terminal), 개인 정보 단말기(Personal Digital Assistant: PDA), PMP(Portable Multimedia Player) 단말기, 텔레매틱스(Telematics) 단말기, 내비게이션(Navigation) 단말기, 개인용 컴퓨터(Personal Computer), 노트북 컴퓨터, 슬레이트 PC(Slate PC), 태블릿 PC(Tablet PC), 울트라북(ultrabook), 웨어러블 디바이스(Wearable Device, 예를 들어, 워치형 단말기(Smartwatch), 글래스형 단말기(Smart Glass), HMD(Head Mounted Display) 등 포함), 와이브로(Wibro) 단말기, IPTV(Internet Protocol Television) 단말기, 스마트 TV, 디지털방송용 단말기, AVN(Audio Video Navigation) 단말기, A/V(Audio/Video) 시스템, 플렉시블 단말기(Flexible Terminal), 디지털 사이니지 장치, POS기기, ATM, KIOSK 등과 같은 다양한 단말기에 적용될 수 있다.The terminal 100 is a smart phone (Smart Phone), a portable terminal (Portable Terminal), a mobile terminal (Mobile Terminal), a foldable terminal (Foldable Terminal), Personal Digital Assistant (PDA), PMP (Portable Multimedia Player) Terminal, Telematics Terminal, Navigation Terminal, Personal Computer, Laptop Computer, Slate PC, Tablet PC, Ultrabook, Wearable Device (Wearable) Device, for example, including smartwatch, smart glass, HMD (Head Mounted Display), Wibro terminal, Internet Protocol Television (IPTV) terminal, smart TV, digital broadcasting It can be applied to various terminals such as terminals, audio video navigation (AVN) terminals, audio/video (A/V) systems, flexible terminals, digital signage devices, POS devices, ATMs, and KIOSK.

도 2에 도시한 바와 같이, 상기 단말(100)은 통신부(110), 저장부(120), 표시부(130), 음성 출력부(140) 및 제어부(150)로 구성된다. 도 2에 도시된 단말(100)의 구성 요소 모두가 필수 구성 요소인 것은 아니며, 도 2에 도시된 구성 요소보다 많은 구성 요소에 의해 단말(100)이 구현될 수도 있고, 그보다 적은 구성 요소에 의해서도 단말(100)이 구현될 수도 있다.As shown in FIG. 2, the terminal 100 includes a communication unit 110, a storage unit 120, a display unit 130, an audio output unit 140, and a control unit 150. Not all of the components of the terminal 100 shown in FIG. 2 are essential components, and the terminal 100 may be implemented by more components than the components shown in FIG. 2, or by fewer components. The terminal 100 may be implemented.

상기 통신부(110)는 유/무선 통신망을 통해 내부의 임의의 구성 요소 또는 외부의 임의의 적어도 하나의 단말기와 통신 연결한다. 이때, 상기 외부의 임의의 단말기는 상기 서버(200) 등을 포함할 수 있다. 여기서, 무선 인터넷 기술로는 무선랜(Wireless LAN: WLAN), DLNA(Digital Living Network Alliance), 와이브로(Wireless Broadband: Wibro), 와이맥스(World Interoperability for Microwave Access: Wimax), HSDPA(High Speed Downlink Packet Access), HSUPA(High Speed Uplink Packet Access), IEEE 802.16, 롱 텀 에볼루션(Long Term Evolution: LTE), LTE-A(Long Term Evolution-Advanced), 광대역 무선 이동 통신 서비스(Wireless Mobile Broadband Service: WMBS) 등이 있으며, 상기 통신부(110)는 상기에서 나열되지 않은 인터넷 기술까지 포함한 범위에서 적어도 하나의 무선 인터넷 기술에 따라 데이터를 송수신하게 된다. 또한, 근거리 통신 기술로는 블루투스(Bluetooth), RFID(Radio Frequency Identification), 적외선 통신(Infrared Data Association: IrDA), UWB(Ultra Wideband), 지그비(ZigBee), 인접 자장 통신(Near Field Communication: NFC), 초음파 통신(Ultra Sound Communication: USC), 가시광 통신(Visible Light Communication: VLC), 와이 파이(Wi-Fi), 와이 파이 다이렉트(Wi-Fi Direct) 등이 포함될 수 있다. 또한, 유선 통신 기술로는 전력선 통신(Power Line Communication: PLC), USB 통신, 이더넷(Ethernet), 시리얼 통신(serial communication), 광/동축 케이블 등이 포함될 수 있다.The communication unit 110 communicates with an internal component or at least one external terminal through a wired/wireless communication network. In this case, the external terminal may include the server 200 or the like. Here, as the wireless Internet technology, wireless LAN (WLAN), DLNA (Digital Living Network Alliance), Wireless Broadband: Wibro, Wimax (World Interoperability for Microwave Access: Wimax), HSDPA (High Speed Downlink Packet Access) ), High Speed Uplink Packet Access (HSUPA), IEEE 802.16, Long Term Evolution (LTE), Long Term Evolution-Advanced (LTE-A), Wireless Mobile Broadband Service (WMBS), etc. In addition, the communication unit 110 transmits and receives data according to at least one wireless Internet technology in a range including Internet technologies not listed above. In addition, short-range communication technologies include Bluetooth, Radio Frequency Identification (RFID), Infrared Data Association (IrDA), Ultra Wideband (UWB), ZigBee, and Near Field Communication (NFC). , Ultra Sound Communication (USC), Visible Light Communication (VLC), Wi-Fi, Wi-Fi Direct, and the like may be included. In addition, wired communication technologies may include power line communication (PLC), USB communication, Ethernet, serial communication, optical/coaxial cable, and the like.

또한, 상기 통신부(110)는 유니버설 시리얼 버스(Universal Serial Bus: USB)를 통해 임의의 단말과 정보를 상호 전송할 수 있다.In addition, the communication unit 110 may mutually transmit information with an arbitrary terminal through a universal serial bus (USB).

또한, 상기 통신부(110)는 이동통신을 위한 기술표준들 또는 통신방식(예를 들어, GSM(Global System for Mobile communication), CDMA(Code Division Multi Access), CDMA2000(Code Division Multi Access 2000), EV-DO(Enhanced Voice-Data Optimized or Enhanced Voice-Data Only), WCDMA(Wideband CDMA), HSDPA(High Speed Downlink Packet Access), HSUPA(High Speed Uplink Packet Access), LTE(Long Term Evolution), LTE-A(Long Term Evolution-Advanced) 등)에 따라 구축된 이동 통신망 상에서 기지국, 상기 서버(200) 등과 무선 신호를 송수신한다.In addition, the communication unit 110 includes technical standards or communication methods for mobile communication (for example, GSM (Global System for Mobile communication), CDMA (Code Division Multi Access), CDMA2000 (Code Division Multi Access 2000)), EV -DO (Enhanced Voice-Data Optimized or Enhanced Voice-Data Only), WCDMA (Wideband CDMA), HSDPA (High Speed Downlink Packet Access), HSUPA (High Speed Uplink Packet Access), LTE (Long Term Evolution), LTE-A (Long Term Evolution-Advanced), etc.), transmits and receives radio signals to and from the base station, the server 200, and the like.

또한, 상기 통신부(110)는 상기 제어부(150)의 제어에 의해, 상기 서버(200)로부터 전송되는 키 테이블, 서버 키(server key) 등을 수신한다.In addition, the communication unit 110 receives a key table and a server key transmitted from the server 200 under the control of the control unit 150.

상기 저장부(120)는 다양한 사용자 인터페이스(User Interface: UI), 그래픽 사용자 인터페이스(Graphic User Interface: GUI) 등을 저장한다.The storage unit 120 stores various user interfaces (UIs), graphic user interfaces (GUIs), and the like.

또한, 상기 저장부(120)는 상기 단말(100)이 동작하는데 필요한 데이터와 프로그램 등을 저장한다.In addition, the storage unit 120 stores data and programs necessary for the terminal 100 to operate.

즉, 상기 저장부(120)는 상기 단말(100)에서 구동되는 다수의 응용 프로그램(application program 또는 애플리케이션(application)), 단말(100)의 동작을 위한 데이터들, 명령어들을 저장할 수 있다. 이러한 응용 프로그램 중 적어도 일부는 무선 통신을 통해 외부 서버로부터 다운로드 될 수 있다. 또한, 이러한 응용 프로그램 중 적어도 일부는 단말(100)의 기본적인 기능을 위하여 출고 당시부터 단말(100) 상에 존재할 수 있다. 한편, 응용 프로그램은 상기 저장부(120)에 저장되고, 단말(100)에 설치되어, 제어부(150)에 의하여 상기 단말(100)의 동작(또는 기능)을 수행하도록 구동될 수 있다.That is, the storage unit 120 may store a plurality of application programs (application programs or applications) driven by the terminal 100, data for operation of the terminal 100, and commands. At least some of these application programs may be downloaded from an external server through wireless communication. In addition, at least some of these application programs may exist on the terminal 100 from the time of shipment for basic functions of the terminal 100. Meanwhile, the application program may be stored in the storage unit 120, installed in the terminal 100, and driven by the controller 150 to perform an operation (or function) of the terminal 100.

또한, 상기 저장부(120)는 플래시 메모리 타입(Flash Memory Type), 하드 디스크 타입(Hard Disk Type), 멀티미디어 카드 마이크로 타입(Multimedia Card Micro Type), 카드 타입의 메모리(예를 들면, SD 또는 XD 메모리 등), 자기 메모리, 자기 디스크, 광디스크, 램(Random Access Memory: RAM), SRAM(Static Random Access Memory), 롬(Read-Only Memory: ROM), EEPROM(Electrically Erasable Programmable Read-Only Memory), PROM(Programmable Read-Only Memory) 중 적어도 하나의 저장매체를 포함할 수 있다. 또한, 단말(100)은 인터넷(internet)상에서 저장부(120)의 저장 기능을 수행하는 웹 스토리지(web storage)를 운영하거나, 또는 상기 웹 스토리지와 관련되어 동작할 수도 있다.In addition, the storage unit 120 is a flash memory type (Flash Memory Type), a hard disk type (Hard Disk Type), a multimedia card micro type (Multimedia Card Micro Type), a card type memory (e.g., SD or XD Memory, etc.), magnetic memory, magnetic disk, optical disk, RAM (Random Access Memory: RAM), SRAM (Static Random Access Memory), ROM (Read-Only Memory: ROM), EEPROM (Electrically Erasable Programmable Read-Only Memory), It may include at least one storage medium among Programmable Read-Only Memory (PROM). In addition, the terminal 100 may operate a web storage that performs a storage function of the storage unit 120 over the Internet, or may operate in connection with the web storage.

또한, 상기 저장부(120)는 상기 제어부(150)의 제어에 의해 상기 수신된 키 테이블, 서버 키 등을 저장한다.In addition, the storage unit 120 stores the received key table, server key, and the like under the control of the control unit 150.

상기 표시부(또는 디스플레이부)(130)는 상기 제어부(150)의 제어에 의해 상기 저장부(120)에 저장된 사용자 인터페이스 및/또는 그래픽 사용자 인터페이스를 이용하여 다양한 메뉴 화면 등과 같은 다양한 콘텐츠를 표시할 수 있다. 여기서, 상기 표시부(130)에 표시되는 콘텐츠는 다양한 텍스트 또는 이미지 데이터(각종 정보 데이터 포함)와 아이콘, 리스트 메뉴, 콤보 박스 등의 데이터를 포함하는 메뉴 화면 등을 포함한다. 또한, 상기 표시부(130)는 터치 스크린 일 수 있다.The display unit (or display unit) 130 may display various contents such as various menu screens using a user interface and/or a graphic user interface stored in the storage unit 120 under the control of the control unit 150. have. Here, the content displayed on the display unit 130 includes various text or image data (including various information data) and a menu screen including data such as icons, list menus, and combo boxes. In addition, the display unit 130 may be a touch screen.

또한, 상기 표시부(130)는 액정 디스플레이(Liquid Crystal Display: LCD), 박막 트랜지스터 액정 디스플레이(Thin Film Transistor-Liquid Crystal Display: TFT LCD), 유기 발광 다이오드(Organic Light-Emitting Diode: OLED), 플렉시블 디스플레이(Flexible Display), 3차원 디스플레이(3D Display), 전자잉크 디스플레이(e-ink display), LED(Light Emitting Diode) 중에서 적어도 하나를 포함할 수 있다.In addition, the display unit 130 includes a liquid crystal display (LCD), a thin film transistor liquid crystal display (TFT LCD), an organic light-emitting diode (OLED), and a flexible display. It may include at least one of (Flexible Display), 3D display, e-ink display, and LED (Light Emitting Diode).

또한, 상기 표시부(130)는 상기 제어부(150)의 제어에 의해 상기 수신된 키 테이블, 서버 키 등을 표시한다.In addition, the display unit 130 displays the received key table, server key, and the like under the control of the control unit 150.

상기 음성 출력부(140)는 상기 제어부(150)에 의해 소정 신호 처리된 신호에 포함된 음성 정보를 출력한다. 여기서, 상기 음성 출력부(140)에는 리시버(receiver), 스피커(speaker), 버저(buzzer) 등이 포함될 수 있다.The audio output unit 140 outputs audio information included in a signal processed by a predetermined signal by the control unit 150. Here, the audio output unit 140 may include a receiver, a speaker, a buzzer, and the like.

또한, 상기 음성 출력부(140)는 상기 제어부(150)에 의해 생성된 안내 음성을 출력한다.In addition, the voice output unit 140 outputs a guide voice generated by the control unit 150.

또한, 상기 음성 출력부(140)는 상기 제어부(150)의 제어에 의해 상기 수신된 키 테이블, 서버 키 등에 대응하는 음성 정보(또는 음향 효과)를 출력한다.In addition, the voice output unit 140 outputs voice information (or sound effect) corresponding to the received key table, server key, etc. under the control of the control unit 150.

상기 제어부(controller, 또는 MCU(microcontroller unit)(150)는 상기 단말(100)의 전반적인 제어 기능을 실행한다.The controller or microcontroller unit (MCU) 150 executes an overall control function of the terminal 100.

또한, 상기 제어부(150)는 상기 저장부(120)에 저장된 프로그램 및 데이터를 이용하여 단말(100)의 전반적인 제어 기능을 실행한다. 상기 제어부(150)는 RAM, ROM, CPU, GPU, 버스를 포함할 수 있으며, RAM, ROM, CPU, GPU 등은 버스를 통해 서로 연결될 수 있다. CPU는 상기 저장부(120)에 액세스하여, 상기 저장부(120)에 저장된 O/S를 이용하여 부팅을 수행할 수 있으며, 상기 저장부(120)에 저장된 각종 프로그램, 콘텐츠, 데이터 등을 이용하여 다양한 동작을 수행할 수 있다.In addition, the control unit 150 executes an overall control function of the terminal 100 using programs and data stored in the storage unit 120. The control unit 150 may include RAM, ROM, CPU, GPU, and bus, and RAM, ROM, CPU, GPU, and the like may be connected to each other through a bus. The CPU can access the storage unit 120 and perform booting using the O/S stored in the storage unit 120, and use various programs, contents, data, etc. stored in the storage unit 120 Thus, various operations can be performed.

또한, 상기 제어부(150)는 상기 서버(200)와의 연동에 의해, 상기 서버(200)에서 제공하는 전용 앱 및/또는 웹 사이트를 통해 해당 서버(200)에서 제공하는 서비스(또는 콘텐츠)를 제공받기 위한 사용자로 회원 가입하며, 개인 정보 등을 상기 서버(200)에 등록한다.In addition, the control unit 150 provides a service (or content) provided by the server 200 through a dedicated app and/or website provided by the server 200 by interworking with the server 200 Signs up as a user to receive, and registers personal information in the server 200.

또한, 상기 제어부(150)는 해당 단말(100)의 사용자가 가입한 SNS 계정 정보를 이용하여 상기 서버(200)에 사용자로 회원 가입할 수도 있다. 여기서, 상기 SNS 계정은 페이스북, 트위터, 카카오 스토리 등과 관련한 정보일 수 있다. 이때, 콘텐츠를 제작하는 사용자와 콘텐츠를 이용하는 사용자에 따라, 상기 전용 앱은 서로 다른 사용자 인터페이스로 구성될 수 있다.In addition, the controller 150 may subscribe as a user to the server 200 by using the SNS account information subscribed by the user of the corresponding terminal 100. Here, the SNS account may be information related to Facebook, Twitter, and Kakao Story. In this case, depending on the user who creates the content and the user who uses the content, the dedicated app may be configured with different user interfaces.

또한, 회원 가입 절차 수행 시, 상기 제어부(150)는 본인 인증 수단(예를 들어 이동 전화, 신용카드, 아이핀 등 포함)을 통한 인증 기능을 완료해야 상기 서버(200)에 대한 회원 가입 절차를 정상적으로 완료할 수 있다.In addition, when performing the membership registration procedure, the control unit 150 must complete the authentication function through an identity authentication means (eg, mobile phone, credit card, i-PIN, etc.) to normally perform the membership registration procedure for the server 200. Can be completed.

또한, 회원 가입이 완료된 후, 상기 제어부(150)는 상기 서버(200)에서 제공하는 서비스를 이용하기 위해서, 상기 서버(200)로부터 제공되는 전용 앱(또는 애플리케이션/응용 프로그램/특정 앱)을 해당 단말(100)에 설치한다. 이때, 상기 전용 앱은 상기 서버(200)에서 제공되는 서비스(또는 콘텐츠)를 제공받기 위한 앱일 수 있다.In addition, after membership registration is complete, the controller 150 corresponds to a dedicated app (or application/application/specific app) provided from the server 200 in order to use the service provided by the server 200. It is installed in the terminal 100. In this case, the dedicated app may be an app for receiving a service (or content) provided by the server 200.

또한, 비밀번호 입력 등을 위해서 미리 설정된 이벤트가 발생하는 경우, 상기 제어부(150)는 키패드 형식, 입력 형식, 단말(100)의 식별 정보 등을 상기 통신부(110)를 통해 상기 서버(200)에 전송한다. 여기서, 상기 이벤트는 표시부(130)에 표시되는 특정 영역이 마우스(미도시) 또는 사용자 입력(또는 터치)에 따라 클릭(또는 선택/터치)되는 경우, 표시부(130)에 비밀번호 입력을 위한 화면이 표시되고 있는 상태에서 마우스의 좌측 버튼/우측 버튼/휠 버튼 중 어느 하나의 버튼이 클릭(또는 선택)되는 경우, 표시부(130)에 비밀번호 입력을 위한 화면이 표시되고 있는 상태에서 키보드(미도시) 상의 미리 설정된 키(또는 복수의 키 조합)가 클릭/선택되는 경우, 표시부(130)에 비밀번호 입력을 위한 화면이 표시되고 있는 상태에서 표시부(130)의 화면 일측에 표시되는 특정 영역 또는 특정 버튼(또는 특정 메뉴/항목)이 사용자 입력(또는 터치)에 따라 선택(또는 터치)되는 경우 등을 포함한다. 또한, 상기 키패드 형식은 사용자 입력에 따라 선택되거나 또는 미리 설정된 상태이며, 상기 표시부(130)에 표시될 키패드의 모양(또는 키패드와 관련한 사용자 인터페이스/그래픽 사용자 인터페이스)으로 원형링, 원통형(또는 슬롯머신의 원통 릴) 등을 포함한다. 또한, 상기 입력 형식은 사용자 입력에 따라 선택되거나 또는 미리 설정된 상태이며, 상기 키패드에 표시될 숫자, 문자, 특수문자(또는 기호) 등의 형식을 지정하기 위한 것으로, 숫자 형식, 문자 형식, 특수문자 형식, 이들의 조합 형식 등을 포함한다. 또한, 상기 단말(100)의 식별 정보는 MDN(Mobile Directory Number), 모바일 IP, 모바일 MAC, Sim(subscriber identity module: 가입자 식별 모듈) 카드 고유정보, 시리얼번호 등을 포함한다.In addition, when a preset event occurs for inputting a password, the control unit 150 transmits a keypad format, an input format, and identification information of the terminal 100 to the server 200 through the communication unit 110. do. Here, in the event, when a specific area displayed on the display unit 130 is clicked (or selected/touched) according to a mouse (not shown) or a user input (or touch), a screen for inputting a password is displayed on the display unit 130. When any one of the left button/right button/wheel button of the mouse is clicked (or selected) while being displayed, the keyboard (not shown) while the screen for entering the password is displayed on the display unit 130 When a preset key (or a combination of a plurality of keys) on the image is clicked/selected, a specific area or a specific button displayed on one side of the screen of the display unit 130 while the screen for entering the password is displayed on the display unit 130 Or when a specific menu/item) is selected (or touched) according to a user input (or touch). In addition, the keypad type is selected or preset according to a user input, and the shape of the keypad to be displayed on the display unit 130 (or a user interface/graphical user interface related to the keypad) is circular, cylindrical (or slot machine). Of cylindrical reel), etc. In addition, the input format is selected or preset according to the user input, and is for designating the format of numbers, characters, special characters (or symbols) to be displayed on the keypad, and the number format, character format, and special characters Forms, combinations thereof, and the like are included. In addition, the identification information of the terminal 100 includes a Mobile Directory Number (MDN), a mobile IP, a mobile MAC, a subscriber identity module (SIM) card unique information, a serial number, and the like.

또한, 상기 제어부(150)는 앞서 전송된 키패드 형식, 입력 형식 등에 응답하여 상기 서버(200)로부터 전송되는 서버 키를 상기 통신부(110)를 통해 수신한다.In addition, the controller 150 receives a server key transmitted from the server 200 through the communication unit 110 in response to a keypad format, an input format, etc. transmitted previously.

또한, 상기 제어부(150)는 상기 수신된 서버 키를 근거로 상기 입력 형식에 대응하여 상기 저장부(120)에 미리 저장된(또는 등록된) 키 테이블을 셔플한다. 여기서, 상기 키 테이블은 상기 단말(100)과 상기 서버(200)에서 동일하게 저장(또는 관리/유지)된 상태일 수 있으며, 도 3에 도시된 바와 같은 4×4 형태의 숫자만으로 이루어진 키 테이블, 도 4에 도시된 바와 같은 6×6 형태의 문자만으로 이루어진 키 테이블, 특수문자만으로 이루어진 키 테이블, 숫자와 문자와 특수문자 간의 조합으로 이루어진 키 테이블(예를 들어 도 5에 도시된 바와 같은 숫자와 영문 소문자의 조합으로 이루어진 키 테이블) 등을 포함한다. 이때, 상기 키 테이블에 대한 셔플 방식은 N×M 형태의 키 테이블 중에서 선택되는 n×m 형태의 서브 키 테이블을 상기 수신된 서버 키에 포함된 값을 이용하여 복수 단계에 걸쳐 셔플 기능을 수행한다. 여기서, 상기 N과 M은 같거나 다를 수 있고 자연수이며, 상기 n은 상기 N보다 작거나 같은 자연수이고, 상기 m은 상기 M보다 작거나 같은 자연수이고, 상기 n과 m은 같거나 다를 수 있다.In addition, the control unit 150 shuffles the key table previously stored (or registered) in the storage unit 120 according to the input format based on the received server key. Here, the key table may be stored (or managed/maintained) in the terminal 100 and the server 200 in the same manner, and a key table composed of only 4×4 numbers as shown in FIG. , A key table composed of only 6×6 characters as shown in FIG. 4, a key table composed of only special characters, and a key table composed of a combination of numbers, letters, and special characters (for example, numbers as shown in FIG. 5 And a key table consisting of a combination of lowercase letters and letters). In this case, the shuffle method for the key table performs a shuffle function in a plurality of steps by using a value included in the received server key for an n×m type sub key table selected from an N×M type key table. . Here, N and M may be the same or different and may be a natural number, n may be a natural number less than or equal to N, m may be a natural number less than or equal to M, and n and m may be the same or different.

즉, 상기 제어부(150)는 상기 입력 형식에 대응하여 상기 저장부(120)에 미리 저장된 키 테이블에서 상기 수신된 미리 설정된 크기의 서버 키에 포함된 첫 번째 키값(또는 첫 번째 식별자), 두 번째 키값, 세 번째 키값 등에 대해서 미리 순서가 설정된 셔플 방식에 따라 순차로 셔플을 수행하여 최종 셔플된 키 테이블을 생성(또는 준비)한다. 여기서, 상기 미리 순서가 설정된 셔플 방식은 상기 N×M 형태의 키 테이블 중에서 선택되는 n×m 형태의 서브 키 테이블을 대상으로, 키값(또는 식별자)을 포함하는 행(row), 키값을 포함하는 열(column), 키값을 포함하는 행과 해당 행에 인접한 하나 이상의 다른 행, 키값을 포함하는 행에 인접한 하나 이상의 다른 행, 키값을 포함하는 열과 해당 열에 인접한 하나 이상의 다른 열, 키값을 포함하는 열에 인접한 하나 이상의 다른 열 및 행렬 형태의 키 테이블에서의 대각선(예를 들어 1시 방향에서 7시 방향으로의 대각선, 11시 방향에서 5시 방향으로의 대각선 등 포함) 중 하나의 범위를 상기 서버 키의 크기만큼 순차로 선택하고, 상기 순차로 선택된 각각의 복수의 범위를 기준으로 미리 설정된 방향(예를 들어 상/하/좌/우 등 포함)으로 미리 설정된 단위(또는 크기)만큼 시프트(또는 대각선인 경우 대각선 범위를 기준으로 좌/우 대칭 교환)하는 복수의 서브 셔플 방식으로 구성하며, 상기 순차로 선택된 복수의 서브 셔플 방식에 따라 상기 서버 키를 이용하여 상기 키 테이블을 셔플하는데 사용된다.That is, the control unit 150 includes a first key value (or a first identifier) included in the received server key of the preset size from a key table previously stored in the storage unit 120 corresponding to the input format, and a second The key value, the third key value, etc. are sequentially shuffled according to a pre-set shuffle method to generate (or prepare) a final shuffled key table. Here, the pre-ordered shuffle method targets an n×m type sub-key table selected from the N×M type key table, and includes a row including a key value (or identifier) and a key value. In a column, the row containing the key value and one or more other rows adjacent to the row, one or more other rows adjacent to the row containing the key value, the column containing the key value and one or more other columns adjacent to the column, and the column containing the key value One or more adjacent columns and a range of diagonals in a matrix-type key table (e.g., including a diagonal from 1 o'clock to 7 o'clock, a diagonal from 11 o'clock to 5 o'clock, etc.) Select sequentially as much as the size of, and shift (or diagonally) by a preset unit (or size) in a preset direction (including, for example, up/down/left/right) based on the plurality of ranges selected in sequence. In the case of, it is configured in a plurality of sub-shuffle methods that symmetrically exchange left/right based on a diagonal range), and is used to shuffle the key table using the server key according to the sequentially selected plurality of sub-shuffle methods.

또한, 원통형(또는 슬롯머신의 원통 릴)의 경우, 도 6에 도시된 바와 같이, 상기 제어부(150)는 복수의 인덱스(610)(예를 들어 1, 2, 3, 4)에 대해서 앞선 미리 순서가 설정된 셔플 방식에 따라 각각 셔플을 수행한다.In addition, in the case of a cylindrical (or cylindrical reel of a slot machine), as shown in FIG. 6, the control unit 150 has a plurality of indexes 610 (for example, 1, 2, 3, 4). Each shuffle is performed according to the set shuffle method.

즉, 상기 제어부(150)는 인덱스 1에 포함된 0 ~ 9까지의 숫자에 대해서 미리 순서가 설정된 제 1 셔플 방식에 따라 셔플을 수행하고, 인덱스 2에 포함된 A ~ M까지의 영문 대문자에 대해서 미리 순서가 설정된 제 2 셔플 방식에 따라 셔플을 수행하고, 인덱스 3에 포함된 N ~ Z까지의 영문 대문자에 대해서 미리 순서가 설정된 제 3 셔플 방식에 따라 셔플을 수행하고, 인덱스 4에 포함된 복수의 특수문자(예를 들어 !, @, #, $, %, ^, &, *, (, ), <, >, ?)에 대해서 미리 순서가 설정된 제 4 셔플 방식에 따라 셔플을 수행한다.That is, the control unit 150 shuffles the numbers 0 to 9 included in the index 1 according to the first shuffle method in which the order is set in advance, and for uppercase English letters A to M included in the index 2 Shuffle is performed according to the second shuffle method in which the order is set, and the uppercase letters N to Z included in the index 3 are shuffled according to the third shuffle method in which the order is set, and the plurality included in index 4 Shuffle is performed for special characters of (for example, !, @, #, $, %, ^, &, *, (, ), <, >, ?) according to the 4th shuffle method in which the order is set in advance.

또한, 상기 원통형의 경우, 상기 도 6에 도시된 셔플된 키 테이블 중에서 특정 부분(620)이 사용자 입력을 위한 화면으로 상기 표시부(130)에 표시되며, 사용자 제어에 따라 상기 원통이 상/하 또는 좌/우로 회전함에 따라 상기 셔플된 키 테이블 중 다른 부분이 사용자 입력을 위한 화면으로 상기 표시부(130)에 표시될 수 있다.In addition, in the case of the cylinder, a specific portion 620 of the shuffled key table shown in FIG. 6 is displayed on the display unit 130 as a screen for user input, and the cylinder is up/down or As it rotates left/right, another part of the shuffled key table may be displayed on the display unit 130 as a screen for user input.

이와 같이, 상기 제어부(150)는 상기 저장부(120)에 저장된 키 테이블을 대상으로 상기 서버 키에 대응하여 미리 순서가 설정된 복수의 서브 셔플 방식에 따라 순차로 서브 셔플을 수행하여, 최종적으로 셔플된 키 테이블을 생성할 수 있다.In this way, the control unit 150 performs sub-shuffle sequentially according to a plurality of sub-shuffle methods set in advance in response to the server key targeting the key table stored in the storage unit 120, and finally shuffles You can create a table of keys.

또한, 상기 제어부(150)는 상기 셔플된 키 테이블, 상기 키패드 형식, 상기 입력 형식 등을 근거로 원형링, 원통형 등의 다양한 형태의 키보드를 생성한다.In addition, the control unit 150 generates various types of keyboards such as circular rings and cylinders based on the shuffled key table, the keypad type, and the input type.

즉, 상기 제어부(150)는 상기 셔플된 키 테이블에 대응하여 미리 설정된 인디케이터(또는 상기 N×M 행렬에서 미리 설정된 기준 위치)를 기준으로 상기 셔플된 키 테이블에 포함된 값(예를 들어 숫자, 문자, 특수문자 또는 이들 간의 조합)을 순차로 정렬한다.That is, the control unit 150 includes a value (for example, a number, a number, or an indicator) included in the shuffled key table based on a preset indicator (or a preset reference position in the N×M matrix) corresponding to the shuffled key table. Characters, special characters, or a combination of them) in order.

또한, 상기 제어부(150)는 상기 순차로 정렬된 값을 상기 키패드 형식에 대응하는 원형링 또는 원통형의 키보드에 순차로 정렬(또는 배치)하여, 상기 순차로 정렬된 값으로 구성되는 키보드를 생성한다.In addition, the control unit 150 sequentially arranges (or arranges) the sequentially arranged values on a circular ring or cylindrical keyboard corresponding to the keypad type, thereby generating a keyboard composed of the sequentially arranged values. .

또한, 상기 제어부(150)는 사용자로부터 비밀번호 등에 대응하는 입력값을 수신하기 위해서 상기 생성된 키보드를 상기 표시부(130)의 일측에 표시한다.In addition, the control unit 150 displays the generated keyboard on one side of the display unit 130 in order to receive an input value corresponding to a password or the like from a user.

또한, 상기 제어부(150)는 상기 표시부(130)의 일측에 표시되는 키보드에 대해서 사용자 입력(또는 사용자 터치/제어)에 따른 입력값을 수신한다. 여기서, 상기 입력값은 숫자, 문자, 특수문자 및 이들의 조합에 따른 적어도 하나 이상의 데이터(또는 키(key))로 구성될 수 있다.In addition, the controller 150 receives an input value according to a user input (or user touch/control) with respect to the keyboard displayed on one side of the display unit 130. Here, the input value may be composed of at least one data (or key) according to numbers, letters, special characters, and combinations thereof.

또한, 원통형(또는 슬롯머신의 원통 릴)의 경우, 상기 표시부(130)의 일측에 표시되는 원통형의 키보드에서 일정 방향으로 회전하는 원통 내의 특정 영역이 사용자의 손가락이나 마우스에 의해 포커스된 영역(또는 부분)에서 상기 원통의 회전 방향인 일정 방향과 다른 방향으로의 방향 전환이 일어나는 경우, 상기 제어부(150)는 해당 손가락이나 마우스에 의해 포커스된 영역에 대응하는 값을 입력값으로 수신할 수 있다.In addition, in the case of a cylinder (or a cylinder reel of a slot machine), a specific area in the cylinder rotating in a certain direction in the cylindrical keyboard displayed on one side of the display unit 130 is the area in which the user's finger or mouse focuses (or In part), when a direction change occurs in a direction different from a predetermined direction, which is a rotation direction of the cylinder, the controller 150 may receive a value corresponding to a focused area by a corresponding finger or mouse as an input value.

예를 들어, 상기 표시부(130)의 일측에서 원통형 키보드가 위에서 아래쪽으로 회전하도록 설정되어 있고, 상기 제 1 인덱스에 대응하는 숫자 '3'이 터치된(또는 포커스된) 상태에서 사용자 터치에 따라 상기 위에서 아래쪽으로의 회전 방향과 다른 좌측에서 우측으로의 방향 전환(또는 아래쪽에서 위쪽으로의 방향 전환)이 발생할 때, 상기 제어부(150)는 상기 방향 전환이 발생한 시점에 대응하여 터치된 상태의 숫자 '3'을 제 1 입력값으로 수신한다.For example, a cylindrical keyboard is set to rotate from top to bottom on one side of the display unit 130, and the number '3' corresponding to the first index is touched (or focused), and the When a change of direction from left to right (or change of direction from bottom to top) different from the direction of rotation from top to bottom occurs, the control unit 150 corresponds to the time when the direction change occurs, the number of the touched state ' 3'is received as the first input value.

또한, 연속하여 상기 제 2 인덱스에 대응하는 영문 대문자 'E'가 터치된 상태에서 사용자 터치에 따라 상기 위에서 아래쪽으로의 회전 방향과 다른 좌측에서 우측으로의 방향 전환(또는 아래쪽에서 위쪽으로의 방향 전환)이 발생할 때, 상기 제어부(150)는 상기 방향 전환이 발생한 시점에 대응하여 터치된 상태의 영문 대문자 'E'를 제 2 입력값으로 수신한다.In addition, in a state in which the English capital letter'E' corresponding to the second index is continuously touched, a direction change from left to right different from the direction of rotation from top to bottom according to the user's touch (or change from bottom to top) When) occurs, the control unit 150 receives the touched English capital letter'E' as a second input value corresponding to the point in time when the direction change occurs.

이와 같이, 상기 제어부(150)는 상기 표시부(130)에 표시되는 원통형 키보드에서 일정 영역이 터치된 상태(또는 포커스된 상태)에서 상기 원통형 키보드가 회전하는 미리 설정된 방향과 다른 방향으로의 방향 전환이 발생하는 경우, 해당 방향 전환이 발생하는 시점에서 터치된 상태(또는 포커스된 상태)의 일정 영역에 대응하는 숫자, 문자, 특수문자 등을 입력값으로 수신할 수 있다.In this way, the controller 150 can change the direction in a direction different from a preset direction in which the cylindrical keyboard rotates in a state in which a certain area is touched (or in a focused state) on the cylindrical keyboard displayed on the display unit 130. When it occurs, numbers, characters, special characters, etc. corresponding to a certain area of the touched state (or the focused state) at the time when the corresponding direction change occurs may be received as an input value.

또한, 본 발명의 실시예에서는 상기 인디케이터가 1개인 경우에 한해 설명하고 있으나, 이에 한정되는 것은 아니며, 상기 인디케이터는 복수일 수도 있다.In addition, in the embodiment of the present invention, only one indicator is described, but the present invention is not limited thereto, and the number of indicators may be plural.

즉, 도 7에 도시된 바와 같이, 원형링의 키보드에 대해서, 상기 제어부(150)는 복수의 인디케이터(예를 들어 a, b, c, d)를 포함할 수 있다.That is, as shown in FIG. 7, for a circular ring keyboard, the control unit 150 may include a plurality of indicators (eg, a, b, c, d).

예를 들어, 상기 도 7에 도시된 바와 같이, 원형링의 키보드로 입력값을 수신하는 상태에서, 사용자 터치에 따라 상기 도 7에 도시된 상태로 설정되는 경우, 상기 제어부(150)는 상기 a 인디케이터에 대응하는 6, b 인디케이터에 대응하는 4, c 인디케이터에 대응하는 9 및 d 인디케이터에 대응하는 1에 해당하는 '6491'을 입력값으로 수신할 수 있다.For example, as shown in FIG. 7, in a state in which an input value is received through a circular ring keyboard, when the state is set to the state illustrated in FIG. 7 according to a user's touch, the controller 150 6 corresponding to the indicator, 4 corresponding to the b indicator, 9 corresponding to the c indicator, and '6491' corresponding to 1 corresponding to the d indicator may be received as input values.

다른 예를 들어, 상기 도 7에 도시된 바와 같이, 원형링의 키보드로 입력값을 수신하는 상태에서, 사용자 터치에 따라 상기 도 7에 도시된 상태로 설정되는 경우, 상기 제어부(150)는 미리 설정된 a 인디케이터에 대응하는 6과 d 인디케이터에 대응하는 1에 해당하는 '61'을 입력값으로 수신할 수도 있다.For another example, as shown in FIG. 7, in a state in which an input value is received through a circular ring keyboard, when the state is set to the state illustrated in FIG. 7 according to a user touch, the controller 150 6 corresponding to the set indicator a and '61' corresponding to 1 corresponding to the d indicator may be received as input values.

또한, 도 8에 도시된 바와 같이, 원통형의 키보드에 대해서, 상기 제어부(150)는 복수의 인디케이터(예를 들어 a, b, c, d, e, f)를 포함할 수 있다.In addition, as shown in FIG. 8, for a cylindrical keyboard, the control unit 150 may include a plurality of indicators (eg, a, b, c, d, e, f).

예를 들어, 상기 도 8에 도시된 바와 같이, 원통형의 키보드로 입력값을 수신하는 상태에서, 사용자 터치에 따라 상기 도 8에 도시된 상태로 설정되는 경우, 상기 제어부(150)는 미리 설정된 a-d 라인 상에서 제 1 인덱스의 숫자 '2'가 선택된 상태에서 상기 원통형 키보드가 회전하는 제 1 방향(예를 들어 위에서 아래쪽 방향)과 반대되는 제 2 방향(예를 들어 아래쪽에서 위쪽 방향)으로의 방향 전환이 발생할 때 상기 선택된 제 1 인덱스의 숫자 '2'를 제 1 입력값으로 수신하고, 제 2 인덱스의 영문 대문자 'C'가 선택된 상태에서 상기 제 2 방향으로의 방향 전환이 발생할 때 상기 선택된 제 2 인덱스의 영문 대문자 'C'를 제 2 입력값으로 수신하고, 제 3 인덱스의 영문 대문자 'P'가 선택된 상태에서 상기 제 2 방향으로의 방향 전환이 발생할 때 상기 선택된 제 3 인덱스의 영문 대문자 'P'를 제 3 입력값으로 수신하고, 제 4 인덱스의 특수문자 '#'가 선택된 상태에서 상기 제 2 방향으로의 방향 전환이 발생할 때 상기 선택된 제 4 인덱스의 특수문자 '#'를 제 4 입력값으로 수신하여, 상기 수신된 제 1 입력값 내지 제 4 입력값을 근거로 전체 입력값(예를 들어 2CP#)을 수신할 수 있다.For example, as shown in FIG. 8, in a state in which an input value is received through a cylindrical keyboard, when the state is set to the state illustrated in FIG. 8 according to a user touch, the controller 150 When the number '2' of the first index is selected on the line, the direction changes in a second direction (eg, from bottom to top) opposite to the first direction in which the cylindrical keyboard rotates (eg, top to bottom) When this occurs, the number '2' of the selected first index is received as a first input value, and when a direction change to the second direction occurs while the English capital letter'C' of the second index is selected, the selected second When the uppercase English letter'C' of the index is received as the second input value, and the direction change to the second direction occurs while the uppercase English letter'P' of the third index is selected, the uppercase English letter'P' of the selected third index 'Is received as the third input value, and when the direction change to the second direction occurs while the special character'#' of the fourth index is selected, the special character'#' of the selected fourth index is used as the fourth input value. By receiving, the entire input value (eg, 2CP#) may be received based on the received first to fourth input values.

이와 같이, 상기 단말(100)에 표시되는 키보드 및 그에 따른 입력값을 다른 사용자가 어깨너머로 보거나 감시를 하더라도, 어느 인디케이터를 기준으로 입력값을 수신하는지 등을 확인할 수 없게 된다.In this way, even if the keyboard displayed on the terminal 100 and the corresponding input value are viewed or monitored by another user over the shoulder, it is impossible to check which indicator the input value is received based on.

또한, 이와 같이, 상기 단말(100)에서 표시되는 키보드에 복수의 인디케이터가 포함된 경우, 상기 단말(100)은 상기 복수의 인디케이터 중에서 미리 설정된 적어도 하나의 인디케이터에 대응하는 적어도 하나의 값을 입력값으로 수신할 수 있다.In addition, as described above, when a plurality of indicators are included in the keyboard displayed on the terminal 100, the terminal 100 inputs at least one value corresponding to at least one preset indicator among the plurality of indicators. You can receive it.

또한, 상기 제어부(150)는 상기 수신된 입력값, 상기 서버 키 및 상기 키보드에 대응하는 순차로 정렬된 값(또는 상기 셔플된 키 테이블에 포함된 값을 순차로 정렬한 값)을 근거로 미리 설정된 시프트 연산을 수행하여 시프트 연산된 사용자 입력값(또는 사용자 입력값)을 생성(또는 산출)한다. 여기서, 상기 시프트 연산은 상기 입력값에 따라 미리 설정된 방향(예를 들어 우측 방향, 좌측 방향 등 포함)으로의 시프트 연산일 수 있다.In addition, the control unit 150 is in advance based on the received input value, the server key, and a value arranged in sequence corresponding to the keyboard (or a value sequentially arranged in the shuffled key table). A set shift operation is performed to generate (or calculate) a shifted user input value (or user input value). Here, the shift operation may be a shift operation in a predetermined direction (eg, right direction, left direction, etc.) according to the input value.

또한, 상기 제어부(150)는 상기 생성된(또는 산출된) 시프트 연산된 사용자 입력값과 상기 서버 키를 조합한 데이터(또는 패킷), 상기 단말(100)의 식별 정보 등을 상기 통신부(110)를 통해 상기 서버(200)에 전송한다.In addition, the control unit 150 transmits data (or packets) obtained by combining the generated (or calculated) shift-calculated user input value and the server key, identification information of the terminal 100, etc. to the communication unit 110 It is transmitted to the server 200 through.

이때, 상기 제어부(150)는 상기 서버 키에 포함된 복수의 숫자, 문자, 특수문자 등을 미리 설정된 비트수(예를 들어 4비트, 8비트 등 포함)의 0과 1의 조합으로 구성되는 2진수로 각각 변환하고, 상기 2진수로 변환된 서버 키와 상기 생성된 시프트 연산된 사용자 입력값을 조합하여 바이너리 형태의 상기 데이터를 생성할 수도 있다. 또한, 상기 제어부(150)는 상기 생성된 바이너리 형태의 데이터, 상기 단말(100)의 식별 정보 등을 상기 통신부(110)를 통해 상기 서버(200)에 전송할 수도 있다.At this time, the control unit 150 includes a combination of 0 and 1 of a preset number of bits (including 4 bits, 8 bits, etc.) for a plurality of numbers, characters, and special characters included in the server key. The data in binary form may be generated by converting each to a decimal number and combining the server key converted to the binary number and the generated shifted user input value. In addition, the control unit 150 may transmit the generated binary data and identification information of the terminal 100 to the server 200 through the communication unit 110.

여기서, 상기 제어부(150)는 상기 생성된(또는 산출된) 시프트 연산된 사용자 입력값과 상기 서버 키를 조합한 데이터(또는 패킷), 상기 단말(100)의 식별 정보 등을 미리 설정된 암호화 방식을 통해 암호화하여, 암호화된 디지털 데이터를 생성한다. 또한, 상기 제어부(150)는 상기 생성된 디지털 데이터를 상기 통신부(110)를 통해 상기 서버(200)에 전송할 수도 있다. 이때, 상기 암호화 방식은 다양한 대칭키 암호화 방식, 비대칭키 암호화 방식 등을 포함할 수 있다.Here, the control unit 150 uses a preset encryption method for data (or packet) obtained by combining the generated (or calculated) shift-calculated user input value and the server key, and identification information of the terminal 100. Through encryption, to generate encrypted digital data. In addition, the control unit 150 may transmit the generated digital data to the server 200 through the communication unit 110. In this case, the encryption method may include various symmetric key encryption methods, asymmetric key encryption methods, and the like.

상기 서버(200)에서 생성된 시프트 연산된 비교 대상 입력값과 상기 시프트 연산된 사용자 입력값이 일치하지 않은 경우, 상기 제어부(150)는 앞서 전송된 시프트 연산된 사용자 입력값과 서버 키를 조합한 데이터 등에 응답하여 상기 서버(200)로부터 전송되는 인증이 실패하였음을 나타내는 정보를 상기 통신부(110)를 통해 수신한다.When the shift-calculated comparison target input value generated by the server 200 and the shift-calculated user input value do not match, the control unit 150 combines the previously transmitted shift-calculated user input value and the server key. In response to data or the like, information indicating that authentication transmitted from the server 200 has failed is received through the communication unit 110.

또한, 상기 제어부(150)는 상기 수신된 인증이 실패하였음을 나타내는 정보를 상기 표시부(130) 및/또는 상기 음성 출력부(140)를 통해 출력한다.In addition, the control unit 150 outputs information indicating that the received authentication has failed through the display unit 130 and/or the audio output unit 140.

또한, 상기 서버(200)에서 생성된 시프트 연산된 비교 대상 입력값과 상기 시프트 연산된 사용자 입력값이 일치하는 경우, 상기 제어부(150)는 앞서 전송된 시프트 연산된 사용자 입력값과 서버 키를 조합한 데이터 등에 응답하여 상기 서버(200)로부터 전송되는 인증이 성공하였음을 나타내는 정보를 상기 통신부(110)를 통해 수신한다.In addition, when the shift-calculated comparison target input value generated by the server 200 and the shift-calculated user input value match, the control unit 150 combines the previously transmitted shift-calculated user input value and the server key. In response to one data or the like, information indicating that authentication transmitted from the server 200 is successful is received through the communication unit 110.

또한, 상기 제어부(150)는 상기 수신된 인증이 성공하였음을 나타내는 정보를 상기 표시부(130) 및/또는 상기 음성 출력부(140)를 통해 출력한다.In addition, the control unit 150 outputs information indicating that the received authentication is successful through the display unit 130 and/or the audio output unit 140.

또한, 상기 제어부(150)는 상기 서버(200)와 연동하여 인증 성공에 따른 추가 기능을 수행한다.In addition, the control unit 150 interworks with the server 200 to perform an additional function according to authentication success.

또한, 상기 제어부(150)는 추가 기능 수행에 따른 결과 정보를 상기 표시부(130) 및/또는 상기 음성 출력부(140)를 통해 출력한다.In addition, the control unit 150 outputs result information according to the execution of the additional function through the display unit 130 and/or the audio output unit 140.

본 발명의 실시예에서는 상기 단말(100)에서 웹 사이트 형태로 상기 서버(200)에서 제공하는 서비스(또는 콘텐츠/인증 기능 수행) 기능 등을 제공하는 것을 설명하고 있으나, 이에 한정되는 것은 아니며, 상기 웹 사이트 이외에도 상기 서버(200)에서 제공하는 전용 앱(또는 특정 앱) 등을 통해 상기 서비스 기능 등을 제공할 수도 있다.In the embodiment of the present invention, it is described that the terminal 100 provides a service (or content/authentication function execution) function provided by the server 200 in the form of a website, but is not limited thereto. In addition to the website, the service function may be provided through a dedicated app (or a specific app) provided by the server 200.

상기 서버(200)는 상기 단말(100) 등과 통신한다.The server 200 communicates with the terminal 100 and the like.

또한, 상기 서버(200)는 상기 단말(100)을 구성하는 상기 통신부(110), 상기 저장부(120), 상기 표시부(130), 상기 음성 출력부(140), 상기 제어부(150)에 대응하는 각 구성 요소를 포함하여 구성할 수 있다.In addition, the server 200 corresponds to the communication unit 110, the storage unit 120, the display unit 130, the audio output unit 140, and the control unit 150 constituting the terminal 100 It can be configured including each component.

또한, 상기 서버(200)는 상기 단말(100) 등의 사용자에 대한 회원 가입 절차 등을 수행한다.In addition, the server 200 performs a member registration procedure for users such as the terminal 100.

또한, 상기 서버(200)는 상기 단말(100) 등의 사용자와 관련한 개인 정보를 등록한다. 이때, 상기 서버(200)는 해당 개인 정보 등을 DB 서버(미도시)에 등록(또는 관리)할 수 있다.In addition, the server 200 registers personal information related to a user such as the terminal 100. In this case, the server 200 may register (or manage) corresponding personal information in a DB server (not shown).

또한, 상기 서버(200)는 상기 단말(100) 등의 사용자에 대한 회원 관리 기능을 수행한다.In addition, the server 200 performs a member management function for users such as the terminal 100.

또한, 상기 서버(200)는 해당 서버(200)에서 관리하는 다양한 서비스(또는 콘텐츠) 등을 제공하는 전용 앱 및/또는 웹 사이트를 상기 단말(100) 등에 제공한다.In addition, the server 200 provides a dedicated app and/or web site that provides various services (or contents) managed by the server 200 and the like to the terminal 100.

또한, 상기 서버(200)는 상기 단말(100)로부터 전송되는 키패드 형식, 입력 형식, 단말(100)의 식별 정보 등을 수신한다.In addition, the server 200 receives a keypad format, an input format, and identification information of the terminal 100 transmitted from the terminal 100.

또한, 상기 서버(200)는 상기 입력 형식을 근거로 고윳값을 가지며, 미리 설정된 크기로 구성되는 서버 키를 생성한다.In addition, the server 200 generates a server key having a high value based on the input format and having a preset size.

이때, 상기 서버(200)는 미리 설정된 단위(또는 크기)의 숫자 범위, 문자 범위, 특수문자 범위 및 이들 간의 조합 중에서 상기 입력 형식을 근거로 랜덤하게 어느 하나를 선택하고, 상기 랜덤하게 선택된 어느 하나를 상기 서버 키로 생성할 수도 있다. 여기서, 상기 서버(200)는 입력 형식별로 미리 설정된 단위의 숫자 범위, 미리 설정된 단위의 문자 범위, 미리 설정된 단위의 특수문자 범위, 미리 설정된 단위의 숫자와 문자와 특수문자의 조합에 의한 범위 등을 관리할 수 있다.At this time, the server 200 randomly selects any one of a number range, a character range, a special character range, and a combination thereof of a preset unit (or size) based on the input format, and the randomly selected one May be generated with the server key. Here, the server 200 determines a range of numbers in a unit set in advance for each input type, a range of characters in a preset unit, a range of special characters in a preset unit, and a range by a combination of numbers and characters and special characters in a preset unit. Can be managed.

또한, 상기 서버(200)는 상기 생성된 서버 키를 상기 단말(100)에 전송한다.In addition, the server 200 transmits the generated server key to the terminal 100.

또한, 상기 서버(200)는 상기 단말(100)로부터 전송되는 시프트 연산된 사용자 입력값과 서버 키를 조합한 데이터, 단말(100)의 식별 정보 등을 수신한다.In addition, the server 200 receives data obtained by combining a shifted user input value and a server key transmitted from the terminal 100, identification information of the terminal 100, and the like.

여기서, 상기 서버(200)에서 상기 단말(100)로부터 전송되는 암호화된 디지털 데이터를 수신하는 경우, 상기 서버(200)는 상기 수신된 암호화된 디지털 데이터를 미리 설정된 복호화 방식을 통해 복호화하여, 상기 시프트 연산된 사용자 입력값과 서버 키를 조합한 데이터, 상기 단말(100)의 식별 정보 등을 확인한다.Here, when the server 200 receives the encrypted digital data transmitted from the terminal 100, the server 200 decrypts the received encrypted digital data through a preset decryption method, and the shift Data obtained by combining the calculated user input value and the server key, and identification information of the terminal 100 are checked.

또한, 상기 서버(200)는 상기 수신된 데이터에서 상기 서버 키와 상기 시프트 연산된 사용자 입력값을 분리한다. 이때, 상기 서버 키가 2진수로 변환되어 상기 데이터에 포함된 경우, 상기 서버(200)는 미리 설정된 데이터 프레임 형태에 따라 미리 설정된 비트의 수를 상기 서버 키로 확인하고, 나머지 비트의 수를 상기 t시프트 연산된 사용자 입력값으로 확인할 수 있다.In addition, the server 200 separates the server key and the shifted user input value from the received data. At this time, when the server key is converted to a binary number and included in the data, the server 200 checks the number of bits set in advance according to the preset data frame type with the server key, and determines the number of remaining bits as the t You can check it with the shifted user input value.

또한, 상기 서버(200)는 상기 수신된 단말(100)의 식별 정보에 대응하여 서버(200)에 미리 등록된 비밀번호, 상기 서버 키, 상기 서버 키를 이용하여 셔플된 후 순차로 정렬된 값 등을 근거로 상기 미리 설정된 시프트 연산을 수행하여, 시프트 연산된 비교 대상 입력값(또는 비교 대상 입력값)을 생성(또는 산출)한다. 여기서, 상기 시프트 연산은 미리 설정된 방향(예를 들어 우측 방향, 좌측 방향 등 포함)으로의 시프트 연산일 수 있다.In addition, the server 200 is shuffled by using a password registered in advance in the server 200, the server key, and the server key in response to the identification information of the received terminal 100, and the like Based on the shift operation set in advance, the shifted comparison target input value (or comparison target input value) is generated (or calculated). Here, the shift operation may be a shift operation in a preset direction (eg, a right direction, a left direction, etc.).

즉, 상기 서버(200)는 상기 생성된 서버 키를 근거로 상기 수신된 입력 형식에 대응하여 해당 서버(200)에 미리 저장된(또는 등록된) 키 테이블을 셔플한다. 여기서, 상기 키 테이블은 상기 단말(100)과 상기 서버(200)에서 동일하게 저장(또는 관리/유지)된 상태일 수 있으며, 숫자만으로 이루어진 키 테이블, 문자만으로 이루어진 키 테이블, 특수문자만으로 이루어진 키 테이블, 숫자와 문자와 특수문자 간의 조합으로 이루어진 키 테이블 등을 포함한다. 이때, 상기 키 테이블에 대한 셔플 방식은 N×M 형태의 키 테이블 중에서 선택되는 n×m 형태의 서브 키 테이블을 상기 수신된 서버 키에 포함된 값을 이용하여 복수 단계에 걸쳐 셔플 기능을 수행한다. 여기서, 상기 N과 M은 같거나 다를 수 있고 자연수이며, 상기 n은 상기 N보다 작거나 같은 자연수이고, 상기 m은 상기 M보다 작거나 같은 자연수이고, 상기 n과 m은 같거나 다를 수 있다.That is, the server 200 shuffles the key table previously stored (or registered) in the server 200 in response to the received input format based on the generated server key. Here, the key table may be stored (or managed/maintained) in the terminal 100 and the server 200 in the same manner, and a key table composed of only numbers, a key table composed of only letters, and a key composed of only special characters. It includes a table, a key table composed of combinations of numbers, letters, and special characters. In this case, the shuffle method for the key table performs a shuffle function in a plurality of steps by using a value included in the received server key for an n×m type sub key table selected from an N×M type key table. . Here, N and M may be the same or different and may be a natural number, n may be a natural number less than or equal to N, m may be a natural number less than or equal to M, and n and m may be the same or different.

이와 같이, 상기 서버(200)는 상기 입력 형식에 대응하여 미리 저장된 키 테이블에서 상기 미리 설정된 크기의 서버 키에 포함된 첫 번째 키값(또는 첫 번째 식별자), 두 번째 키값, 세 번째 키값 등에 대해서 미리 순서가 설정된 셔플 방식에 따라 순차로 셔플을 수행하여 최종 셔플된 키 테이블을 생성(또는 준비)한다. 여기서, 상기 미리 순서가 설정된 셔플 방식은 상기 N×M 형태의 키 테이블 중에서 선택되는 n×m 형태의 서브 키 테이블을 대상으로, 키값(또는 식별자)을 포함하는 행, 키값을 포함하는 열, 키값을 포함하는 행과 해당 행에 인접한 하나 이상의 다른 행, 키값을 포함하는 행에 인접한 하나 이상의 다른 행, 키값을 포함하는 열과 해당 열에 인접한 하나 이상의 다른 열, 키값을 포함하는 열에 인접한 하나 이상의 다른 열 및 행렬 형태의 키 테이블에서의 대각선(예를 들어 1시 방향에서 7시 방향으로의 대각선, 11시 방향에서 5시 방향으로의 대각선 등 포함) 중 하나의 범위를 상기 서버 키의 크기만큼 순차로 선택하고, 상기 순차로 선택된 복수의 범위를 기준으로 미리 설정된 방향(예를 들어 상/하/좌/우 등 포함)으로 미리 설정된 단위(또는 크기)만큼 시프트(또는 대각선인 경우 대각선 범위를 기준으로 좌/우 대칭 교환)하는 복수의 서브 셔플 방식으로 구성하며, 상기 순차로 선택된 복수의 서브 셔플 방식에 따라 상기 서버 키를 이용하여 상기 키 테이블을 셔플하는데 사용된다.In this way, the server 200 pre-stores a key table corresponding to the input format for the first key value (or first identifier), the second key value, and the third key value included in the server key of the preset size. The final shuffled key table is generated (or prepared) by sequentially shuffling according to the shuffle method set in the order. Here, the pre-ordered shuffle method targets an n×m type sub-key table selected from the N×M type key tables, a row including a key value (or identifier), a column including a key value, and a key value. A row containing and one or more other rows adjacent to the row, one or more other rows adjacent to the row containing the key value, the column containing the key value and one or more other columns adjacent to the column, one or more other columns adjacent to the column containing the key value, and Select one of the diagonals in the matrix-type key table (e.g., including diagonals from 1 o'clock to 7 o'clock, diagonals from 11 o'clock to 5 o'clock, etc.) by the size of the server key And, based on the plurality of ranges selected in sequence, shift by a preset unit (or size) in a preset direction (including, for example, up/down/left/right) (or left based on the diagonal range in the case of a diagonal line). /Right symmetrical exchange) is configured in a plurality of sub-shuffle methods, and is used to shuffle the key table using the server key according to the sequentially selected plurality of sub-shuffle methods.

또한, 상기 서버(200)는 상기 수신된 단말(100)의 식별 정보에 대응하여 서버(200)에 미리 등록된 비밀번호, 상기 서버 키 및 상기 셔플된 키 테이블에 포함된 값을 순차로 정렬한 값을 근거로 상기 미리 설정된 시프트 연산을 수행하여 시프트 연산된 비교 대상 입력값(또는 비교 대상 입력값)을 생성(또는 산출)한다.In addition, the server 200 is a value obtained by sequentially sorting the password registered in advance in the server 200, the server key, and the values included in the shuffled key table in response to the received identification information of the terminal 100 Based on the shift operation set in advance, the shifted comparison target input value (or comparison target input value) is generated (or calculated).

이와 같이, 상기 서버(200)는 상기 단말(100)에서 사용자 입력에 따른 입력값에 대해서 상기 서버 키와 상기 키보드에 대응하는 순차로 정렬된 값(또는 상기 셔플된 키 테이블에 포함된 값을 순차로 정렬한 값)을 이용하여 상기 단말(100) 및 상기 서버(200)에서 미리 설정된 시프트 연산을 수행하여 시프트 연산된 사용자 입력값을 생성하는 방식을 적용하여, 상기 서버(200)에 미리 저장된 해당 단말(100)의 식별 정보에 대응하는 비밀번호에 대해서 상기 서버 키와 상기 셔플된 키 테이블에 포함된 값을 순차로 정렬한 값을 이용하여 상기 시프트 연산을 수행하여 시프트 연산된 비교 대상 입력값을 생성할 수 있다.In this way, the server 200 sequentially arranges values (or values included in the shuffled key table) corresponding to the server key and the keyboard with respect to the input value according to the user input from the terminal 100. The user input value is generated by performing a preset shift operation in the terminal 100 and the server 200 using a value sorted by ), and the corresponding stored in the server 200 For a password corresponding to the identification information of the terminal 100, the shift operation is performed using a value obtained by sequentially arranging the server key and the values included in the shuffled key table to generate a shifted comparison target input value. can do.

또한, 상기 서버(200)는 상기 생성된(또는 산출된) 시프트 연산된 비교 대상 입력값과 상기 분리된 시프트 연산된 사용자 입력값 간의 일치 여부를 판단(또는 확인)한다.Further, the server 200 determines (or confirms) whether the generated (or calculated) shift-operated comparison target input value and the separated shift-operated user input value match.

즉, 상기 서버(200)는 상기 서버(200)에 저장된 해당 단말(100)의 식별 정보에 대응하는 비밀번호를 근거로 생성된 시프트 연산된 비교 대상 입력값과 상기 단말(100)에서 사용자 입력에 따른 입력값을 근거로 생성된 시프트 연산된 사용자 입력값이 일치하는지 여부를 판단한다.That is, the server 200 is a shift-calculated comparison target input value generated based on a password corresponding to the identification information of the terminal 100 stored in the server 200 and a user input from the terminal 100 It is determined whether or not the shifted user input values generated based on the input values match.

상기 판단 결과(또는 상기 확인 결과), 상기 시프트 연산된 비교 대상 입력값과 상기 시프트 연산된 사용자 입력값이 일치하지 않은 경우, 상기 서버(200)는 인증이 실패하였음을 나타내는 정보를 상기 단말(100)에 전송한다.If the determination result (or the confirmation result), the shift-calculated comparison target input value and the shift-calculated user input value do not match, the server 200 transmits information indicating that authentication has failed to the terminal 100 ).

또한, 상기 판단 결과(또는 상기 확인 결과), 상기 시프트 연산된 비교 대상 입력값과 상기 시프트 연산된 사용자 입력값이 일치하는 경우, 상기 서버(200)는 인증이 성공하였음을 나타내는 정보를 상기 단말(100)에 전송한다.In addition, when the determination result (or the confirmation result), the shift-calculated comparison target input value and the shift-calculated user input value match, the server 200 transmits information indicating that authentication was successful to the terminal ( 100).

또한, 상기 시프트 연산된 비교 대상 입력값과 상기 시프트 연산된 사용자 입력값이 일치하는 경우, 상기 서버(200)는 상기 단말(100)과 연동하여 인증 성공에 따른 추가 기능을 수행한다.In addition, when the shift-calculated comparison target input value and the shift-calculated user input value match, the server 200 interworks with the terminal 100 to perform an additional function according to authentication success.

또한, 상기 서버(200)는 추가 기능 수행 결과를 상기 단말(100)에 제공한다.In addition, the server 200 provides a result of performing an additional function to the terminal 100.

이와 같이, 단말에서 서버로부터 제공되는 서버키를 이용해서 상기 서버와 공유하는 미리 설정된 키 테이블을 셔플하고, 상기 셔플된 키 테이블을 근거로 원형링, 원통형 등의 다양한 형태의 동적 키보드를 생성하고, 상기 생성된 동적 키보드 상에서의 사용자 입력에 따른 사용자 입력값과 상기 서버키를 상기 서버에 제공하고, 상기 서버에서 상기 단말로부터 제공되는 사용자 입력값과 상기 서버키를 근거로 서버키의 유효성 및 기존 저장된 비밀번호와의 일치 여부를 판단하여 인증 여부를 상기 단말에 제공할 수 있다.In this way, the terminal shuffles the preset key table shared with the server using the server key provided from the server, and generates various types of dynamic keyboards such as circular rings and cylinders based on the shuffled key table, A user input value according to a user input on the generated dynamic keyboard and the server key are provided to the server, and the server key validity and previously stored based on the user input value provided from the terminal and the server key in the server It is possible to determine whether or not to match the password and provide the terminal with authentication.

이하에서는, 본 발명에 따른 인증구간의 키로깅과 MITM에 따른 해킹 방지 방법을 도 1 내지 도 13을 참조하여 상세히 설명한다.Hereinafter, a key logging of an authentication section and a hacking prevention method according to the MITM according to the present invention will be described in detail with reference to FIGS. 1 to 13.

도 9 내지 도 10은 본 발명의 실시예에 따른 인증구간의 키로깅과 MITM에 따른 해킹 방지 방법을 나타낸 흐름도이다.9 to 10 are flowcharts illustrating a method for preventing hacking according to the key logging of an authentication section and MITM according to an embodiment of the present invention.

먼저, 비밀번호 입력 등을 위해서 미리 설정된 이벤트가 발생하는 경우, 단말(100)은 키패드 형식, 입력 형식, 단말(100)의 식별 정보 등을 서버(200)에 전송한다. 여기서, 상기 이벤트는 단말(100)에 표시되는 특정 영역이 마우스(미도시) 또는 사용자 입력(또는 터치)에 따라 클릭(또는 선택/터치)되는 경우, 단말(100)에 비밀번호 입력을 위한 화면이 표시되고 있는 상태에서 마우스의 좌측 버튼/우측 버튼/휠 버튼 중 어느 하나의 버튼이 클릭(또는 선택)되는 경우, 단말(100)에 비밀번호 입력을 위한 화면이 표시되고 있는 상태에서 키보드(미도시) 상의 미리 설정된 키(또는 복수의 키 조합)가 클릭/선택되는 경우, 단말(100)에 비밀번호 입력을 위한 화면이 표시되고 있는 상태에서 단말(100)의 화면 일측에 표시되는 특정 영역 또는 특정 버튼(또는 특정 메뉴/항목)이 사용자 입력(또는 터치)에 따라 선택(또는 터치)되는 경우 등을 포함한다. 또한, 상기 키패드 형식은 사용자 입력에 따라 선택되거나 또는 미리 설정된 상태이며, 상기 단말(100)에 표시될 키패드의 모양(또는 키패드와 관련한 사용자 인터페이스/그래픽 사용자 인터페이스)으로 원형링, 원통형(또는 슬롯머신의 원통 릴) 등을 포함한다. 또한, 상기 입력 형식은 사용자 입력에 따라 선택되거나 또는 미리 설정된 상태이며, 상기 키패드에 표시될 숫자, 문자, 특수문자(또는 기호) 등의 형식을 지정하기 위한 것으로, 숫자 형식, 문자 형식, 특수문자 형식, 이들의 조합 형식 등을 포함한다. 또한, 상기 단말(100)의 식별 정보는 MDN, 모바일 IP, 모바일 MAC, Sim(가입자 식별 모듈) 카드 고유정보, 시리얼번호 등을 포함한다.First, when a preset event occurs for inputting a password or the like, the terminal 100 transmits a keypad format, an input format, and identification information of the terminal 100 to the server 200. Here, in the event, when a specific area displayed on the terminal 100 is clicked (or selected/touched) according to a mouse (not shown) or a user input (or touch), a screen for entering a password is displayed on the terminal 100. When one of the left button/right button/wheel button of the mouse is clicked (or selected) while being displayed, the keyboard (not shown) while the screen for entering the password is displayed on the terminal 100 When a preset key (or a combination of a plurality of keys) on the screen is clicked/selected, a specific area or a specific button displayed on one side of the screen of the terminal 100 while the screen for entering the password is displayed on the terminal 100 Or when a specific menu/item) is selected (or touched) according to a user input (or touch). In addition, the keypad type is selected or preset according to a user input, and the shape of the keypad to be displayed on the terminal 100 (or a user interface/graphical user interface related to the keypad) is circular ring, cylindrical (or slot machine). Of cylindrical reel), etc. In addition, the input format is selected or preset according to the user input, and is for designating the format of numbers, characters, special characters (or symbols) to be displayed on the keypad, and the number format, character format, and special characters Forms, combinations thereof, and the like are included. Further, the identification information of the terminal 100 includes MDN, mobile IP, mobile MAC, Sim (subscriber identification module) card unique information, serial number, and the like.

일 예로, 제 1 단말(100)에서 ABCD 은행에서 운영하는 웹 사이트에 접속하여 계좌 이체를 수행하기 위해서 비밀번호를 입력하고자 할 때, 상기 제 1 단말은 원형링과 관련한 제 1 키패드 형식, 숫자 형식의 제 1 입력 형식, 제 1 단말의 식별 정보 등을 상기 서버(200)에 전송한다.As an example, when the first terminal 100 accesses a website operated by ABCD Bank and attempts to input a password to perform an account transfer, the first terminal 100 is in the form of a first keypad and a number form related to the circular ring. The first input format, identification information of the first terminal, etc. are transmitted to the server 200.

다른 일 예로, 제 2 단말(100)에서 ZZZ 웹 사이트에 접속하여 비밀번호를 입력하고자 할 때, 상기 제 2 단말은 원통형과 관련한 제 2 키패드 형식, 숫자와 문자와 특수문자의 조합 형식의 제 2 입력 형식, 제 2 단말의 식별 정보 등을 상기 서버(200)에 전송한다(S910).As another example, when accessing the ZZZ web site from the second terminal 100 and entering a password, the second terminal is a second keypad type related to a cylinder, a second input in a combination of numbers, letters, and special characters. The format and identification information of the second terminal are transmitted to the server 200 (S910).

이후, 상기 서버(200)는 상기 단말(100)로부터 전송되는 키패드 형식, 입력 형식, 단말(100)의 식별 정보 등을 수신한다.Thereafter, the server 200 receives a keypad format, an input format, and identification information of the terminal 100 transmitted from the terminal 100.

또한, 상기 서버(200)는 상기 입력 형식을 근거로 고윳값을 가지며, 미리 설정된 크기로 구성되는 서버 키를 생성한다.In addition, the server 200 generates a server key having a high value based on the input format and having a preset size.

이때, 상기 서버(200)는 미리 설정된 단위(또는 크기)의 숫자 범위, 문자 범위, 특수문자 범위 및 이들 간의 조합 중에서 상기 입력 형식을 근거로 랜덤하게 어느 하나를 선택하고, 상기 랜덤하게 선택된 어느 하나를 상기 서버 키로 생성할 수도 있다. 여기서, 상기 서버(200)는 입력 형식별로 미리 설정된 단위의 숫자 범위, 미리 설정된 단위의 문자 범위, 미리 설정된 단위의 특수문자 범위, 미리 설정된 단위의 숫자와 문자와 특수문자의 조합에 의한 범위 등을 관리할 수 있다.At this time, the server 200 randomly selects any one of a number range, a character range, a special character range, and a combination thereof of a preset unit (or size) based on the input format, and the randomly selected one May be generated with the server key. Here, the server 200 determines a range of numbers in a unit set in advance for each input type, a range of characters in a preset unit, a range of special characters in a preset unit, and a range by a combination of numbers and characters and special characters in a preset unit. Can be managed.

또한, 상기 서버(200)는 상기 생성된 서버 키를 상기 단말(100)에 전송한다.In addition, the server 200 transmits the generated server key to the terminal 100.

일 예로, 상기 서버(200)는 상기 제 1 단말로부터 전송되는 제 1 키패드 형식(예를 들어 원형링), 제 1 입력 형식(예를 들어 숫자 형식), 제 1 단말의 식별 정보 등을 수신한다.For example, the server 200 receives a first keypad format (eg, circular ring), a first input format (eg, number format), identification information of the first terminal, etc. transmitted from the first terminal. .

또한, 상기 서버(200)는 상기 수신된 제 1 입력 형식(예를 들어 숫자 형식 포함)을 근거로 미리 설정된 4자리 단위의 숫자 범위(예를 들어 0000, 0001, 0002, ~ , 9999) 중에서 랜덤하게 어느 하나의 숫자(예를 들어 3795)를 선택하고, 상기 선택된 어느 하나의 숫자(예를 들어 3795)를 제 1 서버 키로 생성(또는 설정)한다.In addition, the server 200 is a random number range (for example, 0000, 0001, 0002, ~, 9999) of a preset 4-digit unit based on the received first input format (including, for example, a number format). A number (eg, 3795) is selected, and the selected number (eg, 3795) is generated (or set) as a first server key.

또한, 상기 서버(200)는 상기 생성된 제 1 서버 키(예를 들어 3795)를 상기 제 1 단말에 전송한다.In addition, the server 200 transmits the generated first server key (eg, 3795) to the first terminal.

다른 일 예로, 상기 서버(200)는 상기 제 2 단말로부터 전송되는 제 2 키패드 형식, 제 2 입력 형식, 제 2 단말의 식별 정보 등을 수신한다.As another example, the server 200 receives a second keypad format, a second input format, and identification information of a second terminal transmitted from the second terminal.

또한, 상기 서버(200)는 상기 수신된 제 2 입력 형식(예를 들어 숫자와 문자와 특수문자의 조합 형식 포함)을 근거로 미리 설정된 4자리 단위의 숫자와 문자와 특수문자의 조합의 범위 중에서 랜덤하게 어느 하나(예를 들어 5AD#)를 선택하고, 상기 선택된 어느 하나(예를 들어 5AD#)를 제 2 서버 키로 생성한다.In addition, the server 200 is based on the received second input format (for example, including a combination format of numbers, letters, and special characters) from among a range of preset 4-digit combinations of numbers and characters and special characters. Any one (for example, 5AD#) is randomly selected, and the selected one (for example, 5AD#) is generated as a second server key.

또한, 상기 서버(200)는 상기 생성된 제 2 서버 키(예를 들어 5AD#)를 상기 제 2 단말에 전송한다(S920).In addition, the server 200 transmits the generated second server key (eg, 5AD#) to the second terminal (S920).

이후, 상기 단말(100)은 앞서 전송된 키패드 형식, 입력 형식 등에 응답하여 상기 서버(200)로부터 전송되는 서버 키를 수신한다.Thereafter, the terminal 100 receives a server key transmitted from the server 200 in response to the previously transmitted keypad format, input format, and the like.

또한, 상기 단말(100)은 상기 수신된 서버 키를 근거로 상기 입력 형식에 대응하여 해당 단말(100)에 미리 저장된(또는 등록된) 키 테이블을 셔플한다. 여기서, 상기 키 테이블은 상기 단말(100)과 상기 서버(200)에서 동일하게 저장(또는 관리/유지)된 상태일 수 있으며, 숫자만으로 이루어진 키 테이블, 문자만으로 이루어진 키 테이블, 특수문자만으로 이루어진 키 테이블, 숫자와 문자와 특수문자 간의 조합으로 이루어진 키 테이블 등을 포함한다. 이때, 상기 키 테이블에 대한 셔플 방식은 N×M 형태의 키 테이블 중에서 선택되는 n×m 형태의 서브 키 테이블을 상기 수신된 서버 키에 포함된 값을 이용하여 복수 단계에 걸쳐 셔플 기능을 수행한다. 여기서, 상기 N과 M은 같거나 다를 수 있고 자연수이며, 상기 n은 상기 N보다 작거나 같은 자연수이고, 상기 m은 상기 M보다 작거나 같은 자연수이고, 상기 n과 m은 같거나 다를 수 있다.In addition, the terminal 100 shuffles the key table previously stored (or registered) in the terminal 100 in response to the input format based on the received server key. Here, the key table may be stored (or managed/maintained) in the terminal 100 and the server 200 in the same manner, and a key table composed of only numbers, a key table composed of only letters, and a key composed of only special characters. It includes a table, a key table composed of combinations of numbers, letters, and special characters. In this case, the shuffle method for the key table performs a shuffle function in a plurality of steps by using a value included in the received server key for an n×m type sub key table selected from an N×M type key table. . Here, N and M may be the same or different and may be a natural number, n may be a natural number less than or equal to N, m may be a natural number less than or equal to M, and n and m may be the same or different.

즉, 상기 단말(100)은 상기 입력 형식에 대응하여 미리 저장된 키 테이블에서 상기 수신된 미리 설정된 크기의 서버 키에 포함된 첫 번째 키값(또는 첫 번째 식별자), 두 번째 키값, 세 번째 키값 등에 대해서 미리 순서가 설정된 셔플 방식에 따라 순차로 셔플을 수행하여 최종 셔플된 키 테이블을 생성(또는 준비)한다. 여기서, 상기 미리 순서가 설정된 셔플 방식은 상기 N×M 형태의 키 테이블 중에서 선택되는 n×m 형태의 서브 키 테이블을 대상으로, 키값(또는 식별자)을 포함하는 행, 키값을 포함하는 열, 키값을 포함하는 행과 해당 행에 인접한 하나 이상의 다른 행, 키값을 포함하는 행에 인접한 하나 이상의 다른 행, 키값을 포함하는 열과 해당 열에 인접한 하나 이상의 다른 열, 키값을 포함하는 열에 인접한 하나 이상의 다른 열 및 행렬 형태의 키 테이블에서의 대각선(예를 들어 1시 방향에서 7시 방향으로의 대각선, 11시 방향에서 5시 방향으로의 대각선 등 포함) 중 하나의 범위를 상기 서버 키의 크기만큼 순차로 선택하고, 상기 순차로 선택된 각각의 복수의 범위를 기준으로 미리 설정된 방향(예를 들어 상/하/좌/우 등 포함)으로 미리 설정된 단위(또는 크기)만큼 시프트(또는 대각선인 경우 대각선 범위를 기준으로 좌/우 대칭 교환)하는 복수의 서브 셔플 방식으로 구성하며, 상기 순차로 선택된 복수의 서브 셔플 방식에 따라 상기 서버 키를 이용하여 상기 키 테이블을 셔플하는데 사용된다.That is, the terminal 100 includes a first key value (or first identifier), a second key value, a third key value, etc. included in the received server key of a preset size from a key table stored in advance corresponding to the input format. A final shuffled key table is generated (or prepared) by sequentially shuffling according to a pre-set shuffle method. Here, the pre-ordered shuffle method targets an n×m type sub-key table selected from the N×M type key tables, a row including a key value (or identifier), a column including a key value, and a key value. A row containing and one or more other rows adjacent to the row, one or more other rows adjacent to the row containing the key value, the column containing the key value and one or more other columns adjacent to the column, one or more other columns adjacent to the column containing the key value, and Select one of the diagonals in the matrix-type key table (e.g., including diagonals from 1 o'clock to 7 o'clock, diagonals from 11 o'clock to 5 o'clock, etc.) by the size of the server key And, based on the plurality of ranges selected in sequence, shift by a preset unit (or size) in a preset direction (including, for example, up/down/left/right, etc.) It is configured in a plurality of sub-shuffle methods that perform symmetric left/right exchange), and is used to shuffle the key table using the server key according to the plurality of sub-shuffle methods sequentially selected.

일 예로, 상기 제 1 단말은 앞서 전송된 제 1 키패드 형식, 제 1 입력 형식 등에 응답하여 상기 서버(200)로부터 전송되는 제 1 서버 키(예를 들어 3795)를 수신한다.As an example, the first terminal receives a first server key (eg, 3795) transmitted from the server 200 in response to a first keypad format, a first input format, etc. transmitted previously.

또한, 도 11에 도시된 바와 같이, 상기 제 1 단말은 상기 제 1 입력 형식에 대응하여 미리 저장된 4×4 형태의 제 1 키 테이블 중에서 제1행부터 제3행 및 제1열부터 제3열로 구성되는 3×3 형태의 제 1 서브 키 테이블을 선택하고, 상기 선택된 제 1 서브 키 테이블을 대상으로 4자리 단위의 상기 제 1 서버 키(예를 들어 3795)에 대해서 미리 순서가 설정된 셔플 방식에 포함된 제 1 서브 셔플 방식(예를 들어 상기 제 1 서버 키에 포함된 첫 번째 키값(또는 첫 번째 식별자)(예를 들어 3)이 포함된 제 2 행과 상기 제 2 행에 인접한 제 1 행을 미리 설정된 아래 방향으로 1크기만큼 시프트하는 셔플 방식)에 따라 1차로 상기 제 1 서브 키 테이블을 셔플하여, 상기 도 11에 도시된 바와 같은 1차로 셔플된 제 1 서브 키 테이블(1110)을 생성한다. 이때, 상기 도 11에 도시된 바와 같이, 상기 제 1 키 테이블 중 제4행 및 제4열에 포함된 값(또는 데이터)은 그대로 유지될 수 있다.In addition, as shown in FIG. 11, the first terminal includes a first key table of a 4×4 format stored in advance corresponding to the first input format, from the first row to the third row and the first column to the third column. Selecting the configured 3×3 type first sub-key table, and using a pre-set shuffle method for the first server key (for example, 3795) in 4-digit units for the selected first sub-key table. The included first sub-shuffle method (for example, a second row containing the first key value (or first identifier) (for example, 3) included in the first server key and a first row adjacent to the second row The first sub-key table is shuffled first according to a shuffle method that shifts by one size in a preset downward direction) to create a first sub-key table 1110 shuffled first as shown in FIG. 11. do. In this case, as shown in FIG. 11, the values (or data) included in the fourth row and the fourth column of the first key table may be maintained as they are.

또한, 상기 도 11에 도시된 바와 같이, 상기 제 1 단말은 상기 1차로 셔플된 제 1 서브 키 테이블(1110)에서 상기 4자리 단위의 제 1 서버 키에 대해서 미리 순서가 설정된 셔플 방식에 포함된 제 2 서브 셔플 방식(예를 들어 상기 제 1 서버 키에 포함된 두 번째 키값(예를 들어 7)이 포함된 제 2 열과 상기 제 2 열에 인접한 제 1 열을 미리 설정된 좌측 방향으로 1크기만큼 시프트하는 셔플 방식)에 따라 2차로 상기 1차로 셔플된 제 1 서브 키 테이블을 셔플하여, 상기 도 11에 도시된 바와 같은 2차로 셔플된 제 1 서브 키 테이블(1120)을 생성한다. 이때, 상기 도 11에 도시된 바와 같이, 상기 제 1 키 테이블 중 제4행 및 제4열에 포함된 값(또는 데이터)은 그대로 유지될 수 있다.In addition, as shown in FIG. 11, the first terminal is included in a pre-ordered shuffle method for the first server key of the 4-digit unit in the first sub-key table 1110 shuffled first. Second sub-shuffle method (for example, shifting the second column containing the second key value (for example, 7) included in the first server key and the first column adjacent to the second column by one size in a preset left direction The first sub-key table shuffled secondarily is shuffled according to the shuffle method) to generate the secondly shuffled first sub-key table 1120 as shown in FIG. 11. In this case, as shown in FIG. 11, the values (or data) included in the fourth row and the fourth column of the first key table may be maintained as they are.

또한, 상기 도 11에 도시된 바와 같이, 상기 제 1 단말은 상기 2차로 셔플된 제 1 서브 키 테이블(1120)에서 상기 4자리 단위의 제 1 서버 키에 대해서 미리 순서가 설정된 셔플 방식에 포함된 제 3 서브 셔플 방식(예를 들어 상기 3×3 행렬 형태의 제 1 서브 키 테이블에서 1시 방향에서 7시 방향으로의 대각선을 기준으로 좌/우 대칭 교환하는 셔플 방식)에 따라 3차로 상기 2차로 셔플된 제 1 서브 키 테이블을 셔플하여, 상기 도 11에 도시된 바와 같은 3차로 셔플된 제 1 서브 키 테이블(1130)을 생성한다. 이때, 상기 도 11에 도시된 바와 같이, 상기 제 1 키 테이블 중 제4행 및 제4열에 포함된 값(또는 데이터)은 그대로 유지될 수 있다.In addition, as shown in FIG. 11, the first terminal is included in a pre-ordered shuffle method for the first server key of the 4-digit unit in the secondly shuffled first sub-key table 1120. According to a third sub-shuffle method (for example, a shuffle method in which a left/right symmetrical exchange is performed based on a diagonal line from 1 o'clock to 7 o'clock in the first sub-key table of the 3×3 matrix type) The first sub-key table shuffled by the difference is shuffled to generate the first sub-key table 1130 shuffled in the third order as shown in FIG. 11. In this case, as shown in FIG. 11, the values (or data) included in the fourth row and the fourth column of the first key table may be maintained as they are.

또한, 상기 도 11에 도시된 바와 같이, 상기 제 1 단말은 상기 3차로 셔플된 제 1 서브 키 테이블(1130)에서 상기 4자리 단위의 제 1 서버 키에 대해서 미리 순서가 설정된 셔플 방식에 포함된 제 4 서브 셔플 방식(예를 들어 상기 제 1 서버 키에 포함된 네 번째 키값(예를 들어 5)이 포함된 제 1 열을 미리 설정된 우측 방향으로 2크기만큼 시프트하는 셔플 방식)에 따라 4차로 상기 3차로 셔플된 제 1 서브 키 테이블을 셔플하여, 상기 도 11에 도시된 바와 같이 최종 셔플된 제 1 키 테이블(11140)을 생성한다. 여기서, 상기 최종 셔플된 제 1 키 테이블(1140)은 상기 3차로 셔플된 제 1 서브 키 테이블을 4차로 셔플한 값과 상기 제 1 키 테이블 중에서 그 값(또는 상태)이 유지 중인(또는 셔플이 수행되지 않은) 제 4 행 및 제 4 열에 포함된 값으로 구성된다(S930).In addition, as shown in FIG. 11, the first terminal included in a pre-ordered shuffle method for the first server key of the 4-digit unit in the thirdly shuffled first sub-key table 1130. According to the fourth sub-shuffle method (for example, a shuffle method in which the first column containing the fourth key value (for example, 5) included in the first server key is shifted by two sizes in a preset right direction) The third shuffled first sub-key table is shuffled to generate a final shuffled first key table 11140 as shown in FIG. 11. Here, in the final shuffled first key table 1140, the value (or state) of the third shuffled first sub key table 4 and the first key table is being maintained (or shuffled It is composed of the values included in the fourth row and the fourth column (S930).

이후, 상기 단말(100)은 상기 셔플된 키 테이블, 상기 키패드 형식, 상기 입력 형식 등을 근거로 원형링, 원통형 등의 다양한 형태의 키보드를 생성한다.Thereafter, the terminal 100 generates various types of keyboards such as circular rings and cylinders based on the shuffled key table, the keypad format, and the input format.

즉, 상기 단말(100)은 상기 셔플된 키 테이블에 대응하여 미리 설정된 인디케이터(또는 상기 N×M 행렬에서 미리 설정된 기준 위치)를 기준으로 상기 셔플된 키 테이블에 포함된 값(예를 들어 숫자, 문자, 특수문자 또는 이들 간의 조합)을 순차로 정렬하고, 상기 순차로 정렬된 값을 상기 키패드 형식에 대응하는 원형링 또는 원통형의 키보드에 순차로 정렬(또는 배치)하여, 상기 순차로 정렬된 값으로 구성되는 키보드를 생성한다.That is, the terminal 100 is based on a preset indicator (or a preset reference position in the N×M matrix) corresponding to the shuffled key table, based on a value (for example, a number, Characters, special characters, or a combination thereof) are arranged in sequence, and the sequentially arranged values are sequentially arranged (or placed) on a circular ring or cylindrical keyboard corresponding to the keypad type, and the values are arranged in the sequence. Create a keyboard consisting of.

또한, 상기 단말(100)은 사용자로부터 비밀번호 등에 대응하는 입력값을 수신하기 위해서 상기 생성된 키보드를 상기 단말(100)의 일측에 표시한다.In addition, the terminal 100 displays the generated keyboard on one side of the terminal 100 in order to receive an input value corresponding to a password or the like from a user.

일 예로, 상기 제 1 단말은 상기 제 1 입력 형식(예를 들어 숫자 형식)과 관련한 4×4 형태의 제 1 키 테이블에 대응하여 미리 설정된 제 1 인디케이터(예를 들어 4×4 형태의 최종 셔플된 키 테이블에서 2×2 위치/지점)를 기준으로(또는 시작 포인트로)하여 상기 도 15의 최종 셔플된 제 1 키 테이블에 포함된 복수의 숫자를 순차로 정렬(예를 들어 6, 3, 2, 8, 5, 9, 1, 7, 4, 0)하고, 상기 순차로 정렬된 값을 상기 제 1 키패드 형식(예를 들어 원형링)에 대응하는 원형링의 키보드에 순차로 배치하여, 도 12에 도시된 바와 같이, 상기 최종 셔플된 제 1 키 테이블과 상기 제 1 키패드 형식(예를 들어 원형링)으로 형성되는 제 1 키보드(1200)를 생성한다. 이때, 상기 최종 셔플된 키 테이블에 포함된 복수의 숫자를 순차로 정렬할 때, 상기 제 1 단말은 상기 최종 셔플된 키 테이블 내에서 값이 포함된 경우에 대해서만(또는 값이 포함되지 않은 경우 건너뜀) 상기 제 1 인디케이터를 기준으로 정렬할 수 있다.For example, the first terminal corresponds to a first key table in a 4x4 format related to the first input format (e.g., a number format). A plurality of numbers included in the final shuffled first key table of FIG. 15 are sequentially sorted based on (or as a starting point) a 2×2 position/point in the key table (e.g., 6, 3, 2, 8, 5, 9, 1, 7, 4, 0), and the sequentially arranged values are sequentially arranged on the keyboard of the circular ring corresponding to the first keypad type (for example, circular ring), As shown in FIG. 12, the first key table that has been shuffled and the first keyboard 1200 formed in the form of the first keypad (for example, a circular ring) are generated. At this time, when sequentially sorting the plurality of numbers included in the final shuffled key table, the first terminal only skips when a value is included in the final shuffled key table (or skips when a value is not included). Leap) Can be aligned based on the first indicator.

또한, 상기 제 1 단말은 상기 생성된 제 1 키보드를 상기 제 1 단말의 화면의 일측에 표시한다(S940).In addition, the first terminal displays the generated first keyboard on one side of the screen of the first terminal (S940).

이후, 상기 단말(100)은 상기 단말(100)의 일측에 표시되는 키보드에 대해서 사용자 입력(또는 사용자 터치/제어)에 따른 입력값을 수신한다. 여기서, 상기 입력값은 숫자, 문자, 특수문자 및 이들의 조합에 따른 적어도 하나 이상의 데이터(또는 키(key))로 구성될 수 있다.Thereafter, the terminal 100 receives an input value according to a user input (or user touch/control) with respect to a keyboard displayed on one side of the terminal 100. Here, the input value may be composed of at least one data (or key) according to numbers, letters, special characters, and combinations thereof.

일 예로, 상기 제 1 단말의 일측에 표시되는 제 1 키보드 상에서 사용자 입력에 따른 제 1 입력값(예를 들어 3905)을 수신한다(S950).For example, a first input value (eg, 3905) according to a user input is received on a first keyboard displayed on one side of the first terminal (S950).

이후, 상기 단말(100)은 상기 수신된 입력값, 상기 서버 키 및 상기 키보드에 대응하는 순차로 정렬된 값(또는 상기 셔플된 키 테이블에 포함된 값을 순차로 정렬한 값)을 근거로 미리 설정된 시프트 연산을 수행하여 시프트 연산된 사용자 입력값(또는 사용자 입력값)을 생성(또는 산출)한다. 여기서, 상기 시프트 연산은 상기 입력값에 따라 미리 설정된 방향(예를 들어 우측 방향, 좌측 방향 등 포함)으로의 시프트 연산일 수 있다.Thereafter, the terminal 100 in advance based on the received input value, the server key, and a value arranged in sequence corresponding to the keyboard (or a value sequentially arranged in the shuffled key table). A set shift operation is performed to generate (or calculate) a shifted user input value (or user input value). Here, the shift operation may be a shift operation in a predetermined direction (eg, right direction, left direction, etc.) according to the input value.

또한, 상기 단말(100)은 상기 생성된(또는 산출된) 시프트 연산된 사용자 입력값과 상기 서버 키를 조합한 데이터(또는 패킷), 상기 단말(100)의 식별 정보 등을 상기 서버(200)에 전송한다. 이때, 상기 단말(100)은 상기 서버 키에 포함된 복수의 숫자, 문자, 특수문자 등을 미리 설정된 비트수(예를 들어 4비트)의 0과 1의 조합으로 구성되는 2진수로 각각 변환하고, 상기 2진수로 변환된 서버 키와 상기 생성된 시프트 연산된 사용자 입력값을 조합하여 바이너리 형태의 상기 데이터를 생성할 수도 있다.In addition, the terminal 100 transmits data (or packets) obtained by combining the generated (or calculated) shift-calculated user input value and the server key, identification information of the terminal 100, etc. to the server 200 Transfer to. At this time, the terminal 100 converts a plurality of numbers, characters, special characters, etc. included in the server key into binary numbers composed of a combination of 0 and 1 of a preset number of bits (for example, 4 bits), and , The data in binary form may be generated by combining the server key converted to the binary number and the generated shift-operated user input value.

여기서, 상기 단말(100)은 상기 생성된(또는 산출된) 시프트 연산된 사용자 입력값과 상기 서버 키를 조합한 데이터(또는 패킷), 상기 단말(100)의 식별 정보 등을 미리 설정된 암호화 방식을 통해 암호화하여, 암호화된 디지털 데이터를 생성하고, 상기 생성된 디지털 데이터를 상기 서버(200)에 전송할 수도 있다. 이때, 상기 암호화 방식은 다양한 대칭키 암호화 방식, 비대칭키 암호화 방식 등을 포함할 수 있다.Here, the terminal 100 uses a preset encryption method for data (or packet) obtained by combining the generated (or calculated) shift-calculated user input value and the server key, and identification information of the terminal 100. Through encryption, encrypted digital data may be generated, and the generated digital data may be transmitted to the server 200. In this case, the encryption method may include various symmetric key encryption methods, asymmetric key encryption methods, and the like.

일 예로, 도 13에 도시된 바와 같이, 상기 제 1 단말은 상기 순차로 정렬된 값(예를 들어 6, 3, 2, 8, 5, 9, 1, 7, 4, 0)에 따른 총 10 비트에 대해서 초기값(예를 들어 0)이 미리 설정된 상태(1310)에서, 상기 제 1 입력값(예를 들어 3905)에 포함된 첫 번째 입력값에 대응하는 '3'과 관련한 9번째 비트를 제외한 나머지 비트에 대해 미리 설정된 NOT 연산을 수행하여, 해당 9번째 비트의 값을 '0'으로 유지하고 나머지 비트의 값을 '0'에서 '1'로 치환(또는 변경/변환/수정)하고, 라운드 로빈 방식으로 상기 제 1 서버 키(예를 들어 3795)에 포함된 첫 번째 값에 대응하는 '3'만큼 우측 시프트 연산을 수행하여 제 1 결과값(예를 들어 1111011111)(1320)을 산출한다.As an example, as shown in FIG. 13, the first terminal has a total of 10 according to the sequentially sorted values (eg, 6, 3, 2, 8, 5, 9, 1, 7, 4, 0). In a state 1310 in which an initial value (eg 0) is preset for the bit, the ninth bit related to '3' corresponding to the first input value included in the first input value (eg 3905) is By performing a pre-set NOT operation on the remaining bits, the value of the 9th bit is maintained as '0' and the value of the remaining bit is replaced (or changed/converted/modified) from '0' to '1', A first result value (for example, 1111011111) 1320 is calculated by performing a right shift operation by '3' corresponding to the first value included in the first server key (for example, 3795) in a round robin method. .

또한, 상기 제 1 단말은 상기 제 1 결과값(예를 들어 1111011111)(1320)에 대해서, 상기 제 1 입력값(예를 들어 3905)에 포함된 두 번째 입력값에 대응하는 '9'와 관련한 5번째 비트에 대해 미리 설정된 NOT 연산을 수행하여, 해당 5번째 비트의 값을 '1'에서 '0'으로 치환하고 나머지 비트의 값을 그대로 유지하고, 상기 제 1 서버 키(예를 들어 3795)에 포함된 두 번째 값에 대응하는 '7'만큼 우측 시프트 연산을 수행하여 제 2 결과값(예를 들어 1001111111)(1330)을 산출한다.In addition, the first terminal relates to '9' corresponding to the second input value included in the first input value (eg 3905) with respect to the first result value (for example, 1111011111) (1320). Performs a preset NOT operation on the 5th bit, replaces the value of the 5th bit from '1' to '0', maintains the value of the remaining bit, and maintains the first server key (e.g. 3795) A second result value (eg 1001111111) 1330 is calculated by performing a right shift operation by '7' corresponding to the second value included in.

또한, 상기 제 1 단말은 상기 제 2 결과값(예를 들어 1001111111)(1330)에 대해서, 상기 제 1 입력값(예를 들어 3905)에 포함된 세 번째 입력값에 대응하는 '0'과 관련한 1번째 비트에 대해 미리 설정된 NOT 연산을 수행하여, 해당 1번째 비트의 값을 '1'에서 '0'으로 치환하고 나머지 비트의 값을 그대로 유지하고, 상기 제 1 서버 키(예를 들어 3795)에 포함된 세 번째 값에 대응하는 '9'만큼 우측 시프트 연산을 수행하여 제 3 결과값(예를 들어 0011111101)(1340)을 산출한다.In addition, the first terminal relates to '0' corresponding to the third input value included in the first input value (eg, 3905) with respect to the second result value (for example, 1001111111) (1330). By performing a pre-set NOT operation on the first bit, the value of the first bit is substituted from '1' to '0', the value of the remaining bit is maintained as it is, and the first server key (eg 3795) A third result value (for example, 0011111101) 1340 is calculated by performing a right shift operation by '9' corresponding to the third value included in.

또한, 상기 제 1 단말은 상기 제 3 결과값(예를 들어 0011111101)(1340)에 대해서, 상기 제 1 입력값(예를 들어 3905)에 포함된 네 번째 입력값에 대응하는 '5'와 관련한 6번째 비트에 대해 미리 설정된 NOT 연산을 수행하여, 해당 6번째 비트의 값을 '1'에서 '0'으로 치환하고 나머지 비트의 값을 그대로 유지하고, 상기 제 1 서버 키(예를 들어 3795)에 포함된 네 번째 값에 대응하는 '5'만큼 우측 시프트 연산을 수행하여 제 1 시프트 연산된 사용자 입력값(예를 들어 1110100110)(1350)을 최종적으로 산출한다.In addition, with respect to the third result value (for example, 0011111101) (1340), the first terminal relates to '5' corresponding to the fourth input value included in the first input value (for example, 3905). By performing a preset NOT operation on the 6th bit, the value of the 6th bit is replaced from '1' to '0', and the value of the remaining bit is maintained as it is, and the first server key (for example, 3795) A user input value (for example, 1110100110) 1350 subjected to the first shift operation is finally calculated by performing a right shift operation by '5' corresponding to the fourth value included in.

또한, 상기 제 1 단말은 상기 제 1 서버 키(예를 들어 3795) 및 상기 산출된 제 1 시프트 연산된 사용자 입력값(예를 들어 1110100110)을 조합하여 제 1 데이터(예를 들어 37951110100110)를 생성한다. 이때, 상기 제 1 단말은 상기 제 1 서버 키인 3795를 각각 4비트의 2진수로 변환하여 0011011110010101를 생성하고, 상기 생성된 값(0011011110010101)을 상기 산출된 제 1 시프트 연산된 사용자 입력값(예를 들어 1110100110)과 조합하여 제 2 데이터(예를 들어 00110111100101011110100110)를 생성할 수도 있다.In addition, the first terminal generates first data (for example, 37951110100110) by combining the first server key (for example, 3795) and the calculated user input value (for example, 1110100110) do. In this case, the first terminal converts the first server key 3795 into a 4-bit binary number to generate 0011011110010101, and uses the generated value (0011011110010101) to the calculated first shifted user input value (for example, For example, second data (for example, 00110111100101011110100110) may be generated in combination with 1110100110.

또한, 상기 제 1 단말은 상기 생성된 제 1 데이터(예를 들어 37951110100110)(또는 제 2 데이터), 상기 제 1 단말의 식별 정보 등을 미리 설정된 공개키 암호화 방식을 통해 암호화하여 암호화된 제 1 데이터를 생성하고, 상기 생성된 암호화된 제 1 데이터를 상기 서버(200)에 전송한다(S960).In addition, the first terminal encrypts the generated first data (for example, 37951110100110) (or second data), identification information of the first terminal, etc. through a preset public key encryption method, and the encrypted first data And transmits the generated encrypted first data to the server 200 (S960).

이후, 상기 서버(200)는 상기 단말(100)로부터 전송되는 시프트 연산된 사용자 입력값과 서버 키를 조합한 데이터, 단말(100)의 식별 정보 등을 수신한다.Thereafter, the server 200 receives data obtained by combining the shifted user input value and the server key transmitted from the terminal 100, identification information of the terminal 100, and the like.

여기서, 상기 서버(200)에서 상기 단말(100)로부터 전송되는 암호화된 디지털 데이터를 수신하는 경우, 상기 서버(200)는 상기 수신된 암호화된 디지털 데이터를 미리 설정된 복호화 방식을 통해 복호화하여, 상기 시프트 연산된 사용자 입력값과 서버 키를 조합한 데이터, 상기 단말(100)의 식별 정보 등을 확인한다.Here, when the server 200 receives the encrypted digital data transmitted from the terminal 100, the server 200 decrypts the received encrypted digital data through a preset decryption method, and the shift Data obtained by combining the calculated user input value and the server key, and identification information of the terminal 100 are checked.

또한, 상기 서버(200)는 상기 수신된 데이터에서 상기 서버 키와 상기 시프트 연산된 사용자 입력값을 분리한다. 이때, 상기 서버 키가 2진수로 변환되어 상기 데이터에 포함된 경우, 상기 서버(200)는 미리 설정된 데이터 프레임 형태에 따라 미리 설정된 비트의 수를 상기 서버 키로 확인하고, 나머지 비트의 수를 상기 시프트 연산된 사용자 입력값으로 확인할 수 있다.In addition, the server 200 separates the server key and the shifted user input value from the received data. At this time, when the server key is converted to a binary number and included in the data, the server 200 checks the number of preset bits with the server key according to a preset data frame type, and shifts the number of remaining bits. You can check it with the calculated user input value.

일 예로, 상기 서버(200)는 상기 제 1 단말로부터 전송되는 상기 암호화된 제 1 데이터를 수신하고, 상기 수신된 암호화된 제 1 데이터를 미리 설정된 공개키 복호화 방식을 통해 복호화하여 상기 제 1 데이터(예를 들어 37951110100110), 상기 제 1 단말의 식별 정보 등을 확인한다.For example, the server 200 receives the encrypted first data transmitted from the first terminal, decrypts the received encrypted first data through a preset public key decryption method, and the first data ( For example, 37951110100110) and identification information of the first terminal are checked.

또한, 상기 서버(200)는 상기 제 1 데이터 중에서 미리 설정된 앞 4자리의 숫자와 나머지 10자리의 숫자를 각각 분리하여, 상기 제 1 서버 키(예를 들어 3795)와 상기 제 1 시프트 연산된 사용자 입력값(예를 들어 1110100110)을 확인(또는 분리)한다(S970).In addition, the server 200 separates the first 4 digits and the remaining 10 digits, respectively, from the first data, and the first server key (eg 3795) and the first shifted user The input value (for example, 1110100110) is checked (or separated) (S970).

이후, 상기 서버(200)는 상기 수신된 단말(100)의 식별 정보에 대응하여 서버(200)에 미리 등록된 비밀번호, 상기 서버 키, 상기 서버 키를 이용하여 셔플된 후 순차로 정렬된 값 등을 근거로 상기 미리 설정된 시프트 연산을 수행하여, 시프트 연산된 비교 대상 입력값(또는 비교 대상 입력값)을 생성(또는 산출)한다. 여기서, 상기 시프트 연산은 미리 설정된 방향(예를 들어 우측 방향, 좌측 방향 등 포함)으로의 시프트 연산일 수 있다.Thereafter, the server 200 is shuffled using a password registered in advance with the server 200 in response to the received identification information of the terminal 100, the server key, and the server key, and the values are sequentially sorted. Based on the shift operation set in advance, the shifted comparison target input value (or comparison target input value) is generated (or calculated). Here, the shift operation may be a shift operation in a preset direction (eg, a right direction, a left direction, etc.).

즉, 상기 서버(200)는 상기 생성된 서버 키를 근거로 상기 수신된 입력 형식에 대응하여 해당 서버(200)에 미리 저장된(또는 등록된) 키 테이블을 셔플한다. 여기서, 상기 키 테이블은 상기 단말(100)과 상기 서버(200)에서 동일하게 저장(또는 관리/유지)된 상태일 수 있으며, 숫자만으로 이루어진 키 테이블, 문자만으로 이루어진 키 테이블, 특수문자만으로 이루어진 키 테이블, 숫자와 문자와 특수문자 간의 조합으로 이루어진 키 테이블 등을 포함한다. 이때, 상기 키 테이블에 대한 셔플 방식은 N×M 형태의 키 테이블 중에서 선택되는 n×m 형태의 서브 키 테이블을 상기 수신된 서버 키에 포함된 값을 이용하여 복수 단계에 걸쳐 셔플 기능을 수행한다. 여기서, 상기 N과 M은 같거나 다를 수 있고 자연수이며, 상기 n은 상기 N보다 작거나 같은 자연수이고, 상기 m은 상기 M보다 작거나 같은 자연수이고, 상기 n과 m은 같거나 다를 수 있다.That is, the server 200 shuffles the key table previously stored (or registered) in the server 200 in response to the received input format based on the generated server key. Here, the key table may be stored (or managed/maintained) in the terminal 100 and the server 200 in the same manner, and a key table composed of only numbers, a key table composed of only letters, and a key composed of only special characters. It includes a table, a key table composed of combinations of numbers, letters, and special characters. In this case, the shuffle method for the key table performs a shuffle function in a plurality of steps by using a value included in the received server key for an n×m type sub key table selected from an N×M type key table. . Here, N and M may be the same or different and may be a natural number, n may be a natural number less than or equal to N, m may be a natural number less than or equal to M, and n and m may be the same or different.

이와 같이, 상기 서버(200)는 상기 입력 형식에 대응하여 미리 저장된 키 테이블에서 상기 미리 설정된 크기의 서버 키에 포함된 첫 번째 키값(또는 첫 번째 식별자), 두 번째 키값, 세 번째 키값 등에 대해서 미리 순서가 설정된 셔플 방식에 따라 순차로 셔플을 수행하여 최종 셔플된 키 테이블을 생성(또는 준비)한다. 여기서, 상기 미리 순서가 설정된 셔플 방식은 상기 N×M 형태의 키 테이블 중에서 선택되는 n×m 형태의 서브 키 테이블을 대상으로, 키값(또는 식별자)을 포함하는 행, 키값을 포함하는 열, 키값을 포함하는 행과 해당 행에 인접한 하나 이상의 다른 행, 키값을 포함하는 행에 인접한 하나 이상의 다른 행, 키값을 포함하는 열과 해당 열에 인접한 하나 이상의 다른 열, 키값을 포함하는 열에 인접한 하나 이상의 다른 열 및 행렬 형태의 키 테이블에서의 대각선(예를 들어 1시 방향에서 7시 방향으로의 대각선, 11시 방향에서 5시 방향으로의 대각선 등 포함) 중 하나의 범위를 상기 서버 키의 크기만큼 순차로 선택하고, 상기 순차로 선택된 복수의 범위를 기준으로 미리 설정된 방향(예를 들어 상/하/좌/우 등 포함)으로 미리 설정된 단위(또는 크기)만큼 시프트(또는 대각선인 경우 대각선 범위를 기준으로 좌/우 대칭 교환)하는 복수의 서브 셔플 방식으로 구성하며, 상기 순차로 선택된 복수의 서브 셔플 방식에 따라 상기 서버 키를 이용하여 상기 키 테이블을 셔플하는데 사용된다.In this way, the server 200 pre-stores a key table corresponding to the input format for the first key value (or first identifier), the second key value, and the third key value included in the server key of the preset size. The final shuffled key table is generated (or prepared) by sequentially shuffling according to the shuffle method set in the order. Here, the pre-ordered shuffle method targets an n×m type sub-key table selected from the N×M type key tables, a row including a key value (or identifier), a column including a key value, and a key value. A row containing and one or more other rows adjacent to the row, one or more other rows adjacent to the row containing the key value, the column containing the key value and one or more other columns adjacent to the column, one or more other columns adjacent to the column containing the key value, and Select one of the diagonals in the matrix-type key table (e.g., including diagonals from 1 o'clock to 7 o'clock, diagonals from 11 o'clock to 5 o'clock, etc.) by the size of the server key And, based on the plurality of ranges selected in sequence, shift by a preset unit (or size) in a preset direction (including, for example, up/down/left/right) (or left based on the diagonal range in the case of a diagonal line). /Right symmetrical exchange) is configured in a plurality of sub-shuffle methods, and is used to shuffle the key table using the server key according to the sequentially selected plurality of sub-shuffle methods.

또한, 상기 서버(200)는 상기 수신된 단말(100)의 식별 정보에 대응하여 서버(200)에 미리 등록된 비밀번호, 상기 서버 키 및 상기 셔플된 키 테이블에 포함된 값을 순차로 정렬한 값을 근거로 상기 미리 설정된 시프트 연산을 수행하여 시프트 연산된 비교 대상 입력값(또는 비교 대상 입력값)을 생성(또는 산출)한다.In addition, the server 200 is a value obtained by sequentially sorting the password registered in advance in the server 200, the server key, and the values included in the shuffled key table in response to the received identification information of the terminal 100 Based on the shift operation set in advance, the shifted comparison target input value (or comparison target input value) is generated (or calculated).

일 예로, 상기 서버(200)는 상기 제 1 입력 형식에 대응하여 해당 서버(200)에 미리 저장된 4×4 형태의 제 1 키 테이블 중에서 제1행부터 제3행 및 제1열부터 제3열로 구성되는 3×3 형태의 제 11 서브 키 테이블을 선택하고, 상기 선택된 제 11 서브 키 테이블을 대상으로 4자리 단위의 상기 제 1 서버 키(예를 들어 3795)에 대해서 미리 순서가 설정된 셔플 방식에 포함된 제 1 서브 셔플 방식(예를 들어 상기 제 1 서버 키에 포함된 첫 번째 키값(또는 첫 번째 식별자)(예를 들어 3)이 포함된 제 2 행과 상기 제 2 행에 인접한 제 1 행을 미리 설정된 아래 방향으로 1크기만큼 시프트하는 셔플 방식)에 따라 1차로 상기 제 1 서브 키 테이블을 셔플하여, 1차로 셔플된 제 11 서브 키 테이블을 생성한다. 이때, 상기 제 1 키 테이블 중 제4행 및 제4열에 포함된 값(또는 데이터)은 그대로 유지될 수 있다.As an example, the server 200 includes a first key table of a 4×4 format previously stored in the server 200 corresponding to the first input format, from the first row to the third row and the first column to the third column. Selecting the configured 3×3 eleventh sub-key table, targeting the selected eleventh sub-key table, for the first server key (e.g., 3795) in 4-digit units in a pre-set shuffle method The included first sub-shuffle method (for example, a second row containing the first key value (or first identifier) (for example, 3) included in the first server key and a first row adjacent to the second row The first sub-key table is firstly shuffled according to a shuffle method in which is shifted by one size in a preset downward direction) to generate an eleventh sub-key table shuffled first. In this case, the values (or data) included in the fourth row and the fourth column of the first key table may be maintained as they are.

또한, 상기 서버(200)는 상기 1차로 셔플된 제 11 서브 키 테이블에서 상기 4자리 단위의 제 1 서버 키에 대해서 미리 순서가 설정된 셔플 방식에 포함된 제 2 서브 셔플 방식(예를 들어 상기 제 1 서버 키에 포함된 두 번째 키값(예를 들어 7)이 포함된 제 2 열과 상기 제 2 열에 인접한 제 1 열을 미리 설정된 좌측 방향으로 1크기만큼 시프트하는 셔플 방식)에 따라 2차로 상기 1차로 셔플된 제 11 서브 키 테이블을 셔플하여, 2차로 셔플된 제 11 서브 키 테이블을 생성한다. 이때, 상기 제 1 키 테이블 중 제4행 및 제4열에 포함된 값(또는 데이터)은 그대로 유지될 수 있다.In addition, the server 200 includes a second sub-shuffle method (e.g., the first server key) included in a pre-ordered shuffle method for the first server key of the 4-digit unit in the firstly shuffled eleventh sub-key table. 1 The second column containing the second key value (e.g., 7) included in the server key and the first column adjacent to the second column are shifted to the left by one size in a preset left direction). The shuffled eleventh sub-key table is shuffled to generate the secondly shuffled eleventh sub-key table. In this case, the values (or data) included in the fourth row and the fourth column of the first key table may be maintained as they are.

또한, 상기 서버(200)는 상기 2차로 셔플된 제 11 서브 키 테이블에서 상기 4자리 단위의 제 1 서버 키에 대해서 미리 순서가 설정된 셔플 방식에 포함된 제 3 서브 셔플 방식(예를 들어 상기 3×3 행렬 형태의 제 11 서브 키 테이블에서 1시 방향에서 7시 방향으로의 대각선을 좌/우 대칭 교환하는 셔플 방식)에 따라 3차로 상기 2차로 셔플된 제 11 서브 키 테이블을 셔플하여, 3차로 셔플된 제 11 서브 키 테이블을 생성한다. 이때, 상기 제 1 키 테이블 중 제4행 및 제4열에 포함된 값(또는 데이터)은 그대로 유지될 수 있다.In addition, the server 200 includes a third sub-shuffle method (for example, the third sub-shuffle method) included in a pre-ordered shuffle method for the first server key of the 4-digit unit in the secondly shuffled eleventh sub-key table. The 11th sub-key table shuffled in the second order is shuffled 3 times according to the shuffle method in which the diagonal line from the 1 o'clock direction to the 7 o'clock direction is symmetrically exchanged in the 11th sub-key table in a matrix form) The eleventh sub-key table shuffled by car is generated. In this case, the values (or data) included in the fourth row and the fourth column of the first key table may be maintained as they are.

또한, 상기 서버(200)는 상기 3차로 셔플된 제 11 서브 키 테이블에서 상기 4자리 단위의 제 1 서버 키에 대해서 미리 순서가 설정된 셔플 방식에 포함된 제 4 서브 셔플 방식(예를 들어 상기 제 1 서버 키에 포함된 네 번째 키값(예를 들어 5)이 포함된 제 1 열을 미리 설정된 우측 방향으로 2크기만큼 시프트하는 셔플 방식)에 따라 4차로 상기 3차로 셔플된 제 11 키 테이블을 셔플하여, 최종 셔플된 제 1 키 테이블을 생성한다.In addition, the server 200 includes a fourth sub-shuffle method included in a pre-ordered shuffle method for the first server key of the 4-digit unit in the eleventh sub-key table shuffled three times (for example, the 1 Shuffle the eleventh key table shuffled to the third order in the fourth order according to the shuffle method in which the first column containing the fourth key value (for example, 5) included in the server key is shifted by two sizes in a preset right direction) Thus, a final shuffled first key table is generated.

또한, 상기 서버(200)는 상기 순차로 정렬된 값(예를 들어 6, 3, 2, 8, 5, 9, 1, 7, 4, 0)에 따른 총 10 비트에 대해서 초기값(예를 들어 0)이 미리 설정된 상태에서, 상기 단말(100)의 식별 정보에 대응하여 서버(200)에 미리 등록된 제 1 비밀번호(예를 들어 3905)에 포함된 첫 번째 입력값에 대응하는 '3'과 관련한 9번째 비트를 제외한 나머지 비트에 대해 미리 설정된 NOT 연산을 수행하여, 해당 9번째 비트의 값을 '0'으로 유지하고 나머지 비트의 값을 '0'에서 '1'로 치환하고, 라운드 로빈 방식으로 상기 제 1 서버 키(예를 들어 3795)에 포함된 첫 번째 값에 대응하는 '3'만큼 우측 시프트 연산을 수행하여 제 11 결과값(예를 들어 1111011111)을 산출한다.In addition, the server 200 has an initial value (for example, for a total of 10 bits) according to the sequentially sorted values (for example, 6, 3, 2, 8, 5, 9, 1, 7, 4, 0). For example, when 0) is set in advance, '3' corresponding to the first input value included in the first password (for example, 3905) previously registered in the server 200 in response to the identification information of the terminal 100 By performing a pre-set NOT operation on the remaining bits except the 9th bit related to, the value of the 9th bit is maintained as '0' and the value of the remaining bit is replaced from '0' to '1', and round robin In a method, a right shift operation is performed by '3' corresponding to the first value included in the first server key (eg, 3795) to calculate an eleventh result value (eg, 1111011111).

또한, 상기 서버(200)는 상기 제 11 결과값(예를 들어 1111011111)에 대해서, 상기 제 1 비밀번호(예를 들어 3905)에 포함된 두 번째 입력값에 대응하는 '9'와 관련한 5번째 비트에 대해 미리 설정된 NOT 연산을 수행하여, 해당 5번째 비트의 값을 '1'에서 '0'으로 치환하고 나머지 비트의 값을 그대로 유지하고, 상기 제 1 서버 키(예를 들어 3795)에 포함된 두 번째 값에 대응하는 '7'만큼 우측 시프트 연산을 수행하여 제 12 결과값(예를 들어 1001111111)을 산출한다.In addition, for the eleventh result value (for example, 1111011111), the server 200 performs a fifth bit related to '9' corresponding to the second input value included in the first password (for example, 3905). By performing a pre-set NOT operation for, the value of the 5th bit is substituted from '1' to '0', and the value of the remaining bit is maintained as it is, and included in the first server key (for example, 3795). A twelfth result value (for example, 1001111111) is calculated by performing a right shift operation by '7' corresponding to the second value.

또한, 상기 서버(200)는 상기 제 12 결과값(예를 들어 1001111111)에 대해서, 상기 제 1 비밀번호(예를 들어 3905)에 포함된 세 번째 입력값에 대응하는 '0'과 관련한 1번째 비트에 대해 미리 설정된 NOT 연산을 수행하여, 해당 1번째 비트의 값을 '1'에서 '0'으로 치환하고 나머지 비트의 값을 그대로 유지하고, 상기 제 1 서버 키(예를 들어 3795)에 포함된 세 번째 값에 대응하는 '9'만큼 우측 시프트 연산을 수행하여 제 13 결과값(예를 들어 0011111101)을 산출한다.In addition, the server 200, for the twelfth result value (for example, 1001111111), the first bit related to '0' corresponding to the third input value included in the first password (for example, 3905). By performing a pre-set NOT operation on the first bit, replacing the value of the first bit from '1' to '0', keeping the value of the remaining bit as it is, and included in the first server key (for example, 3795). A 13th result value (for example, 0011111101) is calculated by performing a right shift operation by '9' corresponding to the third value.

또한, 상기 서버(200)는 상기 제 13 결과값(예를 들어 0011111101)에 대해서, 상기 제 1 비밀번호(예를 들어 3905)에 포함된 네 번째 입력값에 대응하는 '5'와 관련한 6번째 비트에 대해 미리 설정된 NOT 연산을 수행하여, 해당 6번째 비트의 값을 '1'에서 '0'으로 치환하고 나머지 비트의 값을 그대로 유지하고, 상기 제 1 서버 키(예를 들어 3795)에 포함된 네 번째 값에 대응하는 '5'만큼 우측 시프트 연산을 수행하여 제 1 시프트 연산된 비교 대상 입력값(예를 들어 1110100110)을 최종적으로 산출한다(S980).In addition, the server 200 is the sixth bit related to '5' corresponding to the fourth input value included in the first password (for example, 3905) for the thirteenth result value (for example, 0011111101). By performing a pre-set NOT operation for, the value of the 6th bit is substituted from '1' to '0', the value of the remaining bit is maintained as it is, and included in the first server key (for example, 3795). By performing a right shift operation by '5' corresponding to the fourth value, the first shifted comparison target input value (for example, 1110100110) is finally calculated (S980).

이후, 상기 서버(200)는 상기 생성된(또는 산출된) 시프트 연산된 비교 대상 입력값과 상기 분리된 시프트 연산된 사용자 입력값 간의 일치 여부를 판단(또는 확인)한다.Thereafter, the server 200 determines (or confirms) whether the generated (or calculated) shift-operated comparison target input value and the separated shift-operated user input value match.

즉, 상기 서버(200)는 상기 서버(200)에 저장된 해당 단말(100)의 식별 정보에 대응하는 비밀번호를 근거로 생성된 시프트 연산된 비교 대상 입력값과 상기 단말(100)에서 사용자 입력에 따른 입력값을 근거로 생성된 시프트 연산된 사용자 입력값이 일치하는지 여부를 판단한다.That is, the server 200 is a shift-calculated comparison target input value generated based on a password corresponding to the identification information of the terminal 100 stored in the server 200 and a user input from the terminal 100 It is determined whether or not the shifted user input values generated based on the input values match.

일 예로, 상기 서버(200)는 상기 산출된 제 1 시프트 연산된 비교 대상 입력값(예를 들어 1110100110)과 상기 분리된 제 1 시프트 연산된 사용자 입력값(예를 들어 1110100110)이 일치하는지 여부를 판단한다(S990).For example, the server 200 determines whether the calculated first shift-operated comparison target input value (for example, 1110100110) and the separated first shift-operated user input value (for example, 1110100110) match. It is determined (S990).

상기 판단 결과(또는 상기 확인 결과), 상기 시프트 연산된 비교 대상 입력값과 상기 시프트 연산된 사용자 입력값이 일치하지 않은 경우, 상기 서버(200)는 인증이 실패하였음을 나타내는 정보를 상기 단말(100)에 전송한다.If the determination result (or the confirmation result), the shift-calculated comparison target input value and the shift-calculated user input value do not match, the server 200 transmits information indicating that authentication has failed to the terminal 100 ).

또한, 상기 단말(100)은 앞서 전송된 시프트 연산된 사용자 입력값과 서버 키를 조합한 데이터 등에 응답하여 상기 서버(200)로부터 전송되는 인증이 실패하였음을 나타내는 정보를 수신한다.In addition, the terminal 100 receives information indicating that authentication has failed from the server 200 in response to data obtained by combining a previously transmitted shift-calculated user input value and a server key.

또한, 상기 단말(100)은 상기 수신된 인증이 실패하였음을 나타내는 정보를 출력한다.In addition, the terminal 100 outputs information indicating that the received authentication has failed.

일 예로, 상기 산출된 제 1 시프트 연산된 비교 대상 입력값과 상기 분리된 제 1 시프트 연산된 사용자 입력값이 일치하지 않을 때, 상기 서버(200)는 인증이 실패하였음을 나타내는 정보를 상기 제 1 단말에 전송한다.As an example, when the calculated first shift-operated comparison target input value and the separated first shift-operated user input value do not match, the server 200 provides information indicating that authentication has failed. Send to the terminal.

또한, 상기 제 1 단말은 앞서 전송된 제 1 데이터(예를 들어 37951110100110) 등에 응답하여 상기 서버(200)로부터 전송되는 인증이 실패하였음을 나타내는 정보를 수신하고, 상기 수신된 인증이 실패하였음을 나타내는 정보를 출력한다(S1000).In addition, the first terminal receives information indicating that authentication has failed from the server 200 in response to previously transmitted first data (for example, 37951110100110), and indicates that the received authentication has failed. Information is output (S1000).

또한, 상기 판단 결과(또는 상기 확인 결과), 상기 시프트 연산된 비교 대상 입력값과 상기 시프트 연산된 사용자 입력값이 일치하는 경우, 상기 서버(200)는 인증이 성공하였음을 나타내는 정보를 상기 단말(100)에 전송한다.In addition, when the determination result (or the confirmation result), the shift-calculated comparison target input value and the shift-calculated user input value match, the server 200 transmits information indicating that authentication was successful to the terminal ( 100).

또한, 상기 단말(100)은 앞서 전송된 시프트 연산된 사용자 입력값과 서버 키를 조합한 데이터 등에 응답하여 상기 서버(200)로부터 전송되는 인증이 성공하였음을 나타내는 정보를 수신한다.In addition, the terminal 100 receives information indicating that authentication was successful, transmitted from the server 200 in response to data obtained by combining a previously transmitted shifted user input value and a server key.

또한, 상기 단말(100)은 상기 수신된 인증이 성공하였음을 나타내는 정보를 출력한다.In addition, the terminal 100 outputs information indicating that the received authentication was successful.

또한, 상기 단말(100)은 상기 서버(200)와 연동하여 인증 성공에 따른 추가 기능을 수행한다.In addition, the terminal 100 interworks with the server 200 to perform an additional function according to authentication success.

일 예로, 상기 산출된 제 1 시프트 연산된 비교 대상 입력값(예를 들어 1110100110)과 상기 분리된 제 1 시프트 연산된 사용자 입력값(예를 들어 1110100110)이 일치할 때, 상기 서버(200)는 인증이 성공하였음을 나타내는 정보를 상기 제 1 단말에 전송한다.For example, when the calculated first shift-calculated comparison target input value (for example, 1110100110) and the separated first shift-calculated user input value (for example, 1110100110) match, the server 200 Information indicating that authentication is successful is transmitted to the first terminal.

또한, 상기 제 1 단말은 상기 앞서 전송된 제 1 데이터(예를 들어 37951110100110) 등에 응답하여 상기 서버(200)로부터 전송되는 인증이 성공하였음을 나타내는 정보를 수신하고, 상기 수신된 인증이 성공하였음을 나타내는 정보를 출력한다.In addition, the first terminal receives information indicating that authentication was successful, transmitted from the server 200 in response to the previously transmitted first data (for example, 37951110100110), and indicates that the received authentication was successful. Display the indicated information.

또한, 상기 제 1 단말은 인증 성공에 따라 상기 서버(200)와 연동하여, 상기 ABCD 은행에서 운영 중인 웹 사이트를 통해 홍길동과 관련한 계좌로의 계좌 이체 기능을 수행하고, 계좌 이체 수행 결과를 출력한다(S1010).In addition, the first terminal interlocks with the server 200 according to the successful authentication, performs an account transfer function to an account related to Hong Gil-dong through the website operated by the ABCD bank, and outputs the result of the account transfer. (S1010).

본 발명의 실시예는 앞서 설명된 바와 같이, 단말에서 서버로부터 제공되는 서버키를 이용해서 상기 서버와 공유하는 미리 설정된 키 테이블을 셔플하고, 상기 셔플된 키 테이블을 근거로 원형링, 원통형 등의 다양한 형태의 동적 키보드를 생성하고, 상기 생성된 동적 키보드 상에서의 사용자 입력에 따른 사용자 입력값과 상기 서버키를 상기 서버에 제공하고, 상기 서버에서 상기 단말로부터 제공되는 사용자 입력값과 상기 서버키를 근거로 서버키의 유효성 및 기존 저장된 비밀번호와의 일치 여부를 판단하여 인증 여부를 상기 단말에 제공하여, 키로깅과 중간자 공격에 따른 해킹을 방지할 수 있다.As described above, the embodiment of the present invention shuffles a preset key table shared with the server using a server key provided from a server in the terminal, and based on the shuffled key table, a circular ring, a cylinder, etc. It generates various types of dynamic keyboards, provides a user input value and the server key according to the user input on the generated dynamic keyboard to the server, and the server provides the user input value and the server key provided from the terminal. Based on the validity of the server key and whether it matches the existing stored password, the authentication status is provided to the terminal, thereby preventing hacking due to key logging and man-in-the-middle attacks.

전술된 내용은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자라면 본 발명의 본질적인 특성에서 벗어나지 않는 범위에서 수정 및 변형이 가능할 것이다. 따라서, 본 발명에 개시된 실시예들은 본 발명의 기술 사상을 한정하기 위한 것이 아니라 설명하기 위한 것이고, 이러한 실시예에 의하여 본 발명의 기술 사상의 범위가 한정되는 것은 아니다. 본 발명의 보호 범위는 아래의 청구범위에 의하여 해석되어야 하며, 그와 동등한 범위 내에 있는 모든 기술 사상은 본 발명의 권리범위에 포함되는 것으로 해석되어야 할 것이다.The above contents may be modified and modified without departing from the essential characteristics of the present invention by those of ordinary skill in the technical field to which the present invention belongs. Accordingly, the embodiments disclosed in the present invention are not intended to limit the technical idea of the present invention, but to explain the technical idea, and the scope of the technical idea of the present invention is not limited by these embodiments. The scope of protection of the present invention should be interpreted by the following claims, and all technical ideas within the scope equivalent thereto should be interpreted as being included in the scope of the present invention.

10: 인증구간의 키로깅과 MITM에 따른 해킹 방지
100: 단말 200: 서버
110: 통신부 120: 저장부
130: 표시부 140: 음성 출력부
150: 제어부
10: Key logging of authentication section and prevention of hacking according to MITM
100: terminal 200: server
110: communication unit 120: storage unit
130: display unit 140: audio output unit
150: control unit

Claims (7)

미리 설정된 이벤트가 발생할 때, 단말에 의해, 키패드 형식, 입력 형식 및 단말의 식별 정보를 서버에 전송하는 단계;
상기 서버에 의해, 상기 입력 형식을 근거로 미리 설정된 크기로 구성되는 서버 키를 생성하는 단계;
상기 단말에 의해, 상기 서버로부터 전송되는 서버 키를 근거로 상기 입력 형식에 대응하여 상기 단말에 미리 저장된 키 테이블을 셔플하는 단계;
상기 단말에 의해, 상기 셔플된 키 테이블, 상기 키패드 형식 및 상기 입력 형식을 근거로 원형링 또는 원통형의 키보드를 생성하는 단계;
상기 단말에 의해, 사용자로부터 비밀번호에 대응하는 입력값을 수신하기 위해서 상기 생성된 키보드를 상기 단말의 일측에 표시하는 단계;
상기 단말에 의해, 상기 단말의 일측에 표시되는 키보드에 대해서 사용자 입력에 따른 입력값을 수신하는 단계;
상기 단말에 의해, 상기 수신된 입력값, 상기 서버 키 및 상기 키보드에 대응하는 순차로 정렬된 값을 근거로 미리 설정된 시프트 연산을 수행하여 시프트 연산된 사용자 입력값을 생성하는 단계;
상기 단말에 의해, 상기 생성된 시프트 연산된 사용자 입력값과 상기 서버 키를 조합한 데이터 및 상기 단말의 식별 정보를 상기 서버에 전송하는 단계;
상기 서버에 의해, 상기 단말로부터 전송되는 데이터에서 상기 서버 키와 상기 시프트 연산된 사용자 입력값을 분리하는 단계;
상기 서버에 의해, 상기 수신된 단말의 식별 정보에 대응하여 상기 서버에 미리 등록된 비밀번호, 상기 서버 키 및 상기 서버 키를 이용하여 셔플된 후 순차로 정렬된 값을 근거로 상기 미리 설정된 시프트 연산을 수행하여, 시프트 연산된 비교 대상 입력값을 생성하는 단계;
상기 서버에 의해, 상기 생성된 시프트 연산된 비교 대상 입력값과 상기 분리된 시프트 연산된 사용자 입력값 간의 일치 여부를 판단하는 단계;
상기 판단 결과, 상기 시프트 연산된 비교 대상 입력값과 상기 시프트 연산된 사용자 입력값이 일치할 때, 상기 서버에 의해, 인증이 성공하였음을 나타내는 정보를 상기 단말에 전송하는 단계;
상기 단말에 의해, 상기 서버로부터 전송되는 인증이 성공하였음을 나타내는 정보를 수신하는 단계;
상기 단말에 의해, 상기 수신된 인증이 성공하였음을 나타내는 정보를 출력하는 단계; 및
상기 단말에 의해, 상기 서버와 연동하여, 인증 성공에 따른 추가 기능을 수행하는 단계를 포함하고,
상기 단말에 미리 저장된 키 테이블을 셔플하는 단계는,
N×M형태의 키 테이블 중에서 선택되는 n×m형태의 서브 키 테이블을 상기 수신된 서버 키에 포함된 값을 이용하여 미리 순서가 설정된 셔플 방식에 따라 순차로 셔플하여 복수 단계에 걸쳐 셔플 기능을 수행하는 단계;
를 포함하고,
여기에서, 상기 미리 순서가 설정된 셔플 방식은 상기 N×M형태의 키 테이블 중에서 선택되는 n×m형태의 서브 키 테이블을 대상으로, 키값을 포함하는 행(row), 키값을 포함하는 열(column), 키값을 포함하는 행과 해당 행에 인접한 하나 이상의 다른 행, 키값을 포함하는 행에 인접한 하나 이상의 다른 행, 키값을 포함하는 열과 해당 열에 인접한 하나 이상의 다른 열, 키값을 포함하는 열에 인접한 하나 이상의 다른 열 및 행렬 형태의 키 테이블에서의 대각선 중 하나의 범위를 상기 서버 키의 크기만큼 순차로 선택하고, 상기 순차로 선택된 각각의 복수의 범위를 기준으로 미리 설정된 방향으로 미리 설정된 단위 만큼 시프트하고,
상기 N과 M은 같거나 다른 자연수이고, 상기 n은 상기 N보다 작거나 같은 자연수이고, 상기 m은 상기 M보다 작거나 같은 자연수이고, 상기 n과 m은 같거나 다른 것을 특징으로 하는 인증구간의 키로깅과 MITM에 따른 해킹 방지 방법.
When a preset event occurs, transmitting, by the terminal, a keypad format, an input format, and identification information of the terminal to a server;
Generating, by the server, a server key having a preset size based on the input format;
Shuffling, by the terminal, a key table previously stored in the terminal in response to the input format based on the server key transmitted from the server;
Generating, by the terminal, a circular ring or cylindrical keyboard based on the shuffled key table, the keypad format, and the input format;
Displaying, by the terminal, the generated keyboard on one side of the terminal to receive an input value corresponding to a password from a user;
Receiving, by the terminal, an input value according to a user input for a keyboard displayed on one side of the terminal;
Generating, by the terminal, a shift-calculated user input value by performing a preset shift operation based on the received input value, the server key, and values arranged in sequence corresponding to the keyboard;
Transmitting, by the terminal, data obtained by combining the generated shifted user input value and the server key and identification information of the terminal to the server;
Separating, by the server, the server key and the shifted user input value from the data transmitted from the terminal;
By the server, the preset shift operation is performed based on a value that is sequentially sorted after being shuffled using a password registered in advance in the server, the server key, and the server key in response to the received terminal identification information. Performing a shift operation to generate a comparison target input value;
Determining, by the server, whether or not the generated shifted comparison target input value and the separated shifted user input value match;
Transmitting, by the server, information indicating that authentication was successful to the terminal when the shift-calculated comparison target input value and the shift-calculated user input value match as a result of the determination;
Receiving, by the terminal, information indicating that authentication transmitted from the server was successful;
Outputting, by the terminal, information indicating that the received authentication was successful; And
By the terminal, interlocking with the server, including the step of performing an additional function according to the authentication success,
The step of shuffling the key table previously stored in the terminal,
The n×m type subkey table selected from the N×M type key tables is sequentially shuffled according to a pre-set shuffle method using the values included in the received server key to perform a shuffle function over multiple steps. Performing;
Including,
Here, the pre-ordered shuffle method targets an n×m type sub-key table selected from the N×M type key tables, and includes a row including a key value, and a column including a key value. ), the row containing the key value and one or more other rows adjacent to the row, one or more other rows adjacent to the row containing the key value, the column containing the key value and one or more other columns adjacent to the column, and one or more adjacent columns containing the key value One range of diagonal lines in the key table in the form of another column and matrix is sequentially selected by the size of the server key, and shifted by a preset unit in a preset direction based on each of the plurality of ranges selected in sequence,
The authentication section, characterized in that N and M are the same or different natural numbers, n is a natural number less than or equal to N, m is a natural number less than or equal to M, and n and m are the same or different Hacking prevention method according to keylogging and MITM.
제 1 항에 있어서,
상기 이벤트는,
상기 단말에 표시되는 특정 영역이 마우스 또는 사용자 입력에 따라 선택되는 경우, 상기 단말에 비밀번호 입력을 위한 화면이 표시되고 있는 상태에서 마우스의 버튼이 선택되는 경우, 상기 단말에 비밀번호 입력을 위한 화면이 표시되고 있는 상태에서 키보드 상의 미리 설정된 키가 선택되는 경우 및 상기 단말에 비밀번호 입력을 위한 화면이 표시되고 있는 상태에서 상기 단말의 화면 일측에 표시되는 특정 영역 또는 특정 버튼이 사용자 입력에 따라 선택되는 경우 중 어느 하나를 포함하며,
상기 키패드 형식은,
상기 단말에 표시될 키패드의 모양으로 원형링 및 원통형 중 어느 하나를 포함하며,
상기 입력 형식은,
숫자 형식, 문자 형식, 특수문자 형식 및 이들의 조합 형식 중 어느 하나를 포함하는 것을 특징으로 하는 인증구간의 키로깅과 MITM에 따른 해킹 방지 방법.
The method of claim 1,
The above event is:
When a specific area displayed on the terminal is selected according to a mouse or user input, when the button of the mouse is selected while the screen for password input is displayed on the terminal, a screen for password input is displayed on the terminal Among the cases in which a preset key on the keyboard is selected in the current state, and a specific area displayed on one side of the screen of the terminal or a specific button is selected according to the user input while the screen for password input is displayed on the terminal. Includes any one,
The keypad format is:
The shape of the keypad to be displayed on the terminal includes any one of a circular ring and a cylindrical shape,
The above input format is:
A method for preventing hacking according to MITM and key logging of an authentication section, comprising any one of a number format, a character format, a special character format, and a combination format thereof.
삭제delete 제 1 항에 있어서,
상기 키보드를 생성하는 단계는,
상기 셔플된 키 테이블에 대응하여 미리 설정된 인디케이터를 기준으로 상기 셔플된 키 테이블에 포함된 값을 순차로 정렬하는 과정; 및
상기 순차로 정렬된 값을 상기 키패드 형식에 대응하는 원형링 또는 원통형의 키보드에 순차로 정렬하여, 상기 순차로 정렬된 값으로 구성되는 키보드를 생성하는 과정을 포함하는 것을 특징으로 하는 인증구간의 키로깅과 MITM에 따른 해킹 방지 방법.
The method of claim 1,
Generating the keyboard,
Sequentially sorting values included in the shuffled key table based on a preset indicator corresponding to the shuffled key table; And
And generating a keyboard composed of the sequentially arranged values by sequentially arranging the sequentially arranged values on a circular ring or cylindrical keyboard corresponding to the keypad type. Hacking prevention method according to logging and MITM.
제 1 항에 있어서,
상기 판단 결과, 상기 시프트 연산된 비교 대상 입력값과 상기 시프트 연산된 사용자 입력값이 일치하지 않을 때, 상기 서버에 의해, 인증이 실패하였음을 나타내는 정보를 상기 단말에 전송하는 단계;
상기 단말에 의해, 상기 서버로부터 전송되는 인증이 실패하였음을 나타내는 정보를 수신하는 단계; 및
상기 단말에 의해, 상기 수신된 인증이 실패하였음을 나타내는 정보를 출력하는 단계를 더 포함하는 것을 특징으로 하는 인증구간의 키로깅과 MITM에 따른 해킹 방지 방법.
The method of claim 1,
Transmitting, by the server, information indicating that authentication has failed to the terminal when the shift-calculated comparison target input value and the shift-calculated user input value do not match as a result of the determination;
Receiving, by the terminal, information indicating that authentication transmitted from the server has failed; And
And outputting, by the terminal, information indicating that the received authentication has failed.
미리 설정된 이벤트가 발생할 때, 키패드 형식, 입력 형식 및 단말의 식별 정보를 서버에 전송하고, 상기 전송에 응답하여 상기 서버로부터 전송되는 서버 키를 수신하고, 상기 서버 키를 근거로 상기 입력 형식에 대응하여 단말에 미리 저장된 키 테이블을 셔플하고, 상기 셔플된 키 테이블, 상기 키패드 형식 및 상기 입력 형식을 근거로 원형링 또는 원통형의 키보드를 생성하고, 사용자로부터 비밀번호에 대응하는 입력값을 수신하기 위해서 상기 생성된 키보드를 상기 단말의 일측에 표시하고, 사용자 입력에 따른 입력값을 수신하고, 상기 수신된 입력값, 상기 서버 키 및 상기 키보드에 대응하는 순차로 정렬된 값을 근거로 미리 설정된 시프트 연산을 수행하여 시프트 연산된 사용자 입력값을 생성하고, 상기 생성된 시프트 연산된 사용자 입력값과 상기 서버 키를 조합한 데이터 및 상기 단말의 식별 정보를 상기 서버에 전송하는 상기 단말; 및
상기 단말로부터 전송되는 데이터에서 상기 서버 키와 상기 시프트 연산된 사용자 입력값을 분리하고, 상기 수신된 단말의 식별 정보에 대응하여 상기 서버에 미리 등록된 비밀번호, 상기 서버 키 및 상기 서버 키를 이용하여 셔플된 후 순차로 정렬된 값을 근거로 상기 미리 설정된 시프트 연산을 수행하여, 시프트 연산된 비교 대상 입력값을 생성하고, 상기 생성된 시프트 연산된 비교 대상 입력값과 상기 분리된 시프트 연산된 사용자 입력값 간의 일치 여부를 판단하고, 상기 판단 결과, 상기 시프트 연산된 비교 대상 입력값과 상기 시프트 연산된 사용자 입력값이 일치할 때 인증이 성공하였음을 나타내는 정보를 상기 단말에 전송하는 서버를 포함하고,
상기 단말은,
N×M형태의 키 테이블 중에서 선택되는 n×m형태의 서브 키 테이블을 상기 수신된 서버 키에 포함된 값을 이용하여 미리 순서가 설정된 셔플 방식에 따라 순차로 셔플하여 복수 단계에 걸쳐 셔플 기능을 수행하고,
여기에서, 상기 미리 순서가 설정된 셔플 방식은 상기 N×M형태의 키 테이블 중에서 선택되는 n×m형태의 서브 키 테이블을 대상으로, 키값을 포함하는 행(row), 키값을 포함하는 열(column), 키값을 포함하는 행과 해당 행에 인접한 하나 이상의 다른 행, 키값을 포함하는 행에 인접한 하나 이상의 다른 행, 키값을 포함하는 열과 해당 열에 인접한 하나 이상의 다른 열, 키값을 포함하는 열에 인접한 하나 이상의 다른 열 및 행렬 형태의 키 테이블에서의 대각선 중 하나의 범위를 상기 서버 키의 크기만큼 순차로 선택하고, 상기 순차로 선택된 각각의 복수의 범위를 기준으로 미리 설정된 방향으로 미리 설정된 단위 만큼 시프트하고, 상기 N과 M은 같거나 다른 자연수이고, 상기 n은 상기 N보다 작거나 같은 자연수이고, 상기 m은 상기 M보다 작거나 같은 자연수이고, 상기 n과 m은 같거나 다른 것을 특징으로 하는 인증구간의 키로깅과 MITM에 따른 해킹 방지 시스템.
When a preset event occurs, a keypad format, an input format, and identification information of a terminal are transmitted to the server, and in response to the transmission, a server key transmitted from the server is received, and the input format is responded to the input format based on the server key. In order to shuffle the key table previously stored in the terminal, generate a circular ring or cylindrical keyboard based on the shuffled key table, the keypad format and the input format, and receive an input value corresponding to the password from the user, the Display the generated keyboard on one side of the terminal, receive an input value according to a user input, and perform a preset shift operation based on the received input value, the server key, and values arranged in sequence corresponding to the keyboard. The terminal for generating a shift-calculated user input value by performing, and transmitting data obtained by combining the generated shift-calculated user input value and the server key and identification information of the terminal to the server; And
Separating the server key and the shifted user input value from the data transmitted from the terminal, and using a password previously registered in the server, the server key, and the server key in response to the identification information of the received terminal. After being shuffled, the preset shift operation is performed on the basis of the sequentially sorted values to generate a shifted comparison target input value, and the generated shifted comparison target input value and the separated shifted user input A server that determines whether the values match or not, and transmits information indicating that authentication is successful to the terminal when the shift-calculated comparison target input value and the shift-calculated user input value match,
The terminal,
The n×m type subkey table selected from the N×M type key tables is sequentially shuffled according to a pre-set shuffle method using the values included in the received server key to perform a shuffle function over multiple steps. Perform,
Here, the pre-ordered shuffle method targets an n×m type sub-key table selected from the N×M type key tables, a row including a key value, and a column including a key value. ), the row containing the key value and one or more other rows adjacent to the row, one or more other rows adjacent to the row containing the key value, the column containing the key value and one or more other columns adjacent to the column, and one or more adjacent columns containing the key value One range of diagonal lines in the key table in the form of another column and matrix is sequentially selected by the size of the server key, and shifted by a preset unit in a preset direction based on each of the plurality of ranges selected in sequence, The authentication section, characterized in that N and M are the same or different natural numbers, n is a natural number less than or equal to N, m is a natural number less than or equal to M, and n and m are the same or different Hacking prevention system according to keylogging and MITM.
제 6 항에 있어서,
상기 단말은,
상기 서버로부터 전송되는 인증이 성공하였음을 나타내는 정보를 수신하고, 상기 수신된 인증이 성공하였음을 나타내는 정보를 출력하고, 상기 서버와 연동하여, 인증 성공에 따른 추가 기능을 수행하는 것을 특징으로 하는 인증구간의 키로깅과 MITM에 따른 해킹 방지 시스템.
The method of claim 6,
The terminal,
Authentication characterized in that it receives information indicating that the authentication was successful transmitted from the server, outputs information indicating that the received authentication was successful, and performs an additional function according to authentication success by interworking with the server Hacking prevention system according to section key logging and MITM.
KR1020190061231A 2019-05-24 2019-05-24 System for preventing hacking according to key logging of authentication section and MITM and method thereof KR102153666B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020190061231A KR102153666B1 (en) 2019-05-24 2019-05-24 System for preventing hacking according to key logging of authentication section and MITM and method thereof

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020190061231A KR102153666B1 (en) 2019-05-24 2019-05-24 System for preventing hacking according to key logging of authentication section and MITM and method thereof

Publications (1)

Publication Number Publication Date
KR102153666B1 true KR102153666B1 (en) 2020-09-09

Family

ID=72469150

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020190061231A KR102153666B1 (en) 2019-05-24 2019-05-24 System for preventing hacking according to key logging of authentication section and MITM and method thereof

Country Status (1)

Country Link
KR (1) KR102153666B1 (en)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20120047075A (en) * 2010-11-03 2012-05-11 한국전자통신연구원 Apparatus and method for input user password
KR101621002B1 (en) * 2015-09-02 2016-05-13 주식회사 베이스인 네트웍스 Method for providing log in service using image array
KR101648779B1 (en) * 2015-04-02 2016-08-17 (주)케이스마텍 Method for secure text input in information terminal
KR20180067082A (en) 2016-12-12 2018-06-20 조선대학교산학협력단 Method and apparatus for authenication using dial virtual keypad

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20120047075A (en) * 2010-11-03 2012-05-11 한국전자통신연구원 Apparatus and method for input user password
KR101648779B1 (en) * 2015-04-02 2016-08-17 (주)케이스마텍 Method for secure text input in information terminal
KR101621002B1 (en) * 2015-09-02 2016-05-13 주식회사 베이스인 네트웍스 Method for providing log in service using image array
KR20180067082A (en) 2016-12-12 2018-06-20 조선대학교산학협력단 Method and apparatus for authenication using dial virtual keypad

Similar Documents

Publication Publication Date Title
CN107341387A (en) For the electronic stamp system and its control method strengthened safely
EP3443724B1 (en) Web service picture passwords
JP6713548B2 (en) One-time dynamic position authentication method and system, and one-time dynamic password change method
EP3535680A1 (en) Method for securing a transaction performed from a non-secure terminal
EP2953323A9 (en) System and method of securing instant messaging sessions
CN108769027B (en) Secure communication method, device, mobile terminal and storage medium
KR102023101B1 (en) Apparatus for preventing forgery of original data and method thereof
US11042624B2 (en) Wireless injection of passwords
CN104885403A (en) Method for producing dynamic data structures for authentication and/or password identification
US9659189B2 (en) Systems and methods of safeguarding user information while interacting with online service providers
KR102055625B1 (en) Authentication server device, program, and authentication method
JP2010231510A (en) User authentication system, user authentication method, authentication server program and client program
US20170300677A1 (en) Security Mode Prompt Method and Apparatus
JP2019522277A (en) Terminal device password unlocking method, apparatus, and terminal device
EP2973182B1 (en) Methods and apparatus for securing user input in a mobile device
KR101085490B1 (en) User password input system for protecting the user&#39;s privacy against a shoulder-surfing attack and user password input method for protecting the user&#39;s privacy against a shoulder-surfing attack
CN107666395A (en) One population file management method, user terminal, group chat system
JP2012181716A (en) Authentication method using color password and system
KR102153666B1 (en) System for preventing hacking according to key logging of authentication section and MITM and method thereof
CN101277183A (en) Input method and system for logging information as well as method for implementing system
KR102025659B1 (en) Smart watch and security input system thereof
US11010466B2 (en) Keyboard injection of passwords
CN111679781A (en) Verification processing method, device, equipment and medium
CN106385684B (en) Method and device for sharing wireless network and method and device for accessing wireless network
CN108549808B (en) Password management method and device

Legal Events

Date Code Title Description
E701 Decision to grant or registration of patent right
GRNT Written decision to grant