Breve storia della crittografa

Documenti analoghi
Crittografia per la sicurezza dei dati

Elementi di Crittografia

Storia della Crittografia. dalle origini al XVI secolo

CRITTOGRAFIA E NUMERI PRIMI TFA A059 ANNA NOBILI OTTAVIANO ROSI

Elementi di Algebra e di Matematica Discreta Cenno di un applicazione alla crittografia

La crittografia. La crittografia è un'arte antica, risale almeno ai Greci (Tucidide, scitala lacedemonica).

Aritmetica modulare: un applicazione alla crittografia

Crittografia con Python

CODICI. Crittografia e cifrari

Crittografia con Python

CRITTOGRAFIA 2014/15 Appello del 13 gennaio Nome: Cognome: Matricola:

Crittografia a chiave pubblica

Elementi di crittografia: La crittografia simmetrica

La firma digitale, o firma elettronica qualificata, basata sulla tecnologia della crittografia a chiavi asimmetriche, è un sistema di autenticazione d

la crittografia tratta delle "scritture nascoste", dei metodi per rendere un messaggio "offuscato"

Crittografia e firma digitale INTRODUZIONE INTRODUZIONE

CIFRARI MONOALFABETICI

CODICI SEGRETI: UN VIAGGIO NELLA CRITTOGRAFIA

CRITTOGRAFIA: introduzione

Crittografia con Python

Crittografia da Whatsapp a Wikileakes, tra spie e segreti di stato

Elementi di crittografia

Il documento informatico e la firma digitale

Crittografia. Steganografia

Crittografia a chiave pubblica

Informatica di base 6/ed

Aritmetica modulare, numeri primi e crittografia

Crittografia: dagli antichi codici di Cesare ai protocolli avanzati

Aritmetica e Crittografia

Storia della crittografia

BLOWFISH. Introduzione Algoritmo. Prestazioni Cryptanalysis of Vaundenay. Egizio Raffaele

I Cifrari Perfetti. Alessio Nunzi Fabiola Genevois Federico Russo

Il cifrario di Vigenère. Bizzoni Stefano De Persiis Angela Freddi Giordana

NUMERI E CRITTOGRAFIA. Carlo Toffalori (Camerino) Scuola Estiva Mathesis Telese Terme, 28 luglio 2015

Crittografia. Appunti a cura del prof. Ing. Mario Catalano

RETI DI CALCOLATORI. Crittografia. La crittografia

logaritmo discreto come funzione unidirezionale

Sistemi lineari. Lorenzo Pareschi. Dipartimento di Matematica & Facoltá di Architettura Universitá di Ferrara

Introduzione alla Crittografia Moderna

Aritmetica dei Calcolatori

FIRMA ELETTRONICA. Il sistema di garanzia è stato individuato nella crittografia in quanto è in grado di assicurare:

crittografia a chiave pubblica

La rappresentazione delle informazioni

Il documento informatico e le firme elettroniche

Disciplina: Sistemi e reti Classe: 5A Informatica A.S. 2015/16 Docente: Barbara Zannol ITP: Alessandro Solazzo

Sicurezza nelle applicazioni multimediali: lezione 4, crittografia asimmetrica. Crittografia asimmetrica (a chiave pubblica)

Conversione di base. Conversione decimale binario. Si calcolano i resti delle divisioni per due

Sommario. Introduzione alla Sicurezza Web

! La crittoanalisi è invece la scienza che cerca di aggirare o superare le protezioni crittografiche, accedendo alle informazioni protette

Rappresentazione dei numeri interi in un calcolatore

Steganografia in un. Corso di Sicurezza dei sistemi informatici Michelangelo Rinelli Anno Accademico 2005/06

La codifica di sorgente

Corso di Informatica Generale (C. L. Economia e Commercio) Ing. Valerio Lacagnina Rappresentazione dei numeri relativi

Breve storia dei calcolatori

Fondamenti di Informatica - 1. Prof. B.Buttarazzi A.A. 2011/2012

Università degli Studi di Milano

Laurea Magistrale in Bioingegneria Corso di Informatica Medica (Prof. Giovanni Sparacino) A.A

Foglio Elettronico Lezione 1

Identificazione, Autenticazione e Firma Digitale. Firma digitale...

Privacy e firma digitale

1 Esercizi in pseudocodice

CURRICOLO DI ISTITUTO

E necessaria la chiave segreta? RSA. Funzioni One-way con Trapdoor. Un secondo protocollo

Problemi, algoritmi, calcolatore

Transcript:

Breve storia della crittografa Il problema di codificare o cifrare un messaggio è stato affrontato, generalmente per usi militari, attraverso tutta la storia della civiltà umana. Plutarco descrive la scitala lacedemonica come un codice di cifratura in uso dai tempi di Licurgo (IX sec a.c.), circa tremila anni fa. Si trattava di un dispositivo di cifratura costituito da un bastone e da un nastro di cuoio avvolto a spirale cilindrica, su cui il messaggio veniva scritto per colonne. Sul nastro srotolato le lettere risultavano trasposte in modo tale che solo l adozione di un bastone identico a quello originariamente usato per la scrittura del messaggio consentiva di ricomporre il testo. Il primo trattato di crittografia risale al 400 a.c. circa, ad opera del generale arcadico Enea il Tattico, in cui vengono descritti prevalentemente sistemi di meccanici di cifratura analoghi alla scitala lacedemonica. Con la civiltà dei Greci e l Impero Romano, la cifratura di un messaggio avveniva per semplice sostituzione o traslitterazione. I codici di Cesare e di Augusto erano infatti basati proprio su questa tecnica, adottando l alfabeto romano. Il codice di Atbash, basato sull alfabeto ebraico, era una versione ancor più semplificata di codice per sostituzione: la prima lettera dell alfabeto veniva scambiata con l ultima, la seconda con la penultima e così via. Polibio con la sua scacchiera, ideò un metodo per sostituire lettere a coppie di numeri. La scacchiera di Polibio era costruita inserendo le lettere dell alfabeto in una matrice rettangolare e sostituendo nel messaggio la riga e la colonna corrispondente ad ogni lettera. Fig.1 Esempio di scacchiera di Polibio La figura 1 è stata costruita utilizzando il metodo proposto da Polibio. Ad esempio, il termine (amore) viene codificato sostituendo il numero di riga e colonna per ogni lettera che lo compone, come in figura 2. = 1113113421 Fig.2 Esempio di codifica di Polibio

A dispetto dell apparente semplicità della codifica di Polibio, tale metodo suggeriva una interessante soluzione al problema della trasmissione del messaggio: una frase poteva venire trasmessa a distanza, infatti, mediante segnali luminosi. Attraverso tutto il medioevo poi, la crittografia veniva utilizzata per scopi militari o diplomatici con varianti del metodo della sostituzione, utilizzando per lo più abbreviazioni, o nomenclature, di nomi, luoghi. Dal XVI secolo, i codici del Della Porta, Bellasio, Alberti e Vigenere introducono, pur se con metodologie diverse, il concetto di chiave, talvolta definita verme letterale, per il controllo del processo di cifratura. L idea è di utilizzare una sequenza di caratteri dedicata al fornire informazioni necessarie e sufficienti, unita ad un metodo, senza la quale sarebbe impossibile riottenere il messaggio originale. Ad esempio, l Alberti utilizzava delle lettere di controllo inserite nel testo cifrato per determinare quale lista di lettere utilizzare per la cifratura locale del brano; Della Porta e Bellasio utilizzano la chiave come strumento di generazione del messaggio codificato; Vigenere unisce il metodo di sostituzione al concetto di chiave, utilizzando una matrice quadrata di sostituzione e la chiave come strumento di selezione della riga da utilizzare. Thomas Jefferson, presidente degli Stati Uniti ed autore della dichiarazione di Indipendenza ideò un codice di cifratura meccanico, mediante un cilindro costituito da 36 dischi con le 26 lettere dell alfabeto in ordine sparso. Il codice è considerato ancor oggi sicuro. Ma è con l avvento del XX secolo, della guerra e, quindi, dei calcolatori che la vita dei ideatori di codici si è fatta più complessa. Tutti i sistemi ideati fino ad allora avevano l inconveniente di essere obsoleti non appena il metodo di decifrazione, meccanico o cartaceo che sia, fosse reso pubblico. Ottenuto il bastone originale nella scitala lacedemonica o il cilindro di Jefferson chiunque sarebbe in grado di procedere alla decodifica. Alan Turing, matematico e padre de facto dell informatica, è stato al centro di epiche vicende di decrittazione, a colpi di macchine calcolatrici sempre più potenti ed algoritmi sempre più efficaci che hanno costellato la storia della crittografia dalla seconda guerra mondiale in poi. La vera sfida del ventesimo secolo era, quindi, l ideazione di un codice per cui anche il più potente dei calcolatori impiegasse millenni per la decodifica. Il problema era, infatti, che i metodi ideati non erano in grado di resistere ad una analisi esaustiva di un calcolatore sufficientemente potente da tentare tutte le combinazioni possibili. Nel 1975 IBM ha introdotto il Data Encryption System, o DES, un codice a chiave basato su una sequenza di sostituzioni e trasposizioni operate in base ad una chiave di 64 bit. Tale metodo fu al centro di un aspra ed accesa polemica perché il numero di chiavi distinte a 64 bit è pari a 2 64, ulteriormente ridotto a 2 56 considerando che 8 bit della

chiave sono destinati al controllo: un numero di combinazioni alla portata di molti computer moderni. Il DES differisce dagli altri metodi per il fatto di non dover essere mantenuto segreto, il fatto che venga reso pubblico non garantisce affatto la possibilità di decodificare i messaggi. All IBM va riconosciuto, infatti, di aver ideato un algoritmo sufficientemente complesso e caratterizzato da importanti vantaggi quali: 1. E di dominio pubblico 2. La decodifica è interamente legata alla chiave 3. E sufficientemente resistente ad un attacco esaustivo mediante calcolatore La crittografia a chiave pubblica secondo Rivest, Shamir ed Adlemann Nel 1978, R. Rivest, A. Shamir, L. Adleman, pubblicarono l articolo "A Method for Obtaining Digital Signatures and Public-key Cryptosystems", destinato dare una soluzione al problema in grado di resistere alla potenza dei calcolatori per parecchi anni a venire. Il metodo di cifratura venne codificato in un algoritmo che prese il nome dalle iniziali dei tre matematici: algoritmo RSA. Gli algoritmi di crittografia a chiave pubblica, come RSA, sono caratterizzati da una coppia di chiavi dette pubblica e privata. La chiave pubblica va distribuita ai destinatari dei messaggi e la chiave privata va mantenuta segreta dal mittente. Con la chiave privata vengono decodificati solo i messaggi codificati da chi possiede la chiave pubblica corrispondente. Le chiavi sono generate in modo tale che non sia possibile calcolare la chiave privata a partire da quella pubblica. Supponiamo che due persone, A e B, debbano scambiarsi un messaggio: 1. B genera due chiavi, una pubblica e l altra privata 2. B mantiene la chiave privata per se e comunica a A la chiave pubblica 3. A codifica il messaggio con la chiave pubblica di B e lo invia 4. B riceve il messaggio da A, e lo decodifica con la propria chiave privata Prima di descrivere l algoritmo RSA è necessario un richiamo sull Aritmetica Modulare. Supponiamo di avere a disposizione solo n cifre, diciamo 12, e di disporle come in un quadrante di orologio. Applichiamo i concetti di addizione e moltiplicazione usuali, salvo che, al superare il 11, ricominciamo a contare circolarmente da 0. Nell aritmetica usuale l addizione diviene, nell aritmetica modulo 12 7 + 8 = 15

7 + 8 = 3 (mod 12) ci si convince facilmente di ciò osservando il proprio orologio ed assegnando le cifre come da fig. 3 Fig. 3 Aritmetica modulo 12 sul quadrante di un orologio Così aggiungendo 8 al 7, si arriva al 3. Nell aritmetica modulo n la moltiplicazione è definita in modo analogo all aritmetica ordinaria come: e lo stesso vale per la potenza a*b (mod n) = a+a+a+ <b volte>...+a (mod) n a b (mod n) = a* < b volte >* a (mod n) L algoritmo RSA è quindi definito come segue: Generazione delle chiavi pubbliche e private 1. Siano p e q due numeri primi molto grandi 2. sia m = (p-1)(q-1) 3. sia n = pq 4. si trovi un numero d non necessariamente grande, relativamente primo ad n 5. si trovi e tale che de = 1 (mod m) 6. la chiave pubblica è la coppia (d,n) 7. la chiave privata è la coppia (e,n) Codifica di un messaggio M Il messaggio codificato è C(M) = M d (mod n) Decodifica di un messaggio C Il messaggio decodificato è M (C) =C e (mod n) Pur conoscendo il meccanismo di codifica, la decodifica di un messaggio senza conoscere la chiave privata e è un operazione per cui anche il più potente dei calcolatori

impiegherebbe secoli, riconducendo a noti problemi intrattabili nella scienza dei calcolatori, infatti: 1. Ignorando la chiave pubblica bisognerebbe calcolare la radice di ordine d, in aritmetica modulo n di M. Problema intrattabile. 2. Anche conoscendo la chiave pubblica d, il calcolo di e implicherebbe la necessità di trovare i numeri primi p e q che, se scelti nell ordine di 10 200, producono di nuovo un problema intrattabile. Si noti che un algoritmo come RSA può difficilmente divenire obsoleto perché riconduce a problemi la cui tecnica di soluzione è nota, ma coinvolge necessariamente un tempo di calcolo enorme, allo stato attuale della ricerca.