(12) United States Patent (10) Patent No.: US 7,787,629 B1 Belenko (45) Date of Patent: *Aug
Total Page:16
File Type:pdf, Size:1020Kb
USOO7787629B1 (12) United States Patent (10) Patent No.: US 7,787,629 B1 Belenko (45) Date of Patent: *Aug. 31, 2010 (54) USE OF GRAPHICS PROCESSORS AS 6,408,075 B1* 6/2002 Ohki et al. .................... 380/28 PARALLEL MATH CO-PROCESSORS FOR 6,735,611 B2 * 5/2004 Vanstone ... ... 708/492 PASSWORD RECOVERY 7.430,293 B2 * 9/2008 Elbe et al. ..................... 380, 44 2006/0167915 A1* 7/2006 Furlong et al. .............. 707/101 (75) Inventor: Andrey V. Belenko, Moscow (RU) 2006/0242710 A1* 10, 2006 Alexander ... 726/24 2010.0058067 A1 3/2010 Schneider ................... T13, 184 (73) Assignee: Elcomsoft Co. Ltd., Moscow (RU) (*) Notice: Subject to any disclaimer, the term of this OTHER PUBLICATIONS patent is extended or adjusted under 35 Debra L. Cook, Ricardo Baratto, Angelos D. Keromytis, Remotely U.S.C. 154(b) by 0 days. Keyed Cryptographics Secure Remote Display Access Using (Mostly) Untrusted Hardware, 2004. In Proceedings of ICICS, LNCS This patent is Subject to a terminal dis- 3783.* claimer. Cook et al., “Remotely Keyed Cryptographics Secure Remote Dis play Access. Using (Mostly) Untrusted Hardware' (date unknown). (21) Appl. No.: 12/709,471 * cited by examiner (22) Filed: Feb. 20, 2010 Primary Examiner David Garcia Cervetti (74) Attorney, Agent, or Firm Bardmesser Law Group Related U.S. Application Data (63) Continuation of application No. 12/204,414, filed on (57) ABSTRACT Sep. 4, 2008. (60) Provisional application No. 60/970,277, filed on Sep In a computer system having a central processing unit (CPU) 6, 2007 s1 s and a graphics processing unit (GPU), a system, method and s computer program product for recovering a password used to (51) Int. Cl. encrypt a plaintext, including (a) generating N passwords on H04L 9/08 (2006.01) the CPU; (b) providing the N passwords to the GPU; (c) for (52) U.S. Cl 380/286: 380/44: 713/184: each of the N passwords, calculating a transformed value Oa - - - - - - - - - - - - - - - - - - - - - - - - - - - - - s 72622 from the password on the GPU, wherein the calculating is performed in parallel for all the N passwords provided to the (58) Field of Classification Seash/44. 726/22. 3. GPU; (d) providing the N transformed values to the CPU; (e) S lication file f let s hhi at the CPU, testing the N transformed values for correctness; ee appl1cauon Ille Ior complete searcn n1Story. and (f) if none of the N transformed values are correct, repeat (56) References Cited ing steps (a)-(e) for the next set of N passwords; (g) informing the user of a correct password. U.S. PATENT DOCUMENTS 4,870,681 A * 9/1989 Sedlak ........................ 380.30 18 Claims, 5 Drawing Sheets Any unchecked passwords left? Yes Copy the base 804 password to the GPU Generate N passwordssos On the GPU from the base password Transform passwordsles calculate as of the passwords on the GPU verity correctness of reo the hashwales on the GPU Serresults of the werificatio to the host 82 CPU IS there a Correct password? U.S. Patent Aug. 31, 2010 Sheet 1 of 5 US 7,787,629 B1 FIG. 1 FIG. 2 Single core CPU Dual core CPU Password 128 GPU (GeForce 8800 GTX) processor Resuit 2 Result 128 FIG. 3 U.S. Patent Aug. 31, 2010 Sheet 3 of 5 US 7,787,629 B1 Any passwords left? Copy next password to the GPU Transform the passwords on the GPU Copy results to host CPU Check results on host CPU One of the Notify user passwords is COfect? FIG. 5 U.S. Patent Aug. 31, 2010 Sheet 4 of 5 US 7,787,629 B1 Any unchecked passwords left? Copy the base password to the GPU Generate N passwords Of the GPU from the base password Transform passwords/ Calculate hash of the passwords on the GPU Verify correctness of the hash values On the GPU Send results of the verification to the host CPU is there a Correct Notify user password? FIG. 6 U.S. Patent Aug. 31, 2010 Sheet 5 of 5 US 7,787,629 B1 Generate 708 password Compute partial (71O transformation Got N OaSSWOrds? 714 Write partial results to GPU memory Compute full transformation of 718 Ni Wales Read results from GPU memory a 718 Check Correctness of IN 720 Copied values iny of values is Correct? Y722 Report password FIG. 7 is found 724 US 7,787,629 B1 1. 2 USE OF GRAPHCS PROCESSORS AS Such GPUs therefore could not easily work with crypto PARALLEL MATH CO-PROCESSORS FOR graphic primitives, which require implementing integer func PASSWORD RECOVERY tions and integer operations, not floating point operations. CROSS-REFERENCE TO RELATED SUMMARY OF THE INVENTION APPLICATIONS Accordingly, the present invention is related to a system and method for using graphics processors for cryptographic This application is a continuation-in-part of U.S. patent attack that substantially obviates one or more of the disad application Ser. No. 12/204,414, filed on 4 Sep. 2008, which 10 Vantages of the related art. claims the benefit of U.S. Provisional Application for Patent In one aspect, in a computer system having a central pro No. 60/970,277 entitled USE OF GRAPHICS PROCES cessing unit (CPU) and a graphics processing unit (GPU), SORS FOR PASSWORD RECOVERY, filedon Sep. 6, 2007, there is provided a system, method and computer program which are both incorporated by reference herein in their product for recovering a password used to encrypta plaintext, entirety. 15 including (a) generating N passwords on the CPU; (b) pro viding the N passwords to the GPU; (c) for each of the N BACKGROUND OF THE INVENTION passwords, calculating a transformed value from the pass word on the GPU, wherein the calculating is performed in 1. Field of the Invention parallel for all the N passwords provided to the GPU; (d) The present invention is related to cryptography, and, more providing the N transformed values to the CPU; (e) at the particularly, to recovery of encrypted information using a CPU, testing the N transformed values for correctness; and (f) graphical processing unit of a computer as a co-processor. if none of the N transformed values are correct, repeating 2. Description of the Related Art steps (a)-(e) for the next set of N passwords; (g) informing the Password recovery, password audits, cryptographic algo user of a correct password. rithm tasks and cryptographic protocol tasks are all tasks that 25 In another aspect, in a computer system having a central are extremely demanding on the computational technology. processing unit (CPU) and a graphics processing unit (GPU), Verifying the correctness of a single password can require a method of recovering a password used to encrypt a plaintext tens of thousands of cryptographic transformations, such as includes (a) generating a plurality of passwords on the CPU: hash functions or encryptions. A typical attempt to recover a (b) providing the plurality of password to the GPU; (c) for password or to conduct a password audit requires testing 30 each of the plurality of passwords, calculating a hash value hundreds of millions of passwords, which is a very heavy from the password on the GPU, wherein the calculating is computational burden on the computer processor. performed in parallel for all the generated passwords; (d) at the CPU, testing the hash values for correctness; (e) if none of Traditionally, all such calculations were done on the com the hash values are correct, repeating steps (a)-(d) for the next puter's central processing unit, or CPU, since the hardware 35 set of passwords, until the correct password is found; and (f) and Software mechanisms for implementing Such operations informing the user of a correct password. on other elements of the computer hardware were typically Additional features and advantages of the invention will be absent. One exception was certain hardware/printed circuit set forth in the description that follows, and in part will be boards, which were specialized for particular tasks (e.g., IBM apparent from the description, or may be learned by practice 4764 PCI-X Cryptographic Coprocessor, Sun Crypto Accel 40 erator 6000 Board, which is typically used to offload SSL of the invention. The advantages of the invention will be processing from CPUs on servers), however, such hardware is realized and attained by the structure particularly pointed out generally rare and has not found widespread acceptance. in the written description and claims hereof as well as the Recently, Software began appearing that would take advan appended drawings. It is to be understood that both the foregoing general tage of the capabilities of the graphical processing units 45 (GPUs) of desktop computers. Such graphical processing description and the following detailed description are exem units are part of a desktop computer's video card. The selec plary and explanatory and are intended to provide further tion of such GPUs for some of these tasks was not accidental, explanation of the invention as claimed. since working with three-dimensional graphics and rendering BRIEF DESCRIPTION OF THE ATTACHED of images typically requires advanced computational capa 50 bilities. FIGURES Thus, just as the capability of the CPUs increases from year The accompanying drawings, which are included to pro to year, the capabilities of the graphics processors also vide a further understanding of the invention and are incor improve continuously from year to year, and the amount of porated in and constitute a part of this specification, illustrate memory available on a typical video card also increases. For 55 example, in 2007, there were video cards available with 1.5 embodiments of the invention and together with the descrip gigabytes of video random access memory.