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 PDF

Info

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
Application number
KR1020090017097A
Other languages
Korean (ko)
Other versions
KR101081574B1 (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 KR1020090017097A priority Critical patent/KR101081574B1/en
Publication of KR20100098094A publication Critical patent/KR20100098094A/en
Application granted granted Critical
Publication of KR101081574B1 publication Critical patent/KR101081574B1/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/60Protecting data
    • 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/31User authentication
    • G06F21/32User authentication using biometric data, e.g. fingerprints, iris scans or voiceprints
    • 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
    • G06F21/34User authentication involving the use of external additional devices, e.g. dongles or smart cards
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/30Authentication, i.e. establishing the identity or authorisation of security principals
    • G06F21/45Structures or tools for the administration of authentication
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing 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/2131Lost password, e.g. recovery of lost or forgotten passwords

Abstract

PURPOSE: A GPU-based fast password recovery system and a method for an MS-Office are provided to rapidly restore an encryption password inputted by a user from a file encoded in an Office 97/2000 compatibility check algorithm. CONSTITUTION: A data extraction unit(410) extracts a DOCID, a SALT and a HASHEDSALT value from an encoded MS-Office, and a password generator(420) receives or generates passwords. A main unit(400) stores the extracted values at a parameter memory of a graphic processor as well as the passwords at the global memory of the graphic processor. The main unit outputs the stored passwords by using a password recovery algorithm based on the values stored at the parameter memory for the passwords stored at the global memory.

Description

그래픽 프로세서를 이용한 MS―OFFICE 파일로부터의 고속 패스워드 복구 시스템 및 방법{GPU-based fast password recovery system and method for MS-Office}GPU-based fast password recovery system and method for MS-Office using a graphics processor

본 발명은 패스워드 복구 기술에 관한 것으로, 특히 사용자가 설정한 패스워드로 암호화된 파일을 복원하기 위해 필요한 패스워드를 복구하는 기술에 관한 것이다.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 graphics processor 300 has a plurality of thread processors (Thread Processor (s)) 301 internally. These processors are the core hardware resources of the graphics processor, and executes a plurality of threads called by the user in parallel through the scheduling management implemented in the graphics processor. In addition, various memories are supported to support the parallel processing operation of the Thread Processor (s) 301. As shown in FIG. 3, four memories are mainly used.

레지스터(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 main unit 400 controls the overall operation of the system and calls driving codes of other components. The data extracting unit 410 reads DOCID, SALT, and HASHEDSALT values from an MS-Office file encrypted with an 'Office 97/2000 compatible' algorithm. The password generator 420 generates or receives a plurality of password strings from the outside. When generating a password string, either random or sequential methods are possible. The main 400, the data extracting unit 410, and the password generating unit 420 are implemented to operate in the host CPU of the password recovery system. The key sequence generation and inspection unit 430 generates key sequences in the order shown in FIG. 1 using the password generated or input by the password generation unit 420, and then checks whether they match. It is implemented as a graphics processor with a hardware structure. And for your reference, the password recovery system can use a graphics board with the Nvidia 8800 family of GPUs.

도 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 data extracting unit 410 reads DOCID, SALT and HASHEDSALT values from the MS-Office file encrypted with the 'Office 97/2000 compatible' algorithm, and the password generator 420 generates a plurality of passwords or inputs them from the user. Receive. The main 400 stores DOCID, SALT, and HASHEDSALT values read by the data extraction unit 410 in the constant memory 320 of the graphic processor (B1). In addition, the main 400 copies (B2) the plurality of passwords output from the password generator 420 to the global memory 340 of the graphic processor. In one embodiment, the number of passwords Main 400 stores in Global Memory 340 at one time is equal to the number of threads in the graphics processor.

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 global memory 340 in the shared memory 330 to speed up the key string generation and verification process. Temporary data required in this process are temporarily stored in the register 310 (B4). And reference B5 for DOCID, SALT, HASHEDSALT values uses the values stored in Constant Memory 320. In addition, the values stored in the shared memory 330 are used to refer to the password B6. The thread porcessors 300 process the key string conversion of the password by the algorithm of FIG. 1 and the process of determining whether or not the passwords are matched using the DOCID, SALT, and HASHEDSALT values, respectively, and the result of the global memory 340. Save to (B7).

도 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 global memory 340 in the shared memory 330 (step S640). The thread processor (s) 300 generates key strings through the data references B4, B5, and B6, and determines whether the passwords match (step S650) (step S660). Step S650 is the same as the process of FIG. 1. The graphics processor then writes (B7) the thread number for which the matching password is found to the global memory 340 (step S670). The CPU checks whether there is a result value recorded in the Global Memory 340 (step S680), and if there is a recorded result value, outputs a password corresponding to the thread number (step S690).

이제까지 본 발명에 대하여 그 바람직한 실시예들을 중심으로 살펴보았다. 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자는 본 발명이 본 발명의 본질적인 특성에서 벗어나지 않는 범위에서 변형된 형태로 구현될 수 있음을 이해할 수 있을 것이다. 그러므로 개시된 실시예들은 한정적인 관점이 아니라 설명적인 관점에서 고려되어야 한다. 본 발명의 범위는 전술한 설명이 아니라 특허청구범위에 나타나 있으며, 그와 동등한 범위 내에 있는 모든 차이점은 본 발명에 포함된 것으로 해석되어야 할 것이다.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)

암호화된 MS-Office 파일로부터 DOCID, SALT, HASHEDSALT 값들을 추출하는 자료 추출부;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 상기 추출된 DOCID, SALT, HASHEDSALT 값들을 그래픽 프로세서의 상수 메모리에 저장하고, 상기 입력받거나 생성된 복수의 패스워드들을 상기 그래픽 프로세서의 글로벌 메모리에 저장하며, 상기 그래픽 프로세서에서 상기 글로벌 메모리에 저장된 복수의 패스워드들에 대해 상기 상수 메모리에 저장된 DOCID, SALT, HASHEDSALT 값들을 이용하여 패스워드 복구 알고리즘을 병렬 처리함에 의해 복구된 패스워드를 출력하는 메인부;Storing the extracted DOCID, SALT, and HASHEDSALT values in a constant memory of a graphics processor, storing the received or generated passwords in a global memory of the graphics processor, and storing a plurality of passwords stored in the global memory in the graphics processor. A main unit for outputting a password recovered by parallel processing a password recovery algorithm using DOCID, SALT, and HASHEDSALT values stored in the constant memory; 를 포함하는 것을 특징으로 하는 패스워드 복구를 위한 중앙 처리 유닛.Central processing unit for password recovery comprising a. 제1항에 있어서,The method of claim 1, 상기 암호화된 MS-Office 파일은 Office 97/2000 호환 가능 알고리즘으로 암호화된 파일임을 특징으로 하는 패스워드 복구를 위한 중앙 처리 유닛.The encrypted MS-Office file is a central processing unit for password recovery, characterized in that the file encrypted with the Office 97/2000 compatible algorithm. 제1항에 있어서,The method of claim 1, 상기 메인부는 상기 그래픽 프로세서의 쓰레드 개수만큼의 패스워드를 상기 글로벌 메모리에 저장함을 특징으로 하는 패스워드 복구를 위한 중앙 처리 유닛.The main unit is a central processing unit for password recovery, characterized in that for storing the number of passwords of the number of threads of the graphics processor in the global memory. Office 97/2000 호환 가능 알고리즘으로 암호화된 MS-Office 파일로부터 중앙 처리 유닛에 의해 추출된 DOCID, SALT, HASHEDSALT 값들과 상기 중앙 처리 유닛에 의해 제공되는 복수의 패스워드들이 저장되는 적어도 하나의 메모리; 및At least one memory storing DOCID, SALT, HASHEDSALT values extracted by the central processing unit from the MS-Office file encrypted with the Office 97/2000 compatible algorithm and a plurality of passwords provided by the central processing unit; And 상기 복수의 패스워드들에 대해 상기 저장된 DOCID, SALT, HASHEDSALT 값들을 이용하여 상기 알고리즘에 의한 패스워드의 키열 변환 과정 및 패스워드의 일치 여부를 판별하는 과정을 병렬 처리하는 복수의 쓰레드 프로세서들;A plurality of thread processors for parallel processing a process of converting a key sequence of a password by the algorithm and determining whether a password matches by using the stored DOCID, SALT, and HASHEDSALT values for the plurality of passwords; 을 포함하는 것을 특징으로 하는 패스워드 복구를 위한 그래픽 프로세서.Graphics processor for password recovery comprising a. 제4항에 있어서,The method of claim 4, wherein 상기 메모리는 상기 추출된 DOCID, SALT, HASHEDSALT 값들이 저장되는 상수 메모리와, 상기 복수의 패스워드들이 저장되는 글로벌 메모리를 포함하는 것을 특징으로 하는 패스워드 복구를 위한 그래픽 프로세서.The memory includes a constant memory in which the extracted DOCID, SALT, and HASHEDSALT values are stored, and a global memory in which the plurality of passwords are stored. 제5항에 있어서,The method of claim 5, 상기 메모리는 공유 메모리를 더 포함하며,The memory further comprises a shared memory, 상기 복수의 쓰레드 프로세서들은 상기 글로벌 메모리에 저장된 패스워드들을 상기 공유 메모리로 캐쉬함을 특징으로 하는 패스워드 복구를 위한 그래픽 프로세서.And said plurality of thread processors cache passwords stored in said global memory to said shared memory. 제4항에 있어서,The method of claim 4, wherein 상기 복수의 쓰레드 프로세서들은 상기 패스워드의 일치 여부 판별 결과를 상기 글로벌 메모리에 저장함을 특징으로 하는 패스워드 복구를 위한 그래픽 프로세서.And the plurality of thread processors store a result of determining whether the password matches in the global memory. Office 97/2000 호환 가능 알고리즘으로 암호화된 MS-Office 파일로부터 DOCID, SALT, HASHEDSALT 값들을 추출하여 그래픽 프로세서의 메모리에 저장하고, 복수의 패스워드들을 입력받거나 생성하여 상기 그래픽 프로세서의 메모리에 저장하는 중앙 처리 유닛; 및Central processing that extracts DOCID, SALT, HASHEDSALT values from the MS-Office file encrypted with Office 97/2000 compatible algorithms, stores them in the graphics processor's memory, receives or generates a plurality of passwords, and stores them in the graphics processor's memory. unit; And 상기 그래픽 프로세서의 메모리에 저장된 복수의 패스워드들에 대해 상기 저장된 DOCID, SALT, HASHEDSALT 값들을 이용하여 상기 알고리즘에 의한 패스워드의 키열 변환 과정 및 패스워드의 일치 여부를 판별하는 과정을 병렬 처리하며 그 결과를 상기 중앙 처리 유닛이 획득할 수 있도록 제공하는 상기 그래픽 프로세서;The process of converting the key sequence of the password by the algorithm and determining whether the passwords are matched by using the stored DOCID, SALT, and HASHEDSALT values for the plurality of passwords stored in the memory of the graphics processor are performed in parallel. The graphics processor provided to be acquired by a central processing unit; 를 포함하는 것을 특징으로 하는 패스워드 복구 시스템.Password recovery system comprising a. 제8항에 있어서,The method of claim 8, 상기 추출된 DOCID, SALT, HASHEDSALT 값들은 상기 그래픽 프로세서의 상수 메모리에 저장되고, 상기 복수의 패스워드들은 상기 그래픽 프로세서의 글로벌 메모리에 저장되며, 상기 그래픽 프로세서는 상기 글로벌 메모리에 저장된 복수의 패스워드들을 내부의 공유 메모리에 캐쉬함을 특징으로 하는 패스워드 복구 시스템.The extracted DOCID, SALT, and HASHEDSALT values are stored in a constant memory of the graphics processor, the plurality of passwords are stored in a global memory of the graphics processor, and the graphics processor stores the plurality of passwords stored in the global memory. Password recovery system characterized by caching in shared memory. 중앙 처리 유닛이 Office 97/2000 호환 가능 알고리즘으로 암호화된 MS-Office 파일로부터 DOCID, SALT, HASHEDSALT 값들을 추출하는 단계;The central processing unit extracting DOCID, SALT, HASHEDSALT values from an MS-Office file encrypted with an Office 97/2000 compatible algorithm; 상기 중앙 처리 유닛이 복수의 패스워드들을 입력받거나 생성하는 단계;The central processing unit receiving or generating a plurality of passwords; 상기 중앙 처리 유닛이 상기 추출된 DOCID, SALT, HASHEDSALT 값들을 그래픽 프로세서의 상수 메모리에 저장하는 단계;The central processing unit storing the extracted DOCID, SALT, and HASHEDSALT values in a constant memory of a 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 shared memory; 상기 그래픽 프로세서가 상기 공유 메모리에 캐쉬된 복수의 패스워드들 각각에 대해 상기 상수 메모리에 저장된 DOCID, SALT, HASHEDSALT 값들을 이용하여 상기 Office 97/2000 호환 가능 알고리즘에 의해 패스워드의 키열 변환 과정 및 패스워드의 일치 여부를 판별하는 과정을 병렬 처리하여 패스워드를 복구하는 단계; 및The graphic processor converts a key sequence of passwords and passwords by the Office 97/2000 compatible algorithm using DOCID, SALT, and HASHEDSALT values stored in the constant memory for each of a plurality of passwords cached in the shared memory. Recovering the password by performing a process of determining whether or not it is parallel; And 상기 중앙 처리 유닛이 상기 복구된 패스워드를 출력하는 단계;The central processing unit outputting the recovered password; 를 포함하는 것을 특징으로 하는 패스워드 복구 방법.Password recovery method comprising a.
KR1020090017097A 2009-02-27 2009-02-27 GPU-based fast password recovery system and method for MS-Office KR101081574B1 (en)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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

Cited By (3)

* Cited by examiner, † Cited by third party
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