Top Banner
Steganography vs. Cryptography Andrea Giovanni Nuzzolese [email protected] Sara Pandelli [email protected] Luca Ungaro [email protected] 22 settembre 2005 1
23

Steganography vs Criptography

Jul 24, 2015

Download

Documents

barracuda982
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Steganography vs Criptography

Steganography vs. Cryptography

Andrea Giovanni Nuzzolese

[email protected]

Sara Pandelli

[email protected]

Luca Ungaro

[email protected]

22 settembre 2005

1

Page 2: Steganography vs Criptography

2

Page 3: Steganography vs Criptography

Indice

1. Introduzione 5Introduzione alla Steganografia 5

Definizione di Steganografia 5Cenni storici di Steganografia 5Obiettivo della Steganografia 6

Introduzione alla Crittografia 7Definizione di Crittografia 7Cenni storici di Crittografia 7Obiettivo della Crittografia 10

2. Tecniche di Steganografia 12Idea di base 12Modelli Steganografici 12

Steganografia iniettiva e generativa 12Steganografia sostitutiva 12Steganografia selettiva 13Steganografia costruttiva 13

3. Tecniche di Crittografia 15Modelli Crittografici 15

Crittografia a chiave segreta o simmetrica – Introduzione 15Crittografia a chiave segreta o simmetrica – DES 16Crittografia a chiave pubblica o asimmetrica – Introduzione 17Crittografia a chiave pubblica o asimmetrica – RSA 18

4. Conclusioni 21

5. Bibliografia 22

3

Page 4: Steganography vs Criptography

Indice delle tabelle e delle figure

Immagini1.1.Griglia di Cardano 51.2.Scitala Lacedemonica 71.3.Disco di Enea 71.4.Macchina Enigma 101.5.Macchina di Lorenz 102.1Rappresentazione di Steganografia iniettiva 122.2Rappresentazione di Steganografia generativa 123.1.Schema di comunicazione con Crittografia simmetrica 153.2.Diagramma dell’algoritmo DES 163.3.P-box e S-box di DES 173.4.Rappresentazione di una comunicazione tramite cifratura a chiave pubblica 18

Tabelle1.1. Cifrario di Cesare 81.2. Addizione di carattere con il codice di Baudot 9

4

Page 5: Steganography vs Criptography

1. Introduzione

1.1. Introduzione alla Steganografia

1.1.1. Definizione di Steganografia

La parola steganografia deriva dall'unione dei due vocaboli greci στεγο (stèganos - rendoocculto, nascondo) e γραϕη (gràfein - scrittura). Steganografia è dunque "la scritturanascosta" o meglio ancora l'insieme delle tecniche che consente a due o più persone dicomunicare in modo tale da nascondere non tanto il contenuto (come nel caso dellacrittografia), ma la stessa esistenza della comunicazione agli occhi di un eventualeosservatore, tradizionalmente denominato “nemico”.

1.1.2. Cenni storici di Steganografia

Una vecchia storia, ambientata alcuni secoli prima di Cristo, ci proviene dalle scritture diErodoto. Il mezzo di scrittura del tempo era costituito da tavolette di legno ricoperte da cerasulla quale si incidevano i messaggi. Un esule greco stabilitosi in una città persiana, avendosaputo 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 questetavolette, incise la notizia sul legno sottostante e la ricoprì di cera. La tavoletta checonteneva la soffiata appariva come inutilizzata, così riuscì ad oltrepassare le ispezioni e araggiungere i greci. In un’altra storia Erodoto racconta di un nobile persiano che fece tagliare a zero i capelli diuno schiavo fidato al fine di poter tatuare un messaggio sul suo cranio; una volta che icapelli furono ricresciuti, inviò lo schiavo alla sua destinazione, con la sola istruzione ditagliarseli nuovamente.

Nell’antica Cina invece si dipingeva il messaggio su striscioline di seta finissima, chevenivano appallottolate e coperte di cera. Per evitare che i messaggi fossero intercettati lepalline erano inghiottite dal messaggero.

Un altro strumento usato a scopi steganografici erano le griglie di Cardano che non eranoaltro che fogli di materiale rigido nei quali venivano ritagliati fori rettangolari ad intervalliirregolari. Questa griglia veniva appoggiata su un foglio di carta bianca, il messaggio segretoveniva scritto nei buchi (ciascun buco poteva contenere una o più lettere), dopodichè sitoglieva la griglia e si cercava di completare la scrittura del resto del foglio in modo daottenere un messaggio di senso compiuto, il quale poi veniva inviato a destinazione.

Immagine 1.1 : Griglie di Cardano

Quella delle cifre nulle era un’altra tecnica steganografica che consisteva nell’inserire ilmessaggio nascosto in un altro messaggio di testo. Fu usata nella seconda guerra mondiale,

5

Page 6: Steganography vs Criptography

in particolare per comunicazioni via radio. I messaggi trasmessi venivano registrati e poifiltrati in modo opportuno per ricavare il messaggio nascosto. Tecnicamente il messaggiotrasmesso veniva composto in modo tale che, unendo le prime lettere di ogni capoverso ocon altre tecniche, si ottiene un messaggio di senso compiuto. Il seguente, ad esempio, è untesto realmente inviato da una spia tedesca durante la seconda guerra mondiale :

Apparently neutral’s protest is thoroughly discounted and ignored. Isman hard hit.Blockade issue af fects pretext for embargo on by products, ejecting suets and vegetableoils.

Considerando in sequenza la seconda lettera di ogni parola :

Apparently neutral’s protest is thoroughly discounted and ignored. Isman hard hit.Blockade issue af fects pretext for embargo on by products, ejecting suets and vegetableoils.

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 romaniusavano sostanze come succhi di frutta, latte e urine per scrivere messaggi segreti. Quandoqueste sostanze venivano riscaldate, divenivano leggibili. Gli inchiostri invisibili sono statiusati anche nella II guerra mondiale.

La tecnica dei micropunti fotografici fu inventata dal direttore dell’ F.B.I. durante la secondaguerra mondiale, si tratta di fotografie della dimensione di un punto dattiloscritto che, unavolta sviluppate e ingrandite, possono diventare pagine stampate di buona qualità.

Anche oggi la steganografia viene utilizzata come veicolo politico-militare. Ad esempio, nelfamoso quotidiano americano “USA Today” del 10 luglio del 2002 si legge: “Ultimamenteal-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 ilmondo. . .”. E ancora: “Ufficiali americani dicono che amazon.com contiene messaggisegreti nelle sue immagini e nei suoi testi (pratica conosciuta come steganografia). Essiaffermano 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 disteganografia, il quale viene spesso confuso, in prima analisi, con quello di crittografia. Perrendere più esplicite le differenze tra questi due concetti possiamo osservare che, mentre nelcaso della crittografia è consentito al nemico di rilevare, intercettare e modificare i messaggisenza però avere la possibilità di violare le misure di sicurezza garantite dallo specificosistema crittografico (cioè senza poter accedere all'informazione vera e propria e quindileggerne il contenuto), l'obiettivo della steganografia è invece quello di nascondere unmessaggio dentro un altro messaggio, dall'aspetto innocuo, in modo che il nemico non possaneppure rilevare l'esistenza del primo messaggio.

6

Page 7: Steganography vs Criptography

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 γραϕη (gràfein - scrittura ), ovvero scrittura segreta. Dall'etimologiadella parola già possiamo dedurre la necessità sin dall'antichità di cifrare “nascondere” leinformazioni scritte. Oggi la crittografia è una scienza che fornisce un set di tecniche per lacodifica, e successiva decodifica di messaggi, che quindi possono essere trasmessisegretamente.

1.2.2. Cenni storici di Crittografia

Le più antiche notizie sicure sono probabilmente quelle sulla scitala lacedemonica , data daPlutarco come in uso dai tempi di Licurgo (IX sec a.C.) ma più sicuramente usata ai tempi diLisandro(verso il 400 a.C.). Consisteva in un bastone su cui si avvolgeva ad elica un nastrodi 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 masufficiente 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 primotrattato di cifre il cui XXI capitolo tratta appunto di messaggi segreti. In questo vienedescritto un disco sulla zona esterna del quale erano contenuti 24 fori,ciascunocorrispondente ad una lettera dell'alfabeto. Un filo, partendo da un foro centrale, siavvolgeva passando per i fori delle successive lettere del testo: all'arrivo, riportate le letteresul disco, si svolgeva il filo segnando le lettere da esso indicate: il testo si doveva poileggere a rovescio. Le vocali spesso erano sostituite da gruppi di puntini. In questo stesso periodo vennero ideati codici cifrati indiani ed ebraici utilizzati in particolarmodo 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 alfabetigeneralmente a numero.

Immagine 1.2 : scitala lacedemonica Immagine 1.3 : disco di Enea

7

Page 8: Steganography vs Criptography

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

Chiaro A B C D E F G H I J K L M N O P Q R S T U V W X Y Z

Cifrato D E F G H I J K L M N O P Q R S T U V W X Y Z A B C

Tabella 1.1 : Cifrario di Cesare

Prendendo come esempio la frase Auguri di buon compleanno si otterrà il seguentemessaggio cifrato:

Chiaro auguridibuoncompleannoCifrato dxjxulglexrqfrpsohdqqr

Più in generale si dice codice di Cesare un codice nel quale la lettera del messaggio chiaroviene spostata di un numero fisso di posti, non necessariamente tre; un esempio è il codiceche sempre secondo Svetonio era usato da Augusto, dove la A era sostituita dalla B, la Bdalla C e così via. Poiché l'alfabeto internazionale è composto da 26 caratteri sono possibili 26 codici di Cesarediversi dei quali uno (quello che comporta uno spostamento di zero posizioni) darà uncifrato uguale al messaggio chiaro iniziale.

Il cifrario di Jefferson prende il nome dal suo inventore Thomas Jefferson (1743-1826), unodegli 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 15cm di lunghezza e 4 cm di larghezza montato su un asse e sezionato in 36 dischi uguali (25nella versione poi utilizzata dagli Americani, 20 nel cilindro di Bazeries). Sull'esterno diciascuna ruota sono scritte le 26 lettere dell'alfabeto, equidistanti l'una dall'altra. L'ordine incui 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'ultimoblocco presenti meno di 36 lettere, esso deve essere completato con lettere nulle); la chiavedi cifra è un numero che va da 1 a 25. Supponendo che il testo chiaro sia La missione inPolinesia è fallita e la chiave sia il numero 5, in una certa riga, non importa quale, sicomporrà il messaggio in chiaro (omettendo naturalmente gli spazi); il crittogrammacorrispondente 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 iltesto chiaro nella quinta riga sotto.

Dalla metà del XIX secolo l'uso della crittografia assume un ruolo determinante nellatrasmissione di messaggi di carattere logistico e strategico. Con l'invenzione della radio imessaggi sono trasmessi anche via etere e quindi esposti molto più di primaall'intercettazione da parte del nemico; il ricorso alla crittografia diventa inevitabile, come lanecessità 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 campocrittografico, e porvi rimedio. Tra i metodi usati nella Grande Guerra si possono ricordare:

8

Page 9: Steganography vs Criptography

o Playfair cipher (1854) : cifrario poligrafico composto da digrammi.o Cifra campale germanica (1918) : una variante del cifrario poligrafico Playfair

ciphero Il cifrario bifido di Delastelle : Il cifrario bifido di Delastelle è un cifrario

poligrafico basato sulla matrice 5x5 usata per la prima volta nella scacchiera diPolibio

Il cifrario di Vigenere ha il suo tallone d'Achille nel fatto di essere un insieme di cifrari diCesare intercalati a distanza fissa, cosa che ne rende possibile e anzi molto facile lacrittanalisi, 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; vienegenerata una chiave del tutto casuale, e dunque imprevedibile, lunga come il testo; a questopunto il chiaro e la chiave vengono "sommati" proprio come nel cifrario di Vigenere. L'unicadifferenza è che nel Vernam si sommano non tanto gli ordinali delle lettere da cifrare ma isingoli bit che codificano la lettera nei codici usati nelle telecomunicazioni (allora il codiceBaudot, 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 dellaTeoria 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 iltesto allora il testo cifrato non contiene alcuna informazione sul testo chiaro, ed è del tutto alsicuro dagli attacchi della crittanalisi statistica. Per avere una sicurezza assoluta non si dovrebbe mai riutilizzare la stessa chiave; se siutilizza più volte la stessa chiave infatti questa torna ad essere più breve del messaggio, omeglio della somma di tutti i messaggi e il cifrario non è più perfetto. Per questo motivoquesto tipo di cifrario viene detto a chiave non riutilizzabile.

chiaro c A T T E N Z I O N E11000 00001 00001 10000 00110 10001 01100 00011 00110 10000

chiave k W I A P F I L K M S11001 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, sulmodello del cilindro di Jefferson reinventato da Beziers. La più celebre di queste macchine è l'Enigma inventata nel 1918 dal tedesco ArthurScherbius 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 unacerta posizione del testo allora nella stessa posizione la G sarà cifrata con la A. La stessamacchina 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 unsegnale elettrico passa da rotore a rotore fino al rotore finale detto il riflettore e quindi tornaindietro 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 messaggiocifrato da trasmettere.

9

Page 10: Steganography vs Criptography

La chiave dell'Enigma è la disposizione iniziale dei rotori; questa chiave veniva cambiataogni 24 ore secondo una regola prefissata; in definitiva la vera chiave segreta era questaregola. 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! = 6nella Enigma originale) disposizioni possibili, cosa che aumenta il numero di posizioniiniziali possibili. Era anche consigliato di tenere una scorta di rotori con cablaggi diversi, inmodo da poter aumentare ancora il numero di combinazioni possibili.

I tedeschi usarono anche altri cifrari durante la guerra; in particolare gli alti comanditedeschi, usarono una macchina telescrivente realizzata dalla ditta Lorenz che a differenzadell'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 ispiravadirettamente 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 delcorrispondente caratterre della chiave (detta anche sequenza oscurante). Secondo Vernam la chiave dovrebbe essere indefinitamente lunga e del tutto casuale; aqueste condizioni il Vernam è inattaccabile, ma c'è la grossa difficoltà di comunicare inmodo sicuro la chiave al corrispondente. I progettisti della Lorenz pensarono di sostituire lachiave casuale con una chiave pseudo-casuale generata da un dispositivo meccanico (dodicirotori) secondo una procedura ovviamente segreta. In questo modo però il cifrario non è più inattaccabile e così fu per la macchina Lorenz chefu forzata dai crittanalisti inglesi del progetto Ultra, grazie anche a una grossa ingenuità diun cifratore tedesco; e proprio per decrittare più velocemente i cifrati Lorenz, nel 1943nacquero 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 personenon autorizzate. Mentre la crittografia si occupa di trovare nuovi metodi per cifrare leinformazioni ed assicurarne la privacy, la crittoanalisi si occupa del problema opposto,ovvero di come violare uno schema crittografico. In teoria, qualsiasi schema crittograficopuò essere violato utilizzando la “forza bruta” per fare tentativi ripetuti di indovinare lachiave 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 stessadell’universo per craccare un singolo messaggio cifrato con tali algoritmi. Il compito delcrittoanalista è di escogiatare metodi più ingegnosi della forza bruta per sfruttare i punti

10

Page 11: Steganography vs Criptography

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

11

Page 12: Steganography vs Criptography

2. Tecniche di Steganografia

2.1. Idea di base

Steganografia :o il messaggio è nascostoo il nemico per poter leggere il messaggio deve scoprire il mezzo che nasconde il

messaggioo la robustezza del sistema steganografico consiste nella capacità del mezzo di

occultare il messaggio

Crittografia :o il messaggio non è nascostoo il nemico può leggere il messaggio crittatoo in nemico può decrittare il messaggio se ne è in gradoo la robustezza del sistema crittografico coincide esattamente con la robustezza

dell’algoritmo crittografico

2.2. Modelli Steganografici

2.2.1 Steganografia Iniettiva e Generativa

Alcune tecniche, probabilmente le più numerose, consentono di “iniettare” il messaggiosegreto dentro un messaggio contenitore già esistente, modificandolo in modo tale sia dacontenere il messaggio sia da risultare, al livello al quale viene percepito dai sensi umani,praticamente indistinguibile dall’originale. Si indica l’insieme di queste tecniche con iltermine steganografia iniettiva.Le tecniche di questo tipo sono di gran lunga le più diffuse, tanto che in genere con iltermine steganografia ci si riferisce implicitamente a esse. Esistono tuttavia altre tecnichesteganografiche che hanno capacità proprie di generare potenziali messaggi contenitori eutilizzano il messaggio segreto per “pilotare” il processo di generazione del contenitore. Perqueste 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’ senz’altro la tecnica steganografica più diffusa, tanto che spesso quando si parla disteganografia ci si riferisce implicitamente a quella di questo tipo. Alla base di questatecnica c’è un’osservazione: la maggior parte dei canali di comunicazione (linee telefoniche,trasmissioni radio, ecc.) trasmettono segnali che sono sempre accompagnati da qualche tipodi 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, è indistinguibiledal rumore vero e proprio, e quindi può essere trasmesso senza destare sospetti. Quasi tutti i

12

Page 13: Steganography vs Criptography

programmi si basano su questa idea, sfruttando la grande diffusione di file contenenti unacodifica digitale di immagini, animazioni e suoni; spesso questi file sono ottenuti da unprocesso di conversione analogico/digitale e contengono qualche tipo di rumore. Peresempio, uno scanner può essere visto come uno strumento di misura più o meno preciso.Un’immagine prodotta da uno scanner, da questo punto di vista, è il risultato di una specificamisura e come tale è soggetta a essere affetta da errore. Lo stesso discorso lo si può fareanalogamente per un file sonoro che evidentemente è stato acquisito tramite una schedasonora. La tecnica impiegata nella maggior parte dei programmi è concettualmente moltosemplice: sostituire i bit meno significativi dei file digitalizzati con i bit che costituiscono ilfile segreto (i bit meno significativi, infatti, corrispondono ai valori meno significativi,importanti ed evidenti di una misura, cioè proprio quelli che possono essere facilmenteaffetti da errore!). Quello che succede quindi è che il file contenitore risultante, dopoun’iniezione steganografica, si presenta in tutto e per tutto simile all’originale, condifferenze difficilmente percettibili e quindi, a meno di confronti approfonditi con il fileoriginale (comunque non effettuabili ad occhio nudo) è difficile dire se le eventuali perditedi qualità siano da imputare al rumore od alla presenza di un messaggio segretosteganografato. Inoltre il più delle volte il file originale non è disponibile e quindi effettuarequesto confronto è pressochè impossibile. Il principale difetto della steganografia sostitutivaè che le sostituzioni possono alterare le caratteristiche statistiche del rumore nel mediautilizzato. Se il nemico, infatti, possiede un modello del rumore, può utilizzarlo per testarese i file sono conformi al modello; se non lo sono probabilmente si è in presenza di unmessaggio steganografato. Il problema di questo tipo di attacco però sta nella difficoltà dicostruire un modello che tenga conto di tutti i possibili errori o rumori. In casi moltospecifici comunque questo tipo di attacco ha avuto buon successo e la steganografia selettivae 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.L’idea su cui si basa è quella di procedere per tentativi, ripetendo una stessa misura fintantoche il risultato non soddisfa una certa condizione. Si fissi una funzione hash semplice, daapplicare a un’immagine in forma digitale (una funzione hash è una qualsiasi funzionedefinita in modo da dare risultati ben distribuiti nell’insieme dei valori possibili; tipicamentequesto si ottiene decomponendo e mescolando in qualche modo le componentidell’argomento); per semplificare al massimo, diciamo che la funzione vale 1 se il numero dibit uguali a 1 del file che rappresenta l’immagine è pari, altrimenti vale 0 (si tratta di unesempio poco realistico ma, come dicevamo, questa discussione ha valore esclusivamenteteorico). Così, se vogliamo codificare il bit 0 procediamo a generare un’immagine con unoscanner; se il numero di bit dell’immagine uguali a 1 è dispari ripetiamo di nuovo lagenerazione, e continuiamo così finché non si verifica la condizione opposta. Il puntocruciale è che l’immagine ottenuta con questo metodo contiene effettivamentel’informazione segreta, ma si tratta di un’immagine “naturale”, cioè generata dallo scannersenza essere rimanipolata successivamente. L’immagine è semplicemente sopravvissuta a unprocesso di selezione (da cui il nome della tecnica), quindi non si può dire in alcun modoche le caratteristiche statistiche del rumore presentano una distorsione rispetto a un modellodi riferimento. Come è evidente, il problema di questa tecnica è che è troppo dispendiosarispetto alla scarsa quantità di informazione che è possibile nascondere.

2.2.4 Steganografia Costruttiva

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

13

Page 14: Steganography vs Criptography

l’informazione segreta opportunamente modificata in modo da imitare le caratteristichestatistiche del rumore originale. Secondo questa concezione, un buon sistema steganograficodovrebbe basarsi su un modello del rumore e adattare i parametri dei suoi algoritmi dicodifica in modo tale che il falso rumore contenente il messaggio segreto sia il più possibileconforme al modello. Questo approccio è senza dubbio valido, ma presenta anche alcunisvantaggi. Innanzitutto non è facile costruire un modello del rumore: la costruzione di unmodello del genere richiede grossi sforzi ed è probabile che qualcuno, in grado di disporre dimaggior tempo e di risorse migliori, riesca a costruire un modello più accurato, riuscendoancora a distinguere tra il rumore originale e un sostituto. Inoltre, se il modello del rumoreutilizzato dal metodo steganografico dovesse cadere nelle mani del nemico, egli lo potrebbeanalizzare per cercarne possibili difetti e quindi utilizzare proprio il modello stesso percontrollare che un messaggio sia conforme a esso. Così, il modello, che è parte integrantedel sistema steganografico, fornirebbe involontariamente un metodo di attaccoparticolarmente efficace proprio contro lo stesso sistema.

14

Page 15: Steganography vs Criptography

3. Tecniche di Crittografia

3.1. Modelli Crittografici

Esistono molti algoritmi crittografici, ognuno dei quali cerca di stabilire un trade-off trasicurezza, velocità e facilità di implementazione. In questo contesto la sicurezza indica laprobabilità che un algoritmo resista agli attacchi attuali e futuri; la velocità indica la potenzadi elaborazione e il tempo necessari per cifrare e decifrare il messaggio, mentre la facilità diimplementazione indica l’eventuale predisposizione dell’algoritmo all’impiego di hardwareo software. Gli algoritmi crittografici si dividono in due grandi famiglie : gli algoritmi a chiave segreta osimmetrici e gli algoritmi a chiave pubblica o asimmetrici. Nessuno degli algoritmicrittografici, siano essi a chiave segreta o a chiave pubblica, è perfetto, ma può esseregiudicato più o meno robusto in base alla difficoltà di risoluzione del problema matematicosul quale si basa l’algoritmo.

3.1.1 Crittografia a chiave segreta o simmetrica – Introduzione

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

Immagine 3.1 : Schema di comunicazione con crittografia simmetrica

Il metodo con il quale per secoli sono stati trasmessi messaggi segreti è detto crittografia achiave singola (o a chiave segreta, per distinguerlo dal metodo a chiave pubblica). Quando Avuole 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 pertrasmettere la chiave ad A: se viene intercettata la comunicazione è compromessa. Poi, Bdeve fidarsi di A. Se A è un agente segreto che fa il doppio gioco, può passare la chiave di Bal nemico; oppure può leggere gli altri messaggi provati di B; o, in modo più sottile, può

15

Plaintext Plaintext

Cifratura Ciphertext Decifratura

ChiaveMittente A

Destinatario B

Page 16: Steganography vs Criptography

fingere di essere B. Infine, in un organismo che necessita di scambiare messaggi segreti, o sihanno 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 è adesempio utilizzato per la cifratura delle password di utente nei sistemi Unix. Su questometodo di cifratura sono basati sistemi di autenticazione per reti locali, come ad esempio ilsistema Kerberos, che viene installato dal gestore della rete, e provvede, tramite un archivioriservato di chiavi segrete, ad autenticare l’identità di chiunque usi la rete. Ad esempio, seuna persona vuole accedere tramite la rete ad un proprio account, egli deve fornire la propriachiave segreta, che viene confrontata con quella conservata nell’archivio.

3.1.2 Crittografia a chiave segreta o simmetrica – DES

DES non è altro che l'acronimo di Data Encryption Standard. E' un algoritmo crittograficosimmetrico, viene usata quindi una sola chiave per crittografare e decrittografare, inventatoda IBM negli anni 70. La NSA (National Security Agency) circa 30 anni fa indisse unconcorso perchè aveva la necessità di avere un algoritmo di cifratura avanzato chepermettesse 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 laprotezione dei dati. Durante questi anni però la sue prestazioni in termini di sicurezza sonostate messe un po' in discussione visto che era possibile con attacchi di brute force violare ilcodice e scoprire i dati. Il DES quindi era stato sviluppato ulteriormente e aveva portato allacreazione di un 3DES, una versione evoluta che criptava tre volte lo stesso blocco di daticon chiavi diverse. Questa soluzione anche più sicura della precedente richiedeva però piùtempo di calcolo.

Immagine 3.2 : Diagramma dell’algoritmo DES

DES si basa in modo significativo sull’algoritmo Lucifer, inventato da Horst Feistel, che nonha mai avuto una grande diffusione. Sostanzialmente DES impiega una chiave singola di 64bit di cui 56 di dati e 8 di parità, e agisce sui dati in blocchi di 64 bit. Tale chiave è suddivisain 16 sottochiavi di 48 bit, una per ogni ciclo di Feistel. Ogni ciclo consiste in una fasesostitutiva, in cui i dati vengono sostituiti con parti della chiave, e in una fase di

16

Page 17: Steganography vs Criptography

permutazione, in cui i dati sostituiti vengono riordinati. Le operazioni di sostituzione, detteanche di confusione, hanno luogo nelle S-box, mentre quelle di permutazione, dette anche didiffusione, nelle P-box; entrambe le tecniche si svolgono nel diagramma illustrato nellafigura 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 nonsono lineari, il testo cifrato, non somiglia in alcun modo al messaggio originale; diconseguenza, le tecniche di analisi basate sul linguaggio non rivelano alcunché. Leoperazioni di permutazione, inoltre, aggiungono un livello di sicurezza rimescolando ilmessaggio già parzialmente modificato. Tuttavia esistono due modi per rendere più sicurialgoritmi 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 elaborazionenecessarie per codificare e decodificare i dati e rallentano tale procedura, in quanto occorreun maggior numero di operazioni matematiche. Tra gli esempi di DES modificato vi sono3DES, chiamato anche DES triplo e DESX. Il primo utilizza tre chiavi DES separate di 56bit al posto della chiave singola di 168 bit. Il DESX invece aggiunge 64 bit di dati allachiave. 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 duechiavi). Invece di affidarsi alle tecniche di sostituzione e trasposizione della crittografiasimmetrica, gli algoritmi asimmetrici si affidano all’uso dei problemi della teoria deinumeri. Molti di questi problemi sono semplici da svolgere in una direzione, madifficilissimi in quella opposta : per esempio, se moltiplicare due numeri è facile non lo ècerto l’operazione opposta, cioè risalire ai numeri originari soprattutto se gli interi utilizzaticontengono centinaia di cifre. Perciò in genere la sicurezza di questi algoritmi dipende dallanon fattibilità degli attacchi di forza bruta, ma da quella delle complicate operazionimatematiche inverse e degli avanzamenti della teoria matematica che possono proporrenuove tecniche “scorciatoia”.

17

Page 18: Steganography vs Criptography

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 possonocifrare 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. SoloA 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 gliutenti, infatti ogni utente genera la propria coppia di chiavi composta dalla chiave pubblica edalla 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 sistemapublic-key più implementato in assoluto. Prende il nome dai suoi inventori: Ron Rivest, AdiShamir e Leonard Adleman. Come già detto, essendo un crittosistema asimmetrico, lachiave con cui viene criptato il messaggio è differente da quella con cui viene decriptato inricezione. Allora la chiave K sarà formata da kpub, pubblica, e kpriv, privata; le due chiavipossono essere ricavate l'una dall'altra, ma il punto di forza su cui si basa RSA è chel'operazione di derivare la chiave segreta da quella pubblica è troppo complessa per venireeseguita in pratica, anche su un calcolatore molto potente. In questo tipo di cifrari hannogrande importanza le cosidette funzioni one-way con trapdoor : come già detto, si tratta difunzioni invertibili tali che il calcolo della funzione diretta sia facile, mentre quello dellainversa sia difficile per tutti coloro che non sono in possesso della chiave corretta. Unesempio di tale funzione è il logaritmo in base B dove l'inverso è appunto l'esponenziale. Sela base B è un numero ragionevolmente piccolo, il calcolo sia della funzione diretta che dellainversa non risulta particolarmente difficile; diversa sarebbe la situazione se il modulo obase fosse un numero primo enorme, poiché la complessità di calcolo sarebbe a dir pocoproibitiva.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

A BCanale di comunicazione insicuro

Chiave pubblica kpub di A

Chiave pubblica kpub di B

Chiave privata kpriv di A Chiave privata kpriv di B

Page 19: Steganography vs Criptography

Indichiamo i passaggi del cifrario:

Trovare due numeri primi molto grandi P e Q tale che il prodotto o modulo è dettoN=PQ;

Scegliere E minore di N tale che sia primo con (P-1)(Q-1), il che significa non averefattori primi in comune. E deve essere dispari. (P-1)(Q-1) non può essere primoperché è 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 eD, perciò E è definito l'esponente pubblico e D quello privato. Si può pubblicare la chiavepubblica liberamente perché non si conoscono metodi per calcolare D, P e Q dati N=PQ edE.

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, quandoparliamo di dimensione della chiave, intendiamo quella del modulo N. La scelta delladimensione di N dipende dal bisogno di sicurezza. Più lungo è il modulo, maggiore è lasicurezza ma anche più lente sono le operazioni di cifratura. Infatti raddoppiando lalunghezza della chiave si incrementa il numero di operazioni necessarie per lacifratura/decifratura con public-key di un fattore 4, e quelle eseguite con secret-key di unfattore 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. Diversamentel'esponente segreto D deve incrementarsi proporzionalmente ad N. Si dovrà allora trovare uncompromesso determinato su considerazioni riguardanti: l'importanza dei dati da proteggere,e quindi la necessità di sicurezza, ed una valutazione di quanto potrebbe essere astuto coluiche volesse attaccare il cifrario. Rivest stima che un modulo di 512 bit può esserefattorizzato con strumenti sofisticati di un valore circa di 8 milioni di dollari. Potrebbeperciò 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 testocifrato

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 dubbiasicurezza, si può sfruttare tale algoritmo, mostriamo un esempio di tale applicazione.

19

Page 20: Steganography vs Criptography

Mettiamo che A voglia inviare un documento firmato a B, M. A crea una firma digitale Scon 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 eprivacy 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 Bpotrà leggere il documento, dato che sarà l'unico a possedere la chiave segreta con cuidecifrarlo.

La rottura di RSA si potrebbe verificare nel caso in cui un attacker scopra la chiave privatacorrispondente a quella pubblica; questo permetterebbe a un nemico di leggere tutti imessaggi cifrati con la chiave pubblica e contraffare la firma. Ovviamente per determinare lachiave segreta D il nemico dovrebbe fattorizzare il modulo N nei due termini P e Q econoscere l'esponente E. La fattorizzazione è un'operazione estremamente difficilesoprattutto se i numeri coinvolti sono molto grandi. Per valutare quanto sia laborioso trovareuna soluzione a tale problema fu lanciata una sfida, nel 1977, ad un gruppo di volontari cheavrebbero dovuto scomporre in fattori primi il numero conosciuto come RSA-129 (di 129cifre). La sfida rimase priva di risposta fino al 1993 quando Graff, Athins, Leyland e Lenstradecisero di prendere la cosa sul serio. Furono coinvolte 600 persone e 1600 computer in 25paesi diversi, che sfruttarono l'implementazione detta "Multiple Polynomial QuadraticSieve". 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ò esserescomposto anche se con forze enormi, per cui data la continua crescita tecnologica deisistemi di computer e il loro calo nel prezzo bisogna pensare ad un modulo di almeno 1024cifre 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 diquesto tipo è però conosciuto. Esistono, inoltre, altri metodi che mirano alla scoperta di unsingolo messaggio per esempio un semplice messaggio tipo «Attacker at dawn» (attaccoall'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 aviolarlo effettivamente.

20

Page 21: Steganography vs Criptography

4. Conclusioni

La steganografia, come abbiamo potuto constatare, tende quindi a nascondere un messaggioma ha un grosso punto debole: una volta intercettato il messaggero (sia esso in carne ed ossache digitale) è solo questione di una attenta perquisizione per trovare il messaggio e carpirnei contenuti. Per ovviare a questo problema si è sviluppata parallelamente un'altra tecnica: la crittografiache 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 delnemico. In ambito crittografico si danno le definizioni di vari livelli di robustezza di unsistema, a seconda della capacità che esso ha di resistere ad attacchi basati su vari tipi diinformazioni a proposito del sistema stesso. In particolare, i sistemi più robusti sono quelliche soddisfano i requisiti posti dal principio di Kerckhoff, che formulato in ambitosteganografico suona più o meno così: la sicurezza del sistema deve basarsi sull'ipotesi che ilnemico abbia piena conoscenza dei dettagli di progetto e implementazione del sistemastesso; la sola informazione di cui il nemico non può disporre è una sequenza (corta) dinumeri 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 unacomunicazione nascosta.Se si vuole aderire a questo principio, è evidente che le tecniche esposte fin qui non sonoancora soddisfacenti per caratterizzare un sistema steganografico completo. Infatti, se idettagli di implementazione dell'algoritmo sono resi di dominio pubblico, chiunque è ingrado di accedere a eventuali informazioni nascoste, semplicemente applicando ilprocedimento inverso. Per affrontare questo problema, è necessario introdurre una fase dipre-elaborazione del file segreto, che lo renda non riconoscibile - da parte del nemico - comeportatore di informazioni significative. La soluzione più ovvia è quella di impiegare unsistema di crittografia convenzionale, come ad esempio DES o RSA, i quali garantisconoappunto l'inaccessibilità da parte del nemico al messaggio vero e proprio.

RSA non è una alternativa a DES ma un supporto, infatti RSA permette due importantifunzioni 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, poila stessa chiave viene criptata con RSA. Insieme il cipher-text ottenuto con DES unitamentealla chiave cifrata con RSA è inviato al destinatario. In ricezione verrà prima decifrata lachiave (crittografia asimmetrica) quindi decriptato il testo con tale chiave nel modotradizionale (crittografia simmetrica). In taluni casi RSA non è necessario, per esempionelle "trasmissioni multiutente", dove le due parti possono mettersi d'accordo sulla chiavedurante incontri (meeting) strettamente privati. In casi che coinvolgono un unico utente,qualora egli volesse conservare un file personale cifrato, non è necessario uno scambio dichiavi. E' ovvio che se si richiede una firma digitale o una trasmissione di dati tra utenti che non sipossono incontrare, sarà necessario usare RSA. DES è molto più veloce di RSA, a livello di

21

Page 22: Steganography vs Criptography

software possiamo dire che è circa 100 volte superiore e, come hardware, dalle 1000 alle10.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 – PRIVATECommunication 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 CRCpress1996

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

Page 23: Steganography vs Criptography

David R. Mirza Ahmad, Hal Flynn, Robert Graham. Hack Proofing, McGraw-Hill, Milano2002

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