KR101225749B1 - High-speed password searching device and method using graphic processor - Google Patents
High-speed password searching device and method using graphic processor Download PDFInfo
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/30—Authentication, i.e. establishing the identity or authorisation of security principals
- G06F21/31—User authentication
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/30—Authentication, i.e. establishing the identity or authorisation of security principals
- G06F21/45—Structures or tools for the administration of authentication
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0861—Generation of secret information including derivation or calculation of cryptographic keys or passwords
- H04L9/0863—Generation of secret information including derivation or calculation of cryptographic keys or passwords involving passwords or one-time passwords
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0894—Escrow, 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
본 발명은 패스워드 탐색 기술에 관한 것으로, 특히 사용자가 설정한 패스워드로 암호화된 파일을 복원하기 위해 요구되는 패스워드를 탐색하는 기술에 관한 것이다.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)에 대해 설명한다. 패스워드 비교 대상 데이터 추출부(110)는 암호화된 파일에서 패스워드 비교의 대상이 되는 데이터를 추출한다. 예를 들어, Acrobat PDF 파일인 경우는 Uentry, Pentry, IDentry가 패스워드 비교의 대상이 되는 데이터에 해당되고, MS-word/excel/powerpoint 파일인 경우는 Docid, Salt, Hashedsalt 값이 패스워드 비교의 대상이 되는 데이터에 해당된다. 각 응용 프로그램마다 패스워드 비교를 위해 추출해야 할 데이터 정보를 각 프로그램 제작사로부터 공개된 정보 또는 역공학을 통하여 얻을 수 있다. 패스워드 비교 대상 데이터 추출부(110)는 사전에 얻어진 응용프로그램 별 패스워드 비교를 위해 추출해야 할 데이터 정보를 이용하여 파일에서 해당 데이터를 추출한다. 패스워드 비교 대상 데이터 추출부(110)에서 추출된 데이터는 후술할 그래픽 프로세서(200)의 패스워드 탐색부(240)에서 연산된 결과와 비교하는데 사용된다. 그리고 패스워드 비교 대상 데이터 전달부(120)는 패스워드 비교 대상 데이터 추출부(110)에서 추출된 데이터를 그래픽 프로세서(200)의 메모리로 전달하기 위한 역할을 한다.First, the
패스워드 후보 생성부(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
그래픽 프로세서 연산 호출부(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
이해를 돕기 위하여 암호화된 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
이상에서 설명한 바와 같이, 그래픽 프로세서를 이용한 패스워드 고속 탐색 장치는 그래픽 보드를 장착한 컴퓨터를 이용하여 컴퓨터의 범용 연산과 그래픽 보드의 병렬처리 연산을 동시에 이용한다. 일 실시예에 있어서, 그래픽 보드는 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
도 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
이제까지 본 발명에 대하여 그 바람직한 실시예들을 중심으로 살펴보았다. 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자는 본 발명이 본 발명의 본질적인 특성에서 벗어나지 않는 범위에서 변형된 형태로 구현될 수 있음을 이해할 수 있을 것이다. 그러므로 개시된 실시예들은 한정적인 관점이 아니라 설명적인 관점에서 고려되어야 한다. 본 발명의 범위는 전술한 설명이 아니라 특허청구범위에 나타나 있으며, 그와 동등한 범위 내에 있는 모든 차이점은 본 발명에 포함된 것으로 해석되어야 할 것이다.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)
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)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR102079124B1 (en) * | 2018-08-29 | 2020-02-19 | 나성훈 | Digital forensic method for mobile device |
-
2008
- 2008-12-22 KR KR1020080131702A patent/KR101225749B1/en active IP Right Grant
Non-Patent Citations (1)
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 |