Zodiac Discussion Forum

z340: Routes in Qua…
 
Notifications
Clear all

z340: Routes in Quadrants

76 Posts
18 Users
0 Reactions
17.3 K Views
Quicktrader
(@quicktrader)
Posts: 2598
Famed Member
 

Hey,

I do appreciate all work on the 340 cipher.

However it seems a bit that this thread silently made it ‘possible’ to switch from symbols into letters somehow? Without substitution?

If somebody may want to explain, before someone comes up with a perfectly fine cleartext actually resulting from homophones such as ? Or did I miss something?

Because I think this assumed homophone substitution cipher – even if ‘routes in quadrants’ etc. somehow requires substitution as the previous is not really some part of our humanoid alphabet?

QT

*ZODIACHRONOLOGY*

 
Posted : June 10, 2020 4:31 pm
(@4on4off)
Posts: 64
Trusted Member
 

I’ve downloaded the files doranchak. At minimum settings (500,000 iterations 1 restart) it would take 1 month to complete.

Sounds like a job for the old SETI@home Internet- based public volunteer computing project.

 
Posted : June 10, 2020 7:16 pm
Jarlve
(@jarlve)
Posts: 2547
Famed Member
 

@Cragle and doranchak, I will not run through the total package, but will instead save it for later.

However it seems a bit that this thread silently made it ‘possible’ to switch from symbols into letters somehow? Without substitution?

What do you mean?

Best result from 4th part:

Score: 20416.77 IOC: 0.0816 Multiplicity: 0.1852 Hours: 2.97
Repeats: ITLES TTHER THER RSES TERO TTHE TAS THE (2) TAT OST
PT-to-CT cycles: 179

16 16 0 22 3 3 2 2 0 1 1 1 2 

ONEERSDRROREBENNW
ARMACOLLEATHEDTOF
INGINESTHEENNERUN
TIGENALTIESITARTE
RITTHERDASATPAYIS
SEDEOVERNCANALOST
MILEAPOSEITINEFTT
HEROSTTEROLEIDOWE
STIMESROONEATTHEL
ATEROFCRICESINARA
SHMANTASTASITLESS
UTATITLESLEISBEER
DISSPOTATEECHTHER
TOTRYKOSAIDINTHER
SWEALMASOUNGLASID
ERATHFOUROLDTHEGR
OSSIAMWONTSATTERS
ESVIATALINDEETHRS
ESTEDTAKINCTTORPE
RCEASMANDGREENISU

AZdecrypt

 
Posted : June 10, 2020 11:00 pm
Quicktrader
(@quicktrader)
Posts: 2598
Famed Member
 

I mean you have only alphabetical letters – coming from where? The cipher is using homophones, symbols. Just by ‘shuffling’ which direction ever those homophones will always be homophones not letters…? Thus, where happens the step from homophones to letters, is my – possibly naive – question? Is your program transforming AND substituting, which I guess, similar to zdk method? Or only transforming in ‘routes and quadrants’?

QT

*ZODIACHRONOLOGY*

 
Posted : June 11, 2020 2:16 am
Jarlve
(@jarlve)
Posts: 2547
Famed Member
 

I mean you have only alphabetical letters – coming from where? The cipher is using homophones, symbols. Just by ‘shuffling’ which direction ever those homophones will always be homophones not letters…? Thus, where happens the step from homophones to letters, is my – possibly naive – question? Is your program transforming AND substituting, which I guess, similar to zdk method? Or only transforming in ‘routes and quadrants’?

QT

doranchak and me have made big files of many transformations (millions) which are then fed to AZdecrypt.

AZdecrypt

 
Posted : June 11, 2020 10:52 am
Jarlve
(@jarlve)
Posts: 2547
Famed Member
 

Best result from the 5th part:

Score: 20414.69 IOC: 0.0738 Multiplicity: 0.1852 Hours: 8.29
Repeats: NOTE AND STO ALS THE ORA REA TSS ESE EAM SSE RIT
PT-to-CT cycles: 316

18 12 0 12 2 0 0 3 0 0 0 0 1 

HOVOUITERALARGEAT
TEDHIMPORTINHERWI
SMETSINTOCARRYING
ALSEVERNOUTTHETHA
DSTOTALSONEWMISHT
HEESTONAWRITISTIC
CREAMENERAFETOSTE
RWELSASVERSIANOTE
DSEASOTHESEDINGMA
RITREATEAMAILELOP
AUNTSEMISITESEEFI
REAYANIMPAGEARGAD
MAYSOITNOTEYEALSU
PPRESSTSSORRORAHO
URULERWASEATFORCU
TORANTSSETRAMSHEI
DIDSARANDYOUMOSQU
ANDPETESINNALLTOY
SHISANCHEDENSSEVI
NSFLIERRIMOULDNOT

AZdecrypt

 
Posted : June 11, 2020 10:54 am
doranchak
(@doranchak)
Posts: 2614
Member Admin
 

I mean you have only alphabetical letters – coming from where?

When we post blocks that only have the letters A-Z, those are probably the plaintexts generated by AZdecrypt, the solver software. They are candidate substitutions of the inputs, and the inputs are a mix of alphabetic letters and symbols. For these quadrant tests, the input ciphers have been manipulated from the original Z340 based on numerous quadrant layout possibilities.

So the workflow is:
1) Take the Z340
2) Rearrange it based on some quadrant transformation
3) Feed the result into AZdecrypt which tries to solve it as a substitution cipher

Here is an example quadrant transformation from the process I used to make the millions of rearrangements for Jarlve:

Original Z340:

HER>pl^VPk|1LTG2d
Np+B(#O%DWY.<*Kf)
By:cM+UZGW()L#zHJ
Spp7^l8*V3pO++RK2
_9M+ztjd|5FP+&4k/
p8R^FlO-*dCkF>2D(
#5+Kq%;2UcXGV.zL|
(G2Jfj#O+_NYz+@L9
d<M+b+ZR2FBcyA64K
-zlUV+^J+Op7<FBy-
U+R/5tE|DYBpbTMKO
2<clRJ|*5T4M.+&BF
z69Sy#+N|5FBc(;8R
lGFN^f524b.cV4t++
yBX1*:49CE>VUZ5-+
|c.3zBK(Op^.fMqG2
RcT+L16C<+FlWB|)L
++)WCzWcPOSHT/()p
|FkdW<7tB_YOB*-Cc
>MDHNpkSzZO8A|K;+

Quadrant 1:

HER>pl^VP
Np+B(#O%D
By:cM+UZG
Spp7^l8*V
_9M+ztjd|
p8R^FlO-*
#5+Kq%;2U
(G2Jfj#O+
d<M+b+ZR2
-zlUV+^J+
U+R/5tE|D
2<clRJ|*5
z69Sy#+N|
lGFN^f524
yBX1*:49C
|c.3zBK(O
RcT+L16C<

Quadrant 2:

|1LTG2d
Y.<*Kf)
()L#zHJ
pO++RK2
FP+&4k/
CkF>2D(
XGV.zL|
NYz+@L9
BcyA64K
p7<FBy-
BpbTMKO
4M.+&BF
FBc(;8R
.cV4t++
>VUZ5-+
^.fMqG2
FlWB|)L

Quadrant 3:

|FkdW<7tB
>MDHNpkSz

Quadrant 4:

YOB*-Cc
O8A|K;+

Putting quadrants in new order [3, 2, 4, 1]:

Quadrant 1:

|FkdW<7tB
>MDHNpkSz

Quadrant 2:

|1LTG2d
Y.<*Kf)
()L#zHJ
pO++RK2
FP+&4k/
CkF>2D(
XGV.zL|
NYz+@L9
BcyA64K
p7<FBy-
BpbTMKO
4M.+&BF
FBc(;8R
.cV4t++
>VUZ5-+
^.fMqG2
FlWB|)L

Quadrant 3:

YOB*-Cc
O8A|K;+

Quadrant 4:

HER>pl^VP
Np+B(#O%D
By:cM+UZG
Spp7^l8*V
_9M+ztjd|
p8R^FlO-*
#5+Kq%;2U
(G2Jfj#O+
d<M+b+ZR2
-zlUV+^J+
U+R/5tE|D
2<clRJ|*5
z69Sy#+N|
lGFN^f524
yBX1*:49C
|c.3zBK(O
RcT+L16C<

After rotations and flips:

Quadrant 1 after rotate 0 and flip 0:

|FkdW<7tB
>MDHNpkSz

Quadrant 2 after rotate 0 and flip 1:

d2GTL1|
)fK*<.Y
JHz#L)(
2KR++Op
/k4&+PF
(D2>FkC
|Lz.VGX
9L@+zYN
K46AycB
-yBF<7p
OKMTbpB
FB&+.M4
R8;(cBF
++t4Vc.
+-5ZUV>
2GqMf.^
L)|BWlF

Quadrant 3 after rotate 2 and flip 0:

+;K|A8O
cC-*BOY

Quadrant 4 after rotate 0 and flip 0:

HER>pl^VP
Np+B(#O%D
By:cM+UZG
Spp7^l8*V
_9M+ztjd|
p8R^FlO-*
#5+Kq%;2U
(G2Jfj#O+
d<M+b+ZR2
-zlUV+^J+
U+R/5tE|D
2<clRJ|*5
z69Sy#+N|
lGFN^f524
yBX1*:49C
|c.3zBK(O
RcT+L16C<

After concatenation operations [((A concat-right-bottom B) concat-right-bottom C) concat-right-bottom D]:

d2GTL1|HER>pl^VP)
fK*<.YNp+B(#O%DJH
z#L)(By:cM+UZG2KR
++OpSpp7^l8*V/k4&
+PF_9M+ztjd|(D2>F
kCp8R^FlO-*|Lz.VG
X#5+Kq%;2U9L@+zYN
(G2Jfj#O+K46AycBd
<M+b+ZR2-yBF<7p-z
lUV+^J+OKMTbpBU+R
/5tE|DFB&+.M42<cl
RJ|*5R8;(cBFz69Sy
#+N|++t4Vc.lGFN^f
524+-5ZUV>yBX1*:4
9C|FkdW<7tB2GqMf.
^+;K|A8O|c.3zBK(O
>MDHNpkSzL)|BWlFc
C-*BOYRcT+L16C<  

http://zodiackillerciphers.com

 
Posted : June 11, 2020 1:41 pm
Quicktrader
(@quicktrader)
Posts: 2598
Famed Member
 

Understood, thanks.

QT

*ZODIACHRONOLOGY*

 
Posted : June 11, 2020 1:47 pm
Jarlve
(@jarlve)
Posts: 2547
Famed Member
 

Best result of the 6th and final part, it probably is the best result from the entire test:

Score: 20503.04 IOC: 0.0719 Multiplicity: 0.1852 Hours: 8.54
Repeats: HATT TERE EAND ARRE TTH ENT STO ATE ELL ARI THE SON
PT-to-CT cycles: 502

18 12 0 18 2 0 0 3 1 0 0 0 0 

YMAYTELLEANDHISWO
ULDMOISTERSIPARKN
ELLASTOCARREASSNO
WCLUBSINGSTONEEMA
RLSCHORWILLEEDSAT
APPYTOACARATIVESI
TNIKERSTITCHTREAL
OWOUTOITISNOTHEAN
DMAKESTRAWHIMLATE
SOFGALSTIMAREWARI
OVATEINALECOLLEGE
DIUMANBOEARISONHA
TTNOFERTRWTTEREOR
ALIANNTATERLAVENS
ONITTHATTHEDERITA
RUNONMOTINGLYFEAR
RELLITSAINTHERARY
CHUENTTOCALTVSPAT
REMENTERESICKINCE
ONANDRSRIENDARSMI

AZdecrypt

 
Posted : June 11, 2020 11:20 pm
doranchak
(@doranchak)
Posts: 2614
Member Admin
 

@Cragle and doranchak, I will not run through the total package, but will instead save it for later.

However it seems a bit that this thread silently made it ‘possible’ to switch from symbols into letters somehow? Without substitution?

What do you mean?

Best result from 4th part:

Score: 20416.77 IOC: 0.0816 Multiplicity: 0.1852 Hours: 2.97
Repeats: ITLES TTHER THER RSES TERO TTHE TAS THE (2) TAT OST
PT-to-CT cycles: 179

16 16 0 22 3 3 2 2 0 1 1 1 2 

ONEERSDRROREBENNW
ARMACOLLEATHEDTOF
INGINESTHEENNERUN
TIGENALTIESITARTE
RITTHERDASATPAYIS
SEDEOVERNCANALOST
MILEAPOSEITINEFTT
HEROSTTEROLEIDOWE
STIMESROONEATTHEL
ATEROFCRICESINARA
SHMANTASTASITLESS
UTATITLESLEISBEER
DISSPOTATEECHTHER
TOTRYKOSAIDINTHER
SWEALMASOUNGLASID
ERATHFOUROLDTHEGR
OSSIAMWONTSATTERS
ESVIATALINDEETHRS
ESTEDTAKINCTTORPE
RCEASMANDGREENISU

ONEERS DRRORE BENN WARM A COLLEATHED TO FINGINES THE ENNER UNTIGENALTIES IT ARTER IT THER DAS AT PAY IS SEDE OVERN CAN A LOST MILE A POSE IT IN EFT THE ROST TEROLE I DO WES TIMES ROONE AT THE LATER OF CRICES IN A RASH MAN TAST AS IT LESS UTATITLES LE IS BEER DISS POTATE ECH THER TO TRY KO SAID IN THERS WE ALMA SOUNG LASIDERATH FOUR OLD THE GROSSIAM WONTS ATTERSES VIA TAL INDEE THRS ESTED TAKINCT TOR PERCE AS M AND GREEN I SU

Best result from the 5th part:

Score: 20414.69 IOC: 0.0738 Multiplicity: 0.1852 Hours: 8.29
Repeats: NOTE AND STO ALS THE ORA REA TSS ESE EAM SSE RIT
PT-to-CT cycles: 316

18 12 0 12 2 0 0 3 0 0 0 0 1 

HOVOUITERALARGEAT
TEDHIMPORTINHERWI
SMETSINTOCARRYING
ALSEVERNOUTTHETHA
DSTOTALSONEWMISHT
HEESTONAWRITISTIC
CREAMENERAFETOSTE
RWELSASVERSIANOTE
DSEASOTHESEDINGMA
RITREATEAMAILELOP
AUNTSEMISITESEEFI
REAYANIMPAGEARGAD
MAYSOITNOTEYEALSU
PPRESSTSSORRORAHO
URULERWASEATFORCU
TORANTSSETRAMSHEI
DIDSARANDYOUMOSQU
ANDPETESINNALLTOY
SHISANCHEDENSSEVI
NSFLIERRIMOULDNOT

HOVOUITERAL ARGE ATTED HIM PORT IN HER WIS METS IN TO CARRYING ALS EVERN OUT THE THADS TOTAL SO NEW MISH THE EST ON A WRITISTIC CREAMENER A FE TO STER WELS AS VERSIA NOTED SEA SO THESE DING MARITREATE A MAILELOP AUNTS EMISITE SEE FIRE AY AN IMPAGE ARGAD MAY SO IT NOTE YEAL SUPPRESS TS SORROR A HOUR ULER WAS EAT FOR CUT OR ANTS SET RAM SHE I DID SAR AND YOU MOSQUAND PETE SINN ALL TOYS HIS ANCHE DENS SEVINS FLIER RIMOULD NOT

http://zodiackillerciphers.com

 
Posted : June 12, 2020 12:58 am
(@masootz)
Posts: 415
Reputable Member
 

any chance it’s quadrants plus columnar transposition? i’ve been thinking about the "zo^aik" and "by rope, knife, fire, etc" that can be somewhat awkwardly sussed out of the quadrants as a clue towards re-arrangement. as an example, a "clue" could be swap the "i" and "a" columns in "zo^aik" then the ‘k" column with the one after it then rotate down so the "c" makes "zo^iac".

do you guys remember the "15 puzzle game"? it was sort of a flat rubik’s cube.

you would scramble the tiles and then rearrange them in numerical order. is there some way he could have intended to do this that doesn’t go down the rabbit hole of "infinite possibilities, none better than the rest"?

 
Posted : June 12, 2020 5:07 pm
Jarlve
(@jarlve)
Posts: 2547
Famed Member
 

as an example, a "clue" could be swap the "i" and "a" columns in "zo^aik" then the ‘k" column with the one after it then rotate down so the "c" makes "zo^iac".

Nice idea, never thought of that! May be worth to include that variation into transposition tests.

HER>pl^VPk|1TLG2d
Np+B(#O%DWY.*<Kf)
By:cM+UZGW()#LzHJ
Spp7^l8*V3pO++RK2
_9M+ztjd|5FP&+4k/
p8R^FlO-*dCk>F2D(
#5+Kq%;2UcXG.VzL|
(G2Jfj#O+_NY+z@L9
d<M+b+ZR2FBcAy64K
-zlUV+^J+Op7F<By-
U+R/5tE|DYBpTbMKO
2<clRJ|*5T4M+.&BF
z69Sy#+N|5FB(c;8R
lGFN^f524b.c4Vt++
yBX1*:49CE>VZU5-+
|c.3zBK(Op^.MfqG2
RcT+L16C<+FlBW|)L
++)WCzWcPOSH/T()p
|FkdW<7tB_YO*B-Cc
>MDHNpkSzZO8|AK;+

any chance it’s quadrants plus columnar transposition?

You probably mean columnar rearrangement judging from "zo^aik" example. It could be anything really. If you "mix" two things together you also multiply the search space, and we haven’t fully explored the quadrant hypothesis.

AZdecrypt

 
Posted : June 13, 2020 10:50 am
(@largo)
Posts: 454
Honorable Member
 

Hi,

i did a similar test some time ago and i’m pretty sure i documented it here in the forum. However, I cannot find this thread. My sourcecode management shows that I implemented the test on February 16. Well…maybe I wanted to document it and then I forgot it. Absent-mindedness is one of my strengths =)

Anyway…here are my own results again:
My test divided z340 into quadrants. The minimum side length of a quadrant was allowed to be 7. As possible transpositions I used None, Flip, Mirror, Reverse, Rotate Left and Rotate Right. All combinations of possible quadrant sizes and transpositions were created and put into my solver (36288 combinations in total). Unfortunately without result. But my solver is not nearly as reliable as AZDecrypt. Therefore it is great that a similar test is done again. I will search the forum again later, maybe I will find the thread after all.

Period transpositions and diagonal transpositions I had not considered at that time. Rotate Left/Right could be interpreted as "Period Quadrant Height".

This is my source code:

// ------------------------------------------------------------------------------------------------------------------
private static void SolveQuadrantTranspositions()
{
    Console.WriteLine("Attempting to solve quadrant transpositions");

    Cipher cipher = new Cipher();
    cipher.Init(text: cipherText_z340, width: 17, height: 20);

    int minQuadrantWidth = 7;
    int minQuadrantHeight = 7;

    int count = 0;

    Cipher[] quadrantsSource = new Cipher[4];
    Cipher[] quadrantsResult = new Cipher[4];

    HomophonicSolver solver = new HomophonicSolver(nGrams: nGramsHuge);            
    int targetRuns = 8;
            
    for (int i = 0; i < numThreads; i++)
    {
        solversHS[i] = new HomophonicSolver(nGramsHuge);
    }

    for (int x=minQuadrantWidth; x<=17-minQuadrantWidth; x++)
    {
        for (int y = minQuadrantHeight; y <= 20 - minQuadrantHeight; y++)
        {
            // Upper left
            quadrantsSource[0] = cipher.PickRect(0, 0, x, y);

            // Upper right
            quadrantsSource[1] = cipher.PickRect(x, 0, 17 - x, y);

            // Lower left
            quadrantsSource[2] = cipher.PickRect(0, y, x, 20-y);

            // Lower right
            quadrantsSource[3] = cipher.PickRect(x, y, 17-x, 20-y);

            foreach (var c in Toolbox.CombinationsWithRepetion(new int[] { 0, 1, 2, 3, 4, 5 }, 4))
            {
                int current = 0;
                foreach (var n in c)
                {
                    switch (n)
                    {
                        case 0: // Nothing
                            quadrantsResult[current] = quadrantsSource[current];
                            break;

                        case 1: // Flip
                            quadrantsResult[current] = quadrantsSource[current].Flip();
                            break;

                        case 2: // Mirror
                            quadrantsResult[current] = quadrantsSource[current].Mirror();
                            break;

                        case 3: // Reverse
                            quadrantsResult[current] = quadrantsSource[current].Reverse();
                            break;

                        case 4: // Rotate 90
                            quadrantsResult[current] = quadrantsSource[current].RotateRight();
                            break;

                        case 5: // Rotate 270
                            quadrantsResult[current] = quadrantsSource[current].RotateLeft();
                            break;
                    }
                    current++;
                }

                StringBuilder result = new StringBuilder();
                for (int i = 0; i < 4; i++)
                {
                    result.Append(quadrantsResult[i].ToString());
                }


                String cipherText = result.ToString();
                foundBetterSolution = false;

                Thread[] threadPool = new Thread[numThreads];

                int runs = 0;

                bool done = false;

                while (!done)
                {
                    for (int i = 0; i < numThreads; i++)
                    {
                        // Is there an idle thread?
                        if (threadPool[i] == null || !threadPool[i].IsAlive)
                        {
                            runs++;
                            // Yes, then start it                        
                            threadPool[i] = new Thread(() => SolvingThread(threadID: i, cipherText: cipherText));
                            threadPool[i].Start();
                            Thread.Sleep(100);

                            if (runs == targetRuns)
                            {
                                done = true;
                                break;
                            }
                        }
                    }
                }

                done = false;

                while (!done)
                {
                    done = true;

                    for (int i = 0; i < numThreads; i++)
                    {
                        if (threadPool[i].IsAlive)
                        {
                            done = false;
                        }
                    }
                }

                if (foundBetterSolution)
                {
                    Console.WriteLine("Best Score: " + bestScore);
                    Console.WriteLine("Best Solution: n" + bestSolution);
                    Console.WriteLine("Cipher: n" + result);
                    Console.WriteLine("Count: " + count);

                    foreach (var n in c)
                    {
                        Console.WriteLine(n);
                    }
                }

                count++;

                if (count % 100 == 0)
                    Console.WriteLine(count);
            }
        }

    }

    Console.WriteLine(count);
}

Translated with http://www.DeepL.com/Translator (free version)

 
Posted : June 13, 2020 11:56 am
Jarlve
(@jarlve)
Posts: 2547
Famed Member
 

Nice Largo. Feel free to donate the ciphers and I’ll run them through as well.

AZdecrypt

 
Posted : June 13, 2020 1:40 pm
(@largo)
Posts: 454
Honorable Member
 

Thanks, good idea! Same format like in "Zodiac 340 route transposition batch"-file found in AZDecrypt/Ciphers/Batch? Or single files?

 
Posted : June 13, 2020 2:25 pm
Page 4 / 6
Share: