6 comments

[ 3.6 ms ] story [ 30.6 ms ] thread
Found this site after reading a CNN article [1] about a NSA tweet [2] designed as a recruitment vehicle. Anyways, take the NSA tweet "tpfccdlfdtte pcaccplircdt dklpcfrp?qeiq lhpqlipqeodf gpwafopwprti izxndkiqpkii krirrifcapnc dxkdciqcafmd vkfpcadf." and plug that into quipqiup using the "find spaces" option. Just thought it was cool that there are automated tools to solve problems like this. The site also has a nice help page where you can provide clues.

[1] http://www.cnn.com/2014/05/07/tech/social-media/nsa-coded-tw...

[2] https://twitter.com/NSACareers/status/463321993878994945

Is the source available? I'd be curious what his technique is. I wrote something similar a few years ago, based on pattern matching against a dictionary (which has obvious drawbacks but is very fast when it works).
Simulated annealing works very well for this problem (and is both reliable and "debuggable" in that if it doesn't work you have good options for tweaking it until it does). Instead of using a dictionary of complete words you can score text by computing the log-likelihood of the ciphertext's sequence of n-tuples given a proposed key.

For n=1 this reduces to "e is most common, t is second most common..." except with the caveat that the simulated annealing algorithm is stochastic and will explore 'almost-perfect' decode tables as opposed to just the 'perfect' decode table (which might not actually be correct).

At n=2 or n=3 this strategy will chew up any substitution-cipher'd block you feed it (assuming a reasonably well-behaved plaintext).

EDIT: this was stochastically generated by a n=4 model, in case it helps you form a picture of how good they are at determining how "english-like" something is.

    % GAHLUABLEST ME BUCK NIGH GROUBLE ANY OLD A
    % WORRIES BEAUTIFFEEL AND AND WHY COME FOR SOON
    % I SEE IT DOWHEN WE PAY YEAR AT WHAH AND PULL YOU
    % COMING ALLOW NECTLY SCOW DOWN AFTS DUKE TOWARNT AND
    % SIXTEEN WA
It's good enough to be creepy, at least...
(comment deleted)
I put the example "inwhi chwor dboun darie saren t" from the page, selected patristocrat mode and it didn't solve it to be "in which word boundaries arent."