GPU ASSISTED LM HASH CRACKING WILLIAM GROESBECK UNIVERSITY OF NEVADA, RENO – SPRING 2013 (Psst, the 90’s called - they want their hashing algorithm back)

Slides:



Advertisements
Similar presentations
6.1.2 Overview DES is a block cipher, as shown in Figure 6.1.
Advertisements

CS 483 – SD SECTION BY DR. DANIYAL ALGHAZZAWI (3) Information Security.
ECE454/CS594 Computer and Network Security Dr. Jinyuan (Stella) Sun Dept. of Electrical Engineering and Computer Science University of Tennessee Fall 2011.
1 CIS 5371 Cryptography 5b. Pseudorandom Objects in Practice Block Ciphers.
Cryptography and Network Security Chapter 3
Rachana Y. Patil 1 Data Encryption Standard (DES) (DES)
Modern Cryptography.
Cryptography1 CPSC 3730 Cryptography Chapter 3 DES.
DES 1 Data Encryption Standard DES 2 Data Encryption Standard  DES developed in 1970’s  Based on IBM Lucifer cipher  U.S. government standard  DES.
1 Chapter 3 – Block Ciphers and the Data Encryption Standard Modern Block Ciphers  now look at modern block ciphers  one of the most widely used types.
1 Chapter 3 – Block Ciphers and the Data Encryption Standard Modern Block Ciphers  now look at modern block ciphers  one of the most widely used types.
McGraw-Hill©The McGraw-Hill Companies, Inc., Security PART VII.
ICS 454: Principles of Cryptography
Lecture 23 Symmetric Encryption
Chapter 3 – Block Ciphers and the Data Encryption Standard
CSE 651: Introduction to Network Security
Data Encryption Standard (DES). Symmetric Cryptography  C = E(P,K)  P = D(C,K)  Requirements  Given C, the only way to obtain P should be with  the.
The Digital Encryption Standard CSCI 5857: Encoding and Encryption.
Frank Rowe John Gaetano Chuck Figiel.  CryptoViz implements and visualizes the Data Encryption Standard (DES) algorithm.  DES was used by the government.
A Cryptography Education Tool Anna Yu Department of Computer Science College of Engineering North Carolina A&T State University June 18, 2009.
Dr. Khalid A. Kaabneh Amman Arab University
The Data Encryption Standard - see Susan Landau’s paper: “Standing the test of time: the data encryption standard.” DES - adopted in 1977 as a standard.
CSCI 5857: Encoding and Encryption
IS 302: Information Security and Trust Week 7: User Authentication (part I) 2012.
Cryptography and Network Security Chapter 3. Modern Block Ciphers  now look at modern block ciphers  one of the most widely used types of cryptographic.
Network Security Lecture 14 Presented by: Dr. Munam Ali Shah.
Chapter 20 Symmetric Encryption and Message Confidentiality.
TE/CS 536 Network Security Spring 2006 – Lectures 6&7 Secret Key Cryptography.
Chapter 20 Symmetric Encryption and Message Confidentiality.
CPTR 427 Programming DES. Outline Top Level Design Design Decisions Operations to write Putting it together.
Feistel Cipher Structure
13. Other Block Ciphers 13.1 LUCIFER 13.2 MADRYGA 13.3 NEWDES 13.4 FEAL 13.5 REDOC 13.6 LOKI.
Cracking DES Cryptosystem A cryptosystem is made of these parts: Two parties who want to communicate over an insecure channel An encryption algorithm that.
Simplified DES Cryptography and Network Security
1 Lect. 7 : Data Encryption Standard. 2 Data Encryption Standard (DES)  DES - History 1976 – adopted as a federal standard 1977 – official publication.
Classical &ontemporyryptology 1 Block Cipher Today’s most widely used ciphers are in the class of Block Ciphers Today’s most widely used ciphers are in.
DES Algorithm Data Encryption Standard. DES Features Block cipher, 64 bits per block 64-bit key, with only 56 bits effective ECB mode and CBC mode.
1 University of Palestine Information Security Principles ITGD 2202 Ms. Eman Alajrami 2 nd Semester
‘Baby DES’ cipher Alexei Vernitski. Block cipher A message is a sequence of bits: … We split the message in blocks of a fixed length.
Description of a New Variable-Length Key, 64-Bit Block Cipher (BLOWFISH) Bruce Schneier BY Sunitha Thodupunuri.
AES Advanced Encryption Standard. Requirements for AES AES had to be a private key algorithm. It had to use a shared secret key. It had to support the.
TE/CS 536 Network Security Spring 2005 – Lecture 8 Security of symmetric algorithms.
Chapter 3 Encryption Algorithms & Systems (Part D)
LUCIFER hell's favorite cipher.... By: OUTSOURCED Trevin Maerten Eitan Romanoff.
Lecture 23 Symmetric Encryption
Fifth Edition by William Stallings
Cracking the DES Encryption
1 Symmetric key cryptography: DES DES: Data Encryption Standard US encryption standard [NIST 1993] 56-bit symmetric key, 64 bit plaintext input How secure.
Computer and Network Security Rabie A. Ramadan Lecture 3.
Cryptography and Network Security Third Edition by William Stallings Lecture slides by Lawrie Brown.
Plaintextciphertext encryption algorithmdecryption algorithm plaintext.
DES Analysis and Attacks CSCI 5857: Encoding and Encryption.
DATA & COMPUTER SECURITY (CSNB414) MODULE 3 MODERN SYMMETRIC ENCRYPTION.
Data Encryption Standard (DES) most widely used block cipher in world adopted in 1977 by NBS (now NIST) – as FIPS PUB 46 encrypts 64-bit data using 56-bit.
Lecture 3 Overview. Ciphers The intent of cryptography is to provide secrecy to messages and data Substitutions – ‘hide’ letters of plaintext Transposition.
Computer Science and Engineering Computer System Security CSE 5339/7339 Lecture 7 September 9, 2004.
Module :MA3036NI Symmetric Encryption -3 Lecture Week 4.
Simplified DES.
Block Ciphers and the Data Encryption Standard. Modern Block Ciphers  One of the most widely used types of cryptographic algorithms  Used in symmetric.
Information and Computer Security CPIS 312 Lab 6 & 7 1 TRIGUI Mohamed Salim Symmetric key cryptography.
Data Encryption Standard (DES) Financial companies found the need for a cryptographic algorithm that would have the blessing of the US government (=NSA)
Provides Confidentiality
Data Encryption Standard
Block Ciphers: DES and AES
Differential Cryptanalysis
DES (Data Encryption Standard)
Florida State University
Data Encryption Standard (DES)
Presentation transcript:

GPU ASSISTED LM HASH CRACKING WILLIAM GROESBECK UNIVERSITY OF NEVADA, RENO – SPRING 2013 (Psst, the 90’s called - they want their hashing algorithm back)

Outline  What is the LM Hash?  What makes it so terrible?  How do we generate it?  Why would we want to?  Sequential Implementation  Parallel Plans  Questions

What is the LM Hash  (Mostly) obsolete, password hashing function  Obsolete because it was compromised  Used < Windows NT  Could be manually disabled via group policy  Vista and Windows Server 2k8 disabled LM hash by default

What makes it so terrible?  See: How do we generate it?

How do we generate it?  Step 1: Start with password provided by user  (As long as it’s <=14 ASCII characters)  Step 2: 14 characters is really too many  Split it into two 7-byte halves  Step 3: Case sensitivity is really overrated  Convert everything to uppercase  Step 4: Okay, now we can get to work  Use each 7-byte half to DES encrypt the ASCII string  ( K ey of G len Zorn and S teve Cobb & Shift )

How do we generate it?  Step 1: Start with password provided by user  <=14ASCIIchars  Step 2: 14 characters is really too many  Split it into two 7-byte halves  Step 3: Case sensitivity is really overrated  Convert everything to uppercase  Step 4: Okay, now we can get to work  Use each 7-byte half to DES encrypt the ASCII string  ( K ey of G len Zorn and S teve Cobb & Shift ) Max Keyspace: 95^14 or 2^92

How do we generate it?  Step 1: Start with password provided by user  <=14ASCIIchars  Step 2: 14 characters is really too many  Split it into two7-byte halves  Step 3: Case sensitivity is really overrated  Convert everything to uppercase  Step 4: Okay, now we can get to work  Use each 7-byte half to DES encrypt the ASCII string  ( K ey of G len Zorn and S teve Cobb & Shift ) Max Keyspace: 95^14 or 2^92 95^7 or 2^46

How do we generate it?  Step 1: Start with password provided by user  <=14ASCIICHARS  Step 2: 14 characters is really too many  Split it into two7-byte halves  Step 3: Case sensitivity is really overrated  Convert everything to UPPERCASE  Step 4: Okay, now we can get to work  Use each 7-byte half to DES encrypt the ASCII string  ( K ey of G len Zorn and S teve Cobb & Shift ) Max Keyspace: 95^14 or 2^92 95^7 or 2^46 69^7 or 2^43

How do we generate it?  Step 1: Start with password provided by user  6d930e4dc7d5f3c691b9bafbe80a3a3c  Step 2: 14 characters is really too many  Split it into two7-byte halves  Step 3: Case sensitivity is really overrated  Convert everything to UPPERCASE  Step 4: Okay, now we can get to work  Use each 7-byte half to DES encrypt the ASCII string  ( K ey of G len Zorn and S teve Cobb & Shift ) Max Keyspace: 95^14 or 2^92 95^7 or 2^46 69^7 or 2^43

Intermission: A bit about DES (I’m sorry!)  Block cipher  Symmetric algorithm  Considered insecure because brute force  Uses 64-bit (56-bit, actually) key to encrypt 64-bit block of plaintext  Consists of bit shifts, permutations, and substitutions  For LM Hash, plaintext is always and key is 7-bytes of password

Intermission: A bit about DES Step-by-Step (repeat for each half of key used for LM hash)  Step 4.1: Generate 16 separate keys (one for each round) 1. Permute input key according to PC-1 (returns 56-bit permuted key) 2. Split permuted key into left and right halves 3. For 1<=n<=16, left shift each half by either 1 or 2 left shifts 4. For 1<=n<=16, run concatenated pairs through PC-2  Returns 16x 48-bit keys

Intermission: A bit about DES  Step 4.2: Permute plaintext according to IP  Step 4.3: Split permuted plaintext into two halves (returns 2 32-bit halves)  Step 4.4: For 16 rounds:  L n = R n-1  R n = L n-1 ⊕ f (R n-1, K n )where f is Feistel Function

Intermission: A bit about DES  Feistel Function (Takes 32-bit half-block and 48-bit subkey) 1. Expand 32-bit half-block to 48-bits using expansion permutation 2. XOR expanded half-block and round key 3. Split 48-bit result into 8 6-bit pieces 4. Pass 6-bit pieces through 8 separate “S-boxes” 1. 6-bits to 4-bits 2. ex: > 01 (Row) > 1101 (Column) 5. Permute 32-bit combined S-box result S-Box 1 Column Row (8x 6-bit -> (S-boxes) -> 8x 4-bit -> (permutation) -> 32-bit result)

Intermission: A bit about DES  Step 4.2: Permute plaintext according to IP  Step 4.3: Split permuted plaintext into two halves (returns 2 32-bit halves)  Step 4.4: For 16 rounds:  L n = R n-1  R n = L n-1 ⊕ f (R n-1, K n )where f is Feistel Function  Step 4.5: Concatenate Right and Left values (R 16 L 16 returns 64-bits)  Step 4.6: Perform Final permutation (IP -1 )

How do we generate it? (cont’d)  Step 5: Concatenate output of DES encryption of halves  Leaves us with a 16-byte result  Step 6: Bask in a feeling of overwhelming security Fun fact: If half of the password is empty, it will return 0xAAD3B435B51404EE Thus, the LM hash for an empty password is AAD3B435B51404EEAAD3B435B51404EE

Why would we want to?  Many simple operations  Repeated many times  Seems like a natural fit for parallelization

Sequential Implementation  Start with empty, 7-byte password  While left and right hashes haven’t been matched -AND-  Still more passwords to try  Get hash from password  Does it match the left hash?  How about the right?  Increment the password by one character Can be set to only A-Z, alpha-numeric, or all ASCII characters A B C.. AA AB AC … AAA AAB AAC … AAAA AAAB AAAC … etc…

Sequential Implementation  Tested using password “abcd”  LM Hash is E165F0192EF85EBB AAD3B435B51404EE  Timing  A-Z only (26 characters): 6.5sec, 72,385 passwords  A-Z,0-9 (36 characters) only: 17sec,190,585 passwords  All ASCII Chars (69 characters): 143sec,1,328,458 passwords

Sequential Implementation Not very pretty. But it works.

Parallel Plans  Port over to CUDA-land  One hash per thread  Minimal data transfers  Target hashes -> Device  Found passwords -> Host

?