Descrizione
La macchina Enigma è oramai passata alla storia per via del suo utilizzo durante la seconda guerra mondiale da parte dell’Asse formato da Germania, Italia e Giappone. L’esercito tedesco in particolare ha utilizzato Enigma fin dall’inizio della guerra per proteggere le proprie comunicazioni. A loro insaputa però, prima i polacchi, tra cui ricordiamo Marian Rejewski, Henryk Zygalski e Jerzy Rozicki, e successivamente, e successivamente gli Alleati di Bletchley Park, tra cui ricordiamo Alan Turing, Gordon Welchman, John Jeffreys e Dilly Knox, riuscirono a trovare dei meccanismi per rompere la macchina Enigma e riuscire a leggere le comunicazioni tedesce.
In questo video mostro come implementare il funzionamento logico della macchina Enigma tramite il linguaggio di programmazione C.
Timestamps
00:00:00 Introduzione
00:08:15 Creazione Makefile
00:10:46 Descrizione di Enigma
00:24:00 Header-only library
00:29:52 Strutture dati principali
00:41:30 Funzioni principali
00:45:27 API principale – enigma_encrypt() enigma_decrypt()()
00:47:40 Loop principale – apply_enigma()
00:58:03 Riflettore – apply_reflector()
01:00:00 Plugboard – apply_plugboard()
01:05:40 Rotori – apply_rotors()
01:08:05 Rotore – apply_rotor()
01:12:04 Movimento – move_rotors()
01:21:33 Funzioni per inizializzare la memoria
01:23:35 init_enigma()
01:26:04 Riflettore – init_reflector()
01:29:15 init_wiring()
01:29:50 reverse_wiring()
01:32:20 Rotore – init_rotor()
01:35:20 Esempio – simple.c
01:41:30 Conclusione
Riferimenti / Materiale
- Github: GitHub - LeonardoE95/enigma-machine: Enigma Machine in C
- Movimento: https://www.youtube.com/watch?v=ds8HoowfewA
- Double Step 1: https://www.youtube.com/watch?v=5StZlF-clPc
- Double Step 2: https://www.youtube.com/watch?v=hcVhQeZ5gI4
- Wirings: Enigma wiring