vuoi
o PayPal
tutte le volte che vuoi
Tesina - Premio maturità 2009
Titolo: la macchina enigma
Autore: Sighinolfi Alessandro
Descrizione: simulazione grafica schemattizando i componenti principali
Materie trattate: Informatica
Area: tecnologica
Sommario: informatica:programmazione
Presentazione tesina Sighinolfi Alessandro
Scopo del progetto: programma che emuli il funzionamento della macchina Enigma attraverso una
schematizzazione grafica dei componenti e relativo sito internet.
Schema sito internet:
Pagina di presentazione
Con slideshow 3d di
cooliris
pagina principale Programma completamente creato
da me in flash 10 ActionScript 2.0
Pagina secondaria :link di
scaricamento della presentazione in
powerpoint
Nozioni relative alla macchina Enigma
Introduzione:
La macchina Enigma è sicuramente lo strumento che ha più inciso nella 2° guerra mondiale.
L'uso da parte tedesca ha permesso la strategia della guerra lampo. Poiché era basata sulla velocità
e precisione delle operazioni militari la necessità di una coordinazione, veloce e segreta ,divenne
ancora più primaria .
Il sistema crittografico di Enigma è polialfabetico , ed è basato su un innovativo sistema
meccanico.
Fu sviluppato da Arthur Scherbius e venne considerato un sistema inviolabile per molto tempo.
La storia , però, mostrerà il contrario e toccherà alla Polonia e in particolar modo a Marian
Rejewsky e ad Alan Turing dimostrarlo.
Principi di funzionamento della macchina enigma.
La macchina Enigma è schematizzabile in vari componenti :
Il panello a prese multiple
Il pannello a prese multiple si trova tra la tastiera e il primo rotore.
Il pannello consente al mittente di scambiare due lettere prima della loro
immissione nel rotore attraverso dei cavi con spinotto. Ad esempio, si poteva
utilizzare un cavo per collegare le prese B e A del pannello a prese multiple,
cosicché quando si voleva criptare B, l’impulso elettrico giunto ai rotori
avrebbe seguito il percorso della A e viceversa. L'operatore di Enigma aveva
in dotazione sei cavi che gli consentivano di scambiare sei coppie di lettere
simultaneamente (come il numero dei scambiatori il numero dei cavi
aumenteranno nel corso della guerra).
I rotori o scambiatori
Un'unità scambiatrice (o rotore) cifra la lettera trasformandola nel corrispondente elemento del
crittogramma (testo cifrato); più nel dettaglio diciamo che lo scambiatore è la
parte più importante della cifratrice e consiste in uno spesso disco di gomma
attraversato da una fitta rete di fili provenienti dalla tastiera. Questi fili entrano
nello scambiatore e dopo un percorso formato da vari gomiti emergono dalla
parte opposta. Lo schema interno dello scambiatore determina in pratica un
alfabeto cifrante utilizzabile per una semplice cifratura a sostituzione
monoalfabetica.
Il riflessore
Enigma si compone di un altro elemento detto riflessore, che consiste in un
disco di gomma con circuiti elettrici interni simili a quelli dello scambiatore ma
che non ruota e i fili entrano ed escono dallo stesso lato.
Col riflessore installato, quando si digita una lettera ,il segnale elettrico passa
attraverso i 3 rotori, arriva al riflessore e viene rimandato indietro. Quindi il
segnale elettrico passa di nuovo nei rotori ma lungo un nuovo percorso .
Prima di usare la macchina un operatore doveva:
1. Prendere i tre rotori da usare per quel dato giorno;
2. Inserirli nella macchina nell'ordine indicato;
3. Regolare i rotori sulla tripletta di lettere indicate nella chiave enigma di quel giorno;
4. Configurare le spine di scambio lettere come stabilito dalla chiave enigma di quel giorno.
A questo punto la macchina era pronta a cifrare o decifrare un messaggio.
Parte di codice significativa:
Questo codice è relativo al panello a presa multipla la funzione cavi(nu) e richiamata al premere
del bottone corrispondente.
La funzione è
richiamata solo bottone
dai bottoni in
alto
var giapremuto:Boolean;
gli array ”entra “ e “uscita “ memorizzano le varie istanze dei bottoni
entra = new Array(primo, secondo, terzo, quarto, quinto, sesto);
uscita = new Array(uno, due, tre, quattro, cinque, sei);
presa=new Array(0,1,2,3,4,5);
la disposizione dei collegamenti è memorizzata in “presa[]” un vettore che come indice ha gli
ingressi e come contenuto l'uscita corrispondente all'ingresso .
La variabile booleana “giapremuto ” indica lo stato del panello , su false ,significa che i cavi
sono tutti collegati ,al premere del bottone bisognerà scollegarne uno.
Mentre se è true significa che un cavo è stato scollegato e quindi bisognerà ricollegarlo .
Al premere del bottone la prima volta deve sparire il cavo corrispondente , poiché il bottone su cui
si è premuto è un uscita , bisognerà cercare l'entrata (ingr_vecchio) e porla non collegata (cioè 7),
function cavi(nu) {
if (!giapremuto) {
uscita_vecchia = nu;
for (i=0; i<6; i++) {
if (presa[i] == uscita_vecchia) {
ingr_vecchio = i;
}
}
giapremuto = true;
presa[ingr_vecchio] = 7;
ridisegna();
a questo punto viene richiamata la funzione ridisegna per ridisegnare i collegamenti
} else { nel caso bisogna ricollegare un cavo ,viene memorizza l'uscita
uscita_nuova = nu;
for (i=0; i<6; i++) {
if ((uscita_nuova == presa[i])) {
entrata_daripa = i;
trovato = true;
}
tuttavia , all'uscita nuova può corrispondere un altro cavetto , o meglio un altra entrata (entrata
_daripa) if (trovato) {
presa[entrata_daripa] = uscita_vecchia;
presa[ingr_vecchio] = uscita_nuova;
adesso vengono scambiati le uscite e l'entrate , non manifestando alcuna anomalia(ad esempio due
cavetti collegati a una stessa singola uscita )
} else { presa[ingr_vecchio] = uscita_vecchia;
nel caso non venga trovato alcun collegamento significa , che si sta ricollegando lo stesso
ingresso/ uscita ,quindi ritornerà come prima
} }
trovato = false;
ridisegna();
giapremuto = false;
}
}
function inizializza() {
for (i=0; i<6; i++) {
presa[i] = i;
x1 = entra[i];
moveTo(x1._x,x1._y);
x2 = uscita[i];
lineTo(x2._x,x2._y);
}
}
function ridisegna() {
this.clear();
lineStyle(5,0xFF00FF,100);
for (i=0; i<6; i++) {
x1 = entra[i];
moveTo(x1._x,x1._y);
if (presa[i] != 7) {
sup = presa[i];
x2 = uscita[sup];
lineTo(x2._x,x2._y);
}
}
}
lineStyle(5,0xFF00FF,100);
inizializza();
giapremuto = false;
bibliografia:
• codici e segreti di simon sigh editore rizzoli
• www. Wikipedia.it
• http://www.dia.uniroma3.it/~dispense/rota/enigmaMarco.pdf
• http://critto.liceofoscarini.it/index.html
• www.adobe.com
• www.actionscript.it/forum
La macchina Enigma
La macchina enigma
Fu inventata da Arthur Sherbius
È un sistema di automatizzazione della sicurezza
É un sistema crittografico poli-alfabetico
La m.e. appare un sistema ingegnoso di difficile comprensione è
necessario quindi smontarla nelle sue componenti primarie
Un po di teoria....
La crittografia nasce dall'esigenza di offuscare le informazioni
trasmesse in modo che non siano accessibili da terzi. Crittografia
deriva dalla parola greca "kryptos" che significa "nascosto" e
dalla parola greca "gràphein" che significa scrittura.
cifrario a sostituzione monoalfabetica
è un sistema crittografico che utilizza un alfabeto per il testo in
chiaro e una permutazione dello stesso per il testo cifrato. La
permutazione utilizzata costituisce la chiave del sistema. Durante
la cifratura, ad ogni lettera del testo in chiaro viene associata la
corrispondente lettera dell'alfabeto permutato.
I cifrari polialfabetici
si differenziano dai monoalfabetici in quanto un
dato carattere del testo chiaro (p.es. la A) non
viene cifrato sempre con lo stesso carattere, ma
con caratteri diversi in base ad una qualche
regola, in genere legata ad una parola segreta da
concordare.
Chiave: sequenza di caratteri usata in un passo di
crittografazione con un algoritmo appropriato
La macchina enigma
Componenti primari :
La macchina enigma è
composta da tre parti
riguardanti la criptazione
Un panello presa multipla
Rotore
riflessore
Pannello a prese multiple Composto da cavetti
scambiabili fra di loro,
es il segnale indotto
dalla digitazione della a ,
in questa configurazione
verrà codificato come se
fosse una b , e la b
viceversa