The use of the key can be enabled/disabled in each of the screens independently by changing the jump address. If the key is pushed in any of the three screens, the current settings are zeroized back to the default values (1,2,3,1,1,1,1,4,3,2,1). While in F1 or F2 mode, pushing the numeric keys has no effect. Pushing again exits to the main screen and the machine is ready to encrypt with the current settings. There are no restriction on the ring settings, repeats are fine. Once the rotors are correctly set, pushing changes the 2 right digits to F2. If the rotor types do not use the values 1,2,3 in any order exactly once, EE is shown on the 2 right digits. To accept the rotor type settings, push again. The reflector cannot be changed and is shown as 0. The usual up/down keys can be used to change them. The values shown on the rotors are now the rotor types. While on the main screen (00 on the right 2 digits), push the button and the 2 right digits change to F1. The KIM-1 monitor is an unavoidable bootloader that is necessary to enter the program and get it running.Ī full featured user interface was written that allows the user to change the machine settings on the fly without exiting to the KIM-1 monitor. Those routines and their dependencies add 150 bytes of code for a total of 610 bytes of our own code and dependencies as per the contest rules. It uses the KIM 1 GETKEY and SCANS routines at $1F6A and $1F1F. The basic program uses 460 bytes of code including the rotor substitution and default value tables. The left rotor is always a reflector, so its type cannot be set. The default machine settings, Rotor Types 1,2,3, Ring settings 1,1,1,1 and Starting position 4,3,2,1 are copied to memory location 0050 where they can be examined and changed to encrypt. The remaining keys, 0.9 when pressed, are encrypted. The next two rows below that have 4 keys each and are used to move the rotors up and down one step. Those cannot be read within a running program. The top row of keys start and stop a running program. I did not find a way to read that the key is still pressed, so the result is cleared after one second or if another key is pressed. On a normal enigma machine, the lamps will be lit for as long as the key is pressed. The key and its encrypted result will be shown for 1 second on the right two digits and the screen will then return to 00. The rotors will be advanced and the key encrypted. Since 0 can never encrypt to 0, this was chosen to represent the machine is ready to encrypt. The rotors will be shown on the left and 00 on the right. To use the Kim Uno Enigma Z30 machine, enter and execute the program. The decrypted numbers will be illuminated in the lamp field. To decrypt the numbers, the machine is re-set to the same starting position and the encrypted sequence typed. This results in the sequences: 0088 0089 0090 08890 8901 9002 9003 and is known as the double stepping anomaly.Ī key will never encrypt to itself. The rotor on the right always moves one step. When set at 1, a rotor at the 9 position will increment the rotor to its left when the next key is pressed. This sends electricity back through a different path through the rotors and out to the lamps.Įach rotor, including the reflector has a ring setting that controls the stepping position for that rotor. The leftmost rotor is a reflector, it receives a signal on the right and returns it through another pin on the right. The keys are wired to a stationary set of contacts on the right which send electricity in through the right contacts of the rotor and out through its left side contacts into the next rotor. When a key is pushed, the rotors are first advanced, then electricity is sent through the rotor maze and it comes out to illuminate a lamp. The Z30 machine has 4 settable rotors that show the numbers 0 thru 9 one at a time through a window, a keyboard with 10 keys numbered 0.9 and 10 lamps above the keys. "Enigma Z30 retrieved", Anders Wik, Cryptologia Vol. Fortunately, a very rare numbers only model, called the Enigma Z30 exists.Įnough information was published by Anders Wik to make this reconstruction attempt possible. This is not enough for a regular enigma machine which encrypts letters A through Z. On top, it has a cluster of 7 segment displays where 6 numbers can be displayed, 4 on the left and 2 on the right. The Kim Uno has a hexadecimal keyboard and 8 control keys. Thus the idea was born to write a program to simulate an Enigma Machine in 6502 assembly language. I wanted to create my own without rolling out a custom PCB. Most of the enigma machine simulators out there use LED displays and buttons mounted in a PCB. The Kim Uno was feeling lonely when all of a sudden a new Hackaday.IO challenge came out, create a program in less than 1kB of code.
0 Comments
Leave a Reply. |
AuthorWrite something about yourself. No need to be fancy, just an overview. ArchivesCategories |