Zodiac Discussion Forum

Is there a need for…
 
Notifications
Clear all

Is there a need for an OpenSource solver?

21 Posts
7 Users
0 Reactions
5,140 Views
(@largo)
Posts: 454
Honorable Member
Topic starter
 

Hi,

I’ve spent a lot of my spare time working on z340 and my tools over the last few weeks. From now on, other things have priority and I will spend less time with z340. I will not stop working on z340, but I have only a limited amount of time. My next attempts will be limited to a lot of automatic tests that can simply run in the background. It doesn’t take much time to implement them. As already mentioned in other threads, I will now concentrate only on simple manipulations and interlocked ciphers.
I have put a lot of work into my solver. Thanks again to Jarlve who gave me a lot of good tips and always had time for questions. Now it would be a pity if this work could not be used by others.
Long story short: Are there people here who are interested in the source code? I am willing to share my work on github or bitbucket. If so, I would refactor it, comment it, and sweep it in the corners again. However, I only want to make this effort if there is enough interest. I will continue to work on the solver and would be happy if other people could contribute as well.

What exactly does the project offer?

– Solver for homophonic substitutions, developed in C#.
– For a 340 character long cipher with 500000 iterations about 480 milliseconds are needed to find a usable solution (i7 8700 single thread).
– The solverate is between 25 and 80% per restart, depending on the complexity of the cipher (one restart takes the 480 milliseconds just mentioned).
– I support multithreading, but have little experience in this area. My code works and many solves can be done in parallel. However, my implementation may not be the most skillful.
– There is source code that can be used to automatically create nGram files from any text source. You only have to specify a list of text files, the rest is done automatically. This is useful if you want to create your own nGram corpus.
– So far only 5grams are supported. I have deliberately refrained from keeping the code generic. I don’t like that, but it gives a huge performance gain.

Before I clean up my source code, writing comments and create a public git repository: Is anybody interested?

 
Posted : October 4, 2018 12:06 am
doranchak
(@doranchak)
Posts: 2614
Member Admin
 

I would be interested in this. I think it is a good idea since it may lead to future collaboration with other developers.

http://zodiackillerciphers.com

 
Posted : October 4, 2018 1:49 pm
(@fishermansfriend)
Posts: 132
Estimable Member
 

I can barely use my phone, let alone a computer, but one thing I have yet to see in a solver is a second readout of a key, side by side with the enciphered text.

I feel like we should not only be looking for sense in a deciphered message but also a "sensible" key right next to it, side by side.

Over time, many people have pointed out interesting things about the key for the 408 and I am not sure that we shouldn’t look for visual clues in a potential key for 340.

Let’s say you have a deciphered 340 on the left side of the solver. You see some interesting things but aren’t sure.

Wouldn’t it be great to have a key laid out next to it? In Zodiac font? What if you were able to look at the key and also see another interesting pattern? Like some relation to a keyboard layout, or symmetry of symbols?
Otherwise I think we are only looking at half the problem, using half the available info, and limiting ourselves to search for patterns in only half of the equation.

I also feel like this also needs to be done with a zodiac font visual. Not in code.

Part of me believes very strongly that the computer alone cannot "see" as well as a human.
Especially in terms of recognizing human error in the code.

A simple version might be like Dave’s website solver, but it allows you to replace letters on the left, while it automatically fills in a key on the right.
Maybe on the right side you would be able to limit the length of the # of substitutions, loop them, or do all manually, or randomize…

I know I am out of my depth here but I am obsessed with working on 340 with pen and paper!
(While being jealous of the programmer’s knowledge and abilities!)

FF

 
Posted : October 4, 2018 8:57 pm
 _pi
(@_pi)
Posts: 113
Estimable Member
 

Great idea. I would definitely appreciate the effort. I always had this idea of doing a solver using OpenCL for multi-GPU execution but couldn’t bring myself to build all the boilerplate stuff.

I’m somewhat familiar with C# so this would be an excellent opportunity to try to port it to OpenCL or CUDA. Anyway, no pressure :D

P.S.: Hi guys and girls! Been almost 3 years I think. Been back at it for a while now; needed to clear my head of the z340 :mrgreen:

 
Posted : October 5, 2018 2:30 am
doranchak
(@doranchak)
Posts: 2614
Member Admin
 

Welcome back, _pi! Glad you are here. We could all use a Z340 "purge" from our brains every now and then. :)

http://zodiackillerciphers.com

 
Posted : October 5, 2018 5:36 am
Jarlve
(@jarlve)
Posts: 2547
Famed Member
 

Welcome back _pi and good luck with the project guys.

AZdecrypt

 
Posted : October 5, 2018 10:26 am
(@largo)
Posts: 454
Honorable Member
Topic starter
 

I would be interested in this. I think it is a good idea since it may lead to future collaboration with other developers.

That’s exactly what I’m hoping for. More people == more ideas == more possibilities.

I’m somewhat familiar with C# so this would be an excellent opportunity to try to port it to OpenCL or CUDA. Anyway, no pressure

Hi _pi! I am happy that you want to continue with z340. A GPU solver would really be extremely cool and useful. I will soon refactor the source code and keeping it as slim as possible. So that only the solver core is in the focus.

Doranchak, _pi: Are you familiar with Git/Github?

 
Posted : October 5, 2018 10:16 pm
 _pi
(@_pi)
Posts: 113
Estimable Member
 

That’s excellent news Largo. Thanks a lot in advance for all your efforts with this! This will be very precious.

I am familiar with GitHub so that would be a perfect approach for source keeping.

 
Posted : October 6, 2018 10:51 pm
doranchak
(@doranchak)
Posts: 2614
Member Admin
 

I am also familiar with GitHub and agree it will be a good place to host an open source project.

http://zodiackillerciphers.com

 
Posted : October 6, 2018 11:01 pm
(@anderson110)
Posts: 55
Trusted Member
 

I’m interested. github is a good choice.

 
Posted : October 7, 2018 3:57 am
(@largo)
Posts: 454
Honorable Member
Topic starter
 

I cleaned up the source code, reduced it to a minimum and added comments. Threading, manipulation/transpositions and statistics have been completely excluded. So the focus is now on the core of the solver.
The first two commits are unfortunately in German, because I installed the German version of Visual Studio and it created the commits automatically.

Since I don’t know if people want to contribute to the project, I only created two branches at first: Master and Development.

You need Visual Studio Community 2017 (Windows/Mac) and the .net-Framework 4.7.2. More details can be found in readme.md. The JIT optimizations are only activated in release mode. 500000 iterations need about 450 milliseconds. In debug mode it takes about 1.5 seconds.

I’m really looking forward to your feedback and I would be extremely happy if anyone contributes to the project.
If there are problems starting the source code or if you have other questions, just ask!

https://github.com/Largo75/HomophonicSu … Solver.git

Translated with http://www.DeepL.com/Translator

 
Posted : October 7, 2018 12:47 pm
Jarlve
(@jarlve)
Posts: 2547
Famed Member
 

Looks great Largo!

Your code comments and presentation are amazing.

AZdecrypt

 
Posted : October 7, 2018 1:04 pm
(@f-reichmann)
Posts: 30
Eminent Member
 

I am interested, and am myself, with limited amount of time, on a Java implementation. I do not mind moving to c++.

I began with basically redoing zkdecrypto, more or less getting comparable results using the same concepts, and in the meanwhile I think the algorithms are what counts, and need more mathematical and systematic model work. So that I moved more to pen and paper, and at present am wondering why my theoretical ideas do not work well in practise. Somehow, I hope that the methods developped while trying to break z340 might at the end turn out worth more than breaking it would be.

I’ll download your code, mine in a currently useless version is on github.

How do we discuss algorithms?

 
Posted : October 8, 2018 12:36 am
Jarlve
(@jarlve)
Posts: 2547
Famed Member
 

How do we discuss algorithms?

I suppose they could be discussed in this thread. Doing it here would allow for more people to pitch in. Of course this is Largo’s project and call.

AZdecrypt

 
Posted : October 11, 2018 5:01 pm
(@largo)
Posts: 454
Honorable Member
Topic starter
 

Sorry for the late answer. I am very busy at the moment and only have time on weekends.

How do we discuss algorithms?

I suppose they could be discussed in this thread. Doing it here would allow for more people to pitch in. Of course this is Largo’s project and call.

I agree with Jarlve. There is also the possibility to set up a wiki on github, but why should we split into two places? This forum is just the right place.

Has anyone gotten the sourcecode to work yet and experimented with it?

 
Posted : October 12, 2018 7:19 pm
Page 1 / 2
Share: