KR101225749B1 - High-speed password searching device and method using graphic processor - Google Patents

High-speed password searching device and method using graphic processor Download PDF

Info

Publication number
KR101225749B1
KR101225749B1 KR1020080131702A KR20080131702A KR101225749B1 KR 101225749 B1 KR101225749 B1 KR 101225749B1 KR 1020080131702 A KR1020080131702 A KR 1020080131702A KR 20080131702 A KR20080131702 A KR 20080131702A KR 101225749 B1 KR101225749 B1 KR 101225749B1
Authority
KR
South Korea
Prior art keywords
password
candidate
data
target data
comparison target
Prior art date
Application number
KR1020080131702A
Other languages
Korean (ko)
Other versions
KR20100073114A (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 KR1020080131702A priority Critical patent/KR101225749B1/en
Publication of KR20100073114A publication Critical patent/KR20100073114A/en
Application granted granted Critical
Publication of KR101225749B1 publication Critical patent/KR101225749B1/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/30Authentication, i.e. establishing the identity or authorisation of security principals
    • G06F21/31User authentication
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/30Authentication, i.e. establishing the identity or authorisation of security principals
    • G06F21/45Structures or tools for the administration of authentication
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0861Generation of secret information including derivation or calculation of cryptographic keys or passwords
    • H04L9/0863Generation of secret information including derivation or calculation of cryptographic keys or passwords involving passwords or one-time passwords
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0894Escrow, recovery or storing of secret information, e.g. secret key escrow or cryptographic key storage

Abstract

그래픽 프로세서를 이용한 패스워드 고속 탐색 장치가 개시된다. 패스워드 고속 탐색 장치는 암호화된 파일에서 패스워드 비교의 대상이 되는 데이터를 추출하고, 후보 패스워드들을 생성하는 중앙 처리 유닛; 및 추출된 패스워드 비교 대상 데이터와 생성된 후보 패스워드들을 파라미터로 하여 정당한 후보 패스워드를 탐색하는 그래픽 프로세서;를 포함한다. 이에 의해 사용자가 패스워드를 기억하지 못하거나 법 집행기관의 포렌식 수사과정에서 암호화된 문서를 복원하기 위해 필요한 패스워드를 고속을 찾을 수 있어 시간을 절약하게 된다.Disclosed is a fast password search apparatus using a graphics processor. The high-speed password retrieval apparatus may include a central processing unit which extracts data, which is a target of password comparison, from an encrypted file and generates candidate passwords; And a graphic processor searching for a valid candidate password using the extracted password comparison target data and the generated candidate passwords as parameters. This saves time because the user may not be able to remember the password or find a high-speed password for restoring the encrypted document during the law enforcement forensic investigation.

Description

그래픽 프로세서를 이용한 패스워드 고속 탐색 장치 및 방법{High-speed password searching device and method using graphic processor}High-speed password searching device and method using graphic processor

본 발명은 패스워드 탐색 기술에 관한 것으로, 특히 사용자가 설정한 패스워드로 암호화된 파일을 복원하기 위해 요구되는 패스워드를 탐색하는 기술에 관한 것이다.The present invention relates to a password retrieval technique, and more particularly, to a technique for retrieving a password required to restore a file encrypted with a password set by a user.

본 연구는 지식경제부 및 정보통신연구진흥원의 IT성장동력기술개발사업의 일환으로 수행한 연구로부터 도출된 것이다.[과제관리번호: 2007-S-019-02, 정보투명성 보장형 디지털 포렌식 시스템 개발]This study is derived from the research conducted as part of the IT growth engine technology development project of the Ministry of Knowledge Economy and the Ministry of Information and Telecommunications Research and Development.

우리가 많이 사용하는 오피스 파일, PDF 파일, 압축파일 등은 프로그램 자체에서 암호화 기능을 지원하므로, 사용자는 손쉽게 파일을 암호화할 수 있다. 그러나 이러한 파일 암호화는 포렌식(forensic) 수사 과정에서 증거물 발견을 어렵게 한다. 또한 중요 파일임에도 불구하고 사용자가 패스워드를 기억하지 못하는 경우, 파일 열람이나 수정을 불가능하게 한다. 이런 경우, 패스워드를 찾기 위해서는 패스워드 탐색 소프트웨어를 이용하거나 FPGA 같은 전용 하드웨어를 이용할 수 있다.Office files, PDF files, and compressed files, which we use a lot, can be encrypted in the program itself, so users can easily encrypt files. However, this file encryption makes finding evidence difficult during forensic investigations. In addition, if the user does not remember the password even though it is an important file, it is impossible to view or modify the file. In this case, password retrieval software can be used to find the password, or a dedicated hardware such as an FPGA can be used.

패스워드 탐색 소프트웨어를 이용할 경우, 사용자는 저렴하거나 무료로 소프트웨어를 이용할 수 있는 장점이 있다. 그러나 순차적인 CPU 연산을 하는 툴을 사용하므로 속도에 한계가 있을 수밖에 없다. 그리고 범용 프로세서가 아닌 FPGA 같은 전용 하드웨어를 이용하면, 가장 고속으로 패스워드를 해독할 수 있다. 그러나 고비용으로 패스워드 탐색만을 위해 제작된 전용 장비는 다른 용도로는 사용할 수 없어서, 비용대비 응용분야가 효율적이지 않다. 따라서 일반적으로 사용하기에는 적합하지 않다.Using password retrieval software has the advantage that users can use the software at low or no cost. However, speed is limited because it uses tools that perform sequential CPU operations. Dedicated hardware such as FPGAs, rather than general purpose processors, can be used to decrypt passwords at the fastest speeds. However, dedicated equipment designed only for password retrieval at high cost cannot be used for other purposes, so the cost-effective application is not efficient. Therefore, it is not suitable for general use.

일반적으로 널리 사용하는 응용 프로그램에서 파일 암호화는 사용자가 입력한 패스워드를 기반으로 암호 알고리즘과 자체 암호화 메커니즘을 이용하여 이루어진다. 이에 본 발명은 암호화된 파일을 복원하기 위해 그래픽 프로세서를 사용하여 고속으로 패스워드를 탐색하는 기술적 방안을 창출함을 목적으로 한다. 특히 본 발명은 전수조사에 의한 패스워드 탐색을 그래픽 프로세서에서 실행하도록 하여, 기존의 상용 소프트웨어보다 고속으로 패스워드를 탐색할 뿐 아니라 가격의 저렴화를 달성하고자 한다.In most popular applications, file encryption is based on a password entered by the user using a cryptographic algorithm and its own encryption mechanism. Accordingly, an object of the present invention is to create a technical scheme of searching for a password at high speed using a graphic processor to restore an encrypted file. In particular, the present invention is to perform the password search by the full search in the graphics processor, to achieve a lower price as well as to search for a password faster than conventional commercial software.

전술한 기술적 과제를 달성하기 위한 본 발명의 사용자 패스워드로 암호화된 파일의 해독을 위해 패스워드를 탐색하기 위한 패스워드 고속 탐색 장치에 있어서, 암호화된 파일에서 패스워드 비교의 대상이 되는 데이터를 추출하고, 후보 패스워드들을 생성하는 중앙 처리 유닛; 추출된 패스워드 비교 대상 데이터와 생성된 후보 패스워드들을 파라미터로 하여 정당한 후보 패스워드를 탐색하는 그래픽 프로세서;를 포함한다. 여기서 그래픽 프로세서는 병렬처리 연산을 통해 정당한 후보 패스워드를 탐색한다.In the high-speed password retrieval apparatus for retrieving a password for decrypting a file encrypted with a user password of the present invention for achieving the above technical problem, extracting the data to be compared passwords from the encrypted file, the candidate password A central processing unit for generating the data; And a graphic processor searching for a valid candidate password using the extracted password comparison target data and the generated candidate passwords as parameters. Here, the graphics processor searches for a valid candidate password through parallel processing.

본 발명의 일 양상에 따른 중앙 처리 유닛은, 암호화된 파일에서 패스워드 비교의 대상이 되는 데이터를 추출하는 패스워드 비교 대상 데이터 추출부; 추출된 데이터를 그래픽 프로세서로 전달하는 패스워드 비교 대상 데이터 전달부; 후보 패 스워드들을 생성하는 패스워드 후보 생성부; 생성된 후보 패스워드들을 그래픽 프로세서로 전달하는 패스워드 후보 전달부; 및 그래픽 프로세서에서 정당한 패스워드로 탐색된 후보 패스워드를 출력하는 패스워드 출력부;를 포함한다.According to an aspect of the present invention, there is provided a central processing unit including: a password comparison target data extracting unit configured to extract data to be password compared from an encrypted file; A password comparison target data transfer unit configured to transfer the extracted data to the graphic processor; A password candidate generator for generating candidate passwords; A password candidate transfer unit configured to transfer the generated candidate passwords to the graphic processor; And a password output unit configured to output a candidate password found as a valid password by the graphic processor.

본 발명의 일 양상에 따라 패스워드 후보 생성부가 한번에 생성하는 후보 패스워드 개수는 그래픽 프로세서의 병렬 처리 단위와 동일하다.According to an aspect of the present invention, the number of candidate passwords generated by the password candidate generator at one time is the same as the parallel processing unit of the graphic processor.

본 발명의 일 양상에 따른 패스워드 후보 생성부는 그래픽 프로세서에서 정당한 패스워드를 탐색하기 위한 연산을 수행하는 동안에 미리 새로운 후보 패스워드들을 생성한다.The password candidate generator according to an aspect of the present invention generates new candidate passwords in advance while the graphic processor performs an operation for searching for a valid password.

본 발명의 일 양상에 따른 그래픽 프로세서는, 패스워드 비교 대상 데이터 추출부에서 추출된 패스워드 비교 대상 데이터를 그래픽 프로세서의 내부 메모리에 저장하는 패스워드 비교 대상 데이터 저장부; 패스워드 후보 생성부에서 생성된 후보 패스워드들을 그래픽 프로세서의 내부 메모리에 저장하는 패스워드 후보 저장부; 및 저장된 후보 패스워드와 저장된 일부 패스워드 비교 대상 데이터를 파라미터로 하여 병렬 처리 연산을 통해 후보 패스워드별 패스워드 비교 데이터를 생성하고, 생성된 패스워드 비교 데이터와 저장된 패스워드 비교 대상 데이터가 일치하면 해당 후보 패스워드를 정당한 패스워드인 것으로 탐색하는 패스워드 탐색부;를 포함한다.According to an aspect of the present invention, a graphic processor includes: a password comparison target data storage configured to store password comparison target data extracted by a password comparison target data extraction unit in an internal memory of the graphics processor; A password candidate storage unit for storing candidate passwords generated by the password candidate generator in an internal memory of the graphic processor; And generating the password comparison data for each candidate password through a parallel processing operation using the stored candidate password and the stored partial password comparison target data as parameters, and if the generated password comparison data and the stored password comparison target data match, the candidate password is a valid password. And a password search unit for searching as being.

한편, 전술한 기술적 과제를 달성하기 위한 본 발명의 중앙 처리 유닛에서 수행되는 패스워드 고속 탐색 방법은, 암호화된 파일에서 패스워드 비교의 대상이 되는 데이터를 추출하는 단계; 추출된 패스워드 비교 대상 데이터를 그래픽 프로세 서로 전달하는 단계; 후보 패스워드들을 생성하는 단계; 생성된 후보 패스워드들을 그래픽 프로세서로 전달하는 단계; 및 그래픽 프로세서에서 패스워드 비교 대상 데이터 및 후보 패스워드들을 파라미터로 하여 정당한 패스워드로 탐색된 후보 패스워드를 보고받아 출력하는 단계;를 포함한다.On the other hand, the high-speed password search method performed in the central processing unit of the present invention for achieving the above-described technical problem, the method comprising the steps of: extracting data that is the target of password comparison from the encrypted file; Transferring the extracted password comparison target data to a graphic processor; Generating candidate passwords; Passing the generated candidate passwords to the graphics processor; And receiving and outputting, by the graphic processor, the candidate password found as a valid password using the password comparison target data and the candidate passwords as parameters.

한편, 전술한 기술적 과제를 달성하기 위한 본 발명의 그래픽 프로세서에서 수행되는 패스워드 고속 탐색 방법은, 중앙 처리 유닛에서 암호화된 파일로부터 추출한 패스워드 비교 대상 데이터를 전달받아 내부 메모리에 저장하는 단계; 중앙 처리 유닛에서 생성한 후보 패스워드들을 내부 메모리에 저장하는 단계; 저장된 후보 패스워드와 저장된 일부 패스워드 비교 대상 데이터를 파라미터로 하여 병렬 처리 연산을 통해 후보 패스워드별 패스워드 비교 데이터를 생성하는 단계; 및 생성된 패스워드 비교 데이터들과 저장된 패스워드 비교 대상 데이터가 일치하는지 비교하는 단계; 비교 결과 일치하는 패스워드 비교 데이터가 있으면 해당 후보 패스워드가 정당한 패스워드인 것으로 중앙 처리 유닛으로 보고하는 단계;를 포함한다.On the other hand, the high-speed password search method performed in the graphic processor of the present invention for achieving the above technical problem, the step of receiving the password comparison target data extracted from the encrypted file in the central processing unit and storing in the internal memory; Storing candidate passwords generated by the central processing unit in internal memory; Generating password comparison data for each candidate password through a parallel processing operation using the stored candidate password and the stored partial password comparison target data as parameters; Comparing the generated password comparison data with stored password comparison target data; And reporting the candidate password as a valid password to the central processing unit if there is a matching password comparison data as a result of the comparison.

패스워드 탐색 소프트웨어를 사용한 패스워드 복구보다 훨씬 빠른 속도를 보장한다. 또한 패스워드 탐색을 위해 이용되는 그래픽 보드는 대부분의 컴퓨터에 장착되므로, 패스워드 탐색을 위한 추가적인 비용도 거의 발생하지 않는다. 따라서 간단하고 저렴한 비용으로 포렌식 수사나 사용자가 암호화 파일에 대한 패스워드를 기억하지 못하는 경우 패스워드 복구에 활용될 수 있다.It is much faster than password recovery using password retrieval software. Also, the graphics board used for password retrieval is installed in most computers, so there is little additional cost for password retrieval. Therefore, it can be used for forensic investigation or password recovery if the user cannot remember the password for the encrypted file at a simple and low cost.

전술한, 그리고 추가적인 본 발명의 양상들은 첨부된 도면을 참조하여 설명되는 바람직한 실시예들을 통하여 더욱 명백해질 것이다. 이하에서는 본 발명을 이러한 실시예를 통해 당업자가 용이하게 이해하고 재현할 수 있도록 상세히 설명하기로 한다.BRIEF DESCRIPTION OF THE DRAWINGS The foregoing and further aspects of the present invention will become more apparent from the following detailed description of preferred embodiments with reference to the accompanying drawings. Hereinafter, the present invention will be described in detail to enable those skilled in the art to easily understand and reproduce the present invention.

도 1은 패스워드 고속 탐색 장치의 블록도이다.1 is a block diagram of a fast password search apparatus.

패스워드 고속 탐색 장치는 그래픽 프로세서가 탑재된 컴퓨터일 수 있다. 본 발명의 패스워드 고속 탐색 장치는 중앙 처리 유닛(CPU)(100)과 그래픽 프로세서(200)를 포함한다. CPU(100)는 패스워드 비교 대상 데이터 추출부(110), 패스워드 비교 대상 데이터 전달부(120), 패스워드 후보 생성부(130), 패스워드 후보 전달부(140), 그래픽 프로세서 연산 호출부(150), 및 패스워드 출력부(160)를 포함한다. 그리고 그래픽 프로세서는 자원 설정부(210), 패스워드 비교 대상 데이터 저장부(220), 패스워드 후보 저장부(230), 및 패스워드 탐색부(240)를 포함한다.The fast password search device may be a computer equipped with a graphics processor. The fast password search apparatus of the present invention includes a central processing unit (CPU) 100 and a graphics processor 200. The CPU 100 may include a password comparison target data extraction unit 110, a password comparison target data transfer unit 120, a password candidate generation unit 130, a password candidate transfer unit 140, a graphic processor operation call unit 150, And a password output unit 160. The graphic processor includes a resource setting unit 210, a password comparison target data storage unit 220, a password candidate storage unit 230, and a password search unit 240.

우선 CPU(100)에 대해 설명한다. 패스워드 비교 대상 데이터 추출부(110)는 암호화된 파일에서 패스워드 비교의 대상이 되는 데이터를 추출한다. 예를 들어, Acrobat PDF 파일인 경우는 Uentry, Pentry, IDentry가 패스워드 비교의 대상이 되는 데이터에 해당되고, MS-word/excel/powerpoint 파일인 경우는 Docid, Salt, Hashedsalt 값이 패스워드 비교의 대상이 되는 데이터에 해당된다. 각 응용 프로그램마다 패스워드 비교를 위해 추출해야 할 데이터 정보를 각 프로그램 제작사로부터 공개된 정보 또는 역공학을 통하여 얻을 수 있다. 패스워드 비교 대상 데이터 추출부(110)는 사전에 얻어진 응용프로그램 별 패스워드 비교를 위해 추출해야 할 데이터 정보를 이용하여 파일에서 해당 데이터를 추출한다. 패스워드 비교 대상 데이터 추출부(110)에서 추출된 데이터는 후술할 그래픽 프로세서(200)의 패스워드 탐색부(240)에서 연산된 결과와 비교하는데 사용된다. 그리고 패스워드 비교 대상 데이터 전달부(120)는 패스워드 비교 대상 데이터 추출부(110)에서 추출된 데이터를 그래픽 프로세서(200)의 메모리로 전달하기 위한 역할을 한다.First, the CPU 100 will be described. The password comparison target data extraction unit 110 extracts data to be password comparison from the encrypted file. For example, in the case of Acrobat PDF files, Uentry, Pentry, and IDentry correspond to the data to be compared, and in the case of MS-word / excel / powerpoint files, the Docid, Salt, and Hashedsalt values are used for password comparison. Corresponds to the data. For each application, data information to be extracted for password comparison can be obtained through public information or reverse engineering from each program manufacturer. The password comparison target data extraction unit 110 extracts the corresponding data from the file by using the data information to be extracted for the password comparison for each application. The data extracted by the password comparison target data extraction unit 110 is used to compare with the result calculated by the password search unit 240 of the graphic processor 200 to be described later. In addition, the password comparison target data transfer unit 120 serves to transfer the data extracted by the password comparison target data extraction unit 110 to the memory of the graphic processor 200.

패스워드 후보 생성부(130)는 패스워드로 사용될 수 있는 조합 가능한 문자를 생성한다. 즉, 숫자 10개, 영문 소문자 26개, 영문 대문자 26개, 특수문자 33개로 이루어진 총 95개의 문자셋에서 새로운 문자열을 생성한다. 후보 패스워드는 숫자 10개로 이루어진 조합일 수도 있고, 영문 소문자와 숫자를 포함한 36개의 조합으로 이루어질 수도 있다. 예를 들어, 위의 95개의 문자셋 중에서 영문 소문자와 사용자가 임의로 선택한 문자로 새롭게 구성된 새로운 n개의 문자셋에서 생성될 수 있는 패스워드는 패스워드의 길이가 1이라면 n개, 패스워드의 길이가 5라면 n^5개, 패스워드의 길이가 m이라면 n^m개 만큼의 패스워드 후보군을 생성한다.The password candidate generator 130 generates a combinable character that can be used as a password. That is, a new string is created from a total of 95 charsets consisting of 10 numbers, 26 lowercase letters, 26 uppercase letters, and 33 special characters. The candidate password may be a combination of ten numbers or 36 combinations including lowercase letters and numbers. For example, the passwords that can be generated from a new n charset consisting of lowercase English letters and user-selected characters among the 95 charsets above are n if the password is 1 and n ^ 5 if the password is 5 Number of password candidates is generated if there are m passwords.

만약 생성된 후보 패스워드가 그래픽 프로세서(200)의 패스워드 탐색부(240)에서 해쉬함수나 블록암호의 입력 값으로 사용될 때, 패스워드 후보 생성부(130)는 패스워드 문자열 뒤에 해쉬나 블록 암호의 입력 크기에 적합하도록 데이터를 패딩(padding)하거나 데이터를 추가한다. 예를 들어, 일반적으로 사용자 패스워드 길이는 20바이트를 넘지 않고 그래픽 프로세서(200)의 패스워드 탐색부(240)에서 MD5(Message-Digest algorithm 5) 해쉬함수를 사용하는 경우, MD5의 업데이트 과정이나 마지막 패딩 과정은 미리 패스워드 후보 생성부(130)에서 처리하는 것이다.When the generated candidate password is used as an input value of a hash function or a block password in the password search unit 240 of the graphic processor 200, the password candidate generator 130 may be configured to input the hash or block cipher after the password string. Pad the data or add data as appropriate. For example, in general, when the user password length is not more than 20 bytes and the message-digest algorithm 5 (MD5) hash function is used in the password search unit 240 of the graphic processor 200, the update process or the last padding of the MD5 is performed. The process is previously processed by the password candidate generator 130.

즉, m 길이의 패스워드 문자열에서 m번째 문자열부터 MD5 프로세서 함수를 위한 패딩과 m길이 표시를 포함한 패딩 처리를 해서 64바이트의 후보 패스워드를 생성할 수 있다. 그러면 후술할 그래픽 프로세서(200)의 패스워드 탐색부(240)는 MD5 업데이트 연산과 패딩, 길이 계산 과정 없이 직접 64바이트 후보 패스워드를 입력으로 하는 MD5 프로세서 함수를 동작시킬 수 있다. 바람직하게 한번에 생성하는 후보 패스워드의 개수는 그래픽 프로세서(200)가 한번에 처리할 수 있는 개수로 하며, 정당한 사용자 패스워드를 발견할 때까지 이를 반복한다.That is, a 64-byte candidate password can be generated by performing padding processing including m-padding and m-length indication from the m-th string in the m-length password string. The password search unit 240 of the graphic processor 200, which will be described later, may operate an MD5 processor function that directly inputs a 64-byte candidate password without MD5 update operation, padding, and length calculation. Preferably, the number of candidate passwords generated at one time is the number that the graphic processor 200 can process at one time and repeats this until it finds a valid user password.

패스워드 후보 전달부(140)는 패스워드 후보 생성부(130)에서 생성된 후보 패스워드들을 그래픽 프로세서(200)의 메모리로 전달하는 역할을 한다. 이때 그래픽 프로세서(200)의 메모리 할당은 패스워드 후보 생성부(130)에서 한번에 생성된 패스워드 후보들이 필요로 하는 메모리 크기의 2배로 한다. 이것은 컴퓨터의 CPU 연산에서 생성된 패스워드 후보를 그래픽 프로세서(200)가 처리하는 동안 CPU(100)에서는 새로운 패스워드 후보를 생성하기 위함이다. 구체적으로 CPU(100)에서 패스워드 후보를 생성하고 그래픽 프로세서(200)에서 패스워드 비교 연산을 하고 다시 CPU(100)에서 패스워드 후보를 생성하는 반복적인 순차적 연산을 하지 않고, 그래픽 프로세서(200)에서 패스워드 비교 연산을 하는 동안 CPU(100)에서 다음에 그래픽 프로세서(200)에서 사용될 패스워드 후보를 미리 생성하게 하여 패스워드 탐색 시간을 좀 더 단축한다.The password candidate transfer unit 140 serves to transfer the candidate passwords generated by the password candidate generator 130 to the memory of the graphic processor 200. In this case, the memory allocation of the graphic processor 200 is twice the memory size required by the password candidates generated at one time by the password candidate generator 130. This is for the CPU 100 to generate a new password candidate while the graphics processor 200 processes the password candidate generated in the CPU operation of the computer. Specifically, a password candidate is generated in the CPU 100, a password comparison operation is performed in the graphic processor 200, and a password comparison is performed in the graphic processor 200 without performing an iterative sequential operation in which the password candidate is generated again in the CPU 100. During the operation, the CPU 100 further generates a password candidate to be used later in the graphic processor 200, thereby further shortening the password search time.

그래픽 프로세서 연산 호출부(150)는 패스워드 고속 탐색을 위해 수행해야 할 코드의 특정 부분을 컴퓨터의 CPU 연산으로 처리하지 않고, 그래픽 프로세서의 고속 병렬처리연산을 이용하기 위해 그래픽 프로세서(200)를 호출하는 기능을 한다.The graphics processor operation caller 150 calls the graphics processor 200 to use the high speed parallel processing of the graphics processor without processing a specific portion of the code to be executed for the high-speed password search by the CPU operation of the computer. Function

패스워드 출력부(160)는 그래픽 프로세서(200)의 패스워드 탐색부(240)에서 생성한 패스워드 비교 데이터와 패스워드 비교 대상 데이터 추출부(110)에서 생성된 데이터 중 하나가 일치한다는 정보를 패스워드 탐색부(240)로부터 전달받으면, 패스워드 후보 생성부(130)에서 생성된 패스워드 후보들 중 올바른 패스워드 하나를 출력한다. 이때 패스워드 후보 생성부(130)에서 생성된 패스워드 후보가 그래픽 프로세서(200)의 입력 크기에 적합하도록 데이터가 패딩되거나 데이터가 추가되었다면, 패스워드 출력부(160)는 그 부분을 제외시킨 패스워드 문자열을 출력한다.The password output unit 160 displays information indicating that one of the password comparison data generated by the password search unit 240 of the graphic processor 200 and the data generated by the password comparison target data extraction unit 110 matches. When received from the 240, the password candidate generator 130 outputs one correct password among the password candidates generated. At this time, if data is padded or data is added so that the password candidate generated by the password candidate generator 130 is suitable for the input size of the graphic processor 200, the password output unit 160 outputs a password string excluding the portion. do.

이하, 그래픽 프로세서(200)의 동작에 대해 설명한다. Hereinafter, the operation of the graphics processor 200 will be described.

자원 설정부(210)는 그래픽 프로세서(200) 내에서 이용할 수 있는 메모리 종류를 설정한다. 패스워드 비교 대상 데이터 저장부(220)에 의해 저장되는 데이터는 상수 메모리(Constant memory)를 사용하도록 설정하고, 패스워드 후보 저장부(230)에 의해 저장되는 데이터는 레지스터를 사용하도록 설정한다. 그리고 그래픽 프로세서(200)에서 수행하는 해쉬 연산에 필요한 데이터 저장을 위해서는 레지스터를 사용하도록 설정하고, 암호 연산시 필요한 데이터 저장을 위해서는 고속 입출력이 가능한 공유 메모리(Shared memory)를 사용하도록 설정한다.The resource setting unit 210 sets a type of memory available in the graphic processor 200. The data stored by the password comparison target data storage 220 is set to use a constant memory, and the data stored by the password candidate storage 230 is set to use a register. A register is used to store data necessary for hash operation performed by the graphic processor 200, and a shared memory capable of high-speed input / output is used to store data necessary for cryptographic operation.

패스워드 비교 대상 데이터 저장부(220)는 패스워드 비교 대상 데이터 전달부(120)로부터 전송된 패스워드 비교 대상 데이터를 자원 설정부(210)에서 설정한 그래픽 프로세서(200) 내의 메모리에 저장한다. 그리고 패스워드 후보 저장 부(230)는 패스워드 후보 전달부(140)로부터 전송된 후보 패스워드들을 자원 설정부(210)에서 설정한 그래픽 프로세서(200) 내의 메모리에 저장한다.The password comparison target data storage 220 stores the password comparison target data transmitted from the password comparison target data transfer unit 120 in a memory in the graphic processor 200 set by the resource setting unit 210. The password candidate storage unit 230 stores the candidate passwords transmitted from the password candidate transfer unit 140 in a memory in the graphics processor 200 set by the resource setting unit 210.

패스워드 탐색부(240)는 그래픽 프로세서(200) 내의 메모리에 저장된 패스워드 후보 데이터와 일부 패스워드 비교 대상 데이터, 그리고 개별 응용 프로그램의 패스워드 탐색 메커니즘에 기반하여 그래픽 프로세서를 사용하여 새로운 패스워드 비교 데이터를 생성하고, 이를 그래픽 프로세서 내의 메모리에 저장된 패스워드 비교 대상 데이터와 비교한다. 일 실시예에 있어서, 패스워드 탐색부(240)에서 한번에 생성하는 패스워드 비교 데이터 개수는 패스워드 후보의 개수와 동일하며, 또한 그래픽 프로세서의 병렬처리 단위와 동일하다. 한 번의 그래픽 프로세서 병렬처리로 일치하는 패스워드 비교 데이터가 없다면, 패스워드 탐색부(240)는 새로운 후보 패스워드들을 입력으로 하여 새로운 패스워드 비교 데이터를 생성하고 이를 패스워드 비교 대상 데이터와 비교하는 과정을 반복한다. 패스워드 탐색부(240)에서 일치된 패스워드 비교 데이터가 발견되면 해당되는 후보 패스워드가 정당한 패스워드인 것으로 CPU(100)에 보고한다.The password search unit 240 generates new password comparison data using the graphics processor based on the password candidate data stored in the memory in the graphics processor 200, some password comparison data, and a password search mechanism of an individual application. This is compared with the password comparison target data stored in the memory in the graphics processor. In one embodiment, the number of password comparison data generated at one time by the password search unit 240 is the same as the number of password candidates, and the same as the parallel processing unit of the graphics processor. If there is no matching password comparison data in one graphic processor parallel processing, the password search unit 240 generates new password comparison data by inputting new candidate passwords and repeats the process of comparing the password comparison data with the password comparison data. If matched password comparison data is found in the password search unit 240, the corresponding candidate password is reported to the CPU 100 as a valid password.

이해를 돕기 위하여 암호화된 PDF 파일의 패스워드를 찾기 위한 과정을 설명한다.To help you understand it, we will walk you through the process of finding the password of an encrypted PDF file.

패스워드 비교 대상 데이터 추출부(110)에서 PDF 파일의 패스워드 비교 데이터인 IDentry, Pentry, Oentry, Uentry를 추출하고 이를 패스워드 비교 대상 데이터 전달부(120)를 통하여 그래픽 프로세서(200)의 패스워드 비교 대상 데이터 저장부(220)로 전달한다. 또한 패스워드 후보 생성부(130)에서 패스워드 후보를 생성 하고 이를 패스워드 후보 전달부(140)를 통하여 그래픽 프로세서(200)의 패스워드 후보 저장부(230)로 전달한다. 그리고 그래픽 프로세서 연산 호출부(150)에서 병렬 연산이 필요한 코드 실행을 위해 그래픽 프로세서(200)를 호출한다. 이때 패스워드 비교 대상 데이터 저장부(220), 패스워드 후보 저장부(230), 및 패스워드 탐색부(240)에서의 데이터가 저장될 메모리 종류와 할당 크기를 자원 설정부(210)에서 결정한다.The password comparison target data extraction unit 110 extracts IDentry, Pentry, Oentry, and Uentry, which are password comparison data of the PDF file, and stores the password comparison target data of the graphic processor 200 through the password comparison target data transfer unit 120. Transfer to section 220. In addition, the password candidate generator 130 generates a password candidate and transfers the password candidate to the password candidate storage 230 of the graphic processor 200 through the password candidate transmitter 140. In addition, the graphics processor operation call unit 150 calls the graphics processor 200 to execute the code that requires parallel operation. At this time, the memory setting unit 210 determines the memory type and the allocation size of the data to be stored in the password comparison target data storage unit 220, the password candidate storage unit 230, and the password search unit 240.

그리고 패스워드 탐색부(240)는 한 번에 생성된 다수의 패스워드 후보를 이용하여 병렬처리하는 각각의 연산에서 51회의 MD5 연산과 20회의 RC4연산, 그리고 Oentry 혹은 Uentry를 비교하는 다른 로직을 수행하여 각각 입력된 패스워드 후보가 올바른 패스워드인지 동시에 판단하여 이를 패스워드 출력부에 알려준다. 만약 일치하는 Uentry 또는 Oentry가 없다면, 새로운 패스워드 후보를 이용한 병렬처리 연산이 실행된다. 패스워드 출력부(160)는 패스워드 후보 중 일치하는 하나의 문자열을 출력한다. 이때 그래픽 프로세서(200)가 연산하는 동안 CPU(100)에서는 다음번에 사용될 새로운 패스워드 후보를 생성하도록 하여 CPU 연산과 그래픽 프로세서 연산을 동시에 이용하게 한다.The password search unit 240 performs 51 MD5 operations, 20 RC4 operations, and other logic for comparing Oentry or Uentry in each operation of parallel processing using a plurality of password candidates generated at one time. It simultaneously determines whether the input password candidate is a correct password and informs the password output unit. If no matching Uentry or Oentry is found, the parallel operation with the new password candidate is executed. The password output unit 160 outputs one string of matches among the password candidates. In this case, the CPU 100 generates a new password candidate to be used next time while the graphics processor 200 performs the calculation so that both the CPU operation and the graphics processor operation may be simultaneously used.

이상에서 설명한 바와 같이, 그래픽 프로세서를 이용한 패스워드 고속 탐색 장치는 그래픽 보드를 장착한 컴퓨터를 이용하여 컴퓨터의 범용 연산과 그래픽 보드의 병렬처리 연산을 동시에 이용한다. 일 실시예에 있어서, 그래픽 보드는 CUDA 플랫폼에서 프로그램 개발이 가능한 보드를 사용하는데, 이는 그래픽 프로세서 제조사의 홈페이지 등에서 정보를 얻을 수 있다. As described above, the password fast searching apparatus using a graphics processor simultaneously uses a general operation of a computer and parallel processing of a graphic board using a computer equipped with a graphic board. In one embodiment, the graphics board uses a board capable of program development in the CUDA platform, which can be obtained from the homepage of the graphics processor manufacturer.

도 2는 CPU에서 수행되는 패스워드 고속 탐색을 위한 흐름도이다.2 is a flowchart for fast password search performed in a CPU.

CPU(100)는 암호화된 파일에서 패스워드 비교의 대상이 되는 데이터를 추출하여 그래픽 프로세서(200)로 전달한다(단계 S200). 또한 CPU(100)는 후보 패스워드들을 생성하여 그래픽 프로세서(200)로 전달한다(단계 S210). 후보 패스워드들을 그래픽 프로세서(200)로 전달한 CPU(100)는 미리 새로운 후보 패스워드들을 생성한다. 이후 그래픽 프로세서(200)로부터 정당한 후보 패스워드가 탐색되지 않았음을 보고받으면, CPU(100)는 새로 생성한 후보 패스워드들을 그래픽 프로세서(200)로 전달하고 또다시 새로운 후보 패스워드를 생성하는 과정을 반복한다(단계 S220). 만일 그래픽 프로세서(200)로부터 정당한 후보 패스워드가 탐색되었음을 보고받으면, CPU(100)는 해당 후보 패스워드를 화면 출력한다(단계 S230).The CPU 100 extracts data that is a target of password comparison from the encrypted file and transfers the data to the graphic processor 200 (step S200). In addition, the CPU 100 generates candidate passwords and transmits them to the graphic processor 200 (step S210). The CPU 100, which has passed the candidate passwords to the graphics processor 200, generates new candidate passwords in advance. Then, if a valid candidate password is not found from the graphic processor 200, the CPU 100 transfers the newly generated candidate passwords to the graphic processor 200 and repeats the process of generating a new candidate password. (Step S220). If it is reported from the graphic processor 200 that a valid candidate password has been found, the CPU 100 outputs the corresponding candidate password (step S230).

도 3은 그래픽 프로세서에서 수행되는 패스워드 고속 탐색을 위한 흐름도이다.3 is a flow chart for fast password search performed in a graphics processor.

그래픽 프로세서(200)는 CPU(100)로부터 전달된 패스워드 비교 대상 데이터를 내부 메모리에 저장한다(단계 S300). 또한 그래픽 프로세서(200)는 CPU(100)로부터 전달된 후보 패스워드들을 내부 메모리에 저장한다(단계 S310). 이후 그래픽 프로세서(200)는 내부 메모리에 저장된 후보 패스워드와 일부 패스워드 비교 대상 데이터를 파라미터로 하고 개별 응용 프로그램의 메커니즘에 기반하여 패스워드 비교 데이터를 생성한다(단계 S320). 일 실시예에 있어서, 그래픽 프로세서(200)는 병렬 처리를 통해 한번에 모든 후보 패스워드들에 대해 연산을 수행하여 패스워드 비교 데이터를 생성한다. 그래픽 프로세서(200)는 생성된 패스워드 비교 데이터들 중에서 내부 메모리에 저장된 패스워드 비교 대상 데이터와 일치하는 데이터가 있는지 비교한다(단계 S330). 비교 결과 일치하는 패스워드 비교 데이터가 있으면, 그래픽 프로세서(200)는 해당 후보 패스워드가 정당한 패스워드인 것으로 CPU(100)에 보고한다(단계 S340). 반대로 일치하는 패스워드 비교 데이터가 없으면, 그래픽 프로세서(200)는 CPU(100)로 불일치 정보를 보내고(단계 S350), 이에 따라 CPU(100)로부터 새로 전달되는 후보 패스워드들을 내부 메모리에 저장하고 새로이 비교 연산을 수행하여 정당한 후보 패스워드를 찾을 때까지 반복한다.The graphic processor 200 stores the password comparison target data transmitted from the CPU 100 in an internal memory (step S300). In addition, the graphic processor 200 stores the candidate passwords transmitted from the CPU 100 in the internal memory (step S310). Thereafter, the graphic processor 200 uses the candidate password and some password comparison target data stored in the internal memory as parameters, and generates password comparison data based on a mechanism of an individual application program (step S320). In one embodiment, the graphics processor 200 performs operations on all candidate passwords at once through parallel processing to generate password comparison data. The graphic processor 200 compares the generated password comparison data with data that matches the password comparison target data stored in the internal memory (step S330). If there is a matching password comparison data as a result of the comparison, the graphic processor 200 reports to the CPU 100 that the candidate password is a valid password (step S340). On the contrary, if there is no coincidence password comparison data, the graphics processor 200 sends mismatch information to the CPU 100 (step S350), thereby storing candidate passwords newly transmitted from the CPU 100 in the internal memory and newly performing a comparison operation. Repeat until you find a valid candidate password.

이제까지 본 발명에 대하여 그 바람직한 실시예들을 중심으로 살펴보았다. 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자는 본 발명이 본 발명의 본질적인 특성에서 벗어나지 않는 범위에서 변형된 형태로 구현될 수 있음을 이해할 수 있을 것이다. 그러므로 개시된 실시예들은 한정적인 관점이 아니라 설명적인 관점에서 고려되어야 한다. 본 발명의 범위는 전술한 설명이 아니라 특허청구범위에 나타나 있으며, 그와 동등한 범위 내에 있는 모든 차이점은 본 발명에 포함된 것으로 해석되어야 할 것이다.So far I looked at the center of the preferred embodiment for the present invention. It will be understood by those skilled in the art that various changes in form and details may be made therein without departing from the spirit and scope of the invention as defined by the appended claims. Therefore, the disclosed embodiments should be considered in an illustrative rather than a restrictive sense. The scope of the present invention is defined by the appended claims rather than by the foregoing description, and all differences within the scope of equivalents thereof should be construed as being included in the present invention.

도 1은 패스워드 고속 탐색 장치의 블록도.1 is a block diagram of a fast password search device.

도 2는 CPU에서 수행되는 패스워드 고속 탐색을 위한 흐름도.2 is a flowchart for fast password search performed in a CPU.

도 3은 그래픽 프로세서에서 수행되는 패스워드 고속 탐색을 위한 흐름도.3 is a flow chart for fast password search performed in a graphics processor.

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

100 : 중앙 처리 유닛100: central processing unit

110 : 패스워드 비교 대상 데이터 추출부110: password comparison target data extraction unit

120 : 패스워드 비교 대상 데이터 전달부 120: password comparison target data transfer unit

130 : 패스워드 후보 생성부130: password candidate generation unit

140 : 패스워드 후보 전달부140: password candidate delivery unit

150 : 그래픽 프로세서 연산 호출부150: graphics processor operation call unit

160 : 패스워드 출력부160: password output unit

200 : 그래픽 프로세서200: graphics processor

210 : 자원 설정부210: resource setting unit

220 : 패스워드 비교 대상 데이터 저장부220: password comparison target data storage unit

230 : 패스워드 후보 저장부230: password candidate storage unit

240 : 패스워드 탐색부240: password search unit

Claims (20)

삭제delete 삭제delete 사용자 패스워드로 암호화된 파일의 해독을 위해 패스워드를 탐색하기 위한 장치에 있어서,An apparatus for retrieving a password for decryption of a file encrypted with a user password, comprising: 상기 암호화된 파일에서 패스워드 비교의 대상이 되는 데이터를 추출하고, 후보 패스워드들을 생성하는 중앙 처리 유닛; 및A central processing unit which extracts data subject to password comparison from the encrypted file and generates candidate passwords; And 상기 추출된 패스워드 비교 대상 데이터와 상기 생성된 후보 패스워드들을 파라미터로 하여 병렬 처리 연산을 통해 정당한 후보 패스워드를 탐색하는 그래픽 프로세서;A graphic processor searching for a valid candidate password through a parallel processing operation using the extracted password comparison target data and the generated candidate passwords as parameters; 를 포함하되, , &Lt; / RTI & 상기 중앙 처리 유닛은 :The central processing unit is: 상기 암호화된 파일에서 패스워드 비교의 대상이 되는 데이터를 추출하는 패스워드 비교 대상 데이터 추출부;A password comparison target data extraction unit for extracting data to be password comparison from the encrypted file; 상기 추출된 데이터를 상기 그래픽 프로세서로 전달하는 패스워드 비교 대상 데이터 전달부;A password comparison target data transfer unit configured to transfer the extracted data to the graphic processor; 후보 패스워드들을 생성하는 패스워드 후보 생성부;A password candidate generator for generating candidate passwords; 상기 생성된 후보 패스워드들을 상기 그래픽 프로세서로 전달하는 패스워드 후보 전달부; 및A password candidate transfer unit configured to transfer the generated candidate passwords to the graphics processor; And 상기 그래픽 프로세서에서 정당한 패스워드로 탐색된 후보 패스워드를 출력하는 패스워드 출력부;A password output unit for outputting a candidate password retrieved with a valid password by the graphic processor; 를 포함하는 것을 특징으로 하는 패스워드 고속 탐색 장치.Password fast searching device comprising a. 제3항에 있어서,The method of claim 3, 상기 패스워드 후보 생성부가 한번에 생성하는 후보 패스워드 개수는 그래픽 프로세서의 병렬 처리 단위와 동일함을 특징으로 하는 패스워드 고속 탐색 장치.And the number of candidate passwords generated by the password candidate generator at one time is the same as a parallel processing unit of a graphic processor. 제3항에 있어서,The method of claim 3, 상기 패스워드 후보 생성부는 상기 그래픽 프로세서에서 정당한 패스워드를 탐색하기 위한 연산을 수행하는 동안에 미리 새로운 후보 패스워드들을 생성함을 특징으로 하는 패스워드 고속 탐색 장치.And the password candidate generator generates new candidate passwords in advance while the graphics processor performs an operation for searching for a valid password. 제3항에 있어서,The method of claim 3, 상기 패스워드 후보 생성부는, 패딩(padding) 처리를 추가하여 후보 패스워드를 생성함을 특징으로 하는 패스워드 고속 탐색 장치.And the password candidate generator generates a candidate password by adding padding processing. 제3항에 있어서, 상기 중앙 처리 유닛은 :The system of claim 3, wherein the central processing unit is: 패스워드 탐색을 위해 수행해야 할 코드의 특정 부분을 상기 그래픽 프로세서에서 수행하도록 상기 그래픽 프로세서를 호출하는 그래픽 프로세서 연산 호출부;A graphics processor arithmetic caller for calling the graphics processor to execute a specific portion of code to be executed for a password search in the graphics processor; 를 더 포함하는 것을 특징으로 하는 패스워드 고속 탐색 장치.Password fast searching apparatus further comprises. 제7항에 있어서,The method of claim 7, wherein 상기 패스워드 출력부는 상기 후보 패스워드가 상기 그래픽 프로세서의 입력크기에 적합하도록 패딩(padding) 되었거나 다른 데이터가 추가되었다면 해당 부분을 제외시켜 출력함을 특징으로 하는 패스워드 고속 탐색 장치.And outputting the password output unit excluding the corresponding part if the candidate password is padded to fit the input size of the graphic processor or other data is added. 제3항에 있어서, 상기 그래픽 프로세서는 :The processor of claim 3, wherein the graphics processor is: 상기 패스워드 비교 대상 데이터 추출부에서 추출된 패스워드 비교 대상 데이터를 상기 그래픽 프로세서의 내부 메모리에 저장하는 패스워드 비교 대상 데이터 저장부;A password comparison target data storage unit for storing the password comparison target data extracted by the password comparison target data extraction unit in an internal memory of the graphic processor; 상기 패스워드 후보 생성부에서 생성된 후보 패스워드들을 상기 그래픽 프로세서의 내부 메모리에 저장하는 패스워드 후보 저장부; 및A password candidate storage unit for storing the candidate passwords generated by the password candidate generator in an internal memory of the graphics processor; And 상기 저장된 후보 패스워드와 상기 저장된 일부 패스워드 비교 대상 데이터를 파라미터로 하여 병렬 처리 연산을 통해 후보 패스워드별 패스워드 비교 데이터를 생성하고, 생성된 패스워드 비교 데이터와 상기 저장된 패스워드 비교 대상 데이터가 일치하면 해당 후보 패스워드를 정당한 패스워드인 것으로 탐색하는 패스워 드 탐색부;Using the stored candidate password and the stored partial password comparison target data as parameters, password comparison data for each candidate password is generated through parallel processing, and if the generated password comparison data and the stored password comparison target data match, the corresponding candidate password is generated. A password search unit for searching for a valid password; 를 포함하는 것을 특징으로 하는 패스워드 고속 탐색 장치.Password fast searching device comprising a. 제9항에 있어서,10. The method of claim 9, 상기 그래픽 프로세서 내에서의 메모리 이용을 설정하는 자원 설정부;A resource setting unit for setting memory usage in the graphics processor; 를 더 포함하는 것을 특징으로 하는 패스워드 고속 탐색 장치.Password fast searching apparatus further comprises. 제10항에 있어서,The method of claim 10, 상기 자원 설정부는, 상기 패스워드 비교 대상 데이터 저장부에 의해 저장되는 데이터를 위한 메모리 크기를 상기 패스워드 비교 대상 데이터 추출부에 의해 추출된 데이터 크기와 동일하도록 설정함을 특징으로 하는 패스워드 고속 탐색 장치.And the resource setting unit sets a memory size for data stored by the password comparison target data storage unit to be equal to the data size extracted by the password comparison target data extracting unit. 제10항에 있어서,The method of claim 10, 상기 자원 설정부는, 상기 패스워드 후보 저장부에 의해 저장되는 데이터를 위한 메모리 크기를 상기 패스워드 후보 생성부에 의해 생성된 데이터 크기의 두 배가 되도록 설정함을 특징으로 하는 패스워드 고속 탐색 장치.And the resource setting unit sets a memory size for data stored by the password candidate storage unit to be twice as large as a data size generated by the password candidate generator. 사용자 패스워드로 암호화된 파일의 해독을 위해 패스워드를 탐색하기 위한 중앙 처리 유닛에 있어서,A central processing unit for retrieving a password for decryption of a file encrypted with a user password, comprising: 상기 암호화된 파일에서 패스워드 비교의 대상이 되는 데이터를 추출하는 패스워드 비교 대상 데이터 추출부;A password comparison target data extraction unit for extracting data to be password comparison from the encrypted file; 상기 추출된 데이터를 그래픽 프로세서로 전달하는 패스워드 비교 대상 데이터 전달부;A password comparison target data transfer unit configured to transfer the extracted data to a graphic processor; 후보 패스워드들을 생성하는 패스워드 후보 생성부;A password candidate generator for generating candidate passwords; 상기 생성된 후보 패스워드들을 상기 그래픽 프로세서로 전달하는 패스워드 후보 전달부;A password candidate transfer unit configured to transfer the generated candidate passwords to the graphics processor; 패스워드 탐색을 위해 수행해야 할 코드의 특정 부분을 상기 그래픽 프로세서에서 수행하도록 상기 그래픽 프로세서를 호출하는 그래픽 프로세서 연산 호출부; 및A graphics processor arithmetic caller for calling the graphics processor to execute a specific portion of code to be executed for a password search in the graphics processor; And 상기 그래픽 프로세서에서 정당한 패스워드로 탐색된 후보 패스워드를 출력하는 패스워드 출력부;A password output unit for outputting a candidate password retrieved with a valid password by the graphic processor; 를 포함하는 것을 특징으로 하는 중앙 처리 유닛.Central processing unit comprising a. 제13항에 있어서,14. The method of claim 13, 상기 패스워드 후보 생성부가 한번에 생성하는 후보 패스워드 개수는 그래픽 프로세서의 병렬 처리 단위와 동일함을 특징으로 하는 중앙 처리 유닛.And the number of candidate passwords generated by the password candidate generator at one time is the same as a parallel processing unit of a graphic processor. 제 3항에 있어서, 상기 그래픽 프로세서는The method of claim 3, wherein the graphics processor 중앙 처리 유닛에서 암호화된 파일로부터 추출한 패스워드 비교 대상 데이터를 전달받아 내부 메모리에 저장하는 패스워드 비교 대상 데이터 저장부;A password comparison target data storage unit which receives the password comparison target data extracted from the file encrypted by the central processing unit and stores the data in the internal memory; 상기 중앙 처리 유닛에서 생성한 후보 패스워드들을 내부 메모리에 저장하는 패스워드 후보 저장부; 및A password candidate storage unit for storing candidate passwords generated by the central processing unit in an internal memory; And 상기 저장된 후보 패스워드와 상기 저장된 일부 패스워드 비교 대상 데이터를 파라미터로 하여 병렬 처리 연산을 통해 후보 패스워드별 패스워드 비교 데이터를 생성하고, 생성된 패스워드 비교 데이터와 상기 저장된 패스워드 비교 대상 데이터가 일치하면 해당 후보 패스워드를 정당한 패스워드인 것으로 탐색하는 패스워드 탐색부;Using the stored candidate password and the stored partial password comparison target data as parameters, password comparison data for each candidate password is generated through parallel processing, and if the generated password comparison data and the stored password comparison target data match, the corresponding candidate password is generated. A password search unit for searching for a valid password; 를 포함하는 것을 특징으로 하는 패스워드 고속 탐색 장치.Password fast searching device comprising a. 제15항에 있어서,16. The method of claim 15, 상기 그래픽 프로세서 내에서의 메모리 이용을 설정하는 자원 설정부;A resource setting unit for setting memory usage in the graphics processor; 를 더 포함하는 것을 특징으로 하는 패스워드 고속 탐색 장치.Password fast searching apparatus further comprises. 삭제delete 삭제delete 중앙 처리 유닛에서 암호화된 파일에서 패스워드 비교의 대상이 되는 데이터를 추출하는 단계;Extracting data subject to password comparison from the encrypted file in the central processing unit; 중앙 처리 유닛에서 상기 추출된 패스워드 비교 대상 데이터를 그래픽 프로세서로 전달하는 단계;Transferring the extracted password comparison target data to a graphics processor in a central processing unit; 중앙 처리 유닛에서 후보 패스워드들을 생성하는 단계;Generating candidate passwords in a central processing unit; 중앙 처리 유닛에서 상기 생성된 후보 패스워드들을 상기 그래픽 프로세서로 전달하는 단계; Passing the generated candidate passwords to the graphics processor at a central processing unit; 상기 그래픽 프로세서에서 상기 패스워드 비교 대상 데이터 및 상기 후보 패스워드들을 파라미터로 하여 병렬 처리 연산을 통해 정당한 후보 패스워드를 탐색하는 단계; 및중앙 처리 유닛에서 상기 탐색된 정당한 후보 패스워드를 출력하는 단계를 포함하되,Searching for a valid candidate password through a parallel processing operation using the password comparison target data and the candidate passwords as parameters in the graphic processor; And outputting the retrieved legitimate candidate password in a central processing unit, 상기 후보 패스워드들을 생성하는 단계는, 상기 그래픽 프로세서의 병렬 처리 단위와 동일한 개수의 후보 패스워드를 생성함을 특징하고, The generating of the candidate passwords may include generating the same number of candidate passwords as the parallel processing unit of the graphic processor. 상기 탐색하는 단계는The searching step 중앙 처리 유닛에서 암호화된 파일로부터 추출한 패스워드 비교 대상 데이터를 전달받아 내부 메모리에 저장하는 단계;Receiving the password comparison target data extracted from the encrypted file in the central processing unit and storing the received data in the internal memory; 상기 중앙 처리 유닛에서 생성한 후보 패스워드들을 내부 메모리에 저장하는 단계;Storing candidate passwords generated by the central processing unit in an internal memory; 상기 저장된 후보 패스워드와 상기 저장된 일부 패스워드 비교 대상 데이터를 파라미터로 하여 병렬 처리 연산을 통해 후보 패스워드별 패스워드 비교 데이터를 생성하는 단계;Generating password comparison data for each candidate password through a parallel processing operation using the stored candidate password and the stored partial password comparison target data as parameters; 상기 생성된 패스워드 비교 데이터들과 상기 저장된 패스워드 비교 대상 데이터가 일치하는지 비교하는 단계; 및Comparing the generated password comparison data with the stored password comparison target data; And 상기 비교 결과 일치하는 패스워드 비교 데이터가 있으면 해당 후보 패스워드가 정당한 패스워드인 것으로 상기 중앙 처리 유닛으로 보고하는 단계;Reporting to the central processing unit that the candidate password is a valid password if there is password matching data that matches the comparison result; 를 포함하는 것을 특징으로 하는 그래픽 프로세서에서 수행되는 패스워드 고속 탐색 방법.Fast password search method performed in the graphics processor, characterized in that it comprises a. 제19항에 있어서,20. The method of claim 19, 상기 비교 결과 일치하는 패스워드 비교 데이터가 없으면 상기 중앙 처리 유닛으로부터 새로운 후보 패스워드들을 입력받는 단계;Receiving new candidate passwords from the central processing unit if there is no matching password comparison data as a result of the comparison; 를 더 포함하는 것을 특징으로 하는 그래픽 프로세서에서 수행되는 패스워드 고속 탐색 방법.The password fast searching method performed by the graphic processor further comprising.
KR1020080131702A 2008-12-22 2008-12-22 High-speed password searching device and method using graphic processor KR101225749B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020080131702A KR101225749B1 (en) 2008-12-22 2008-12-22 High-speed password searching device and method using graphic processor

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020080131702A KR101225749B1 (en) 2008-12-22 2008-12-22 High-speed password searching device and method using graphic processor

Publications (2)

Publication Number Publication Date
KR20100073114A KR20100073114A (en) 2010-07-01
KR101225749B1 true KR101225749B1 (en) 2013-01-24

Family

ID=42636135

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020080131702A KR101225749B1 (en) 2008-12-22 2008-12-22 High-speed password searching device and method using graphic processor

Country Status (1)

Country Link
KR (1) KR101225749B1 (en)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102079124B1 (en) * 2018-08-29 2020-02-19 나성훈 Digital forensic method for mobile device

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
'Faster Password Recovery with Modern GPUs (2008.04.24.;인용발명) *

Also Published As

Publication number Publication date
KR20100073114A (en) 2010-07-01

Similar Documents

Publication Publication Date Title
EP2894810B1 (en) Searchable Code Processing System and Method
US9275250B2 (en) Searchable encryption processing system
CN111199053B (en) System and method for multi-character wildcard search of encrypted data
CN110110163A (en) Safe substring search is with filtering enciphered data
CN107077469B (en) Server device, search system, terminal device, and search method
WO2019114122A1 (en) Encryption method for login information, device, electronic device, and medium
JP2015135541A (en) Retrievable encryption processing system and retrievable encryption processing method
Dürmuth et al. Evaluation of standardized password-based key derivation against parallel processing platforms
CN111587452B (en) Registration device, search operation device, data management device, and computer-readable storage medium
CN103607420A (en) Safe electronic medical system for cloud storage
US10673627B2 (en) Encryption device, search device, computer readable medium, encryption method, and search method
US9887835B2 (en) Symmetric stream cipher
CN112860933B (en) Ciphertext image retrieval method, device, terminal equipment and storage medium
CN113626645A (en) Hierarchical optimization efficient ciphertext fuzzy retrieval method and related equipment
KR101225749B1 (en) High-speed password searching device and method using graphic processor
JP6672451B2 (en) Encrypted search index merge server, encrypted search index merge system, and encrypted search index merge method
US11281688B2 (en) Ranking and de-ranking data strings
Handa et al. Keyword binning-based efficient search on encrypted cloud data
KR20110064560A (en) Password serarching method and system in multi-node parallel-processing environment
Kim et al. Gpu-accelerated password cracking of pdf files
JP6918253B2 (en) Confidential search system and Confidential search method
CN111177759B (en) Linear operation acceleration method and device
Song et al. Searchable Symmetric Encryption with Tunable Leakage Using Multiple Servers
CN110612563B (en) Search device, hidden search system, and computer-readable storage medium
CN114091070A (en) Hilbert transform-based ciphertext generation method, server, medium, and apparatus

Legal Events

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

Payment date: 20151228

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20161228

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20171226

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20181226

Year of fee payment: 7