Re: CIPHER STRUCTURE
doranchak wrote:Maybe the strong patterns in the original 340 can be ranked by the relative probability, weighted against whatever the shuffle tests show as the distribution of naturally-occurring patterns. Then you'll at least have a sense of which patterns escape the reach of pure randomness.
But the patterns I've introduced by my multiobjective search are arrived at using artificial means (i.e., creating candidate alternative ciphertexts). So the only real ranking we can do is to look at other patterns that might be "unlocked" by our guesses of the wildcard assignments, or by applying a strong solver to each candidate until the correct one is identified.
I don't even know if the approach I'm using is effective, since I haven't applied any test ciphers to it yet.
I'm scoring your ciphers now with up to 6-grams and a very high amount of keys to make sure they are maxed out.
Edit: your ciphers will not be done before I have to go to work. I will make another reply this evening with your results.
doranchak wrote:My view is that we should start simple, and only assume the + is a wildcard. If your solver can deal with those tests, then expand the wildcards to more than one symbol, until the solver can handle all 4 wildcard symbols effectively. Then you'll be fairly confident that you've excluded the hypothesis for the real 340 (or you'll actually crack the damned thing. PLEASE DO THAT!)
Well in this thread we already explored a 340 character part of the 408 with the "+" symbols from the 340 superimposed but that is only 53 symbols. Both ZKDecrypto and AZdecrypt can solve that but the score is quite low because the patterns of text are interrupted and the higher level n-grams cannot lock in as much. I'll make a few ciphers, ranging from 1 to 4 wildcards or so.
By the way I tried something else. I superimposed the 4 suspected wildcards on a 340 part of the 408 and then removed them. Scored this both in ZKDecrypto and AZdecrypt and it didn't catch on. Here is the cipher and the plaintext for which the wildcards were removed also. This is not the plaintext that came out of a solver, it's the actual one.
408 wildcard simulation:
- Code: Select all
ilikkillingpeople
auseitissomucfuni
ismorefunthaillin
gwlameinteforrete
cauemaisthemotdan
geousanimalofallt
okillsoethiggives
ehemtthrillingepe
eceiseenbetterang
ettingyourrocksfi
thagilthestpartfi
tisthatwhedeiwill
berebornnparaicen
dalltheihvekildwl
lbomemyslavesiwil
otgiveoumnamebeca
ueyouwilltr
- Code: Select all
¼ºP//uBºËOR¥ÐX¥BW
GyF°¼HP¹K‚ÑyÅJy^u
˽ÑTÔNQyDµ£S¼·BPO
RAºÌÑEË^LZJÄÒ\ÐHW
žy+ÑG¼KI£°ÑXµ¤S¢
RNIyEÌO¾ÑGBTQS·BL
Ä/P·B¹XEHMuRRËÃZK
УWѵLMÒ¼·BPDR+¥°
NÅEËFZÐOVWIµ+ÔÌ^R
°HI¼DR¸TyÒ\ÄÅ/¹JP
µM¾RuºL£EKH¥GÒIJË
µ¼¾LMÌNA£Z¤ÐËA¼·B
VW\+VTÔO^¥SÒÌuŰD
¤GººIMNË£ÃE/¼ºÆA·
BVXÑWѸF·¾Ã+¹¼A¼º
TµRuÃ+ÄyÑ^SÑWVZÅG
yE¸TyA¼º·LÔ
Then I made a simple change to my solver to remove characters at random in the corpus! This is after I remove all other garbage characters that are not "abcdefg...". I wonder if this idea can be improved, any thoughts?
- Code: Select all
if rnd>0.15 then
'process letter
end if
Then scored the 408 example above and amazingly one of the results came out rather decently, given the circumstances.
- Code: Select all
ilaffallindpeople
auseinatherumhusa
idrourfunshaillan
dwleroistthorvene
meusraihtherostan
drtuoeneralofallt
ofalltoonhaddinth
ehersthrillandspe
rmoistencetssuesd
entindyoursomftha
shedalthohnparthi
sietherwhtteiwill
cesscounspareamen
tallthrihnofilewl
lcoreryslenstiwil
osdansoursarectma
uoyouwilltu
Some catch though, this is one of 300 files, it's not a high scoring one and if you don't know the plaintext... I did this for the 340 and here are the results, I checked them but I really don't know if there is anything. 1. hypothesis has to be correct. 2. wildcards have to be correct.
Results for the 408 and 340 for various percentages of removed characters from the corpus.
Observations for the results of the 408, many returns seemed to have at least the right consonants/vowels in place. I will add something to my solver that after each return records the consonant/vowel of each position to a map by simply adding or subtracting 1. And then see if I can get at least a lock on the consonants/vowels.