How Does SHA-256 Work?
learnmeabitcoin3 HN recommenders · 2020–2022
374K views · explainer · evergreen · Uploaded 2020-05-12
A step-by-step animated explanation of how SHA-256 works, from padding and message schedule to the compression function and final hash, with source code for the animations.
Commenters call it clear enough to implement the algorithm from, and teachers use it in courses.
51:32Behind the Scenes of iOS Security
Black Hat
12:01Why Electronic Voting Is Still A Bad Idea
Tom Scott
25:16But how does bitcoin actually work?
3Blue1Brown
8:38Diffie-Hellman Key Exchange
Art of the Problem
48:02BlackHat USA 2011: SSL And The Future Of Authenticity
Christiaan008
14:34Blockchains Are a Bad Idea (James Mickens)
HBS Digital Initiative
2:18:23Line Goes Up – The Problem With NFTs
Folding Ideas
1:32:08Theory and Practice of Cryptography
Google TechTalks
4 comments from Hacker News
Here's the author doing an in-depth explanation of how SHA-256 works using this code: [VIDEO] I'm halfway through, but looks very well done, thanks!
This looks great, though it requires quite sometime to go through it (and figure out what could possibly be understood by someone with knowledge of programming and bit wise operators, and what can just be skipped because it’s something only cryptographers can understand). If someone were to make a slower video explaining it with all the sections from this dissection, that’d be even more awesome. Edit: Seems like the author created a video for this — [VIDEO] (thanks to 1_player’s comment at [LINK] ) On a tangent, here’s an animation (by someone else) explaining AES encryption — [LINK] (thanks to harrigan’s comment at [LINK] )
Oh this is great. When we taught SHA-256 last semester, we linked to this YouTube video: [VIDEO] . Next time we do it, we'll probably link to both. Having several different ways to visualize the same thing is very helpful, and I like that this one moves quickly. A couple of details missing from this visualization are how you pad a message to be a multiple of the block size, and how you chain blocks together to form a longer message. In the pseudocode at [LINK] , that's the "Pre-processing (Padding)" part and the "for each chunk" loop just below it. I get why you'd want to leave those things out, since they're not really the interesting part, and the screen is already pretty packed as it is. If anyone's feeling curious about implementing this yourself, take a look at these project notes: [LINK] . At some point I'll clean that up for public consumption, but for now just ignore the parts about grades and cheating :)
I found this video to be an excellent explanation and sufficient to implement the algorithm: [VIDEO] Code: [LINK] This site contains a nice visualization: [LINK]