Note that there are some explanatory texts on larger screens.

plurals
  1. PO
    text
    copied!<p>To contradict what everyone else has said so far, <strong>go for it!</strong> Yeah, your code might have buffer overflow vulnerabilities in it, and may be slow, buggy, etc, but you're doing this for <strong>FUN</strong>! I completely understand the recreational enjoyment found in playing with crypto.</p> <p>That being said, cryptography isn't based on obfuscation at all (or at least shouldn't be). Good crypto will continue to work, even once <a href="http://en.wikipedia.org/wiki/Alice_and_Bob#List_of_characters" rel="nofollow noreferrer">Eve</a> has slogged through your obfuscated code and completely understands what is going on. IE: Many newspapers have <a href="http://en.wikipedia.org/wiki/Caesar_cipher" rel="nofollow noreferrer">substitution code</a> puzzles that readers try and break over breakfast. If they started doing things like reversing the whole string, yes, it'd be harder, but Joe Reader would still be able to break it, neve tuohtiw gnieb dlot.</p> <p>Good crypto is based on problems that are assumed to be (none proven yet, AFAIK) really difficult. Examples of this include <a href="http://en.wikipedia.org/wiki/RSA#Security" rel="nofollow noreferrer">factoring primes</a>, <a href="http://en.wikipedia.org/wiki/Diffie-Hellman" rel="nofollow noreferrer">finding the log</a>, or really any other <a href="http://en.wikipedia.org/wiki/NP-complete" rel="nofollow noreferrer">NP-complete</a> problem.</p> <p>[Edit: snap, neither of those are <strong>proven</strong> NP-complete. They're all unproven, yet different. Hopefully you still see my point: crypto is based on one-way functions. Those are operations that are easy to do, but hard to undo. ie multiply two numbers vs find the prime factors of the product. Good catch <a href="https://stackoverflow.com/users/20486/tduehr">tduehr</a>]</p> <p>More power to you for playing around with a really cool branch of mathematics, just remember that crypto is based on things that are hard, not complicated. Many crypto algorithms, once you really understand them, are mindbogglingly simple, but still work because they're based on something that is hard, not just switching letters around.</p> <p>Note: With this being said, some algorithms do add in extra quirks (like string seversal) to make brute forcing them that much more difficult. A part of me feels like I read this somewhere referencing <a href="http://en.wikipedia.org/wiki/Data_Encryption_Standard" rel="nofollow noreferrer">DES</a>, but I don't believe it... [EDIT: I was right, see <a href="http://scienceblogs.com/goodmath/2008/09/des_encryption_part_1_encrypti.php" rel="nofollow noreferrer">5th paragraph of this article</a> for a reference to the permutations as useless.]</p> <p>BTW: If you haven't found it before, I'd guess the <a href="http://en.wikipedia.org/wiki/Tiny_Encryption_Algorithm" rel="nofollow noreferrer">TEA</a>/<a href="http://en.wikipedia.org/wiki/XTEA" rel="nofollow noreferrer">XTEA</a>/<a href="http://en.wikipedia.org/wiki/XXTEA" rel="nofollow noreferrer">XXTEA</a> series of algorithms would be of interest.</p>
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload