SHA: Secure Hashing Algorithm - Computerphile

แชร์
ฝัง
  • เผยแพร่เมื่อ 13 พ.ค. 2024
  • Secure Hashing Algorithm (SHA1) explained. Dr Mike Pound explains how files are used to generate seemingly random hash strings.
    EXTRA BITS: • EXTRA BITS - SHA1 Prob...
    Tom Scott on Hash Algorithms: • Hashing Algorithms and...
    / computerphile
    / computer_phile
    This video was filmed and edited by Sean Riley.
    Computer Science at the University of Nottingham: bit.ly/nottscomputer
    Computerphile is a sister project to Brady Haran's Numberphile. More at www.bradyharan.com

ความคิดเห็น • 608

  • @realeques
    @realeques 7 ปีที่แล้ว +1151

    Mike Pound is by far my favorite person on this channel... he has the most interesting subjects, shines with crazy knowledge while still keeping the video fresh and dynamic.

    • @hdef6602
      @hdef6602 7 ปีที่แล้ว +12

      I like him and his topics too, though the AI topics are interesting and the person explaining them is good too

    • @TroPy1n
      @TroPy1n 7 ปีที่แล้ว +21

      he has great body language, tries to use it as much as possible

    • @SophiaAstatine
      @SophiaAstatine 7 ปีที่แล้ว +19

      And a fair looker.

    • @suiko619
      @suiko619 6 ปีที่แล้ว +4

      And the same accent as the 11th Doctor (Matt Smith)! :-D Where is that accent from?

    • @thanh-binhnguyen5603
      @thanh-binhnguyen5603 5 ปีที่แล้ว +11

      Absolutely agree, Tom Scott is my second favourite, that guy is hillarious

  • @Timber5887
    @Timber5887 7 ปีที่แล้ว +158

    I could sit and watch videos from this guy all day long, so informative and laid back

    • @zes3813
      @zes3813 3 ปีที่แล้ว

      wrg

  • @DanMcB1
    @DanMcB1 3 ปีที่แล้ว +982

    This is too much work, can’t we just trust each other?

    • @rishabhhedaoo9926
      @rishabhhedaoo9926 3 ปีที่แล้ว +59

      That ,my friend, is the real problem

    • @DynestiGTI
      @DynestiGTI 2 ปีที่แล้ว +65

      How can I trust other people when I can't even trust myself

    • @DanMcB1
      @DanMcB1 2 ปีที่แล้ว +15

      @Mohamed Seid GodisGood666!

    • @binarung7747
      @binarung7747 2 ปีที่แล้ว +10

      Dont trust verify

    • @jephmukiza4015
      @jephmukiza4015 2 ปีที่แล้ว +4

      No Way!!!

  • @Sicaoisdead
    @Sicaoisdead 4 ปีที่แล้ว +62

    Love how these videos get STRAIGHT to the point.

  • @krishnanmuru-girthy7656
    @krishnanmuru-girthy7656 3 ปีที่แล้ว +21

    Been watching a whole bunch of Mike's videos as a complement to my introductory module on Security and Authentication. One of the best teachers I have come across!

  • @canyakar7443
    @canyakar7443 ปีที่แล้ว +6

    I've been trying to understand the concept for 3 days from the slides my teacher covered and the book she shared and ended up with complicated mind, this video gave me a pure understanding in 10 mins. Great job!

  • @jony7779
    @jony7779 7 ปีที่แล้ว +16

    Mike Pound is the best! I love hearing him explain things - keep em coming!

  • @CJBurkey
    @CJBurkey 7 ปีที่แล้ว +7

    This is my favorite guy on this channel. I just love stuff like this.

  • @JimmyGeniusEllis
    @JimmyGeniusEllis 5 ปีที่แล้ว +3

    I am at a hackathon in Chicago Illinois at Illinois Institute of technology and I have to use sha-1 on some facts before I pass then to an api so I can make a project for the Hackathon. You did a wonderful job telling me what she-1 was so I could understand the cryptic api documentation. Thank you very much.

  • @andysmith1870
    @andysmith1870 6 ปีที่แล้ว

    Thanks, Dr Pound (if you read this). I find your demeanour easy to engage with, and you set me off on the journey of understanding fully (with much work!).

  • @donovanlay9835
    @donovanlay9835 3 ปีที่แล้ว +1

    The washing machine example really helped seal in this topic I was trying to understand and helped me on my final project. Thank you!!!

  • @ellenasman7572
    @ellenasman7572 ปีที่แล้ว

    I've always loved your videos and now I study computer science and can watch your videos for studying, it's amazing

  • @seraph3290
    @seraph3290 7 ปีที่แล้ว +1

    Mike you are my favourite person to appear on this channel. I enjoy your clear explanations and like the quite recent toppics like google deep dream, dijkstra and so on.

  • @maamiimii
    @maamiimii 7 ปีที่แล้ว +9

    I love this channel so much...

  • @daft_punker
    @daft_punker 7 ปีที่แล้ว

    I love these videos when Dr. Mike Pound is in them.

  • @xXParzivalXx
    @xXParzivalXx 7 ปีที่แล้ว +236

    Hmm, so far this is fairly straightforward, but the interesting part would be how exactly these compression functions work. Will there be a follow-up video on that?

    • @liljuan206
      @liljuan206 5 ปีที่แล้ว +40

      In essence, it generates 80 32 bit words derived from bits of the plaintext, then the state does right circular shifts, some XORs, some bitwise ANDs, addition with the round word and round constant, and then permutation between all state variables

    • @onlyheretowatchfailcompilation
      @onlyheretowatchfailcompilation 4 ปีที่แล้ว +13

      @@liljuan206 thanks, this really helped clearing things up

    • @jacko314
      @jacko314 3 ปีที่แล้ว +4

      it isn't compression he is describing it is hashing. which is not what encryption is. which is what sha is. (notice the s part stands for secure).

    • @jay-tbl
      @jay-tbl 2 ปีที่แล้ว

      @@liljuan206 how do they make it so it can't be reversed?

    • @Nick-lx4fo
      @Nick-lx4fo 2 ปีที่แล้ว

      In essence Sha-2 uses 6 primary functions: Choice and Majority, and S0, S1, E0, and E1 all which move and permutate bytes around during compression

  • @bluekeybo
    @bluekeybo 7 ปีที่แล้ว +1

    Dr Mike Pound is the best! More videos with him please

  • @nO_d3N1AL
    @nO_d3N1AL 7 ปีที่แล้ว +1

    I always wondered how these things work. Great video

  • @eljaguar4789
    @eljaguar4789 2 ปีที่แล้ว +1

    Thank you so much. I had a hard time finding someone to explain it well

  • @samielyousfialaoui8975
    @samielyousfialaoui8975 2 ปีที่แล้ว

    Re watched it at least 10 times. Thank you for this explanation

  • @vitus4514
    @vitus4514 5 ปีที่แล้ว +951

    Roses are red
    Violets are blue
    Unexpected { on line 32

    • @whiteeyedshadow8423
      @whiteeyedshadow8423 4 ปีที่แล้ว +2

      coding joke

    • @draco5991rep
      @draco5991rep 4 ปีที่แล้ว +35

      A poetic compiler? I like that idea

    • @eemelilehtonen8628
      @eemelilehtonen8628 4 ปีที่แล้ว +2

      Unresolved external symbol

    • @gonkbous
      @gonkbous 4 ปีที่แล้ว +5

      Felt that on a spiritual level

    • @hypersans6209
      @hypersans6209 3 ปีที่แล้ว +8

      Violets are blue
      Roses are red
      Your code isn't thread-safe
      Use locks instead

  • @Hari-888
    @Hari-888 5 ปีที่แล้ว

    pound for pound Mike pound is the best narrator on computerphile

  • @stefanpopescu4914
    @stefanpopescu4914 7 ปีที่แล้ว

    Love the Schildt on your wall!

  • @tresteinjordklatt8133
    @tresteinjordklatt8133 7 ปีที่แล้ว +5

    I would love to see a video about the compression function! :)

  • @kuhicop
    @kuhicop 5 ปีที่แล้ว +1

    It would be amazing a video how you can get tracked for example: ip, mac, canvas, hd serial number, etc
    Thanks for your great work!

  • @crummybadger
    @crummybadger 7 ปีที่แล้ว

    Excellent as usual, good learning resource

  • @miles4711
    @miles4711 7 ปีที่แล้ว +101

    Would you please explain the workings of the "washing machine"? ;-) I.e. the compression functions?

    • @miles4711
      @miles4711 7 ปีที่แล้ว +1

      Thanks. I'll give this snippet a look. :-)

  • @dreammfyre
    @dreammfyre 7 ปีที่แล้ว +136

    My dealer need this.

    • @crypto_admin4150
      @crypto_admin4150 2 ปีที่แล้ว

      Appreciate your feed back!
      Thanks for watching, for more info and guidance on how to trade and earn.
      W…h…a…t…s…A…p…p~~M.E……
      +…1…7…2…0…3…1…9…7…5…5…1

    • @jephmukiza4015
      @jephmukiza4015 2 ปีที่แล้ว

      😂😂😂😂😂

    • @planetashre7287
      @planetashre7287 2 ปีที่แล้ว

      😆

    • @NStripleseven
      @NStripleseven 2 ปีที่แล้ว

      🤣

  • @d_vibe-swe
    @d_vibe-swe 7 ปีที่แล้ว

    Thank you! Made hashing much clearer for me now :)

  • @jamesslaterly8670
    @jamesslaterly8670 3 ปีที่แล้ว

    keeps me engaged great explanation

  • @joinedupjon
    @joinedupjon 7 ปีที่แล้ว +47

    Thought I was following until 9:35
    He describes a way of padding that will produce the same padding string for messages with the same length - then says it's important that messages with the same length don't have the same padding string. Did something important end up on the editing room floor?

    • @Computerphile
      @Computerphile  7 ปีที่แล้ว +29

      I'll check with Mike but I think it was just a slip of the tongue - ie The padding would be the same for messages of the same length but the messages would be different if they are different >Sean

    • @Mat2095
      @Mat2095 7 ปีที่แล้ว +5

      No, "0010110" padded would be "0010110100000...", but "001011000" would be "001011000100000...", so the 1 (first bit of padding) would be later.

    • @hellterminator
      @hellterminator 7 ปีที่แล้ว +6

      +Mat2095 He obviously meant if you just pad them with zeros.

  • @theignorantphilosopher4855
    @theignorantphilosopher4855 7 ปีที่แล้ว +5

    What I want to know, for no particular reason, is if there are cases where a hash of a hash equals itself, of course sticking with one particular algorithm and hash length.

  • @johnmiller8884
    @johnmiller8884 7 ปีที่แล้ว +2

    Can you talk about the colliding prefix issue? As I understand it once I find a collision with a file, I can continue to create collisions by appending the same thing to both files, and some how this allows me to create two meaningful files each with the same hash value where one might expect that any collision which might be found would be obviously fake because it would have to be made up of a bunch of random bits.

  • @user-en8yz5zf1w
    @user-en8yz5zf1w 3 ปีที่แล้ว +1

    the video's shoots are like modern family and that make's me happy ! also the information so thanks!

  • @TheMrKeksLp
    @TheMrKeksLp 7 ปีที่แล้ว +34

    Note to self: Don't use a regular monitor as a touch screen

    • @Teknishun
      @Teknishun 4 ปีที่แล้ว +3

      Its a university flatron monitor, probably expendable.

  • @mbharatm
    @mbharatm 5 ปีที่แล้ว +2

    easy-going video which explains just enough about SHA algo to keep it simple. The details are better learnt once you "get" the basic idea.

  • @niyatikhandelwal7017
    @niyatikhandelwal7017 3 ปีที่แล้ว

    Loved the washing machine demonstration!

  • @ac130kz
    @ac130kz 7 ปีที่แล้ว +1

    Nice! Could you make a video about post-quantum cryptography please? It will be a great opportunity to learn more about this stuff

  • @robertbrummayer4908
    @robertbrummayer4908 2 ปีที่แล้ว

    Good job! Your videos are excellent.

  • @player6769
    @player6769 7 ปีที่แล้ว

    never been this early for a computerphile, dope

  • @Andranadu
    @Andranadu 7 ปีที่แล้ว +786

    SHA Hashing Algorithm?
    Secure Hashing Algorithm Hashing Algorithm

    • @Loo0Lzz
      @Loo0Lzz 7 ปีที่แล้ว +169

      ATM Machine

    • @Simon8162
      @Simon8162 7 ปีที่แล้ว +122

      RAS Syndrome

    • @kenzotenma7793
      @kenzotenma7793 7 ปีที่แล้ว +134

      LAN Network

    • @MattyFez
      @MattyFez 7 ปีที่แล้ว +144

      GNU's Not Unix...wait a minute

    • @AkshayAradhya
      @AkshayAradhya 7 ปีที่แล้ว +120

      LCD Display

  • @mubafaw
    @mubafaw 3 หลายเดือนก่อน

    Elegant explanation. Thank you, Thank you, Thank you 😊👍

  • @tymothylim6550
    @tymothylim6550 2 ปีที่แล้ว

    Thank you very much for this video :) It was very helpful and educational!

  • @_aullik
    @_aullik 7 ปีที่แล้ว +209

    How does the padding work if a block is 511 bits long?

    • @KuraIthys
      @KuraIthys 7 ปีที่แล้ว +107

      aullik Considering almost all real-world data is stored as a stream of bytes (8 bit values), That's incredibly unlikely to ever come up.
      It could be 504 bits, but 511 is highly improbable.
      If your padding has to add at least 8 bits (one byte), then the thing he described works fine.
      Remember working with individual bits is almost unheard of in computing.
      If you have to store individual bits for storage efficiency, you pack them into bytes.
      (similarly, if you store 7 bit values, you either store them in 8 bits and ignore a bit, or you pack it such that you store, say, 56 bit blocks. (7 x 8 - eg, 8 sets of 7 bits stored in 7 bytes)

    • @tiikoni8742
      @tiikoni8742 7 ปีที่แล้ว +15

      aullik: Exactly the question that raised to my mind too :-) Since there isn't necessary enough bits left in the block to include the length of actual message.

    • @Shadow4707
      @Shadow4707 7 ปีที่แล้ว +56

      You could add another block of 512 bits to the end to make it work.

    • @SirLugash
      @SirLugash 7 ปีที่แล้ว +13

      +KuraIthys
      Going with bytes, the longest message that could still be padded would be 496 bits long. 504 wouldn't work as you'd only have 8 bits left but 504 in binary is already 9 bits long.

    • @_aullik
      @_aullik 7 ปีที่แล้ว +8

      +Kuralthys
      I know that we usually work with bytes, But even if we say we have 512-8 = 504 bits Then we add 1 '1' bit to start the padding and now we only have 7 bytes left. The message is 504 bytes long but we can only store 128 in 7 bits.
      The only answer is that we expand to 1024 bits. But the question would be how do we expand. What is the "syntax" for the lack of a better word

  • @Quarker
    @Quarker 7 ปีที่แล้ว +4

    How do you know the "1000000..." padding bits are for padding purposes, and not part of the actual data/plaintext itself?

  • @atmunn1
    @atmunn1 7 ปีที่แล้ว +5

    I kinda want to make my own hashing algorithm now. It wouldn't be very good, it would just be some random jostling around of bits until it looks weird.

  • @user-cx2bk6pm2f
    @user-cx2bk6pm2f 3 ปีที่แล้ว +2

    I feel like a genius learning everything here!

  • @krakenmetzger
    @krakenmetzger 4 ปีที่แล้ว

    What's amazing is the Tom Scott "rocket" animation didn't show up on a video from Dr. Pound

  • @ghostrecon8193
    @ghostrecon8193 7 ปีที่แล้ว +11

    It'd be amazing to see Dr.Pound reviewing some books from his collection. Get to know his technical interests apart from image analysis.

  • @somedude3203
    @somedude3203 6 ปีที่แล้ว +1

    Another video explaining SHA-256 would be awesome.

  • @juanferpz4158
    @juanferpz4158 3 ปีที่แล้ว +1

    9:49 captions about Merkle-Damgard Construction are hilarious

  • @lawrencedoliveiro9104
    @lawrencedoliveiro9104 4 ปีที่แล้ว +1

    3:17 And the reasons why the NSA came out with SHA-1 to replace the earlier SHA-0 (or just plain “SHA”) were not revealed publicly. But the weaknesses in the original SHA were discovered independently a few years later. This was part of a sequence of evidence indicating that the gap between public, unclassified crypto technology and what the NSA has was narrowing, and may not be significant any more.

    • @firstlast8847
      @firstlast8847 ปีที่แล้ว

      I think it's widening because look at Pegasus and with Pegasus 2.0 you only need phone number to target a victim.
      And, Pegasus is joint project between Israel and USA. Imagine what NSA would have kept to themselves.
      It is common understanding in computer security feild that if government wants you, they have you.

  • @idogtv
    @idogtv 7 ปีที่แล้ว +2

    Oh nice, string hashing via SHA1 is something I've been interested in.

  • @djsarkie
    @djsarkie 6 ปีที่แล้ว

    Tx for the video :-). Maybe someone can help me with this question: What does determine the outcoming hash? At the one hand it is totally random, at the other hand it is consistent? Is it a super hugh complex formula, so that it is better to randomly guess instead of solving the formula? Or is it the NSA the only one who has the formula?

  • @johanhendriks
    @johanhendriks 2 ปีที่แล้ว +1

    That 011001011 he wrote down is actually the start of the SHA hash value for "abd". I wonder if that was intentional, because the odds of that happening randomly are less than one percent.

  • @unperrier5998
    @unperrier5998 3 ปีที่แล้ว

    Excellent, finall a video with subtitles :)

  • @keeskoenen
    @keeskoenen 5 ปีที่แล้ว +1

    This was very informatice!
    Question: Is there any significance to the initialization constants
    h0 = 0x67452301
    h1 = 0xEFCDAB89
    h2 = 0x98BADCFE
    h3 = 0x10325476
    h4 = 0xC3D2E1F0
    Or are they chosen "randomly"?
    Thanks!

    • @danielf.7151
      @danielf.7151 4 ปีที่แล้ว

      No, hey could be any numbers. BUt the cryptographic comunity is very sceptical of numbers that come out of nowhere.

  • @stellardancing
    @stellardancing 3 ปีที่แล้ว

    Love these videos.

  • @alakhdar100
    @alakhdar100 7 หลายเดือนก่อน

    The key idea that i got from this video is that hashing is not encryption and there is a difference between the two, while its easy someone confuse between them.

  • @explosu
    @explosu 5 ปีที่แล้ว +4

    The thumbnail made me think "OSHA" with the O as Dr Pound's head.

  • @drnagajima
    @drnagajima 2 ปีที่แล้ว

    Superb video! Understood it even better with a lefty teaching me ;)

  • @samgregg7
    @samgregg7 7 ปีที่แล้ว +1

    Isn't padding used even if the message is already a multiply of 512 bits to avoid attacks?

  • @jevaispartout1271
    @jevaispartout1271 ปีที่แล้ว +1

    Since SHA is deterministic, even though it is non-reversible, it is still possible to guess the hashes of some reasonably short messages. For example, string 'abc' ALWAYS produces ba7816bf8f01cfea414140de5dae2223b00361a396177a9cb410ff61f20015ad. If I have a large enough database plus computational power, I could probably guess some short messages, although not the entire novel.

    • @pro-socialsociopath769
      @pro-socialsociopath769 7 หลายเดือนก่อน

      That's exactly how most cracking is done. Hashed database against hashed database lol

  • @robertjif6337
    @robertjif6337 7 ปีที่แล้ว +1

    I'm confused , what is that "abcde" stand for ? and why is the loop be done 80 times ?
    and the text is 512 bits long right ? how do I convert them into H0-H4 which is 160 bits in total ?
    thanks

    • @karthikgarimella2131
      @karthikgarimella2131 4 ปีที่แล้ว

      Actually that process involves using x-or function ,you can see it on the net about the way the abcde is changed into a different abcde it is pretty interesting

  • @Nickle314
    @Nickle314 7 ปีที่แล้ว

    So a hash function can protect against doctoring a message.
    How do you prevent the insertion or deletion of a message in stream of messages? Each can be hashed, but you could create a new message, hash it, send it and its deemed good.
    Do you have a secure cryptographic sequence number than can be embedded in any way?

    • @pH7oslo
      @pH7oslo 7 ปีที่แล้ว +1

      "How do you prevent the insertion or deletion of a message in stream of messages?"
      Before sha'ing you just append a shared secret. That way someone intercepting the message on route won't be able to produce a valid hash for an altered message. The recipient verifies the integrity of the message by sha'ing the message with the shared secret appended to it.
      "Do you have a secure cryptographic sequence number than can be embedded in any way?"
      If you mean some "sequence" number that appears to change randomly from one message to another, yet is known/anticipated by the recipient, than that's basically their shared secret, except it's not static.
      However, in this scenario getting out of sync would mean that all the following messages would fail their integrity checks, until some sort of reset. That makes it trivial to do a DoS attack on the protocol/exchange. One common way to counter this is to reset every minute or two, but then the communication would have to be (close to) real-time.
      Such a sequence can be any sufficiently random pseudo-random number generator sequence.

  • @sauce2408
    @sauce2408 4 ปีที่แล้ว

    are the initial values important? any recommended readings on this?

  • @its_dayman
    @its_dayman 7 ปีที่แล้ว +1

    Can you do one of these for bcrypt as well?

  • @murk1e
    @murk1e 7 ปีที่แล้ว +5

    What if the message is only a few bits shy of a block, not enough room for padding bits as described?

    • @MatthijsvanDuin
      @MatthijsvanDuin 7 ปีที่แล้ว +12

      If there's less than 65 bits of space left in the final block for padding, you just pad toward an extra block. For example if your message is 480 bits, you add a one-bit, 479 zero-bits, and the 64-bit length, giving total length 1024 bits = 2 blocks.

    • @murk1e
      @murk1e 7 ปีที่แล้ว +1

      Matthijs van Duin thanks

  • @eduardojreis
    @eduardojreis 4 ปีที่แล้ว +1

    9:40 I didn't quite understand how that padding scheme guarantees that messages with the same size would not share the same padding.

  • @TheDailyMemesShow
    @TheDailyMemesShow 8 หลายเดือนก่อน

    Llama 2 recommended your channel on this topic 💯 😊 crazy, isn't it?

  • @willis936
    @willis936 6 ปีที่แล้ว

    So the padding is only denoted by the last one with a trail of zeroes and a length at the end? That is not a prefix and without some other way of indicating that padding is present it is indistinguishable from data.
    After a quick google search it appears that the padding is always present so it doesn't need to be a prefix.

  • @KX36
    @KX36 7 ปีที่แล้ว +10

    5:50 summarised the subject in 1 sentence ;-)

  • @waddahmustafa2954
    @waddahmustafa2954 5 ปีที่แล้ว

    I ve always wondered what are those books, Would someone please show me the names of the books on the shelf and their authors?

  • @kamikon755
    @kamikon755 5 ปีที่แล้ว

    So can two different string can output the same result after go through the hashing function?

  • @ianflaherty5062
    @ianflaherty5062 7 ปีที่แล้ว

    awesome awesome awesome great explanation! ty

  • @harsha123409875
    @harsha123409875 6 ปีที่แล้ว

    What would be the padding if the final chunk of message is only 502 - 511 bits?

  • @DancingRain
    @DancingRain 5 ปีที่แล้ว +1

    What happens if your message is, say, 509 bits in length? How do you pad it if the length won't fit?

  • @nikolapasteur1825
    @nikolapasteur1825 7 ปีที่แล้ว

    is that u of Nottingham cup supposed to be some kind of product placement? it's like the camera is trying to keep it in frame and it doesn't even look like it been drank out of. also cool rubix cubes on the shelf

    • @CleverCrumbish
      @CleverCrumbish 7 ปีที่แล้ว +1

      Given the whole of Computerphile is to some extent an endorsement of the University of Nottingham it seems unlikely, or at least unnecessary. More likely it happened to be part of the initial framing shot the camera operator wanted to avoid drifting from too much.

  • @helinw
    @helinw 6 ปีที่แล้ว

    Isn't it unsafe to have a padding scheme that leads to pre-image collision? E.g., h(msg) = h(pad(msg)).

  • @daanwilmer
    @daanwilmer 7 ปีที่แล้ว +1

    I remember when SHA1 was actually still secure, and people could get away with MD5 (although it was started to be frowned upon). Now I feel old.

  • @ftwgaming0
    @ftwgaming0 2 ปีที่แล้ว

    What to stop someone from precomputing all of the possible hashes, and saving it to a file that can be read as an array, then doing the same with the things it was hashing being saved to a different file. When someone wants the reverse hash of something, open the file and look up the position of the hash within that file, then look up that same position in the un-hashed file.
    or is it faster to just generate all possible combinations on-the-fly until finding a hash that matches.

    • @danielf.7151
      @danielf.7151 2 ปีที่แล้ว +1

      That is actually a possibility, called a rainbow table.
      One way around it is to use a salt: when a user first creates an account, you generate a random string of characters, append it to the password and then hash it. The random string is stored in your db alongside the hash.
      This also mkaes it so you have to crack each user's password individually.

  • @CyberQuickYT
    @CyberQuickYT 4 ปีที่แล้ว

    what happens if I feed 511 bits? it's not a multiple for 512 but the space left is too short to save the length

  • @Jomtek
    @Jomtek 7 ปีที่แล้ว

    Really interesting videos !

  • @tj9382
    @tj9382 4 ปีที่แล้ว +1

    He’s a very knowledgeable guy, what are his qualifications ?

  • @bci3937
    @bci3937 5 ปีที่แล้ว

    Can u explain also the "Bundestrojaner"? #Backdoor:W32/R2D2.A #Staatstrojaner #mfc42ul.dll

  • @Gribbo9999
    @Gribbo9999 6 ปีที่แล้ว

    Haven't seen that computer pyjama paper you are writing on in qute a while. Is it still used or is that just redundant stock?

  • @Nanofuzz
    @Nanofuzz 6 ปีที่แล้ว

    Thank you computerphile:-)...

  • @Gunth0r
    @Gunth0r 6 ปีที่แล้ว

    wingardium levioSHA! (is what I immediately thought of when you started the video with 'shaa...').

  • @neonwhitey
    @neonwhitey ปีที่แล้ว

    Mike is the best

  • @Luk3Stein
    @Luk3Stein 5 หลายเดือนก่อน +1

    What happens if a message is smaller than 512 bits but long enough for the padding part to not have any space left to store the length of the message?

    • @danielf.7151
      @danielf.7151 4 หลายเดือนก่อน +2

      Then you pad to 1024 bits(including message length)

  • @LLubdeRr
    @LLubdeRr 10 หลายเดือนก่อน +2

    This man forgot more about IT security than i will ever learn

  • @feschber
    @feschber 6 ปีที่แล้ว

    So basically it's a randomization function that is seeded with the data you give it, right?

  • @omarfaruque4756
    @omarfaruque4756 6 ปีที่แล้ว

    tell me which sha to use when finding duplicate files

  • @MrRyanroberson1
    @MrRyanroberson1 7 ปีที่แล้ว

    I know youre not 'languagephile' but is there a real reason for nought and zero being so stark in contrast?
    also: if oyu hve a message between 502 and 511 (inclusive) the padding would try to tack on 10 extra bits, how is that resolved? (10 bits because 1, then #of bits which is 9 in length)

  • @AlchemistOfNirnroot
    @AlchemistOfNirnroot 5 ปีที่แล้ว

    Is it possible to superpose pseudo random number generators to increase the levels of randomness?

  • @CaseyRedDragon
    @CaseyRedDragon 7 ปีที่แล้ว +1

    You teach this better then my professor

  • @fixingstuff8117
    @fixingstuff8117 4 ปีที่แล้ว +2

    I like the words at the end. The shower function. Murkland damn.[...] Obviously speech recognition still have some way to go.

  • @brianwilliams4562
    @brianwilliams4562 ปีที่แล้ว

    How do hash functions prevent creating collision free hashes if the functions are not communicating with each other or keeping track of all the hashes ever created?

    • @danielf.7151
      @danielf.7151 ปีที่แล้ว +1

      you can't. it's not a problem, if you cannot do it on purpose in reasonable time.

  • @utkarshkathuria2931
    @utkarshkathuria2931 3 ปีที่แล้ว

    hi, please explain how you get new A B C D E? When you put 512 bits with initial A B C D E, you get new 512 bits, is it right?

  • @michaelcrosby7715
    @michaelcrosby7715 3 ปีที่แล้ว +1

    Me: Explain SHA
    Dr. Pound: Explains it
    Me confused: Explain it to me like I'm 12
    Dr. Pound: Explains it like I'm 12
    Me still: Explain it to me like I'm 5...