vanitasvitae / EnigmAndroid

Android implementation of the famous Enigma machine
https://blog.jabberhead.tk/enigmandroid/
GNU General Public License v3.0
16 stars 8 forks source link

Mix and Match rotors and reflectors from different Enigma models #7

Closed DonaldTsang closed 7 years ago

DonaldTsang commented 9 years ago

See GCC geocache tool as a comparison.

DonaldTsang commented 9 years ago

Geocache Calculator I meant to say

vanitasvitae commented 9 years ago

I think I will add kinda universal machine, but since I dont think this would be THAT useful, this wont be implemented in near future. I'll have to implement all Enigma models first.

DonaldTsang commented 9 years ago

And also allowing to add as much rotor wheels as you wish (max is 7 for Geocache Calculator).

vanitasvitae commented 9 years ago

That wont be so easy due to the way I implemented the stuff for now. I will nevertheless try it :)

DonaldTsang commented 9 years ago

Okay thanks.

DonaldTsang commented 9 years ago

www.cryptomuseum.com/crypto/enigma/g/a28.htm www.cryptomuseum.com/crypto/enigma/uhr/index.htm www.cryptomuseum.com/crypto/enigma/ukwd/index.htm www.cryptomuseum.com/crypto/enigma/lf/index.htm

These would be a challenge... For the future...

vanitasvitae commented 9 years ago

Afaict, the a28 is the same as the g31, but smaller. The UKWD is already implemented. You can use it with Enigma model D. The Uhr and Lückenfüllerwalze are pretty interresting though. Thanks for the links :)

DonaldTsang commented 8 years ago

Found a way to generate rotor anti-tables for any custom rotors. For an array input, make the output array Out[n] = the position of the number n in In[n]

vanitasvitae commented 8 years ago

Yes I wrote a little script that does the same. Very comfortable. I can enter rotors like "MTNCZ..." and it prints "new Integer[]{table}, new Integer[]{anti-table}". May I include it into the repo?

DonaldTsang commented 8 years ago

If you add an option to import or create+save your own rotors with custom "rotor clicks" and reflectors, then that will be awesome! Also, if you are going to allow custom n-rotor machine, only allow beta and gamma to be the last rotor.

DonaldTsang commented 8 years ago

E.g. You can select an N-rotor machine, and Beta and Gamma (or the lack of it) are only in rotor (N+1), while all other rotor models can be put anywhere. Also, Entry rotors (or the lack of it) should be allowed to mix and match as well.

DonaldTsang commented 8 years ago

Extra note: The number of ways you can plug in 10, 11 and 12 cables are in the ratio of 22:30:15

vanitasvitae commented 8 years ago

Thats a nice idea. I will see, what I can do, but I am busy right now because I have to learn for exams :/ However, pull requests are welcome ;)

DonaldTsang commented 8 years ago

Could you also write a piece of psuedocode explaining how the algorithm works, so i can rewrite it in my own programming language?

vanitasvitae commented 8 years ago

I will see, if I find time for that anytime soon. Right now I'm still busy :/ If you know how to code Java, you can take a look at the package enigma. In there are most "core parts" which mimic the mechanical parts. Otherwise take a look on the wikipedia article :)

vanitasvitae commented 8 years ago

@DonaldTsang I just wrote a small wiki page about how the enigma works. I hope that helps you a little programming it in your own language.

vanitasvitae commented 7 years ago

won't fix