[go: up one dir, main page]
More Web Proxy on the site http://driver.im/

KR102223741B1 - Method, apparatus and computer program for determining random generation of string - Google Patents

Method, apparatus and computer program for determining random generation of string Download PDF

Info

Publication number
KR102223741B1
KR102223741B1 KR1020190055840A KR20190055840A KR102223741B1 KR 102223741 B1 KR102223741 B1 KR 102223741B1 KR 1020190055840 A KR1020190055840 A KR 1020190055840A KR 20190055840 A KR20190055840 A KR 20190055840A KR 102223741 B1 KR102223741 B1 KR 102223741B1
Authority
KR
South Korea
Prior art keywords
string
character string
frequency
frequency data
character
Prior art date
Application number
KR1020190055840A
Other languages
Korean (ko)
Other versions
KR20200131068A (en
Inventor
노인우
서충현
Original Assignee
네이버웹툰 유한회사
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 네이버웹툰 유한회사 filed Critical 네이버웹툰 유한회사
Priority to KR1020190055840A priority Critical patent/KR102223741B1/en
Publication of KR20200131068A publication Critical patent/KR20200131068A/en
Application granted granted Critical
Publication of KR102223741B1 publication Critical patent/KR102223741B1/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/903Querying
    • G06F16/90335Query processing
    • G06F16/90344Query processing by using string matching techniques
    • 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
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/20Natural language analysis
    • G06F40/205Parsing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Software Systems (AREA)
  • Computational Linguistics (AREA)
  • Computer Hardware Design (AREA)
  • Databases & Information Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Health & Medical Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • Artificial Intelligence (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Biophysics (AREA)
  • Evolutionary Computation (AREA)
  • Biomedical Technology (AREA)
  • Molecular Biology (AREA)
  • Computing Systems (AREA)
  • Mathematical Physics (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Machine Translation (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

본 발명의 일 실시예에 따른 사용자 식별 문자열이 무작위로 생성되었는지 여부를 판단하는 방법은, 상기 문자열의 적어도 일부이고, N(N은 자연수)개의 연속하는 문자를 포함하는 하나 이상의 제1 부분 문자열 각각이, 복수의 사용자 식별 문자열에 포함되어있는 빈도를 포함하는 제1 빈도 데이터를 생성하는 단계; 상기 문자열의 적어도 일부이고, M(M은 자연수)개의 연속하는 문자를 포함하는 하나 이상의 제2 부분 문자열 각각이, 상기 복수의 사용자 식별 문자열에 포함되어있는 빈도를 포함하는 제2 빈도 데이터를 생성하는 단계; 및 인공 신경망을 이용하여, 상기 제1 빈도 데이터 및 상기 제2 빈도 데이터로부터 상기 문자열의 무작위 생성 여부를 결정하는 단계;를 포함할 수 있다.A method of determining whether a user identification character string is randomly generated according to an embodiment of the present invention is at least a part of the character string, each of one or more first substrings including N (N is a natural number) consecutive characters Generating first frequency data including frequencies included in the plurality of user identification character strings; At least a part of the character string, each of one or more second substrings including M (M is a natural number) consecutive characters, generating second frequency data including frequencies included in the plurality of user identification character strings step; And determining whether the character string is randomly generated from the first frequency data and the second frequency data using an artificial neural network.

Description

문자열의 무작위 생성 여부 판단 방법, 장치 및 컴퓨터 프로그램{Method, apparatus and computer program for determining random generation of string}Method, apparatus and computer program for determining random generation of string

본 발명은 사용자 식별 문자열이 무작위로 생성되었는지 여부를 판단하는 방법, 장치 및 컴퓨터 프로그램에 관한 것이다.The present invention relates to a method, apparatus, and computer program for determining whether a user identification character string is randomly generated.

컴퓨터를 비롯한 다양한 스마트기기가 보급됨에 따라 현대에는 온라인망을 이용한 서비스, 특히 온라인을 통해 콘텐츠를 제공하는 서비스들이 등장하고 있다. 이러한 서비스들은 단순히 콘텐츠를 제공하는데 그치지 않고 사용자가 콘텐츠에 대한 추천, 공감, 덧글 등과 같은 피드백 입력할 수 있도록 한다.With the spread of various smart devices including computers, services using online networks, especially services that provide content through online, are emerging in modern times. These services do not just provide content, but allow users to input feedback, such as recommendations, empathy, and comments about the content.

오늘날 사용자가 입력한 피드백은 콘텐츠 만큼이나 강력한 파급 효과를 갖기에, 특정 의도를 가진 사용자의 다량의 피드백에 의해 콘텐츠가 최초 의도와 다른 목적 등으로 사용되는 것을 방지하기 위해 사용자의 계정 당 입력할 수 있는 피드백을 소정의 조건에 따라 제한하고 있는 추세이다.Today's user-entered feedback is as powerful as the content, so it can be entered per user's account in order to prevent the content from being used for purposes other than the original intent by a large amount of feedback from users with a specific intent. There is a trend of limiting feedback according to predetermined conditions.

이러한 추세에 따라, 특정 의도를 가진 사용자들은 컴퓨터와 같은 정보 처리 장치를 이용하여 사용자 계정을 다량 생성하여 부정한 행위를 여전히 이어가고 있으며, 이로 인하여 다양한 문제점이 발생하고 있는 실정이다. 따라서 정보 처리 장치에 의해 무작위로 생성된 사용자 식별 문자열 판별의 필요성이 점차 대두되고 있다.In accordance with this trend, users with specific intentions create a large number of user accounts using information processing devices such as computers and continue to engage in fraudulent behavior, resulting in various problems. Therefore, the necessity of discriminating a user identification character string randomly generated by an information processing device is gradually emerging.

본 발명은 사용자 계정과 같은 사용자 식별 문자열이 컴퓨터와 같은 정보 처리 장치에 의해 무작위로 생성되었는지 여부를 정확하게 결정하고자 한다.An object of the present invention is to accurately determine whether a user identification string such as a user account is randomly generated by an information processing device such as a computer.

또한 본 발명은 무작위로 생성된 사용자 식별 문자열을 이용한 다양한 불법적인 행위를 효과적으로 차단할 수 있도록 하고자 한다.In addition, the present invention is intended to be able to effectively block various illegal activities using a randomly generated user identification string.

또한 본 발명은 무작위로 생성되지 않았을 확률이 특별히 높은 사용자 식별 문자열을 사전에 필터링 함으로써 보다 높은 정확도로 사용자 식별 문자열의 무작위 생성 여부를 결정하고자 한다.In addition, the present invention is to determine whether or not to generate a user identification string randomly with higher accuracy by filtering in advance a user identification string having a particularly high probability that it was not randomly generated.

본 발명의 일 실시예에 따른 사용자 식별 문자열이 무작위로 생성되었는지 여부를 판단하는 방법은, 상기 문자열의 적어도 일부이고, N(N은 자연수)개의 연속하는 문자를 포함하는 하나 이상의 제1 부분 문자열 각각이, 복수의 사용자 식별 문자열에 포함되어있는 빈도를 포함하는 제1 빈도 데이터를 생성하는 단계; 및 상기 제1 빈도 데이터에 기초하여 상기 사용자 식별 문자열의 무작위 생성 여부를 결정하는 단계;를 포함할 수 있다.A method of determining whether a user identification character string is randomly generated according to an embodiment of the present invention is at least a part of the character string, each of one or more first substrings including N (N is a natural number) consecutive characters Generating first frequency data including frequencies included in the plurality of user identification character strings; And determining whether to randomly generate the user identification character string based on the first frequency data.

본 발명의 일 실시예에 따른 문자열의 무작위 생성 여부 판단 방법은 상기 문자열의 적어도 일부이고, M(M은 자연수)개의 연속하는 문자를 포함하는 하나 이상의 제2 부분 문자열 각각이, 상기 복수의 사용자 식별 문자열에 포함되어있는 빈도를 포함하는 제2 빈도 데이터를 생성하는 단계;를 더 포함하고, 상기 사용자 식별 문자열의 무작위 생성 여부를 결정하는 단계는 상기 제1 빈도 데이터 및 상기 제2 빈도 데이터에 기초하여 상기 사용자 식별 문자열의 무작위 생성 여부를 결정 할 수 있다.In the method for determining whether a character string is randomly generated according to an embodiment of the present invention, each of the at least one second substring including M (M is a natural number) consecutive characters, which is at least a part of the character string, identifies the plurality of users. Generating second frequency data including a frequency included in the character string; further comprising, determining whether to randomly generate the user identification character string, based on the first frequency data and the second frequency data It is possible to determine whether to randomly generate the user identification string.

상기 사용자 식별 문자열의 무작위 생성 여부를 결정하는 단계는 인공 신경망을 이용하여, 상기 제1 빈도 데이터 및 상기 제2 빈도 데이터로부터 상기 문자열의 무작위 생성 여부를 결정하고, 상기 인공 신경망은 상기 문자열이 무작위로 생성되었는지 여부가 표지(Label)된 적어도 하나의 학습 데이터에 기반하여, 상기 학습 데이터에 포함되는 제1 빈도 데이터 및 제2 빈도 데이터와 상기 무작위 생성 여부간의 상관관계를 학습한 신경망일 수 있다.The step of determining whether to randomly generate the user identification string is performed using an artificial neural network to determine whether to randomly generate the character string from the first frequency data and the second frequency data, and the artificial neural network randomly generates the character string. The neural network may be a neural network that learns a correlation between the first frequency data and the second frequency data included in the training data and the random generation based on at least one learning data labeled as to whether or not it is generated.

본 발명의 일 실시예에 따른 문자열의 무작위 생성 여부 판단 방법은 상기 문자열에 포함된 각 문자의 종류에 기초하여, 상기 문자열에 대응되는 패턴 문자열을 생성하는 단계; 및 상기 패턴 문자열의 적어도 일부이고, K(K는 자연수)개의 연속하는 문자를 포함하는 하나 이상의 제3 부분 문자열 각각이, 상기 복수의 사용자 식별 문자열 각각에 대응되는 패턴 문자열에 포함되어있는 빈도를 포함하는 제3 빈도 데이터를 생성하는 단계;를 더 포함할 수 있다. 이때 상기 사용자 식별 문자열의 무작위 생성 여부를 결정하는 단계는 상기 제1 빈도 데이터 및 상기 제3 빈도 데이터에 기초하여 상기 사용자 식별 문자열의 무작위 생성 여부를 결정할 수 있다.According to an embodiment of the present invention, a method for determining whether a character string is randomly generated comprises: generating a pattern character string corresponding to the character string based on the type of each character included in the character string; And a frequency in which each of one or more third substrings, which is at least a part of the pattern string and includes K (K is a natural number) consecutive characters, is included in the pattern string corresponding to each of the plurality of user identification strings. It may further include a; step of generating the third frequency data. In this case, determining whether to randomly generate the user identification string may determine whether to randomly generate the user identification string based on the first frequency data and the third frequency data.

본 발명의 일 실시예에 따른 문자열의 무작위 생성 여부 판단 방법은 상기 패턴 문자열의 적어도 일부이고, L(L은 자연수)개의 연속하는 문자를 포함하는 하나 이상의 제4 부분 문자열 각각이, 상기 복수의 사용자 식별 문자열 각각에 대응되는 패턴 문자열에 포함되어있는 빈도를 포함하는 제4 빈도 데이터를 생성하는 단계;를 더 포함할 수 있다. 이때 상기 사용자 식별 문자열의 무작위 생성 여부를 결정하는 단계는 상기 제1 빈도 데이터, 상기 제3 빈도 데이터 및 상기 제4 빈도 데이터에 기초하여 상기 사용자 식별 문자열의 무작위 생성 여부를 결정할 수 있다.In the method for determining whether a character string is randomly generated according to an embodiment of the present invention, each of the at least one fourth substring including L (L is a natural number) consecutive characters is at least a part of the pattern character string, and the plurality of users It may further include a step of generating fourth frequency data including a frequency included in a pattern string corresponding to each of the identification strings. In this case, determining whether to randomly generate the user identification string may determine whether to randomly generate the user identification string based on the first frequency data, the third frequency data, and the fourth frequency data.

상기 사용자 식별 문자열의 무작위 생성 여부를 결정하는 단계는 인공 신경망을 이용하여, 상기 제1 빈도 데이터, 상기 제3 빈도 데이터 및 상기 제4 빈도 데이터로부터 상기 문자열의 무작위 생성 여부를 결정하고, 상기 인공 신경망은 상기 문자열이 무작위로 생성되었는지 여부가 표지(Label)된 적어도 하나의 학습 데이터에 기반하여, 상기 학습 데이터에 포함되는 제1 빈도 데이터, 제3 빈도 데이터 및 제4 빈도 데이터와 상기 무작위 생성 여부간의 상관관계를 학습한 신경망일 수 있다.The step of determining whether to randomly generate the user identification string is performed using an artificial neural network to determine whether to randomly generate the string from the first frequency data, the third frequency data, and the fourth frequency data, and the artificial neural network Is based on at least one learning data labeled whether or not the character string is randomly generated, between the first frequency data, the third frequency data, and the fourth frequency data included in the training data, and whether or not the random generation is performed. It may be a neural network that has learned the correlation.

상기 패턴 문자열을 생성하는 단계는 상기 문자열에 포함되는 제1 문자가 제1 종류의 문자인 경우, 상기 패턴 문자열의 상기 제1 문자의 위치와 대응되는 위치의 문자를 상기 제1 종류에 대응되는 문자로 결정할 수 있다.In the generating of the pattern string, when the first character included in the character string is a character of a first type, a character at a position corresponding to the position of the first character of the pattern character string is converted to a character corresponding to the first type. Can be determined by

상기 제1 문자의 종류는 알파벳 종류, 숫자 종류 및 특수문자 종류 중 어느 하나일 수 있다.The type of the first character may be any one of an alphabet type, a number type, and a special character type.

본 발명의 일 실시예에 따른 문자열의 무작위 생성 여부 판단 방법은 상기 사용자 식별 문자열이 소정의 지정 조건을 만족하는지 여부를 포함하는 지정 조건 판단 데이터를 생성하는 단계;를 더 포함할 수 있다. 이때 상기 사용자 식별 문자열의 무작위 생성 여부를 결정하는 단계는 상기 제1 빈도 데이터 및 상기 지정 조건 판단 데이터에 기초하여 상기 사용자 식별 문자열의 무작위 생성 여부를 결정할 수 있다.The method for determining whether a character string is randomly generated according to an embodiment of the present invention may further include generating designation condition determination data including whether the user identification character string satisfies a predetermined designation condition. In this case, determining whether to randomly generate the user identification string may determine whether to randomly generate the user identification string based on the first frequency data and the designation condition determination data.

본 발명의 일 실시예에 따른 판단 대상 사용자 식별 문자열이 무작위로 생성되었는지 여부를 판단하는 방법은, 복수의 사용자 식별 문자열에서, 상기 판단 대상 문자열을 구성하는 적어도 하나의 부분 문자열이 출현하는 출현 빈도에 기초하여 문자열 빈도 데이터를 생성하는 단계; 상기 복수의 사용자 식별 문자열 각각에 대응되는 패턴 문자열에서, 패턴 문자열을 구성하는 적어도 하나의 부분 패턴 문자열의 출현 빈도에 기초하여 패턴 문자열 빈도 데이터를 생성하는 단계로써, 상기 패턴 문자열은 상기 판단 대상 문자열에 포함된 각 문자의 종류에 기초하여 상기 판단 대상 문자열로부터 생성되는 문자열이고; 상기 판단 대상 문자열이 소정의 지정 조건을 만족하는지 여부를 포함하는 지정 조건 판단 데이터를 생성하는 단계; 및 상기 문자열 빈도 데이터, 상기 패턴 문자열 빈도 데이터 및 상기 지정 조건 판단 데이터에 기초하여 상기 판단 대상 문자열의 무작위 생성 여부를 결정하는 단계;를 포함할 수 있다.A method of determining whether a user identification character string to be determined according to an embodiment of the present invention is randomly generated is based on the frequency of occurrence of at least one substring constituting the determination target character string in a plurality of user identification character strings. Generating character string frequency data based on; In the pattern string corresponding to each of the plurality of user identification strings, generating pattern string frequency data based on the frequency of appearance of at least one partial pattern string constituting the pattern string, wherein the pattern string is in the determination target string A character string generated from the determination target character string based on the type of each included character; Generating designation condition determination data including whether the determination object character string satisfies a predetermined designation condition; And determining whether the character string to be determined is randomly generated based on the character string frequency data, the pattern character string frequency data, and the designation condition determination data.

상기 판단 대상 문자열의 무작위 생성 여부를 결정하는 단계는 인공 신경망을 이용하여, 상기 문자열 빈도 데이터, 상기 패턴 문자열 빈도 데이터 및 상기 지정 조건 판단 데이터로부터 상기 판단 대상 문자열의 무작위 생성 여부를 결정할 수 있다. 이때 상기 인공 신경망은 사용자 식별 문자열이 무작위로 생성되었는지 여부가 표지(Label)된 적어도 하나의 학습 데이터에 기반하여, 상기 학습 데이터에 포함되는 문자열 빈도 데이터, 패턴 문자열 빈도 데이터 및 지정 조건 판단 데이터와 상기 무작위로 생성되었는지 여부간의 상관관계를 학습한 신경망일 수 있다.In determining whether to generate the character string to be determined randomly, it may be determined whether or not to generate the character string to be determined randomly from the character string frequency data, the pattern character string frequency data, and the designation condition determination data using an artificial neural network. In this case, the artificial neural network includes character string frequency data, pattern character string frequency data, and designation condition determination data included in the training data, based on at least one learning data labeled whether or not a user identification character string is randomly generated. It may be a neural network that has learned the correlation between whether it is randomly generated or not.

상기 문자열 빈도 데이터는 상기 판단 대상 문자열의 적어도 일부이고, N(N은 자연수)개의 연속하는 문자를 포함하는 하나 이상의 제1 부분 문자열 각각이, 복수의 사용자 식별 문자열에 포함되어있는 빈도를 포함하는 제1 빈도 데이터 및 상기 판단 대상 문자열의 적어도 일부이고, M(M은 자연수)개의 연속하는 문자를 포함하는 하나 이상의 제2 부분 문자열 각각이, 상기 복수의 사용자 식별 문자열에 포함되어있는 빈도를 포함하는 제2 빈도 데이터를 포함할 수 있다.The character string frequency data is at least a part of the character string to be determined, and a first substring including at least one first substring including N (N is a natural number) consecutive characters is a first including a frequency included in a plurality of user identification character strings. 1 frequency data and at least a part of the character string to be determined, each of one or more second substrings including M (M is a natural number) consecutive characters, a first including a frequency included in the plurality of user identification character strings 2 Can include frequency data.

상기 패턴 문자열 빈도 데이터는 상기 패턴 문자열의 적어도 일부이고, K(K는 자연수)개의 연속하는 문자를 포함하는 하나 이상의 제3 부분 문자열 각각이, 상기 복수의 사용자 식별 문자열 각각에 대응되는 패턴 문자열에 포함되어있는 빈도를 포함하는 제3 빈도 데이터 및 상기 패턴 문자열의 적어도 일부이고, L(L은 자연수)개의 연속하는 문자를 포함하는 하나 이상의 제4 부분 문자열 각각이, 상기 복수의 사용자 식별 문자열 각각에 대응되는 패턴 문자열에 포함되어있는 빈도를 포함하는 제4 빈도 데이터를 포함할 수 있다.The pattern string frequency data is at least a part of the pattern string, and each of one or more third substrings including K (K is a natural number) consecutive characters is included in the pattern string corresponding to each of the plurality of user identification strings. Each of the third frequency data including the frequency and at least a part of the pattern character string, each of the at least one fourth substring including L (L is a natural number) consecutive characters, corresponds to each of the plurality of user identification character strings The fourth frequency data including the frequency included in the pattern string to be used may be included.

본 발명의 일 실시예에 따른 판단 대상 사용자 식별 문자열이 무작위로 생성되었는지 여부를 판단하는 방법은 상기 문자열 빈도 데이터를 생성하는 단계 이전에, 상기 복수의 사용자 식별 문자열에서의 복수의 부분 문자열 각각의 출현 빈도를 누적하여 문자열 빈도 데이터베이스를 생성하는 단계;를 더 포함할 수 있다.A method of determining whether a user identification string to be determined according to an embodiment of the present invention is randomly generated is, prior to the step of generating the string frequency data, the appearance of each of a plurality of substrings in the plurality of user identification strings. It may further include a step of generating a string frequency database by accumulating frequencies.

상기 문자열 빈도 데이터를 생성하는 단계는, 상기 문자열 빈도 데이터베이스에서 상기 판단 대상 문자열을 구성하는 적어도 하나의 부분 문자열 각각의 출현 빈도를 확인하는 단계; 상기 부분 문자열 각각의 출현 빈도에 기초하여 상기 판단 대상 문자열의 엔트로피를 산출하는 단계; 및 상기 부분 문자열 각각의 출현 빈도 및 상기 엔트로피를 포함하는 상기 문자열 빈도 데이터를 생성하는 단계;를 포함할 수 있다.The generating of the character string frequency data may include: checking an appearance frequency of each of at least one substring constituting the determination target character string in the character string frequency database; Calculating an entropy of the character string to be determined based on the frequency of occurrence of each of the sub character strings; And generating the character string frequency data including the frequency of occurrence and the entropy of each of the substrings.

본 발명의 일 실시예에 따른 판단 대상 사용자 식별 문자열이 무작위로 생성되었는지 여부를 판단하는 장치에 있어서, 상기 장치는 제어부를 포함하고, 상기 제어부는 복수의 사용자 식별 문자열에서, 상기 판단 대상 문자열을 구성하는 적어도 하나의 부분 문자열이 출현하는 출현 빈도에 기초하여 문자열 빈도 데이터를 생성하고, 상기 복수의 사용자 식별 문자열 각각에 대응되는 패턴 문자열에서, 패턴 문자열을 구성하는 적어도 하나의 부분 패턴 문자열의 출현 빈도에 기초하여 패턴 문자열 빈도 데이터를 생성하고, 상기 판단 대상 문자열이 소정의 지정 조건을 만족하는지 여부를 포함하는 지정 조건 판단 데이터를 생성하고, 상기 문자열 빈도 데이터, 상기 패턴 문자열 빈도 데이터 및 상기 지정 조건 판단 데이터에 기초하여 상기 판단 대상 문자열의 무작위 생성 여부를 결정하고, 상기 패턴 문자열은 상기 판단 대상 문자열에 포함된 각 문자의 종류에 기초하여 상기 문자열로부터 생성되는 문자열일 수 있다.In the apparatus for determining whether a user identification character string to be determined according to an embodiment of the present invention is randomly generated, the apparatus includes a control unit, and the control unit configures the determination target character string from a plurality of user identification character strings. Character string frequency data is generated based on the frequency of occurrence of at least one sub-string of the pattern string, and in the pattern string corresponding to each of the plurality of user identification strings, the frequency of occurrence of at least one sub-pattern string constituting the pattern string is determined. Generates pattern string frequency data based on, and generates designation condition determination data including whether the determination target character string satisfies a predetermined designation condition, and generates the character string frequency data, the pattern character string frequency data, and the designation condition determination data It is determined whether or not the determination target character string is randomly generated based on, and the pattern character string may be a character string generated from the character string based on the type of each character included in the determination target character string.

본 발명에 따르면, 사용자 계정과 같은 사용자 식별 문자열이 컴퓨터와 같은 정보 처리 장치에 의해 무작위로 생성되었는지 여부를 정확하게 결정할 수 있고, 나아가 무작위로 생성된 사용자 식별 문자열을 이용한 다양한 불법적인 행위를 효과적으로 차단할 수 있다.According to the present invention, it is possible to accurately determine whether or not a user identification string such as a user account is randomly generated by an information processing device such as a computer, and furthermore, various illegal actions using the randomly generated user identification string can be effectively blocked. have.

또한 무작위로 생성되지 않았을 확률이 특별히 높은 사용자 식별 문자열을 사전에 필터링 함으로써 보다 높은 정확도로 사용자 식별 문자열의 무작위 생성 여부를 결정할 수 있다.In addition, it is possible to determine whether to randomly generate a user identification string with higher accuracy by filtering in advance a user identification string with a particularly high probability that it was not randomly generated.

도 1은 본 발명의 일 실시예에 따른 네트워크 환경의 예를 도시한 도면이다.
도 2 는 본 발명의 일 실시예에 있어서 사용자 단말(100) 및 서버(200)의 내부 구성을 설명하기 위한 블록도이다.
도 3a 및 도 3b는 본 발명의 일 실시예에 따른 인공 신경망을 설명하기 위한 도면이다.
도 4a 는 본 발명의 일 실시예에 따른 프로세서(212)가 문자열 빈도 데이터베이스(620)를 생성하는 과정을 설명하기 위한 도면이다.
도 4b 는 본 발명의 일 실시예에 따른 프로세서(212)가 패턴 문자열 빈도 데이터베이스(640)를 생성하는 과정을 설명하기 위한 도면이다.
도 5는 본 발명의 일 실시예에 따른 프로세서(212)가 판단 대상 사용자 식별 문자열(510)로부터 인공 신경망에 입력하기 위한 특징 데이터(560)를 생성하는 과정을 설명하기 위한 도면이다.
도 6은 본 발명의 일 실시예에 따른 프로세서(212)가 문자열(510-1) 'inwoo_roo_'로부터 인공 신경망에 입력하기 위한 특징 데이터(560-1)를 생성하는 과정을 예시적으로 설명하기 위한 도면이다.
도 7은 서버(200)가 학습된 인공 신경망을 이용하여 문자열의 무작위 생성 여부 판단 방법을 설명하기 위한 흐름도이다.
1 is a diagram illustrating an example of a network environment according to an embodiment of the present invention.
2 is a block diagram for explaining the internal configuration of the user terminal 100 and the server 200 according to an embodiment of the present invention.
3A and 3B are diagrams for explaining an artificial neural network according to an embodiment of the present invention.
4A is a diagram illustrating a process of generating a character string frequency database 620 by the processor 212 according to an embodiment of the present invention.
4B is a diagram illustrating a process of generating a pattern string frequency database 640 by the processor 212 according to an embodiment of the present invention.
FIG. 5 is a diagram illustrating a process of generating feature data 560 for input to an artificial neural network from a user identification string 510 to be determined by the processor 212 according to an embodiment of the present invention.
6 is an exemplary diagram illustrating a process of generating feature data 560-1 for input to an artificial neural network from a character string 510-1'inwoo_roo_' by the processor 212 according to an embodiment of the present invention. It is a drawing.
7 is a flowchart illustrating a method of determining whether a character string is randomly generated by using a learned artificial neural network by the server 200.

후술하는 본 발명에 대한 상세한 설명은, 본 발명이 실시될 수 있는 특정 실시예를 예시로서 도시하는 첨부 도면을 참조한다. 이러한 실시예는 당업자가 본 발명을 실시할 수 있기에 충분하도록 상세히 설명된다. 본 발명의 다양한 실시예는 서로 다르지만 상호 배타적일 필요는 없음이 이해되어야 한다. 예를 들어, 본 명세서에 기재되어 있는 특정 형상, 구조 및 특성은 본 발명의 정신과 범위를 벗어나지 않으면서 일 실시예로부터 다른 실시예로 변경되어 구현될 수 있다. 또한, 각각의 실시예 내의 개별 구성요소의 위치 또는 배치도 본 발명의 정신과 범위를 벗어나지 않으면서 변경될 수 있음이 이해되어야 한다. 따라서, 후술하는 상세한 설명은 한정적인 의미로서 행하여지는 것이 아니며, 본 발명의 범위는 특허청구범위의 청구항들이 청구하는 범위 및 그와 균등한 모든 범위를 포괄하는 것으로 받아들여져야 한다. 도면에서 유사한 참조부호는 여러 측면에 걸쳐서 동일하거나 유사한 구성요소를 나타낸다.DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS The detailed description of the present invention described below refers to the accompanying drawings, which illustrate specific embodiments in which the present invention may be practiced. These embodiments are described in detail sufficient to enable a person skilled in the art to practice the present invention. It should be understood that the various embodiments of the present invention are different from each other, but need not be mutually exclusive. For example, specific shapes, structures, and characteristics described in the present specification may be changed and implemented from one embodiment to another without departing from the spirit and scope of the present invention. In addition, it should be understood that the position or arrangement of individual elements in each embodiment may be changed without departing from the spirit and scope of the present invention. Accordingly, the detailed description to be described below is not made in a limiting sense, and the scope of the present invention should be taken as encompassing the scope claimed by the claims of the claims and all scopes equivalent thereto. Like reference numerals in the drawings indicate the same or similar elements over several aspects.

이하에서는, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자가 본 발명을 용이하게 실시할 수 있도록 하기 위하여, 본 발명의 여러 실시예에 관하여 첨부된 도면을 참조하여 상세히 설명한다.Hereinafter, various embodiments of the present invention will be described in detail with reference to the accompanying drawings in order to enable those of ordinary skill in the art to easily implement the present invention.

도 1은 본 발명의 일 실시예에 따른 네트워크 환경의 예를 도시한 도면이다.1 is a diagram illustrating an example of a network environment according to an embodiment of the present invention.

도 1의 네트워크 환경은 복수의 사용자 단말들(101, 102, 103, 104), 서버(200) 및 네트워크(300)를 포함하는 예를 나타내고 있다. 이러한 도 1은 발명의 설명을 위한 일례로 사용자 단말의 수나 서버의 수가 도 1과 같이 한정되는 것은 아니다.The network environment of FIG. 1 shows an example including a plurality of user terminals 101, 102, 103 and 104, a server 200, and a network 300. This FIG. 1 is an example for explaining the invention, and the number of user terminals or servers is not limited as shown in FIG. 1.

복수의 사용자 단말들(101, 102, 103, 104)은 사용자의 조작에 따라 무작위로 생성되었는지 여부를 판단하고자 하는 사용자 식별 문자열을 서버(200)에 전송하고, 서버(200)로부터 해당 사용자 식별 문자열의 무작위 생성 여부를 수신할 수 있다.The plurality of user terminals 101, 102, 103, 104 transmits a user identification string to be determined whether or not randomly generated according to a user's manipulation to the server 200, and the user identification string from the server 200 You can receive whether or not randomly generated.

본 발명에서 '사용자 식별 문자열'은 복수의 사용자를 식별하기 위해 사용되는 적어도 하나 이상의 문자로 이루어진 문자의 조합을 의미할 수 있다. 이와 같은 사용자 식별 문자열은 서비스 이용을 위한 회원 가입 과정에서, 사용자 입력하여 서버(200)로 전송한 것 일 수 있다. 가령 성명이 '홍길동'인 사용자는, 'gildong_03'과 같이 영문자, 특수문자 및 숫자를 포함하는 사용자 식별 문자열을 입력하여 서버(200)로 전송할 수 있다.In the present invention, the'user identification string' may mean a combination of characters including at least one character used to identify a plurality of users. Such a user identification string may be a user input and transmitted to the server 200 in the process of signing up for a service. For example, a user whose name is'Hong Gil-dong' may input a user identification string including English letters, special characters, and numbers, such as'gildong_03', and transmit it to the server 200.

한편 본 발명에서 사용자 식별 문자열이 '무작위로 생성'되는 것은, 다양한 종류의 정보처리장치가 임의의(또는 랜덤의) 문자들의 조합 및/또는 임의의 문자들의 순서로 사용자 식별 문자열을 생성하는 것을 의미할 수 있다. 예를 들어 'rk1-3q0n'와 같은 사용자 식별 문자열은 정보처리장치가 임의의 문자들의 조합 및/또는 순서로 생성한 사용자 식별 문자열 일 수 있다. Meanwhile, in the present invention, when a user identification string is'randomly generated', it means that various types of information processing apparatuses generate a user identification string in an arbitrary (or random) combination of characters and/or in an order of arbitrary characters. can do. For example, a user identification string such as'rk1-3q0n' may be a user identification string generated by the information processing apparatus in an arbitrary combination and/or order of characters.

복수의 사용자 단말들(101, 102, 103, 104)은 컴퓨터 장치로 구현되는 고정형 단말이거나 이동형 단말일 수 있다. 복수의 사용자 단말들(101, 102, 103, 104)의 예를 들면, 스마트폰, 휴대폰, 네비게이션, 컴퓨터, 노트북, 디지털방송용 단말, PDA(Personal Digital Assistants), PMP(Portable Multimedia Player), 테블릿 PC 등이 있다. The plurality of user terminals 101, 102, 103, and 104 may be a fixed terminal implemented as a computer device or a mobile terminal. Examples of the plurality of user terminals 101, 102, 103, 104 include smart phones, mobile phones, navigation, computers, notebook computers, digital broadcasting terminals, personal digital assistants (PDAs), portable multimedia players (PMPs), and tablets. PC, etc.

복수의 사용자 단말들(101, 102, 103, 104)은 무선 또는 유선 통신 방식을 이용하여 네트워크(300)를 통해 복수의 사용자 단말들(101, 102, 103, 104) 상호간에 및/또는 서버(200)와 통신할 수 있다.The plurality of user terminals 101, 102, 103, and 104 are connected to each other and/or the server (the plurality of user terminals 101, 102, 103, 104) through the network 300 using a wireless or wired communication method. 200).

한편 복수의 사용자 단말들(101, 102, 103, 104)의 통신 방식은 제한되지 않으며, 네트워크(300)가 포함할 수 있는 통신망(일례로, 이동통신망, 유선 인터넷, 무선 인터넷, 방송망)을 활용하는 통신 방식뿐만 아니라 기기들간의 근거리 무선 통신 역시 포함될 수 있다. Meanwhile, the communication method of the plurality of user terminals 101, 102, 103, 104 is not limited, and a communication network (for example, a mobile communication network, wired Internet, wireless Internet, broadcasting network) that the network 300 can include is used. In addition to the communication method, short-range wireless communication between devices may also be included.

예를 들어, 네트워크(300)는 PAN(Personal Area Network), LAN(Local Area Network), CAN(Campus Area Network), MAN(Metropolitan Area Network), WAN(Wide Area Network), BBN(Broad Band Network), 인터넷 등의 네트워크 중 하나 이상의 임의의 네트워크를 포함할 수 있다. For example, the network 300 includes a Personal Area Network (PAN), a Local Area Network (LAN), a Campus Area Network (CAN), a Metropolitan Area Network (MAN), a Wide Area Network (WAN), and a Broad Band Network (BBN). And any one or more of networks such as the Internet.

또한, 네트워크(300)는 버스 네트워크, 스타 네트워크, 링 네트워크, 메쉬 네트워크, 스타-버스 네트워크, 트리 또는 계층적(Hierarchical) 네트워크 등을 포함하는 네트워크 토폴로지 중 임의의 하나 이상을 포함할 수 있으나, 이에 제한되지 않는다.In addition, the network 300 may include any one or more of a network topology including a bus network, a star network, a ring network, a mesh network, a star-bus network, a tree or a hierarchical network, etc. Not limited.

이하에서는 설명의 편의를 위하여 복수의 사용자 단말들(101, 102, 103, 104)을 사용자 단말(100)로 명명하여 설명한다.Hereinafter, for convenience of description, a plurality of user terminals 101, 102, 103, and 104 will be referred to as user terminals 100 and described.

서버(200)는 사용자 식별 문자열이 무작위로 생성되었는지 여부를 판단할 수 있다. 이때 서버(200)는 전술한 사용자 단말(100)로부터 판단 대상 사용자 식별 문자열을 수신하여 해당 문자열에 대한 판단을 수행할 수도 있고, 메모리로부터 독출된 사용자 식별 문자열 및/또는 외부장치로부터 수신한 사용자 식별 문자열의 무작위 생성 여부를 판단할 수도 있다. 또한 서버(200)는 서비스의 관리자인 사용자의 사용자 단말(100)로부터 확인하고자 하는 사용자 식별 문자열을 수신하거나, 사용자 식별 문자열을 메모리로부터 독출하는 명령을 수신하여 해당 사용자 식별 문자열의 무작위 생성 여부를 판단할 수도 있다.The server 200 may determine whether a user identification character string is randomly generated. At this time, the server 200 may receive the user identification string to be determined from the above-described user terminal 100 and perform a determination on the corresponding string, and the user identification string read from the memory and/or the user identification received from an external device. It is also possible to determine whether or not a string is randomly generated. In addition, the server 200 receives a user identification string to be checked from the user terminal 100 of the user who is the administrator of the service, or receives a command to read the user identification string from the memory to determine whether the corresponding user identification string is randomly generated. You can also judge.

일 예시에서, 서버(200)는 사용자 식별 문자열이 무작위로 생성되었는지 여부를 판단하는 서비스를 제공하는 장치일 수 있다. In one example, the server 200 may be a device that provides a service that determines whether a user identification string is randomly generated.

다른 예시에서, 서버(200)는 사용자 식별 문자열의 판단과 별개의 서비스를 제공하는 장치로, 사용자의 회원가입 절차 등에서 사용자 식별 문자열이 무작위로 생성되었는지 여부를 판단하는 장치일 수도 있다. 가령 서버(200)는 웹툰과 같은 웹 콘텐츠를 제공하는 장치로, 서비스를 이용하기 위한 회원 가입 과정 또는 소정의 확인과정에서, 사용자가 입력한 사용자 식별 문자열이 무작위로 생성되었는지 여부를 판단하는 장치일 수 있다. 다만 이는 예시적인 것으로 본 발명의 사상이 이에 한정되는 것은 아니다.In another example, the server 200 is a device that provides a service that is separate from the determination of the user identification string, and may be a device that determines whether the user identification string is randomly generated during a user's membership registration procedure. For example, the server 200 is a device that provides web content such as a webtoon, and is a device that determines whether a user identification string entered by a user is randomly generated during a member sign-up process or a predetermined confirmation process for using a service. I can. However, this is merely an example and the spirit of the present invention is not limited thereto.

이와 같은 서버(200)는 네트워크(300)를 통하여 사용자 단말(100)에 명령, 코드, 파일, 콘텐츠, 서비스 등을 제공하는 컴퓨터 장치 또는 복수의 컴퓨터 장치들로 구현될 수 있다.Such a server 200 may be implemented as a computer device or a plurality of computer devices that provide commands, codes, files, contents, services, etc. to the user terminal 100 through the network 300.

도 2 는 본 발명의 일 실시예에 있어서 사용자 단말(100) 및 서버(200)의 내부 구성을 설명하기 위한 블록도이다.2 is a block diagram for explaining the internal configuration of the user terminal 100 and the server 200 according to an embodiment of the present invention.

사용자 단말(100)과 서버(200)는 메모리(111, 211), 프로세서(112, 212), 통신 모듈(113, 213) 그리고 입출력 인터페이스(114, 214)를 포함할 수 있다.The user terminal 100 and the server 200 may include memories 111 and 211, processors 112 and 212, communication modules 113 and 213, and input/output interfaces 114 and 214.

메모리(111, 211)는 컴퓨터에서 판독 가능한 기록 매체로서, RAM(Random Access Memory), ROM(Read Only Memory) 및 디스크 드라이브와 같은 비소명성 대용량 기록장치(Permanent Mass Storage Device)를 포함할 수 있다. The memories 111 and 211 are computer-readable recording media, and may include a random access memory (RAM), a read only memory (ROM), and a permanent mass storage device such as a disk drive.

또한, 메모리(111, 211)에는 운영체제, 적어도 하나의 프로그램 코드, 학습된 신경망 및 문자열 빈도 데이터베이스 등이 저장될 수 있다. 학습된 신경망에 문자열 빈도 데이터베이스에 대한 상세한 설명은 후술한다.In addition, the memories 111 and 211 may store an operating system, at least one program code, a learned neural network, and a string frequency database. A detailed description of the string frequency database in the learned neural network will be described later.

이러한 소프트웨어 구성요소들은 드라이브 메커니즘(Drive Mechanism)을 이용하여 메모리(111, 211)와는 별도의 컴퓨터에서 판독 가능한 기록 매체로부터 로딩될 수 있다. 이러한 별도의 컴퓨터에서 판독 가능한 기록 매체는 플로피 드라이브, 디스크, 테이프, DVD/CD-ROM 드라이브, 메모리 카드 등의 컴퓨터에서 판독 가능한 기록 매체를 포함할 수 있다. These software components may be loaded from a computer-readable recording medium separate from the memories 111 and 211 using a drive mechanism. Such a separate computer-readable recording medium may include a computer-readable recording medium such as a floppy drive, a disk, a tape, a DVD/CD-ROM drive, and a memory card.

다른 실시예에서 소프트웨어 구성요소들은 컴퓨터에서 판독 가능한 기록 매체가 아닌 통신 모듈(113, 213)을 통해 메모리(111, 211)에 로딩될 수도 있다. 예를 들어, 적어도 하나의 프로그램은 개발자들 또는 어플리케이션의 설치 파일을 배포하는 파일 배포 시스템(일례로 상술한 서버(200))이 네트워크(300)를 통해 제공하는 파일들에 의해 설치되는 프로그램에 기반하여 메모리(111, 211)에 로딩될 수 있다.In another embodiment, software components may be loaded into the memories 111 and 211 through the communication modules 113 and 213 rather than a computer-readable recording medium. For example, at least one program is based on a program installed by files provided by a file distribution system (for example, the server 200 described above) that distributes the installation files of developers or applications through the network 300 Thus, it can be loaded into the memories 111 and 211.

프로세서(112, 212)는 기본적인 산술, 로직 및 입출력 연산을 수행함으로써, 컴퓨터 프로그램의 명령을 처리하도록 구성될 수 있다. 명령은 메모리(111, 211) 또는 통신 모듈(113, 213)에 의해 프로세서(112, 212)로 제공될 수 있다. 예를 들어 프로세서(112, 212)는 메모리(111, 211)와 같은 기록 장치에 저장된 프로그램 코드에 따라 수신되는 명령을 실행하도록 구성될 수 있다.The processors 112 and 212 may be configured to process instructions of a computer program by performing basic arithmetic, logic, and input/output operations. Instructions may be provided to the processors 112 and 212 by the memories 111 and 211 or the communication modules 113 and 213. For example, the processors 112 and 212 may be configured to execute an instruction received according to a program code stored in a recording device such as the memories 111 and 211.

통신 모듈(113, 213)은 네트워크(300)를 통해 사용자 단말(100)과 서버(200)가 서로 통신하기 위한 기능을 제공할 수 있으며, 다른 사용자 단말(미도시) 또는 다른 서버(미도시)와 통신하기 위한 기능을 제공할 수 있다. 일례로, 사용자 단말(100)의 프로세서(112)가 메모리(111)와 같은 기록 장치에 저장된 프로그램 코드에 따라 생성한 요청이 통신 모듈(113)의 제어에 따라 네트워크(300)를 통해 서버(200)로 전달될 수 있다. 역으로, 서버(200) 프로세서(212)의 제어에 따라 제공되는 제어 신호나 명령, 콘텐츠, 파일 등이 통신 모듈(213)과 네트워크(300)를 거쳐 사용자 단말(100)의 통신 모듈(113)을 통해 사용자 단말(100)로 수신될 수 있다. The communication modules 113 and 213 may provide a function for the user terminal 100 and the server 200 to communicate with each other through the network 300, and other user terminals (not shown) or other servers (not shown). It can provide a function to communicate with. As an example, a request generated by the processor 112 of the user terminal 100 according to a program code stored in a recording device such as a memory 111 is sent to the server 200 through the network 300 under the control of the communication module 113. ) Can be delivered. Conversely, control signals, commands, contents, files, etc. provided under the control of the server 200 and the processor 212 are transmitted via the communication module 213 and the network 300 to the communication module 113 of the user terminal 100 It may be received by the user terminal 100 through.

입출력 인터페이스(114, 214)는 입출력 장치(115)와의 인터페이스를 위한 수단일 수 있다. 이때 입력 장치는 예를 들어 키보드 또는 마우스 등의 장치를, 그리고 출력 장치는 이미지를 표시하기 위한 디스플레이와 같은 장치를 포함할 수 있다. 다른 예로 입출력 인터페이스(114, 214)는 터치스크린과 같이 입력과 출력을 위한 기능이 하나로 통합된 장치와의 인터페이스를 위한 수단일 수도 있다.The input/output interfaces 114 and 214 may be means for interfacing with the input/output device 115. In this case, the input device may include a device such as a keyboard or a mouse, and the output device may include a device such as a display for displaying an image. As another example, the input/output interfaces 114 and 214 may be a means for interfacing with a device in which input and output functions are integrated into one, such as a touch screen.

또한, 다른 실시예들에서 사용자 단말(100) 및 서버(200)는 도 2 의 구성요소들보다 더 많은 구성요소들을 포함할 수도 있다. 그러나, 대부분의 종래기술적 구성요소들을 명확하게 도시할 필요성은 없다. 예를 들어, 사용자 단말(100)은 상술한 입출력 장치(115) 중 적어도 일부를 포함하도록 구현되거나 또는 트랜시버(Transceiver), GPS(Global Positioning System) 모듈, 카메라, 각종 센서, 데이터베이스 등과 같은 다른 구성요소들을 더 포함할 수도 있다.In addition, in other embodiments, the user terminal 100 and the server 200 may include more components than those of FIG. 2. However, there is no need to clearly show most of the prior art components. For example, the user terminal 100 may be implemented to include at least some of the input/output devices 115 described above, or other components such as a transceiver, a global positioning system (GPS) module, a camera, various sensors, and a database. May include more.

본 발명의 일 실시예에 따른 서버(200)의 프로세서(212)는 인공 신경망을 이용하여 사용자 식별 문자열이 무작위로 생성되었는지 여부를 판단할 수 있다.The processor 212 of the server 200 according to an embodiment of the present invention may determine whether a user identification string is randomly generated using an artificial neural network.

본 발명에서 '인공 신경망'은 사용자 식별 문자열이 무작위로 생성되었는지 여부가 표지(Label)된 적어도 하나의 학습 데이터에 기반하여 학습된 것으로, 입력된 사용자 식별 문자열이 무작위로 생성되었는지 여부에 대응되는 결과를 출력하도록 학습된 신경망일 수 있다. 이때 학습 데이터에는 문자열 빈도 데이터, 패턴 문자열 빈도 데이터 및 지정 조건 판단 데이터가 특징값으로 포함되어 인공 신경망에 입력될 수 있다.In the present invention, the'artificial neural network' is learned based on at least one learning data labeled whether or not the user identification string is randomly generated, and a result corresponding to whether the input user identification string is randomly generated. It may be a neural network that has been trained to output. In this case, the training data may include character string frequency data, pattern character string frequency data, and designation condition determination data as feature values and input to the artificial neural network.

따라서 인공 신경망은 복수의 사용자 식별 문자열에 대한 문자열 빈도 데이터, 패턴 문자열 빈도 데이터 및 지정 조건 판단 데이터와 사용자 식별 문자열이 무작위로 생성되었는지 여부간의 상관관계를 학습한 신경망일 수 있다. 이와 같은 인공 신경망은 머신 러닝(Machine Learning) 또는 딥러닝(Deep Learning) 기법에 의해 학습된 것 일 수 있다.Accordingly, the artificial neural network may be a neural network that learns a correlation between string frequency data, pattern string frequency data, and designation condition determination data for a plurality of user identification strings, and whether a user identification string is randomly generated. Such an artificial neural network may be learned by machine learning or deep learning.

도 3a 및 도 3b는 본 발명의 일 실시예에 따른 인공 신경망을 설명하기 위한 도면이다.3A and 3B are diagrams for explaining an artificial neural network according to an embodiment of the present invention.

본 발명의 일 실시예에서, 인공 신경망(400A)은 도 3a에 도시된 바와 같이 하나 이상의 인공 신경망(NN 1, NN 2, NN 3)을 포함할 수 있다. In an embodiment of the present invention, the artificial neural network 400A may include one or more artificial neural networks NN 1, NN 2 and NN 3 as shown in FIG. 3A.

인공 신경망(400A)은 하나 이상의 인공 신경망(NN 1, NN 2, NN 3) 각각에 특징 데이터(560)를 입력하고, 하나 이상의 인공 신경망(NN 1, NN 2, NN 3)각각의 출력을 소정의 방식(예를 들어 출력값의 평균)으로 처리하여 최종 결과(570)를 결정할 수 있다. The artificial neural network 400A inputs feature data 560 to each of one or more artificial neural networks (NN 1, NN 2, NN 3), and sets the output of each of one or more artificial neural networks (NN 1, NN 2, NN 3). The final result 570 may be determined by processing in the method of (for example, the average of the output values).

이때 하나 이상의 인공 신경망(NN 1, NN 2, NN 3)은 서로 다른 모델(Model)에 대응되는 신경망 일 수도 있다. 예를 들어 NN 1은 SVM(Support Vector Machine) 모델에 따른 신경망이고, NN 2는 kNN(k-Nearest Neighbors) 모델에 따른 신경망이고, NN 3은 선형 회기 모델에 따른 신경망일 수 있다. At this time, one or more artificial neural networks (NN 1, NN 2, NN 3) may be neural networks corresponding to different models. For example, NN 1 may be a neural network according to a Support Vector Machine (SVM) model, NN 2 may be a neural network according to a kNN (k-Nearest Neighbors) model, and NN 3 may be a neural network according to a linear regression model.

다만 이와 같은 신경망의 구성 및 종류는 예시적인 것으로 본 발명의 사상이 이에 한정되는 것은 아다. 따라서 학습 데이터를 이용하여 학습이 가능하고, 학습 결과에 기초하여 입력 특징에 대한 출력 결과를 생성하는 신경망이라면 하나 이상의 인공 신경망(NN 1, NN 2, NN 3)으로 제한 없이 사용될 수 있다.However, the configuration and type of such a neural network are exemplary, and the spirit of the present invention is not limited thereto. Therefore, if it is possible to learn using the training data, and a neural network that generates an output result for an input feature based on the training result, one or more artificial neural networks (NN 1, NN 2, NN 3) can be used without limitation.

본 발명의 다른 실시예에서, 인공 신경망(400B)은 도 3b에 도시된 바와 같이 하나의 인공 신경망(NN)을 포함할 수도 있다. 이러한 경우 인공 신경망(400B)은 하나의 인공 신경망(NN)에 특징 데이터(560)를 입력하고, 인공 신경망(NN)의 출력을 최종 결과(570)로 사용할 수 있다. 이때 하나의 인공 신경망(NN)은 도 3a에서 설명한 다양한 종류의 인공 신경망 중 어느 하나일 수 있다.In another embodiment of the present invention, the artificial neural network 400B may include one artificial neural network NN as shown in FIG. 3B. In this case, the artificial neural network 400B may input the feature data 560 to one artificial neural network NN and use the output of the artificial neural network NN as the final result 570. In this case, one artificial neural network NN may be any one of various types of artificial neural networks described in FIG. 3A.

본 발명의 일 실시예에 따른 프로세서(212)는 복수의 사용자 식별 문자열에서의 복수의 부분 문자열 각각의 출현 빈도를 누적하여 문자열 빈도 데이터베이스를 생성할 수 있다. 또한 이와 유사하게, 본 발명의 일 실시예에 따른 프로세서(212)는 복수의 사용자 식별 문자열 각각에 대응되는 패턴 문자열에서 복수의 부분 패턴 문자열 각각의 출현 빈도를 누적하여 패턴 문자열 빈도 데이터베이스를 생성할 수 있다.The processor 212 according to an embodiment of the present invention may generate a character string frequency database by accumulating the appearance frequencies of each of a plurality of substrings in a plurality of user identification character strings. Also, similarly, the processor 212 according to an embodiment of the present invention may generate a pattern string frequency database by accumulating the frequency of appearances of each of a plurality of partial pattern strings in a pattern string corresponding to each of a plurality of user identification strings. have.

도 4a 는 본 발명의 일 실시예에 따른 프로세서(212)가 문자열 빈도 데이터베이스(620)를 생성하는 과정을 설명하기 위한 도면이다. 도 4b 는 본 발명의 일 실시예에 따른 프로세서(212)가 패턴 문자열 빈도 데이터베이스(640)를 생성하는 과정을 설명하기 위한 도면이다. 4A is a diagram illustrating a process of generating a character string frequency database 620 by the processor 212 according to an embodiment of the present invention. 4B is a diagram illustrating a process of generating a pattern string frequency database 640 by the processor 212 according to an embodiment of the present invention.

본 발명에서 '사용자 식별 문자열'은 전술한 바와 같이 사용자를 식별하기 위해 사용되는 적어도 하나 이상의 문자로 이루어진 문자들의 조합을 의미하는 것일 수 있다.In the present invention, the'user identification string' may mean a combination of characters consisting of at least one character used to identify a user as described above.

한편 본 발명에서 '부분 문자열'은 원본 문자열의 연속하는 일 부분만을 포함하는 문자열을 의미할 수 있다. 가령 'inwoo_roo_'와 같은 사용자 식별 문자열에 대한 부분 문자열은 'inw', 'nwo', inwo', 'o_roo_', 'nwoo_roo'일 수 있다. 이때 각 부분 문자열이 포함하는 문자의 수는 부분 문자열 생성 조건에 따라 달라질 수 있다. 또한 하나의 원본 문자열로부터 생성되는 부분 문자열들의 적어도 일부분은 중첩될 수 있다. 가령 전술한 예시에서, 부분 문자열 'inw'와 'nwo'는 'nw'가 중첩되는 것일 수 있다.Meanwhile, in the present invention, the'substring' may mean a character string including only one continuous part of the original character string. For example, a substring for a user identification string such as'inwoo_roo_' may be'inw','nwo', inwo','o_roo_', and'nwoo_roo'. In this case, the number of characters included in each substring may vary according to the substring generation condition. Also, at least some of the substrings generated from one original string may overlap. For example, in the above example, the substrings'inw' and'nwo' may overlap with'nw'.

본 발명에서 '부분 문자열의 출현 빈도'는 판단의 풀(Pool)이 되는 하나 이상의 문자열에서, 각각의 부분 문자열이 몇 번 포함되는지를 의미하는 것 일 수 있다. 가령 판단의 풀이 되는 문자열이 'inwoo_roo_'와 같은 하나의 사용자 식별 문자열만 포함하는 경우, 부분문자열 'inw'는 1회, 부분문자열 'now'는 1회, 부분문자열 'woo'는 1회, 부분문자열 'oo_'는 2회, 그리고 부분문자열 'o_r'은 1회 출현되는 것일 수 있다. 이때 판단의 풀이 되는 하나 이상의 문자열은 상술한 예시에서와 같이 하나의 문자열을 포함할 수도 있고, 복수의 문자열을 포함할 수도 있다. In the present invention, the'frequency of occurrence of substrings' may mean how many times each substring is included in one or more character strings that become a pool of judgment. For example, if the string used for judgment contains only one user identification string such as'inwoo_roo_', the substring'inw' is once, the substring'now' is once, the substring'woo' is once, and the partial The string'oo_' may appear twice, and the substring'o_r' may appear once. At this time, the one or more character strings used as a pool of determination may include one character string or a plurality of character strings, as in the above-described example.

본 발명의 일 실시예에 따른 프로세서(212)는 복수의 사용자 식별 문자열(이때 복수의 사용자 식별 문자열은 무작위로 생성되지 않는 것으로 판단되는 하나 이상의 문자열들임)(610) 각각을 부분 문자열로 분할하고, 분할된 부분 문자열들의 포함 횟수(또는 출현 횟수)를 누적하여 문자열 빈도 데이터베이스(620)를 생성할 수 있다. 가령 프로세서(212)는 복수의 사용자 식별 문자열(610)에서 부분 문자열인 'ang'가 출현되는 횟수를 누적하여 빈도 데이터베이스(620)에 'ang'를 74749회 출현으로 저장할 수 있다.The processor 212 according to an embodiment of the present invention divides each of a plurality of user identification strings (in this case, the plurality of user identification strings are one or more strings determined not to be randomly generated) 610 into sub-strings, The string frequency database 620 may be generated by accumulating the number of times (or the number of appearances) of the divided substrings. For example, the processor 212 may accumulate the number of occurrences of the substring'ang' in the plurality of user identification strings 610 and store the'ang' as 74749 occurrences in the frequency database 620.

본 발명에서 사용자 식별 문자열에 대응되는 '패턴 문자열'은 사용자 식별 문자열을 구성하는 각 문자의 종류에 기초하여 사용자 식별 문자열을 패턴화 한 문자열을 의미할 수 있다. 본 발명의 일 실시예에 따른 프로세서(212)는 사용자 식별 문자열에 포함되는 제1 문자가 제1 종류의 문자인 경우, 패턴 문자열의 제1 문자의 위치와 대응되는 위치의 문자를 제1 종류에 대응되는 문자로 결정하는 방식으로 생성할 수 있다.In the present invention, the'pattern string' corresponding to the user identification string may mean a string in which the user identification string is patterned based on the type of each character constituting the user identification string. In the case where the first character included in the user identification character string is a character of the first type, the processor 212 according to an embodiment of the present invention stores the character at a position corresponding to the position of the first character of the pattern character string to the first type. It can be created in a way that is determined by the corresponding character.

가령, 알파벳을 '0', 숫자를 '1', 특수문자를 '2'로 패턴화 하는 경우, 프로세서(212)는 'inwoo_roo_'와 같은 사용자 식별 문자열로부터 '0000020002'와 같은 패턴 문자열을 생성할 수 있다.For example, in the case of patterning an alphabet as '0', a number as '1', and a special character as '2', the processor 212 may generate a pattern string such as '0000020002' from a user identification string such as'inwoo_roo_'. I can.

본 발명의 일 실시예에 따른 프로세서(212)는 복수의 사용자 식별 문자열(610) 각각에 대응되는 패턴 문자열(630)을 생성할 수 있다. 또한 본 발명의 일 실시예에 따른 프로세서(212)는 생성된 복수의 패턴 문자열(630) 각각을 부분 패턴 문자열로 분할하고, 부분 패턴 문자열들의 포함 횟수(또는 출현 횟수)를 누적하여 패턴 문자열 빈도 데이터베이스(640)를 생성할 수 있다. 가령 프로세서(212)는 복수의 패턴 문자열(630)에서 부분 패턴 문자열인 '000'이 출현되는 횟수를 누적하여 빈도 데이터베이스(640)에 '000'을 235649회 출현으로 저장할 수 있다. The processor 212 according to an embodiment of the present invention may generate a pattern string 630 corresponding to each of the plurality of user identification strings 610. In addition, the processor 212 according to an embodiment of the present invention divides each of the generated pattern strings 630 into partial pattern strings, accumulates the number of inclusions (or appearances) of the partial pattern strings to provide a pattern string frequency database. 640 can be created. For example, the processor 212 may accumulate the number of occurrences of the partial pattern string '000' in the plurality of pattern strings 630 and store '000' as 235649 occurrences in the frequency database 640.

이하에서는 인공 신경망이 도 3a 및 도 3b에서 설명한 구조 중 어느 하나의 구조를 가지며, 전술한 학습 데이터(사용자 식별 문자열에 대한 문자열 빈도 데이터, 사용자 식별 문자열에 대한 패턴 문자열 빈도 데이터 및 사용자 식별 문자열에 대한 지정 조건 판단 데이터를 특징값으로 포함하고, 사용자 식별 문자열이 무작위로 생성되었는지 여부가 표지(Label)된 데이터)에 기초하여 학습되어있음을 전제로 설명한다. 또한 문자열 빈도 데이터베이스(620) 및 패턴 문자열 빈도 데이터베이스(640)가 도 4a 및 도 4b에서 설명한 과정에 따라 생성되어 있음을 전제로, 판단 대상 사용자 식별 문자열이 무작위로 생성되었는지 여부를 판단하는 내용을 중심으로 설명한다.Hereinafter, the artificial neural network has one of the structures described in FIGS. 3A and 3B, and the above-described training data (string frequency data for a user identification string, pattern string frequency data for a user identification string, and a user identification string) It is assumed that designation condition determination data is included as a feature value, and whether or not a user identification character string is randomly generated is learned based on labeled data). In addition, on the premise that the character string frequency database 620 and the pattern character string frequency database 640 are generated according to the process described in FIGS. 4A and 4B, the content of determining whether the user identification character string to be determined is randomly generated is focused. It will be explained as.

도 5는 본 발명의 일 실시예에 따른 프로세서(212)가 판단 대상 사용자 식별 문자열(510)로부터 특징 데이터(560)를 생성하는 과정을 설명하기 위한 도면이다. 도 6은 본 발명의 일 실시예에 따른 프로세서(212)가 문자열(510-1) 'inwoo_roo_'로부터 특징 데이터(560-1)를 생성하는 과정을 예시적으로 설명하기 위한 도면이다. 이하에서는 도 5 및 도 6을 함께 참조하여 설명한다. 한편 생성된 특징 데이터(560, 560-1)는 판단 대상 사용자 식별 문자열(510, 510-1)의 무작위 생성 여부를 판단하는 근거로써 사용될 수 있다. 이에 대한 상세한 설명은 후술한다.5 is a diagram illustrating a process of generating feature data 560 from a user identification string 510 to be determined by the processor 212 according to an embodiment of the present invention. FIG. 6 is a diagram illustrating a process of generating feature data 560-1 from the character string 510-1'inwoo_roo_' by the processor 212 according to an embodiment of the present invention. Hereinafter, it will be described with reference to FIGS. 5 and 6 together. Meanwhile, the generated feature data 560 and 560-1 may be used as a basis for determining whether to randomly generate the user identification strings 510 and 510-1 to be determined. A detailed description of this will be described later.

본 발명의 일 실시예에 따른 프로세서(212)는 판단 대상 문자열(510, 510-1)을 구성하는 적어도 하나의 부분 문자열 각각이 복수의 사용자 식별 문자열에 출현하는 출현 빈도에 기초하여 문자열 빈도 데이터(520, 520-1)를 생성할 수 있다. The processor 212 according to an embodiment of the present invention provides character string frequency data ( 520, 520-1) can be created.

이때 본 발명의 일 실시예에 따른 프로세서(212)는 두 가지 이상의 길이의 부분 문자열을 이용하여 문자열 빈도 데이터(520, 520-1)를 생성할 수 있다. 가령 프로세서(212)는 N개(N은 자연수, 예를 들어 3)의 연속하는 문자를 포함하는 하나 이상의 제1 부분 문자열 각각이 복수의 사용자 식별 문자열에 포함되어있는 빈도를 포함하는 제1 빈도 데이터를 생성할 수 있다. In this case, the processor 212 according to an embodiment of the present invention may generate character string frequency data 520 and 520-1 by using partial character strings of two or more lengths. For example, the processor 212 is the first frequency data including the frequency in which each of one or more first substrings including N (N is a natural number, for example 3) consecutive characters are included in the plurality of user identification strings. Can be created.

또한 프로세서(212)는 M개(M은 자연수로 N과 상이한 수, 예를 들어 4)의 연속하는 문자를 포함하는 하나 이상의 제2 부분 문자열 각각이 복수의 사용자 식별 문자열에 포함되어있는 빈도를 포함하는 제2 빈도 데이터를 생성할 수 있다. 이때 프로세서(212)는 도 4a에서 설명한 문자열 빈도 데이터베이스(620)를 참조하여, 각 부분 문자열의 빈도를 결정할 수 있다.In addition, the processor 212 includes the frequency in which each of one or more second substrings including M (M is a natural number and a number different from N, for example 4) consecutive characters are included in the plurality of user identification strings. The second frequency data may be generated. In this case, the processor 212 may determine the frequency of each substring by referring to the character string frequency database 620 described in FIG. 4A.

보다 구체적으로, 프로세서(212)는 문자열 빈도 데이터베이스(620)에서 판단 대상 문자열(510, 510-1)을 구성하는 적어도 하나의 부분 문자열 각각의 출현 빈도를 확인할 수 있다. 가령 프로세서(212)가 3개의 연속하는 문자를 포함하는 제1 부분 문자열에 대한 제1 빈도 데이터를 생성하는 경우, 프로세서(212)는 문자열 빈도 데이터베이스(620)에서 판단 대상 문자열(510-1)인 'inwoo_roo_'의 부분 문자열인 'woo', 'oo_', 'inw', 'roo' 등의 출현 빈도를 확인할 수 있다.More specifically, the processor 212 may check the frequency of occurrence of each of at least one substring constituting the determination target character strings 510 and 510-1 in the character string frequency database 620. For example, when the processor 212 generates first frequency data for a first substring including three consecutive characters, the processor 212 is the character string to be determined 510-1 in the character string frequency database 620. You can check the frequency of appearance of'woo','oo_','inw', and'roo', which are substrings of'inwoo_roo_'.

프로세서(212)는 확인된 부분 문자열 각각의 출현 빈도에 기초하여 수학식에 1 따라 판단 대상 문자열(510, 510-1)의 엔트로피를 산출할 수 있다.The processor 212 may calculate the entropy of the determination target character strings 510 and 510-1 according to Equation 1 based on the frequency of occurrence of each of the identified substrings.

Figure 112019048740399-pat00001
Figure 112019048740399-pat00001

이때 n은 판단 대상 문자열(510, 510-1)에 대한 소정의 길이를 갖는(예를 들어 3개의 문자로 이루어진) 부분 문자열의 총 개수이고, pi는 문자열 빈도 데이터베이스(620)에서 확인된 i번째 부분 문자열의 출현 빈도를 의미할 수 있다. 엔트로피 H는 판단 대상 문자열(510, 510-1)이 무작위로 생성될 가능성에 비례하여 높은 수치로 산출될 수 있다.At this time, n is the total number of substrings having a predetermined length (for example, consisting of 3 characters) with respect to the character strings to be determined (510, 510-1), and pi is the i-th identified in the character string frequency database 620 It can mean the frequency of occurrence of substrings. The entropy H may be calculated as a high value in proportion to the probability that the character strings 510 and 510-1 to be determined are randomly generated.

프로세서(212)는 상술한 과정에 의해서 확인된 부분 문자열 각각의 출현 빈도 및 산출된 엔트로피 H를 포함하는 문자열 빈도 데이터(520, 520-1)를 생성할 수 있다. 생성된 문자열 빈도 데이터(520, 520-1)는 판단 대상 문자열(510, 510-1)의 무작위 생성 여부를 결정하는 근거로써 사용될 수 있다. 가령 생성된 문자열 빈도 데이터(520, 520-1)는 인공 신경망에 입력하기 위한 특징 데이터(560, 560-1)의 생성에 사용될 수 있다.The processor 212 may generate character string frequency data 520 and 520-1 including the frequency of occurrence of each of the substrings identified by the above-described process and the calculated entropy H. The generated string frequency data 520 and 520-1 may be used as a basis for determining whether to randomly generate the character strings 510 and 510-1 to be determined. For example, the generated string frequency data 520 and 520-1 may be used to generate feature data 560 and 560-1 for input to an artificial neural network.

한편 프로세서(212)는 상술한 문자열 빈도 데이터(520, 520-1)를 부분 문자열의 종류 별로 생성할 수 있다. 가령 프로세서(212)는 N개의 연속하는 문자를 포함하는 하나 이상의 제1 부분 문자열 각각이 복수의 사용자 식별 문자열에 포함되어있는 빈도를 포함하는 제1 빈도 데이터를 생성하고, 이와 별개로 M개의 연속하는 문자를 포함하는 하나 이상의 제2 부분 문자열 각각이 복수의 사용자 식별 문자열에 포함되어있는 빈도를 포함하는 제2 빈도 데이터를 생성할 수 있다. Meanwhile, the processor 212 may generate the above-described string frequency data 520 and 520-1 for each type of sub-string. For example, the processor 212 generates first frequency data including a frequency in which each of one or more first substrings including N consecutive characters is included in the plurality of user identification strings, and separate M consecutive characters Second frequency data including frequencies in which each of the one or more second substrings including characters is included in the plurality of user identification strings may be generated.

본 발명의 다른 실시예에서, 상술한 빈도 데이터(520, 520-1)에는 더 많은 종류의 부분 문자열의 빈도 데이터가 포함될 수도 있고, 더 적은 종류의 빈도 데이터를 포함될 수도 있다. 예를 들어, 빈도 데이터(520, 520-1)는 하나의 종류의 부분 문자열(즉 N개의 연속하는 문자를 포함하는 부분 문자열)에 대한 빈도 데이터 만을 포함할 수도 있고, 세 종류 또는 다섯 종류의 부분 문자열에 대한 빈도 데이터를 포함할 수도 있다. 다만 이는 예시적인 것으로, 빈도 데이터(520, 520-1)에 포함 되는 부분 문자열 빈도 데이터의 종류의 수는 이에 한정되는 것이 아니다.In another embodiment of the present invention, the frequency data 520 and 520-1 described above may include frequency data of more types of substrings or less types of frequency data. For example, the frequency data 520, 520-1 may include only frequency data for one kind of substring (that is, a substring including N consecutive characters), or three kinds or five kinds of substrings. You can also include frequency data for the string. However, this is exemplary, and the number of types of substring frequency data included in the frequency data 520 and 520-1 is not limited thereto.

문자열 빈도 데이터(520, 520-1)를 생성하는 과정과 유사하게, 본 발명의 일 실시예에 따른 프로세서(212)는 복수의 사용자 식별 문자열 각각에 대응되는 패턴 문자열에서, 패턴 문자열(530, 530-1)을 구성하는 적어도 하나의 부분 패턴 문자열의 출현 빈도에 기초하여 패턴 문자열 빈도 데이터(540, 540-1)를 생성할 수 있다. 이때 패턴 문자열(530, 530-1)은 판단 대상 문자열(510, 510-1)로부터 생성된 문자열일 수 있다.Similar to the process of generating the character string frequency data 520 and 520-1, the processor 212 according to an embodiment of the present invention uses the pattern character strings 530 and 530 from the pattern character strings corresponding to each of the plurality of user identification character strings. Pattern string frequency data 540 and 540-1 may be generated based on the frequency of appearance of at least one partial pattern string constituting -1). In this case, the pattern strings 530 and 530-1 may be strings generated from the determination target strings 510 and 510-1.

본 발명의 일 실시예에 따른 프로세서(212)는 두 가지 이상의 길이의 부분 패턴 문자열을 이용하여 문자열 빈도 데이터(540, 540-1)를 생성할 수 있다. 가령 프로세서(212)는 K개(K는 자연수, 예를 들어 3)의 연속하는 문자를 포함하는 하나 이상의 제3 부분 문자열 각각이, 복수의 사용자 식별 문자열 각각에 대응되는 패턴 문자열에 포함되어있는 빈도를 포함하는 제3 빈도 데이터를 생성할 수 있다. The processor 212 according to an embodiment of the present invention may generate character string frequency data 540 and 540-1 by using partial pattern character strings of two or more lengths. For example, the processor 212 is the frequency in which each of one or more third substrings including K (K is a natural number, for example 3) consecutive characters is included in the pattern string corresponding to each of the plurality of user identification strings. Third frequency data including a may be generated.

또한 프로세서(212)는 L개(L은 자연수로 K와 상이한 수, 예를 들어 4)의 연속하는 문자를 포함하는 하나 이상의 제4 부분 문자열 각각이, 복수의 사용자 식별 문자열 각각에 대응되는 패턴 문자열에 포함되어있는 빈도를 포함하는 제4 빈도 데이터를 생성할 수 있다. 이때 프로세서(212)는 도 4b에서 설명한 패턴 문자열 빈도 데이터베이스(640)를 참조하여, 각 부분 패턴 문자열의 빈도를 결정할 수 있다.In addition, the processor 212 is a pattern string corresponding to each of the plurality of user identification strings, each of one or more fourth substrings including L (L is a natural number and a number different from K, for example, 4) consecutive characters The fourth frequency data including the frequency included in may be generated. In this case, the processor 212 may determine the frequency of each partial pattern character string by referring to the pattern character string frequency database 640 described in FIG. 4B.

보다 구체적으로, 프로세서(212)는 패턴 문자열 빈도 데이터베이스(640)에서 패턴 문자열(530, 530-1)을 구성하는 적어도 하나의 부분 패턴 문자열 각각의 출현 빈도를 확인할 수 있다. 가령 프로세서(212)가 3개의 연속하는 문자를 포함하는 제3 부분 문자열에 대한 제3 빈도 데이터를 생성하는 경우, 프로세서(212)는 패턴 문자열 빈도 데이터베이스(640)에서 패턴 문자열(530, 530-1)인 '0000020002'의 부분 문자열인 '000', '002', '200' 등의 출현 빈도를 확인할 수 있다.More specifically, the processor 212 may check the frequency of appearance of each of at least one partial pattern character string constituting the pattern character strings 530 and 530-1 in the pattern character string frequency database 640. For example, when the processor 212 generates third frequency data for a third substring including three consecutive characters, the processor 212 is configured to generate the pattern strings 530 and 530-1 in the pattern string frequency database 640. You can check the frequency of appearances of '000', '002', and '200', which are substrings of '0000020002', which are ).

또한 프로세서(212)는 확인된 부분 패턴 문자열 각각의 출현 빈도에 기초하여 상술한 수학식에 1 따라 패턴 문자열(530, 530-1)의 엔트로피를 산출할 수 있다.In addition, the processor 212 may calculate the entropy of the pattern strings 530 and 530-1 according to Equation 1 above based on the frequency of occurrence of each of the identified partial pattern strings.

프로세서(212)는 상술한 과정에 의해서 확인된 패턴 부분 문자열 각각의 출현 빈도 및 산출된 엔트로피 H를 포함하는 문자열 빈도 데이터(540, 540-1)를 생성할 수 있다. 생성된 문자열 빈도 데이터(540, 540-1)는 판단 대상 문자열(510, 510-1)의 무작위 생성 여부를 결정하는 근거로써 사용될 수 있다. 가령 생성된 문자열 빈도 데이터(540, 540-1)는 인공 신경망에 입력하기 위한 특징 데이터(560, 560-1)의 생성에 사용될 수 있다.The processor 212 may generate character string frequency data 540 and 540-1 including the frequency of appearance of each of the pattern substrings identified by the above-described process and the calculated entropy H. The generated string frequency data 540 and 540-1 may be used as a basis for determining whether to randomly generate the character strings 510 and 510-1 to be determined. For example, the generated string frequency data 540 and 540-1 may be used to generate feature data 560 and 560-1 for input to an artificial neural network.

한편 프로세서(212)는 상술한 패턴 문자열 빈도 데이터(540, 540-1)를 부분 패턴 문자열의 종류(즉 길이) 별로 생성할 수 있으며, 이에 대한 상세한 설명은 판단 대상 문자열(510, 510-1)로부터 문자열 빈도 데이터(520, 520-1)를 생성하는 과정과 동일하므로 생략한다. Meanwhile, the processor 212 may generate the above-described pattern string frequency data 540 and 540-1 for each type (ie, length) of the partial pattern string. It is omitted because it is the same as the process of generating the character string frequency data 520 and 520-1 from.

본 발명의 일 실시예에 따른 프로세서(212)는 판단 대상 문자열(510, 510-1)이 소정의 지정 조건을 만족하는지 여부를 포함하는 지정 조건 판단 데이터(550, 550-1)를 생성할 수 있다.The processor 212 according to an embodiment of the present invention may generate designation condition determination data 550 and 550-1 including whether or not the determination target character strings 510 and 510-1 satisfy a predetermined designation condition. have.

가령 프로세서(212)는 판단 대상 문자열(510, 510-1)에 특정 종류의 문자가 소정의 조건을 만족하도록 포함(가령 판단 대상 문자열(510, 510-1)의 맨 앞 또는 맨 뒤에 숫자가 위치하는 조건을 만족하도록 포함)되어있는지를 판단하고, 해당 조건을 만족하는 경우 사용자에 의해 생성된 것임을 나타내는 판단 데이터를 생성할 수 있다.For example, the processor 212 includes a specific type of character in the determination target character string 510, 510-1 to satisfy a predetermined condition (for example, a number is located at the front or the end of the determination target character string 510, 510-1). It is possible to determine whether the condition is included to satisfy the condition), and if the condition is satisfied, determination data indicating that it is generated by the user may be generated.

또한 프로세서(212)는 판단 대상 문자열(510, 510-1)에서 동일한 부분 문자열이 2번 이상 반복되는지를 판단하고, 해당 조건을 만족하는 경우 사용자에 의해 생성된 것임을 나타내는 판단 데이터를 생성할 수 있다.In addition, the processor 212 may determine whether the same substring is repeated two or more times in the determination target character strings 510 and 510-1, and may generate determination data indicating that it is generated by a user when the corresponding condition is satisfied. .

또한 프로세서(212)는 판단 대상 문자열(510, 510-1)이 문자열 빈도 데이터베이스(620)에서 빈도 수가 소정의 임계 빈도 이상인 부분 문자열을 포함하는지 여부를 판단하고, 포함하는 경우 사용자에 의해 생성된 것임을 나타내는 판단 데이터를 생성할 수 있다.In addition, the processor 212 determines whether or not the character string to be determined 510, 510-1 contains a substring whose frequency number is equal to or greater than a predetermined threshold frequency in the character string frequency database 620, and if it includes, indicates that it is generated by the user It is possible to generate the indicated judgment data.

또한 프로세서(212)는 판단 대상 문자열(510, 510-1)을 소정의 규칙에 따라 구분한 문자집합에 포함되는 문자의 수의 최대값이, 판단 대상 문자열(510, 510-1)에 포함되는 전체 문자의 수의 절반 이하인지를 판단하고, 절반 이하인 경우 사용자에 의해 생성된 것 임을 나타내는 판단 데이터를 생성할 수 있다.In addition, the processor 212 determines the maximum value of the number of characters included in the character set that divides the determination target character strings 510 and 510-1 according to a predetermined rule. It is possible to determine whether it is less than half of the total number of characters, and if it is less than half, it is possible to generate judgment data indicating that it is generated by the user.

그 외에 프로세서(212)는 판단 대상 문자열(510, 510-1)에 포함되는 전체 문자의 수, 판단 대상 문자열(510, 510-1)에 서로 다른 특수문자가 둘 이상 포함되어 있는지 여부 등에 기초하여 지정 조건 판단 데이터(550, 550-1)를 생성할 수 있다. 생성된 지정 조건 판단 데이터(550, 550-1)는 전술한 특징 데이터들과 마찬가지로, 판단 대상 문자열(510, 510-1)의 무작위 생성 여부를 결정하는 근거로써 사용될 수 있다. 가령 생성된 지정 조건 판단 데이터(550, 550-1)는 인공 신경망에 입력하기 위한 특징 데이터(560, 560-1)의 생성에 사용될 수 있다.In addition, the processor 212 is based on the total number of characters included in the determination target character strings 510 and 510-1, whether or not two or more different special characters are included in the determination target character strings 510 and 510-1. Designation condition determination data 550 and 550-1 may be generated. The generated designation condition determination data 550 and 550-1 may be used as a basis for determining whether to randomly generate the determination target character strings 510 and 510-1, similar to the above-described feature data. For example, the generated designation condition determination data 550 and 550-1 may be used to generate feature data 560 and 560-1 for input to an artificial neural network.

본 발명의 일 실시예에 따른 프로세서(212)는 판단 대상 문자열(510, 510-1)이 하나 이상의 지정 조건을 모두 만족하는 경우, 판단 대상 문자열(510, 510-1)이 무작위로 생성되지 않은 것으로 결정할 수 있다. 이러한 경우 프로세서(212)는 판단 대상 문자열(510, 510-1)에 대해 후술하는 무작위 생성 여부를 판단하는 과정을 생략할 수 있다.Processor 212 according to an embodiment of the present invention, if the determination target character string (510, 510-1) satisfies all of one or more specified conditions, the determination target character string (510, 510-1) is not randomly generated Can be determined. In this case, the processor 212 may omit the process of determining whether to randomly generate the character strings 510 and 510-1 to be determined, which will be described later.

이와 같이 본 발명은 무작위로 생성되지 않았을 확률이 특별히 높은 사용자 식별 문자열을 사전에 필터링 함으로써 보다 높은 정확도로 사용자 식별 문자열의 무작위 생성 여부를 결정할 수 있다.As described above, the present invention can determine whether to generate a user identification string randomly with higher accuracy by filtering in advance a user identification string having a particularly high probability that it is not randomly generated.

본 발명의 일 실시예에 따른 프로세서(212)는 상술한 과정에 의해 생성된 문자열 빈도 데이터(520, 520-1), 패턴 문자열 빈도 데이터(540, 540-1) 및 지정 조건 판단 데이터(550, 550-1)에 기초하여, 판단 대상 문자열(510, 510-1)의 무작위 생성 여부를 결정할 수 있다. The processor 212 according to an embodiment of the present invention includes character string frequency data 520 and 520-1 generated by the above-described process, pattern character string frequency data 540 and 540-1, and designation condition determination data 550. 550-1), it may be determined whether to randomly generate the character strings 510 and 510-1 to be determined.

가령 프로세서(212)는 후술하는 바와 같이 학습된 인공 신경망을 이용하여 판단 대상 문자열(510, 510-1)의 무작위 생성 여부를 결정할 수도 있고, 소정의 분류기(Classifier)를 이용하여 판단 대상 문자열(510, 510-1)의 무작위 생성 여부를 결정할 수도 있다. 다만 이는 예시적인 것으로, 입력된 특징 데이터에 대해서 무작위 생성 여부를 출력하는 수단이라면 판단 대상 문자열(510, 510-1)의 무작위 생성 여부를 결정하는데 제한 없이 사용될 수 있다.For example, the processor 212 may determine whether or not to randomly generate the determination target character strings 510 and 510-1 using a learned artificial neural network, as described later, or use a predetermined classifier to determine whether the determination target character string 510 , 510-1) may be randomly generated. However, this is only an example, and any means for outputting whether or not to generate the input feature data randomly may be used without limitation to determine whether to randomly generate the character strings 510 and 510-1 to be determined.

이하에서는 설명의 편의를 위하여, 프로세서(212)가 학습된 신경망을 이용하여 판단 대상 문자열(510, 510-1)의 무작위 생성 여부를 결정하는 예시를 중심으로 설명한다.Hereinafter, for convenience of explanation, an example in which the processor 212 determines whether to randomly generate the determination target character strings 510 and 510-1 using a learned neural network will be described.

본 발명의 일 실시예에 따른 프로세서(212)는 상술한 과정에 의해 생성된 문자열 빈도 데이터(520, 520-1), 패턴 문자열 빈도 데이터(540, 540-1) 및 지정 조건 판단 데이터(550, 550-1)로부터 인공 신경망에 입력하기 위한 특징 데이터(560, 560-1)를 생성할 수 있다.The processor 212 according to an embodiment of the present invention includes character string frequency data 520 and 520-1 generated by the above-described process, pattern character string frequency data 540 and 540-1, and designation condition determination data 550. From 550-1), feature data 560 and 560-1 for input to the artificial neural network may be generated.

이때 프로세서(212)는 다양한 방식으로 특징 데이터(560, 560-1)를 생성할 수 있다. 가령 프로세서(212)는 문자열 빈도 데이터(520, 520-1), 패턴 문자열 빈도 데이터(540, 540-1) 및 지정 조건 판단 데이터(550, 550-1) 각각을 성분으로 하는 벡터(Vector)를 생성하는 방식으로 특징 데이터(560, 560-1)를 생성할 수 있다. 다만 이는 예시적인 것으로, 특징 데이터(560, 560-1)의 구체적인 생성 방식은 인공 신경망의 구조 및/또는 종류에 따라 달라질 수 있다.In this case, the processor 212 may generate the feature data 560 and 560-1 in various ways. For example, the processor 212 may generate a vector using each of the character string frequency data 520 and 520-1, the pattern character string frequency data 540 and 540-1, and the specified condition determination data 550 and 550-1 as components. The feature data 560 and 560-1 may be generated in a generating manner. However, this is merely an example, and the specific generation method of the feature data 560 and 560-1 may vary depending on the structure and/or type of the artificial neural network.

본 발명의 일 실시예에 따른 프로세서(212)는 인공신경망을 이용하여 특징 데이터(560, 560-1)로부터 판단 대상 문자열(510, 510-1)의 무작위 생성 여부를 결정할 수 있다.The processor 212 according to an embodiment of the present invention may determine whether to randomly generate the character strings 510 and 510-1 to be determined from the feature data 560 and 560-1 using an artificial neural network.

전술한 바와 같이 인공 신경망은 문자열 빈도 데이터(520, 520-1), 패턴 문자열 빈도 데이터(540, 540-1) 및 지정 조건 판단 데이터(550, 550-1)와 사용자 식별 문자열이 무작위로 생성되었는지 여부간의 상관관계를 학습한 신경망일 수 있다.As described above, the artificial neural network determines whether character string frequency data (520, 520-1), pattern string frequency data (540, 540-1), designation condition determination data (550, 550-1), and user identification character strings are randomly generated. It may be a neural network that has learned the correlation between whether or not.

따라서 인공 신경망에 문자열 빈도 데이터(520, 520-1), 패턴 문자열 빈도 데이터(540, 540-1) 및 지정 조건 판단 데이터(550, 550-1)를 포함하는 특징 데이터(560, 560-1)를 입력하면, 인공 신경망은 입력에 대한 응답으로 판단 대상 문자열(510, 510-1)이 무작위로 생성되었는지 여부를 출력할 수 있다.Therefore, feature data (560, 560-1) including character string frequency data (520, 520-1), pattern string frequency data (540, 540-1), and designated condition determination data (550, 550-1) in the artificial neural network When is input, the artificial neural network may output whether or not the character strings 510 and 510-1 to be determined are randomly generated in response to the input.

본 발명의 일 실시예에서, 인공 신경망은 벡터의 형태로 판단 대상 문자열(510, 510-1)이 무작위로 생성되었는지 여부를 출력할 수 있다. 가령 인공 신경망은 {0.82156, 0.17844}와 같은 형태로 판단 대상 문자열(510, 510-1)의 무작위 생성 여부를 출력할 수 있다. 이때 벡터의 첫 번째 성분은 판단 대상 문자열(510, 510-1)이 무작위로 생성되지 않았을 확률을 의미하고, 벡터의 두 번째 성분은 판단 대상 문자열(510, 510-1)이 무작위로 생성되었을 확률을 의미할 수 있다. 다만 이는 예시적인 것으로 본 발명의 사상이 이에 한정되는 것은 아니다.In an embodiment of the present invention, the artificial neural network may output whether or not the character strings 510 and 510-1 to be determined are randomly generated in the form of a vector. For example, the artificial neural network may output whether or not the character strings to be determined 510, 510-1 are randomly generated in the form of {0.82156, 0.17844}. At this time, the first component of the vector means the probability that the character string to be judged (510, 510-1) has not been randomly generated, and the second component of the vector is the probability that the character string to be judged (510, 510-1) has been randomly generated. Can mean However, this is merely an example and the spirit of the present invention is not limited thereto.

선택적 실시예에서, 인공 신경망에 입력되는 특징 데이터(560, 560-1)는 문자열 빈도 데이터(520, 520-1), 패턴 문자열 빈도 데이터(540, 540-1) 및 지정 조건 판단 데이터(550, 550-1) 중 일부만을 포함할 수 있다. 가령 특징 데이터(560, 560-1)는 문자열 빈도 데이터(520, 520-1)만 포함할 수 있고, 문자열 빈도 데이터(520, 520-1) 및 패턴 문자열 빈도 데이터(540, 540-1)만 포함할 수도 있고, 문자열 빈도 데이터(520, 520-1) 및 지정 조건 판단 데이터(550, 550-1)만 포함할 수도 있다. 물론 이러한 경우 인공 신경망은 각각의 특징 데이터에 적합한 형태로 미리 학습될 수 있다.In an optional embodiment, the feature data 560 and 560-1 input to the artificial neural network include character string frequency data 520 and 520-1, pattern character string frequency data 540 and 540-1, and designation condition determination data 550, 550-1) may include only some of them. For example, the feature data 560 and 560-1 may include only string frequency data 520 and 520-1, and only string frequency data 520 and 520-1 and pattern string frequency data 540 and 540-1. It may include, or may include only character string frequency data 520 and 520-1 and designation condition determination data 550 and 550-1. Of course, in this case, the artificial neural network can be pre-trained in a form suitable for each feature data.

이로써 본원 발명은 사용자 식별 문자열이 무작위로 생성되었는지 여부를 보다 정확하게 판단할 수 있고, 나아가 무작위로 생성된 사용자 식별 문자열을 이용한 다양한 불법적인 행위를 효과적으로 차단할 수 있다.Accordingly, the present invention can more accurately determine whether or not the user identification character string is randomly generated, and furthermore, it is possible to effectively block various illegal actions using the randomly generated user identification character string.

도 7은 서버(200)가 학습된 인공 신경망을 이용하여 문자열의 무작위 생성 여부 판단 방법을 설명하기 위한 흐름도이다. 이하에서는 도 1 내지 도 6을 함께 참조하여 설명하되, 도 1 내지 도 6에서 설명한 내용과 중복되는 내용의 설명은 생략한다.7 is a flowchart illustrating a method of determining whether a character string is randomly generated by using a learned artificial neural network by the server 200. Hereinafter, description will be made with reference to FIGS. 1 to 6 together, but descriptions of content overlapping with those described in FIGS. 1 to 6 will be omitted.

본 발명의 일 실시예에 따른 서버(200)는 복수의 사용자 식별 문자열에서의 복수의 부분 문자열 각각의 출현 빈도를 누적하여 문자열 빈도 데이터베이스를 생성할 수 있다. 또한 서버(200)는 복수의 사용자 식별 문자열 각각에 대응되는 패턴 문자열에서 복수의 부분 패턴 문자열 각각의 출현 빈도를 누적하여 패턴 문자열 빈도 데이터베이스를 생성할 수 있다.(S71)The server 200 according to an embodiment of the present invention may generate a string frequency database by accumulating the frequency of appearances of each of a plurality of substrings in a plurality of user identification strings. In addition, the server 200 may generate a pattern string frequency database by accumulating the appearance frequencies of each of a plurality of partial pattern strings in a pattern string corresponding to each of the plurality of user identification strings (S71).

본 발명에서 '사용자 식별 문자열'은 전술한 바와 같이 사용자를 식별하기 위해 사용되는 적어도 하나 이상의 문자로 이루어진 문자들의 조합을 의미하는 것일 수 있다.In the present invention, the'user identification string' may mean a combination of characters consisting of at least one character used to identify a user as described above.

한편 본 발명에서 '부분 문자열'은 원본 문자열의 연속하는 일 부분만을 포함하는 문자열을 의미할 수 있다. 가령 'inwoo_roo_'와 같은 사용자 식별 문자열에 대한 부분 문자열은 'inw', 'nwo', inwo', 'o_roo_', 'nwoo_roo'일 수 있다. 이때 각 부분 문자열이 포함하는 문자의 수는 부분 문자열 생성 조건에 따라 달라질 수 있다. 또한 하나의 원본 문자열로부터 생성되는 부분 문자열들의 적어도 일부분은 중첩될 수 있다. 가령 전술한 예시에서, 부분 문자열 'inw'와 'nwo'는 'nw'가 중첩되는 것일 수 있다.Meanwhile, in the present invention, the'substring' may mean a character string including only one continuous part of the original character string. For example, a substring for a user identification string such as'inwoo_roo_' may be'inw','nwo', inwo','o_roo_', and'nwoo_roo'. In this case, the number of characters included in each substring may vary according to the substring generation condition. Also, at least some of the substrings generated from one original string may overlap. For example, in the above example, the substrings'inw' and'nwo' may overlap with'nw'.

본 발명에서 '부분 문자열의 출현 빈도'는 판단의 풀(Pool)이 되는 하나 이상의 문자열에서, 각각의 부분 문자열이 몇 번 포함되는지를 의미하는 것 일 수 있다. 가령 판단의 풀이 되는 문자열이 'inwoo_roo_'와 같은 하나의 사용자 식별 문자열만 포함하는 경우, 부분문자열 'inw'는 1회, 부분문자열 'now'는 1회, 부분문자열 'woo'는 1회, 부분문자열 'oo_'는 2회, 그리고 부분문자열 'o_r'은 1회 출현되는 것일 수 있다. 이때 판단의 풀이 되는 하나 이상의 문자열은 상술한 예시에서와 같이 하나의 문자열을 포함할 수도 있고, 복수의 문자열을 포함할 수도 있다. In the present invention, the'frequency of occurrence of substrings' may mean how many times each substring is included in one or more character strings that become a pool of judgment. For example, if the string used for judgment contains only one user identification string such as'inwoo_roo_', the substring'inw' is once, the substring'now' is once, the substring'woo' is once, and the partial The string'oo_' may appear twice, and the substring'o_r' may appear once. At this time, the one or more character strings used as a pool of determination may include one character string or a plurality of character strings, as in the above-described example.

본 발명의 일 실시예에 따른 서버(200)는 복수의 사용자 식별 문자열(이때 복수의 사용자 식별 문자열은 무작위로 생성되지 않는 것으로 판단되는 하나 이상의 문자열들임)(610) 각각을 부분 문자열로 분할하고, 분할된 부분 문자열들의 포함 횟수(또는 출현 횟수)를 누적하여 문자열 빈도 데이터베이스(620)를 생성할 수 있다. 가령 서버(200)는 복수의 사용자 식별 문자열(610)에서 부분 문자열인 'ang'가 출현되는 횟수를 누적하여 빈도 데이터베이스(620)에 'ang'를 74749회 출현으로 저장할 수 있다.The server 200 according to an embodiment of the present invention divides each of a plurality of user identification strings (in this case, the plurality of user identification strings are one or more strings determined not to be randomly generated) 610 into sub-strings, The string frequency database 620 may be generated by accumulating the number of times (or the number of appearances) of the divided substrings. For example, the server 200 may accumulate the number of occurrences of the substring'ang' in the plurality of user identification strings 610 and store the'ang' in the frequency database 620 as 74749 occurrences.

본 발명에서 사용자 식별 문자열에 대응되는 '패턴 문자열'은 사용자 식별 문자열을 구성하는 각 문자의 종류에 기초하여 사용자 식별 문자열을 패턴화 한 문자열을 의미할 수 있다. 본 발명의 일 실시예에 따른 서버(200)는 사용자 식별 문자열에 포함되는 제1 문자가 제1 종류의 문자인 경우, 패턴 문자열의 제1 문자의 위치와 대응되는 위치의 문자를 제1 종류에 대응되는 문자로 결정하는 방식으로 생성할 수 있다.In the present invention, the'pattern string' corresponding to the user identification string may mean a string in which the user identification string is patterned based on the type of each character constituting the user identification string. When the first character included in the user identification character string is a character of the first type, the server 200 according to an embodiment of the present invention stores the character at a position corresponding to the position of the first character of the pattern character string to the first type. It can be created in a way that is determined by the corresponding character.

가령, 알파벳을 '0', 숫자를 '1', 특수문자를 '2'로 패턴화 하는 경우, 서버(200)는 'inwoo_roo_'와 같은 사용자 식별 문자열로부터 '0000020002'와 같은 패턴 문자열을 생성할 수 있다.For example, in the case of patterning an alphabet as '0', a number as '1', and a special character as '2', the server 200 generates a pattern string such as '0000020002' from a user identification string such as'inwoo_roo_'. I can.

본 발명의 일 실시예에 따른 서버(200)는 복수의 사용자 식별 문자열(610) 각각에 대응되는 패턴 문자열(630)을 생성할 수 있다. 또한 본 발명의 일 실시예에 따른 서버(200)는 생성된 복수의 패턴 문자열(630) 각각을 부분 패턴 문자열로 분할하고, 부분 패턴 문자열들의 포함 횟수(또는 출현 횟수)를 누적하여 패턴 문자열 빈도 데이터베이스(640)를 생성할 수 있다. 가령 서버(200)는 복수의 패턴 문자열(630)에서 부분 패턴 문자열인 '000'이 출현되는 횟수를 누적하여 빈도 데이터베이스(640)에 '000'을 235649회 출현으로 저장할 수 있다. The server 200 according to an embodiment of the present invention may generate a pattern string 630 corresponding to each of the plurality of user identification strings 610. In addition, the server 200 according to an embodiment of the present invention divides each of the generated pattern strings 630 into partial pattern strings, accumulates the number of inclusions (or appearances) of the partial pattern strings, 640 can be created. For example, the server 200 may accumulate the number of occurrences of the partial pattern string '000' in the plurality of pattern strings 630 and store '000' as 235649 occurrences in the frequency database 640.

본 발명의 일 실시예에 따른 서버(200)는 복수의 학습 데이터에 기초하여 사용자 식별 문자열이 무작위로 생성되었는지 여부를 판단하는 인공 신경망을 학습시킬 수 있다.(S72)The server 200 according to an embodiment of the present invention may train an artificial neural network that determines whether a user identification string is randomly generated based on a plurality of training data (S72).

본 발명에서 '인공 신경망'은 사용자 식별 문자열이 무작위로 생성되었는지 여부가 표지(Label)된 적어도 하나의 학습 데이터에 기반하여 학습된 것으로, 입력된 사용자 식별 문자열이 무작위로 생성되었는지 여부에 대응되는 결과를 출력하도록 학습된 신경망일 수 있다. 이때 학습 데이터에는 문자열 빈도 데이터, 패턴 문자열 빈도 데이터 및 지정 조건 판단 데이터가 특징값으로 포함되어 인공 신경망에 입력될 수 있다.In the present invention, the'artificial neural network' is learned based on at least one learning data labeled whether or not the user identification string is randomly generated, and a result corresponding to whether the input user identification string is randomly generated. It may be a neural network that has been trained to output. In this case, the training data may include character string frequency data, pattern character string frequency data, and designation condition determination data as feature values and input to the artificial neural network.

따라서 인공 신경망은 복수의 사용자 식별 문자열에 대한 문자열 빈도 데이터, 패턴 문자열 빈도 데이터 및 지정 조건 판단 데이터와 사용자 식별 문자열이 무작위로 생성되었는지 여부간의 상관관계를 학습한 신경망일 수 있다. 이와 같은 인공 신경망은 머신 러닝(Machine Learning) 또는 딥러닝(Deep Learning) 기법에 의해 학습된 것 일 수 있다.Accordingly, the artificial neural network may be a neural network that learns a correlation between string frequency data, pattern string frequency data, and designation condition determination data for a plurality of user identification strings, and whether a user identification string is randomly generated. Such an artificial neural network may be learned by machine learning or deep learning.

본 발명의 일 실시예에서, 인공 신경망(400A)은 도 3a에 도시된 바와 같이 하나 이상의 인공 신경망(NN 1, NN 2, NN 3)을 포함할 수 있다. In an embodiment of the present invention, the artificial neural network 400A may include one or more artificial neural networks NN 1, NN 2 and NN 3 as shown in FIG. 3A.

인공 신경망(400A)은 하나 이상의 인공 신경망(NN 1, NN 2, NN 3) 각각에 특징 데이터(560)를 입력하고, 하나 이상의 인공 신경망(NN 1, NN 2, NN 3)각각의 출력을 소정의 방식(예를 들어 출력값의 평균)으로 처리하여 최종 결과(570)를 결정할 수 있다. The artificial neural network 400A inputs feature data 560 to each of one or more artificial neural networks (NN 1, NN 2, NN 3), and sets the output of each of one or more artificial neural networks (NN 1, NN 2, NN 3). The final result 570 may be determined by processing in the method of (for example, the average of the output values).

이때 하나 이상의 인공 신경망(NN 1, NN 2, NN 3)은 서로 다른 모델(Model)에 대응되는 신경망 일 수도 있다. 예를 들어 NN 1은 SVM(Support Vector Machine) 모델에 따른 신경망이고, NN 2는 kNN(k-Nearest Neighbors) 모델에 따른 신경망이고, NN 3은 선형 회기 모델에 따른 신경망일 수 있다. At this time, one or more artificial neural networks (NN 1, NN 2, NN 3) may be neural networks corresponding to different models. For example, NN 1 may be a neural network according to a Support Vector Machine (SVM) model, NN 2 may be a neural network according to a kNN (k-Nearest Neighbors) model, and NN 3 may be a neural network according to a linear regression model.

다만 이와 같은 신경망의 구성 및 종류는 예시적인 것으로 본 발명의 사상이 이에 한정되는 것은 아다. 따라서 학습 데이터를 이용하여 학습이 가능하고, 학습 결과에 기초하여 입력 특징에 대한 출력 결과를 생성하는 신경망이라면 하나 이상의 인공 신경망(NN 1, NN 2, NN 3)으로 제한 없이 사용될 수 있다.However, the configuration and type of such a neural network are exemplary, and the spirit of the present invention is not limited thereto. Therefore, if it is possible to learn using the training data, and a neural network that generates an output result for an input feature based on the training result, one or more artificial neural networks (NN 1, NN 2, NN 3) can be used without limitation.

본 발명의 다른 실시예에서, 인공 신경망(400B)은 도 3b에 도시된 바와 같이 하나의 인공 신경망(NN)을 포함할 수도 있다. 이러한 경우 인공 신경망(400B)은 하나의 인공 신경망(NN)에 특징 데이터(560)를 입력하고, 인공 신경망(NN)의 출력을 최종 결과(570)로 사용할 수 있다. 이때 하나의 인공 신경망(NN)은 도 3a에서 설명한 다양한 종류의 인공 신경망 중 어느 하나일 수 있다.In another embodiment of the present invention, the artificial neural network 400B may include one artificial neural network NN as shown in FIG. 3B. In this case, the artificial neural network 400B may input the feature data 560 to one artificial neural network NN and use the output of the artificial neural network NN as the final result 570. In this case, one artificial neural network NN may be any one of various types of artificial neural networks described in FIG. 3A.

본 발명의 일 실시예에 따른 서버(200)는 판단 대상 문자열(510, 510-1)을 구성하는 적어도 하나의 부분 문자열 각각이 복수의 사용자 식별 문자열에 출현하는 출현 빈도에 기초하여 문자열 빈도 데이터(520, 520-1)를 생성할 수 있다.(S73)The server 200 according to an embodiment of the present invention provides character string frequency data ( 520, 520-1) can be generated (S73)

이때 본 발명의 일 실시예에 따른 서버(200)는 두 가지 이상의 길이의 부분 문자열을 이용하여 문자열 빈도 데이터(520, 520-1)를 생성할 수 있다. 가령 서버(200)는 N개(N은 자연수, 예를 들어 3)의 연속하는 문자를 포함하는 하나 이상의 제1 부분 문자열 각각이 복수의 사용자 식별 문자열에 포함되어있는 빈도를 포함하는 제1 빈도 데이터를 생성할 수 있다. In this case, the server 200 according to an embodiment of the present invention may generate character string frequency data 520 and 520-1 by using partial character strings of two or more lengths. For example, the server 200 includes first frequency data including the frequency in which each of one or more first substrings including N (N is a natural number, for example 3) consecutive characters are included in a plurality of user identification strings. Can be created.

또한 서버(200)는 M개(M은 자연수로 N과 상이한 수, 예를 들어 4)의 연속하는 문자를 포함하는 하나 이상의 제2 부분 문자열 각각이 복수의 사용자 식별 문자열에 포함되어있는 빈도를 포함하는 제2 빈도 데이터를 생성할 수 있다. 이때 서버(200)는 도 4a에서 설명한 문자열 빈도 데이터베이스(620)를 참조하여, 각 부분 문자열의 빈도를 결정할 수 있다.In addition, the server 200 includes the frequency in which each of the one or more second substrings including M (M is a natural number and a number different from N, for example 4) consecutive characters are included in the plurality of user identification strings. The second frequency data may be generated. In this case, the server 200 may determine the frequency of each substring by referring to the character string frequency database 620 described in FIG. 4A.

보다 구체적으로, 서버(200)는 문자열 빈도 데이터베이스(620)에서 판단 대상 문자열(510, 510-1)을 구성하는 적어도 하나의 부분 문자열 각각의 출현 빈도를 확인할 수 있다. 가령 서버(200)가 3개의 연속하는 문자를 포함하는 제1 부분 문자열에 대한 제1 빈도 데이터를 생성하는 경우, 서버(200)는 문자열 빈도 데이터베이스(620)에서 판단 대상 문자열(510-1)인 'inwoo_roo_'의 부분 문자열인 'woo', 'oo_', 'inw', 'roo' 등의 출현 빈도를 확인할 수 있다.More specifically, the server 200 may check the appearance frequency of each of at least one substring constituting the determination target character strings 510 and 510-1 in the character string frequency database 620. For example, when the server 200 generates first frequency data for a first substring including three consecutive characters, the server 200 is the character string to be determined 510-1 in the character string frequency database 620. You can check the frequency of appearance of'woo','oo_','inw', and'roo', which are substrings of'inwoo_roo_'.

서버(200)는 확인된 부분 문자열 각각의 출현 빈도에 기초하여 수학식에 2 따라 판단 대상 문자열(510, 510-1)의 엔트로피를 산출할 수 있다.The server 200 may calculate the entropy of the determination target character strings 510 and 510-1 according to Equation 2 based on the frequency of occurrence of each of the identified sub character strings.

Figure 112019048740399-pat00002
Figure 112019048740399-pat00002

이때 n은 판단 대상 문자열(510, 510-1)에 대한 소정의 길이를 갖는(예를 들어 3개의 문자로 이루어진) 부분 문자열의 총 개수이고, pi는 문자열 빈도 데이터베이스(620)에서 확인된 i번째 부분 문자열의 출현 빈도를 의미할 수 있다. 엔트로피 H는 판단 대상 문자열(510, 510-1)이 무작위로 생성될 가능성에 비례하여 높은 수치로 산출될 수 있다.At this time, n is the total number of substrings having a predetermined length (for example, consisting of 3 characters) with respect to the character strings to be determined (510, 510-1), and pi is the i-th identified in the character string frequency database 620 It can mean the frequency of occurrence of substrings. The entropy H may be calculated as a high value in proportion to the probability that the character strings 510 and 510-1 to be determined are randomly generated.

서버(200)는 상술한 과정에 의해서 확인된 부분 문자열 각각의 출현 빈도 및 산출된 엔트로피 H를 포함하는 문자열 빈도 데이터(520, 520-1)를 생성할 수 있다. 생성된 문자열 빈도 데이터(520, 520-1)는 인공 신경망에 입력하기 위한 특징 데이터(560, 560-1)의 생성에 사용될 수 있다.The server 200 may generate character string frequency data 520 and 520-1 including the frequency of occurrence of each of the substrings identified by the above-described process and the calculated entropy H. The generated string frequency data 520 and 520-1 may be used to generate feature data 560 and 560-1 for input to an artificial neural network.

한편 서버(200)는 상술한 문자열 빈도 데이터(520, 520-1)를 부분 문자열의 종류 별로 생성할 수 있다. 가령 서버(200)는 N개의 연속하는 문자를 포함하는 하나 이상의 제1 부분 문자열 각각이 복수의 사용자 식별 문자열에 포함되어있는 빈도를 포함하는 제1 빈도 데이터를 생성하고, 이와 별개로 M개의 연속하는 문자를 포함하는 하나 이상의 제2 부분 문자열 각각이 복수의 사용자 식별 문자열에 포함되어있는 빈도를 포함하는 제2 빈도 데이터를 생성할 수 있다. 부분 문자열의 종류 별로 생성된 빈도 데이터는 인공 신경망에 서로 구별되는 특징 데이터로써 입력될 수 있다.Meanwhile, the server 200 may generate the above-described string frequency data 520 and 520-1 for each type of substring. For example, the server 200 generates first frequency data including a frequency in which each of one or more first substrings including N consecutive characters is included in a plurality of user identification strings, and separately M consecutive Second frequency data including frequencies in which each of the one or more second substrings including characters is included in the plurality of user identification strings may be generated. Frequency data generated for each type of substring may be input to an artificial neural network as distinguished feature data.

본 발명의 일 실시예에 따른 서버(200)는 복수의 사용자 식별 문자열 각각에 대응되는 패턴 문자열에서, 패턴 문자열(530, 530-1)을 구성하는 적어도 하나의 부분 패턴 문자열의 출현 빈도에 기초하여 패턴 문자열 빈도 데이터(540, 540-1)를 생성할 수 있다.(S77) 이때 패턴 문자열(530, 530-1)은 판단 대상 문자열(510, 510-1)로부터 생성된 문자열일 수 있다.The server 200 according to an embodiment of the present invention is based on the frequency of appearance of at least one partial pattern string constituting the pattern strings 530 and 530-1 in the pattern strings corresponding to each of the plurality of user identification strings. The pattern character string frequency data 540 and 540-1 may be generated (S77). At this time, the pattern character strings 530 and 530-1 may be a character string generated from the determination target character strings 510 and 510-1.

본 발명의 일 실시예에 따른 서버(200)는 두 가지 이상의 길이의 부분 패턴 문자열을 이용하여 문자열 빈도 데이터(540, 540-1)를 생성할 수 있다. 가령 서버(200)는 K개(K는 자연수, 예를 들어 3)의 연속하는 문자를 포함하는 하나 이상의 제3 부분 문자열 각각이, 복수의 사용자 식별 문자열 각각에 대응되는 패턴 문자열에 포함되어있는 빈도를 포함하는 제3 빈도 데이터를 생성할 수 있다. The server 200 according to an embodiment of the present invention may generate character string frequency data 540 and 540-1 by using partial pattern character strings of two or more lengths. For example, the server 200 has a frequency in which each of one or more third substrings including K (K is a natural number, for example 3) consecutive characters is included in the pattern string corresponding to each of the plurality of user identification strings. Third frequency data including a may be generated.

또한 서버(200)는 L개(L은 자연수로 K와 상이한 수, 예를 들어 4)의 연속하는 문자를 포함하는 하나 이상의 제4 부분 문자열 각각이, 복수의 사용자 식별 문자열 각각에 대응되는 패턴 문자열에 포함되어있는 빈도를 포함하는 제4 빈도 데이터를 생성할 수 있다. 이때 서버(200)는 도 4b에서 설명한 패턴 문자열 빈도 데이터베이스(640)를 참조하여, 각 부분 패턴 문자열의 빈도를 결정할 수 있다.In addition, the server 200 is a pattern string corresponding to each of the plurality of user identification strings each of one or more fourth substrings including L (L is a natural number and a number different from K, for example, 4) consecutive characters The fourth frequency data including the frequency included in may be generated. In this case, the server 200 may determine the frequency of each partial pattern character string by referring to the pattern character string frequency database 640 described in FIG. 4B.

보다 구체적으로, 서버(200)는 패턴 문자열 빈도 데이터베이스(640)에서 패턴 문자열(530, 530-1)을 구성하는 적어도 하나의 부분 패턴 문자열 각각의 출현 빈도를 확인할 수 있다. 가령 서버(200)가 3개의 연속하는 문자를 포함하는 제3 부분 문자열에 대한 제3 빈도 데이터를 생성하는 경우, 서버(200)는 패턴 문자열 빈도 데이터베이스(640)에서 패턴 문자열(530, 530-1)인 '0000020002'의 부분 문자열인 '000', '002', '200' 등의 출현 빈도를 확인할 수 있다.More specifically, the server 200 may check the appearance frequency of each of at least one partial pattern string constituting the pattern strings 530 and 530-1 in the pattern string frequency database 640. For example, when the server 200 generates third frequency data for a third substring including three consecutive characters, the server 200 uses the pattern strings 530 and 530-1 in the pattern string frequency database 640. You can check the frequency of appearances of '000', '002', and '200', which are substrings of '0000020002', which are ).

또한 서버(200)는 확인된 부분 패턴 문자열 각각의 출현 빈도에 기초하여 상술한 수학식에 1 따라 패턴 문자열(530, 530-1)의 엔트로피를 산출할 수 있다.In addition, the server 200 may calculate the entropy of the pattern character strings 530 and 530-1 according to Equation 1 above based on the frequency of appearance of each of the identified partial pattern character strings.

서버(200)는 상술한 과정에 의해서 확인된 패턴 부분 문자열 각각의 출현 빈도 및 산출된 엔트로피 H를 포함하는 문자열 빈도 데이터(540, 540-1)를 생성할 수 있다. 생성된 문자열 빈도 데이터(540, 540-1)는 인공 신경망에 입력하기 위한 특징 데이터(560, 560-1)의 생성에 사용될 수 있다.The server 200 may generate character string frequency data 540 and 540-1 including the frequency of occurrence of each of the pattern substrings identified by the above-described process and the calculated entropy H. The generated string frequency data 540 and 540-1 may be used to generate feature data 560 and 560-1 for input to an artificial neural network.

한편 서버(200)는 상술한 패턴 문자열 빈도 데이터(540, 540-1)를 부분 패턴 문자열의 종류(즉 길이) 별로 생성할 수 있으며, 이에 대한 상세한 설명은 판단 대상 문자열(510, 510-1)로부터 문자열 빈도 데이터(520, 520-1)를 생성하는 과정과 동일하므로 생략한다. 부분 패턴 문자열의 종류 별로 생성된 빈도 데이터도 인공 신경망에 서로 구별되는 특징 데이터로써 입력될 수 있다.Meanwhile, the server 200 may generate the above-described pattern string frequency data 540 and 540-1 for each type (ie, length) of the partial pattern string, and a detailed description of this can be found in the determination target strings 510 and 510-1. It is omitted because it is the same as the process of generating the character string frequency data 520 and 520-1 from Frequency data generated for each type of partial pattern string may also be input to the artificial neural network as distinguished feature data.

본 발명의 일 실시예에 따른 서버(200)는 판단 대상 문자열(510, 510-1)이 소정의 지정 조건을 만족하는지 여부를 포함하는 지정 조건 판단 데이터(550, 550-1)를 생성할 수 있다.(S75)The server 200 according to an embodiment of the present invention may generate designation condition determination data 550 and 550-1 including whether or not the determination target character strings 510 and 510-1 satisfy a predetermined designation condition. Yes. (S75)

가령 서버(200)는 판단 대상 문자열(510, 510-1)에 특정 종류의 문자가 소정의 조건을 만족하도록 포함(가령 판단 대상 문자열(510, 510-1)의 맨 앞 또는 맨 뒤에 숫자가 위치하는 조건을 만족하도록 포함)되어있는지를 판단하고, 해당 조건을 만족하는 경우 사용자에 의해 생성된 것임을 나타내는 판단 데이터를 생성할 수 있다.For example, the server 200 includes a specific type of character in the determination target character string 510, 510-1 to satisfy a predetermined condition (for example, a number is located at the front or the end of the determination target character string 510, 510-1). It is possible to determine whether the condition is included to satisfy the condition), and if the condition is satisfied, determination data indicating that it is generated by the user may be generated.

또한 서버(200)는 판단 대상 문자열(510, 510-1)에서 동일한 부분 문자열이 2번 이상 반복되는지를 판단하고, 해당 조건을 만족하는 경우 사용자에 의해 생성된 것임을 나타내는 판단 데이터를 생성할 수 있다.In addition, the server 200 may determine whether the same substring is repeated two or more times in the determination target character strings 510 and 510-1, and may generate determination data indicating that it is generated by a user when a corresponding condition is satisfied. .

또한 서버(200)는 판단 대상 문자열(510, 510-1)이 문자열 빈도 데이터베이스(620)에서 빈도 수가 소정의 임계 빈도 이상인 부분 문자열을 포함하는지 여부를 판단하고, 포함하는 경우 사용자에 의해 생성된 것임을 나타내는 판단 데이터를 생성할 수 있다.In addition, the server 200 determines whether or not the character string to be determined 510, 510-1 includes a substring whose frequency number is greater than or equal to a predetermined threshold frequency in the character string frequency database 620, and if it contains It is possible to generate the indicated judgment data.

또한 서버(200)는 판단 대상 문자열(510, 510-1)을 소정의 규칙에 따라 구분한 문자집합에 포함되는 문자의 수의 최대값이, 판단 대상 문자열(510, 510-1)에 포함되는 전체 문자의 수의 절반 이하인지를 판단하고, 절반 이하인 경우 사용자에 의해 생성된 것 임을 나타내는 판단 데이터를 생성할 수 있다.In addition, the server 200 determines the maximum value of the number of characters included in the character set divided according to a predetermined rule for the character strings 510 and 510-1 to be determined. It is possible to determine whether it is less than half of the total number of characters, and if it is less than half, it is possible to generate judgment data indicating that it is generated by the user.

그 외에 서버(200)는 판단 대상 문자열(510, 510-1)에 포함되는 전체 문자의 수, 판단 대상 문자열(510, 510-1)에 서로 다른 특수문자가 둘 이상 포함되어 있는지 여부 등에 기초하여 지정 조건 판단 데이터(550, 550-1)를 생성할 수 있다. 생성된 지정 조건 판단 데이터(550, 550-1) 는 인공 신경망에 입력하기 위한 특징 데이터(560, 560-1)의 생성에 사용될 수 있다.In addition, the server 200 is based on the total number of characters included in the determination target character strings 510 and 510-1, whether or not two or more different special characters are included in the determination target character strings 510 and 510-1. Designation condition determination data 550 and 550-1 may be generated. The generated designation condition determination data 550 and 550-1 may be used to generate feature data 560 and 560-1 for input to an artificial neural network.

본 발명의 일 실시예에 따른 서버(200)는 판단 대상 문자열(510, 510-1)이 하나 이상의 지정 조건을 모두 만족하는 경우, 판단 대상 문자열(510, 510-1)이 무작위로 생성되지 않은 것으로 결정할 수 있다. 이러한 경우 서버(200)는 판단 대상 문자열(510, 510-1)에 대해 후술하는 인공 신경망에 의한 판단을 생략할 수 있다.Server 200 according to an embodiment of the present invention, when the determination target character strings 510 and 510-1 satisfy all of one or more specified conditions, the determination target character strings 510 and 510-1 are not randomly generated. Can be determined. In this case, the server 200 may omit the determination of the character strings 510 and 510-1 to be determined by an artificial neural network to be described later.

본원발명은 무작위로 생성되지 않았을 확률이 특별히 높은 사용자 식별 문자열을 사전에 필터링 함으로써 보다 높은 정확도로 사용자 식별 문자열의 무작위 생성 여부를 결정할 수 있다.In the present invention, it is possible to determine whether or not to generate a user identification character string with higher accuracy by filtering in advance a user identification character string having a particularly high probability that it is not generated randomly.

본 발명의 일 실시예에 따른 서버(200)는 상술한 과정에 의해 생성된 문자열 빈도 데이터(520, 520-1), 패턴 문자열 빈도 데이터(540, 540-1) 및 지정 조건 판단 데이터(550, 550-1)로부터 인공 신경망에 입력하기 위한 특징 데이터(560, 560-1)를 생성할 수 있다.The server 200 according to an embodiment of the present invention includes character string frequency data 520 and 520-1 generated by the above-described process, pattern character string frequency data 540 and 540-1, and designation condition determination data 550. From 550-1), feature data 560 and 560-1 for input to the artificial neural network may be generated.

이때 서버(200)는 다양한 방식으로 특징 데이터(560, 560-1)를 생성할 수 있다. 가령 서버(200)는 문자열 빈도 데이터(520, 520-1), 패턴 문자열 빈도 데이터(540, 540-1) 및 지정 조건 판단 데이터(550, 550-1) 각각을 성분으로 하는 벡터(Vector)를 생성하는 방식으로 특징 데이터(560, 560-1)를 생성할 수 있다. 다만 이는 예시적인 것으로, 특징 데이터(560, 560-1)의 구체적인 생성 방식은 인공 신경망의 구조 및/또는 종류에 따라 달라질 수 있다.In this case, the server 200 may generate the feature data 560 and 560-1 in various ways. For example, the server 200 generates a vector having each of the character string frequency data 520 and 520-1, the pattern character string frequency data 540 and 540-1, and the specified condition determination data 550 and 550-1 as components. The feature data 560 and 560-1 may be generated in a generating manner. However, this is merely an example, and the specific generation method of the feature data 560 and 560-1 may vary depending on the structure and/or type of the artificial neural network.

본 발명의 일 실시예에 따른 서버(200)는 인공신경망을 이용하여 특징 데이터(560, 560-1)로부터 판단 대상 문자열(510, 510-1)의 무작위 생성 여부를 결정할 수 있다.(S76)The server 200 according to an embodiment of the present invention may determine whether to randomly generate the character strings 510 and 510-1 to be determined from the feature data 560 and 560-1 using an artificial neural network (S76).

전술한 바와 같이 인공 신경망은 문자열 빈도 데이터(520, 520-1), 패턴 문자열 빈도 데이터(540, 540-1) 및 지정 조건 판단 데이터(550, 550-1)와 사용자 식별 문자열이 무작위로 생성되었는지 여부간의 상관관계를 학습한 신경망일 수 있다.As described above, the artificial neural network determines whether character string frequency data (520, 520-1), pattern string frequency data (540, 540-1), designation condition determination data (550, 550-1), and user identification character strings are randomly generated. It may be a neural network that has learned the correlation between whether or not.

따라서 인공 신경망에 문자열 빈도 데이터(520, 520-1), 패턴 문자열 빈도 데이터(540, 540-1) 및 지정 조건 판단 데이터(550, 550-1)를 포함하는 특징 데이터(560, 560-1)를 입력하면, 인공 신경망은 입력에 대한 응답으로 판단 대상 문자열(510, 510-1)이 무작위로 생성되었는지 여부를 출력할 수 있다.Therefore, feature data (560, 560-1) including character string frequency data (520, 520-1), pattern string frequency data (540, 540-1), and designated condition determination data (550, 550-1) in the artificial neural network When is input, the artificial neural network may output whether or not the character strings 510 and 510-1 to be determined are randomly generated in response to the input.

본 발명의 일 실시예에서, 인공 신경망은 벡터의 형태로 판단 대상 문자열(510, 510-1)이 무작위로 생성되었는지 여부를 출력할 수 있다. 가령 인공 신경망은 {0.82156, 0.17844}와 같은 형태로 판단 대상 문자열(510, 510-1)의 무작위 생성 여부를 출력할 수 있다. 이때 벡터의 첫 번째 성분은 판단 대상 문자열(510, 510-1)이 무작위로 생성되지 않았을 확률을 의미하고, 벡터의 두 번째 성분은 판단 대상 문자열(510, 510-1)이 무작위로 생성되었을 확률을 의미할 수 있다. 다만 이는 예시적인 것으로 본 발명의 사상이 이에 한정되는 것은 아니다.In an embodiment of the present invention, the artificial neural network may output whether or not the character strings 510 and 510-1 to be determined are randomly generated in the form of a vector. For example, the artificial neural network may output whether or not the character strings to be determined 510, 510-1 are randomly generated in the form of {0.82156, 0.17844}. At this time, the first component of the vector means the probability that the character string to be judged (510, 510-1) has not been randomly generated, and the second component of the vector is the probability that the character string to be judged (510, 510-1) has been randomly generated. Can mean However, this is merely an example and the spirit of the present invention is not limited thereto.

선택적 실시예에서, 인공 신경망에 입력되는 특징 데이터(560, 560-1)는 문자열 빈도 데이터(520, 520-1), 패턴 문자열 빈도 데이터(540, 540-1) 및 지정 조건 판단 데이터(550, 550-1) 중 일부만을 포함할 수 있다. 가령 특징 데이터(560, 560-1)는 문자열 빈도 데이터(520, 520-1)만 포함할 수 있고, 문자열 빈도 데이터(520, 520-1) 및 패턴 문자열 빈도 데이터(540, 540-1)만 포함할 수도 있고, 문자열 빈도 데이터(520, 520-1) 및 지정 조건 판단 데이터(550, 550-1)만 포함할 수도 있다. 물론 이러한 경우 인공 신경망은 각각의 특징 데이터에 적합한 형태로 미리 학습될 수 있다.In an optional embodiment, the feature data 560 and 560-1 input to the artificial neural network include character string frequency data 520 and 520-1, pattern character string frequency data 540 and 540-1, and designation condition determination data 550, 550-1) may include only some of them. For example, the feature data 560 and 560-1 may include only string frequency data 520 and 520-1, and only string frequency data 520 and 520-1 and pattern string frequency data 540 and 540-1. It may include, or may include only character string frequency data 520 and 520-1 and designation condition determination data 550 and 550-1. Of course, in this case, the artificial neural network can be pre-trained in a form suitable for each feature data.

이로써 본원 발명은 사용자 식별 문자열이 무작위로 생성되었는지 여부를 보다 정확하게 판단할 수 있고, 나아가 무작위로 생성된 사용자 식별 문자열을 이용한 다양한 불법적인 행위를 효과적으로 차단할 수 있다.Accordingly, the present invention can more accurately determine whether or not the user identification character string is randomly generated, and furthermore, it is possible to effectively block various illegal actions using the randomly generated user identification character string.

이상에서 설명된 장치는 하드웨어 구성요소, 소프트웨어 구성요소, 및/또는 하드웨어 구성요소 및 소프트웨어 구성요소의 조합으로 구현될 수 있다. 예를 들어, 실시예들에서 설명된 장치 및 구성요소는, 예를 들어, 프로세서, 콘트롤러, ALU(arithmetic logic unit), 디지털 신호 프로세서(digital signal processor), 마이크로컴퓨터, FPGA(field programmable gate array), PLU(programmable logic unit), 마이크로프로세서, 또는 명령(instruction)을 실행하고 응답할 수 있는 다른 어떠한 장치와 같이, 하나 이상의 범용 컴퓨터 또는 특수 목적 컴퓨터를 이용하여 구현될 수 있다. 처리 장치는 운영 체제(OS) 및 운영 체제 상에서 수행되는 하나 이상의 소프트웨어 어플리케이션을 수행할 수 있다. 또한, 처리 장치는 소프트웨어의 실행에 응답하여, 데이터를 접근, 저장, 조작, 처리 및 생성할 수도 있다. 이해의 편의를 위하여, 처리 장치는 하나가 사용되는 것으로 설명된 경우도 있지만, 해당 기술분야에서 통상의 지식을 가진 자는, 처리 장치가 복수 개의 처리 요소(processing element) 및/또는 복수 유형의 처리 요소를 포함할 수 있음을 알 수 있다. 예를 들어, 처리 장치는 복수 개의 프로세서 또는 하나의 프로세서 및 하나의 콘트롤러를 포함할 수 있다. 또한, 병렬 프로세서(parallel processor)와 같은, 다른 처리 구성(processing configuration)도 가능하다.The apparatus described above may be implemented as a hardware component, a software component, and/or a combination of a hardware component and a software component. For example, the devices and components described in the embodiments are, for example, a processor, a controller, an arithmetic logic unit (ALU), a digital signal processor, a microcomputer, a field programmable gate array (FPGA). , A programmable logic unit (PLU), a microprocessor, or any other device capable of executing and responding to instructions, such as one or more general purpose computers or special purpose computers. The processing device may execute an operating system (OS) and one or more software applications executed on the operating system. Further, the processing device may access, store, manipulate, process, and generate data in response to the execution of software. For the convenience of understanding, although it is sometimes described that one processing device is used, one of ordinary skill in the art, the processing device is a plurality of processing elements and/or a plurality of types of processing elements. It can be seen that it may include. For example, the processing device may include a plurality of processors or one processor and one controller. In addition, other processing configurations are possible, such as a parallel processor.

소프트웨어는 컴퓨터 프로그램(computer program), 코드(code), 명령(instruction), 또는 이들 중 하나 이상의 조합을 포함할 수 있으며, 원하는 대로 동작하도록 처리 장치를 구성하거나 독립적으로 또는 결합적으로(collectively) 처리 장치를 명령할 수 있다. 소프트웨어 및/또는 데이터는, 처리 장치에 의하여 해석되거나 처리 장치에 명령 또는 데이터를 제공하기 위하여, 어떤 유형의 기계, 구성요소(component), 물리적 장치, 가상 장치(virtual equipment), 컴퓨터 저장 매체 또는 장치, 또는 전송되는 신호 파(signal wave)에 영구적으로, 또는 일시적으로 구체화(embody)될 수 있다. 소프트웨어는 네트워크로 연결된 컴퓨터 시스템 상에 분산되어서, 분산된 방법으로 저장되거나 실행될 수도 있다. 소프트웨어 및 데이터는 하나 이상의 컴퓨터 판독 가능 기록 매체에 저장될 수 있다.The software may include a computer program, code, instructions, or a combination of one or more of these, configuring the processing unit to operate as desired or processed independently or collectively. You can command the device. Software and/or data may be interpreted by a processing device or, to provide instructions or data to a processing device, of any type of machine, component, physical device, virtual equipment, computer storage medium or device. , Or may be permanently or temporarily embodyed in a transmitted signal wave. The software may be distributed over networked computer systems and stored or executed in a distributed manner. Software and data may be stored on one or more computer-readable recording media.

실시예에 따른 방법은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 매체에 기록되는 프로그램 명령은 실시예를 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다. 상기된 하드웨어 장치는 실시예의 동작을 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.The method according to the embodiment may be implemented in the form of program instructions that can be executed through various computer means and recorded in a computer-readable medium. The computer-readable medium may include program instructions, data files, data structures, and the like alone or in combination. The program instructions recorded on the medium may be specially designed and configured for the embodiment, or may be known and usable to those skilled in computer software. Examples of computer-readable recording media include magnetic media such as hard disks, floppy disks, and magnetic tapes, optical media such as CD-ROMs and DVDs, and magnetic media such as floptical disks. -A hardware device specially configured to store and execute program instructions such as magneto-optical media, and ROM, RAM, flash memory, and the like. Examples of program instructions include not only machine language codes such as those produced by a compiler, but also high-level language codes that can be executed by a computer using an interpreter or the like. The hardware device described above may be configured to operate as one or more software modules to perform the operation of the embodiment, and vice versa.

이상과 같이 실시예들이 비록 한정된 실시예와 도면에 의해 설명되었으나, 해당 기술분야에서 통상의 지식을 가진 자라면 상기의 기재로부터 다양한 수정 및 변형이 가능하다. 예를 들어, 설명된 기술들이 설명된 방법과 다른 순서로 수행되거나, 및/또는 설명된 시스템, 구조, 장치, 회로 등의 구성요소들이 설명된 방법과 다른 형태로 결합 또는 조합되거나, 다른 구성요소 또는 균등물에 의하여 대치되거나 치환되더라도 적절한 결과가 달성될 수 있다.Although the embodiments have been described by the limited embodiments and drawings as described above, various modifications and variations can be made from the above description to those of ordinary skill in the art. For example, the described techniques are performed in a different order from the described method, and/or components such as systems, structures, devices, circuits, etc. described are combined or combined in a form different from the described method, or other components Alternatively, even if substituted or substituted by an equivalent, an appropriate result can be achieved.

그러므로, 다른 구현들, 다른 실시예들 및 특허청구범위와 균등한 것들도 후술하는 특허청구범위의 범위에 속한다.Therefore, other implementations, other embodiments, and those equivalent to the claims also fall within the scope of the claims to be described later.

100: 사용자 단말
101, 102, 103, 104: 사용자 단말
111: 메모리
112: 프로세서
113: 통신 모듈
114: 입출력 인터페이스
115: 입출력 장치
200: 서버
211: 메모리
212: 프로세서
213: 통신 모듈
214: 입출력 인터페이스
300: 네트워크
100: user terminal
101, 102, 103, 104: user terminal
111: memory
112: processor
113: communication module
114: input/output interface
115: input/output device
200: server
211: memory
212: processor
213: communication module
214: input/output interface
300: network

Claims (17)

사용자 식별 문자열이 무작위로 생성되었는지 여부를 판단하는 방법에 있어서,
상기 문자열의 적어도 일부이고, N(N은 자연수)개의 연속하는 문자를 포함하는 하나 이상의 제1 부분 문자열 각각이, 복수의 사용자 식별 문자열에 포함되어있는 빈도를 포함하는 제1 빈도 데이터를 생성하는 단계; 및
상기 제1 빈도 데이터에 기초하여 상기 사용자 식별 문자열의 무작위 생성 여부를 결정하는 단계;를 포함하는, 문자열의 무작위 생성 여부 판단 방법.
In a method of determining whether a user identification string is randomly generated,
Generating first frequency data including frequencies in which at least a part of the string and each of one or more first substrings including N (N is a natural number) consecutive characters are included in a plurality of user identification strings ; And
Determining whether to randomly generate the user identification character string based on the first frequency data.
청구항 1에 있어서,
상기 문자열의 무작위 생성 여부 판단 방법은
상기 문자열의 적어도 일부이고, M(M은 자연수)개의 연속하는 문자를 포함하는 하나 이상의 제2 부분 문자열 각각이, 상기 복수의 사용자 식별 문자열에 포함되어있는 빈도를 포함하는 제2 빈도 데이터를 생성하는 단계;를 더 포함하고,
상기 사용자 식별 문자열의 무작위 생성 여부를 결정하는 단계는
상기 제1 빈도 데이터 및 상기 제2 빈도 데이터에 기초하여 상기 사용자 식별 문자열의 무작위 생성 여부를 결정하는, 문자열의 무작위 생성 여부 판단 방법.
The method according to claim 1,
How to determine whether the string is randomly generated
At least a part of the character string, each of one or more second substrings including M (M is a natural number) consecutive characters, generating second frequency data including frequencies included in the plurality of user identification character strings Step; further includes,
The step of determining whether to randomly generate the user identification string
A method of determining whether to randomly generate a character string based on the first frequency data and the second frequency data.
청구항 2에 있어서,
상기 사용자 식별 문자열의 무작위 생성 여부를 결정하는 단계는
인공 신경망을 이용하여, 상기 제1 빈도 데이터 및 상기 제2 빈도 데이터로부터 상기 문자열의 무작위 생성 여부를 결정하고,
상기 인공 신경망은 상기 문자열이 무작위로 생성되었는지 여부가 표지(Label)된 적어도 하나의 학습 데이터에 기반하여, 상기 학습 데이터에 포함되는 제1 빈도 데이터 및 제2 빈도 데이터와 상기 무작위 생성 여부간의 상관관계를 학습한 신경망인, 문자열의 무작위 생성 여부 판단 방법.
The method according to claim 2,
The step of determining whether to randomly generate the user identification string
Using an artificial neural network, it is determined whether or not the character string is randomly generated from the first frequency data and the second frequency data,
The artificial neural network is based on at least one learning data labeled with whether or not the character string is randomly generated, and a correlation between the first frequency data and the second frequency data included in the training data and whether or not the random generation is generated. A neural network that learned to, how to determine whether a string is randomly generated.
청구항 1에 있어서
상기 문자열의 무작위 생성 여부 판단 방법은
상기 문자열에 포함된 각 문자의 종류에 기초하여, 상기 문자열에 대응되는 패턴 문자열을 생성하는 단계; 및
상기 패턴 문자열의 적어도 일부이고, K(K는 자연수)개의 연속하는 문자를 포함하는 하나 이상의 제3 부분 문자열 각각이, 상기 복수의 사용자 식별 문자열 각각에 대응되는 패턴 문자열에 포함되어있는 빈도를 포함하는 제3 빈도 데이터를 생성하는 단계;를 더 포함하고,
상기 사용자 식별 문자열의 무작위 생성 여부를 결정하는 단계는
상기 제1 빈도 데이터 및 상기 제3 빈도 데이터에 기초하여 상기 사용자 식별 문자열의 무작위 생성 여부를 결정하는, 문자열의 무작위 생성 여부 판단 방법.
The method according to claim 1
How to determine whether the string is randomly generated
Generating a pattern character string corresponding to the character string based on the type of each character included in the character string; And
At least a part of the pattern string, each of one or more third substrings including K (K is a natural number) consecutive characters, including a frequency included in the pattern string corresponding to each of the plurality of user identification strings Generating third frequency data; further comprising,
The step of determining whether to randomly generate the user identification string
A method of determining whether to randomly generate a character string based on the first frequency data and the third frequency data.
청구항 4에 있어서
상기 문자열의 무작위 생성 여부 판단 방법은
상기 패턴 문자열의 적어도 일부이고, L(L은 자연수)개의 연속하는 문자를 포함하는 하나 이상의 제4 부분 문자열 각각이, 상기 복수의 사용자 식별 문자열 각각에 대응되는 패턴 문자열에 포함되어있는 빈도를 포함하는 제4 빈도 데이터를 생성하는 단계;를 더 포함하고,
상기 사용자 식별 문자열의 무작위 생성 여부를 결정하는 단계는
상기 제1 빈도 데이터, 상기 제3 빈도 데이터 및 상기 제4 빈도 데이터에 기초하여 상기 사용자 식별 문자열의 무작위 생성 여부를 결정하는, 문자열의 무작위 생성 여부 판단 방법.
The method of claim 4
How to determine whether the string is randomly generated
At least a part of the pattern string, each of one or more fourth substrings including L (L is a natural number) consecutive characters, including a frequency included in the pattern string corresponding to each of the plurality of user identification strings Generating fourth frequency data; further comprising,
The step of determining whether to randomly generate the user identification string
A method of determining whether to randomly generate a character string based on the first frequency data, the third frequency data, and the fourth frequency data.
청구항 5에 있어서,
상기 사용자 식별 문자열의 무작위 생성 여부를 결정하는 단계는
인공 신경망을 이용하여, 상기 제1 빈도 데이터, 상기 제3 빈도 데이터 및 상기 제4 빈도 데이터로부터 상기 문자열의 무작위 생성 여부를 결정하고,
상기 인공 신경망은 상기 문자열이 무작위로 생성되었는지 여부가 표지(Label)된 적어도 하나의 학습 데이터에 기반하여, 상기 학습 데이터에 포함되는 제1 빈도 데이터, 제3 빈도 데이터 및 제4 빈도 데이터와 상기 무작위 생성 여부간의 상관관계를 학습한 신경망인, 문자열의 무작위 생성 여부 판단 방법.
The method of claim 5,
The step of determining whether to randomly generate the user identification string
Using an artificial neural network, it is determined whether or not to generate the character string randomly from the first frequency data, the third frequency data, and the fourth frequency data,
The artificial neural network includes first frequency data, third frequency data, and fourth frequency data and the randomization data included in the training data based on at least one learning data labeled whether or not the character string is randomly generated. A neural network that has learned the correlation between whether or not it is generated, a method of determining whether a character string is randomly generated.
청구항 4에 있어서
상기 패턴 문자열을 생성하는 단계는
상기 문자열에 포함되는 제1 문자가 제1 종류의 문자인 경우, 상기 패턴 문자열의 상기 제1 문자의 위치와 대응되는 위치의 문자를 상기 제1 종류에 대응되는 문자로 결정하는, 문자열의 무작위 생성 여부 판단 방법.
The method of claim 4
Generating the pattern string
When the first character included in the character string is a character of the first type, a character at a position corresponding to the position of the first character of the pattern character string is determined as a character corresponding to the first type, random generation of a character string How to judge whether or not.
청구항 7에 있어서
상기 제1 문자의 종류는
알파벳 종류, 숫자 종류 및 특수문자 종류 중 어느 하나인, 문자열의 무작위 생성 여부 판단 방법.
The method of claim 7
The type of the first character is
A method of determining whether a character string is randomly generated, which is one of an alphabet type, a number type, and a special character type.
청구항 1에 있어서
상기 문자열의 무작위 생성 여부 판단 방법은
상기 사용자 식별 문자열이 소정의 지정 조건을 만족하는지 여부를 포함하는 지정 조건 판단 데이터를 생성하는 단계;를 더 포함하고,
상기 사용자 식별 문자열의 무작위 생성 여부를 결정하는 단계는
상기 제1 빈도 데이터 및 상기 지정 조건 판단 데이터에 기초하여 상기 사용자 식별 문자열의 무작위 생성 여부를 결정하는, 문자열의 무작위 생성 여부 판단 방법.
The method according to claim 1
How to determine whether the string is randomly generated
Generating designation condition determination data including whether the user identification character string satisfies a predetermined designation condition; further comprising,
The step of determining whether to randomly generate the user identification string
A method of determining whether to randomly generate a character string based on the first frequency data and the designated condition determination data.
판단 대상 사용자 식별 문자열이 무작위로 생성되었는지 여부를 판단하는 방법에 있어서,
복수의 사용자 식별 문자열에서, 상기 판단 대상 문자열을 구성하는 적어도 하나의 부분 문자열이 출현하는 출현 빈도에 기초하여 문자열 빈도 데이터를 생성하는 단계;
상기 복수의 사용자 식별 문자열 각각에 대응되는 패턴 문자열에서, 패턴 문자열을 구성하는 적어도 하나의 부분 패턴 문자열의 출현 빈도에 기초하여 패턴 문자열 빈도 데이터를 생성하는 단계로써, 상기 패턴 문자열은 상기 판단 대상 문자열에 포함된 각 문자의 종류에 기초하여 상기 판단 대상 문자열로부터 생성되는 문자열이고;
상기 판단 대상 문자열이 소정의 지정 조건을 만족하는지 여부를 포함하는 지정 조건 판단 데이터를 생성하는 단계; 및
상기 문자열 빈도 데이터, 상기 패턴 문자열 빈도 데이터 및 상기 지정 조건 판단 데이터에 기초하여 상기 판단 대상 문자열의 무작위 생성 여부를 결정하는 단계;를 포함하는, 문자열의 무작위 생성 여부 판단 방법.
In a method of determining whether a user identification string to be determined is randomly generated,
Generating character string frequency data based on an appearance frequency in which at least one sub character string constituting the determination target character string appears in a plurality of user identification character strings;
In the pattern string corresponding to each of the plurality of user identification strings, generating pattern string frequency data based on the frequency of appearance of at least one partial pattern string constituting the pattern string, wherein the pattern string is in the determination target string A character string generated from the determination target character string based on the type of each included character;
Generating designation condition determination data including whether the determination object character string satisfies a predetermined designation condition; And
Determining whether the character string to be determined is randomly generated based on the character string frequency data, the pattern character string frequency data, and the specified condition determination data.
청구항 10에 있어서,
상기 판단 대상 문자열의 무작위 생성 여부를 결정하는 단계는
인공 신경망을 이용하여, 상기 문자열 빈도 데이터, 상기 패턴 문자열 빈도 데이터 및 상기 지정 조건 판단 데이터로부터 상기 판단 대상 문자열의 무작위 생성 여부를 결정하고,
상기 인공 신경망은 사용자 식별 문자열이 무작위로 생성되었는지 여부가 표지(Label)된 적어도 하나의 학습 데이터에 기반하여, 상기 학습 데이터에 포함되는 문자열 빈도 데이터, 패턴 문자열 빈도 데이터 및 지정 조건 판단 데이터와 상기 무작위로 생성되었는지 여부간의 상관관계를 학습한 신경망인, 문자열의 무작위 생성 여부 판단 방법.
The method of claim 10,
The step of determining whether to randomly generate the character string to be determined is
Using an artificial neural network, it is determined whether or not the character string to be determined is randomly generated from the character string frequency data, the pattern character string frequency data, and the designated condition determination data,
The artificial neural network includes character string frequency data, pattern character string frequency data, and designated condition determination data and the randomization data included in the training data based on at least one learning data labeled whether or not a user identification character string is randomly generated. A neural network that learns the correlation between whether or not it is generated as a method to determine whether a character string is randomly generated.
청구항 10에 있어서
상기 문자열 빈도 데이터는
상기 판단 대상 문자열의 적어도 일부이고, N(N은 자연수)개의 연속하는 문자를 포함하는 하나 이상의 제1 부분 문자열 각각이, 복수의 사용자 식별 문자열에 포함되어있는 빈도를 포함하는 제1 빈도 데이터 및
상기 판단 대상 문자열의 적어도 일부이고, M(M은 자연수)개의 연속하는 문자를 포함하는 하나 이상의 제2 부분 문자열 각각이, 상기 복수의 사용자 식별 문자열에 포함되어있는 빈도를 포함하는 제2 빈도 데이터를 포함하는, 문자열의 무작위 생성 여부 판단 방법.
The method of claim 10
The string frequency data is
First frequency data including a frequency in which each of at least a part of the character string to be determined and including N (N is a natural number) consecutive characters is included in a plurality of user identification character strings, and
Second frequency data including a frequency included in the plurality of user identification strings each of at least a part of the determination target character string and including M (M is a natural number) consecutive characters Including, a method of determining whether a string is randomly generated.
청구항 10에 있어서
상기 패턴 문자열 빈도 데이터는
상기 패턴 문자열의 적어도 일부이고, K(K는 자연수)개의 연속하는 문자를 포함하는 하나 이상의 제3 부분 문자열 각각이, 상기 복수의 사용자 식별 문자열 각각에 대응되는 패턴 문자열에 포함되어있는 빈도를 포함하는 제3 빈도 데이터 및
상기 패턴 문자열의 적어도 일부이고, L(L은 자연수)개의 연속하는 문자를 포함하는 하나 이상의 제4 부분 문자열 각각이, 상기 복수의 사용자 식별 문자열 각각에 대응되는 패턴 문자열에 포함되어있는 빈도를 포함하는 제4 빈도 데이터를 포함하는, 문자열의 무작위 생성 여부 판단 방법.
The method of claim 10
The pattern string frequency data is
At least a part of the pattern string, each of one or more third substrings including K (K is a natural number) consecutive characters, including a frequency included in the pattern string corresponding to each of the plurality of user identification strings 3rd frequency data and
At least a part of the pattern string, each of one or more fourth substrings including L (L is a natural number) consecutive characters, including a frequency included in the pattern string corresponding to each of the plurality of user identification strings A method of determining whether a character string is randomly generated, including the fourth frequency data.
청구항 10에 있어서
상기 문자열의 무작위 생성 여부 판단 방법은 상기 문자열 빈도 데이터를 생성하는 단계 이전에,
상기 복수의 사용자 식별 문자열에서의 복수의 부분 문자열 각각의 출현 빈도를 누적하여 문자열 빈도 데이터베이스를 생성하는 단계;를 더 포함하는, 문자열의 무작위 생성 여부 판단 방법.
The method of claim 10
The method of determining whether the character string is randomly generated, prior to the step of generating the character string frequency data,
Generating a character string frequency database by accumulating the frequency of appearances of each of the plurality of sub character strings in the plurality of user identification character strings.
청구항 10에 있어서
상기 문자열 빈도 데이터를 생성하는 단계는,
문자열 빈도 데이터베이스에서 상기 판단 대상 문자열을 구성하는 적어도 하나의 부분 문자열 각각의 출현 빈도를 확인하는 단계로써, 상기 문자열 빈도 데이터베이스는 상기 복수의 사용자 식별 문자열에서의 복수의 부분 문자열 각각의 출현 빈도를 누적한 것 이고;
상기 부분 문자열 각각의 출현 빈도에 기초하여 상기 판단 대상 문자열의 엔트로피를 산출하는 단계; 및
상기 부분 문자열 각각의 출현 빈도 및 상기 엔트로피를 포함하는 상기 문자열 빈도 데이터를 생성하는 단계;를 포함하는, 문자열의 무작위 생성 여부 판단 방법.
The method of claim 10
Generating the character string frequency data,
Checking the frequency of appearance of each of at least one substring constituting the character string to be determined in a character string frequency database, wherein the character string frequency database accumulates the frequency of appearance of each of the plurality of substrings in the plurality of user identification character strings. Will be;
Calculating an entropy of the character string to be determined based on the frequency of occurrence of each of the sub character strings; And
Generating the character string frequency data including the frequency of occurrence and the entropy of each of the substrings; including, determining whether a character string is randomly generated.
컴퓨터를 이용하여 제1 항 내지 제15 항 중 어느 한 항의 방법을 실행하기 위하여 매체에 저장된 컴퓨터 프로그램. A computer program stored in a medium for executing the method of any one of claims 1 to 15 using a computer. 판단 대상 사용자 식별 문자열이 무작위로 생성되었는지 여부를 판단하는 장치에 있어서, 상기 장치는 제어부를 포함하고,
상기 제어부는
복수의 사용자 식별 문자열에서, 상기 판단 대상 문자열을 구성하는 적어도 하나의 부분 문자열이 출현하는 출현 빈도에 기초하여 문자열 빈도 데이터를 생성하고,
상기 복수의 사용자 식별 문자열 각각에 대응되는 패턴 문자열에서, 패턴 문자열을 구성하는 적어도 하나의 부분 패턴 문자열의 출현 빈도에 기초하여 패턴 문자열 빈도 데이터를 생성하고,
상기 판단 대상 문자열이 소정의 지정 조건을 만족하는지 여부를 포함하는 지정 조건 판단 데이터를 생성하고,
상기 문자열 빈도 데이터, 상기 패턴 문자열 빈도 데이터 및 상기 지정 조건 판단 데이터에 기초하여 상기 판단 대상 문자열의 무작위 생성 여부를 결정하고,
상기 패턴 문자열은 상기 판단 대상 문자열에 포함된 각 문자의 종류에 기초하여 상기 문자열로부터 생성되는 문자열인, 문자열의 무작위 생성 여부 판단 장치.
A device for determining whether a user identification string to be determined is randomly generated, wherein the device includes a control unit,
The control unit
In a plurality of user identification character strings, generating character string frequency data based on the frequency of appearance of at least one sub character string constituting the determination target character string,
In a pattern string corresponding to each of the plurality of user identification strings, pattern string frequency data is generated based on the frequency of appearance of at least one partial pattern string constituting the pattern string,
Generating designation condition determination data including whether the determination target character string satisfies a predetermined designation condition,
Determine whether to randomly generate the character string to be determined based on the character string frequency data, the pattern character string frequency data, and the designation condition determination data,
The pattern character string is a character string generated from the character string based on the type of each character included in the determination target character string.
KR1020190055840A 2019-05-13 2019-05-13 Method, apparatus and computer program for determining random generation of string KR102223741B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020190055840A KR102223741B1 (en) 2019-05-13 2019-05-13 Method, apparatus and computer program for determining random generation of string

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020190055840A KR102223741B1 (en) 2019-05-13 2019-05-13 Method, apparatus and computer program for determining random generation of string

Publications (2)

Publication Number Publication Date
KR20200131068A KR20200131068A (en) 2020-11-23
KR102223741B1 true KR102223741B1 (en) 2021-03-05

Family

ID=73680318

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020190055840A KR102223741B1 (en) 2019-05-13 2019-05-13 Method, apparatus and computer program for determining random generation of string

Country Status (1)

Country Link
KR (1) KR102223741B1 (en)

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN100409612C (en) 2000-02-01 2008-08-06 诺基亚有限公司 Method for checking integrity of data, system and mobile terminal

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN100409612C (en) 2000-02-01 2008-08-06 诺基亚有限公司 Method for checking integrity of data, system and mobile terminal

Also Published As

Publication number Publication date
KR20200131068A (en) 2020-11-23

Similar Documents

Publication Publication Date Title
EP4058916B1 (en) Detecting unknown malicious content in computer systems
Ilahi et al. Challenges and countermeasures for adversarial attacks on deep reinforcement learning
Pei et al. Towards practical verification of machine learning: The case of computer vision systems
Song et al. Deepmem: Learning graph neural network models for fast and robust memory forensic analysis
US11023295B2 (en) Utilizing a neural network model to determine risk associated with an application programming interface of a web application
Wang et al. Deep learning‐based efficient model development for phishing detection using random forest and BLSTM classifiers
KR102523160B1 (en) Method and system for detecting duplicated document using document similarity measuring model based on deep learning
US11675928B2 (en) Electronic device for obfuscating and decoding data and method for controlling same
WO2018093926A1 (en) Semi-supervised training of neural networks
Shezan et al. Read between the lines: An empirical measurement of sensitive applications of voice personal assistant systems
CN109714356A (en) A kind of recognition methods of abnormal domain name, device and electronic equipment
CN107408115A (en) web site access control
JP6777612B2 (en) Systems and methods to prevent data loss in computer systems
Aralikatte et al. Fault in your stars: an analysis of android app reviews
CN115210722A (en) Method and system for graph computation using hybrid inference
Ulfath et al. Hybrid CNN-GRU framework with integrated pre-trained language transformer for SMS phishing detection
CN105631336A (en) System and method for detecting malicious files on mobile device, and computer program product
CN105323145A (en) Malicious information identification method, device and system
KR102223741B1 (en) Method, apparatus and computer program for determining random generation of string
KR102128415B1 (en) Method and system for correcting keyboard typo based on deep learning model
JP2021131875A (en) Method and system for detecting automatic input
KR20200078454A (en) Method and system for correcting keyboard typo based on deep learning model
JP6930862B2 (en) Client tampering judgment system and method
CN115828269A (en) Method, device, equipment and storage medium for constructing source code vulnerability detection model
Li et al. An android malicious application detection method with decision mechanism in the operating environment of blockchain

Legal Events

Date Code Title Description
N231 Notification of change of applicant
E701 Decision to grant or registration of patent right