The Zygalski's sheets


Enigma Home Page

The 1938 system indicator and females

When the indicator system of 1938 was introduced, the Poles discovered a phenomenon which enabled them to find the Walzenlage (the order of rotors) and the Ringstellung.

As we have seen, the pairs of letters for indicator 1 and 4, 2 and 5 and 3 and 6 belong independently to three cycles. If one of the pairs is made up of identical letters, this corresponds to a cycle of one unit. The Poles called them "females". This phenomenon is not possible for every Grunstellung. The probability of having a female is only around 40%. Cycle theory tells us that having a female at a given Grundstellung or not happens independently of the Steckers.

The Zygalski’s Sheets

The Polish Zygalski imagined a method using perforated sheets (a hole corresponding to the presence of a female) superimposed (one sheet for each female found in traffic) until there is more than one hole valid for the stacking. This last hole corresponds to a plausible solution of the Ringstellung of the middle and right rotors. Furthermore, for a given Walzenlage, all the Ringstellungs of the left rotor must be tested by making a new stack each time. Thus, a sheet corresponds to a Walzenage (for example: III-II-I) and to one of the Grunstellung of the left rotor (for example H) and includes all possible Grundstellung of the middle and right rotors (26x26) but at the Ringstellung ZZZ.

The position of each hole (a female) is calculated using the Cyclometer in the absence of turnover, the latter depending on the Ringstellung.

Look for females in traffic

grd indicator		Grds	Turnover?
===================		(for ?-?-II)
ZGN ZQE-ZTM	01	ZGN		No
SRF CRR-SRV	02	SRG		No
AWK BAC-IRC	03	AWM		No		
VYG SHF-YGF	04	VYI		No	
BTR JWR-WZR	05	BTT		No
NHL CIL-NQL	06	NHN		No		
OLF QKT-WQT	07	OLH		No
JVQ BOY-OYY	08	JVS		No
FTA BFM-FFT	09	FTB		Yes
YDF VXT-VFF	10	YDF		No
UXT FTY-FUC	11	UXT		No
OTQ JYR-JMZ	12	OTQ		No
WJG SHK-ARK	13	WJI		No	

Note: The FTA grundstellung should not be taken if a Walzenlage is tested with the wheel II in the right position. We recall that the wheel II turns the middle wheel when it goes from E to F.

Using my Zygalski’s sheets

We assume that we test the Walzenlage III-I-II (we must test all Walzenlage).

Making Zygalski’s sheets with the cyclometer

(They are the same as for the catalog of Rejewski but I keep only the lines which contain cycles of lengths 1 (females).

$ mkdir sheets
$ python3 cyclometer.py -W III,I,II | grep '^1-' > sheets/312.txt
Create the menu (the file which contains grunds)
Note: I add the grunds as I try.
$ cat grunds.txt
ZGN
SRG
AWM
VYI
BTT
NHN
OLH
JVS
YDF
UXT
OTQ
WJI

With only 3 females, there are too many solutions (1369).
$ python zygalski.py III,I,II grunds.txt sheets/312.txt  |wc -l
1369

With only 7 females, there are again too many solutions (43).
$ python zygalski.py III,I,II grunds.txt sheets/312.txt  |wc -l
43

With only 8 females, there are many solutions but (20), 
it becomes possible to treat them.
$ python zygalski.py III,I,II grunds.txt sheets/312.txt  |wc -l
20

With 10 females, there are only 2 solutions. We can start
to test them.
$ python zygalski.py III,I,II grunds.txt sheets/312.txt
CGY
JSY

With more females, there is only one solution left.
$ python zygalski.py III,I,II grunds.txt sheets/312.txt
JSY

Conclusion

We have found the Walzenlage (III,I,II) and the Ringstellung (JSY). All that remains is to find the steckers. When we have found them all, we can decipher all the indicators and find the twice encrypted message keys.

References

Netz simulator