In cryptography, Fialka (M-125) is the name of a Cold War-era Soviet cipher machine. A rotor machine, the device uses 10 rotors, each with 30 contacts along with mechanical pins to control stepping. It also makes use of a punched card mechanism. Fialka means "violet" in Russian. Information regarding the machine was quite scarce until c. 2005 because the device had been kept secret.

Fialka contains a five-levelpaper tape reader on the right hand side at the front of the machine, and a paper tape punch and tape printing mechanism on top. The punched-card input for keying the machine is located on the left hand side. The Fialka requires 24 volt DC power and comes with a separate power supply that accepts power at 100 to 250 VAC, 50–400 Hz.

The machine's rotors are labelled with Cyrillic, requiring 30 points on the rotors; this is in contrast to many comparable Western machines with 26-contact rotors, corresponding to the Latin alphabet. The keyboard, at least in the examples of East German origin, had both Cyrillic and Latin markings. There are at least two versions known to exist, the M-125-MN and the M-125-3MN. The M-125-MN had a typewheel that could handle Latin and Cyrilic letters. The M-125-3MN had separate typewheels for Latin and Cyrilic. The M-125-3MN had three modes, single shift letters, double shift with letters and symbols, and digits only, for use with code books and to superencrypt numeric ciphers.

The Fialka rotor assembly has 10 rotors mounted on an axle and a 30 by 30 commutator (Kc 30x30). The commutator consists of two sets of 30 contact strips set at right angles to each other. A punched card is placed between the two sets of contacts via a door on the left hand side of the unit. Each punched card has 30 holes, with exactly one hole per row and column pair, and thereby specifies a permutation of the 30 rotor contact lines. This feature is comparable to the plug board on the Enigma machine. A triangular plate was used to enter the null permutation for testing purposes.

There are two types of rotors:

disassemblable (zerlegbar) rotors, used with M-125-3MN. Rotorset name is "PROTON." The disassemblable rotors consisted of an insert with electrical contacts and scramble wiring, and an outer ring with mechanical pins whose presence or absence controlled rotor stepping. As part of the key setup, the stepping control pins could be rotated relative to the outer ring. The inner, electrical ring could also be rotated relative to the outer ring and could be inserted in one of two ways, with side 1 or side 2 up.

unitary rotors, used with M-125-MN. These had both electrical contacts and mechanical pins. The only key adjustment was the order of the rotors on the axle and the initial rotor settings. There was one combination for the disassemblable rotors that was compatible with the unitary rotor. One East German manual that has become public contains typed-in and hand written addenda that suggest the East Germans, at least, later stopped using the added features of the disassemblable rotors and only used them in unitary compatibility mode.

Adjacent rotors step in opposite directions. A spare rotor assembly was kept in unit's top cover.

The keying material for the Fialka consists of a daily key book, a message key book and a message identifier book for broadcast traffic. The daily key book contains day keys for one month. A day key consists of a key table (in Cyrillic) and a punched card. For fixed rotor systems, the key table specifies the order of the rotors on the axle and the initial rotor settings to be used to decrypt the indicator of broadcast messages. As its name implies, the day key is valid (has a cryptoperiod in NSA parlance) for 24 hours and was changed at 00:01 hours. For the disassemblable rotors, the table also specifies the electrical insert for each outer rotor, which side was to be up, and the orientation of the insert relative to the outer rotor. Here is a sample M-125-3NM day key table for use on the 14th of the month:

ИДЖЗА ВКБГЕ 14

OCAHE PTБВЕ

БДВИА ГЕЗКЖ

2II22 I22I2

КУЛКЮ ЫХВУГ

The message key table contained the initial rotor settings to be used with each message. A message key was never to be used more than once. The keying material was distributed in a foil-covered package, with the daily key tables and punched cards fan-folded in a pouch with perforations between each item. The other tables were in a side pouch.

The Fialka design seems to derive from the Swiss NEMA, but the NEMA only has 5 electrical rotors vs. the Fialka's 10 and NEMA lacks a punched card commutator or an equivalent, such as a plug board. Fialka seems most comparable to the U.S. KL-7. KL-7 has eight electrical rotors and also lacks a commutator, but its keyboard permutor switch eliminated the need for a reflector, which proved to be a weakness in the Enigma system.