The Rejewski's Catalog


Enigma Home Page

The 1930 indicator system

The indicator of each message corresponds to the first six letters of the message. For example "WKK LKM". It matches the twice encrypted message key.

The catalog, description

There is a catalog for each Walzenlage. A catalog contains the cycles for each Grundstellung.

  We have these indicators:
  PCI-FXX  PQK-FNM   FDN-PMJ 
  For the couple of letters 1-4, we have:  P->F-P, then we have a cycle of
  length 2:  PF

  For these indicators:
  WKK-LKM  LFV-ZFD  ZZE-ROO  RGV-CSD  CVF-EGV  EFW-WFT
  We have W->L->Z->R->C->E-W, then we have a cycle of length 6: WLZRCE

These cycles are independent of the steckers. Conversely, the letters appearing in the cycles depend on the steckers and allow them to be deduced. It is interesting to classify the lines of a catalog according to the length of the cycles.

Here is an extract from a catalog sorted by Grundstellung:

lenght of the cycles, cycles, walzenlage, ringstellung, grundstellung
13-13 TQKUHBYWZOMSI:XVGFNARCEDLPJ IV,I,II ZZZ AAA

1-1-1-1-11-11 CHFXOGSQDNM:AKTJURIZEYV:L:B:W:P IV,I,II ZZZ AAB

13-13 VXZIMJNDTHSQB:LCWEURKPOFYGA IV,I,II ZZZ AAC

3-3-10-10 QYKGXSMHZF:UPLNEOWJDA:VCR:TBI IV,I,II ZZZ AAD

1-1-1-1-1-1-1-1-9-9 HIWOBETUF:LXPJAGQNR:K:Y:C:V:Z:M:D:S IV,I,II ZZZ AAE

Using the Catalog

First we extract all the indicators from the messages of the day. Then we deduce the cycles Finally we search in a catalog (we assume the known or supposed Walzenlage) the Grundstellung compatible with the cycle lengths found in traffic. If the number of Grundstellungs is low, they can be tested in turn, otherwise the Catalog method cannot be used alone to find the key. Example:

1) Here are the indicators found

WKK-LKM     DRF-DRV     ZZE-ROO     JPY-JTP     UQD-UNG     SQW-INT
TUZ-THQ     UNN-UYJ     YNM-BYK     NKG-KKC     AGO-ASE     URU-URS
PCI-FXX     YJF-BCV     YMD-BWG     VPG-VTC     OJM-OCK     XFC-SFN
WMM-LWK     HYZ-HUQ     KYA-NUL     HDC-HMN     WTW-LVT     ZME-RWO
WEI-LAX     NJW-KCT     LLB-ZPU     LFV-ZFD     GYH-GUB     LNX-ZYF
PQK-FNM     KGC-NSN     DYI-DUX     NUB-KHU     UII-UZX     EFW-WFT
HNT-HYW     ELR-WPA     XTH-SVB     NUM-KHK     EGY-WSP     OMD-OWG
PMX-FWF     DES-DAR     PIA-FZL     AYJ-AUI     AXJ-AQI     RIK-CZM
TKV-TKD     SCB-IXU     BZA-XOL     OAM-OIK     PPL-FTY     XOJ-SLI
UBQ-UBZ     IMD-MWG     FDN-PMJ     VMW-VWT     LAL-ZIY     NYH-KUB
QFS-QFR     BZK-XOM     ADH-AMB     VLM-VPK     UDR-UMA     XDZ-SMQ
PRJ-FRI     DTZ-DVQ     NTW-KVT     RLS-CPR     UCX-UXF     WYB-LUU
MPS-YTR     XKW-SKT     LLR-ZPA     IWA-MJL     IJF-MCV     NSG-KEC
KAN-NIJ     UTU-UVS     HNK-HYM     FPT-PTW     RGV-CSD     QXH-QQB
CVF-EGV     QSC-QEN     ARO-ARE     FTW-PVT     ILM-MPK     AHZ-ADQ
AHX-ADF     BVM-XGK     XIH-SZB     JPG-JTC     GSD-GEG     AHE-ADO
YWT-BJW     RNI-CYX     LXG-ZQC     KFU-NFS

2) We deduce the following cycles

a - Couple 1-4 :
WLZRCE, MYBXSI, PF, NK, T, H, U, Q, A, D, G, J, O, V
Length of the cycles : 
1-1-1-1-1-1-1-1-1-1-2-2-6-6
b - Couple 2-5:
AIZOLPTVGSE, CXQNYUHDMWJ, B, F, K, R
Length of the cycles: 1-1-1-1-11-11
c - Couple 3-6 :
HBUSRALYP, CNJIXFVDG, EO, KM, QZ, TW
Length of the cycles: 2-2-2-2-9-9

3) Search for compatible grundstellungs

Assume that the Walzenlage of the month is III-I-II. We are looking for grundstellung compatible:

a - Couple 1-4 :

$ grep '^1-1-1-1-1-1-1-1-1-1-2-2-6-6' catalog/catalog_312.txt
1-1-1-1-1-1-1-1-1-1-2-2-6-6 CWOUSL:APJYHD:QV:EX:R:K:I:G:F:N:M:B:Z:T III,I,II ZZZ FZQ
1-1-1-1-1-1-1-1-1-1-2-2-6-6 EWUFXV:AZYPON:TR:MH:Q:J:S:K:L:C:G:I:B:D III,I,II ZZZ IWZ
1-1-1-1-1-1-1-1-1-1-2-2-6-6 YPMXRT:IZCELV:KN:BF:G:W:A:O:U:H:S:Q:J:D III,I,II ZZZ NFN
1-1-1-1-1-1-1-1-1-1-2-2-6-6 DGCIZE:JSALRT:VH:WB:N:P:U:F:X:K:Y:M:O:Q III,I,II ZZZ WQW
b - Couple 2-5
There are 733 possible grundstellungs.

c - Couple 3-6
There are 183 possible grundstellungs

We base ourselves on the 4 grundstellung of the couple 1-4 and we therefore make 4 assumptions compatible:

Grund :  FZQ, FZR, FZS : 
$ awk '/FZQ$/{ print $0;getline;print $0;getline;print $0}' catalog/catalog_312.txt 
1-1-1-1-1-1-1-1-1-1-2-2-6-6 CWOUSL:APJYHD:QV:EX:R:K:I:G:F:N:M:B:Z:T III,I,II ZZZ FZQ
1-1-12-12 QZMGNCWLDJUH:YTEROBXSIVPF:K:A III,I,II ZZZ FZR
13-13 ITFGBHNWYPCEZ:XJDRAOSKUQLMV III,I,II ZZZ FZS

Grund :  IWZ, IWA, IWB
$ awk '/IWZ$/{ print $0;getline;print $0;getline;print $0}' catalog/catalog_312.txt
1-1-1-1-1-1-1-1-1-1-2-2-6-6 EWUFXV:AZYPON:TR:MH:Q:J:S:K:L:C:G:I:B:D III,I,II ZZZ IWZ
1-1-1-1-2-2-4-4-5-5 CNBYQ:ZHAFG:VXPO:TJRD:SI:ME:U:W:K:L III,I,II ZZZ IWA
13-13 HXEISUBFYKTQD:NJZCRPALMWVOG III,I,II ZZZ IWB

Grund : NFN, NFO, NFP
$ awk '/NFN$/{ print $0;getline;print $0;getline;print $0}' catalog/catalog_312.txt
1-1-1-1-1-1-1-1-1-1-2-2-6-6 YPMXRT:IZCELV:KN:BF:G:W:A:O:U:H:S:Q:J:D III,I,II ZZZ NFN
1-1-1-1-11-11 JZVXMGDNHYU:OLCBRSAWEQT:I:F:P:K III,I,II ZZZ NFO
2-2-2-2-9-9 NJZRQXDFW:BHYPLUATI:EO:CG:SV:KM III,I,II ZZZ NFP

Grund : WQW, WQX, WQY
$ awk '/WQW$/{ print $0;getline;print $0;getline;print $0}' catalog/catalog_312.txt
1-1-1-1-1-1-1-1-1-1-2-2-6-6 DGCIZE:JSALRT:VH:WB:N:P:U:F:X:K:Y:M:O:Q III,I,II ZZZ WQW
1-1-1-1-11-11 QSMJGXNOKEB:PVYDHZLTFUA:R:W:C:I III,I,II ZZZ WQX
13-13 VDQZIJNPCSBUL:OYWRFXEMKTAHG III,I,II ZZZ WQY

Only the third hypothesis (NFN) corresponds to the cycles found.

We know part of the key: Walzenlage: III-I-II (if it was a hypothesis, it is confirmed. Ringstellung / Grundstellung: ZZZ / NFN . We will be able to know the real Ringstellung when we decipher messages.

Find the steckers

Cycles can help us: Cycles of length 2:

Couples 1-4: in the catalog: PF, NK, in the traffic: BF, KN
Deductions: N,F,K are self-steckered and we have the stecker BP.

Couples 3-6: in the catalog: EO, CG, SU, KM, in the traffic: EO, KM, QZ, TW Deductions: E,O are self-steckered

Cycles of length 1 :

Couples 2-5: in the catalog: I, F, P, K, in the traffic: B, F, K, R
Deductions: F,K are self-steckerd and we have the steckers BP and IR

Couples 1-4:
In the Catalog: G, W, A, O, U, H, S, Q, J, D
In the traffic: T, H, U, Q, A, D, G, J, O, V
These letters are not in the other list: W,S and T,V. Then we can deduce two plausible steckers: ST, VW or SV, WT.

Then, we have: N,K,E,O,F are self-steckered and two steckers: BP and IR

We decipher the indicators (with only the two steckers BP and IR):
1) URU-URS => JFX-JFM, 
   With ST,VW: JFX JFX 
   With SV,WT: JFX JFK, then the correct steckers are: ST and VW
We add ST and VW:
2) UNN-UYJ => JVA-JVA,
3) YNM-BYK => CVW-CVW,       
4) YJO-BCV => CAG-CWB,
5) AGO-ASE => GQG-GUG,
...

I know all the steckers when all indicators deciphered give the same key twice.

We let the reader discover the last two steckers.

Find the ringstellung

We can find the ringstellung of the right wheel and the middle wheel by deciphering the messages.

Example: Here is a little message to decipher (with the indicator).

  URUUR SQWND WRYXQ IEQPT JBJOH ELJPA OERFG DYKLH FXZXP QGBWX
  YLAHQ VFLCY UKWD

Catalog creation

The catalog is created with the Cyclometer. Here is an example of creation using my simulator (for UKW B [by default]):

$ python3 cyclometer.py -U B -W I,III,II > catalog/catalog_132.txt

Download the catalog (for UKW A)

Rejewski's Catalog (TAR)