Sei sulla pagina 1di 23

Steganography vs.

Cryptography
Andrea Giovanni Nuzzolese
nuzzoles@cs.unibo.it

Sara Pandelli
pandelli@cs.unibo.it

Luca Ungaro
lungaro@cs.unibo.it

22 settembre 2005

Indice
1. Introduzione

Introduzione alla Steganografia


Definizione di Steganografia Cenni storici di Steganografia Obiettivo della Steganografia Definizione di Crittografia Cenni storici di Crittografia Obiettivo della Crittografia

5
5 5 6

Introduzione alla Crittografia

7 7 10

2. Tecniche di Steganografia

Idea di base Modelli Steganografici

12
12 12 13 13

Steganografia iniettiva e generativa Steganografia sostitutiva Steganografia selettiva Steganografia costruttiva 3. Tecniche di Crittografia

12 12

Modelli Crittografici

15
15 16 17 18

Crittografia a chiave segreta o simmetrica Introduzione Crittografia a chiave segreta o simmetrica DES Crittografia a chiave pubblica o asimmetrica Introduzione Crittografia a chiave pubblica o asimmetrica RSA 4. Conclusioni 5. Bibliografia

15

21 22

Indice delle tabelle e delle figure


Immagini
1.1.Griglia di Cardano 1.2.Scitala Lacedemonica 1.3.Disco di Enea 1.4.Macchina Enigma 1.5.Macchina di Lorenz 2.1Rappresentazione di Steganografia iniettiva 2.2Rappresentazione di Steganografia generativa 3.1.Schema di comunicazione con Crittografia simmetrica 3.2.Diagramma dellalgoritmo DES 3.3.P-box e S-box di DES 3.4.Rappresentazione di una comunicazione tramite cifratura a chiave pubblica 5 7 7 10 10 12 12 15 16 17 18 8 9

Tabelle
1.1. Cifrario di Cesare 1.2. Addizione di carattere con il codice di Baudot

1. Introduzione
1.1.

Introduzione alla Steganografia 1.1.1. Definizione di Steganografia


La parola steganografia deriva dall'unione dei due vocaboli greci (stganos - rendo occulto, nascondo) e (grfein - scrittura). Steganografia dunque "la scrittura nascosta" o meglio ancora l'insieme delle tecniche che consente a due o pi persone di comunicare in modo tale da nascondere non tanto il contenuto (come nel caso della crittografia), ma la stessa esistenza della comunicazione agli occhi di un eventuale osservatore, tradizionalmente denominato nemico. 1.1.2. Cenni storici di Steganografia Una vecchia storia, ambientata alcuni secoli prima di Cristo, ci proviene dalle scritture di Erodoto. Il mezzo di scrittura del tempo era costituito da tavolette di legno ricoperte da cera sulla quale si incidevano i messaggi. Un esule greco stabilitosi in una citt persiana, avendo saputo che Xerxes, re dei persiani, voleva invadere la Grecia, nonostante fosse in esilio, trov uno stratagemma per avvisare i suoi compatrioti: sollev la cera da una di queste tavolette, incise la notizia sul legno sottostante e la ricopr di cera. La tavoletta che conteneva la soffiata appariva come inutilizzata, cos riusc ad oltrepassare le ispezioni e a raggiungere i greci. In unaltra storia Erodoto racconta di un nobile persiano che fece tagliare a zero i capelli di uno schiavo fidato al fine di poter tatuare un messaggio sul suo cranio; una volta che i capelli furono ricresciuti, invi lo schiavo alla sua destinazione, con la sola istruzione di tagliarseli nuovamente. Nellantica Cina invece si dipingeva il messaggio su striscioline di seta finissima, che venivano appallottolate e coperte di cera. Per evitare che i messaggi fossero intercettati le palline erano inghiottite dal messaggero. Un altro strumento usato a scopi steganografici erano le griglie di Cardano che non erano altro che fogli di materiale rigido nei quali venivano ritagliati fori rettangolari ad intervalli irregolari. Questa griglia veniva appoggiata su un foglio di carta bianca, il messaggio segreto veniva scritto nei buchi (ciascun buco poteva contenere una o pi lettere), dopodich si toglieva la griglia e si cercava di completare la scrittura del resto del foglio in modo da ottenere un messaggio di senso compiuto, il quale poi veniva inviato a destinazione.

Immagine 1.1 : Griglie di Cardano

Quella delle cifre nulle era unaltra tecnica steganografica che consisteva nellinserire il messaggio nascosto in un altro messaggio di testo. Fu usata nella seconda guerra mondiale, 5

in particolare per comunicazioni via radio. I messaggi trasmessi venivano registrati e poi filtrati in modo opportuno per ricavare il messaggio nascosto. Tecnicamente il messaggio trasmesso veniva composto in modo tale che, unendo le prime lettere di ogni capoverso o con altre tecniche, si ottiene un messaggio di senso compiuto. Il seguente, ad esempio, un testo realmente inviato da una spia tedesca durante la seconda guerra mondiale : Apparently neutrals protest is thoroughly discounted and ignored. Isman hard hit. Blockade issue af fects pretext for embargo on by products, ejecting suets and vegetable oils. Considerando in sequenza la seconda lettera di ogni parola : Apparently neutrals protest is thoroughly discounted and ignored. Isman hard hit. Blockade issue af fects pretext for embargo on by products, ejecting suets and vegetable oils. si ottiene il messaggio : Pershing sails from NY June 1 (anche se in realt c una r di troppo e la i alla fine viene interpretata come 1). Altro antico mezzo steganografico costituito dagli inchiostri invisibili. Gli antichi romani usavano sostanze come succhi di frutta, latte e urine per scrivere messaggi segreti. Quando queste sostanze venivano riscaldate, divenivano leggibili. Gli inchiostri invisibili sono stati usati anche nella II guerra mondiale. La tecnica dei micropunti fotografici fu inventata dal direttore dell F.B.I. durante la seconda guerra mondiale, si tratta di fotografie della dimensione di un punto dattiloscritto che, una volta sviluppate e ingrandite, possono diventare pagine stampate di buona qualit. Anche oggi la steganografia viene utilizzata come veicolo politico-militare. Ad esempio, nel famoso quotidiano americano USA Today del 10 luglio del 2002 si legge: Ultimamente al-Queda ha inviato centinaia di messaggi nascosti in fotografie digitali sul sito eBay.com. Molti dei messaggi sono stati inviati da caf pakistani e librerie pubbliche di tutto il mondo. . .. E ancora: Ufficiali americani dicono che amazon.com contiene messaggi segreti nelle sue immagini e nei suoi testi (pratica conosciuta come steganografia). Essi affermano che i messaggi contengono istruzioni per i nuovi attacchi di al-Queda.

1.1.3. Obiettivo della Steganografia


Questi pochi ma significativi esempi dovrebbero essere sufficienti a chiarire il concetto di steganografia, il quale viene spesso confuso, in prima analisi, con quello di crittografia. Per rendere pi esplicite le differenze tra questi due concetti possiamo osservare che, mentre nel caso della crittografia consentito al nemico di rilevare, intercettare e modificare i messaggi senza per avere la possibilit di violare le misure di sicurezza garantite dallo specifico sistema crittografico (cio senza poter accedere all'informazione vera e propria e quindi leggerne il contenuto), l'obiettivo della steganografia invece quello di nascondere un messaggio dentro un altro messaggio, dall'aspetto innocuo, in modo che il nemico non possa neppure rilevare l'esistenza del primo messaggio.

1.2.

Introduzione alla Crittografia

1.2.1. Definizione di Crittografia Il termine crittografia, invece, una parola composta che deriva dal greco antico: (kryptos - segreto) e (grfein - scrittura ), ovvero scrittura segreta. Dall'etimologia della parola gi possiamo dedurre la necessit sin dall'antichit di cifrare nascondere le informazioni scritte. Oggi la crittografia una scienza che fornisce un set di tecniche per la codifica, e successiva decodifica di messaggi, che quindi possono essere trasmessi segretamente. 1.2.2. Cenni storici di Crittografia Le pi antiche notizie sicure sono probabilmente quelle sulla scitala lacedemonica , data da Plutarco come in uso dai tempi di Licurgo (IX sec a.C.) ma pi sicuramente usata ai tempi di Lisandro(verso il 400 a.C.). Consisteva in un bastone su cui si avvolgeva ad elica un nastro di cuoio; sul nastro si scriveva per colonne parallele all'asse del bastone, e lettera per lettera, il testo segreto. Tolto il nastro dal bastone il testo vi risultava trasposto in modo regolare ma sufficiente per evitare la lettura senza un secondo bastone uguale al primo. Tra il 360 e il 390 venne compilato da Enea il tattico, generale della lega arcadica, il primo trattato di cifre il cui XXI capitolo tratta appunto di messaggi segreti. In questo viene descritto un disco sulla zona esterna del quale erano contenuti 24 fori,ciascuno corrispondente ad una lettera dell'alfabeto. Un filo, partendo da un foro centrale, si avvolgeva passando per i fori delle successive lettere del testo: all'arrivo, riportate le lettere sul disco, si svolgeva il filo segnando le lettere da esso indicate: il testo si doveva poi leggere a rovescio. Le vocali spesso erano sostituite da gruppi di puntini. In questo stesso periodo vennero ideati codici cifrati indiani ed ebraici utilizzati in particolar modo per celare nomi propri, innominabili o sacrileghi. Numerosi testi e documenti greci antichi contengono tratti cifrati, specialmente nomi propri, ma si trovano anche interi scritti cifrati con sostituzione semplice e con alfabeti generalmente a numero.

Immagine 1.2 : scitala lacedemonica

Immagine 1.3 : disco di Enea

Svetonio nella Vita dei dodici Cesari racconta che Giulio Cesare usava per le sue corrispondenze riservate un codice di sostituzione molto semplice, nel quale la lettera chiara veniva sostituita dalla lettera che la segue di tre posti nell'alfabeto: la lettera A sostituita dalla D, la B dalla E e cos via fino alle ultime lettere che sono cifrate con le prime come nella tabella che segue (che fa riferimento all'odierno alfabeto internazionale).

Chiaro Cifrato

A D

B E

C F

D G

E H

F I

G J

H K

I L

J M

K N

L O

M P

N Q

O R

P S

Q T

R U

S V

T W

U X

V Y

W Z

X A

Y B

Z C

Tabella 1.1 : Cifrario di Cesare

Prendendo come esempio la frase Auguri di buon compleanno si otterr il seguente messaggio cifrato: Chiaro Cifrato auguridibuoncompleanno dxjxulglexrqfrpsohdqqr

Pi in generale si dice codice di Cesare un codice nel quale la lettera del messaggio chiaro viene spostata di un numero fisso di posti, non necessariamente tre; un esempio il codice che sempre secondo Svetonio era usato da Augusto, dove la A era sostituita dalla B, la B dalla C e cos via. Poich l'alfabeto internazionale composto da 26 caratteri sono possibili 26 codici di Cesare diversi dei quali uno (quello che comporta uno spostamento di zero posizioni) dar un cifrato uguale al messaggio chiaro iniziale. Il cifrario di Jefferson prende il nome dal suo inventore Thomas Jefferson (1743-1826), uno degli autori della Dichiarazione d'Indipendenza e Presidente degli USA nel 1801-1804. Il codice di Jefferson un metodo di cifratura meccanico basato su un cilindro di circa 15 cm di lunghezza e 4 cm di larghezza montato su un asse e sezionato in 36 dischi uguali (25 nella versione poi utilizzata dagli Americani, 20 nel cilindro di Bazeries). Sull'esterno di ciascuna ruota sono scritte le 26 lettere dell'alfabeto, equidistanti l'una dall'altra. L'ordine in cui sono disposte le varie lettere non corrisponde a quello naturale e varia da ruota a ruota. Il messaggio in chiaro deve essere cifrato a blocchi di 36 lettere ciascuno (qualora l'ultimo blocco presenti meno di 36 lettere, esso deve essere completato con lettere nulle); la chiave di cifra un numero che va da 1 a 25. Supponendo che il testo chiaro sia La missione in Polinesia fallita e la chiave sia il numero 5, in una certa riga, non importa quale, si comporr il messaggio in chiaro (omettendo naturalmente gli spazi); il crittogramma corrispondente andr letto sulla quinta riga sopra quella che contiene il blocco in chiaro. La decifratura avviene con il procedimento inverso; si compone il messaggio e si legge il testo chiaro nella quinta riga sotto. Dalla met del XIX secolo l'uso della crittografia assume un ruolo determinante nella trasmissione di messaggi di carattere logistico e strategico. Con l'invenzione della radio i messaggi sono trasmessi anche via etere e quindi esposti molto pi di prima all'intercettazione da parte del nemico; il ricorso alla crittografia diventa inevitabile, come la necessit di cifrari sempre pi sofisticati. Una necessit che ignorata in Italia dove si dovr attendere l'entrata in Guerra nel 1915 per rendersi conto del ritardo accumulato in campo crittografico, e porvi rimedio. Tra i metodi usati nella Grande Guerra si possono ricordare:

o Playfair cipher (1854) : cifrario poligrafico composto da digrammi. o Cifra campale germanica (1918) : una variante del cifrario poligrafico Playfair cipher o Il cifrario bifido di Delastelle : Il cifrario bifido di Delastelle un cifrario poligrafico basato sulla matrice 5x5 usata per la prima volta nella scacchiera di Polibio Il cifrario di Vigenere ha il suo tallone d'Achille nel fatto di essere un insieme di cifrari di Cesare intercalati a distanza fissa, cosa che ne rende possibile e anzi molto facile la crittanalisi, tanto pi se la chiave breve. Ben diversa sarebbe per la situazione se la chiave avesse lunghezza infinita o, che in fondo lo stesso, fosse lunga come il testo chiaro (o meglio come la somma di tutti i testi chiari). questa l'idea proposta da G.S.Vernam nel 1926 per il cifrario che porta il suo nome; viene generata una chiave del tutto casuale, e dunque imprevedibile, lunga come il testo; a questo punto il chiaro e la chiave vengono "sommati" proprio come nel cifrario di Vigenere. L'unica differenza che nel Vernam si sommano non tanto gli ordinali delle lettere da cifrare ma i singoli bit che codificano la lettera nei codici usati nelle telecomunicazioni (allora il codice Baudot, oggi il codice ASCII) con l'operazione logica XOR. Questa simile all'addizione, ma ha il vantaggio di essere reversibile, e quindi verr usata anche per decifrare. In tal modo la debolezza del Vigenere superata e anzi Claude Shannon, il padre della Teoria dell'Informazione, ha dimostrato nel 1949 che ogni cifrario "teoricamente sicuro" un cifrario di Vernam (e viceversa). Infatti se la chiave totalmente casuale e lunga come il testo allora il testo cifrato non contiene alcuna informazione sul testo chiaro, ed del tutto al sicuro dagli attacchi della crittanalisi statistica. Per avere una sicurezza assoluta non si dovrebbe mai riutilizzare la stessa chiave; se si utilizza pi volte la stessa chiave infatti questa torna ad essere pi breve del messaggio, o meglio della somma di tutti i messaggi e il cifrario non pi perfetto. Per questo motivo questo tipo di cifrario viene detto a chiave non riutilizzabile. chiaro c A T T E N Z I O N E 11000 00001 00001 10000 00110 10001 01100 00011 00110 10000 chiave k W I A P F I L K M S 11001 01100 11000 01101 10110 01100 01001 11110 00111 10100 cifrato c XOR k 00001 01101 11001 11101 10000 11101 00101 11101 00001 00100 T P W Q E Q H Q T {sp}
Tabella 1.2 : Addizione di caratteri con il codice Baudot

Nella prima met del XX secolo cominciarono a diffondersi macchine cifranti a rotori, sul modello del cilindro di Jefferson reinventato da Beziers. La pi celebre di queste macchine l'Enigma inventata nel 1918 dal tedesco Arthur Scherbius e adottata dall'esercito e dalla marina tedesca fino alla seconda guerra mondiale. L'Enigma una macchina simmetrica, nel senso che se la lettera A cifrata con la G in una certa posizione del testo allora nella stessa posizione la G sar cifrata con la A. La stessa macchina serve quindi per cifrare e decifrare; una grossa comodit operativa che per anche una debolezza crittografica. La macchina ha al suo interno un certo numero di rotori (nella prima versione erano 3) collegati elettricamente e liberi di ruotare; quando l'operatore preme un tasto p.es. la A un segnale elettrico passa da rotore a rotore fino al rotore finale detto il riflettore e quindi torna indietro fino a mostrare una lettera illuminata che il carattere cifrato. Non esiste possibilit di stampa, dunque l'operatore deve copiare a mano, carattere per carattere il messaggio cifrato da trasmettere. 9

La chiave dell'Enigma la disposizione iniziale dei rotori; questa chiave veniva cambiata ogni 24 ore secondo una regola prefissata; in definitiva la vera chiave segreta era questa regola. Anche i collegamenti interni dei rotori sono segreti. Inoltre i tre (o pi) rotori possono essere scambiati tra di loro, e quindi vi sono n! (3! = 6 nella Enigma originale) disposizioni possibili, cosa che aumenta il numero di posizioni iniziali possibili. Era anche consigliato di tenere una scorta di rotori con cablaggi diversi, in modo da poter aumentare ancora il numero di combinazioni possibili. I tedeschi usarono anche altri cifrari durante la guerra; in particolare gli alti comandi tedeschi, usarono una macchina telescrivente realizzata dalla ditta Lorenz che a differenza dell'Enigma usava 32 caratteri codificati con il codice Baudot, che era gi un codice binario, nel senso che ogni carattere era codificato con 5 bit (0 o 1); la macchina si ispirava direttamente al cifrario di Vernam, considerato il cifrario perfetto. Secondo le idee base del Vernam ogni carattere del messaggio era scomposto nei suoi 5 bit, che venivano sommati in modo binario (in pratica con un connettivo XOR) con i bit del corrispondente caratterre della chiave (detta anche sequenza oscurante). Secondo Vernam la chiave dovrebbe essere indefinitamente lunga e del tutto casuale; a queste condizioni il Vernam inattaccabile, ma c' la grossa difficolt di comunicare in modo sicuro la chiave al corrispondente. I progettisti della Lorenz pensarono di sostituire la chiave casuale con una chiave pseudo-casuale generata da un dispositivo meccanico (dodici rotori) secondo una procedura ovviamente segreta. In questo modo per il cifrario non pi inattaccabile e cos fu per la macchina Lorenz che fu forzata dai crittanalisti inglesi del progetto Ultra, grazie anche a una grossa ingenuit di un cifratore tedesco; e proprio per decrittare pi velocemente i cifrati Lorenz, nel 1943 nacquero i Colossi che possono considerarsi i primi veri calcolatori elettronici della storia, due anni prima dell'americano ENIAC.

Immagine 1.4 : La macchina Enigma

Immagine 1.5 : La macchina di Lorenz

1.2.3. Obiettivo della Crittografia


Il principale obiettivo della crittografia mantenere tutte le informazioni nascoste a persone non autorizzate. Mentre la crittografia si occupa di trovare nuovi metodi per cifrare le informazioni ed assicurarne la privacy, la crittoanalisi si occupa del problema opposto, ovvero di come violare uno schema crittografico. In teoria, qualsiasi schema crittografico pu essere violato utilizzando la forza bruta per fare tentativi ripetuti di indovinare la chiave di decifratura. Ma con i moderni algoritmi crittografici la forza bruta non basta, poich anche il computer pi veloce del mondo potrebbe impiegare pi della durata stessa delluniverso per craccare un singolo messaggio cifrato con tali algoritmi. Il compito del crittoanalista di escogiatare metodi pi ingegnosi della forza bruta per sfruttare i punti 10

deboli di algoritmi conosciuti o escogitare modi per trovare informazioni su quelli non conosciuti onde poter violare i crittosistemi e decifrare i messaggi cifrati.

11

2. Tecniche di Steganografia
2.1. Idea di base
Steganografia : o il messaggio nascosto o il nemico per poter leggere il messaggio deve scoprire il mezzo che nasconde il messaggio o la robustezza del sistema steganografico consiste nella capacit del mezzo di occultare il messaggio Crittografia : o il messaggio non nascosto o il nemico pu leggere il messaggio crittato o in nemico pu decrittare il messaggio se ne in grado o la robustezza del sistema crittografico coincide esattamente con la robustezza dellalgoritmo crittografico

2.2. Modelli Steganografici


2.2.1

Steganografia Iniettiva e Generativa

Alcune tecniche, probabilmente le pi numerose, consentono di iniettare il messaggio segreto dentro un messaggio contenitore gi esistente, modificandolo in modo tale sia da contenere il messaggio sia da risultare, al livello al quale viene percepito dai sensi umani, praticamente indistinguibile dalloriginale. Si indica linsieme di queste tecniche con il termine steganografia iniettiva. Le tecniche di questo tipo sono di gran lunga le pi diffuse, tanto che in genere con il termine steganografia ci si riferisce implicitamente a esse. Esistono tuttavia altre tecniche steganografiche che hanno capacit proprie di generare potenziali messaggi contenitori e utilizzano il messaggio segreto per pilotare il processo di generazione del contenitore. Per queste tecniche si adotta il termine steganografia generativa.

Immagine 2.1 : Rappresentazione di Steganografia Iniettiva

Immagine 2.2 : Rappresentazione di Steganografia Generativa

2.2.2 Steganografia Sostitutiva


E senzaltro la tecnica steganografica pi diffusa, tanto che spesso quando si parla di steganografia ci si riferisce implicitamente a quella di questo tipo. Alla base di questa tecnica c unosservazione: la maggior parte dei canali di comunicazione (linee telefoniche, trasmissioni radio, ecc.) trasmettono segnali che sono sempre accompagnati da qualche tipo di rumore. Questo rumore pu essere sostituito da un segnale (il messaggio segreto) che stato trasformato in modo tale che, a meno di conoscere una chiave segreta, indistinguibile dal rumore vero e proprio, e quindi pu essere trasmesso senza destare sospetti. Quasi tutti i 12

programmi si basano su questa idea, sfruttando la grande diffusione di file contenenti una codifica digitale di immagini, animazioni e suoni; spesso questi file sono ottenuti da un processo di conversione analogico/digitale e contengono qualche tipo di rumore. Per esempio, uno scanner pu essere visto come uno strumento di misura pi o meno preciso. Unimmagine prodotta da uno scanner, da questo punto di vista, il risultato di una specifica misura e come tale soggetta a essere affetta da errore. Lo stesso discorso lo si pu fare analogamente per un file sonoro che evidentemente stato acquisito tramite una scheda sonora. La tecnica impiegata nella maggior parte dei programmi concettualmente molto semplice: sostituire i bit meno significativi dei file digitalizzati con i bit che costituiscono il file segreto (i bit meno significativi, infatti, corrispondono ai valori meno significativi, importanti ed evidenti di una misura, cio proprio quelli che possono essere facilmente affetti da errore!). Quello che succede quindi che il file contenitore risultante, dopo uniniezione steganografica, si presenta in tutto e per tutto simile alloriginale, con differenze difficilmente percettibili e quindi, a meno di confronti approfonditi con il file originale (comunque non effettuabili ad occhio nudo) difficile dire se le eventuali perdite di qualit siano da imputare al rumore od alla presenza di un messaggio segreto steganografato. Inoltre il pi delle volte il file originale non disponibile e quindi effettuare questo confronto pressoch impossibile. Il principale difetto della steganografia sostitutiva che le sostituzioni possono alterare le caratteristiche statistiche del rumore nel media utilizzato. Se il nemico, infatti, possiede un modello del rumore, pu utilizzarlo per testare se i file sono conformi al modello; se non lo sono probabilmente si in presenza di un messaggio steganografato. Il problema di questo tipo di attacco per sta nella difficolt di costruire un modello che tenga conto di tutti i possibili errori o rumori. In casi molto specifici comunque questo tipo di attacco ha avuto buon successo e la steganografia selettiva e costruttiva hanno proprio lo scopo di evitarlo.

2.2.3 Steganografia Selettiva


La steganografia selettiva ha valore puramente teorico e non viene utilizzata nella pratica. Lidea su cui si basa quella di procedere per tentativi, ripetendo una stessa misura fintanto che il risultato non soddisfa una certa condizione. Si fissi una funzione hash semplice, da applicare a unimmagine in forma digitale (una funzione hash una qualsiasi funzione definita in modo da dare risultati ben distribuiti nellinsieme dei valori possibili; tipicamente questo si ottiene decomponendo e mescolando in qualche modo le componenti dellargomento); per semplificare al massimo, diciamo che la funzione vale 1 se il numero di bit uguali a 1 del file che rappresenta limmagine pari, altrimenti vale 0 (si tratta di un esempio poco realistico ma, come dicevamo, questa discussione ha valore esclusivamente teorico). Cos, se vogliamo codificare il bit 0 procediamo a generare unimmagine con uno scanner; se il numero di bit dellimmagine uguali a 1 dispari ripetiamo di nuovo la generazione, e continuiamo cos finch non si verifica la condizione opposta. Il punto cruciale che limmagine ottenuta con questo metodo contiene effettivamente linformazione segreta, ma si tratta di unimmagine naturale, cio generata dallo scanner senza essere rimanipolata successivamente. Limmagine semplicemente sopravvissuta a un processo di selezione (da cui il nome della tecnica), quindi non si pu dire in alcun modo che le caratteristiche statistiche del rumore presentano una distorsione rispetto a un modello di riferimento. Come evidente, il problema di questa tecnica che troppo dispendiosa rispetto alla scarsa quantit di informazione che possibile nascondere.

2.2.4 Steganografia Costruttiva


La steganografia costruttiva affronta lo stesso problema della steganografia sostitutiva nel modo pi diretto, tentando di sostituire il rumore presente nel media utilizzato con 13

linformazione segreta opportunamente modificata in modo da imitare le caratteristiche statistiche del rumore originale. Secondo questa concezione, un buon sistema steganografico dovrebbe basarsi su un modello del rumore e adattare i parametri dei suoi algoritmi di codifica in modo tale che il falso rumore contenente il messaggio segreto sia il pi possibile conforme al modello. Questo approccio senza dubbio valido, ma presenta anche alcuni svantaggi. Innanzitutto non facile costruire un modello del rumore: la costruzione di un modello del genere richiede grossi sforzi ed probabile che qualcuno, in grado di disporre di maggior tempo e di risorse migliori, riesca a costruire un modello pi accurato, riuscendo ancora a distinguere tra il rumore originale e un sostituto. Inoltre, se il modello del rumore utilizzato dal metodo steganografico dovesse cadere nelle mani del nemico, egli lo potrebbe analizzare per cercarne possibili difetti e quindi utilizzare proprio il modello stesso per controllare che un messaggio sia conforme a esso. Cos, il modello, che parte integrante del sistema steganografico, fornirebbe involontariamente un metodo di attacco particolarmente efficace proprio contro lo stesso sistema.

14

3. Tecniche di Crittografia
3.1. Modelli Crittografici
Esistono molti algoritmi crittografici, ognuno dei quali cerca di stabilire un trade-off tra sicurezza, velocit e facilit di implementazione. In questo contesto la sicurezza indica la probabilit che un algoritmo resista agli attacchi attuali e futuri; la velocit indica la potenza di elaborazione e il tempo necessari per cifrare e decifrare il messaggio, mentre la facilit di implementazione indica leventuale predisposizione dellalgoritmo allimpiego di hardware o software. Gli algoritmi crittografici si dividono in due grandi famiglie : gli algoritmi a chiave segreta o simmetrici e gli algoritmi a chiave pubblica o asimmetrici. Nessuno degli algoritmi crittografici, siano essi a chiave segreta o a chiave pubblica, perfetto, ma pu essere giudicato pi o meno robusto in base alla difficolt di risoluzione del problema matematico sul quale si basa lalgoritmo.

3.1.1 Crittografia a chiave segreta o simmetrica Introduzione


La crittografia a chiave segreta una tecnica che modifica l'informazione in chiaro, in una cifrata, basandosi su un parametro, appunto chiamato chiave di cifratura, utilizzando la stessa sia per la cifratura che per decifratura, da qui il termine chiave simmetrica. Essendo la funzione invertibile, il destinatario dovr soltanto elaborare nuovamente il crittogramma richiamando l'inversa della funzione di cifratura avente come parametro la stessa chiave utilizzata dal mittente.

Mittente A

Destinatario B Chiave

Plaintext Cifratura Ciphertext Decifratura

Plaintext

Immagine 3.1 : Schema di comunicazione con crittografia simmetrica

Il metodo con il quale per secoli sono stati trasmessi messaggi segreti detto crittografia a chiave singola (o a chiave segreta, per distinguerlo dal metodo a chiave pubblica). Quando A vuole spedire a B un messaggio crittografato, queste sono le azioni da compiere o B spedisce a A una copia della chiave di codifica o A codifica il messaggio con tale chiave e lo spedisce a B o B decodifica il messaggio con la stessa chiave Questo metodo ha qualche problema. Innanzitutto B deve trovare un modo sicuro per trasmettere la chiave ad A: se viene intercettata la comunicazione compromessa. Poi, B deve fidarsi di A. Se A un agente segreto che fa il doppio gioco, pu passare la chiave di B al nemico; oppure pu leggere gli altri messaggi provati di B; o, in modo pi sottile, pu 15

fingere di essere B. Infine, in un organismo che necessita di scambiare messaggi segreti, o si hanno numerose chiavi da controllare, o bisogna usarne un piccolo numero, il che pu portare a compromessi. Il pi diffuso sistema di cifratura a chiavi segrete DES (Data Encryption System), ed ad esempio utilizzato per la cifratura delle password di utente nei sistemi Unix. Su questo metodo di cifratura sono basati sistemi di autenticazione per reti locali, come ad esempio il sistema Kerberos, che viene installato dal gestore della rete, e provvede, tramite un archivio riservato di chiavi segrete, ad autenticare lidentit di chiunque usi la rete. Ad esempio, se una persona vuole accedere tramite la rete ad un proprio account, egli deve fornire la propria chiave segreta, che viene confrontata con quella conservata nellarchivio.

3.1.2 Crittografia a chiave segreta o simmetrica DES


DES non altro che l'acronimo di Data Encryption Standard. E' un algoritmo crittografico simmetrico, viene usata quindi una sola chiave per crittografare e decrittografare, inventato da IBM negli anni 70. La NSA (National Security Agency) circa 30 anni fa indisse un concorso perch aveva la necessit di avere un algoritmo di cifratura avanzato che permettesse di mettere al sicuro i dati. IBM vinse la sfida e propose appunto il DES. Il DES stato standardizzato nel 77 e fino ai giorni nostri stato uno dei migliori sistemi per la protezione dei dati. Durante questi anni per la sue prestazioni in termini di sicurezza sono state messe un po' in discussione visto che era possibile con attacchi di brute force violare il codice e scoprire i dati. Il DES quindi era stato sviluppato ulteriormente e aveva portato alla creazione di un 3DES, una versione evoluta che criptava tre volte lo stesso blocco di dati con chiavi diverse. Questa soluzione anche pi sicura della precedente richiedeva per pi tempo di calcolo.

Immagine 3.2 : Diagramma dellalgoritmo DES

DES si basa in modo significativo sullalgoritmo Lucifer, inventato da Horst Feistel, che non ha mai avuto una grande diffusione. Sostanzialmente DES impiega una chiave singola di 64 bit di cui 56 di dati e 8 di parit, e agisce sui dati in blocchi di 64 bit. Tale chiave suddivisa in 16 sottochiavi di 48 bit, una per ogni ciclo di Feistel. Ogni ciclo consiste in una fase sostitutiva, in cui i dati vengono sostituiti con parti della chiave, e in una fase di 16

permutazione, in cui i dati sostituiti vengono riordinati. Le operazioni di sostituzione, dette anche di confusione, hanno luogo nelle S-box, mentre quelle di permutazione, dette anche di diffusione, nelle P-box; entrambe le tecniche si svolgono nel diagramma illustrato nella figura sottostante.

Immagine 3.3 : P-box e S-box di DES

La sicurezza di DES sta principalmente nel fatto che, dal momento che le sostituzioni non sono lineari, il testo cifrato, non somiglia in alcun modo al messaggio originale; di conseguenza, le tecniche di analisi basate sul linguaggio non rivelano alcunch. Le operazioni di permutazione, inoltre, aggiungono un livello di sicurezza rimescolando il messaggio gi parzialmente modificato. Tuttavia esistono due modi per rendere pi sicuri algoritmi come DES : aumentare la lunghezza della chiave o il numero di cicli di codifica. Entrambe queste soluzioni, per, tendono ad aumentare la quantit di risorse di elaborazione necessarie per codificare e decodificare i dati e rallentano tale procedura, in quanto occorre un maggior numero di operazioni matematiche. Tra gli esempi di DES modificato vi sono 3DES, chiamato anche DES triplo e DESX. Il primo utilizza tre chiavi DES separate di 56 bit al posto della chiave singola di 168 bit. Il DESX invece aggiunge 64 bit di dati alla chiave. Entrambi hanno lo scopo di rafforzare DES contro gli attacchi di forza bruta.

3.1.3 Crittografia a chiave pubblica o asimmetrica Introduzione


Gli algoritmi asimmetrici, contrariamente a quelli simmetrici, richiedono pi di una chiave, vale a dire la chiave pubblica e quella privata (possono esistere sistemi con pi di due chiavi). Invece di affidarsi alle tecniche di sostituzione e trasposizione della crittografia simmetrica, gli algoritmi asimmetrici si affidano alluso dei problemi della teoria dei numeri. Molti di questi problemi sono semplici da svolgere in una direzione, ma difficilissimi in quella opposta : per esempio, se moltiplicare due numeri facile non lo certo loperazione opposta, cio risalire ai numeri originari soprattutto se gli interi utilizzati contengono centinaia di cifre. Perci in genere la sicurezza di questi algoritmi dipende dalla non fattibilit degli attacchi di forza bruta, ma da quella delle complicate operazioni matematiche inverse e degli avanzamenti della teoria matematica che possono proporre nuove tecniche scorciatoia.

17

Chiave pubblica kpub di A

A
Canale di comunicazione insicuro

Chiave pubblica kpub di B Chiave privata kpriv di A Chiave privata kpriv di B

Immagine 3.4 : Rappresentazione di una comunicazione tramite cifratura a chiave pubblica

B per mandare un messaggio ad A lo deve cifrare con la chiave pubblica di A. Tutti possono cifrare dei messaggi con la chiave pubblica di A. C cifra(kpub, M); dove M = messaggio da inviare A per poter leggere il messaggio inviato da B deve decifrarlo con la sua chiave privata. Solo A pu decifrare messaggi cifrati con la sua chiave pubblica. M decifra(kpriv, C);

Il vantaggio della cifratura a chiave pubblica che non ci sono chiavi condivise fra gli utenti, infatti ogni utente genera la propria coppia di chiavi composta dalla chiave pubblica e dalla chiave privata e rende pubblica esclusivamente la chiave pubblica.

3.1.5 Crittografia a chiave pubblica o asimmetrica RSA


RSA. Oltre ad essere il primo crittosistema di questo genere, rimane ancora oggi il sistema public-key pi implementato in assoluto. Prende il nome dai suoi inventori: Ron Rivest, Adi Shamir e Leonard Adleman. Come gi detto, essendo un crittosistema asimmetrico, la chiave con cui viene criptato il messaggio differente da quella con cui viene decriptato in ricezione. Allora la chiave K sar formata da kpub, pubblica, e kpriv, privata; le due chiavi possono essere ricavate l'una dall'altra, ma il punto di forza su cui si basa RSA che l'operazione di derivare la chiave segreta da quella pubblica troppo complessa per venire eseguita in pratica, anche su un calcolatore molto potente. In questo tipo di cifrari hanno grande importanza le cosidette funzioni one-way con trapdoor : come gi detto, si tratta di funzioni invertibili tali che il calcolo della funzione diretta sia facile, mentre quello della inversa sia difficile per tutti coloro che non sono in possesso della chiave corretta. Un esempio di tale funzione il logaritmo in base B dove l'inverso appunto l'esponenziale. Se la base B un numero ragionevolmente piccolo, il calcolo sia della funzione diretta che della inversa non risulta particolarmente difficile; diversa sarebbe la situazione se il modulo o base fosse un numero primo enorme, poich la complessit di calcolo sarebbe a dir poco proibitiva. La funzione unidirezionale che sta alla base di RSA viene costruita sfruttando il fatto che facile calcolare il prodotto di due numeri primi molto grandi, ma dato il loro prodotto, oltremodo difficile risalire ai fattori che lo compongono. 18

Indichiamo i passaggi del cifrario: Trovare due numeri primi molto grandi P e Q tale che il prodotto o modulo detto N=PQ; Scegliere E minore di N tale che sia primo con (P-1)(Q-1), il che significa non avere fattori primi in comune. E deve essere dispari. (P-1)(Q-1) non pu essere primo perch pari. Calcolare l'inverso di E, D, tale che DE=1mod(P-1)(Q-1); Il testo cifrato si ottiene con l'operazione: C=(T^E)modPQ Il testo decifrato, R, si ottiene cos: R=(C^D)modPQ La chiave pubblica composta da due parti: il modulo N ed E mentre quella privata da N e D, perci E definito l'esponente pubblico e D quello privato. Si pu pubblicare la chiave pubblica liberamente perch non si conoscono metodi per calcolare D, P e Q dati N=PQ ed E. RSA pu essere usato sia per autenticare ("authentication") che per motivi di riservatezza ("privacy"). Ricordiamo che la chiave in RSA costituita da un modulo e un esponente, quindi, quando parliamo di dimensione della chiave, intendiamo quella del modulo N. La scelta della dimensione di N dipende dal bisogno di sicurezza. Pi lungo il modulo, maggiore la sicurezza ma anche pi lente sono le operazioni di cifratura. Infatti raddoppiando la lunghezza della chiave si incrementa il numero di operazioni necessarie per la cifratura/decifratura con public-key di un fattore 4, e quelle eseguite con secret-key di un fattore 8. La ragione per cui la cifratura/decifratura con public-key richiede meno operazioni che l'esponente pubblico E pu rimanere fisso anche se aumenta il modulo. Diversamente l'esponente segreto D deve incrementarsi proporzionalmente ad N. Si dovr allora trovare un compromesso determinato su considerazioni riguardanti: l'importanza dei dati da proteggere, e quindi la necessit di sicurezza, ed una valutazione di quanto potrebbe essere astuto colui che volesse attaccare il cifrario. Rivest stima che un modulo di 512 bit pu essere fattorizzato con strumenti sofisticati di un valore circa di 8 milioni di dollari. Potrebbe perci essere consigliabile usare un modulo pi lungo per es. di 768 bit o ancora maggiore (1024 bit) se i dati da trasmettere sono di estrema importanza. Vediamo come utilizzare questo algoritmo per la "privacy" degli utenti di una rete. Supponiamo che A voglia inviare un messaggio M a B (vedi figura 2.6). A crea il testo cifrato C=(M^E)modN; dove E ed N costituiscono la chiave pubblica di B. Per decifrare, B calcola M=(C^D)modN; con la sua chiave privata <N, D> ottenendo cos il messaggio originale. Allo scopo di autenticare un certo messaggio, che verr trasmesso su una rete di dubbia sicurezza, si pu sfruttare tale algoritmo, mostriamo un esempio di tale applicazione. 19

Mettiamo che A voglia inviare un documento firmato a B, M. A crea una firma digitale S con questa operazione: S=(M^D)modN; dove <N, D> la sua chiave privata. B riceve tale messaggio e vuole verificare se davvero stata A a scriverlo: quindi calcola (S^E)modN; con <N, E> chiave pubblica di A se il testo ottenuto chiaro B potr essere sicuro del mittente. Ovviamente autenticazione e privacy vengono usate contemporaneamente, cio una volta verificato che il messaggio stato inviato da A, cosa che tutti potranno fare dal momento che la chiave pubblica, solo B potr leggere il documento, dato che sar l'unico a possedere la chiave segreta con cui decifrarlo. La rottura di RSA si potrebbe verificare nel caso in cui un attacker scopra la chiave privata corrispondente a quella pubblica; questo permetterebbe a un nemico di leggere tutti i messaggi cifrati con la chiave pubblica e contraffare la firma. Ovviamente per determinare la chiave segreta D il nemico dovrebbe fattorizzare il modulo N nei due termini P e Q e conoscere l'esponente E. La fattorizzazione un'operazione estremamente difficile soprattutto se i numeri coinvolti sono molto grandi. Per valutare quanto sia laborioso trovare una soluzione a tale problema fu lanciata una sfida, nel 1977, ad un gruppo di volontari che avrebbero dovuto scomporre in fattori primi il numero conosciuto come RSA-129 (di 129 cifre). La sfida rimase priva di risposta fino al 1993 quando Graff, Athins, Leyland e Lenstra decisero di prendere la cosa sul serio. Furono coinvolte 600 persone e 1600 computer in 25 paesi diversi, che sfruttarono l'implementazione detta "Multiple Polynomial Quadratic Sieve". Dopo circa 8 mesi, il gruppo di volontari riusc a portare a termine il lavoro, determinando i fattori di RSA-129 oltre 390.000 milioni di anni prima del previsto. Questo esercizio fatto su RSA-129 dimostra che un modulo di 129 cifre pu essere scomposto anche se con forze enormi, per cui data la continua crescita tecnologica dei sistemi di computer e il loro calo nel prezzo bisogna pensare ad un modulo di almeno 1024 cifre per essere sicuri di una protezione a lungo termine. Un'altra tecnica di rottura di RSA di determinare M direttamente dall'equazione (M^E) modN in modo da scoprire il messaggio criptato e contraffare la firma. Nessun attacco di questo tipo per conosciuto. Esistono, inoltre, altri metodi che mirano alla scoperta di un singolo messaggio per esempio un semplice messaggio tipo Attacker at dawn (attacco all'alba) potrebbe essere decifrato da un nemico anche senza l'aiuto della chiave segreta, oppure, uno stesso testo inviato a pi persone ne favorirebbe la decodifica. Comunque spesso questi attacchi mirano pi a rendere insicuro un crittosistema che a violarlo effettivamente.

20

4. Conclusioni
La steganografia, come abbiamo potuto constatare, tende quindi a nascondere un messaggio ma ha un grosso punto debole: una volta intercettato il messaggero (sia esso in carne ed ossa che digitale) solo questione di una attenta perquisizione per trovare il messaggio e carpirne i contenuti. Per ovviare a questo problema si sviluppata parallelamente un'altra tecnica: la crittografia che mira a nascondere il significato del messaggio e non il messaggio in se. Resta da affrontare un'ultima questione molto importante. Abbiamo accennato all'eventualit che i dettagli di funzionamento di un sistema steganografico possano cadere nelle mani del nemico. In ambito crittografico si danno le definizioni di vari livelli di robustezza di un sistema, a seconda della capacit che esso ha di resistere ad attacchi basati su vari tipi di informazioni a proposito del sistema stesso. In particolare, i sistemi pi robusti sono quelli che soddisfano i requisiti posti dal principio di Kerckhoff, che formulato in ambito steganografico suona pi o meno cos: la sicurezza del sistema deve basarsi sull'ipotesi che il nemico abbia piena conoscenza dei dettagli di progetto e implementazione del sistema stesso; la sola informazione di cui il nemico non pu disporre una sequenza (corta) di numeri casuali - la chiave segreta - senza la quale, osservando un canale di comunicazione, non deve avere neanche la pi piccola possibilit di verificare che in corso una comunicazione nascosta. Se si vuole aderire a questo principio, evidente che le tecniche esposte fin qui non sono ancora soddisfacenti per caratterizzare un sistema steganografico completo. Infatti, se i dettagli di implementazione dell'algoritmo sono resi di dominio pubblico, chiunque in grado di accedere a eventuali informazioni nascoste, semplicemente applicando il procedimento inverso. Per affrontare questo problema, necessario introdurre una fase di pre-elaborazione del file segreto, che lo renda non riconoscibile - da parte del nemico - come portatore di informazioni significative. La soluzione pi ovvia quella di impiegare un sistema di crittografia convenzionale, come ad esempio DES o RSA, i quali garantiscono appunto l'inaccessibilit da parte del nemico al messaggio vero e proprio. RSA non una alternativa a DES ma un supporto, infatti RSA permette due importanti funzioni a cui non provvede DES: lo scambio sicuro della chiave segreta; la firma digitale. Nella maggior parte dei casi vengono usati ambedue questi algoritmi: prima il messaggio criptato nel modo tradizionale, cio con DES, tramite una chiave generata casualmente, poi la stessa chiave viene criptata con RSA. Insieme il cipher-text ottenuto con DES unitamente alla chiave cifrata con RSA inviato al destinatario. In ricezione verr prima decifrata la chiave (crittografia asimmetrica) quindi decriptato il testo con tale chiave nel modo tradizionale (crittografia simmetrica). In taluni casi RSA non necessario, per esempio nelle "trasmissioni multiutente", dove le due parti possono mettersi d'accordo sulla chiave durante incontri (meeting) strettamente privati. In casi che coinvolgono un unico utente, qualora egli volesse conservare un file personale cifrato, non necessario uno scambio di chiavi. E' ovvio che se si richiede una firma digitale o una trasmissione di dati tra utenti che non si possono incontrare, sar necessario usare RSA. DES molto pi veloce di RSA, a livello di 21

software possiamo dire che circa 100 volte superiore e, come hardware, dalle 1000 alle 10.000, dipende dalle implementazioni.

5. Bibliografia
Josef Pierprzyk, Thomas Hardjono, Jennifer Seberry. Fundamentals of computer security, Springer-Verlag Telos, 2003 Bruce Schneier: Applied Cryptography, 2nd edition. John Wiley & Sons, 1995 Charlie Kaufman, Radia Perlman, and Mike Speciner. Network Security PRIVATE Communication in a PUBLIC World, Prentice-Hall, 1995. Jennifer Seberry and Josed Pieprzyk. Cryptography: An Introduction to Computer Security, Prentice-Hall, 1989. Man Young Rhee. Cryptography and Secure Data Communications. McGraw-Hill, 1994. Hans Riesel. Prime Numbers and Computer Methods for Factorization. Birkhauser, 1994. Donald Davies and Wyn Price. Security for Computer Networks, John Wiley, 1989. Angelo Angelini. La Steganografia dell'Abate Tritemio, Editrice Kemi, Milano Claudio Agosti. Steganografia, l'arte della scrittura nascosta, Firenze, 2003 Luigia Berardi, Albrecht Beutelspacher. Crittologia, Franco Angeli 1996 Simon Singh. Codici & Segreti, Rizzoli 1999 Luigi Sacco. Manuale di Crittografia, Roma1947 Luigia Berardi, Bruno Rizzi. La funzione di Eulero alla ribalta nei codici RSA, Mathesis, Roma1987 P.Ferragina, F.Luccio. Crittografia - Principi Algoritmi Applicazioni, Bollati Boringhieri, Torino2001 Wenbo Mao, Modern Cryptography - Theory and Practice, Prentice Hall New Jersey 2004 Andrea Sgarro. Crittografia, Muzzio 1986 Andrea Sgarro. Codici Segreti, Mondadori 1989 A. Menezes, P. van Oorschot, S. Vanstone. Handbook of Applied Cryptography CRC press1996 Peter Wayner. Crittologia Invisibile Informazioni segrete, McGraw-Hill, Milano 1997 Haley Hann. Internet Insecurity, Pearson Education Italia, Milano 2002 Mitch Tulloch, Enceclopedia della Sicurezza, Mondadori informatica, Verona 2004 22

David R. Mirza Ahmad, Hal Flynn, Robert Graham. Hack Proofing, McGraw-Hill, Milano 2002 Ross Anderson. Information hiding: first international workshop, Cambridge, UK. 1997 Official RSA web site. http://www.rsasecurity.com/rsalabs/node.asp?id=2152 RSA Algorithm. http://www.rsasecurity.com/rsalabs/node.asp?id=2152 The Largest Known Primes. http://primes.utm.edu/largest.html About Steganography. http://www.securityfocus.com/infocus/1684

23

Potrebbero piacerti anche