Playfair 5-8-19

My hillclimber wouldn’t solve this until I gave it a long crib. The key consists of two words. I ran a brute force program combining the first word with every word in my list and it still didn’t find the solution. The plaintext is randomly selected from Gutenberg.org, two unrelated sentences.

DL SR YQ EH HT VC KV BG GR BY YQ UH SE UH ZC WO UA FQ ON DZ OL XN FG OU DL VD UV WO YD RH EZ HP OY RH VF ZU HT BG NL QO UC NH NO ZT AU ZF OI FC BC AT OH IV ZS AQ QO UR IO YQ EW US DL UR SB ZG FG VR PH RQ BC WR NU SU YI crib: VXDWCOXACBJLCRWPXO

9 thoughts on “Playfair 5-8-19”

  1. My PH hill-climber solved it in about 600,000 trial decrypts without the crib. The hill-climber was accepting about 2.5 percent of the keys it generated. The second part of the plaintext continues: YMJFHHTZSYTK

    But I haven’t got the key yet.

  2. After 10 minutes one of 8 concurrent hill-climbing processes reported a significantly higher score than the others. The result is what I’d call a “practical” break, though not a complete one: the first three words are obviously correct, as well as longer stretches of legitimate text further along. To me a practical break is one you could hand to a code clerk to complete by hand or run again with the placed cribs from the partial solution. I’ll let it run a little longer and report back if it provides a complete break without the crib.

  3. I can add that the reason my word-list-based attempt didn’t work was because I didn’t have the right route in my program. With 48 of them, it’s too time-consuming to try them all. The route and the two keywords were chosen randomly by the program. The keywords happen to be quite long.

  4. No complete break after 10 minutes, but feeding the crib into the hillclimber gave a pretty quick result:
    XQUHYRFDEOB PHGLWDWH (and several other possibilities for the second word) with path 22, which is alternate clockwise upper right.

  5. When I’m choosing a start I also choose a path, with normal l-r weighted heavily, normal spiral next highest, and I think then randomly among the rest of the 48.

    1. I checked my path code: 50% chance of choosing path 1 (horizontal), 25% chance of path 33 (spiral), 12.5% chance of path 9 (vertical) and 12.5% a random pick among all 48. For ACA ciphers one could probably tune that better based on actual choices, but I think something like that makes sense for Playfairs in the wild. The “practical break” above allowed key length up to 25, so it essentially ignored the key other than scoring it as possible English (which it wasn’t, since it guessed the wrong path).

  6. Bill –

    No, this is still my old C general-purpose hillclimber “scryomat”. I wrote a few programs in go, then got sidetracked with another project and haven’t done anything major with it yet. My C concurrency still just consists of running 8 copies (or however many cores I have) and collecting the results. I use Linux because the last time I tried it in Windows the job control was comparatively pathetic, making the machine useless for anything else if I had as many processes as cores. I’m pretty confident that one could do better with CUDA and the graphics processor, but again I haven’t put in the work.

  7. When I comment, I check the box to notify me by email of follow-up comments and I receive them, but when I post something, I don’t get notified that there has been a comment. I don’t see how to make that happen without commenting on my own post. So I didn’t see the latter comments on this until now. Scryer’s keywords were correct except the final one actually ended -or, although of course it’s identical when compressed.

Leave a Reply

Your email address will not be published. Required fields are marked *