|
Post by nawglan on Jul 26, 2012 23:41:18 GMT -5
Well, I have been working on several projects. The one that is most developed is a new endeavor for me. Trying to develop a contest for deciphering a encoded question and providing the answer to the question. I currently have several ciphers coded up: hex, rot13, substitution, Vigenère, Beaufort, Running / Autokey, reverse string, and a wordy one. The wordy one is like Vigenère, but instead of substituting letters, it substitutes english words. I would like some help in ordering the ciphers into degrees of difficulty and would like some suggestions for ciphers to implement. Site: lurch.homelinux.org/cypher.pl (yes, I misspelled it on purpose). Thanks.
|
|
|
Post by mikeEB on Jul 28, 2012 9:37:39 GMT -5
Rot13 doesn't seem to work in the context of that web page; saying that it's Rot13 makes it trivial. Wordy seems unfair since I don't have enough information to determine which dictionary you are using. Similarly, where the plaintext only contains one number, some ciphers don't give enough information to tell what that number is. One interesting variation on simple substitution always maps vowels to other vowels, resulting in vaguely pronounceable cipher text. It's possible to do the same with the more complex substitution ciphers as well. I suggest adding en.m.wikipedia.org/wiki/Permutation_cipher to the list.
|
|
|
Post by nawglan on Jul 29, 2012 21:53:59 GMT -5
ahh. Thanks for the link. I'll attempt that one. wordy is a bit unfair. 8) basically it splits the string into characters and maps each character to a word. It does this by using a lookup table and a rotating key. The key I use is 63 characters (a-zA-Z0-9) and space. Anything outside this is passed along as is. For the lookup table I took the english words from ispell's database, randomly picked them for a 62x62 grid. Then, taking the first letter of the key, and pairing it with the first letter of the phrase results in a word which is output for the encoded message followed by a space. Push the used key letter to the end of the key. Repeat. To decode, split on spaces, find the word and pick the column (or row if that's how you chose in the encode step) id for the decoded character. I'm thinking of modifying wordy so that each word chosen contains the letter in the decoded text. Yes, it weakens the cipher, I'm just wondering how long it would take for someone to figure that out... maybe use it as a son-of-wordy... The idea is to have fairly easy ones in the first round, introduce each of the harder ones in subsequent rounds. Then for the grand challenge, chain 2 or 3 of them randomly (well, with some rules, ie rot13 cannot follow rot13). Each encoding the output of the previous. All of the ciphers that use a random word to prefix or be the key string get the word from the same Ispell list of words (118780 words). Links for the ciphers: en.wikipedia.org/wiki/ROT13 (I extend this for upper and lower case, no numbers they pass through) en.wikipedia.org/wiki/Beaufort_cipher (punctuation passes through) en.wikipedia.org/wiki/Vigen%C3%A8re_cipher (punctuation passes through) en.wikipedia.org/wiki/Trithemius_cipher (though I extend this for lowercase and numbers. It's used by Autokey, Vigenère and Beaufort.) en.wikipedia.org/wiki/ASCII (I call this one ord, for the perl function I use, split encoded text into groups of 3 digits) en.wikipedia.org/wiki/Hexadecimalen.wikipedia.org/wiki/Substitution_cipher (I extend this for upper and lower case and numbers, punctuation passes through.) en.wikipedia.org/wiki/Running_key_cipheren.wikipedia.org/wiki/Autokey_cipher
|
|