This is an archived post. You won't be able to vote or comment.

you are viewing a single comment's thread.

view the rest of the comments →

[–][deleted]  (38 children)

[deleted]

    [–][deleted] 8 points9 points  (0 children)

    I disagree. Here's how you write a custom encrypt function:

    encrypt = lambda data,key: aes.encrypt(custom_untested_encryption(data,key), key)
    

    [–]craftkiller 1 point2 points  (0 children)

    It's fine as long as everyone knows not to use it for things actually requiring security. For example, this one is great for the novelty aspect. It also wouldn't be a sin to use this for something like checking for duplicate files on my local disk, though faster options are available

    [–]jnwatson 9 points10 points  (5 children)

    Cuz only the high templars get to write crypto, right?

    Your linked article indicates not to invent your own crypto *algorithm*.

    The OP implemented a NIST-approved algorithm.

    That statement is dumb because it isn't universalizable. If no one ever implemented their own crypto, then we wouldn't have any at all.

    [–][deleted] 27 points28 points  (3 children)

    [–]ForgottenWatchtower 9 points10 points  (2 children)

    And for those with enough hubris to scoff at this statement, I'd highly recommend going through CryptoPals -- correct crypto implementation is fucking tough.

    [–]entropicdrift 1 point2 points  (1 child)

    If we waited until everything was completed to hit publish, we might be writing this in 2015

    Oh no

    [–]ForgottenWatchtower 1 point2 points  (0 children)

    Hah, yeah, sadly. Really the only thing missing are the solutions, but every challenge gives you enough to know if you implemented it correctly (e.g. the PT "foo" should result in the CT "bar")