Slashdot Mirror


NIST Announces Round 1 Candidates For SHA-3 Competition

jd writes "NIST has announced the round 1 candidates for the Cryptographic Hash Algorithm Challenge. Of the 64 who submitted entries, 51 were accepted. Of those, in mere days, one has been definitely broken, and three others are believed to have been. At this rate, it won't take the couple of years NIST was reckoning to whittle down the field to just one or two. (In comparison, the European Union version, NESSIE, received just one cryptographic hash function for its contest. One has to wonder if NIST and the crypto experts are so concerned about being overwhelmed with work for this current contest, why they all but ignored the European effort. A self-inflicted wound might hurt, but it's still self-inflicted.) Popular wisdom has it that no product will have any support for any of these algorithms for years — if ever. Of course, popular wisdom is ignoring all Open Source projects that support cryptography (including the Linux kernel) which could add support for any of these tomorrow. Does it really matter if the algorithm is found to be flawed later on, if most of these packages support algorithms known to be flawed today? Wouldn't it just be geekier to have passwords in Blue Midnight Wish or SANDstorm rather than boring old MD5, even if it makes no practical difference whatsoever?"

18 of 125 comments (clear)

  1. I'd ignore the Europeans too by the+eric+conspiracy · · Score: 3, Insightful

    What is the point if they only got one submission for the Hash contest? Doesn't that make it the automatic winner?

    Surely you want to do better than have to pick from more than one choice.

    And yes it will take years to pick the winner. Duh. You don't want to just throw something out there that will get broken immediately.

    1. Re:I'd ignore the Europeans too by Tony+Hoyle · · Score: 5, Insightful

      What is the point if they only got one submission for the Hash contest? Doesn't that make it the automatic winner?

      Not if it isn't shown to be secure. If needs to be tested first.. it may be they have no winner.

    2. Re:I'd ignore the Europeans too by Phroggy · · Score: 4, Insightful

      The grandparent had it right. The starting position in security should be an assumption of insecurity.

      Yes, but you can't prove that it's secure, only that it's not.

      --
      $x='S24;r)>63/* h@<5+oZ)32"5cz';$me='phroggy'x$];
      $x=~y+ -xz+\0-Tx+;print$_^chop$me for split'',$x;
    3. Re:I'd ignore the Europeans too by Anpheus · · Score: 3, Insightful

      You can prove its security against a number of known types of attacks, which is how there's already 1, up to 4 disqualified hashing algorithms in the NIST competition.

  2. We know how md5 is broken by rtfa-troll · · Score: 5, Insightful

    Actually, it's probably much better to have MD5 which is known broken in understood ways, than Jo3#a$# which is broken but we don't know how, where and why. There are fairly simple rules for MD5 (start phasing out now; only use in situations where you in some way control the input, not your adversary) which make it possible to use in a relatively safe way. If you don't know what way the hash is broken you don't know how to avoid those problems. Having said that, SHA256 should probably be considered the minimum for a temporarily secure system with a lifetime limited until something better has been available and tested. As Mr Schneier says "attacks only get better; they never get worse".

    It's also not a surprise that some hashes got broken. There are many entries and they come from all types of cryptographer from teenager to aged expert; from unknown to known mostly by initials (e.g. A, S or R). There was not much hope that all of them would be of good quality.

    --
    =~ s,(.*),<sarcasm>$1</sarcasm>,g if any_point_you_wish();
  3. Why can't we mod down submitters? by CajunArson · · Score: 5, Insightful

    Wouldn't it just be geekier to have passwords in Blue Midnight Wish or SANDstorm rather than boring old MD5, even if it makes no practical difference whatsoever?

    s/geekier/stupid and irresponsible

    Let me guess, the submitter likes to enable all the useless bling effects on Compiz but never gets any work done, and has racing stripes on his Civic....

    I went to Carnegie Mellon and took classes from a bunch of professors who were all freakin' geniuses and here is the second most important lesson I learned about cryptography: NEVER DO IT YOURSELF. And a corollary to that is never use a cryptographic system someone else cooked up until it has been through the vigorous peer review that these hash functions will go through. This was an important lesson to a bunch of egotistical CMU students, and I hope the ones who were actually smart listened. (The first most important lesson is an old one: if you think cryptography is the solution to all your security problems, you don't understand cryptography or your security problems).

      "Whaa! But the ciphers we have now are already broken!!" The current hash functions that are "broken" like SHA-1 are not trivially broken, but broken in a sense that in some scenarios might make it somewhat easier to conduct either a pre-image attack (useful if you know somebody's password hash and want to make a password that will hit the same hash) or a collision attack (useful in some cases where you are trying to forge a messsage to match a digital signature.... but if the fake message has to contain lots of garbage bytes even a successful collision might not pass the smell test). "Somewhat Easier" does not mean you can do it on your iPhone, it just means that it might take a supercomputer 100 years instead of the heat death of the universe to do it. This is still very important, but it is a world apart from an algorithm that has never been tested... those could be blown wide open and cracked almost instantly with trivial computing power. To use a bad car analogy, just because a seat belt won't save your life in every car accident doesn't mean it's just as safe to strap plastic explosives to your gas tank and hook them up to a mercury switch detonator.

        As for "open source" making these cryptographic models available quickly, I wasn't aware that text editors froze up and stopped you from writing code if it wasn't going to be open source. The reason commercial vendors won't jump on a new cryptographic protocol before they are validated is that their customers would (rightly) go ballistic and their credibility would be smashed. Fortunately for all of us the leaders of the open source community have a little more sense that you and you won't see any of these hashes in the Linux kernel or OpenSSL until they are at least in the final rounds of competition and there is some evidence that they have value. OSS has the advantage that its software implementation can be publicly validated and peer reviewed, but having your code opened up to the world is actually much MORE dangerous if you are just screwing around because you think a hash function has a badass sounding name. I'm glad Torvalds is in charge of Linux and not "jd".

    --
    AntiFA: An abbreviation for Anti First Amendment.
    1. Re:Why can't we mod down submitters? by Anonymous Coward · · Score: 1, Insightful

      Well said. Also the rest of your post is spot on. I'm going for the 'ignorantsummary' tag myself.

      It needs a !encryption tag too.

    2. Re:Why can't we mod down submitters? by jd · · Score: 1, Insightful
      1. You cannot "lead" from behind. Ergo, you cannot both be a leader AND and follower at the same time. If you are waiting until someone else tells you it's ok, you're a follower.
      2. In a race, the ones who look behind them fall over. Those who look ahead at least finish (a key requirement in winning).
      3. Skein was hardly designed by Joe Punk. Neither was MD6. Both have sample code. So who is doing all this DIY stuff you speak of?
      4. You can either know you are safe or you can be ahead of the game. You can't have both, it's a choice. (You can in fact be safe, when ahead of the game, you just can't know it.)
      5. Unless you suspect an attack on your home computer stash of downloaded music by the NSA, would you care to name any skript kiddies who have the maths noggin to break a system they can't just download the hack for?
      6. Cryptography professors, as with all professors, are not generally that smart. Some are and they do well enough in research or are hired by three-letter agencies or really big companies involved in crypto. The majority teach because they lack the brains or the guts (it takes both) to innovate.

      Oh, and I would remind you that Torvalds ignored HIS professors when it came to kernel design and opted to write his own code rather than use the publicly-available BSD4.3 or MACH tapes. I wouldn't claim to be his equal, but I would claim to have infinitely more parallels that some gutless 6-digit UIDer who, if they'd been the inventor of Linux, would have based it on TOPS-20 and never ported it to platforms never "tested" by experts for a true multitasking OS. Assuming they ever ported it from the "safe" minicomputer of their choice at all.

      According to one expert in such matters, "If you want to be the best, if you want to beat the rest, dedication is what you need." Cautious types need not apply.

      --
      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)
  4. My favorites: Keccak and Skein by Ex-Linux-Fanboy · · Score: 5, Insightful

    I spent a few hours the other day looking over all of the submissions; Keccak and Skein are my favorite contributions. My criteria was "does the hash generate a fixed-length output, or is the hash capable of also being used as a stream cipher".

    There are only four unbroken contributions that can generate arbitrarily long streams of numbers: Keccak, LUX, MeshHash, and Skein. Of these contributions, LUX and MeshHash, while not broken, already have cryptanalysis done against them that make me a little uneasy using them.

    I prefer Keccak over Skein, for the simple reason there is a bonda-fide 32-bit variant of Keccak that can run quickly on 32-bit systems. Skein is designed to run well only on 64-bit systems. Part 5.4 of the Skein paper talks about the possibility of making a 32-bit variant of Skein but that they need to come up with rotation and permutation constants, and figure out how many rounds a 32-bit Skein variant would need. I would like to see Schneier, et al (the team responsible for Skein) actually do this. Skein is more flexible that Keccak (I think threefish is the first tweakable block cipher since the somewhat broken Hasty Pudding Cipher), and is faster on 64-bit systems, but I would like to see it run on embedded and legacy systems better.

    1. Re:My favorites: Keccak and Skein by ultranova · · Score: 2, Insightful

      My criteria was "does the hash generate a fixed-length output, or is the hash capable of also being used as a stream cipher".

      Every hash function can be used as a stream cipher: you simply hash the password, then hash the resulting hash, and so on, and use each intermediate hash as input to a stream you then XOR the cleartext stream with to produce the ciphertext.

      Of course for this to be secure, the hashes must be undistinguishable from random strings, but I'd imagine that's a requirement for a good hash function anyway.

      --

      Forget magic. Any technology distinguishable from divine power is insufficiently advanced.

  5. Re:'One-way' functions by Anonymous Coward · · Score: 4, Insightful

    Did you really need a link to explain that? I mean, the fact that I'm deriving a 16-byte hash from a multi-gigabyte file should be a pretty good indication that there's no way to turn it around. Otherwise we'd have some really cool compression algorithms.

  6. Re:'One-way' functions by cbrocious · · Score: 3, Insightful

    The fact that people still think hashes are reversible makes it pretty clear that they need more than "no, you can't do that".

    --
    Disconnect and self-destruct, one bullet at a time.
  7. Popular wisdom has a very good reason... by kscguru · · Score: 5, Insightful

    Popular wisdom has it that no product will have any support for any of these algorithms for years â" if ever. Of course, popular wisdom is ignoring all Open Source projects that support cryptography (including the Linux kernel) which could add support for any of these tomorrow. Does it really matter if the algorithm is found to be flawed later on, if most of these packages support algorithms known to be flawed today?

    It matters a lot. Say OpenSSL added all of these algorithms tomorrow. Some idiot developer (hint: go read DailyWTF) will build on top of it. OpenSSL now has to maintain backwards compatibility - so they can never take out the algorithm. A month from now, the algorithm gets broken completely. But because OpenSSL shipped with it, they can never take it back out.

    The "popular wisdom" standard for proliferating a new algorithm is not how shiny it looks at first glance. Popular wisdom waits months or years until algorithms seem good enough. MD5 (or even MD4), SHA1 - all are good enough for some purposes (generally, when attacker does not control input). And if the attacker does control the input, the only sure solution is to send the whole thing - anyone believing otherwise needs to review the meaning of the word "hash". A secure hash is merely an irreversible hash with a very low risk of collision.

    Even this article is mostly "security theater". There are very, very few uses of secure hashes where SHA1 (or even MD5, for that matter) is not good enough.

    --

    A witty [sig] proves nothing. --Voltaire

  8. Re:If you know the hash isn't it game over? by blueg3 · · Score: 2, Insightful

    Not strictly true. Rainbow tables are only feasible for very small inputs -- like 8-character-or-less passwords. Salting makes the minimum input larger (much larger, since salts are usually full binary, wheras password characters are almost always out of a small subset of possible characters). Of course, rainbow tables are absolutely useless if what you're hashing is, say, an entire file for a digital signature.

  9. does a bear poo in the woods? by lkcl · · Score: 2, Insightful

    Does it really matter if the algorithm is found to be flawed later on, if most of these packages support algorithms known to be flawed today?

    does it matter? does it matter?? fuck me it fucking matters.

    example 1

    there's a type of encryption algorithm principle - the feistel cipher - see http://en.wikipedia.org/wiki/Feistel_cipher - where you perform one simple transform function as "round 1", then for rounds 2 and 3 you do a one-way hash function, and then for round 4 you do a simple transform function.

    if the one-way has is ever broken, your encryption cipher is also broken.

    game over: any traffic that's ever been using that cipher can be decrypted.

    example 2

    your credit cards you carry around? the PIN number isn't stored on the card - but an MD5 hash of the PIN number *is* stored on the card (making replay attacks possible, believe it or not).

    if MD5 is ever cracked...

    game over: anyone can get your PIN number.

    example 3

    your peer-to-peer filesystem, your git source control system, they use one-way hashes to store an index of the data blocks. let's say that someone deliberately wants to break deployed systems, they work out what file chunks could end up being mapped to the same one-way hash...

    game over: anyone can corrupt the database or the peer-to-peer filesystem by _deliberately_ making file or file chunks write to the same block.

    i could go on with the list of examples - authentication systems that would fall over; internet bank systems that could be broken in to - we _totally_ rely on one-way hashes working correctly.

    it's important beyond _belief_ that these one-way hash functions work, so much so that i was staggered that the question even had to be asked as part of the article-announcement.

  10. Re:If you know the hash isn't it game over? by lgw · · Score: 2, Insightful

    Anyone who has access to a set of password hashes will break some of them quickly. Just make sure your system is robust despite that (i.e., make sure that you can't get to a given set of password hashes unless you can already get to everything accessible using every password in that set).

    Humans choose short, weak passwords, and always will. Make your system OK with that. There are plenty of ways, from limiting retries to using physical tokens. 4-digit PINs *work* for ATM cards, because the PIN isn't the only element providing security. The physical token, the ability to invalidate or capture the physical token, the camera in the ATM, and the daily withdrawal limit are all important there.

    Hash functions are more interesting for digital signatures. Depending on a hash not being reversible given a very short input is a bit silly. That's not really the point of a hash function. The point is to make it practically impossible to create a document that matches a given signature.

    --
    Socialism: a lie told by totalitarians and believed by fools.
  11. Re:Look at MD6 by owlstead · · Score: 3, Insightful

    MD6 is definitely a serious contender. Its very conservative and well researched. It's main contender is probably Skein at the moment, although there are a few others to consider. MD6 is however not as fast as some contenders, not as flexible as some and its internal state is, as I believe, larger, which makes it more of a pain on embedded and smart card processors. In all this, Skein beats MD6. It's parallel design is using a typical hash tree, which can be used for many other hash methods as well, although MD6 uses it in its main operation.

  12. Re:Triple MD5 Anyone? by owlstead · · Score: 2, Insightful

    It is very doubtful that this is more secure, and it certainly more of a hassle. I would not want to hash a stream with a method like that.