2. Storia della Macchina Enigma
Con la mia classe, 3 INFO B assieme al professor Distefano, abbiamo visto il film
“The Imitation Game” dove parlano della Macchina Enigma. Uno strumento in grado
di trascrivere in carta testo cifrato, realizzato dall’ingegnere tedesco Arthur Scherbius
nel 1918. Tuttavia lo scopo in sé è innocuo, ma viene radicalmente prodotto in massa
per scopi militari a causa della Marina tedesca. E così viene utilizzato durante la
Seconda Guerra Mondiale dai tedeschi per inviare messaggi cifrati delle loro missioni
e in questo modo il conflitto internazionale nei primi anni è a loro favore. Solo nel
1941 l’Inghilterra ha nelle sue mani una versione della macchina Enigma e nonostante
sapesse il suo uso, non riescono a cambiare nulla. Allora decidono di istituire a
Bletchley Park un gruppo di matematici in grado di decifrare i messaggi del nemico
comune. Qui Alan Turing, un matematico geniale con un passato triste, realizza uno
dei primi elaboratori elettronici in grado di decodificare i messaggi cifrati con l’aiuto
di piccoli suggerimenti, quali alcuni parti di testo già a conoscenza. Grazie alla
Macchina Enigma i tedeschi erano vicini a vincere la guerra, ma grazie alla speranza e
alla solidarietà degli Stati in Guerra contro il nemico comune e soprattutto al gruppo
di matematici tra cui Alan, la Germania perde ancora.
3. Come funziona EnigmApp
Questo è il diagramma di flusso della
Macchina Enigma che abbiamo
studiato in classe con il professor
Distefano. In sostanza funziona così:
la prima cosa che ci troviamo a
dover fare è inserire il messaggio che
vogliamo cifrare; come seconda cosa
bisogna inserire un numero intero da
1 a 26 (lettere dell’alfabeto) e
successivamente altri due diagrammi
si occuperanno della parte tecnica in
cui il nostro testo viene cambiato in
uno differente che mediante la
codifica negativa visualizzeremo il
messaggio decifrato. Infatti infine
vedremo il testo codificato.
4. Il diagramma di flusso di “CheckCar” riceve da
“TrasformaFrase”, in char i caratteri da
codificare e controlla se sono maggiori di ‘z’ o
minori di ‘a’. Nel primo caso allora il carattere
si sposterà di 26 posti da destra a sinistra e nel
secondo di 26 posti da sinistra a destra. Così
che la lettera di default si trasformi in quella
codificata. Inoltre questo programma verifica
che le lettere ogni qualvolta dovessero
superare la lettera z di ritornare all’inizio.
Infine si vedrà, appunto, il testo codificato.
5. Il diagramma di flusso di “TrasformaFrase” riceve in
String la frase originale, ovvero quella da codificare e il
numero che servirà per decodificare successivamente
tale frase. Dopodiché si copiano le lettere della
fraseOrig in un array di char perché solo così il
programma può lavorare sui singoli caratteri. Allora si
imposta una variabile contatore che parte da 0 fino ad
arrivare alla lunghezza della fraseOrig così da continuare
il processo. Se la variabile è minore della frase la prima
lettera verrà controllata e verificata. Prima se fa parte
dell’alfabeto e solo dopo si aggiunge il numero della
codifica così da sostituire tale lettera alla successiva. Poi
viene controllata da “CheckCar”, infine si aumenta il
conteggio della variabile così da passare al controllo
della prossima lettera. Quando non c’è una lettera ad
essere controllata, ma al suo posto qualsiasi altro
carattere in automatico si passa a verificare il prossimo
caratere. Se la lunghezza della fraseOrig è minore della
variabile I allora si copiano i caratteri in String fraseTrasf.
Questo perché il programma Eclipse funziona in questo
modo e non riesce a visualizzare automaticamente la
frase composta dall’array di caratteri. Alla fine ritorna
fraseTrasf.