Presentation is loading. Please wait.

Presentation is loading. Please wait.

H ASHING : SHA256 T AYLER A NGEVINE B ACHELOR OF A RTS D R. K EN B LAHA 3/13/2014.

Similar presentations


Presentation on theme: "H ASHING : SHA256 T AYLER A NGEVINE B ACHELOR OF A RTS D R. K EN B LAHA 3/13/2014."— Presentation transcript:

1 H ASHING : SHA256 T AYLER A NGEVINE B ACHELOR OF A RTS D R. K EN B LAHA 3/13/2014

2 I NTRODUCTION Review the hash function SHA-256 Goal: understand how SHA-256 computes it’s hash. Why have I decided to focus on Sha-256 algorithms? Battle tested Considered to be some of the “safest” algorithms Bitcoin is based around SHA-256. The way the algorithm is implemented using MessageDigest left a lot of unknowns. Was under the impression that I would need to code the algorithm.

3 M ORE INTRO Named after it’s digest length. Will not focus on SHA-1 because it has been “broken” Would rather focus on today’s standard rather than the past. SHA-384 and SHA-512 because they are essentially the same. Why go over the code? I believe it is necessary to understand the code of an algorithm in order to recognize it’s weaknesses or it’s strengths.

4 W HAT IS A HASH ? Hash function takes a string of any length, and generates fixed-length output data. It is not reversible. Because you are taking a string and basically dividing it. Therefore, you are losing information. If you have lost information about the original input, then it is nearly impossible to reverse the hash.

5 W HAT MAKES A GOOD HASH ? Same input will always lead to the same output. Avoids collision attacks

6 A LITTLE INFORMATION … Sha 256 is more safe from collision attacks than other algorithms. MD5 = 128 byte output, 64 bits of security SHA-1 = 160 byte output, 80 bits of security. SHA 256 = 256 byte output, 128 bits of security What are collision attacks? Find two input strings that produce the same hash. “abc” “aiieagnea;[sagjeiao;iaeohgao;ejagea” Hash functions can have infinite input length, but a fixed output.

7 H OW DOES IT WORK ? Padding aka Preprocessing Block decomposition Hash Algorithm

8 P REPROCESSING Message (M) is l bits long. Append message with a 1 Followed by n zero bits. N is smallest, non-negative solution to the equation. L + 1 + n = 448 mod 512 This leaves enough room to append what we have so far with a 64-bit block that equals our message represented in binary. Message = “abc” 24 + 1 + N = 448.  N = 423 zero bits

9 N OTATION Algorithm uses AND, XOR, OR, Circular Right Shift, and Logical Right Shifts in order to compute the hash.

10 AND pqp AND q 111 100 010 000 Produces 1 if both p and q are 1’s.

11 OR pqp OR q 111 101 011 000 Produces 1 if p or q are 1

12 XOR pqp XOR q 110 101 011 000 Produces 1 if p or q is 1, but not both.

13 C IRCULAR S HIFT R IGHT S H R( VARIABLE, NUMBER ) variable: a,b,c,d,e,f,g,h Number: amount of shift.

14 L OGICAL R IGHT S HIFT R OT R( VARIABLE, NUMBER ) Variable: a,b,c,d,e,f,g,h. Number: amount of shifts

15 E QUATIONS

16 W HERE IT STARTS TO GET COMPLICATED. Generally H 1 – H 8 are set to the first 32 bits of the fractional parts of the square roots of the first eight primes.

17 E XAMPLE Square root of 2 = 1.414213562373095048801 Fractional part = 0.41421356237309504. Hexadecimal = 6A09E667.

18 W HERE DOES OUR PASSWORD COME INTO PLAY ? Or original password was padded to 512 bytes. Which is 16 words. A 64 word array is created we will refer to as W W 0 – W 15 are initialized to our padded password. The rest (W 16 – W 63 ) are set to a value determined by this function J is just the counter in a for loop.

19 A LGORITHM C OMPUTATION ( EXECUTED 64 TIMES )

20 A – H are initialized with H 1 – H 8

21 L AST S TEP Take your original and H 1 – H 8 add a – h to them.

22 I SSUES Putting together a puzzle Some things are difficult to find answers to.

23 S OURCES Algorithm http://csrc.nist.gov/groups/STM/cavp/documents/shs/sha256 -384-512.pdf http://csrc.nist.gov/groups/STM/cavp/documents/shs/sha256 -384-512.pdf http://www-ma2.upc.es/~cripto/Q2-06- 07/SHA256english.pdf http://www-ma2.upc.es/~cripto/Q2-06- 07/SHA256english.pdf Actual Implementation http://www.cs.mcgill.ca/~zcao7/mutls/release/llvm-gcc-4.2- 2.9.source/libjava/classpath/gnu/java/security/hash/Sha256. java http://www.cs.mcgill.ca/~zcao7/mutls/release/llvm-gcc-4.2- 2.9.source/libjava/classpath/gnu/java/security/hash/Sha256. java http://www.vipan.com/htdocs/bitwisehelp.html Various Information wikipedia.org/ http://www.makeuseof.com/tag/md5-hash-stuff-means- technology-explained/

24 M ORE S OURCES Various Information http://crypto.stackexchange.com/questions/8636/what -does-message-schedule-mean-in-sha-256 http://crypto.stackexchange.com/questions/8636/what -does-message-schedule-mean-in-sha-256 http://docs.oracle.com/javase/7/docs/api/java/security/ MessageDigest.html http://docs.oracle.com/javase/7/docs/api/java/security/ MessageDigest.html Converting bytes to a string http://www.mkyong.com/java/how-do-convert-byte- array-to-string-in-java/ http://www.mkyong.com/java/how-do-convert-byte- array-to-string-in-java/ Hash Calculator http://www.xorbin.com/tools/sha256-hash-calculator

25 QUESTIONS?


Download ppt "H ASHING : SHA256 T AYLER A NGEVINE B ACHELOR OF A RTS D R. K EN B LAHA 3/13/2014."

Similar presentations


Ads by Google