Unknown 7-20-19

Here’s a cipher of unknown type. Two of my ID tests put the correct type on top, but the other test put it fifth on the list. Key search and PH hill-climbing both solved it without a crib. I’ll add a caesar-shifted crib.

???.
HLASX IUCZQ STEHO AKADN AIGSQ XAMYM UHDZT RAPFL DLSLP RAPQX XPKIX
BHTPL YICUY HPRSU RAPER XIMKO XHBAR QTSAZ YRCRN AULUN VNSKT YPR.

Crib: DTZXZUUTXJDT

Layout for selecting converging key search routes.

Here’s a screenshot of two/four square converging key search program. It has a grid for selecting which routes to use in the search. You could just choose all routes, but that makes the program take forever, especially in a tri-square key search where you are searching three keysquares.

The part of the display that took the longest to figure out was combining the giant size checkboxes in the grid with the ordinary sized 6×6 checkbox. That took a lot of searching through the web for information about html and css tags.

Unknown 7-9-2019

Here’s a randomly generated cipher of unknown type. I had a hard time solving it. Within a certain range of periods all my ID tests got the correct type. But this period range was not correct for this cipher! With a different range none of my ID tests put the correct type on top. I tried a lot of different hill-climbing combinations and finally hit on the correct combination. With the correct combination of settings the hill-climber solved it without a crib. I’ll include a caesar-shifted crib.

???
NGKSF SBZUG AINZX BHNZL MALKZ KCTIS EBUSF MNIPA HIIFQ NAOKR JJIHR
RKBCC KHBZE VSVUI PGOAP UDGVM YXXBA PHHNC WNTYL WKNBA GPABN XBUWB
NZBJJ GIYUR.

caesar-shifted crib: XMTB

Running key 6-25-19

Here’s a randomly generated Vigenere running key cipher. I solved it without a crib using a key search program and a combination interactive solver and hill-climbing program. Both of these programs used local servers to run. The word search server was listening on port 3000, and the hill-climber was listening on port 8080. The search program ran through a list of about 600,000 words and phrases, looking for a corresponding plaintext that included a word or phrase at least 7 letters long. The key search returned four possibilities, one with a 9 letter phrase and three with 7 letters phrases. Three out of the four results actually occurred in the solution. I filled in the rest of the plaintext by switching back and forth between the hill-climber and the interactive solver.

For a crib I’ll include the (caesar-shifted) phrase whose corresponding plaintext included the 9 letter phrase.

Vigenere running key:
UUOHZ LWHJM AATPD XIEZC TVYAO XPJBZ OXFHC VNTLV XZWYD YDYZX JXMLX PMHDZ PXEOS.

caesar-shifted crib: NKSJHJXXFWD

update: I’ll add a caesar-shifted hint:

Hint: YMJ XTQZYNTS XYFWYX BNYM F SFRJ FSI JSIX BNYM F SFRJ

unknown 6-22-19

Here’s a randomly generated cipher of unknown type. All my ID tests put the correct type on top. PH hill-climbing solved it without a crib. Key search solved it also. I’ll include a caesar-shifted crib.

???.
OEUGF LONEG HRUIO FVLBI RUGQB ESGGU LZOMU WIUGD RFXCB MSBHO KHFDT
SENEV DOQIN CEUDF CIILI MOOPU IFFLD CLOOT ICUIF PXFCL OODGG SKFIV
KGDEM OPOUU ECBOC IGDLP OEMOV PFQTI.

caesar-shifted crib: JWJPSFWNJXFSIJ

Keyphrase 6-14-2019

Here’s a randomly generated keyphrase cipher. My hill-climber and word search programs were enough to solve it without a crib. I’ll include a caesar-shifted crib. The punctuation was left out of the ciphertext.

Keyphrase:
SSSEHORONH AH TEOSNLR SSSEHORONH LRN RSESS FR ON ORS LENLOOOEN ON IROLR IS RES LE NEO TEEHSO ORRO O OSH ET HEF.

caesar-shifted crib: BMNHM.

Note: The key was randomly selected from a list of about 1000 keyphrases. I generated the list by looping through lines of poetry. From each line of poetry I removed the beginning words until there were 26 letters left if possible, also I tried removing words from the end until 26 letters were left, and also I tried removing words at random until 26 letters were left. This particular key makes sense and can be found with an internet search.

Making a keyphrase by removing words at random is probably not a very efficient method of proceeding. I think a problem like this is called a “knapsack” problem in the literature. Knapsack problems are like traveling salesman problems — there is no general algorithm for solving them, but some reasonably good algorithms probably exist.

Unknown 6-9-2019

Here’s a randomnly generated unknown cipher. I’ll give a hint because all my ID tests got this one wrong. I needed the crib to solve it.

???
YIIXA JPKNL FCFFK XYCMJ XKGWF FPEFB FFNSE EIZRM OFYAM AGHIK ELXYB
VFFMO RIXJG CRJES UOOFF FDXFY XMFXM IEXMD SGZZF OHLLI JJVUP CFZRM
JFMEM ORJID XOFFF ONRKX YBFYT WFTCR MCTVE SFTFP UER.

caesar-shifted crib: FYLTTIBNQQNYITYTUN

Hint: YMNXNXFVZFLRNWJKTZWHNUMJW

Running Key 5-25-2019

Here’s one more Vigenere running key cipher. It took me a long time to solve this using the word/phrase search program and the combination interactive solver and hill-climber. I kept going back and forth between all 3 of these. The initial search turned up a pretty good phrase, which I’ll include in caesar-shifted form. But I still had to do a lot more searches with various options. The searches did turn up the short initial word, and the longer word at position 23 (relative to starting at 0). With the position 23 word in place, the hill-climber got the exact solution. I’ll include a screenshot of the word/phrase search options.

Vigenere running key
RALPO HUAFO VRKBG MIEML LUFIY NGRYC FSHIQ YDRVF JVXHS WYKF

caesar-shifted crib: NRZXYHTSKJXX

screenshot:

Running key 5-21-19

Here’s a randomly generated Vigenere Running key cipher. I was able to solve it without a crib by using a program that drags a huge list of phrases across the cipher and uses logs of digraphs to score the corresponding plaintext strings. If the log digraph score of a plaintext string is high enough then the string is parsed into individual words (and partial words at the beginning and end of the string). If the parse is successful and one of the plaintext words is long enough then the phrase and corresponding plaintext string is saved to disk.

I set the length of a plaintext word to 7 or more letters. With this setting I got 35 phrase-plaintext pairs out of about 600,000 starting phrases. I used these 35 results as a collection of cribs and was then able to get the solution with a combination interactive and hill-climbing running key solver.

I’ll include a caesar-shifted crib.

Vigenere Running key:
KASHA EFOHA TIFMW OEZLV ANYLR ITROO OKFMR SDUMQ CRKLI ZDHRF AZUJH LLL

crib: FYYFHMRJSY

Incidentally, the new version of the phrase dragging program is written in javascript, with the node.js javascript framework supplying disk input/output. I recently bought a new Chromebook (a Pixelbook actually) and discovered it had a setting for activating Linux. I clicked on the “setup Linux” button and in about two minutes I had a Linux terminal running. I used the terminal to install node.js and was eventually able to run my phrase dragging program using Linux.