Zodiac Discussion Forum

Increasingly random…
 
Notifications
Clear all

Increasingly random cycles in the 408 and 340

27 Posts
6 Users
0 Reactions
6,542 Views
Jarlve
(@jarlve)
Posts: 2547
Famed Member
Topic starter
 

Also, we have touched on the idea of masking P1 repeats by subtly rearranging symbols in a pattern that could disrupt the cycles and cause P19.

Yep smokie18e. I remember you had a very hard time getting away with it. Imagine Zodiac doing that without a computer. And Zodiac hoaxing a period 19 cipher is far-fetched to say the least.

>^DWZI:6>+[OgY`MM
4)Q<$GaW-12c9f80]
;NWF.O8gY,-ZeISUT
<M:.B:G[+>)K4W+1b
Z6`)KWRZ$BI_.A$5
.U>ZZO"0Z`8,9YBb;
N.:.QW&`<IW.[gF/$
+SLV<.,ZV`<`^DID,
1<R[M`#^.aO59Nf*]
)W-Z4cI<`F*Q08Bh>
;5h6[,:Q2GZ9]W`(4
fKSM)1J<..FRZA0N
PIOW-]8Z[Z9V..5S.
7WL>f$C6Z>,M[`:Oe
N<W.[2.BJZ,R6I[G-
acZ#.Dg)%:g:-Z8TV
IA)>W"<`P]fg)Z9M,
R[WI-IG..O:/.WU4<
ZBY4Z)*+><^I&hD`L
B)K(aD/W.]7>)KWR;

AZdecrypt

 
Posted : November 22, 2018 9:26 pm
(@largo)
Posts: 454
Honorable Member
 

The interruption can’t be periodic since my encoding randomization tests finds such stuff easily:

The result is more than clear. Your test is really cool. I think you’ve posted something similar before. I didn’t know that this is built into AZDecrypt and exports .bmp files. (Just found out). Great!

If you flip or mirror z340 and do your test, you’ll get pretty interesting patterns reminiscent of p15/p19 (after rotating the image). Same for z340 even before odd columns. Similar things happen with various test ciphers and I am sure that the disturbed line breaks are the reason. But in no cipher is it as clear as with z340. Do you have an explanation?
Sorry if that’s already been discussed somewhere. As I said, I currently have very little time for z340 and it’s hard for me to follow all the topics.

z340 flipped:

z340 mirrored:

z340 columns even before odd:

By the way: Can you please show me your source code that you use to execute "Stats 2 -> Perfect n-symbol cycles"? How do you do that, with brute force? Thanks in advance!

Translated with www.DeepL.com/Translator

 
Posted : November 25, 2018 12:47 pm
Jarlve
(@jarlve)
Posts: 2547
Famed Member
Topic starter
 

I see Largo. That appears to be a period 33 line. Not sure what to make of it.

By the way: Can you please show me your source code that you use to execute "Stats 2 -> Perfect n-symbol cycles"? How do you do that, with brute force? Thanks in advance!

That is quite a bit of optimization I worked on. Take this 4-symbol cycle example.

For the loops you can do something like this:

's1=cycle symbol 1 by appearance
's2=cycle symbol 2 by appearance
's3=cycle symbol 3 by appearance
's4=cycle symbol 4 by appearance

for s1=1 to symbols
   'continue if s1 has the necessary repeats to make a perfect cycle, if not skip to next s1
   for s2=s1+1 to symbols
      'continue if s2 has the necessary repeats to make a perfect cycle, if not skip to next s2
      for s3=s2+1 to symbols
         'continue if s3 has the necessary repeats to make a perfect cycle, if not skip to next s3
         for s4=s3+1 to symbols
            'continue if s4 has the necessary repeats to make a perfect cycle, if not skip to next s4

         next s4
      next s3
   next s2
next s1

Then in the inner loop the cycles need to be extracted from the cipher. Make a look-up table of the individual positions of each symbol in the cipher first before doing any of the loops:

'cipher() numbered by appearance

for i=1 to length
   table(cipher(i),0)+=1
   table(cipher(i),table(cipher(i),0))+=1
next i

Using this table extract the cycle for s1, s2, s3 and s4. Check all first occurrences/positions of s1, s2, s3 and s4 in the table. The lowest value (position in the cipher of that s#) of these is the s# that is added to the current cycle, say that it is s3. Increment the table position of s3 and check again s1, s2, s3 and s4 in the table. Though only s3 is updated, then s1, s2 and s4 don’t need to be rechecked/updated. Since the table position of s3 is incremented by one, the table positions that are checked are now s1=1, s2=1, s3=2 and s4=1. Keep doing that until all s# are incremented to the last values in the table and then the current cycle is fully extracted.

Then check if the cycle is perfect. But preferably check the cycle for imperfections during the extraction as it can then be short-cut earlier.

'cl=cycle length
'cs=n-symbol cycle size (4 in my example)
'z() contains the current cycle
'if e=1 then the cycle is perfect

e=1
if cl>(cs-1) then
	i=cl-(cs-1)
	for j=i to i+(cs-2)
		for k=j+1 to i+(cs-1)
			if z(j)=z(k) then
				e=0
				exit do
			end if
		next k
	next j
end if

AZdecrypt

 
Posted : November 25, 2018 6:16 pm
(@largo)
Posts: 454
Honorable Member
 

Thank you for the explanation Jarlve. I’ll implement that in peek-a-boo as soon as I find some time.

 
Posted : November 26, 2018 8:23 pm
smokie treats
(@smokie-treats)
Posts: 1626
Noble Member
 

Similar things happen with various test ciphers and I am sure that the disturbed line breaks are the reason. But in no cipher is it as clear as with z340. Do you have an explanation?

z340 flipped:

Largo: What do you mean "the disturbed line breaks"? I don’t think anybody has discussed what you are showing before.

Please clarify what the program does. Does it find periodic positions, which if changed to different symbols, allow for a maximization of cycling, or periodic positions that are disruptors, and if deleted, allow for maximization of cycling, or something else? I see above for 340 flipped period 33 and period 52. It looks very interesting. Is this not unusual?

 
Posted : November 26, 2018 10:19 pm
Jarlve
(@jarlve)
Posts: 2547
Famed Member
Topic starter
 

@smokie, the test does not delete, it replaces the tested segment with random symbols. It does that many times and counts how many times it improved the n-symbol cycle score. Plus added normalization for segment length etc.

It outputs 2 different maps, the difference is normalization and one is more sensitive than the other.

Mirror the 408 and one of the maps has the same problem:

AZdecrypt

 
Posted : November 26, 2018 11:54 pm
Jarlve
(@jarlve)
Posts: 2547
Famed Member
Topic starter
 

Here is a row order offset progression of cycle measurements of the 408:

Row offset order 4 means that the cipher is shifted 4 rows downwards. The idea is to roughly locate were a mass of "encoding randomization" occurs. In other words, where the cycles are more random. The Y-axis is sigma multiplied by 100.

– Decreasingly random cycles peak for the 408 at offset 11. That is because the bulk of the encoding randomization is located roughly in the last 11 lines or so, which is now put on top of the cipher due to the row order offset operation.

And here is the same row order offset progression for the 340:

– Decreasingly random cycles also peak at offset 11. Per this test it could be stated that the mass/bulk of "encoding randomization" is located roughly in lines 10 to 18.

AZdecrypt

 
Posted : December 1, 2018 1:07 pm
(@jelberg)
Posts: 63
Trusted Member
 

Does the encoding step that AZD uses to create the heat maps produce the weird 31 or 32 length (depending on how you look at it) artifacts? Or are they from the cipher?

 
Posted : December 1, 2018 1:24 pm
Jarlve
(@jarlve)
Posts: 2547
Famed Member
Topic starter
 

@Jelberg,

I think it is noise. Here is map 1 and 2 side by side:

And with 3-symbol cycles, map 1 and 2 side by side again:

AZdecrypt

 
Posted : December 1, 2018 2:01 pm
(@largo)
Posts: 454
Honorable Member
 

Largo: What do you mean "the disturbed line breaks"? I don’t think anybody has discussed what you are showing before.

"Disturbed" isn’t the proper word. Something went wrong with the translation. Better would be "displaced" or "interrupted".
Let’s take the following 100% cyclic cipher:

ABCDE
FABCD
EFABC
DEFAB
CDEFA

In this cipher you have a perfect cycle of "ABCDEF". If you mirror it, it is still cyclic. But since the line ends don’t match anymore, the cycle is interrupted.

EDCBA
DCBAF
CBAFE
BAFED
AFEDC

Now after every fifth character there is an interruption of the cycle. I think that might be the reason for the pattern I showed before. At least I don’t have another explanation yet.

Row offset order 4 means that the cipher is shifted 4 rows downwards. The idea is to roughly locate were a mass of "encoding randomization" occurs. In other words, where the cycles are more random. The Y-axis is sigma multiplied by 100.

I had a similar idea a few days ago and wanted to ask you if you could test it. However, I wouldn’t have shifted the rows, but used 0-339 as start position. Doesn’t that give a more homogeneous result?

 
Posted : December 1, 2018 7:35 pm
Jarlve
(@jarlve)
Posts: 2547
Famed Member
Topic starter
 

I had a similar idea a few days ago and wanted to ask you if you could test it. However, I wouldn’t have shifted the rows, but used 0-339 as start position. Doesn’t that give a more homogeneous result?

Yes. But it is gradual enough not? And since I ran the test manually it would have meant going through 339 increments.

AZdecrypt

 
Posted : December 1, 2018 9:17 pm
(@largo)
Posts: 454
Honorable Member
 

Yes. But it is gradual enough not? And since I ran the test manually it would have meant going through 339 increments.

Yeah, it should be gradual enough. I didn’t know the test was done manually. Of course one would not want to do it 340 times.

 
Posted : December 2, 2018 8:57 pm
Page 2 / 2
Share: