Transmission
of Nov. 15, 2007, 12:00 UTC This is the first transmission received strong enough in Bonn for decoding. I mailed my original result to Tony Sale at 13:14 UTC, and to HNF at 13:42 UTC on Nov. 15, 2007. |
|
Input files: | |
1200UTC/A.mp3 | MP3 of 12:00 UTC recorded audio. Ciphertext is transmitted using historic 6-tone signal. The ciphertext transmission starts at 03:08 min after the beginning of the recording. |
1200UTC/process.sh | Shell script taylored to 16:00 UTC transmission. |
1200UTC/key0.txt | Used to supply wheel patterns to
quick_setting |
Output
files: |
|
1200UTC/Ac.txt | Ciphertext file with some diagnostic data (first two lines omitted on input to quick_setting) |
1200UTC/setting.out | Output of quick_setting, the
actual counterpart to the work of Colossus |
1200UTC/key.txt | New key file with settings found
by quick_setting |
1200UTC/plain.out | The plaintext output |
1200UTC/Ac.trace | A trace file generated with
cryptrace |
Transmission
of Nov. 15, 2007, 16:00 UTC This transmission was received much stronger, and as far as I understand it was also the first that was received in usable quality by the Colossus team in Great Britain. I mailed my original result to Tony Sale and HNF at 16:40 UTC on Nov 15, 2007. |
|
Input files: | |
1600UTC/A.mp3 | MP3 of
16:00 UTC recorded audio. Ciphertext is transmitted with "modern"
two-tone signal. Shift was reversed relative to plaintext header. The
ciphertext transmission starts at 03:24 min after
the beginning of the recording. |
1600UTC/process.sh | Shell script taylored to 16:00
UTC transmission. |
1600UTC/key0.txt | Used to supply wheel patterns to quick_setting |
Output files: | |
1600UTC/Ac.txt | Ciphertext file with some
diagnostic data (first line omitted on input to quick_setting) |
1600UTC/setting.out | Output of quick_setting, the actual counterpart to the work of Colossus |
1600UTC/key.txt | New key file with settings found by quick_setting |
1600UTC/plain.out | The plaintext output |
1600UTC/Ac.trace | A trace file generated with cryptrace |
Transmission
of
Nov.
15, 2007, 17:00 UTC Again a strong signal. There was apparently some problem at DL0HNF and the ciphertext started with some delay. According to the transmission schedule, this was the first Challenge 3 (no wheel settings given) that I could receive. However, I always let the computer search for all 12 wheel settings, so this was no difference to me. I mailed my original result to Tony Sale and HNF at 17:51 UTC on Nov 15, 2007. |
|
Input files: |
|
1700UTC/A.mp3 | MP3 of
17:00 UTC recorded audio. Ciphertext is transmitted with "modern"
two-tone signal. Shift was reversed relative to plaintext header. The
ciphertext transmission starts at 12:56 min after
the beginning of the recording. |
1700UTC/process.sh | Shell script taylored to 17:00
UTC transmission. |
1700UTC/key0.txt | Used to supply wheel patterns to quick_setting |
Output files: | |
1700UTC/Ac.txt | Ciphertext file with some
diagnostic data (first line omitted on input to quick_setting) |
1700UTC/setting.out | Output of quick_setting, the actual counterpart to the work of Colossus |
1700UTC/key.txt | New key file with settings found by quick_setting |
1700UTC/plain.out | The plaintext output |
1700UTC/Ac.trace | A trace file generated with cryptrace |
Sound recording from PC soundcard |
|
sndrec.c | Record raw audio from soundcard. Works under NetBSD. |
Dmodulating
and
decoding
(not decrypting) of audio data into Baudot symbol stream |
|
baudot.ads | Package specification related to Baudot code. |
baudot.adb | Package body related to Baudot code. |
demod.adb | Demodulation of raw audio: Arguments are sample rate, a
window width, and a list of tone frequencies. Output is a list of
ampitude values for each tone. |
discrim.adb | Combines tone amplitudes by performing a weighted sum |
decode.adb | Decodes demodulated signal according to Baudot code. The
patterns of the Baudot symbols are convoluted with the signal. For each
time step, the best matching symbol and its amplitude are listed. |
extract_pll.adb | Extract the symbols and construct the stream of Baudot
symbols by evaluating the peaks in the amplitudes listed by the
decoder. For solid clock recovery of noisy signals, a phase locked loop
(PLL) is used. |
extract_direct.adb | Same as above, but without the PLL. Can be used for analysis
if PLL locks on wrong symbol rate or phase. |
fcut.R ffid.R top23.R |
Some R scripts that help in the
analysis of the digitised audio signals. In particular, the audio tones
can be found through Fourier analysis. A utility function for cutting a
section out of a large audio file is also provided. |
SZ42 crypto and code breaking routines |
|
sz42.ads | Package specification for SZ42 crypto routines |
sz42.adb | Package body, implements the algorithms of the SZ42 machine |
sz42-text_io.ads | Package specification for textual I/O of SZ42 data |
sz42-text_io.adb | Package body for textual I/O of SZ42 data |
score_charts.ads | Package specification for handling of score charts (like top
ten listings) |
score_charts.adb | Package body for the above |
break_lib.ads | Package specification for various cryptographic attacks on
the
SZ42 |
break_lib.adb | Package body for the above. Core of the crypto attacks. |
quick_setting.adb | Progeam that uses the crypto libraries for wheel setting (all
wheels). Breaks Chi setting by successive optimisation of random trial
settings, then does a brute force search for the best Motor settings,
and then breaks Psi settings with random trials again. It does this by
calling the procedures provided by package Break_Lib above. |
cryptor.adb | Program that decrypts (or encrypts) text like the SZ42 |
cryptrace.adb | Program that lists the inner state of the SZ42 for all steps
of a decryption |