As was foretold, we've added advertisements to the forums! If you have questions, or if you encounter any bugs, please visit this thread: https://forums.penny-arcade.com/discussion/240191/forum-advertisement-faq-and-reports-thread/

Decrypting something!

proXimityproXimity Registered User regular
edited October 2010 in Help / Advice Forum
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...

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

camo_sig2.png
proXimity on

Posts

  • billwillbillwill Registered User regular
    edited September 2010
    How sure are you that your friend just doesn't want to waste your time?

    billwill on
    I hate you and you hate me.
  • proXimityproXimity Registered User regular
    edited September 2010
    ...about 90% sure?

    proXimity on
    camo_sig2.png
  • BlindZenDriverBlindZenDriver Registered User regular
    edited September 2010
    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.

    BlindZenDriver on
    Bones heal, glory is forever.
  • bowenbowen How you doin'? Registered User regular
    edited September 2010
    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
  • Roland_tHTGRoland_tHTG Registered User regular
    edited September 2010
    The first one says: I'm bored.

    The second: But not as bored as you.

    Note that I pulled those from the air but they certainly fit!

    Roland_tHTG on
  • Dinosaur Equals GasDinosaur Equals Gas Registered User regular
    edited September 2010
    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.

    Dinosaur Equals Gas on
  • soxboxsoxbox Registered User regular
    edited September 2010
    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.

    soxbox on
  • HevachHevach Registered User regular
    edited September 2010
    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.

    Hevach on
  • baudattitudebaudattitude Registered User regular
    edited September 2010
    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.

    baudattitude on
  • proXimityproXimity Registered User regular
    edited September 2010
    I asked him for a hint, we'll see if he gives me anything. I'm pretty sure it is legit, he's the kind of guy who would do this just for fun.

    proXimity on
    camo_sig2.png
  • proXimityproXimity Registered User regular
    edited September 2010
    Alright, so here's what he says
    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.

    proXimity on
    camo_sig2.png
  • soxboxsoxbox Registered User regular
    edited September 2010
    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).

    soxbox on
  • wogiwogi Registered User regular
    edited September 2010
    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.

    wogi on
    http://bit.ly/runshort
    -Current W.I.P.
  • proXimityproXimity Registered User regular
    edited September 2010
    Alright, he posted some more to work with, which brings it up to

    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

    proXimity on
    camo_sig2.png
  • bowenbowen How you doin'? Registered User regular
    edited September 2010
    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.

    http://asciitable.com/

    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
  • DaenrisDaenris Registered User regular
    edited September 2010
    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.

    Daenris on
  • bowenbowen How you doin'? Registered User regular
    edited September 2010
    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
  • HevachHevach Registered User regular
    edited September 2010
    proXimity wrote: »
    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.

    Hevach on
  • ReaperSMSReaperSMS Registered User regular
    edited September 2010
    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 "[|."

    ReaperSMS on
  • Dunadan019Dunadan019 Registered User regular
    edited September 2010
    well, here's a handy list of probable ciphers:

    http://rumkin.com/tools/cipher/

    one other thing to note is that he only uses ASCII characters between 33 and 126
    ascii.png

    Dunadan019 on
  • proXimityproXimity Registered User regular
    edited September 2010
    Alright, some more hints from him!
    This one is two complete, correct, English sentences. The first cipher I posted (on the 26th) is "Hello World!" (no "'s).

    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.

    proXimity on
    camo_sig2.png
  • DrFrylockDrFrylock Registered User regular
    edited October 2010
    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  !
    

    DrFrylock on
  • soxboxsoxbox Registered User regular
    edited October 2010
    }aBw<z3Uz"EsD5!U#VAJCWxFyDF&+uB&Td}q\1GW0iKT~LgUB\,ixUrk:\D*i;#=+=7Lx+[>Fuqu6i=Tm^]1?g@^LT9U
    is
    "is done with the first day of school! w00t! :)"
    G)Mn9WMl)c.$
    on:[)W&#37;\{Pr%
    Hello world!
    

    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.

    soxbox on
  • soxboxsoxbox Registered User regular
    edited October 2010
    There's also a bug in the last two sentence string you gave us. It translates as:

    "It is B very bad idea to not show up for jury duty. Luckily, I was YG5=?>RbfQC95('j,g{[j"

    soxbox on
  • DrFrylockDrFrylock Registered User regular
    edited October 2010
    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.

    DrFrylock on
  • DrFrylockDrFrylock Registered User regular
    edited October 2010
    The bug in the last ciphertext is that there are two spaces in between the lines. It's not apparent when posted on the board.

    Spoilers for those who care:
    Paste this here.
    <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>
    

    DrFrylock on
  • proXimityproXimity Registered User regular
    edited October 2010
    Heh, excellent, brilliant, you guys! I knew you could crack his code! DrFrylock, any way to get a encoding script?

    proXimity on
    camo_sig2.png
  • DrFrylockDrFrylock Registered User regular
    edited October 2010
    proXimity wrote: »
    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>
    

    DrFrylock on
Sign In or Register to comment.