Slashdot Mirror


SHA-1 Broken

Nanolith writes "From Bruce Schneier's weblog: 'SHA-1 has been broken. Not a reduced-round version. Not a simplified version. The real thing. The research team of Xiaoyun Wang, Yiqun Lisa Yin, and Hongbo Yu (mostly from Shandong University in China) have been quietly circulating a paper announcing their results...'" Note, though, that Schneier also writes "The paper isn't generally available yet. At this point I can't tell if the attack is real, but the paper looks good and this is a reputable research team."

173 of 751 comments (clear)

  1. Sigh by Anonymous Coward · · Score: 5, Funny

    And I just got done upgrading from MD5.

    1. Re:Sigh by dasunt · · Score: 4, Funny

      About a month ago, I needed a mechanism for password hashes.

      After some research, I decided that SHA1 was more secure than MD5.

      So I hunted down some good public domain SHA1 code, read through it, and added it to my code.

      Thanks /.!

    2. Re:Sigh by Janitha · · Score: 2, Funny

      Can you hear the sound... its the sound of admins all around the world crying. And I thought my SHA-1 rainbow tables were awsome.

    3. Re:Sigh by ottothecow · · Score: 2, Insightful
      Well, without /. they would be quietly circulating a paper on how to break your hashes and it would still be quiet.

      Maybe its easier to upgrade from SHA1 than it was from MD5.

      --
      Bottles.
    4. Re:Sigh by mlyle · · Score: 2

      A mechanism to find collisions does not affect SHA-1's strength as a password hashing algorithm or its use in a hashed message authentication code. So you'll be just fine.

    5. Re:Sigh by Frymaster · · Score: 3, Funny
      -----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1

      A mechanism to find collisions does not affect SHA-1's strength as a password hashing algorithm or its use in a hashed message authentication code. So you'll be just fine.Z

      really? well, i'm not the real frymaster. what do you say to that?

      -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.2.4 (Darwin) iD8DBQFCEsqV7Kzi+hL3je0RAl7iAJ41SsgjgwMvrS5+1OLLYp pYkXUPOgCgzSQS c42DLVAjebLYs2VTPkT/iIc= =8699 -----END PGP SIGNATURE-----

    6. Re:Sigh by Frobnicator · · Score: 4, Insightful

      Yes, they found a way to break the hash function. But as the parent said, it does not mean it's suddenly invalid. Sure, the group found a way to break the algorithim, but look at According to TFA a collision can be found in about 2**69 hash operations. That's 590295810358705651712 attempts before they can find a match, as opposed to the 2**80 (1208925819614629174706176) that was expected before the paper. While the paper means it is orders of magnitude less work, it still means a lot of work for the attacker. Lets look at two relevant examples: disc images and passwords. Lets say I have an ISO disk image. I hack it, and want to modify some of the 'junk' bits using their algorithm. I'd still need to perform 590295810358705651712 hash operations on that image. Computing the hash of a disc is a slow operation. That's not something I could do in a day, week, or even a few months. Perhaps if I had a massivly parallel computer available, I could do it, but not as an individual. For a password, hopefully your system would lock the account long before there are that many failed login attempts. However, if your attacker has that kind of resources, you can assume it is feasable for them to find a hash collision. That's really only significant for governments, multi-national organizations, and other major enterprises, but not for most people.

      --
      //TODO: Think of witty sig statement
    7. Re:Sigh by B3ryllium · · Score: 4, Funny

      You do realize, of course, that the recent preponderance of IRC-controlled botnets and such could easily be applied to a computational challenge such as this?

      Imagine tens of thousands of way-overpowered virus-infected 3Ghz Dell machines chewing threw the data?

      Then imagine a beowulf cluster of those.

    8. Re:Sigh by Nos. · · Score: 2, Interesting

      Well maybe then they wouldn't be attempting to send my mail server spam every 2 minutes from what appears to be some very poor version of a dictionary attack. Its fun to watch some of the attempts. It appears a lot of harvesters pull out 'and' in an email address. In my case, this is actually a *good* thing.

    9. Re:Sigh by Craigj0 · · Score: 4, Informative
      For a password, hopefully your system would lock the account long before there are that many failed login attempts. However, if your attacker has that kind of resources, you can assume it is feasable for them to find a hash collision. That's really only significant for governments, multi-national organizations, and other major enterprises, but not for most people.

      That is not how it works. THey are using the birthday paradox, that is why brute force is 2^80 not 2^160. Put simple the birthday paradox finds two pieces of data with the same hash. It does NOT (as so many posts believe) allow you to find a matching hash to a fixed piece of data. (This would take 2^160, perhaps less with the weaknesses discovered but not close to 2^69). Hence this does not allow you to break passwords.
    10. Re:Sigh by hobbicik · · Score: 4, Informative

      Lets say I have an ISO disk image. I hack it, and want to modify some of the 'junk' bits using their algorithm. I'd still need to perform 590295810358705651712 hash operations on that image. Computing the hash of a disc is a slow operation. That's not something I could do in a day, week, or even a few months. Perhaps if I had a massivly parallel computer available, I could do it, but not as an individual.

      No need to compute the hash of a whole disc. You can calculate the internal state of SHA-1 after processing the whole image except - lets say - the last kilobyte (you do it ONCE) and find a collision by modifying only this last kilobyte with great chance of succeeding. There are 2^8192 variants of the last kilobyte, but only 2^160 variants of the hash - that's why you'll probably succeed.

    11. Re:Sigh by fulgan · · Score: 3, Informative

      Actually, you're both righ and wrong.

      You're right because 2^69 operation is an awfull lot of work: as someone of Bruce Schneier's web log said, if you had a processor clocked at 4ghz capable of testing one hash per cycle, it would still take 4000 year to breakj a single hash. Clearly, this isn't feasible today or, at least, not without a lot of resources (hugh clusters of code-breaking computers).

      You're wrong because you don't have to parse the whole file: SHA-1 works by dividing the data to computer into chunks of identical size (padding them if necessray, SHA-1 uses blocks of 512 bits) and applying a set of operation to each block in turn, using the previous block as initial state.

      So it means that, if you have a way to create a collision between to hash function, all you have to do to "patch" your ISO image is work on the LAST chunk of data and make sure it ends up with the correct state. So you'll have to computer the hash of the full ISO only once per image.

    12. Re:Sigh by mlyle · · Score: 3, Informative

      OK, and then let's do some math.

      Let's say you have 2^20 (1048576) machines. Let's say each can do 2^20 hashes per second (this is optimistic). Then it will take you 2^29 seconds to find a hash collision-- this is about 17 years.

      This doesn't even let you collide with an arbitrary thing-- rather, you can provide something to someone to sign, and have another message that hashes to the same thing.

      It is worrisome, though, because perhaps attacks will improve and it'll continue to get cheaper.

  2. Info on what exactly SHA-1 is ... by Hulkster · · Score: 5, Informative

    For those interested, here is the actual detailed/lengthy FIPS PUB 180-1 from NIST, as typical, Wikipedia has a nice summary, and the W3 Folks have a short snippet ...

    1. Re:Info on what exactly SHA-1 is ... by interiot · · Score: 5, Interesting

      So SHA-1 was created by the NSA, and was broken nine years after it was released. Is there any chance that the NSA knew it had a secret weakness, and promoted it for that specific reason?

    2. Re:Info on what exactly SHA-1 is ... by digitalchinky · · Score: 2, Insightful

      In realistic terms, would you have predicted such rapid advancement in computer processing power over the last 9 years? Ok, so maybe the answer to that question is yes, but encryption schemes are not specifically meant to protect things forever, just the length of time that the information contained could be damaging in the 'wrong hands'

      Any encryption scheme that lasts about 10 years has given a pretty good service I would think.

    3. Re:Info on what exactly SHA-1 is ... by jayhawk88 · · Score: 2, Funny

      Isn't this a plot from a Dan Brown book?

    4. Re:Info on what exactly SHA-1 is ... by Anonymous Coward · · Score: 5, Insightful
      Any encryption scheme that lasts about 10 years has given a pretty good service I would think.
      SHA-1 is not an encryption scheme, it's a cryptographic one-way hash function.

      There's a significant difference.
    5. Re:Info on what exactly SHA-1 is ... by Omnifarious · · Score: 2, Insightful

      I don't think the NSA would gain a lot from a weakness in a secure hash algorithm. In an encryption algorithm, yes, but not a secure hash algorithm.

    6. Re:Info on what exactly SHA-1 is ... by OverlordQ · · Score: 4, Interesting

      DES had a weakness nobody but the NSA knew about, so they recommended changes to it without saying the reasons for them. years later an attack was found against DES, but the NSA changes prevented it from being useful. Why would they change their tune to SHA-1?

      --
      Your hair look like poop, Bob! - Wanker.
    7. Re:Info on what exactly SHA-1 is ... by pchan- · · Score: 4, Interesting

      So SHA-1 was created by the NSA, and was broken nine years after it was released. Is there any chance that the NSA knew it had a secret weakness, and promoted it for that specific reason?

      I don't know about this, but when SHA (the Secure Hash Algorithm) was submitted as an approved algorithm for government use, the NSA reviewed it and suggested a minor change. That modified algorithm is what we now know as SHA-1. It was a few years before public-sector cryptographers caught on to what the significance of the changes was (I wish I could explain it, but it is beyond me).

    8. Re:Info on what exactly SHA-1 is ... by ftobin · · Score: 4, Insightful

      SHA-1 is not used for encryption, it is used for message authentication. Part of the NSA's mandate is to secure government traffic; it would gain little from promoting a broken digest algorithm. It arguably might have an interest in promoting a broken encryption algorithm, but SHA-1 is used for digital signatures.

    9. Re:Info on what exactly SHA-1 is ... by ottffssent · · Score: 2, Interesting

      Sure, there's a chance, but it's fairly remote.

      The original SHA was released in 1993. 2 years later, SHA-1 was released (by the NSA, through NIST) to address unspecified weakness in the original algorithm. In 1998, a weakness in the original SHA was discovered, and in 2004 various attacks on SHA, SHA-1, and other hashes were published. It is unknown which, if any, of the known SHA weaknesses were discovered by the NSA and resulted in the 1995 release of SHA-1, though at least one known attack affects SHA but not SHA-1. It seems likely that if the NSA were capable of releasing SHA-1 as the original SHA in 1993, they would have done so. Thus, it appears that the NSA discovered a weakness in SHA in 2 years that took the academic community 5-10 years to discover. The gap is not as wide as it was when DES was released, but it's still very impressive.

      End brief synthesis. Check out the wikipedia article (and links) for more information. That's where I got mine.

    10. Re:Info on what exactly SHA-1 is ... by Ninja+Programmer · · Score: 5, Interesting
      DES had a weakness nobody but the NSA knew about, so they recommended changes to it without saying the reasons for them. years later an attack was found against DES, but the NSA changes prevented it from being useful. Why would they change their tune to SHA-1?


      You know, of course, that the NSA did the same thing with SHA right? The original algorithm submitted was SHA-0, then the NSA recommended an unexplained minor change.

      Last August SHA-0 was broken, so their tweak appears to have added about 6 months of extra life for SHA-1.
    11. Re:Info on what exactly SHA-1 is ... by SiliconEntity · · Score: 4, Informative

      I don't know about this, but when SHA (the Secure Hash Algorithm) was submitted as an approved algorithm for government use, the NSA reviewed it and suggested a minor change. That modified algorithm is what we now know as SHA-1.

      Note quite right. The NSA invented SHA, but then a couple of years later discovered a weakness and made a slight change, to create SHA-1. The older version is now called SHA-0. According to Schneier's report, SHA-0 was broken even worse by the Chinese team, 2^39 work for a collision vs 2^69 for SHA-1. So the NSA's change was important and made a major increase in the strength of the algorithm.

      It was a few years before public-sector cryptographers caught on to what the significance of the changes was (I wish I could explain it, but it is beyond me).

      They just added a 1 bit rotate in one phase of the algorithm. Without it, SHA tends to keep the bits lined up and there is less mixing.

    12. Re:Info on what exactly SHA-1 is ... by jessecurry · · Score: 3, Insightful

      although I'll probably get modded down for this I have to say that after reading all of Dan Brown's books I find his plot structure to be exactly the same in every novel, and he exercises very poor character development.
      It's almost as if the man had a NYT Best seller creating mad-lib.
      His Idea of character development is giving them a disability, or a tweed coat :)

      --
      Those who know, do not speak. Those who speak, do not know. ~Lao Tzu
    13. Re:Info on what exactly SHA-1 is ... by Myria · · Score: 2, Insightful

      That's not quite correct. One-way hashers and block ciphers are really the same thing, just used in different modes of operation. See SHACAL on Wikipedia.

      Melissa

      --
      "Screw Sun, cross-platform will never work. Let's move on and steal the Java language." - Visual J++ Product Manager
    14. Re:Info on what exactly SHA-1 is ... by Bitsy+Boffin · · Score: 4, Informative

      The concept is not the same.

      Encryption is not in any way hashing, and hashing is not in any way encryption.

      A one way hash cannot in any way be decrypted, thats why it's called one way. It's physically not possible.

      A hash is not used to "protect" the data you are hashing, it's used to identify the data you are hashing. You can take an unhashed value, hash it and compare it with another hashed value to identify that the two original values were very likely the same value

      The strength of a hash is simply how likely it is that the two values were the same value, or conversly, how likely it is that they were not the same value.

      When two distinct values have the same resultant hash, we call that a "collision". It should be obvious that there are an infinite number of collisions for a fixed-length hash value - pidgeon hole principle shows you that.

      And SHA1 is not "broken", not yet, to be "broken" we would have to have a feasible way to generate a string of data that when hashed produces the same hash as an *already known* hash.

      If we could generate collisions for KNOWN hashes, in a reasonable time, then we could use those collisions to falsly identify to systems that use a hash of the original (still unknown) value.

      --
      NZ Electronics Enthusiasts: Check out my Trade Me Listings
    15. Re:Info on what exactly SHA-1 is ... by Eivind · · Score: 4, Interesting
      Not quite.

      For quite a few applications the hash is broken even if I cannot easily find a second string with the same hash as one given. Even if I can "only" at will find two strings with the same hash, that is a pretty serious weakness.

      I could, for example, create two documents with the same hash, have you sign one, and then claim you signed the other one. Since the hashes are the same your digital signature will be valid for both.

      For other applications, like replacing a signed document with another without being detected you're rigth -- that would only work if one could easily find a document with a given hash.

  3. For more info by response3 · · Score: 3, Informative

    I'm not sure if this post is news or what, but for more info, click here:

    http://www.itl.nist.gov/fipspubs/fip180-1.htm

  4. Prison. by Seumas · · Score: 5, Funny

    A lot of companies and products use SHA1 in some form or another. Does this mean that we can arrest and imprison these "researchers" if they ever step foot in America?

    1. Re:Prison. by chialea · · Score: 2, Informative

      Hi Tom.

      As you weren't at crypto last year, you missed a bit of a brouhaha where people were considering moving the conference (which is ALWAYS at UCSB) outside of the US. The proximate motivation for this was that there was a grad student who had a paper, and was supposed to present it. When she found out, she got the next embassy appointment to get a visa, which was three weeks before the conference. She went, and they freaked out about the "crypto" thing, and said they'd have to send her work back for review to see if she was a terrorist or some such. They gave her a new appointment a week after the conference. Less than useful, eh?

      The visa people need to remove their heads from their posteriors about published work; it's hard to threaten the US by talking about something published in a very prominent conference at that conference. (Someone's going to do it!)

      Lea

  5. Oh great... by randori82 · · Score: 3, Funny

    Time to change the VPN policies

  6. Time to switch.... by Anonymous Coward · · Score: 4, Funny

    ... to SHA-2!

    1. Re:Time to switch.... by metlin · · Score: 3, Informative

      Which *one* of SHA-2?

      FYI, SHA-224, SHA-256, SHA-384, and SHA-512 are all referred to as SHA-2.

    2. Re:Time to switch.... by prockcore · · Score: 3, Informative


      FYI, SHA-224, SHA-256, SHA-384, and SHA-512 are all referred to as SHA-2.


      Doesn't matter. The only difference is key length. The algorithm is the same.

  7. Time to start a panic by psetzer · · Score: 4, Funny

    If you don't switch to the newest, latest hashing algorithm, you will die horribly when your corrupted emacs RPM performs malicious code!!! Everyone, delete everything and log off of the Internets now!!! We're all gonna die!!! HELP!!!

    --
    "Anyone who attempts to generate random numbers by deterministic means is living in a state of sin." -- John von Neumann
  8. Brought to You By by z0ink · · Score: 5, Informative

    Same group of people that found the MD5 Hash Collision. Self references and the MD5 paper.

    --
    Steal This Sig
  9. May be a big deal... by ThisNukes4u · · Score: 2, Interesting

    This may be a big deal, because if I understand correctly, SHA-1 is a similiar algorithm to MD5, which is commonly used to uniquely identify files. If that could be cracked using a similiar technique, a better method of hashing files may have to be found.

    --
    thisnukes4u.net
    1. Re:May be a big deal... by Ctrl-Z · · Score: 2, Informative

      Actually, that wouldn't really work in practice. What would stop someone from intercepting it and changing the message and the hash before your receive it?

      I think what you are thinking of is a digital signature system, where the document is hashed and then the hash is signed. Any tampering would invalidate the signature. The hash is used because it takes a lot of random data to encrypt an arbitrary file, while it takes quite a bit less to encrypt a short, fixed-length hash like SHA-1. Since (in theory), the probability of message collision is quite low, the hash is (practically) as good as the real thing for signing.

      --
      www.timcoleman.com is a total waste of your time. Never go there.
    2. Re:May be a big deal... by ajs · · Score: 5, Informative

      if I understand correctly, SHA-1 is a similiar algorithm to MD5, which is commonly used to uniquely identify files

      You do not quite understand correctly. MD5 and SHA-1 are hashing algorithms, and as such it is expected (and accepted) that there are collisions. That is, you might find that your /etc/passwd and /bin/ls files have the same MD5 hash. The value in MD5 and other such hashes is that the probability of that happening is so remote that as a first approximation, comparing hashes is just as good as comparing files.

      That is, you can either keep a backup copy of your filesystem to compare against or you can keep a list of hashes, and mathematically, all this "break" has demonstrated is that the chances are 1:590295810358705651712 not 1:1208925819614629174706176 of a collision. In other words, don't lose sleep.

      Now, for secure cryptographic signatures, the implications are much more unpleasant. It's not the end of the world, but this is that big red light that says: switch to SHA-512 (or something equally secure) ASAP!

  10. Damn it by afidel · · Score: 2, Funny

    /me
    Log into VPN Firewall
    Check VPN settings
    Notices SHA for authentication type
    Swears
    Checks other option, notices {none} and {md5}
    scratches head
    decides to go with MD5 until that too is broken /me wishes security were easier

    --
    There are 4 boxes to use in the defense of liberty: soap, ballot, jury, ammo. Use in that order. Starting now.
    1. Re:Damn it by ad0gg · · Score: 2, Informative

      MD5 was cracked before this.

      --

      Have you ever been to a turkish prison?

    2. Re:Damn it by psetzer · · Score: 5, Informative
      It's still not really practically breakable unless this is something bigger than what I'm guessing. SHA-0 was broken a few months ago, and MD5 a while before that. What does it mean for you? Not much.

      Some attacker would have to be REALLY dedicated to use this vulnerability to harm you, and they would still require hideous amounts of processor time to mount an effective attack. Digests are a quick and easy way to verify that some message or file is correct. If the hash is signed as well, then you can verify the sender, too. When you download something like a Linux ISO, there is often another file on the server containing the hashes of the files, so you can verify that everything downloaded correctly. If you want to make sure that nobody other than a trusted person modified the files, then that trusted person could encrypt the digest with their private key, allowing anybody with their public key to verify that everything's correct.

      A person can, with a broken hash, create another ISO file, perhaps with malicious code inserted, that has the same digest, meaning you can no longer trust the signed digest. Let's say that this vulnerability reduces the average time needed to find a collision from 2^48 tries via the Birthday paradox (If this isn't a 96-bit hash, then I really need to get more sleep) to 2^32 tries. That's over 65,000 times faster, but you know why I'm not worried? That's still over 4,000,000,000 ISO files that the attacker would have to try before hitting on one that's got the wanted characteristics and the correct digest to boot, and if it requires equivalent memory usage to its time usage, then I'd expect it to use at least 48 gigabytes of memory to store all of the previous attempted hashes. If it takes 15 seconds to compute one digest, then you're looking at a mere 2,000 processor years to find a vulnerability, compared to the much more comfortable 130,000,000 processor years that it would have required using the brute force method.

      Feel better now? If I really got mixed up, and was wrong about the size, then just multiply all the listed times by 2^32, and wake me in 8 trillion AD.

      --
      "Anyone who attempts to generate random numbers by deterministic means is living in a state of sin." -- John von Neumann
  11. Now what do we use? by enos · · Score: 2, Interesting

    With SHA-1 being MD5's replacement after that was broken, which hash function do we use now?

    --
    boldly going forward, 'cause we can't find reverse
    1. Re:Now what do we use? by jd · · Score: 5, Informative
      Whirlpool has the same hash length as SHA-256 and is based on the Rijndael encryption function, which is currently believed "safe enough". As such, I'm going to say that that is the best bet right now.


      The Hashing Function Lounge also lists Cellhash, Parallel FFT-Hash , RIPEMD-128, RIPEMD-160, Subhash and Tiger as (so far) unbroken.

      --
      It's a small world and it smells funny; I'd buy another if it wasn't for the money; Take back what I paid (SoM)
    2. Re:Now what do we use? by Trejkaz · · Score: 2, Funny

      crypt()

      --
      Karma: It's all a bunch of tree-huggin' hippy crap!
    3. Re:Now what do we use? by Ant2 · · Score: 3, Informative

      Well, for starters, there's:
      SHA-256
      SHA-384
      SHA-512

      The numbers refer to the bit length of the generated hash. SHA-1 uses only a 160 bit length, called a message digest. But then, you'd know all that if you would have rtfa.

      --I wish there was some way to automatically append a line of text to messages posted on slashdot.

  12. Re:Hmm by metlin · · Score: 2, Insightful

    It's a hashing algorithm - SHA stands for Secure Hashing Algorithm.

    Is it so hard to look it up?

  13. what's left by Yonkeltron · · Score: 2, Interesting

    wait a sec....no MD5 and no SHA-1. what is going to take the place of those things? something like anubis or whirlpool?

    maybe more people will use GPG now!

    --
    Keep the faith, share the code
    1. Re:what's left by mboverload · · Score: 2, Funny

      Everyone should just randomly hit keys on their keyboard for each file. Totally random, but most files with be "sfkhadou"

  14. US Secure Hash Algorithm 1 by NEOtaku17 · · Score: 4, Informative
  15. Well... by game+kid · · Score: 2, Funny

    ...at least we still have SHA256, SHA384 and SHA512.

    That said...PWN3D!!1!

    --
    You can hold down the "B" button for continuous firing.
    1. Re:Well... by all+your+mwbassguy+a · · Score: 5, Funny

      thank god ROT-13 will never be cracked.

    2. Re:Well... by Wavicle · · Score: 3, Funny

      I noticed using ROT-2 gave what looked like a kinda-close decryption of ROT-13. So I started trying ROT-3, then ROT-4, I got as far as ROT-12 before I got bored and gave up, but it was showing great promise!

      --
      Education is a better safeguard of liberty than a standing army.
      Edward Everett (1794 - 1865)
    3. Re:Well... by flatface · · Score: 5, Funny

      That's nothing. ROT-26 offers the best encryption as of yet!

    4. Re:Well... by tonsofpcs · · Score: 5, Funny

      I can't read your post, it seems to be encrypted in that new ROT-26 scheme.

    5. Re:Well... by E_elven · · Score: 2, Funny

      Comedy 102.

      Today's topic: Don't Make It Too Obvious.

      --
      Marxist evolution is just N generations away!
    6. Re:Well... by Jugalator · · Score: 3, Funny

      I think ROT-65536 would work even better, especially for Unicode.

      --
      Beware: In C++, your friends can see your privates!
  16. Re:Hmm by defile · · Score: 2, Informative

    If your system has an md5sum command, it will also have a sha1sum command. Same idea, different output: feed each of them a file and they will give you a hash of that file that fits in 128-bits (md5) or 160-bits (sha1).

    In practice, no two files (or period of a data stream) will have the same signature. Hashing algorithms are used in data integrity checks and authentication.

    An sha1 crack likely means that they found a way to make tampered data still hash to a desired value, maybe.

    sha1 and md5 are generally considered so weak that they should only be used to combat error or accidents, not fraud.

  17. So What? by cr0y · · Score: 2, Funny

    Long live ROT-13.

    Maybe crackers would stop messing with our encryption if it was extremely easy to deal with.

    SupahLeetCodah: d00d i just cracked SHA-1 and MD5,6 AND 7!!!1

    Steve: So did my grandma and my proctologist.

    --

    ItWasFree.com - Take the mystery
  18. Bittorrent? by oman_ · · Score: 4, Interesting

    Is it time to update bittorrent?
    How hard is it going to be for people to provide garbage data with correct SHA-1 hashes to screw up downloads?

    --
    Rats would be more funny if they could fart.
    1. Re:Bittorrent? by rsmith-mac · · Score: 3, Insightful
      I don't think it's practical right now, but that doesn't mean it will hold true for too much longer. As it stands right now, BitTorrent files have 2 hashes: each chunk has a hash, and then the file as a whole has its own hash. This means that for a torrent to be perfectly polluted(that is, polluted without anyone knowing), the garbage data needs to fit both hashes, which will be harder, though breaking a chunk hash is enough to kill a torrent swarm, even if users know about it. However, the **AA organizations aren't exactly poor, and as unlikely as it is, they do have the finances to get access to a large computing cluster, which would allow them to cause some damage.

      Judging from what's been said about how difficult it is to break SHA-1 even with this discovery, I would think it's fine for now, but a new hash should probably be included with BitTorrent2.

    2. Re:Bittorrent? by ArbitraryConstant · · Score: 2, Informative

      Well... TFA says that collisions occur in SHA-1 160 with a probability of 1 in 2^69, but that's for any collision, not whatever message you want. Now, there's a lot of torrents and a lot of digests out there, so if all they want to do is attack any torrent that's out there it might be practical if they had a large cluster of dedicated hardware... but that seems unlikely. Lawyers are cheaper.

      A move to bigger SHA-1 functions or not-currently-broken algorithms might be in order for future revisions though. Things seem to be eroding pretty quickly these days for SHA-1.

      --
      I rarely criticize things I don't care about.
  19. Re:Hmm by mek2600 · · Score: 2, Insightful
  20. Broken, but not for everything... by JM · · Score: 4, Insightful

    One collision in 2**69 operations... that's quite minimal...

    Sure, for signatures, it means that you can't trust the algorithm 100% anymore.

    But for storing passwords, and other operations where collisions are not important, it doesn't matter much, even if there's another password that can generate the same hash, you still need to brute-force it.

    1. Re:Broken, but not for everything... by beaststwo · · Score: 4, Insightful
      You never could trust it 100%! That was the idea! The algorithm gives you a very high probability of authenticity, not any kind of guarantee (unless the original message is shorter than the output of the hash and everyone who hashes it later absolutely knows the length of the original message).

      It's an assurance, that's all. The only guarantee is a one-time pad, and Bruce Schneier's website is full of info on why these aren't practical!

    2. Re:Broken, but not for everything... by JM · · Score: 2, Interesting

      Even if the NSA could do it in a week...

      Suppose you're signing a tar.gz file. If the NSA could find a collision, the collision will still need to fit:
      - filesize has to stay the same
      - you don't want to get errors with gzip
      - you don't want to get errors with tar
      - the files in the archive needs to make sense

      What's the probability of all this happening?

  21. Re:Hmm by Anonymous Coward · · Score: 2, Funny

    Ya.. 20 years ago we used a hashing algorithm at college. Not sure how secure it was but we got really messed up.

  22. Re:And they scoffed at my continued reliance on MD by Anonymous Coward · · Score: 3, Informative

    Doest not affect HMAC. So it does not affect IPSEC and WEP.

    RTFA.

  23. So what's the big deal for the rest of us? by beaststwo · · Score: 5, Interesting
    I've been reading about hash collisions for the last few years and haven't figured out why this is a crisis problem.

    I'm not a cryptographer, just a nerdy engineer, but let me explain my rationale: a hash algorithm takes an arbitrary message and generates a fixed-length signature that has a high probability (10**50 or better for most modern algorithms) of being the original.

    Let's assume that your hash algorithm generates a 128-bit hash. Anyone who knows anything about probability can see that is the original message is greater than 128 bits, there MUST be more than one message that will generate the same hash. For long messages, there may be thousands or millions of messages out of a filed of 10**50 (or better) that have the same hash, although many of them will be meaningless garbage.

    So SHA-1 has been broken by a group of cryptographers/mathematicians. Does this really mean that they can generate can alter any message in a way that will generate the same hash as the original, thus fooling the math that we use to validate content? No Way! I read Bruce Scheier's Cryptogram every month and he often makes the same argument.

    So yes, this means that from a long-term systems security standpoint, we should all move to stronger hashes. Does it mean that SHA-1-based transactions are inherently secure right now?

    I think not!

    1. Re:So what's the big deal for the rest of us? by iabervon · · Score: 5, Insightful

      It is still probably difficult (hard to say without looking at the paper) for someone to find a different document with the same hash as a document you create, but it's now not all that hard to find a pair of documents with the same hash. Someone could give you a document to sign, and get your signature on a different document. Also, IIRC for previous work by this group, the attack applies to chosen pairs of documents with sufficient "random" padding; you can search for a padding for each to generate a hash collision.

      Essentially, don't sign anything that someone else has given you without changing it in some way, or your signature might also apply to some other document they have chosen.

    2. Re:So what's the big deal for the rest of us? by Pseudonym · · Score: 3, Informative
      Essentially, don't sign anything that someone else has given you without changing it in some way, or your signature might also apply to some other document they have chosen.

      Right, this is important.

      Decent digital signature protocols (as opposed to just the algorithms) require that you hash more than just the document. For example, you might pick a small amount of random data ("salt"), add that to the message, hash the combination and sign that. You then put the salt in the signature packet so that your signature can be verified.

      OpenPGP, for example, requires that certain signature subpackets be part of the hash, such as the signature creation time. It probably should require random salt.

      --
      sub f{($f)=@_;print"$f(q{$f});";}f(q{sub f{($f)=@_;print"$f(q{$f});";}f});
    3. Re:So what's the big deal for the rest of us? by Kiryat+Malachi · · Score: 3, Informative

      Here's the worry.

      Let's say someone trusts a digital signature, signed with SHA-1, to the point of allowing money to be predicated on the validity of this signature. If the message is signed and valid, the payer pays the payee $X dollars, where X is some very large amount.

      Message #1 is generated and sent. It validates.

      The money is paid. At which point the payee produces a second message which hashes the same as the first but claims to be turning down the deal, or modifying the terms of the deal s.t. they don't have to do anything to earn that money, and they claim that's what was actually sent.

      This is a problem, since the break apparently allows the construction of two (relatively) arbitrary message sequences that hash to the same value, which is an easier and much different problem from constructing an arbitrary message that hashes the same as a pre-existing message.

      --

      ---
      Mod me down, you fucking twits. Go ahead. I dare you.
      (I read with sigs off.)
    4. Re:So what's the big deal for the rest of us? by boots@work · · Score: 2, Insightful

      No, wrong. This weakness does not allow generation of text with a chosen hash. So the MPAA cannot insert corrupt blocks with the right SHA-1 into someone else's torrent. All they can do is generate their own corrupt torrents, but they (can) do that already.

  24. Re:Well by FireballX301 · · Score: 2, Interesting

    Of course they're not supposed to be all-powerful, but considering details as to how exactly the algorithm is broken are not available, I'm quite interested as to how they broke it.

    I'm particularly worried about BT users, personally. The breaking of SHA-1 will essentially allow the RIAA and others to corrupt many bittorrent downloads.

  25. Re:Hey by Anonymous Coward · · Score: 2, Funny

    oops I accidentally highlighted 'fucking' from your post instead and searched for that

    I am outraged! Does this disgusting thing called 'fucking' really happen ? I must know.

  26. Impact on Digital Certificates & Issuer Liabil by Anonymous Coward · · Score: 2, Interesting

    Is SHA-1 used in x509 digital certificates, and if so does this mean that people can forge digital certificates ?

    If someone can do this, then what are the liability concerns for certificate issuers (or even their customers) ?

  27. Re:Yeah... by Ctrl-Z · · Score: 5, Informative

    Well, no. Not exactly. SHA-1 is supposed to be a one-way function, meaning that you can't just reverse the operation. So you can't just "crack" it like solving an equation.

    I'm not sure if you are talking about retrieving the original file from the hash, but if you are, then you don't understand what hash functions are for. In this case, there are an infinite number of combinations of bytes that have the same SHA-1 hash. The goal is to find one that has the same hash value, regardless of whether it is actually the same file. SHA-1 is not a cipher.

    --
    www.timcoleman.com is a total waste of your time. Never go there.
  28. Unfortunately the SHA series seems to be suspect by jd · · Score: 5, Interesting
    The Hashing Function Lounge lists other problems with the SHA functions:


    • (R04) V. Rijmen, "Update on SHA-1", accepted for CT-RSA'2005
    • P. Hawkes, M. Paddon, G. G. Rose, "On Corrective Patterns for the SHA-2 Family", Cryptology ePrint Archive, Report 2004/207


    If this definite break is confirmed, I think we will need to conclude that the entire family is suspect for any genuinely important purpose.


    There are a bunch of hashing algorithms on the Hashing Function Lounge that are listed as having no known attacks. At present, the most widespread is Whirlpool. I think it likely that one of these will replace SHA as the hashing function of choice in major cryptographic areas.

    --
    It's a small world and it smells funny; I'd buy another if it wasn't for the money; Take back what I paid (SoM)
  29. What a hash is/does by cbr2702 · · Score: 3, Informative

    No, that would be one application of a hash (and not a very good one, because someone wanting to mess with it enroute could just re-hash the doctored version and pass on the new hash. What you discribe could be a way to check for accidental errors, though.). A hash is a function that given data gives a smaller amount of data. This smaller amount of data is then also called the hash of the origonal data. A good hash function has the property that if you know the hash for a file, you shouldn't be able to come up with another file that has the same hash without a prohibitive amount of work. A hash function is broken if this property stops holding.

    --


    This post written under Gentoo-linux with an SCO IP license.
  30. Re:And they scoffed at my continued reliance on MD by js7a · · Score: 3, Insightful

    Finding a single collision after a huge search isn't the same as being able to generate a collision on demand, which is what the SHA-1 breakage apparently purports to be.

  31. I Can See Bruce Now.... by Alan+Hicks · · Score: 3, Funny

    Bruce sits at his desk, reading over the encrypted e-mail sent to him about breaking SHA-1, when a loud scream echoes from his office

    I JUST SENT OUT MY NEWSLETTER THIS MORNING!

    --
    Slackware, what else when it must be secure, stable, and easy?
  32. Re:My Research team broke RSA! by elmegil · · Score: 2, Funny

    And it's elegant. But it won't fit in the margin of a post on slashdot.

    --
    7 November 2006: The day Americans realized corruption and incompetence weren't addressing 11 September 2001
  33. Not a problem (yet) by Spy+Hunter · · Score: 5, Informative
    For password hashes this attack shouldn't be a problem, if it is as described in the article. The attack does only one thing: allows an attacker to generate two streams of data which hash to the same value. This is a problem for digital signatures, because somebody can sign one data stream, then distribute another with the same signature. So the signature doesn't guarantee the data has not been modified. However, this attack does not allow an attacker to magically deduce your password from its hash, or even generate another password that would hash to the same value as yours. So you don't need to immediately jump up and replace SHA-1 wherever you use it.

    OTOH, this attack indicates that other types of attacks may be found sooner than was previously thought. So it is still a good idea to move away from SHA-1 in the medium to long term. Though it's not entirely clear what you should move to. And it is not certain that more attacks will be found soon.

    --
    main(c,r){for(r=32;r;) printf(++c>31?c=!r--,"\n":c<r?" ":~c&r?" `":" #");}
    1. Re:Not a problem (yet) by gnuman99 · · Score: 3, Informative
      Of course you can make

      SHA1(data1) == SHA2(data2) where data1!=data2

      because SHA1 maps from a large space to 160bits. There WILL be collisions for any maping like that. The question is can you make,

      SHA1(data1)==SHA2(data2) && data1.length==data2.length) ?

      Can you make the length of the hashed data to be equal?

      If you cannot, then most of the signed hashes cannot be compromised anyway.

    2. Re:Not a problem (yet) by daniel+de+graaf · · Score: 5, Informative
      See the birthday paradox.

      With this technique, you can create 2 files, by modifying both of them, that have the same hash. That does not mean that you can create a file with a given hash.

    3. Re:Not a problem (yet) by Anonymous Coward · · Score: 2, Informative

      No, you are confused.

      The attack lets me generate two strings that have the same SHA-1. But I can't choose _either_ string, nor can I choose what their SHA-1 will be.

      To defeat password authentication, you have to be able to take a given SHA-1, and generate a string that has that SHA-1.

      The latter is a much harder problem; even in the ideal case, where you have a perfect, unbreakable 160-bit hash, the first problem takes ~2^80 operations, while the latter takes ~2^160. The latter is just a much harder problem.

    4. Re:Not a problem (yet) by Shanep · · Score: 4, Insightful

      You have a bit of a logic flaw in your comment.

      Maybe you don't realise where he is coming from.

      With a digital signature, you can easily have knowledge of the signed message (input to message digest function) and thus change the message while retaining the signature.

      With a hashed password, you don't have access to the password (input to message digest function).

      The hashed password would require figuring out the password so as to allow changing it to make the same hash. This requires going the wrong way against this one way hash algorithm. If you were able to do this, then you would not bother generating an equivalent password, because you would know the original.

      I think the point is, that the one way nature of SHA-1 might still be strong. Meaning digital signatures are weak, but hashed passwords are not.

      There is no logic flaw in his comment.

      --
      War crimes, torture, lies, illegal spying... Would someone give Bush a blowjob, already, so he can be impeached?
    5. Re:Not a problem (yet) by Spy+Hunter · · Score: 2, Informative

      There is no logic flaw. Your summary of the first attack is not correct. The attack does not allow you to produce data that has a specified hash value. It allows you to find two sets of data with the same hash, but you don't control the actual hash value. Think of it this way: the process of attaking the hash involves two sets of data; you perform the attack by modifying *both* data sets until their hashes are the same. Now you have two different data sets with the same hash, but the actual hash value is random and not controlled by you.

      --
      main(c,r){for(r=32;r;) printf(++c>31?c=!r--,"\n":c<r?" ":~c&r?" `":" #");}
    6. Re:Not a problem (yet) by Spy+Hunter · · Score: 4, Interesting

      Thought by much of the Slashdot community, as general reaction to this article shows. Until today, the prevailing Slashdot wisdom was that MD5 was weak and broken and SHA-1 was strong. Now we know that's not the case. Maybe this is no surprise to your circle of cryptography guru friends, but nobody told me until now.

      --
      main(c,r){for(r=32;r;) printf(++c>31?c=!r--,"\n":c<r?" ":~c&r?" `":" #");}
    7. Re:Not a problem (yet) by gnuman99 · · Score: 4, Interesting

      What about what OpenBSD is doing? Have multiple hashes per file (MD5, SHA1, etc..) for a given signature.

    8. Re:Not a problem (yet) by interiot · · Score: 4, Informative

      Adding data2.length to the check is basically just increasing the number of bits used for the hash (and thus reducing the number of chunks of data that hash to the same value, and increasing the amount of time required to find a collision). However, length turns out to be a very poor thing to hash on (non-linearity is prized in hash functions, and you can't much more linear than the length function). If you're going to set aside more space for a hash value, it's better to use a longer hash or multiple hashes together.

    9. Re:Not a problem (yet) by yppiz · · Score: 4, Informative

      Even adding the length restriction, you are still mapping from a large space (the space of all binary strings of length n > 160) to a small space (the space of all binary strings of length 160), so there will still be collisions.

      --Pat / zippy@cs.brandeis.edu

    10. Re:Not a problem (yet) by mindstrm · · Score: 2, Informative

      Yes, there will always be collisions, a great many collisions, in any hashing scheme. That's not the issue.

      The issue is that you are not supposed to be able to deterministically generate collisions whenever you want. Previously, the only way to find a collision was by brute-force.

      If someone finds a way to generate two streams of data that generate to the same value, that's a problem.

    11. Re:Not a problem (yet) by melandy · · Score: 2, Interesting
      Sounds prudent to me, as long as you have the CPU time to spare.
      CPU time on legit transactions is not really an issue. Hashes are designed to be computationally expensive to crack, and not computationally expensive to use normally.

      So for legit use you have the following (assuming use of MD5 and SHA1):
      Time to compute ONE hash via MD5
      + Time to compute ONE hash via SHA1
      = Ain't much
      Compared to what a brute force would have to do:
      Time to compute MD5 hashes until you find a match
      + Time to compute SHA1 hashes based on MD5 matches until you find a match
      = A whole lot
      ... or (depending on which is less expensive) ...
      Time to compute SHA1 hashes until you find a match
      + Time to compute MD5 hashes based on SHA1 matches until you find a match
      = A whole lot
      Either way, it's a lot more difficult brute force plaintext that will match hashes for both MD5 and SHA1 than for either alone, but the additional CPU time on the system for legitimate use is negligible.
  34. Re:Broken or not? by mek2600 · · Score: 2, Informative
  35. Re:Let me be the first to say... by clap_hands · · Score: 2, Informative

    We cannot reasonably move to H(x)=MD5(SHA-1(x)). If you have a pair x, y such that SHA-1(x)=SHA-1(y) (i.e. a collision of SHA-1), then MD5(SHA(x))=MD5(SHA(y)). So H(x)=H(y) (a collision of H).

    But don't worry (yet). There's still no known practical way to produce SHA-1 collisions.

  36. Re:Broken or not? by Southpaw018 · · Score: 2, Funny

    I love how you link that like you're mister high and mighty and you don't spell his name in the link right. I didn't either, but I have ethos. I'd never heard of him before. =)

    --
    ACs are modded -6. I don't read you, I don't mod you, I don't see you. Don't like it? Don't be a coward.
  37. Brought to you also by.... by Dark+Coder · · Score: 2, Funny

    The MD5 crack team....

    http://www.md5crk.com/ (wayback archive)

  38. Not true. by Ayanami+Rei · · Score: 2, Interesting

    Clinton signed a bill that ceased the definition of cryptographic algorithms as munitions. Now there is no strength requirements, checking by the NSA, nothing. Like since 96.

    Where've you been?

    --
    THIS THING CAN TURN ON A DIME, MACROSSZERO STYLE ALSO FUCK BETA, ~NYORON
    1. Re:Not true. by magefile · · Score: 2, Informative

      Replying to self, I know, but I found a copy of a November 1996 executive order in Clinton's Presidential Library site that contradicts the GP. http://www.clintonfoundation.org/legacy/111596-exe cutive-order-13026-on-crypto-export-controls.htm

  39. SHA-2 would be good, but... by Anonymous Coward · · Score: 2, Informative

    So even if the SHA-1 family is flawed for the reason given in the article, all is not lost since they just reduced the work by a couple of orders of magnitude. If you go to 256 bit or 512 bit hashes, you're definitively going to be safe for much, much longer (since even if the given attack works twice as good for 512 bits, you would need many more centuries to try out the same percentage of the keyspace).

    However, the real problem is that todays OpenSSL and libgcrypt (gnupg) libraries don't even have support for SHA-2 (I just tried to find it). So it will actually take quite a while before this can be adopted. And that's the real problem.

  40. Just do as federal agencies ave started doing... by Ray+Alloc · · Score: 3, Informative

    Check this article: Federal agencies have been put on notice that National Institute of Standards and Technology officials plan to phase out a widely used cryptographic hash function known as SHA-1 in favor of larger and stronger hash functions such as SHA-256 and SHA-512.

  41. Re:Start recoding by NoMoreNicksLeft · · Score: 2, Funny

    It is official; Netcraft confirms: SHA1 is dying

    One more crippling bombshell hit the already beleaguered cryptohash community when IDC confirmed that cryptohash market share has dropped yet again, now down to less than a fraction of 1 percent of all cryptographic algorithms. Coming on the heels of a recent Netcraft survey which plainly states that SHA1 has lost more market share, this news serves to reinforce what we've known all along. SHA1 is collapsing in complete disarray, as fittingly exemplified by failing dead last in the recent Sys Admin comprehensive cryptography test.

    You don't need to be a Kreskin to predict SHA1's future. The hand writing is on the wall: SHA1 faces a bleak future. In fact there won't be any future at all for SHA1 because SHA1 is dying. Things are looking very bad for SHA1. As many of us are already aware, SHA1 continues to lose market share. Red ink flows like a river of blood.

    SHA1 is the most endangered of them all, having lost 93% of its core developers. The sudden and unpleasant departures of long time SHA1 developers Jordan Hubbard and Mike Smith only serve to underscore the point more clearly. There can no longer be any doubt: SHA1 is dying.

    Let's keep to the facts and look at the numbers.

    MD4 leader Theo states that there are 7000 users of MD4. How many users of MD5 are there? Let's see. The number of MD4 versus MD5 posts on Usenet is roughly in ratio of 5 to 1. Therefore there are about 7000/5 = 1400 MD5 users. SHA2 posts on Usenet are about half of the volume of MD5 posts. Therefore there are about 700 users of SHA2. A recent article put SHA1 at about 80 percent of the cryptohash market. Therefore there are (7000+1400+700)*4 = 36400 SHA1 users. This is consistent with the number of SHA1 Usenet posts.

    Due to the troubles of Walnut Creek, abysmal sales and so on, SHA1 went out of business and was taken over by RSA who sell another troubled cryptohash. Now RSA is also dead, its corpse turned over to yet another charnel house.

    All major surveys show that SHA1 has steadily declined in market share. SHA1 is very sick and its long term survival prospects are very dim. If SHA1 is to survive at all it will be among cryptographic dilettante dabblers. SHA1 continues to decay. Nothing short of a miracle could save it at this point in time. For all practical purposes, SHA1 is dead.

    Fact: SHA1 is dying

  42. Some background by ZakMcCracken · · Score: 2, Informative

    Applications that would be broken by this are long-lived cryptographic signatures. Indeed, when a document is "signed", usually only a hash of the document is signed. Finding collisions means one can find two different documents with the same signature.

    This affects all applications using SHA-1 for signature, that is signed email (whether PKIX or PGP), server certificates (which are signed documents). This should be mitigated by the fact that in order to be really usable in some cases, the collision must also be meaningful. That is if you find a collision to a signed email but if it is meaningless, you won't really be able to use it to spoof an email. It depends on the attack quality whether collisions are "meaningful" or not.

    Some applications that should not be broken are the use of SHA-1 for key derivation, i.e. where one uses SHA-1 essentially as the basis of a random function to generate deterministic new keys from a pre-shared key. (I think that's what Schneier meant by HMAC applications.)

    Also, some short-lived signatures should still not be realistically breakable in the time that they would need to be for an attack to be successful; short-lived signatures are typically used in protocols such as IPsec or SSL for authentication. Additionally, to mount an attack on some of these protocols an attacker would need to generate a collision involving "unpredictable" data coming from another party, which the attack may or may not allow.

  43. Re:Well by Anthony+Liguori · · Score: 4, Informative

    Had to happen, didn't it?

    No algorithm is all-powerful - it only withstands attacks for so long.


    No, it didn't. In fact, this is the most important problem in CS. The theory is that there are certainly problems where checking a solution is easy (2 and 3 are unique factors of 6 because it's easy to see that 2*3 == 6) but where the only possible way to find the solution given the answer is to compute the solution for every possible answer.

    It's not been proven whether hashing is this type of problem (whether it's NP-complete). Moreover, it's never been proven that there isn't a solution for problems we think are NP.

    What's more, it *has* been proven that once we find a solution to an NP-complete problem we'll instantly have solutions for *every* NP-complete problem.

  44. Someone set us up the bomb by Sophrosyne · · Score: 2, Funny

    ... it looks to me the only solution is wipe Jinan city off the map.
    Now where did I leave my nukes....

  45. Re:Let me be the first to say... by Vidael · · Score: 2, Insightful

    "can we reasonably move to H(x)=MD5(SHA-1(x))?"

    No. The composition of two compromized functions isn't going to solve anything.

  46. Re:Hmm by infiniti99 · · Score: 4, Informative

    sha1 and md5 are generally considered so weak that they should only be used to combat error or accidents, not fraud.

    Not true. SHA-1 is the hashing algorithm of practically all common security standards. It's found in SSL/TLS, X.509, PGP (the protocol, not the program, so that means GPG also!), S/MIME, etc. In other words... everything. Replacing this is going to suck. :(

  47. Re:Xbox-Linux Project B Complete? by Ant2 · · Score: 2, Interesting

    Factoring the public key for signed XBE files might now be the best option in running arbitrary code (i.e. Linux) on unmodded XBoxes.

    Have: Public key (it's inside the Xbox kernel), in decimal:
    2074011932725872376027602350906301713845 5993606274 88352673195511324110900735 43623741289960962910463535723067421103054569468248 62203867115042369878729703 47576511228016749818904643779460296616881241942336 51969796694319295889511268 04648743029387833666031765734337165949634731375592 47167029424618087781510481 26746269674500970450051175466570687005452630641050 24888769118032059917845867 65304041940400368455988250919539863092282405040537 96205135896999939802056942 66973236095772153476388267418476533663512746243310 31785386194643005307289050 29493197037650237921611449426113236294444096001738 94963797156859916567288947 565058003

  48. Re:So the concern is..... by Tony+Hoyle · · Score: 2, Informative

    That's not what's been broken. It's impossible to get the cleartext from a hash - that's why it's called one way (there are an infinite number of cleartexts which can generate that hash, so in theory you can get it, but you've got a 1/infinity probability of picking the right one...)

    SHA1 is not 'broken' in any real sense. Someone claims to have reduced the collission rate to 1 in 2**69. That's still bloody small. It'd take your PC a couple of thousand years to check the hashes to generate a collission.

    Of course if you had a big enough cluster you could get that down to a year or two I guess.

    Man in the middle attacks are *not* what this is about.

  49. Clue: Parent is joking by MarkusQ · · Score: 2, Funny

    Maybe his sense of humour fell through a one-way hash function some time back, but it's pretty clear from context that he's kidding.

    --MarkusQ

  50. SHA-1 is broken? Arggggh! by Peter+Cooper · · Score: 2, Funny

    Now I know why my site doesn't work anymore. SHA-1 is broken. Digest::SHA1 won't produce any hashes for me anymore, and I tried to debug the issue but couldn't work out what was going on. Thanks for letting us know SHA-1 is broken Slashdot. I wonder when it will be fixed?

  51. Re:Well by Herbmaster · · Score: 2, Insightful

    That any algorithm is vulnerable to brute-force attacks is totally uninteresting. It's a given in cryptography that given encrypted data, you can try all the possible keys, or re-hash lots of data, until you find one that works. It's up to you to pick a key long enough that it will take anyone else an impractically long time to crack it.

    Now, that has nothing to do with this article. These guys are alleging that SHA-1 can be defeated significantly faster than brute-force. This would be a defect in the algorithm and potentially a bad thing. So did this "have to happen"? No, absolutely not. Some algorithms are provably secure for certain purposes.

    --
    I'm not a smorgasbord.
  52. I'm still content with SHA-1 and DES by lawaetf1 · · Score: 2, Funny

    Realistically, if I gave any of you people a .txt file encrypted with DES and said that if you can crack it in 3 months I'll give you $15k.. would you be able to? I rather doubt it. 2^69 is still a plenty big number for me. I'll worry in a few years when CPUs are faster

    It never fails to crack me up how people freak out about theoretical weaknesses in cryptography but have $25 locks on their homes that any crook with a fork and a nail could open.... and steal your computer if not axe you to bits.
    but, but.. SHA-2 will save me!!

    --
    CommentBot 0.7a running with args "-module irritate,disagree -target random"
  53. Is it that bad? by Anonymous Coward · · Score: 4, Insightful

    The article says that 2**69 hash operations are needed to find a collision. If you have a SuperHashOMatic that can do 1 Billion hashing operations per second, thats still an average time of about 18700 years.

    In order for the time to be something to be concerned about (~10 years), you would need a machine capable of doing 1.87e12 hashing operations per second. Thats 1.87 TRILLION hashing operations per second.

    Ah, but what about distributed computing?

    Let's assume that there are 1 billion desktop computers working on this project. Then they must be able to do 1870 hashing operations per second. This is a ridiculously large number for today's implementations (mine gets 100 per second, most could do about twice that).

    So is it bad? Somewhat. Further breaks could make it worse.

    We should move away from SHA-1. But this isn't not the end of the world.

    1. Re:Is it that bad? by Anonymous Coward · · Score: 2, Interesting

      Shit, just retested, got 150,000 SHA-1's per second.

      1 Billion computers now comes out to 22 days.

      But, 1 million computers is still 60 years.

      The ten-year mark comes out to 6 million computers.

      (BYW, these tests were done on a 256 byte file, bigger files would take longer.)

      Still not that bad.

  54. Cryptographic break =/= practical break by Great_Geek · · Score: 5, Informative

    Note that what cryptographers consider a "break" is not necessarily the same as what users consider a break. (Neither is more strict, they are just different criteria for different people).

    In this case, the researchers from Shandong University (supposedly) reduced the work required to find a collision from 2**80 to 2**69; this is a major cryptographic result. It is major because SHA-1, as a "cryptographically strong hash", is not supposed to have any attacks better then random. A factor of 2**11 reduction shows SHA-1 to be very far from ideal; and since lots of clever people have tried to show this, the research team should be proud.

    Does this mean the bad-guy-of-your-choice can now start forging digital contracts? Not yet - there is no guarantee that the collision will be meaningful (as least their earlier papers didn't show that result). For a forgery to be useful, the forger needs to make the fake message say something useful - may be change the $1 to $1 million, or change the name, or something. A collision at a random place (or a non-sensical string) is essentially useless as a forgery (there may be some interested DOS attacks, but I am talking about outright forgery which is the point of the hash functions).

    And lastly, 2**69 (roughly 10**21) is still a big number! Assume that some clever people wrote a super-duper hand-optimized code that does a whole SHA-1 in a micro-second on a late model 4 Ghz PC, that is 10**6 hashes/sec. A grad-student using all the PC's on a campus, say ten thousand, that's another 10**4. This would take 10**11 seconds (or roughly 20K years). Note that for SHA-0, their break is 2**39 operations, which *is* practical - it would take the grad student only a minute, or a single PC a week.

    This break is yet *practical* for *most* people. (Would I still use SHA-1? Not in new application, and I make sure that existing applications get changed over eventually.)

    Lest I be accused of ignoring the big boys, the equation changes for them. If a Three Letter Agency is willing to invest a lot of money and design some cool chips that has awsome parallelism and everything, then each break may take only a week. For example, assume these chips has a bunch of pipes that can do a hash every nano-second (or 10**9 hash/second). Further, say there are 100 of these pipes per chip, 100 chips per board, 100 board per rack (or 10**6 pipes/rack). Each rack can then do 10**15 hash/sec, With such a magical rack, it would take 10**6 seconds (or just under two weeks) to find a collision. This would cost Some Real Dollars, but is it within the budget of some three letter agency? You bet. Hack, I would be willing to sell you one for under a billion dollar US. On the other hand, for that kind of money, cryptanalysis takes on different textures - why spend a billion to crack SHA-1 when you can buy the right wet-ware unit for a million?

    1. Re:Cryptographic break =/= practical break by Deliveranc3 · · Score: 5, Insightful

      Guess who wants to send meaningless data... bittorrent relies on SHA-1 which is I imagine what the moderator was most interested in.

      I might be paranoid but it wouldn't be inconceivably difficult for **AA to upload single blocks of corrupted data and destroy every torrent as it streams, they certainly have the resources.

    2. Re:Cryptographic break =/= practical break by swillden · · Score: 2, Insightful

      they certainly have the resources.

      No, they don't. Not unless (until?) the attack is improved significantly.

      In the first place, the attack is a collision attack, not a pre-image attack. That means that it's still necessary to hash, on average 2^159 blocks to find a match to a given block in a given download. They can improve that by looking for a match to any block in a given download, and improve it further by looking to match any block in any download, but it's still going to be computationally infeasible. And I mean computationally infeasible for anyone, even someone with vastly more computing resources than the RIAA.

      Second, even if it were a pre-image attack, it requires 2^69 hash operations to succeed. That's still a very large number. Even if they were searching for any of a million blocks in parallel (looking for one match out of a whole bunch of song blocks), and even if their machines could test a million per second, and they had a thousand machines working on it, they would still need on the order of 2^19 seconds per match found, which means they'd find one song per year that they could corrupt a portion of. That's a lot of expense for very little return.

      And the attack doesn't allow it anyway.

      Your warez and your pirated movies and music are safe.

      --
      Note to ACs: I usually delete AC replies without reading them. If you want to talk to me, log in.
  55. Encryption vs. fingerprint hashing.... by otis+wildflower · · Score: 2, Interesting

    .... So these hashes are still good for uniqueness out to 2^32 size fingerprints?

    What's the best hash for file fingerprinting, for stuff like version databases, tripwire, etc?

  56. Re:Hmm by cecom · · Score: 2, Informative

    Surely you mean 'unhashed' values, not value. A 160-bit hash value can map to about 4 billion 'unhashed' values of length 192-bits - good luck finding the right one :-)

  57. Re:So the concern is..... by AlexCV · · Score: 2, Informative

    No. SHA1 can still not be reversed, they found a COLLISION. That is, with 2^69 tries, they can come up with a value that will have the same SHA-1 hash as the password.

    For passwords, this is nearly meaningless.

    For digital signatures, it's a different thing.

  58. Missing the point... by Wes+Janson · · Score: 2, Funny

    It's gone from being a billion times easier, to a half a billion times easier, to just simply find the person responsible and beat any necessary data out of them with a baseball bat and/or knife. Which is cheaper? Extensive studying of cryptography, thousands of dollars of computers, and an extremely long waiting time in order to brute-force something? Or just buying plane tickets, a blunt object, looking up the person's address on MapQuest, and having Cousin Luigi pay a friendly visit?

  59. Re:No Such Agency of America by brsmith4 · · Score: 2, Informative

    Pretty fucking hard. The NSA doesn't lend out CPU time on classified supercomputers to anyone but a select few government organizations. As much as I think the congress and various others are in cahoots with the RI/MPAA, the NSA would probably not stand for such a thing.

  60. Re:Hmm by LnxAddct · · Score: 5, Informative

    Relax... it still takes 2^69 tries. That is 590,295,810,358,705,651,712 hash operations. To brute force sha-1 it takes 2**80. This is only 2**11 times faster then a brute force attack... thats 2048 times faster. Its significant but it's not that big of a deal. It is no more significant then if someone with a 2000 node cluster tried to brute force your hash (which is completely feasible...especially for large government agencies like the NSA). In other words, if you were capable of performing 1 trillion (1,000,000,000,000) hash operations per second, it'd still take nearly 19 years for a collision to be found. I assume the NSA can knock that number down to under 24 hours, but thats expected of them. For anyone else in the world, assuming your not being followed by the NSA... and god help you if you are... sha-1 will still be fine and the entire internet security infastructure will not need to be redesigned.
    Regards,
    Steve

  61. Re:pigeonhole? by Andy+Dodd · · Score: 2

    I think the point here is not that collisions exist, but that there is now a way to generate a collision reliably with fewer operations.

    But as said earlier - not only must a collision be generated, that collision must be meaningful. A good example was that while it might become easy to generate "collision" data for a gzipped tar file's hash, it would still be extremely difficult to generate a collision that had the following properties:
    Understood by gzip without errors
    Understood by tar after gunzipping
    Had meaningful files after being untarred

    --
    retrorocket.o not found, launch anyway?
  62. better yet-- by bodrell · · Score: 4, Funny

    What someone really ought to do is use ROT-7.5 twice to decrypt ROT-13.

    --
    Si la vida me da palo, yo la voy a soportar Si la vida me da palo, yo la voy a espabilar
    1. Re:better yet-- by isometrick · · Score: 5, Funny

      7.5? 13? I'm guessing you aren't the one who broke SHA-1 ... :-p

    2. Re:better yet-- by SpaceLifeForm · · Score: 4, Funny

      Someone found that ROT-6.5 works better.

      --
      You are being MICROattacked, from various angles, in a SOFT manner.
    3. Re:better yet-- by dago · · Score: 2, Informative

      You neither, just run ROT-7.5 26 times and it should decrypt any ROT-13 encrypted message.

      Of course, ROT-6.5 is faster (just 2 times).

      --
      #include "coucou.h"
  63. Re:Please explain further. by Lehk228 · · Score: 3, Informative

    both papers were (IIRC) generate two datasets X and Y with the same hash Z
    the next step up is to, for any data X and hash Z determine a Y which does not equal X which has hash Z. THe ultimate breakage is when you can, for any data X with hash Z and arbitrary data Y generate M which has the property of Y+M has a hash of Z. At this point you can substitute a conrolled and malicious piece of data which can substitute for X.

    --
    Snowden and Manning are heroes.
  64. Both statements are fine -- salt explained by gkwok · · Score: 4, Informative
    Actually, both statements can coexist. In most password systems, the hash of the password itself is not stored; rather, it is a hash of the password concatenated with a string of random characters.

    For example, if my password is "foobar", then the server does not store "8843d7f92416211de9ebb963ff4ce28125932878" as the hash, but perhaps the hash of "foobarDKTUHRAOHL" or "19747e26b86ee7939c046c0171a991926f0e01ae". The salt value "DKTUHRAOHL" is stored on the server and never revealed to anyone. So, even if somebody knows the hash value "19747...e01ae", they cannot come up with another string of characters that hashes to the same value, because even if they could, the value they enter in an attempt to hack my account is appended with "DKTUHRAOHL", rendering (almost certainly) a different hash value.

    Now, if they know the salt value, the problem becomes equivalent to finding a string ending with "DKTUHRAOHL" that hashes to "19747...e01ae." However, if someone has gained access to a properly secured server's salt values, you have a large problem on your hands indeed.

    1. Re:Both statements are fine -- salt explained by Knightmare · · Score: 4, Insightful

      Actually most implementations store the salt along with the hash, so that you can move passwords from system to system, systems like nis, certain ldap implementations (read: not Active Directory), etc... wouldn't function if it was a per server salt. It is also much better to come up with a new salt for each password. The main purpose for this is to prevent pre-computed hash tables from being effective. Long live LANMAN :)

    2. Re:Both statements are fine -- salt explained by gkwok · · Score: 2, Informative

      Oh, yes you're right. I don't know what I was thinking. The purpose of salting is to discourage dictionary attacks, so that would-be attackers cannot compile a list of words and their associated hashes. The randomness of the salt value eliminates anything dictionary-like about the password. Right, there's no reason the salt itself cannot be published; the problem is still equivalent to finding a string ending with a given salt value that hashes to a given hash.

  65. Poly1305-AES by D.+J.+Bernstein · · Score: 5, Informative
    For people interested in secret-key message authentication: There are authenticators that are (1) much faster than HMAC-SHA-1 and (2) guaranteed to be as secure as AES. In particular, check out Poly1305-AES. Public-domain Poly1305-AES software is now online, though it isn't nicely packaged yet; if you're interested in further announcements, join the Poly1305 mailing list.

    (This is not meant as a comment on the security of HMAC-SHA-1.)

  66. Re:Quick Measures? by whitis · · Score: 2, Interesting

    I have barely any cryptography knowledge, but would the SHA series be any safer if the size of the data was part of the signature? From glancing over Bruce's post (and remembering how MD5 and others were broken), data has to be padded. You can't just change arbitrary bits and produce the same signature. So, couldn't you just add the size of the file to the signature? Does that decrease security, because the size is now known?

    It would greatly add to the security in theory except that it wouldn't really work well in practice. I am not an expert on cryto algorithms but the limitations of this approach can be seen even without knowing anything about the actual has algorithm.

    The trick with forging messages is that you need to add some amount of garbage to the forged message to make it match the hash of the original (there are other ways in theory that are likely to be less practical). This is why the length inforormation would appear to help. Then you have to disguise the purpose of the garbage so it doesn't draw attention to itself. Perhaps as another fake signature or an uncompressed image. Steganography would give you the requisite number of bits while still letting you include an image (of a hand written signature, a document page, or a company logo)that wasn't obviously junk but the bits would not be consequtive which makes it harder). Instead of hiding them in low order bit steganography, you could replace a number of consequtive pixels; the result would be visable but would be mistaken for a smudge. By including the length in the signature, you make it much harder to make a message that says what you want it to say and still matches the hash.

    However, the problem with your suggestion is protecting the new size information. If you include the size in the message before hashing, then you simply search for a hash that matches the forged message with modified size which could be about the same amount of work as forging in the first place for a brute force attack though it may well add additional constraints that might prevent taking particular shortcuts vs. a brute force attack in which case it would help. It would really depend on whether the hash crack is bothered by this constraint. If the crack algorithm knows in advance how many extra bits will be generated then running the length through the hash doesn't help at all. If you just add some message size bits to the end of the hash, then the information is unprotected and can be changed to match the message. So, you probably would want to sign the length separately. But if you are going to do that, you could use a hash with twice as many bits in the first place or hash the same message twice with two different initial values for the hash (cracking the first hash may or may not provide a shortcut to cracking the second). Both of these approaches would probably be much more secure than adding the length. Even more secure would be to hash the message with two different hash algorithms.

    There are also ways of returning to the original message length even when adding garbage. Suppose I want to change a contract to say you will pay me $100,000 instead of $10,000. To make room for the extra hash fooling bits, I can delete an entire paragraph from the contract that is of no importance to me (or even makes it more favorable to me by its absence). Longer hashes or double hashes would effectively prevent this but length information would not.

  67. not that useful yet... by DangerTenor · · Score: 2, Interesting
    I think it is important to note that (from what I've heard, I haven't seen the paper either...) this collision attack is not very "real world" useful. Their attack is focused on taking a certain number of operations to come up with two hunks of data that result in the same hash.

    In my opinion, a "real world" attack would be one which given a blob which has already been hashed, would come up with another blob which results in the same hash. To my knowledge, nobody has any useful attacks in that direction yet, although some would argue based upon this research that it may just be a matter of time.

    Then we of course need to get into whether that is really useful either. If I find out that
    "I agree to purchase 100 units for $500"
    and
    "*(\D$Hw&72d98a %93di(hd eLKH%ap$#"
    results in the same hash, how helpful is that to me? How is a lawyer is going to prove to a jury that I may have actually signed the garbage instead of the purchase agreement? So, there is even more work to be done to make it a useful real world attack, wherein you might take the original signed text (modified for your evil purposes), append a null character, and then add garbage until the hashes are equal--and hope the UI was poorly written and just displays up to the first null.
    --
    Check out our infosecurity industry blog: http://securitymusings.com/
  68. Not necessarily by jd · · Score: 4, Informative
    Many hashing functions operate by simple bit manipulations. There are classes of hash function which use cellular automata instead. I believe there are some which use fast fourier transforms.


    In general, we can say that there are infinitely fewer hashes than there are possible data objects you may wish to hash, and therefore there are infinitely many collisions. We can also say that for an N bit hash, at least one collision must occur over a range of (2^N)+1 values for the initial data object.


    However, if the collisions occur on a totally cyclic basis, it doesn't matter if there's only ever one within that range. You know where it is, without the bother of looking.


    Therefore, the strength of a hash can be measured as a function of two properties:

    • The fewer collisions within one complete cycle, the better.
    • The more random the distance between collisions, the better.


    Bit operations have tended to be used, because they're fast and they allow some control over these two parameters. Other than that, there is no particular merit in using them.


    Cellular automata can produce some excellent one-way functions. Their behaviour can also be far harder to predict, if the algorithm is good. However, they are computationally very expensive and getting a usefully strong algorithm is much harder than with bit manipulations.


    Transforms are not generally considered one-way, because 99.9% of the time they are only useful because they are two-way. I've not really looked into how transform operations are used in hashes, but they presumably have some strengths.


    (Transforms in cryptography, where you want to go from one domain to another and then back again, would make sense. They would also be useful for encryption modes, for generating the new encryption key for the next block.)

    --
    It's a small world and it smells funny; I'd buy another if it wasn't for the money; Take back what I paid (SoM)
  69. Re:Hmm by LnxAddct · · Score: 2, Informative

    They reduced it from 2**80 to 2**69. And the paper hasnt even been released yet so noone knows if that is even accurate.
    Regards,
    Steve

  70. What do those numbers mean? by dantheman82 · · Score: 4, Informative

    I read on one site - in answer to the question "What's the big deal - is 2**69 really all that bad?"

    That's 2**11 less operations. Let's say breaking this (2**69 ops) takes the NSA a week. If it had been 2**80, it would have taken 2048 weeks, or 39 years. If it would have taken the NSA (or whomever) a year to break SHA-1 before, it could be broken in 4 hours.

    My guess would be it would still take a lot longer than a week - but would now be in the realm of possibility, whereas before it would have been in the lifetime(s) range. However, this is totally a wild-assed-guess, based on the assumption that it was expected to take 100+ years before this to crack.

    --
    This sig donated to Pater. Long live /.
  71. Is this different than from Crypto 2004?? by Anonymous Coward · · Score: 2, Informative

    Same researchers announced some vulnerabilities in MD5 and SHA-1:

    See:
    http://www.arnnet.com.au/index.php/id;1503863220;f p;512;fpid;710205681
    Researchers have discovered a flaw in the MD5 algorithm that is used to provide a unique signature for data.

    Xiaoyun Wang, a Chinese expert, and three colleagues have discovered the flaw in the hash function algorithm, which is used in applications, such as EMC's Centera content-addressable file store. The flaw was revealed at the Crypto 2004 conference.

    Also:
    http://www.rsasecurity.com/rsalabs/node.asp?id=273 8

    * The hash function collisions recently discovered have minimal practical impact at this time due to the limitations discussed further. It is not clear that these research results can be turned into practical exploits on most typical uses of these hash functions, so there is no immediate need to replace hash algorithms.
    * As a precaution, applications using a legacy hash function described as vulnerable should upgrade to the NIST-approved SHA1 or SHA2 family of algorithms (RSA Laboratories suggested a migration to SHA1 in 1996).
    * Applications using SHA1 do not appear to be at risk, but conservatively, developers may also consider planning an upgrade to the SHA2 family in the next few years.

  72. Re:Well by ityllux · · Score: 2, Insightful
    No, it didn't. In fact, this is the most important problem in CS. The theory is that there are certainly problems where checking a solution is easy (2 and 3 are unique factors of 6 because it's easy to see that 2*3 == 6) but where the only possible way to find the solution given the answer is to compute the solution for every possible answer.

    It's not been proven whether hashing is this type of problem (whether it's NP-complete). Moreover, it's never been proven that there isn't a solution for problems we think are NP.

    What's more, it *has* been proven that once we find a solution to an NP-complete problem we'll instantly have solutions for *every* NP-complete problem.

    Your example doesn't really make too much sense, and your definition of NP-complete is purely wrong. There are easily demonstrable problems that are not NP-complete where you have to compute the solution for every possible answer, because they are not even in NP to begin with. Example: "If I removed a city from a set of cities in the traveling salesman problem, which city removal would cause the largest reduction in the shortest path length?" In this problem, each possible "answer" (to use your terminology) is NP-complete, thus yielding a non-NP and therefore non-NP-complete solution (unless P==NP).

    Furthermore, an NP-complete problem is not unsolvable as you state -- in fact, to be labeled as NP-complete, a solution has to be known. The solution must be formed in terms of a polynomial-time "reduction" from another NP-complete problem. To be NP-complete means merely that the only known solutions would require a non-deterministic "computer" to solve them in polynomial time. As we don't exactly have such machines sitting around, we have to rely on non-polynomial solutions.

    Now if we can figure out a way to compute an NP-complete problem in deterministic polynomial time, then all NP-complete problems will be able to be solved in deterministic polynomial time (since all NP-complete problems are declared NP-complete by relating them to each other). But there was always a known solution.

  73. Re:Well by andersa · · Score: 2, Funny

    No, it didn't. In fact, this is the most important problem in CS.

    Nahh.. The most important problem in CS are those annoying campers.

  74. How about using MD5 and SHA-1 togeher by geo_2677 · · Score: 2, Interesting

    I am not a cryptographer but shouldn't it be possible to use MD5 and SHA-1 for the same piece of text together. How likely is the hash sum for a particular text to be cracked for both the algos and have the same modified text. Will it make it a bit more tougher to be cracked?

  75. Re:So the concern is..... by Theatetus · · Score: 2, Informative
    they could concievably glean the cleartext

    No. Hashes like SHA-1 are lossy; there is less information in the hash than in the plaintext. Lost information like that cannot be recovered unless just about everything we know from information theory (and thermodynamics) is wrong.

    --
    All's true that is mistrusted
  76. missing the overall point by jnf · · Score: 3, Interesting

    What you have to figure is that with any hash thats shorter than the max amount of data, then the possibility of collisions will occur;
    figure that if you could represent every possible combination in 128 bits, you would never need to have 129 bits of data.
    Because this is not true all hashes will have collisions. However the chances of multiple hashes all having collisions with altered data is 'pretty damn slim'. So therefore the best solution, most likely in the future, and presently is to authenticate messages, identification (ala ssl certificates**) and binaries with multiple hashs known to be reasonably strong. One doesnt need to be a cryptologist to realize that using something like md5, sha256 and like ripemd160, the chances of collision in all 3 hashes are quite slim, and within the range of acceptable risk.

  77. Re:Unfortunately the SHA series seems to be suspec by boots@work · · Score: 2, Informative

    A better idea is to use UUIDs, where these problems have already been considered, and systematically handled. On Linux, just read from /proc/sys/kernel/random/uuid.

  78. Re:China's Motive by jameszhou2000 · · Score: 2, Informative

    as long as they show the results, it can be verified.

    in theory, given a hash number, it takes centuries to find the collision.

    given the hash number, if you could come up with a collision in days or even in months on your PC. that means you break the code.

    in order to believe it is broken, you don't need to know the details of the alorithm.

  79. Re:Hmm by boots@work · · Score: 2, Insightful

    sha1 and md5 are generally considered so weak that they should only be used to combat error or accidents, not fraud.

    Do you have any evidence for that? SSL, PGP and NTLM all depend on them, as far as I know.

  80. Not a big surprise by Anonymous Coward · · Score: 2, Informative

    More than 6 months ago, papers were going around telling people to 1. Stop using MD5 as a secure checksum immediately, and start moving away from SHA-1 as it's security was becoming more vulnerable by the day. Researchers reccomended moving to SHA-256 to prevent accidental breach of data security (sooner, rather than later). There have been many different cracks involving SHA-1 (albiet simplified versions, but you just knew more would eventually be coming). Well it's here now! SHA-512 here we come!

  81. Can someone by Deliveranc3 · · Score: 2, Interesting

    Explain to me why this isn't useful for compression?

    I know it's next to impossible to create the data from the hash but shouldn't it be theoretically possible?

    If the hash reduces the possible files which match it by 99.999% then shouldn't it be possible to send that much less data?

    1. Re:Can someone by Rothron+the+Wise · · Score: 2, Interesting

      If the hash reduces the possible files which match it by 99.999% then shouldn't it be possible to send that much less data?

      Yes, but that's not what the hash does. It only makes it much harder to find files that hash to the same value because the hash values are randomly distributed. If you have a 160-bit hash then (ideally) every 2^160th file will have the same hash.

      This means basically that there are an infinite number of files that hash to the same value. For this to be used for compression there must be a 1:1 relation between inputs files and outputs hashes. In other words, the algorithm must be reversible, something which cryptographic hashes are not. When a file is hashed, data is thrown away, data which can never be recovered.

      --
      A witty .sig proves nothing
  82. What to use in new apps? by BigZaphod · · Score: 2, Interesting

    I'm actually working on an app that was going to use SHA-1 for integrity verification. I may just stick with SHA-1 because I'm not terribly familiar with the other options out there in this realm. So ideally, what should new apps use these days? What would be the recommended "safe" algorithm? And can I find a nice, tested C library/code for it? :-)

  83. Don't panic! 'Broken' is not Cracked by Zeinfeld · · Score: 4, Insightful
    After some research, I decided that SHA1 was more secure than MD5.

    MD5 was 'broken' in 1995 by Hans Dobbertin who discovered compressor function collisions. It was almost another 10 years before the compressor function collisions were turned into an attack which produced hash collisions.

    So there is a serious security problem here but it does not mean that everything that uses SHA-1 is now vulnerable. There are many applications where MD5 is completely adequate. If you have a really good reason to do so and a really good understanding of the security requirements and risks you can use even something like MD2.

    Today paul Kocher complained that Microsoft was using MD5 in its anti-spyware to identify known bad software. This is not actually a major problem, much worse would be using MD5 to identify known good software to keep, that is when a collision would bite. For known bad programs well i don't want any variant of the program to run...

    But if you are writing an entirely new application then use SHA-256 or SHA-512, more rounds, more bits.

    Meanwhile we need to research some new hash functions pronto.

    --
    Looking for an Information Security student project suggestion?
    Try http://dotcrimeManifesto.com/
    1. Re:Don't panic! 'Broken' is not Cracked by jlcooke · · Score: 2, Insightful

      Humm, no.

      Differentials in SHA-256 can be found with the new techniques.

      The problem is with the new differential attack our Chinese friends discoverd. Fidning differentials through addition mod 2^32.

      SHA-256 uses the same. For now, yes, it's safe. But as of right now, the crypto community is hugerly trying to build new hashs with more complex compression function chaining. Whirlpool is an example of this newer view on hash functions.

      It's based heavily on AES's core operations which would make me feel uneasy. Diversity in the underlying techniques for crypto algos is exemplified here by how just about every hash we use today fell because of a lack of diversity.

      In short:
      - Use SHA-256 for now.
      - In 2-3 years, upgrade to whatever becomes the standard, it'll be stronger than SHA-256

    2. Re:Don't panic! 'Broken' is not Cracked by wirelessbuzzers · · Score: 2, Informative

      It's based heavily on AES's core operations which would make me feel uneasy. Diversity in the underlying techniques for crypto algos is exemplified here by how just about every hash we use today fell because of a lack of diversity.

      True. But even if AES were to fall, its core is totally different from 3DES, IDEA, TWOFISH, BLOWFISH, SERPENT, MARS, RC6, TEA and so on. There are probably dozens of different, still-unbroken symmetric ciphers out there, and this doesn't even include stream ciphers like RC4. And the ciphers that I listed don't bear that much relationship: many of them are Feistel ciphers, but that's about the extent of the structural similarity. Even if a weakness were found in the Feistel design, we'd still have AES, IDEA and MARS at least (not sure about RC6).

      --
      I hereby place the above post in the public domain.
  84. Hah! by Hobbex · · Score: 4, Funny

    That is nothing. This post has been encrypted with an unbreakable one-time-pad! TWICE!

  85. Weak and strong collision resistance by vagabond_gr · · Score: 3, Informative

    For password hashes this attack shouldn't be a problem, if it is as described in the article. The attack does only one thing: allows an attacker to generate two streams of data which hash to the same value. This is a problem for digital signatures, because somebody can sign one data stream, then distribute another with the same signature. So the signature doesn't guarantee the data has not been modified

    Even for signatures, it depends on the application. There are two types of collision resistance:
    - Weak collision resistance: Given x, I cannot coumpute y s.t. H(x)=H(y)
    - Strong collision resistance: I cannot compute arbitrary x,y s.t. H(x)=H(y)

    Usually collision results show that a hash algorithm is not strong resistant.

    So if I want to create random data (a nonce) and sign it there is a problem, I can create x,y with the same signature. However if I want to sign something specific, say an email, then I have to break weak resistance, random x,y won't do since x is unlikely to be the email I wrote.

  86. Important info on crypto hashes by ars · · Score: 3, Interesting

    I guess I missed posting this before the bulk of the posts, but maybe it'll help someone.

    First: MD* SHA-* etc - they are all basically the SAME algorithm! The are just minor modifications of the same exact thing, so a break in one is a break in all.

    Second: Tons and tons of people ask: can't we merge two hashes together and get a stronger one? Yes you can that's EXACTLY what MD* and HA-* DO! They are a combination of different hashes! That's how they work.

    So if you really did have a good combo of hashes then just give them a name and use them as a hash - don't bother just plain merging existing ones.

    Also, merging say MD5 and SHA-1 is pointless - they are both based on the same hashing code! You are gaining nothing by merging them.

    --
    -Ariel
  87. Using both "broken" hashes by HexDoll · · Score: 2, Funny

    Why not make two hashes of a password using different algorithms, one using MD5 and the other using SHA-1. If an attacker was able to produce a password where the hash matched one it would be very unlikely to get the correct hash using the other algorithm unless the attacker had found the original password.

  88. Well whatever it is... by cmacb · · Score: 4, Funny

    I hope they get it fixed soon.

  89. Using openssl to generate hashes. by ticktockticktock · · Score: 2, Informative
    If your system has an md5sum command, it will also have a sha1sum command. Same idea, different output: feed each of them a file and they will give you a hash of that file that fits in 128-bits (md5) or 160-bits (sha1).

    If you have "openssl" installed, you could also use openssl to generate the hashes. (supported hashes)

    For md5 hashes:
    $ openssl md5 filenames...
    Output: MD5(filename)= hash

    For sha1 hashes:
    $ openssl sha1 filenames...
    Output: SHA1(filename)= hash

  90. Now I get the "Use 2 hash algorithms" comments by The_Dougster · · Score: 2, Interesting

    Ok, if my file consists of the line "Hello World." then I get the following hashes:

    770b95bb61d5b0406c135b6e42260580 for MD5

    b924c2f360b572e17c971f1b1b667e0732944df7 for SHA-1

    Trying to tinker around with the file and make both hashes come out the same as above would presumably be much more difficult than for any single hashing algorithm, and it might very well be nigh impossible. The little light bulb has finally come on. Now I get it. Yeah using two hash algorithms together would probably work nicely. Don't combine the results mathematically, just append the keys together into a big long string. The final MD5+SHA1 hash key for my file would be:

    770b95bb61d5b0406c135b6e42260580b924c2f360b572e1 7c 971f1b1b667e0732944df7

    I don't know whether this would be stronger than a SHA-2 of equivalent bit length or not, but now I get what some of you have been saying. From a common sense view, it would seem that something like this would be pretty darn tough to crack, because you would have to make two different algorithms compute matching keys for a given dataset.

    --
    Clickety Click ...
  91. Metadata by bogado · · Score: 2, Interesting

    Maybe we should start encoding meta-data along with the hash, so instead of trusting only on the hash to confirm that the message is from who sign it, we would encode along the message, the size, type and whatever characteristic could define the message.

    For instance, suppose I sign the message "Hi, I'm Victor", along with the hash it would contain the size (14 bytes), type (English text), encoding (7bits ASCII) and how about the range of codes used in the messages (from U+0027 - U+0074).

    A good hash would give a uniformly distributed random hash for the message, so it is safe to assume that even if we could find a collision, it would be highly unprovable that it would satisfy all the meta-data. In some cases it could be provable that this kind of hash is unbreakable, since there is a finite number of messages that satisfy the meta-data (if you could hash all possibilities and verify that there were no collisions you're 100% safe).

    --
    []'s Victor Bogado da Silva Lins

    ^[:wq

  92. Re:Pigeon-hole principle by Shano · · Score: 2, Interesting

    To nit-pick further, the pigeon-hole principle says nothing about not reusing any slot. It states that if you place n items in to n slots, either every slot is filled, or (at least) one slot has more than one item.

    Equivalently, if there are n+1 items, there must be a slot with more than one item. Your statement is a special case of the principle, but not as general.

    It is possible to prove (by induction) that there are an infinite number of collisions for some hash value using this. However, proving that collisions exist for every hash value requires detailed knowledge of the algorithm, and doesn't follow directly from the pigeon-hole principle.

  93. Please define "broken" by mwood · · Score: 2, Insightful

    That's an awfully vague term. We've got an Ethernet hub with a corner knocked off its case, so theoretically you could say it's "broken", but it still works as well as it ever did. A lot of cryptologic results are like that: we know more than we did before about X, but X is not suddenly rendered useless or even worrisomely less strong. Whereas, in the movies, "we broke their code" generally means, "we have the key and can read their secret messages as quickly and easily as they can."

    1. Re:Please define "broken" by sholden · · Score: 2, Informative

      It's a hashing function, so broken means it is possible to generate a collision in less work than brute force (try all possibilities) needs.

      Of course TFA gives a more precise definition.

  94. Great news for passwords by milosoftware · · Score: 2, Funny

    Now I can type a simple password, and produce a complex password that has the same hash.

    I'd type the complex one "32l;lkd49fj32*93f-FR" just once: When I create my account on the web site that demands that I have at least 8 characters, and some of them must be numeric and some must be non-alpha and so on.

    After that, I can just type my usual "foo" as password and it'll accept it because the hash fits.

    Huray.

    --
    Musicians don't die. They just decompose.
  95. Doubt it by hey! · · Score: 2, Interesting

    This doesn't seem likely even with my tinfoil hat mode fully engated.

    If we were talking about an encryption scheme, the temptation would be there. If it were and encryption scheme adopted by The Bad Guys (tm) then NSA would of course be able to read their secret communications.

    But that's not what SHA is for. It's to allow a piece of data to be authenticated. You can satisfy that that this file is indeed from me based on a simple number computed from it and a secret we both share. When thegovernment procures a piece of software that is going to do something like launch nuclear missiles, it would be nice if that software could figure out whether the order really came from PotUS. On the other hand, when the order comes from Osama to fly the plane into the WTC, authentication of that order, while useful, is not as critical.

    So, the national security interests here are clearly in favor of their being a publicly available, secure hash function.

    --
    Post may contain irony: discontinue use if experiencing mood swings, nausea or elevated blood pressure.
  96. Not quite the end of the world by steve_stern · · Score: 3, Interesting
    So the paper says I can find two values, X and Y, such that they hash to the same SHA-1 value. Great. What can I do with this?

    As others have pointed out, I can create 2 documents, X and Y, have a target sign one, then substitute the other. His digital signature will be valid for both. Great - it takes only 2^69 attempts to get a collision - I'm sure the chances that the X and Y found will both be valid English documents, one of which I could convince a target to sign, the other allowing me to scam him out of enough money to make the whole ordeal worthwhile.

    However, people keep copies of what they sign. Even if I did find a collision, and even if both documents were valid English text, the guy could say "I didn't sign Y - look, my signature is valid for X - he scammed me". Great.

    The more likely scenario is someone signing their own document, then claiming it was fraudulent. They could create their own X and Y, sign X that somehow involves another party, then claim they actually signed Y and this other party was the scammer. But they still have to find X and Y in 2^69 steps such that both make logical sense in the English language - no simple task.

    This is cool in a theoretical sense, but in a practical sense, its like saying you don't need a million monkeys on a million typewriters typing for a million years to generate Shakespeare; it'll only take 999,999 monkeys on 999,999 typewriters...

    Or, to go back to the theoretical world: with processor speeds doubling every 1.5 years, and this team shaving 11 factors of 2 off of the break time, the lifetime of SHA-1 just shortened by about 16.5 years. Not quite the end of the world as we know it.

    Step 1: Break SHA-1
    Step 2: ?
    Step 3: Profit!

  97. unpublished paper reveals unspecified hole by snorklewacker · · Score: 3, Funny

    At least they gave the algorithm. If their synopsis is indicative of the paper, they illustrate that SHA-1 has collisions, and collisions can be discovered through the awesomely sophisticated technique of brute force. Pardon me while I dust off my bomb shelter.

    Let's wait for the actual paper. If it takes more CPU power to force a collision within a year than the whole of what IBM sells in that year, I think that the hash is doing its job...

    --
    I am no longer wasting my time with slashdot