KR20100098094A - Gpu-based fast password recovery system and method for ms-office - Google Patents
Gpu-based fast password recovery system and method for ms-office Download PDFInfo
- Publication number
- KR20100098094A KR20100098094A KR1020090017097A KR20090017097A KR20100098094A KR 20100098094 A KR20100098094 A KR 20100098094A KR 1020090017097 A KR1020090017097 A KR 1020090017097A KR 20090017097 A KR20090017097 A KR 20090017097A KR 20100098094 A KR20100098094 A KR 20100098094A
- Authority
- KR
- South Korea
- Prior art keywords
- passwords
- memory
- password
- graphics processor
- hashedsalt
- 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/60—Protecting data
-
- 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/31—User authentication
- G06F21/32—User authentication using biometric data, e.g. fingerprints, iris scans or voiceprints
-
- 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
- G06F21/34—User authentication involving the use of external additional devices, e.g. dongles or smart cards
-
- 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2221/00—Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/21—Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/2131—Lost password, e.g. recovery of lost or forgotten passwords
Abstract
Description
본 발명은 패스워드 복구 기술에 관한 것으로, 특히 사용자가 설정한 패스워드로 암호화된 파일을 복원하기 위해 필요한 패스워드를 복구하는 기술에 관한 것이다.The present invention relates to a password recovery technique, and more particularly, to a technique for recovering a password required for restoring 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.
항포렌식 기술에 있어 가장 기본적으로 간주되는 데이터 암호화 기술은 오랜 역사에도 불구하고 그 공격이 가장 까다로운 대상으로 간주된다. 이는 암호화에 사용되는 알고리즘들이 대부분 전 세계적으로 안전성이 확인된 관계로 별다른 취약성이 발견되고 있지 않기 때문이다. 암호화된 파일로부터 패스워드를 복구하기 위해서는 전수조사를 이용하는 것이 가장 확실한 방법이지만, 가장 많은 계산량을 요구하는 관계로 이를 고속화하기 위한 기법들이 많이 연구되어 왔다.Data encryption, which is considered the most basic of anti-forensic technology, is considered the most demanding target despite its long history. This is because most of the algorithms used for encryption have been secured worldwide, so there are no vulnerabilities found. It is the most reliable method to use the full search to recover the password from the encrypted file. However, many techniques have been studied to speed it up because it requires the most computation.
최근 그래픽 프로세서(GPU)를 이용한 병렬처리기술들이 각광을 받으면서 이를 이용한 패스워드의 고속 검색에도 많은 연구가 행해지고 있다. 칩 내부에 집적된 복수의 쓰레드 처리 유닛을 통해 많은 데이터들을 동시에 처리할 수 있다는 점에서 패스워드 전수조사에 적합한 디바이스로 인식되고 있다.Recently, as parallel processing technologies using a graphics processor (GPU) have been in the spotlight, a lot of researches have been conducted on high-speed retrieval of passwords using the same. It is recognized as a device suitable for full password inspection because it can process many data simultaneously through a plurality of thread processing units integrated inside the chip.
MS-Office의 파일 암호화 알고리즘 중 하나인 “Office 97/2000 호환 가능”으로 암호화된 파일로부터 암호화를 위해 사용자가 입력한 패스워드 문자열을 복구하기 위해 일반적인 컴퓨팅 방식으로는 방대한 시간이 요구되는 문제점을 해결함을 목적으로 한다.Addresses a problem that requires a large amount of time to recover a password string entered by a user for encryption from a file encrypted with “Office 97/2000 Compatible”, one of MS-Office's file encryption algorithms. For the purpose.
전술한 기술적 과제를 달성하기 위한 중앙 처리 유닛은 암호화된 MS-Office 파일로부터 DOCID, SALT, HASHEDSALT 값들을 추출하는 자료 추출부; 복수의 패스워드들을 입력받거나 생성하는 패스워드 생성부; 및 추출된 DOCID, SALT, HASHEDSALT 값들을 그래픽 프로세서의 상수 메모리에 저장하고, 입력받거나 생성된 복수의 패스워드들을 그래픽 프로세서의 글로벌 메모리에 저장하며, 그래픽 프로세서에서 글로벌 메모리에 저장된 복수의 패스워드들에 대해 메모리에 저장된 DOCID, SALT, HASHEDSALT 값들을 이용하여 패스워드 복구 알고리즘을 병렬 처리함에 의해 복구된 패스워드를 출력하는 메인부;를 포함한다.The central processing unit for achieving the above technical problem is a data extraction unit for extracting DOCID, SALT, HASHEDSALT values from an encrypted MS-Office file; Password generation unit for receiving or generating a plurality of passwords; And store the extracted DOCID, SALT, and HASHEDSALT values in a constant memory of the graphics processor, store a plurality of input or generated passwords in the global memory of the graphics processor, and store a plurality of passwords stored in the global memory in the graphics processor. And a main unit configured to output a password recovered by parallel processing a password recovery algorithm using DOCID, SALT, and HASHEDSALT values stored in the same.
한편, 전술한 기술적 과제를 달성하기 위한 그래픽 프로세서는 Office 97/2000 호환 가능 알고리즘으로 암호화된 MS-Office 파일로부터 중앙 처리 유닛에 의해 추출된 DOCID, SALT, HASHEDSALT 값들과 중앙 처리 유닛에 의해 제공되는 복수의 패스워드들이 저장되는 적어도 하나의 메모리; 및 복수의 패스워드들에 대해 저장된 DOCID, SALT, HASHEDSALT 값들을 이용하여 Office 97/2000 호환 가능 알고 리즘에 의한 패스워드의 키열 변환 과정 및 패스워드의 일치 여부를 판별하는 과정을 병렬 처리하는 복수의 쓰레드 프로세서들;을 포함한다.On the other hand, the graphics processor for achieving the above technical problem is a plurality of DOCID, SALT, HASHEDSALT values extracted by the central processing unit from the MS-Office file encrypted by the Office 97/2000 compatible algorithm and provided by the central processing unit At least one memory in which passwords of the are stored; And a plurality of thread processors that process the key string conversion of the password by the Office 97/2000 compatible algorithm and the process of determining whether the passwords are matched by using DOCID, SALT, and HASHEDSALT values stored for the plurality of passwords. It includes;
한편, 전술한 기술적 과제를 달성하기 위한 패스워드 복구 시스템은 Office 97/2000 호환 가능 알고리즘으로 암호화된 MS-Office 파일로부터 DOCID, SALT, HASHEDSALT 값들을 추출하여 그래픽 프로세서의 메모리에 저장하고, 복수의 패스워드들을 입력받거나 생성하여 그래픽 프로세서의 메모리에 저장하는 중앙 처리 유닛; 및 그래픽 프로세서의 메모리에 저장된 복수의 패스워드들에 대해 저장된 DOCID, SALT, HASHEDSALT 값들을 이용하여 Office 97/2000 호환 가능 알고리즘에 의한 패스워드의 키열 변환 과정 및 패스워드의 일치 여부를 판별하는 과정을 병렬 처리하며 그 결과를 중앙 처리 유닛이 획득할 수 있도록 제공하는 그래픽 프로세서;를 포함한다.On the other hand, the password recovery system for achieving the above-described technical problem extracts the DOCID, SALT, HASHEDSALT values from the MS-Office file encrypted by the Office 97/2000 compatible algorithm, and stores them in the memory of the graphics processor, a plurality of passwords A central processing unit which receives or generates an input and stores the same in a memory of the graphics processor; And converting the key sequence of the password by the Office 97/2000 compatible algorithm and determining whether the password matches by using DOCID, SALT, and HASHEDSALT values stored for the plurality of passwords stored in the memory of the graphics processor. A graphics processor for providing the result to the central processing unit for acquisition.
한편, 전술한 기술적 과제를 달성하기 위한 패스워드 복구 방법은 중앙 처리 유닛이 Office 97/2000 호환 가능 알고리즘으로 암호화된 MS-Office 파일로부터 DOCID, SALT, HASHEDSALT 값들을 추출하는 단계; 중앙 처리 유닛이 복수의 패스워드들을 입력받거나 생성하는 단계; 중앙 처리 유닛이 추출된 DOCID, SALT, HASHEDSALT 값들을 그래픽 프로세서의 상수 메모리에 저장하는 단계; 중앙 처리 유닛이 입력받거나 생성된 복수의 패스워드들을 그래픽 프로세서의 글로벌 메모리에 저장하는 단계; 그래픽 프로세서가 글로벌 메모리에 저장된 복수의 패스워드들을 공유 메모리로 캐쉬하는 단계; 그래픽 프로세서가 공유 메모리에 캐쉬된 복수의 패스워드들 각각에 대해 상수 메모리에 저장된 DOCID, SALT, HASHEDSALT 값들을 이용 하여 Office 97/2000 호환 가능 알고리즘에 의해 패스워드의 키열 변환 과정 및 패스워드의 일치 여부를 판별하는 과정을 병렬 처리하여 패스워드를 복구하는 단계; 및 중앙 처리 유닛이 복구된 패스워드를 출력하는 단계;를 포함한다.On the other hand, a password recovery method for achieving the above-described technical problem comprises the steps of extracting the DOCID, SALT, HASHEDSALT values from the MS-Office file encrypted by the central processing unit Office 97/2000 compatible algorithm; The central processing unit receiving or generating a plurality of passwords; Storing, by the central processing unit, the extracted DOCID, SALT, and HASHEDSALT values in a constant memory of the graphics processor; Storing, by the central processing unit, a plurality of input or generated passwords in a global memory of the graphics processor; The graphics processor caching a plurality of passwords stored in the global memory into the shared memory; The graphics processor uses DOCID, SALT, and HASHEDSALT values stored in constant memory for each of the plurality of passwords cached in the shared memory to determine whether the passwords are matched by the key string conversion process and passwords by the Office 97/2000 compatible algorithm. Parallelizing the process to recover the password; And outputting, by the central processing unit, the recovered password.
본 발명은 기존 MS-Office의 파일 암호화 알고리즘 중 하나인 “Office 97/2000 호환 가능”알고리즘으로 암호화된 파일로부터 암호화를 위해 사용자가 입력한 패스워드를 복구하기 위해 일반적인 컴퓨팅 방식에서 요구되는 방대한 시간 소요라는 문제점을 해결한다. 즉, 본 발명에 의하면 고속으로 패스워드를 복구하는 것이 가능하다.The present invention is based on the vast amount of time required in general computing methods for recovering a password entered by a user for encryption from a file encrypted with an "Office 97/2000 compatible" algorithm, one of the file encryption algorithms of the existing MS-Office. Solve the problem. That is, according to the present invention, it is possible to recover the password at high speed.
전술한, 그리고 추가적인 본 발명의 양상들은 첨부된 도면을 참조하여 설명되는 바람직한 실시예들을 통하여 더욱 명백해질 것이다. 이하에서는 본 발명을 이러한 실시예를 통해 당업자가 용이하게 이해하고 재현할 수 있도록 상세히 설명하기로 한다.The foregoing and further aspects of the present invention will become more apparent through the preferred embodiments described 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.
마이크로소프트에서 공개한 문서에 따르면 “Office 97/2000 호환 가능”알고리즘으로 암호화된 파일은 다음과 같은 과정을 통해 사용자가 입력한 패스워드 문자열을 실제 암호화를 위한 키 열로 변환한다. 즉, 사용자가 입력한 패스워드가 직접 암호화키로 사용되는 것은 아니다.According to a document published by Microsoft, files encrypted with the "Office 97/2000 Compatible" algorithm convert the password string entered by the user into a string of keys for actual encryption using the following process. In other words, the password entered by the user is not directly used as an encryption key.
도 1은 패스워드 문자열의 키 열 변환 과정 및 패스워드의 일치 여부를 판별하는 과정을 도시한 것이며, 도 2a 내지 도 2f는 “password”라는 문자열을 실례 로 들어 도 1의 알고리즘에 따른 패스워드 열의 키열 변환 및 이의 검증 과정을 도시한 것이다.1 illustrates a process of converting a key string of a password string and a process of determining whether or not a password matches. FIGS. 2A to 2F illustrate a string sequence of a password string according to the algorithm of FIG. It shows the verification process.
① 입력된 패스워드열(=“password”)를 Unicode 방식으로 변환한다([도 2a]).1) The input password string (= “password”) is converted into the Unicode system ([FIG. 2A]).
② 위 ①에서 얻어진 결과에 패딩을 붙여 MD5 변환을 위한 64바이트 열로 만든 후, MD5 해쉬를 수행한다([도 2b]).② After padding the result obtained in ① above to make a 64-byte column for MD5 conversion, MD5 hash is performed ([FIG. 2B]).
③ 위 ②에서 얻어진 해쉬값의 상위 5바이트와 대상 파일로부터 읽어온 16바이트의 DOCID 값을 번갈아 배열하여 5개의 64바이트 열을 만들어 각각에 대해 MD5를 적용한다. 이어서 DOCID만으로 이루어진 새로운 64바이트열을 만들어 연달아 MD5를 수행하여 결과값 16바이트(=DIGEST_1)를 얻는다([도 2c]).③ By arranging the upper 5 bytes of the hash value obtained in ② above and the DOCID value of 16 bytes read from the target file, make five 64 byte columns and apply MD5 to each. Subsequently, a new 64-byte string consisting only of DOCIDs is created and MD5 is successively performed to obtain a result value of 16 bytes (= DIGEST_1) (FIG. 2C).
④ 위 ③에서 얻어진 해쉬 값의 최상위 5바이트만으로 새로운 64바이트열을 만들어 새로이 MD5를 수행한다([도 2d]).④ A new 64-byte string is created using only the most significant 5 bytes of the hash value obtained in the above ③ and newly executed MD5 ([FIG. 2D]).
⑤ 위 ④에서 얻어진 해쉬 값을 이용 RC4 암호화 알고리즘의 키로 사용하여 16바이트의 SALT와 HASHEDSALT를 연달아 암호화하여 ‘Encrypted SALT’와 ‘Encrypted HASHEDSALT’를 각각 얻는다([도 2e]).⑤ Encrypted SALT and Encrypted HASHEDSALT are obtained by sequentially encrypting 16-byte SALT and HASHEDSALT using the hash value obtained in ④ above as a key of the RC4 encryption algorithm ([FIG. 2E]).
⑥ 위 ⑤의 과정에서 암호화된 16바이트 SALT 값에 패딩을 붙여 64바이트로 만든 후, 이에 대한 새로운 MD5 해쉬값(=RST)을 계산한다([도 2f]).⑥ After padding the encrypted 16-byte SALT value in the process of ⑤ to make 64 bytes, a new MD5 hash value (= RST) is calculated ([FIG. 2f]).
⑦ ‘Encrypted HASHEDSALT’와 위 ⑥의 과정에서 얻어진 RST가 동일할 경우, 위 ①의 과정에서 키 열 변환에 입력된 패스워드열이 정확한 것으로 판단한다.⑦ If the 'Encrypted HASHEDSALT' and the RST obtained in the process of ⑥ are the same, it is determined that the password string entered in the key string conversion in the process of ① is correct.
이 같은 알고리즘에서는 최대 15자까지의 문자를 패스워드 문자열로 입력받 을 수 있으며, 사용할 수 있는 문자는 아스키코드(ASCII Code) 값이 0x20인 공백문자로부터 0x7E인 ‘~’문자까지이며 모두 95개에 달한다.In this algorithm, up to 15 characters can be entered as the password string. The characters that can be used are from ASCII characters with 0x20 space characters to 0x7E '~' characters. To reach.
도 3은 본 발명의 일 실시예에 따른 패스워드 복구 시스템에 적용할 그래픽 프로세서의 하드웨어 구조를 나타낸 블록도이다.3 is a block diagram illustrating a hardware structure of a graphic processor to be applied to a password recovery system according to an embodiment of the present invention.
그래픽 프로세서(300)는 내부적으로 복수의 쓰레드 프로세서(Thread Processor(s))(301)를 가진다. 이들 프로세서는 그래픽 프로세서의 가장 핵심적인 하드웨어 자원으로서, 그래픽 프로세서 내부에 하드웨어적으로 구현된 스케줄링 관리를 통해 사용자가 호출한 복수의 쓰레드들을 병렬적으로 수행한다. 또한 Thread Processor(s)(301)의 병렬처리 연산을 지원하기 위해 여러 가지 메모리들이 지원되고 있는데, 도 3에 도시된 것처럼 주로 4개의 메모리가 이용된다.The
레지스터(Register)(302)는 개별 쓰레드 프로세서가 연산 도중에 사용하는 로컬 데이터를 일시적으로 저장하는데 이용되며, 가장 빠른 입출력 속도를 가진다. 상수 메모리(Constant Memory)(303)는 호스트의 중앙 처리 유닛(Central Processing Unit, CPU)에서 그래픽 프로세서의 컴퓨팅에 필요한 데이터를 직접 캐쉬할 때에 사용되는 메모리이며, 그래픽 프로세서 측에서는 이 메모리에 대한 읽기 작업만이 허용된다. 공유 메모리(Shared Memory)(304)는 그래픽 프로세서의 쓰레드들이 반복적으로 사용되는 데이터들을 자유롭게 캐쉬하였다가 다시 읽을 수 있도록 허용하고 있으며, Register(302)를 제외하고는 가장 빠른 입출력 속도를 가진다. 글로벌 메모리(Global Memory)(305)는 시스템의 호스트 CPU와 그래픽 프로세서 간의 데이터 전송에 사용되며 가장 큰 메모리 크기를 가진다.Register 302 is used to temporarily store local data used by an individual thread processor during an operation and has the fastest input / output speed. Constant memory 303 is a memory used to directly cache data necessary for the graphics processor's computing in the host's central processing unit (CPU). On the graphics processor side, only a read operation on the memory is performed. This is allowed. Shared memory 304 allows graphics processor threads to freely cache and read data that is repeatedly used, and has the fastest input / output speed except register 302. Global memory 305 is used for data transfer between the host CPU of the system and the graphics processor and has the largest memory size.
도 4는 본 발명의 일 실시예에 따른 패스워드 복구 시스템의 블록도이다.4 is a block diagram of a password recovery system according to an embodiment of the present invention.
메인부(Main)(400)는 시스템의 전체적인 동작을 제어하며, 다른 구성 요소의 구동 코드를 호출한다. 자료 추출부(410)는 ‘Office 97/2000 호환 가능’알고리즘으로 암호화된 MS-Office 파일로부터 DOCID, SALT, HASHEDSALT 값들을 읽어오는 역할을 한다. 패스워드 생성부(420)는 복수의 패스워드 문자열들을 생성 또는 외부로부터 입력받는다. 패스워드 문자열을 생성할 경우, 무작위 또는 순차적 방법 모두 가능하다. Main(400)과 자료 추출부(410) 및 패스워드 생성부(420)는 패스워드 복구 시스템의 호스트 CPU에서 동작하도록 구현된다. 키열 생성 및 검사부(430)는 패스워드 생성부(420)에서 생성 또는 입력받은 패스워드를 이용하여 도 1에 따른 순서대로 키 열을 생성한 후 이의 일치 여부를 확인하며, 도 3에 예시된 바와 같은 내부 하드웨어 구조를 가지는 그래픽 프로세서로 구현된다. 그리고 참고로 패스워드 복구 시스템에는 Nvidia 8800 계열의 GPU가 장착된 그래픽 보드가 이용될 수 있다.The
도 5는 도 4에서 설명한 각 구성부의 상호 동작 및 그래픽 프로세서의 자원에 대한 활용 방안을 설명하기 위한 참조도이다.FIG. 5 is a reference diagram for explaining a method of using the resources of the graphic processor and the interaction of each component described with reference to FIG. 4.
자료 추출부(410)는 ‘Office 97/2000 호환 가능’알고리즘으로 암호화된 MS-Office 파일로부터 DOCID, SALT, HASHEDSALT 값들을 읽어오며, 패스워드 생성부(420)는 복수의 패스워드들을 생성하거나 사용자로부터 입력받는다. Main(400)은 자료 추출부(410)에 의해 읽혀진 DOCID, SALT, HASHEDSALT 값들을 그래픽 프로세서의 Constant Memory(320)에 저장(B1)한다. 또한 Main(400)은 패스워드 생성 부(420)로부터 출력된 복수의 패스워드들을 그래픽 프로세서의 Global Memory(340)에 복사(B2)한다. 일 실시예에 있어서, Main(400)이 한번에 Global Memory(340)에 저장하는 패스워드의 수는 그래픽 프로세서의 쓰레드 개수와 동일하다.The
Thread Porcessors(300)는 Global Memory(340)에 저장된 패스워드들을 Shared Memory(330)에 캐쉬(B3)하여 키열 생성 및 검증 과정을 속도를 향상시킨다. 이 과정에서 필요한 일시적인 데이터들은 Register(310)에 임시로 저장(B4)된다. 그리고 DOCID, SALT, HASHEDSALT 값들에 대한 참조(B5)는 Constant Memory(320)에 저장된 값들을 사용한다. 또한 패스워드의 참조(B6)를 위해서는 Shared Memory(330)에 저장된 값들을 사용한다. Thread Porcessors(300)는 각각이 DOCID, SALT, HASHEDSALT 값들을 이용하여 도 1의 알고리즘에 의한 패스워드의 키열 변환 과정 및 패스워드의 일치 여부를 판별하는 과정을 병렬 처리하며, 그 결과를 Global Memory(340)에 저장(B7)한다.The thread porcessors 300 cache B3 passwords stored in the
도 6은 본 발명의 일 실시예에 따른 패스워드 복구 흐름도이다.6 is a flowchart of a password recovery according to an embodiment of the present invention.
CPU는 ‘Office 97/2000 호환 가능’알고리즘으로 암호화된 MS-Office 파일로부터 DOCID, SALT, HASHEDSALT 값들을 읽어온다(단계 S600). 그리고 그래픽 프로세서의 쓰레드 개수만큼 패스워드를 생성한다(단계 S610). CPU는 DOCID, SALT, HASHEDSALT 값들을 Constant Memory(320)에 복사(B1)하고, 생성된 패스워드들을 Global Memory(340)에 복사(B2)한다(단계 S620). 이후 CPU는 패스워드 복구를 위한 알고리즘 수행을 위한 GPU 제어코드를 호출한다(단계 S630). 호출된 그래픽 프로세서의 Thread Processor(s)(300)는 Global Memory(340)에 저장된 패스워드들을 Shared Memory(330)에 캐쉬(B3)한다(단계 S640). Thread Processor(s)(300)는 데이터 참조(B4, B5, B6)를 통한 키열을 생성하고, 패스워드의 일치 여부를 판단한다(단계 S650)(단계 S660). 단계 S650은 도 1의 과정과 동일하다. 이후 그래픽 프로세서는 일치되는 패스워드를 발견한 쓰레드 번호를 Global Memory(340)에 기록(B7)한다(단계 S670). CPU는 Global Memory(340)에 기록된 결과값이 있는지를 확인하고(단계 S680), 기록된 결과값이 있으면 쓰레드 번호에 해당하는 패스워드를 화면 출력한다(단계 S690).The CPU reads DOCID, SALT and HASHEDSALT values from the MS-Office file encrypted with the 'Office 97/2000 Compatible' algorithm (step S600). The password is generated as many as the number of threads of the graphic processor (step S610). The CPU copies DOCID, SALT and HASHEDSALT values to the Constant Memory 320 (B1), and copies the generated passwords to the Global Memory 340 (B2) (step S620). The CPU then calls the GPU control code for performing the algorithm for password recovery (step S630). The thread processor (s) 300 of the called graphics processor caches (B3) the passwords stored in the
이제까지 본 발명에 대하여 그 바람직한 실시예들을 중심으로 살펴보았다. 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자는 본 발명이 본 발명의 본질적인 특성에서 벗어나지 않는 범위에서 변형된 형태로 구현될 수 있음을 이해할 수 있을 것이다. 그러므로 개시된 실시예들은 한정적인 관점이 아니라 설명적인 관점에서 고려되어야 한다. 본 발명의 범위는 전술한 설명이 아니라 특허청구범위에 나타나 있으며, 그와 동등한 범위 내에 있는 모든 차이점은 본 발명에 포함된 것으로 해석되어야 할 것이다.So far I looked at the center of the preferred embodiment for the present invention. Those skilled in the art will appreciate that the present invention can be implemented in a modified form without departing from the essential features of the present invention. Therefore, the disclosed embodiments should be considered in descriptive sense only and not for purposes of limitation. The scope of the present invention is shown in the claims rather than the foregoing description, and all differences within the scope will be construed as being included in the present invention.
도 1은 패스워드 문자열의 키 열 변환 과정 및 패스워드의 일치 여부를 판별하는 과정 예시도.1 is a diagram illustrating a process of determining whether a key string is converted into a password string and whether a password matches.
도 2a 내지 도 2f는 “password”라는 문자열을 실례로 들어 도 1의 알고리즘에 따른 패스워드 열의 키열 변환 및 이의 검증 과정 예시도.2A to 2F are exemplary diagrams of key string conversion of a password string and a verification process thereof according to the algorithm of FIG.
도 3은 본 발명의 일 실시예에 따른 패스워드 복구 시스템에 적용할 그래픽 프로세서의 하드웨어 구조를 나타낸 블록도.3 is a block diagram illustrating a hardware structure of a graphics processor to be applied to a password recovery system according to an embodiment of the present invention.
도 4는 본 발명의 일 실시예에 따른 패스워드 복구 시스템의 블록도.4 is a block diagram of a password recovery system according to an embodiment of the present invention.
도 5는 도 4에서 설명한 각 구성부의 상호 동작 및 그래픽 프로세서의 자원에 대한 활용 방안을 설명하기 위한 참조도.FIG. 5 is a reference diagram for explaining an operation of each component of the component described in FIG. 4 and utilization of resources of a graphic processor. FIG.
도 6은 본 발명의 일 실시예에 따른 패스워드 복구 흐름도.6 is a password recovery flowchart according to an embodiment of the present invention.
Claims (10)
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020090017097A KR101081574B1 (en) | 2009-02-27 | 2009-02-27 | GPU-based fast password recovery system and method for MS-Office |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020090017097A KR101081574B1 (en) | 2009-02-27 | 2009-02-27 | GPU-based fast password recovery system and method for MS-Office |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20100098094A true KR20100098094A (en) | 2010-09-06 |
KR101081574B1 KR101081574B1 (en) | 2011-11-09 |
Family
ID=43005115
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020090017097A KR101081574B1 (en) | 2009-02-27 | 2009-02-27 | GPU-based fast password recovery system and method for MS-Office |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR101081574B1 (en) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101454469B1 (en) * | 2011-12-14 | 2014-10-24 | 한국전자통신연구원 | A method for fast password recovery method against an encrypted ms-office 2007 file |
KR101499804B1 (en) * | 2013-04-18 | 2015-03-09 | 광운대학교 산학협력단 | A High-Speed Generation Device of Digital holographic Contents based on GPGPU |
JP2015094944A (en) * | 2013-11-08 | 2015-05-18 | 韓國電子通信研究院Electronics and Telecommunications Research Institute | Device and method for decrypting encrypted file |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100223484B1 (en) | 1996-11-25 | 1999-10-15 | 윤종용 | A computer system having password recovery function and a recovery method of that |
US7929707B1 (en) | 2007-09-06 | 2011-04-19 | Elcomsoft Co. Ltd. | Use of graphics processors as parallel math co-processors for password recovery |
-
2009
- 2009-02-27 KR KR1020090017097A patent/KR101081574B1/en active IP Right Grant
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101454469B1 (en) * | 2011-12-14 | 2014-10-24 | 한국전자통신연구원 | A method for fast password recovery method against an encrypted ms-office 2007 file |
KR101499804B1 (en) * | 2013-04-18 | 2015-03-09 | 광운대학교 산학협력단 | A High-Speed Generation Device of Digital holographic Contents based on GPGPU |
JP2015094944A (en) * | 2013-11-08 | 2015-05-18 | 韓國電子通信研究院Electronics and Telecommunications Research Institute | Device and method for decrypting encrypted file |
Also Published As
Publication number | Publication date |
---|---|
KR101081574B1 (en) | 2011-11-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20190158296A1 (en) | Redactable document signatures | |
US9607160B2 (en) | Method and apparatus for providing string encryption and decryption in program files | |
CN103049709B (en) | Based on password recovery system and the restoration methods thereof of generator expansion rainbow table | |
US20150134971A1 (en) | Apparatus and method for decrypting encrypted file | |
WO2013191719A1 (en) | Fingerprinting executable code | |
CN115051798B (en) | Random number generation method and device, electronic equipment and storage medium | |
KR101081574B1 (en) | GPU-based fast password recovery system and method for MS-Office | |
CN105893107A (en) | Method for acquiring logged-on user password from memory mirroring documents of 64-bit Windows operation system | |
CN1694394A (en) | Deciphering method for file password | |
US7599492B1 (en) | Fast cryptographic key recovery system and method | |
CN110084599A (en) | Cipher key processing method, device, equipment and storage medium | |
Wang et al. | Constant memory optimizations in MD5 Crypt cracking algorithm on GPU-accelerated supercomputer using CUDA | |
CN107291898A (en) | MySQL authentication password recovery system based on FPGA and method thereof | |
Choudary et al. | Infiltrate the vault: Security analysis and decryption of lion full disk encryption | |
Collange et al. | Using graphics processors for parallelizing hash-based data carving | |
Schmidt et al. | A fast parameterized sha3 accelerator | |
CN108595920A (en) | Network video listens management support rights service subsystem | |
Dandass | Using FPGAs to parallelize dictionary attacks for password cracking | |
CN111651509B (en) | Hbase database-based data importing method and device, electronic equipment and medium | |
Yu et al. | Password Cracking of PDF 2.0 documents on GPU | |
Kim et al. | Gpu-accelerated password cracking of pdf files | |
KR101225749B1 (en) | High-speed password searching device and method using graphic processor | |
Zhan et al. | Study on GPU-based password recovery for MS Office2003 document | |
Maabreh et al. | A multithreading and hashing technique for indexing Target‐Decoy peptides databases | |
Metz et al. | Analysis of 2006 DFRWS forensic carving challenge |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
E902 | Notification of reason for refusal | ||
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant | ||
FPAY | Annual fee payment |
Payment date: 20141027 Year of fee payment: 4 |
|
FPAY | Annual fee payment |
Payment date: 20151028 Year of fee payment: 5 |
|
FPAY | Annual fee payment |
Payment date: 20171027 Year of fee payment: 7 |
|
FPAY | Annual fee payment |
Payment date: 20191028 Year of fee payment: 9 |