EMBEDDED
53 • SETTEMBRE • 2014
71
SOFTWARE
CRITTOGRAFIA
nella crittografia dei dati possono essere di tipo pubblico, come
il “capostipite” DES (Data Encryption Standard) , il triplo DES
(3DES), il più moderno AES (Advanced Encryption Standard),
o proprietario, come RSA (Rivest Shamir Adleman, dai nomi dei
ricercatori americani che lo brevettarono nel 1983). La chiave
è una stringa di centinaia di bit che seleziona una tra le molte
cifrature potenziali e consente di eseguire la crittazione e la
decrittazione; un messaggio può essere decrittato solo se la
chiave di decifratura si “accoppia” con quella di cifratura.
Per alcuni algoritmi le due chiavi sono uguali, mentre per altri
sono diverse. In base a questa sostanziale differenza gli algoritmi
basati sullo utilizzo di chiavi si dividono in algoritmi “simmetrici“
(dettianche“achiavesimmetrica”o“achiavesegreta”)e“asimme-
trici“ (detti anche “a chiave asimmetrica” o “a chiave pubblica”).
Gli algoritmi simmetrici sono quelli usati dalla crittografia clas-
sica ed essi permettono al mittente e al destinatario di usare la
medesima chiave per rispettivamente crittare e decrittare un
messaggio.
I sistemi a chiave simmetrica possono essere utilizzati per
implementare servizi di sicurezza quali: riservatezza, integrità,
autenticazione.
La riservatezza protegge l’informazione da un accesso non
autorizzato. Spesso la protezione riguarda solo il corpo del
messaggio e non la testata, trasmessa in chiaro per sem-
plificare l’instradamento del messaggio fino al destinatario.
L’integrità garantisce che l’informazione non venga alterata e
che il messaggio arrivi esattamente come è stato spedito. Per
implementare questo servizio si usano tecniche combinate di
cifratura e controlli algoritmici (tipo checksum, CRC e così
via). L’autenticazione serve a prevenire la dissimulazione degli
utenti; consente al vero mittente di includere nel messaggio
informazioni che lo identifichino con certezza.
Gli algoritmi simmetrici hanno però dei punti deboli. In primo
luogo, due corrispondenti devono
essere in possesso della stessa
chiave, che deve essere conse-
gnata telematicamente a entram-
bi prima che possa iniziare una
comunicazione tra i due. Inoltre
al crescere degli utenti di servi-
zio il numero di chiavi aumenta
rendendo problematica la loro
gestione e distribuzione. Un altro
punto debole è la difficoltà di
implementare un servizio di “non
ripudio” del messaggio (cioè nes-
suno dei due corrispondenti, che
condividono chiavi segrete, è in
grado di provare a un terzo che
un certo messaggio è stato effetti-
vamente generato dall’altro).
Questi problemi sono risolti dalla
crittografia a chiave
pubblica (PKI, Public
Key Infrastructure)
con algoritmi a chiave
asimmetrica. Le tec-
niche asimmetriche
utilizzano coppie di
chiavi complementa-
ri invece di una sola
chiave segreta. Un
singolo utente possiede una coppia univoca di chiavi comple-
mentari; di esse, una è una chiave pubblica, nel senso che può
essere conosciuta da tutti, ed è usata per cifrare il messag-
gio, mentre l’altra è una chiave privata ed è tenuta al sicuro
dal suo proprietario di modo che solo lui possa utilizzarla.
Le due chiavi sono create in maniera tale che un messaggio
cifrato da una delle due può essere decifrato solo e soltanto
dall’altra. In pratica, se si vuole spedire un messaggio a una
certa persona, si critta quel messaggio con la sua chiave
pubblica, e si è sicuri che soltanto quella persona potrà deci-
frarla con la propria chiave privata; neanche la chiave pub-
blica utilizzata per cifrare riuscirà a decrittare il messaggio.
Il vantaggio principale offerto dalla crittografia asimmetrica
sta nella facilità di gestione delle chiavi; non occorre infatti
scambiarsi segretamente chiavi di cifratura con il rischio che
esse possano essere intercettate, in quanto basta inviare a un
corrispondente la propria chiave pubblica per essere sicuri di
essere gli unici a poter decifrare un eventuale messaggio cifrato
con essa.
Anche gli algoritmi asimmetrici hanno dei punti deboli, basati
essenzialmente sulla loro complessità e lentezza intrinseca. Nel
caso in cui si debbano crittare grandi volumi di dati, la crittogra-
fia asimmetrica impiegherebbe per tale operazione un tempo di
gran lunga maggiore rispetto a
quello impiegato da un algoritmo
simmetrico; inoltre, se il messag-
gio è diretto a più destinatari, la
cifratura asimmetrica va ripetuta
per ogni destinatario.
In generale la crittografia è molto
intensiva da un punto di vista
computazionale, e se non cor-
rettamente gestita può riflettersi
pesantemente sull’utilizzo della
CPU dei sistemi embedded che
utilizzano di frequente questa tec-
nica. Per affrontare questo pro-
blema, la soluzione spesso usata
è quella di adottare un sistema
di cifratura combinato simme-
trico-asimmetrico, in modo da
ottenere i vantaggi di sicurezza
Fig. 1 – La macchina Enigma
Fig. 2 – Struttura base dell’algoritmo AES: cifratu-
ra (a sinistra) e decifratura (a destra)