The new forums will be named Coin Return (based on the most recent vote)! You can check on the status and timeline of the transition to the new forums here.
The Guiding Principles and New Rules document is now in effect.
So a friend posted a couple of facebook status that are encrypted. He says he hopes somebody will be able to decipher them, but I am completely at a loss. I figured there are some smart minds around here that might be able to figure out what these say...
If you have a idea to what the key is then you could try some of the online encryption/decryption services but without that or at least knowing what encryption was used I'd say it's a no go.
Yeah he's trying to waste your time. Even the cipher would be a good place to start and you can guess your key from there. No cipher or no key? Good luck.
bowen on
not a doctor, not a lawyer, examples I use may not be fully researched so don't take out of context plz, don't @ me
Oh fun encryption. So looking at both of them right now it looks like complete bullshit. Let's examine the first one.
G)Mn9WMl)c.$on:[)W%\{Pr%
Let's start with a frequency analysis. Just because it's always best to start simple and work your way up.
1 $
2 %
3 )
1 .
1 9
1 :
1 G
2 M
1 P
2 W
1 [
1 \
1 c
1 l
2 n
1 o
1 r
1 {
This is pretty much gibberish. Almost nothing repeats, and when it does the max we get is 3 repeated characters, We could maybe assume that ) is actually a space. So that gives us 3 words. To work with, but with only 4 other characters repeating it doesn't look like anything that's gonna be a sentence or actual word.
Now I'm not saying it's not encrypted, but it's not something he came up like a simple substitution cipher or something along those lines. Now if it was encrypted, it could be a one time pad (OTP) or along those lines, but those don't usually have special characters, and even if they do we don't really know what the key would be so more clues on his part would help if it's certainly something.
It also doesn't look like any sort common encrypted hash like MD5, SHA1, BASE64, etc. So I really think it's just your friend trying to get people to waste time.
Yeah, when you're looking at blind decryption, volume is your friend, and you don't really have much of that here. The first one could be a substitution cypher. If you're lucky the ) is a space, so that would make G the I or A, and at least one letter from each of the other words as vowels, which narrows things down enough that you could probably write a program to find matching dictionary words that fit the structure and then waste a lot of time perusing that list for sentences that make sense.
The second is likely not a simple substitution from eyeballing it, in which case you're probably out of luck.
Not many repeating characters, but in either one, there's not even any repeating pairs or tripples, which are really useful with a substitution cipher.
On the first, if ) is space, G is I or A, that leaves the rest of the phrase with no more of that letter, and you pretty quickly run out of possible vowels from there, so I don't think that's substitution either - not that it can't be, you can pick your words carefully before encryption to make the result look more like garbage.
Best I can think of is that the first is the key to the second, but that doesn't even go anywhere with what's there.
I'm going with the fake bandwagon, but even it's not, you need enough to get a starting point. I mean, take Kryptos - there's almost a thousand characters there, and a quarter of it still has everyone stymied after a couple decades. And that's not even a particularly difficult cypher, it was meant to be solvable.
Since both consist of printable ASCII characters, my first thought was that it was uuencode or something similar, designed to move 8-bit characters through 7-bit communication pathways, but it doesn't decode with uudecode or xxdecode or base64 or even something like rot47, and that's about where I lost interest.
If he does fess up to whatever method he's using, I'd be curious to find out.
It is a complete English sentence, with correct grammar (although missing the '(name)' part implied by the status post). Also, the cypher is on the 95 printable ASCII characters, not just alphanumerics. Lastly, it is a simple twist on a classic cypher.
Well then ')' is no longer likely to be a space, as "(name) a" and "(name) I" aren't valid ways to start a sentence.
I don't think it's "(name) is" - as that would imply a 16 letter word at the end of the sentence that's one of pseudoclassicism, psychophysically, psychophysiology - none of which seem likely.
"(name) has" is a possibility. You can use something like http://www.wordbyletter.com/crosswords_solver.php to figure out possible words given known letters (though if you get a word list and write a small program, you'll be much better off as you can narrow things down more).
It might be that there isn't just a key, but a trick to the key. I've done things like this before where for every character, you went a certain number of characters in a varying direction on the keyboard for the cipher'd key.
so, say its 1 step clockwise, starting from the top, (always.)
the cat in the hat
is
5jd dwy k b5uf n%
(since one of the keys in the cipher actually becomes the space key, the spacing falls off, and one of the characters is the shift key, meaning the next key would be capitalized, or symbolized.)
If he enjoys doing stuff like this, I'd expect a complex cipher, like that, which would render standard algorithms essentially useless.
Do a rot13 rotation and add every ASCII character instead of just letters. Try different permutations. ROT13 is the most used "lawl guys I'm an genius!" Where, what order of the characters you do it sompletely subjective, but I'm assuming in correct ASCII order.
I don't think it's a simple rotation. I was curious so wrote a quick script last night after the clue about being on the 95 printable ascii characters to do each step of rotation, and none of the results were words.
Edit: I don't think it can really be a simple substitution either -- even taking into account it uses all 95 ASCII characters. There are 88 unique characters used overall in the text you've posted. In typical English sentences, there are 52 characters (upper+lowercase) plus 10 digits, plus a handful of punctuation typically used in a sentence.
Things like square brackets, curly brackets, greater/less than signs, tildes, and pipes aren't typically going to be found in "a complete English sentence, with correct grammar" unless he's gone out of his way to include code or references, or equations or something.
IMO, he's a dick still. It's ultimately pointless unless he tells you which cipher he's using. Even if he says "Oh yeah I totally used ROT13 and chagned it a bit *WINK*" he's still a dick because it's essentially fruitless to solve unless you've got days upon days to solve this.
Simple encryption breaking is a full time job. Advanced encryption breaking is a job for a fucking genius.
bowen on
not a doctor, not a lawyer, examples I use may not be fully researched so don't take out of context plz, don't @ me
he's the kind of guy who would do this just for fun.
Just tossing out there, as the kind of guy who used to do this just for fun: The kind of guy who would do this just for fun would also fake it just for fun, because it's a lot less work and just as many laughs as your victims scramble to figure it out.
It's probably a riff on a rolling substitution, where you shift the alphabet X places for the first character, X+1 for the second, and so on. Where things get messy is that the code alphabet doesn't have to be in any particular order, just consistent between them.
Assuming they end with periods, I don't think a raw ascii order works, as that turns the last few characters of the first string into "Wz." or "[|."
In the "Hello World!" example, the ciphertext is exactly twice the length of the plaintext (if you include the exclamation mark and the space). I hypothesize that each character in the plaintext expands, then, to two ciphertext characters. I worked on this for a little while but couldn't see a pattern in letters, keyboard positions, or ASCII codes in hex, binary, or decimal, arranged as either:
G)Mn9WMl)c.$
on:[)W%\{Pr%
Hello world!
or
G) Mn 9W Ml )c .$ on :[ )W %\ {P r%
H e l l o _ w o r l d !
Oh of course. God I was right on the right track wasn't I. I must have done some figuring wrong when I was working it on paper, because I thought I was trying what the answer is. Good show.
<html>
<body>
<script type="text/javascript">
var ciphertext1 = "G)Mn9WMl)c.$on:[)W%\\{Pr%";
var ciphertext2 = '}aBw<z3Uz"EsD5!U#VAJCWxFyDF&+uB&Td}q\\1GW0iKT~LgUB\\,ixUrk:\\D*i;#=+=7Lx+[>Fuqu6i=Tm^]1?g@^LT9U';
var ciphertext3 = 'cj@,Y;]5;p7Od2(W7| hCaE^)rQ-9|/}dP\';hdP%RdT4v]i,WftxI7WO\'&\\A i?d7C (M%W0Wi\'5S0i:&b`:71B=-_@uM;?52V*Idti<7fdN%a:N)aA"9pwm\\P|,hK@wROJ\'p]N"L`#xu-;;prVM 3?\\x7 at:tOu<i{%S#O.iKF~-}(K';
// Change the following line to decrypt a different
// ciphertext
var ciphertext = ciphertext3;
var length = ciphertext.length;
if ((length % 2) == 1) {
document.write("Ciphertext length must be a multiple of 2. Did you check for wayward backslashes?");
}
else {
var half = length / 2;
var plaintext = "";
for (i = 0; i < half; i++) {
c1 = ciphertext.charCodeAt(i);
c2 = ciphertext.charCodeAt(i + half);
var diff = c2 - c1;
if (diff < 0) {
diff += 95;
}
diff += 32;
plaintext += String.fromCharCode(diff);
}
document.write(plaintext);
}
</script>
</body>
</html>
Heh, excellent, brilliant, you guys! I knew you could crack his code! DrFrylock, any way to get a encoding script?
Sure. Note that with this scheme there are many ways to encode the same character. As such, for any given ciphertext there is only one plaintext, but for a given plaintext, there are many valid ciphertexts. I made this algorithm random, so it generates a new ciphertext each time, but each one should decode to the specified plaintext.
<html>
<body>
<script type="text/javascript">
// NB: Script has a random element; all generated ciphertexts
// will decode to the chosen plaintext.
// Change this line to change what you're encrypting
var plaintext = "Hello World!";
var ciphertext1 = "";
var ciphertext2 = "";
for (i = 0; i < plaintext.length; i++) {
c = plaintext.charCodeAt(i) - 32;
var c1 = Math.floor(Math.random() * 95);
var c2 = (c1 + c) % 95;
ciphertext1 += String.fromCharCode(c1 + 32);
ciphertext2 += String.fromCharCode(c2 + 32);
}
for (i = 0; i < ciphertext1.length; i++) {
var ct = ciphertext1.charCodeAt(i);
document.write("&#x" + ct.toString(16) + ";");
}
for (i = 0; i < ciphertext2.length; i++) {
var ct = ciphertext2.charCodeAt(i);
document.write("&#x" + ct.toString(16) + ";");
}
</script>
</body>
</html>
Posts
The second: But not as bored as you.
Note that I pulled those from the air but they certainly fit!
Let's start with a frequency analysis. Just because it's always best to start simple and work your way up.
This is pretty much gibberish. Almost nothing repeats, and when it does the max we get is 3 repeated characters, We could maybe assume that ) is actually a space. So that gives us 3 words. To work with, but with only 4 other characters repeating it doesn't look like anything that's gonna be a sentence or actual word.
Now I'm not saying it's not encrypted, but it's not something he came up like a simple substitution cipher or something along those lines. Now if it was encrypted, it could be a one time pad (OTP) or along those lines, but those don't usually have special characters, and even if they do we don't really know what the key would be so more clues on his part would help if it's certainly something.
It also doesn't look like any sort common encrypted hash like MD5, SHA1, BASE64, etc. So I really think it's just your friend trying to get people to waste time.
The second is likely not a simple substitution from eyeballing it, in which case you're probably out of luck.
Play with me on Steam
On the first, if ) is space, G is I or A, that leaves the rest of the phrase with no more of that letter, and you pretty quickly run out of possible vowels from there, so I don't think that's substitution either - not that it can't be, you can pick your words carefully before encryption to make the result look more like garbage.
Best I can think of is that the first is the key to the second, but that doesn't even go anywhere with what's there.
I'm going with the fake bandwagon, but even it's not, you need enough to get a starting point. I mean, take Kryptos - there's almost a thousand characters there, and a quarter of it still has everyone stymied after a couple decades. And that's not even a particularly difficult cypher, it was meant to be solvable.
If he does fess up to whatever method he's using, I'd be curious to find out.
I don't think it's "(name) is" - as that would imply a 16 letter word at the end of the sentence that's one of pseudoclassicism, psychophysically, psychophysiology - none of which seem likely.
"(name) has" is a possibility. You can use something like http://www.wordbyletter.com/crosswords_solver.php to figure out possible words given known letters (though if you get a word list and write a small program, you'll be much better off as you can narrow things down more).
Play with me on Steam
so, say its 1 step clockwise, starting from the top, (always.)
the cat in the hat
is
5jd dwy k b5uf n%
(since one of the keys in the cipher actually becomes the space key, the spacing falls off, and one of the characters is the shift key, meaning the next key would be capitalized, or symbolized.)
If he enjoys doing stuff like this, I'd expect a complex cipher, like that, which would render standard algorithms essentially useless.
-Current W.I.P.
G)Mn9WMl)c.$on:[)W%\{Pr%
and
}aBw<z3Uz"EsD5!U#VAJCWxFyDF&+uB&Td}q\1GW0iKT~LgUB\,ixUrk:\D*i;#=+=7Lx+[>Fuqu6i=Tm^]1?g@^LT9U
and
cj@,Y;]5;p7Od2(W7| hCaE^)rQ-9|/}dP';hdP%RdT4v]i,WftxI7WO'&\A i?d7C (M%W0Wi'5S0i:&b`:71B=-_@uM;?52V*Idti<7fdN%a:N)aA"9pwm\P|,hK@wROJ'p]N"L`#xu-;;prVM 3?\x7 at:tOu<i{%S#O.iKF~-}(K
http://asciitable.com/
Edit: I don't think it can really be a simple substitution either -- even taking into account it uses all 95 ASCII characters. There are 88 unique characters used overall in the text you've posted. In typical English sentences, there are 52 characters (upper+lowercase) plus 10 digits, plus a handful of punctuation typically used in a sentence.
Things like square brackets, curly brackets, greater/less than signs, tildes, and pipes aren't typically going to be found in "a complete English sentence, with correct grammar" unless he's gone out of his way to include code or references, or equations or something.
Simple encryption breaking is a full time job. Advanced encryption breaking is a job for a fucking genius.
Just tossing out there, as the kind of guy who used to do this just for fun: The kind of guy who would do this just for fun would also fake it just for fun, because it's a lot less work and just as many laughs as your victims scramble to figure it out.
Assuming they end with periods, I don't think a raw ascii order works, as that turns the last few characters of the first string into "Wz." or "[|."
http://rumkin.com/tools/cipher/
one other thing to note is that he only uses ASCII characters between 33 and 126
So that means that
G)Mn9WMl)c.$on:[)W%\{Pr%
is "Hello World"
and that
cj@,Y;]5;p7Od2(W7| hCaE^)rQ-9|/}dP';hdP%RdT4v]i,WftxI7WO'&\A i?d7C (M%W0Wi'5S0i:&b`:71B=-_@uM;?52V*Idti<7fdN%a:N)aA"9pwm\P|,hK@wROJ'p]N"L`#xu-;;prVM 3?\x7 at:tOu<i{%S#O.iKF~-}(K
is two sentences.
or
is very much on the right path, I'll let other curious minds go to work for a bit if they want before I post the solution.
Play with me on Steam
"It is B very bad idea to not show up for jury duty. Luckily, I was YG5=?>RbfQC95('j,g{[j"
Play with me on Steam
Spoilers for those who care:
Sure. Note that with this scheme there are many ways to encode the same character. As such, for any given ciphertext there is only one plaintext, but for a given plaintext, there are many valid ciphertexts. I made this algorithm random, so it generates a new ciphertext each time, but each one should decode to the specified plaintext.