Download presentation
Presentation is loading. Please wait.
Published byHarold Small Modified over 9 years ago
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?
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.