Introduzione alla Crittografia. L algoritmo DES. Bruno Martino - Fabio Guglietta

Dimensione: px
Iniziare la visualizzazioe della pagina:

Download "Introduzione alla Crittografia. L algoritmo DES. Bruno Martino - Fabio Guglietta"

Transcript

1 Introduzione alla Crittografia L algoritmo DES Bruno Martino - Fabio Guglietta

2 Cosa faremo oggi? Convenzioni Uso della libreria di utilita Struttura del programma Modalita operative

3 Uso della libreria (1) Le convenzioni sono importanti: il primo byte è quello di sinistra o di destra? i bit da quale parte vanno contati? Immaginiamo di dovere rappresentare una stringa di bit (ricordate cosa è una stringa?), quale è la sua rappresentazione più conveniente? Le tipologie di dato utili in C sono riconducibili a numeri interi: char, int

4 Uso della libreria (2) Ricordiamo quale è la lunghezza di questi tipi di dato primitive: char: 8 bit short int: 16 bit long int: 32 bit long long int: 64 bit e se devo rappresentare un numero lungo 56 bit?

5 Uso della libreria (3) La struttura aggregata di bit più comoda è il byte; ogni stringa di bit verrà inserita in contenitori lunghi 8 bit. Proviamo ad usare le funzioni di libreria e consideriamo il seguente codice C : Il programma legge da tastiera 32 bit in 4 fasi distinte, li converte in formato BS poi li stampa su schermo utilizzando le funzioni di libreria Uchar2BS e PrintBS

6 Uso della libreria (4) Come si può notare la funzione PrintBS fornisce utili informazioni relative al format della BS prodotta

7 Uso della libreria (5) La funzione di conversione inversa della Uchar2BS (BS2Uchar) accetta in ingresso una stringa NULL terminated

8 Struttura del programma Se il controllo dei parametri fallisce si interrompe segnalando un errore Vengono generate le sottochiavi (scheduled keys) necessarie al processo di cifratura/decifratura I dati vengono letti dalla console in blocchi di 8 bytes (64 bit) e criptati o decriptati Se l ultimo blocco non è completo (lunghezza del flusso di ingresso non multipla di 8 bytes) viene riempito con un carattere di padding e processato

9 Fasi della cifratura La cifratura di un blocco di dati con l algoritmo DES si può suddividere in 3 fasi: Una permutazione iniziale (IP) dei bit componenti il blocco dati 16 cicli di processamento identici detti round Una permutazione inversa (FP) dei bit processati IP ed FP non hanno rilevanza per la cifratura

10 Round Il blocco dati di 64 bit viene suddiviso in due sottoblocchi lunghi 32 bit (R ed L o destro e sinistro) La parte destra viene processata da una funzione che opera delle trasposizioni e delle sostituzioni chiamata funzione Feistel (dal nome del suo autore) L uscita della funzione Feistel viene sommata in XOR con la parte sinistra, il risultato diventa la nuova parte destra La nuova parte sinistra viene posta uguale alla parte destra non processata

11 Inverse Round Il processo di decodifica è speculare rispetto a quello di codifica. Le permutazioni iniziale e finale sono complementari tra di loro. L unica accortezza consiste nell applicare le chiavi generate nella fase scheduled keys in ordine inverso

12 La funzione Feistel Il blocco in ingresso da 32 bit viene espanso a 48 utilizzando una funzione che ne duplica 16 e permuta la stringa così ottenuta Il risultato della funzione di espansione viene combinato in XOR con la sottochiave relativa al round corrente La stringa di 48 bit cosi ottenuta viene organizzata in sottosequenze da 6 bit che costituiscono l ingresso delle s-box (box di sostituzione) Ogni s-box S i sostituisce i sei bit in ingresso con quattro bit in uscita mediante una trasformazione non lineare La sequenza di bit ottenuta viene ulteriormente permutata

13 Scheduled keys L algoritmo DES partendo dai 56 bit della chiave (64 bit iniziali senza il bit di parità, LSB) produce 16 sottochiavi usate per ognuno dei 16 passaggi del DES Una chiave debole (weak key) per il DES può arrivare a produrre 16 sotto-chiavi identiche Usando chiavi deboli la funzione PC1 del gestore della chiave del DES genera sottochiavi composte tutte da "0", tutte da "1" o sequenze alternate di "0" ed "1 Con sottochiavi identiche la funzione di cifratura è invertibile, vale a dire che eseguendo due cifrature si ottiene il testo in chiaro originale.

14 Scheduled keys (DES_Init) DES_BitMixer (bkey, TMPstring, PermutedChoice1, KEYLEN); for (i=0; i<nrounds; i++) { DES_LeftShiftN (lkeystring, KEYLEN/2, LeftShiftTab [i]); DES_LeftShiftN (rkeystring, KEYLEN/2, LeftShiftTab [i]); strcpy (TMPkey, lkeystring); strcat (TMPkey, rkeystring); DES_BitMixer (TMPstring, FINkey, PermutedChoice2, KEYLEN); strcpy (KeysSet [i], FINkey); }

15 Sbox non lineari L'unico punto in cui il sistema DES non utilizza relazioni di tipo lineare tra ingressi ed uscite è nelle Sbox, che sono il fulcro dell'algoritmo Tali relazioni garantiscono il necessario requisito di confusione (Shannon) Cambiando un bit nell'ingresso cambiano almeno due bit in uscita (effetto valanga) Questa è una caratteristica di ogni algoritmo di criptazione; in DES l effetto valanga è molto forte for (i=0; i<sboxnum; i++) { row = 0; col = 0; j = i * 6; } if (INstring [j] == '1') row = row + 2; if (INstring [j + 5] == '1') row = row + 1; if (INstring [j + 1] == '1') col = col + 8; if (INstring [j + 2] == '1') col = col + 4; if (INstring [j + 3] == '1') col = col + 2; if (INstring [j + 4] == '1') col = col + 1; s = sbox [i][row][col] * 16;

16 Le permutazioni L algoritmo DES fa largo uso di permutazioni; nella libreria mydeslib se ne occupa la funzione BitMixer. Ogni permutazione fa uso di una tabella che indica la posizione dell i-esimo bit nella stringa permutata Per esempio: tabella: dato iniz: dato fin:

17 Cifratura di un blocco DES_BitMixer (bdatablock, TMPstring, InitialPermutationTable, BLKSIZE_b); for (i=0; i<(blksize_b / 2); i++) blstring [i] = TMPstring [i]; for (i=(blksize_b / 2); i<blksize_b; i++) brstring [i - (BLKSIZE_b / 2)] = TMPstring [i]; for (i=0; i<nrounds; i++) { DES_Core (blstring, brstring, NewRstring, i); strcpy (blstring, brstring); strcpy (brstring, NewRstring); } strcpy (TMPstring, brstring); strcat (TMPstring, blstring); DES_BitMixer (TMPstring, boutdblock, InversePermutationTable, BLKSIZE_b);

18 Esempi di utilizzo Lettura di un file DATI.SRC, crittografia e su memorizzazione in DATI.CRYPT: type DATI.SRC mydes bbcdff1 ce > DATI.CRYPT Lettura di un file crittografato DATI.CRYPT, decodifica e memorizzazione in DATI.ORIG: Type DATI.CRYPT mydes bbcdff1 de > DATI.ORIG Crittografia ed invio di un file DATI.LOC ad una macchina remota: type DATI.LOC mydes bbcdff1 ce nc remote 99 Ricezione di un file crittografato e sua memorizzazione locale in DATI.REM: nc l p 99 mydes bbcdff1 de > DATI.REM

19 Modalità operative DES Nome DN PE C D Note ECB SI NO SI SI E la più semplice. I dati in chiaro vengono gestiti 64 bit per volta; ogni blocco di 64 bit viene cifrato con la stessa chiave. CBC SI SI NO SI L'input è lo XOR tra il blocco dati in chiaro corrente e il blocco cifrato precedente; lo stesso blocco in chiaro se ripetuto produce blocchi cifrati diversi. Usa un blocco di inizializzazione. CFB NO SI NO SI I dati vengono cifrati dividendoli in unità di n bit con uno shift register e cifrate con CBC. I bit più significativi vengono messi in XOR con quelli in chiaro. Usa un blocco di inizializzazione OFB NO NO NO NO Il messaggio non diviso in blocchi ma trasformato in un flusso pseudo-casuale di bit (keystream), che viene poi combinato per cifrare il blocco in chiaro. Usa un blocco di inizializzazione. CTR NO NO SI SI Viene usato un contatore crittografato con le dimensioni del blocco applicato in XOR al blocco in chiaro DN: Necessaria decodifica, PE: Propagazione errore C : Codifica parallelizzabile; D : Decodifica parallelizzabile

20 Modalità ECB La modalità ECB è la più semplice. Il testo in chiaro viene gestito 64 bit per volta; i blocchi di 64 bit vengono cifrati con la stessa chiave in modo indipendente

21 Modalità CTR E applicata in ATM (Asynchronous Transfer Mode) e in IPsec (IP security). In questa modalità viene utilizzato un contatore con valore differente per ogni blocco; viene incrementato di un'unità per ogni blocco successivo

Converte una chiave di al più 14 word a 32 bit (K-array) in un array di 18 sottochiavi a 32 bit (P-array) Genera 4 S-box, ognuna con 256 word a 32 bit

Converte una chiave di al più 14 word a 32 bit (K-array) in un array di 18 sottochiavi a 32 bit (P-array) Genera 4 S-box, ognuna con 256 word a 32 bit % RC2 [1989] IDEA (International Data Encryption Algorithm) [1990] Blowfish [1993]!"###"$ SAFER (Secure And Fast Encryption Routine) SAFER K-64 [1994], SAFER K-128 [1995] cifrario bit chiave bit testo

Dettagli

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

BLOWFISH. Introduzione Algoritmo. Prestazioni Cryptanalysis of Vaundenay. Egizio Raffaele Introduzione Algoritmo Prestazioni Cryptanalysis of Vaundenay Egizio Raffaele Introduzione E un cifrario a blocchi a chiave simmetrica Utilizza varie tecniche tra le quali la rete Feistel, le S-box dipendenti

Dettagli

Introduzione alla Crittografia. Le Basi (definizioni, richiami e strumenti) Bruno Martino - Fabio Guglietta

Introduzione alla Crittografia. Le Basi (definizioni, richiami e strumenti) Bruno Martino - Fabio Guglietta Introduzione alla Crittografia Le Basi (definizioni, richiami e strumenti) Bruno Martino - Fabio Guglietta Cosa faremo oggi? Materiale utile Finalità Concetti base Operazioni sul bit Crittografia elementare

Dettagli

Cifrari Simmetrici Contemporanei

Cifrari Simmetrici Contemporanei Cifrari Simmetrici Contemporanei I cifrari simmetrici sono tuttora uno dei tipi di algoritmi crittografici più utilizzati Sono utilizzati per implementare i servizi di confidenzialità (segretezza) e autenticazione

Dettagli

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

Steganografia in un. Corso di Sicurezza dei sistemi informatici Michelangelo Rinelli Anno Accademico 2005/06 Steganografia in un file di testo Corso di Sicurezza dei sistemi informatici Michelangelo Rinelli Anno Accademico 2005/06 Steganografia È l arte di nascondere un messaggio all interno di un altro messaggio

Dettagli

Cifrari a blocchi. Esercizi con OpenSSL. Alfredo De Santis. Marzo Dipartimento di Informatica Università di Salerno

Cifrari a blocchi. Esercizi con OpenSSL. Alfredo De Santis. Marzo Dipartimento di Informatica Università di Salerno Cifrari a blocchi Esercizi con OpenSSL Alfredo De Santis Dipartimento di Informatica Università di Salerno ads@unisa.it http://www.dia.unisa.it/professori/ads Marzo 2017 Strumenti Necessari Per lo svolgimento

Dettagli

Cifrari a blocchi: Data Encryption Standard

Cifrari a blocchi: Data Encryption Standard Cifrari a blocchi: Data Encryption Standard Alfredo De Santis Dipartimento di Informatica Università di Salerno ads@dia.unisa.it http://www.dia.unisa.it/professori/ads Cifrari simmetrici! Crittosistemi

Dettagli

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

Laurea Magistrale in Bioingegneria Corso di Informatica Medica (Prof. Giovanni Sparacino) A.A. 2008-2009 Laurea Magistrale in Bioingegneria Corso di Informatica Medica (Prof. Giovanni Sparacino) A.A. 2008-2009 Homework Parte 3: Sicurezza dei dati sanitari Esercizi, e relative soluzioni, a cura dell Ing. Costanza

Dettagli

Altri cifrari a blocchi

Altri cifrari a blocchi Altri cifrari a blocchi Barbara Masucci Dipartimento di Informatica ed Applicazioni Università di Salerno masucci@dia.unisa.it http://www.dia.unisa.it/professori/masucci RC2 [1989] IDEA (International

Dettagli

Definizione. La crittografia serve per: Crittografia deriva dal greco = scrittura nascosta

Definizione. La crittografia serve per: Crittografia deriva dal greco = scrittura nascosta Crittografia Definizione La crittografia serve per: Celare il significato del messaggio Garantire l autenticità del messaggio Identificare l autore del messaggio Firmare e datare il messaggio Crittografia

Dettagli

Corso di Crittografia Prof. Dario Catalano. Advanced Encryption Standard

Corso di Crittografia Prof. Dario Catalano. Advanced Encryption Standard Corso di Crittografia Prof. Dario Catalano Advanced Encryption Standard Perche un nuovo standard? n Quando si è deciso di sostituire DES, questo era ancora sicuro. n Sorge naturale la questione del perche

Dettagli

Informatica. Mario Pavone - Dept. Mathematics & Computer Science - University of Catania. Trasferimento. Ambiente esterno.

Informatica. Mario Pavone - Dept. Mathematics & Computer Science - University of Catania. Trasferimento. Ambiente esterno. Trasferimento Ambiente esterno Controllo Informatica Mario Pavone - Dept. Mathematics & Computer Science - University of Catania mpavone@dmi.unict.it Cos è l Informatica La scienza della rappresentazione

Dettagli

Dati aggregati. Violetta Lonati

Dati aggregati. Violetta Lonati Università degli studi di Milano Dipartimento di Scienze dell Informazione Laboratorio di algoritmi e strutture dati Corso di laurea in Informatica - in breve: Definizione di tipi Array Stringhe Strutture

Dettagli

!"### "$ " Applicazioni. Autenticità del messaggio M Integrità del messaggio M. Stelvio Cimato DTI Università di Milano, Polo di Crema

!### $  Applicazioni. Autenticità del messaggio M Integrità del messaggio M. Stelvio Cimato DTI Università di Milano, Polo di Crema !"### "$ " %& Applicazioni Autenticità del messaggio M Integrità del messaggio M 1 2 ' Easy computation: dato un valore M e la chiave K, MAC(K,M) è facile da calcolare Compression: M di lunghezza finita,

Dettagli

RC4 RC4. Davide Cerri. Davide Cerri CEFRIEL - Politecnico di Milano cerri@cefriel.it http://www.cefriel.it/~cerri/

RC4 RC4. Davide Cerri. Davide Cerri CEFRIEL - Politecnico di Milano cerri@cefriel.it http://www.cefriel.it/~cerri/ POLITECNICO DI MILANO CEFRIEL - Politecnico di Milano cerri@cefriel.it http://www.cefriel.it/~cerri/ è un cifrario a flusso progettato da Ron Rivest (la R di RSA) nel 1987. Era un segreto commerciale della

Dettagli

Data Encryption Standard. Alessandro Ballini Silvio Donnini Roberto Pariset Alberto Pettini

Data Encryption Standard. Alessandro Ballini Silvio Donnini Roberto Pariset Alberto Pettini Data Encryption Standard Alessandro Ballini Silvio Donnini Roberto Pariset Alberto Pettini DES, breve storia 1973: Il National Bureau of Standards (NBS) pubblica un bando in cui richiede un algoritmo di

Dettagli

La codifica digitale

La codifica digitale La codifica digitale Codifica digitale Il computer e il sistema binario Il computer elabora esclusivamente numeri. Ogni immagine, ogni suono, ogni informazione per essere compresa e rielaborata dal calcolatore

Dettagli

Funzioni di hash sicure: MD5 e SHA-1

Funzioni di hash sicure: MD5 e SHA-1 POLITECNICO DI MILANO Funzioni di hash sicure: MD5 e SHA-1 CEFRIEL - Politecnico di Milano cerri@cefriel.it http://www.cefriel.it/~cerri/ Funzioni di hash Una funzione di hash (o message digest) è una

Dettagli

Stream cipher. Cifrari simmetrici. Stream cipher. Stream cipher. I cifrari simmetrici possono essere:! Cifrari a blocchi: !

Stream cipher. Cifrari simmetrici. Stream cipher. Stream cipher. I cifrari simmetrici possono essere:! Cifrari a blocchi: ! Stream cipher Alfredo De Santis Dipartimento di Informatica ed Applicazioni Università di Salerno Marzo 2012 ads@dia.unisa.it http://www.dia.unisa.it/professori/ads Cifrari simmetrici I cifrari simmetrici

Dettagli

Un ripasso di aritmetica: Conversione dalla base 10 alla base 2

Un ripasso di aritmetica: Conversione dalla base 10 alla base 2 Un ripasso di aritmetica: Conversione dalla base 10 alla base 2 Dato un numero N rappresentato in base dieci, la sua rappresentazione in base due sarà del tipo: c m c m-1... c 1 c 0 (le c i sono cifre

Dettagli

La rappresentazione delle informazioni

La rappresentazione delle informazioni La rappresentazione delle informazioni In queste pagine cercheremo di capire come sia possibile rappresentare mediante numeri e memorizzare in un file testi, immagini, video, suoni... Il computer per lavorare

Dettagli

Confidenzialità e crittografia simmetrica. Contenuto. Scenario tipico. Corso di Sicurezza su Reti Uso della crittografia simmetrica

Confidenzialità e crittografia simmetrica. Contenuto. Scenario tipico. Corso di Sicurezza su Reti Uso della crittografia simmetrica Confidenzialità e crittografia simmetrica Barbara Masucci Dipartimento di Informatica ed Applicazioni Università di Salerno masucci@dia.unisa.it http://www.dia.unisa.it/professori/masucci Contenuto Uso

Dettagli

Rapida Nota sulla Rappresentazione dei Caratteri

Rapida Nota sulla Rappresentazione dei Caratteri TECNOLOGIA DIGITALE TECNOLOGIA DIGITALE (segue) CPU, memoria centrale e dispositivi sono realizzati con tecnologia elettronica digitale Dati ed operazioni vengono codificati tramite sequenze di bit 8 bit

Dettagli

I.4 Rappresentazione dell informazione

I.4 Rappresentazione dell informazione I.4 Rappresentazione dell informazione Università di Ferrara Dipartimento di Economia e Management Insegnamento di Informatica Ottobre 13, 2015 Argomenti Introduzione 1 Introduzione 2 3 L elaboratore Introduzione

Dettagli

Message Authentication Code

Message Authentication Code Message Authentication Code Message Authentication Code (MAC) messaggio M Alfredo De Santis Dipartimento di Informatica ed Applicazioni Università di Salerno ads@dia.unisa.it http://www.dia.unisa.it/professori/ads

Dettagli

Crittografia e sicurezza delle reti. WEP: Wired Equivalent Privacy

Crittografia e sicurezza delle reti. WEP: Wired Equivalent Privacy Crittografia e sicurezza delle reti WEP: Wired Equivalent Privacy Stream Ciphers Inizia con una chiave segreta ( seed ) Genera uno stream di byte (Keystream): byte i dello stream è funzione della chiave

Dettagli

Appunti di informatica. Lezione 3 anno accademico Mario Verdicchio

Appunti di informatica. Lezione 3 anno accademico Mario Verdicchio Appunti di informatica Lezione 3 anno accademico 2015-2016 Mario Verdicchio Numeri binari in memoria In un calcolatore, i numeri binari sono tipicamente memorizzati in sequenze di caselle (note anche come

Dettagli

Esercitazione 4. Comandi iterativi for, while, do-while

Esercitazione 4. Comandi iterativi for, while, do-while Esercitazione 4 Comandi iterativi for, while, do-while Comando for for (istr1; cond; istr2) istr3; Le istruzioni vengono eseguite nel seguente ordine: 1) esegui istr1 2) se cond è vera vai al passo 3 altrimenti

Dettagli

Sistemi di Elaborazione delle Informazioni

Sistemi di Elaborazione delle Informazioni Università degli Studi di Messina Policlinico G. Martino - Sistemi di Elaborazione delle Informazioni A.A. 26/27 Università degli Studi di Messina Policlinico G. Martino - Sistemi di Elaborazione delle

Dettagli

Programmazione in Java (I modulo)

Programmazione in Java (I modulo) Programmazione in Java (I modulo) Lezione 4 Variabili di tipo primitivo. Dichiarazione di costanti Conversioni di tipo: operatore cast Altri operatori di assegnamento Operazioni aritmetiche e di confronto

Dettagli

Elementi lessicali. Lezione 4. La parole chiave. Elementi lessicali. Elementi lessicali e espressioni logiche. Linguaggi di Programmazione I

Elementi lessicali. Lezione 4. La parole chiave. Elementi lessicali. Elementi lessicali e espressioni logiche. Linguaggi di Programmazione I Lezione 4 Elementi lessicali e espressioni logiche Matricole 2-3 Elementi lessicali il linguaggio C ha un suo vocabolario di base i cui elementi sono detti token esistono 6 tipi di token: parole chiave

Dettagli

Sicurezza nelle applicazioni multimediali: lezione 8, sicurezza ai livelli di rete e data-link. Sicurezza ai livelli di rete e data link

Sicurezza nelle applicazioni multimediali: lezione 8, sicurezza ai livelli di rete e data-link. Sicurezza ai livelli di rete e data link Sicurezza ai livelli di rete e data link Sicurezza a livello applicativo Ma l utilizzo di meccanismi di cifratura e autenticazione può essere introdotto anche ai livelli inferiori dello stack 2 Sicurezza

Dettagli

Utilizza i tipi di dati comuni a tutto il framework.net Accesso nativo ai tipi.net (C# è nato con.net) Concetti fondamentali:

Utilizza i tipi di dati comuni a tutto il framework.net Accesso nativo ai tipi.net (C# è nato con.net) Concetti fondamentali: 1 Tipi di dati 1 Tipi di dati Utilizza i tipi di dati comuni a tutto il framework.net Accesso nativo ai tipi.net (C# è nato con.net) Concetti fondamentali: Tutto è un oggetto Tutto eredita implicitamente

Dettagli

Bit, Byte, Word e Codifica Dati

Bit, Byte, Word e Codifica Dati Bit, Byte, Word e Codifica Dati Come vengono immagazzinati i dati nella memoria? Le informazioni salvate e non all'interno della memoria del calcolatore vengono gestite come un insieme di numeri in sistema

Dettagli

Tipi di dati fondamentali. Tipi di dati fondamentali. Utilità dei tipi di dati nelle dichiarazioni. Il tipo di dati char. Codice ASCII.

Tipi di dati fondamentali. Tipi di dati fondamentali. Utilità dei tipi di dati nelle dichiarazioni. Il tipo di dati char. Codice ASCII. Tipi di dati fondamentali Tipi di dati fondamentali Linguaggi di Programmazione I Ferdinando Cicalese caratteri: char signed char unsigned char interi short int long interi unsigned short unsigned unsigned

Dettagli

Un ripasso di aritmetica: Conversione dalla base 10 alla base 2

Un ripasso di aritmetica: Conversione dalla base 10 alla base 2 Un ripasso di aritmetica: Conversione dalla base 10 alla base 2 Dato un numero N rappresentato in base dieci, la sua rappresentazione in base due sarà del tipo: c m c m-1... c 1 c 0 (le c i sono cifre

Dettagli

Crittografia in Java

Crittografia in Java Crittografia in Java di Oreste Delitala Progetto di Computer Security 2013-2014 Introduzione La crittografia è un particolare processo grazie al quale, per mezzo di sofisticati algoritmi, è possibile trasformare

Dettagli

Informatica per la Storia dell Arte

Informatica per la Storia dell Arte Università degli Studi di Palermo Dipartimento di Ingegneria Chimica, Gestionale, Informatica, Meccanica Informatica per la Storia dell Arte Anno Accademico 3/4 Docente: ing. Salvatore Sorce Rappresentazione

Dettagli

APPUNTI DI CRITTOGRAFIA: Dai cifrari storici ad RSA. info@vittorioprisco.com

APPUNTI DI CRITTOGRAFIA: Dai cifrari storici ad RSA. info@vittorioprisco.com APPUNTI DI CRITTOGRAFIA: Dai cifrari storici ad RSA 1 APPUNTI DI CRITTOGRAFIA (Dai cifrari storici ad RSA) CRITTOLOGIA: scienza che si occupa di comunicazioni in forma sicura e segreta CRITTOGRAFIA: studio

Dettagli

Laboratorio di Algoritmi e Strutture Dati

Laboratorio di Algoritmi e Strutture Dati Laboratorio di Algoritmi e Strutture Dati Docente: Camillo Fiorentini 16 ottobre 2007 1 Rappresentazioni di caratteri in C In C un carattere è una costante intera il cui valore è dato dal codice ASCII

Dettagli

Rappresentazione dei numeri naturali. La codifica associa alle informazioni dell alfabeto sorgente uno o più simboli dell alfabeto codice:

Rappresentazione dei numeri naturali. La codifica associa alle informazioni dell alfabeto sorgente uno o più simboli dell alfabeto codice: Rappresentazione dei numeri naturali La codifica associa alle informazioni dell alfabeto sorgente uno o più simboli dell alfabeto codice: 1 I 0001 / 2 II 0010 // 3 III 0011 /// 4 IV 0100 //// 5 V 0101

Dettagli

Crittografia simmetrica

Crittografia simmetrica One-Time Pad Se viene usata una chiave casuale lunga come il messaggio il cifrario sarà sicuro Crittografia simmetrica Ing. Michela Cancellaro Ing. Federica Battisti Esempio: Ciphertext= ankyodkyurepfjbyojdsplreyiunofdoiuerfpluytd

Dettagli

La Rappresentazione dell Informazione

La Rappresentazione dell Informazione La Rappresentazione dell Informazione Parte III I codici Codici a.a. 27-28 Un codice è una funzione che associa ad una sequenza di simboli un significato Codice : {entità} {sequenze di simboli} Un codice

Dettagli

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

Conversione di base. Conversione decimale binario. Si calcolano i resti delle divisioni per due Conversione di base Dato N>0 intero convertirlo in base b dividiamo N per b, otteniamo un quoto Q 0 ed un resto R 0 dividiamo Q 0 per b, otteniamo un quoto Q 1 ed un resto R 1 ripetiamo finché Q n < b

Dettagli

Indice. Prefazione. 3 Oggetti e Java 53

Indice. Prefazione. 3 Oggetti e Java 53 Prefazione xv 1 Architettura dei calcolatori 1 1.1 Calcolatori e applicazioni 1 1.1.1 Alcuni esempi di applicazioni 3 1.1.2 Applicazioni e interfacce 4 1.2 Architettura dei calcolatori 7 1.2.1 Hardware

Dettagli

Corso di Architettura degli Elaboratori

Corso di Architettura degli Elaboratori Corso di Architettura degli Elaboratori Codifica dell'informazione: Numeri Binari (lucidi originali della Prof.ssa Zacchi e del Prof. Balossino, rivisti dal Prof. Baldoni) 1 Codifica dell'informazione?

Dettagli

Corso di Network Security a.a. 2012/2013. Soluzione dei quesiti sulla prima parte del corso

Corso di Network Security a.a. 2012/2013. Soluzione dei quesiti sulla prima parte del corso Università degli Studi di Parma Dipartimento di Ingegneria dell Informazione Corso di Network Security a.a. 2012/2013 Soluzione dei quesiti sulla prima parte del corso 1) Si consideri un semplice cifrario

Dettagli

ESAME DI FONDAMENTI DI INFORMATICA I ESAME DI ELEMENTI DI INFORMATICA. 21 Gennaio 1998

ESAME DI FONDAMENTI DI INFORMATICA I ESAME DI ELEMENTI DI INFORMATICA. 21 Gennaio 1998 21 Gennaio 1998 PROVA PRATICA Si scriva un programma C (BASIC per gli studenti di Elementi di Informatica) che: a) Legga da terminale una sequenza di caratteri terminati dal carattere '*' (un carattere

Dettagli

Rappresentazione e Codifica dell Informazione

Rappresentazione e Codifica dell Informazione Rappresentazione e Codifica dell Informazione Capitolo 1 Chianese, Moscato, Picariello, Alla scoperta dei fondamenti dell informatica un viaggio nel mondo dei BIT, Liguori editore. Sistema di numerazione

Dettagli

Rappresentazione dell informazione

Rappresentazione dell informazione Rappresentazione dell informazione Problema che coinvolge aspetti filosofici Interessa soprattutto distinguere informazioni diverse Con un solo simbolo è impossibile Pertanto l insieme minimo è costituito

Dettagli

Introduzione alle stringhe e algoritmi collegati

Introduzione alle stringhe e algoritmi collegati Introduzione alle stringhe e algoritmi collegati Algoritmicamente August 15, 2009 1 Introduzione 1.1 Introduzione ai caratteri In informatica o più generalmente in una terminologia scientifica, il carattere

Dettagli

Riassunto Nell'esercitazione di oggi e' stata introdotta la codifica binaria naturale, intera e razionale in virgola fissa. Il materiale teorico

Riassunto Nell'esercitazione di oggi e' stata introdotta la codifica binaria naturale, intera e razionale in virgola fissa. Il materiale teorico Riassunto Nell'esercitazione di oggi e' stata introdotta la codifica binaria naturale, intera e razionale in virgola fissa. Il materiale teorico utilizzato e' disponibile nella Dispensa sulla codifica

Dettagli

Gestione dei file. Stefano Ferrari. Università degli Studi di Milano Programmazione. anno accademico

Gestione dei file. Stefano Ferrari. Università degli Studi di Milano Programmazione. anno accademico Gestione dei file Stefano Ferrari Università degli Studi di Milano stefano.ferrari@unimi.it Programmazione anno accademico 2016 2017 Gli stream Si dice stream qualsiasi sorgente di dati in ingresso e qualsiasi

Dettagli

Rappresentazione binaria delle variabili (int e char)

Rappresentazione binaria delle variabili (int e char) Rappresentazione binaria delle variabili (int e char) int e char son i due tipi utilizzati dal linguaggio C per la rappresentazione di valori interi; ai valori delle variabili del primo tipo sono assegnati

Dettagli

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

Il cifrario di Vigenère. Bizzoni Stefano De Persiis Angela Freddi Giordana Il cifrario di Vigenère Bizzoni Stefano De Persiis Angela Freddi Giordana Cifrari monoalfabetico e polialfabetico mono: cifrari a sostituzione o a trasposizione, associano ad ogni lettera dell alfabeto

Dettagli

Caratteri e stringhe

Caratteri e stringhe Caratteri e stringhe Caratteri Dato che un computer può memorizzare esclusivamente sequenze di bit, per memorizzare un carattere (e quindi testi) è necessario stabilire una convenzione che associa a un

Dettagli

Introduzione al Linguaggio C

Introduzione al Linguaggio C INFORMATICA 1 Lezione 3 (Introduzione al Linguaggio C, Introduzione ai Tipi di dato, Cenni alla codifica binaria) Introduzione al Linguaggio C 1 Passi fondamentali del C Definito nel 1972 (AT&T Bell Labs)

Dettagli

Input/output da file I/O ANSI e I/O UNIX FLUSSI E FILE FLUSSI FLUSSI di TESTO FLUSSI BINARI FILE

Input/output da file I/O ANSI e I/O UNIX FLUSSI E FILE FLUSSI FLUSSI di TESTO FLUSSI BINARI FILE Input/output da file Il linguaggio C non contiene istruzioni di I/O, in quanto tali operazioni vengono eseguite tramite funzioni di libreria standard. Questo approccio rende estremamente flessibile e potente

Dettagli

La rappresentazione dei dati

La rappresentazione dei dati La rappresentazione dei dati Base binaria E la base minima che include cifre diverse si devono conoscere le tabelline dello 0 dell 1 in elettronica si realizzano bene dispositivi bistabili There are only

Dettagli

Algoritmi e basi del C Struttura di un programma

Algoritmi e basi del C Struttura di un programma Algoritmi e basi del C Struttura di un programma Marco D. Santambrogio marco.santambrogio@polimi.it Ver. aggiornata al 17 Marzo 2015 Compitini Compitini di INFO: 24 Aprile 2015 4.15pm @ C.G.1 (Ed. 9) 21

Dettagli

Tipi di dato. Le variabili in C. Problema: dato in input un carattere, se esso è una lettera minuscola, trasformarla in maiuscola.

Tipi di dato. Le variabili in C. Problema: dato in input un carattere, se esso è una lettera minuscola, trasformarla in maiuscola. Tipi di dato Le variabili in C KP Cap.3 pp.95-129 Cap.5 pp.190-193 DD Cap. 9 pp.352-355 Abbiamo già parlato delle variabili, ed abbiamo fin ora usato il tipo int, ma abbiamo molte altre possibiltà I tipi

Dettagli

Schemi di Autenticazione per il Protocollo HTTP. a cura di Nicola Ferrante

Schemi di Autenticazione per il Protocollo HTTP. a cura di Nicola Ferrante Schemi di Autenticazione per il Protocollo HTTP a cura di Nicola Ferrante Challenge and Response (Sfida e risposta) Basic Access Authentication: Ancora oggi utilizzato, ma non troppo sicuro Digest Access

Dettagli

Stringhe e allocazione dinamica della memoria

Stringhe e allocazione dinamica della memoria Stringhe e allocazione dinamica della memoria Esercizio Scrivere un programma strings.c che legge da standard input una sequenza di parole separate da uno o più spazi, e stampa le parole lette, una per

Dettagli

Matrici. Matrici.h Definizione dei tipi. Un po di esercizi sulle matrici Semplici. Media difficoltà. Difficili

Matrici. Matrici.h Definizione dei tipi. Un po di esercizi sulle matrici Semplici. Media difficoltà. Difficili Matrici Un po di esercizi sulle matrici Semplici Lettura e scrittura Calcolo della trasposta Media difficoltà Calcolo del determinante Difficili Soluzione di sistemi lineari È veramente difficile? 1 Matrici.h

Dettagli

Unità Didattica 1 Linguaggio C. Fondamenti. Struttura di un programma.

Unità Didattica 1 Linguaggio C. Fondamenti. Struttura di un programma. Unità Didattica 1 Linguaggio C Fondamenti. Struttura di un programma. 1 La storia del Linguaggio C UNIX (1969) - DEC PDP-7 Assembly Language BCPL - un OS facilmente accessibile che fornisce potenti strumenti

Dettagli

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

Fondamenti di Informatica - 1. Prof. B.Buttarazzi A.A. 2011/2012 Fondamenti di Informatica - 1 Prof. B.Buttarazzi A.A. 2011/2012 Sommario Rappresentazione dei numeri naturali (N) Rappresentazione dei numeri interi (Z) Modulo e segno In complemento a 2 Operazioni aritmetiche

Dettagli

CODIFICA DEL TESTO 0???????

CODIFICA DEL TESTO 0??????? CODIFICA DEL TESTO Simboli da rappresentare: lettere a,b,c,.z,a,b,c,.z cifre 0,1,2,3, 9 simboli di punteggiatura ;:,. Rappresentati mediante sequenze di bit Una codifica dei simboli è perciò (almeno) una

Dettagli

Sicurezza nelle applicazioni multimediali: lezione 3, crittografia contemporanea. Crittografia contemporanea

Sicurezza nelle applicazioni multimediali: lezione 3, crittografia contemporanea. Crittografia contemporanea Crittografia contemporanea Classificazione dei sistemi crittografici contemporanei Il criterio di distinzione più importante per i sistemi crittografici contemporanei riguarda il tipo e numero di chiavi

Dettagli

Errori frequenti Cicli iterativi Array. Cicli e array. Laboratorio di Programmazione I. Corso di Laurea in Informatica A.A.

Errori frequenti Cicli iterativi Array. Cicli e array. Laboratorio di Programmazione I. Corso di Laurea in Informatica A.A. Cicli e array Laboratorio di Programmazione I Corso di Laurea in Informatica A.A. 2016/2017 Calendario delle lezioni Lez. 1 Lez. 2 Lez. 3 Lez. 4 Lez. 5 Lez. 6 Lez. 7 Lez. 8 - Introduzione all ambiente

Dettagli

Lab 02 Tipi semplici in C

Lab 02 Tipi semplici in C Fondamenti di Informatica e Laboratorio T-AB Ingegneria Elettronica e Telecomunicazioni e Ingegneria dell Automazione a.a. 2009/2010 Lab 02 Tipi semplici in C Lab02 1 Obiettivo dell esercitazione Acquistare

Dettagli

Somma di numeri binari

Somma di numeri binari Fondamenti di Informatica: Codifica Binaria dell Informazione 1 Somma di numeri binari 0 + 0 = 0 0 + 1 = 1 1 + 0 = 1 1 + 1 = 10 Esempio: 10011011 + 00101011 = 11000110 in base e una base Fondamenti di

Dettagli

SSL: applicazioni telematiche SSL SSL SSL. E-commerce Trading on-line Internet banking... Secure Socket Layer

SSL: applicazioni telematiche SSL SSL SSL. E-commerce Trading on-line Internet banking... Secure Socket Layer : applicazioni telematiche Secure Socket Layer E-commerce Trading on-line Internet banking... Protocollo proposto dalla Netscape Communications Corporation Garantisce confidenzialità e affidabilità delle

Dettagli

LA CODIFICA DELL INFORMAZIONE. Introduzione ai sistemi informatici D. Sciuto, G. Buonanno, L. Mari, McGraw-Hill Cap.2

LA CODIFICA DELL INFORMAZIONE. Introduzione ai sistemi informatici D. Sciuto, G. Buonanno, L. Mari, McGraw-Hill Cap.2 LA CODIFICA DELL INFORMAZIONE Introduzione ai sistemi informatici D. Sciuto, G. Buonanno, L. Mari, McGraw-Hill Cap.2 Codifica dati e istruzioni Per scrivere un programma è necessario rappresentare istruzioni

Dettagli

Linguaggio C - sezione dichiarativa: costanti e variabili

Linguaggio C - sezione dichiarativa: costanti e variabili Dipartimento di Elettronica ed Informazione Politecnico di Milano Informatica e CAD (c.i.) - ICA Prof. Pierluigi Plebani A.A. 2008/2009 Linguaggio C - sezione dichiarativa: costanti e variabili La presente

Dettagli

Introduzione alla programmazione in C

Introduzione alla programmazione in C Introduzione alla programmazione in C Testi Consigliati: A. Kelley & I. Pohl C didattica e programmazione B.W. Kernighan & D. M. Ritchie Linguaggio C P. Tosoratti Introduzione all informatica Materiale

Dettagli

Seconda lezione. Rivediamo un po di definizioni principali Proseguiremo con nuovi codici

Seconda lezione. Rivediamo un po di definizioni principali Proseguiremo con nuovi codici Seconda lezione Rivediamo un po di definizioni principali Proseguiremo con nuovi codici 1 Libri di testo Struttura, Organizzazione e progetto dei calcolatori, Patterson e Hennessy, (Jackson Libri) consigliato

Dettagli

Aritmetica dei Calcolatori 3

Aritmetica dei Calcolatori 3 Laboratorio di Architettura 31 maggio 2013 1 Numeri Floating Point 2 Standard IEEE754 3 Esercitazione Numeri Floating Point (FP) Il termine Floating Point (virgola mobile) indica la codifica usata per

Dettagli

Rappresentazione di Numeri Reali. Rappresentazione in virgola fissa (fixed-point) Rappresentazione in virgola fissa (fixed-point)

Rappresentazione di Numeri Reali. Rappresentazione in virgola fissa (fixed-point) Rappresentazione in virgola fissa (fixed-point) Rappresentazione di Numeri Reali Un numero reale è una grandezza continua Può assumere infiniti valori In una rappresentazione di lunghezza limitata, deve di solito essere approssimato. Esistono due forme

Dettagli

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

Corso di Informatica Generale (C. L. Economia e Commercio) Ing. Valerio Lacagnina Rappresentazione dei numeri relativi Codice BCD Prima di passare alla rappresentazione dei numeri relativi in binario vediamo un tipo di codifica che ha una certa rilevanza in alcune applicazioni: il codice BCD (Binary Coded Decimal). È un

Dettagli

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

CRITTOGRAFIA 2014/15 Appello del 13 gennaio Nome: Cognome: Matricola: CRITTOGRAFIA 2014/15 Appello del 13 gennaio 2015 Esercizio 1 Crittografia ellittica [9 punti] 1. Descrivere l algoritmo di Koblitz per trasformare un messaggio m, codificato come numero intero, in un punto

Dettagli

Modulo 2: Strutture fondamentali della programmazione Java

Modulo 2: Strutture fondamentali della programmazione Java Modulo 2: Strutture fondamentali della programmazione Java Argomenti Trattati: Un semplice programma Java: Presentazione di un primo Esempio; Introduzione alla struttura; Compilazione ed esecuzione. Argomenti

Dettagli

Strutture dati e loro organizzazione. Gabriella Trucco

Strutture dati e loro organizzazione. Gabriella Trucco Strutture dati e loro organizzazione Gabriella Trucco Introduzione I linguaggi di programmazione di alto livello consentono di far riferimento a posizioni nella memoria principale tramite nomi descrittivi

Dettagli

Informatica/ Ing. Meccanica/ Edile/ Prof. Verdicchio/ 17/01/2014/ Foglio delle domande / VERSIONE 1

Informatica/ Ing. Meccanica/ Edile/ Prof. Verdicchio/ 17/01/2014/ Foglio delle domande / VERSIONE 1 Informatica/ Ing. Meccanica/ Edile/ Prof. Verdicchio/ 17/01/2014/ Foglio delle domande/ VERSIONE 1 1) L approccio con cui si studia un sistema focalizzandosi solo sul rapporto tra input e output si chiama

Dettagli

Stringhe Corso di Fondamenti di Informatica Ingegneria delle Comunicazioni BCOR Ingegneria Elettronica BELR

Stringhe Corso di Fondamenti di Informatica Ingegneria delle Comunicazioni BCOR Ingegneria Elettronica BELR Corso di Fondamenti di Informatica Ingegneria delle Comunicazioni BCOR Ingegneria Elettronica BELR Domenico Daniele Bloisi Docenti Parte I prof. Silvio Salza salza@dis.uniroma1.it http://www.dis.uniroma1.it/~salza/fondamenti.htm

Dettagli

Appunti di informatica. Lezione 4 anno accademico Mario Verdicchio

Appunti di informatica. Lezione 4 anno accademico Mario Verdicchio Appunti di informatica Lezione 4 anno accademico 2016-2017 Mario Verdicchio Numeri binari in memoria In un calcolatore, i numeri binari sono tipicamente memorizzati in sequenze di caselle (note anche come

Dettagli

Elaborazione dell informazione

Elaborazione dell informazione Elaborazione dell informazione Primo esempio Ricominciamo dai numeri (45 + 25) è definita rigorosamente Un primo calcolatore (a) Figura 1.1 Configurazione del pallottoliere (a) prima e (b) dopo l esecuzione

Dettagli

04 Aritmetica del calcolatore

04 Aritmetica del calcolatore Aritmetica del calcolatore Numeri a precisione finita - con un numero finito di cifre - non godono della proprietà di chiusura - le violazioni creano due situazioni distinte: - overflow - underflow Pagina

Dettagli

4 3 4 = 4 x 10 2 + 3 x 10 1 + 4 x 10 0 aaa 10 2 10 1 10 0

4 3 4 = 4 x 10 2 + 3 x 10 1 + 4 x 10 0 aaa 10 2 10 1 10 0 Rappresentazione dei numeri I numeri che siamo abituati ad utilizzare sono espressi utilizzando il sistema di numerazione decimale, che si chiama così perché utilizza 0 cifre (0,,2,3,4,5,6,7,8,9). Si dice

Dettagli

RAPPRESENTAZIONE DELLE INFORMAZIONI

RAPPRESENTAZIONE DELLE INFORMAZIONI RAPPRESENTAZIONE DELLE INFORMAZIONI 1 RAPPRESENTAZIONE DELLE INFORMAZIONI Le informazioni gestite dai sistemi di elaborazione devono essere codificate per poter essere memorizzate, elaborate, scambiate,

Dettagli

Corso di Informatica

Corso di Informatica CdLS in Odontoiatria e Protesi Dentarie Corso di Informatica Prof. Crescenzio Gallo crescenzio.gallo@unifg.it Università degli Studi di Foggia - CdLS in Odontoiatria e Protesi Dentarie La sicurezza digitale

Dettagli

La codifica di sorgente

La codifica di sorgente Tecn_prog_sist_inform Gerboni Roberta è la rappresentazione efficiente dei dati generati da una sorgente discreta al fine poi di trasmetterli su di un opportuno canale privo di rumore. La codifica di canale

Dettagli

FILE BINARI FILE BINARI

FILE BINARI FILE BINARI FILE BINARI Un file binario è una pura sequenza di byte, senza alcuna strutturazione particolare È un'astrazione di memorizzazione assolutamente generale, usabile per memorizzare su file informazioni di

Dettagli

La codifica. dell informazione

La codifica. dell informazione La codifica dell informazione (continua) Codifica dei numeri Il codice ASCII consente di codificare le cifre decimali da 0 a 9 fornendo in questo modo un metodo per la rappresentazione dei numeri Il numero

Dettagli

Parte prima Cifrature asimmetriche 21

Parte prima Cifrature asimmetriche 21 Indice Prefazione XIII Capitolo 1 Introduzione 1 1.1 Servizi, meccanismi e attacchi 3 Servizi 3 Meccanismi 4 Attacchi 5 1.2 L architettura di sicurezza OSI 5 Servizi di sicurezza 7 Autenticazione 7 Meccanismi

Dettagli

FILE BINARI FILE BINARI

FILE BINARI FILE BINARI FILE BINARI Un file binario è una pura sequenza di byte, senza alcuna strutturazione particolare È un'astrazione di memorizzazione assolutamente generale, usabile per memorizzare su file informazioni di

Dettagli

Appunti del corso di Sistemi - Conversioni numeriche anno scolastico 2007/2008

Appunti del corso di Sistemi - Conversioni numeriche anno scolastico 2007/2008 I sistemi numerici Il sistema Decimale è costituito da 10 simboli. I dieci simboli che tutti conosciamo sono lo zero (0), l uno (1), il due (2), ecc. ecc., indicati come l insieme Dec={0,1,2,3,4,5,6,7,8,9}.

Dettagli

Il potere espressivo di un linguaggio è caratterizzato da: PROGRAMMA = DATI + CONTROLLO

Il potere espressivo di un linguaggio è caratterizzato da: PROGRAMMA = DATI + CONTROLLO LINGUAGGI DI PROGRAMMAZIONE Il potere espressivo di un linguaggio è caratterizzato da: quali tipi di dati consente di rappresentare (direttamente o tramite definizione dell utente) quali istruzioni di

Dettagli

Crittografia a chiave segreta

Crittografia a chiave segreta Sicurezza nei Sistemi Informativi Schema generico di un algoritmo crittografico Crittografia a chiave simmetrica Ing. Orazio Tomarchio Orazio.Tomarchio@diit.unict.it Dipartimento di Ingegneria Informatica

Dettagli

Sistemi di numerazioni e metodi di trasformazione

Sistemi di numerazioni e metodi di trasformazione B Sistemi di numerazioni e metodi di trasformazione Nei calcolatori attuali vengono utilizzati quattro sistemi di numerazione: binario, in base otto, decimale ed esadecimale. Ognuno di essi ha pregi che

Dettagli

I sistemi di numerazione

I sistemi di numerazione I sistemi di numerazione 01-INFORMAZIONE E SUA RAPPRESENTAZIONE Sia dato un insieme finito di caratteri distinti, che chiameremo alfabeto. Utilizzando anche ripetutamente caratteri di un alfabeto, si possono

Dettagli