Introduzione alla Crittografia. L algoritmo DES. Bruno Martino - Fabio Guglietta
|
|
- Aurelia Ferrario
- 7 anni fa
- Visualizzazioni
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
% 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
DettagliBLOWFISH. 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
DettagliIntroduzione 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
DettagliCifrari 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
DettagliSteganografia 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
DettagliCifrari 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
DettagliCifrari 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
DettagliLaurea 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
DettagliAltri 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
DettagliDefinizione. 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
DettagliCorso 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
DettagliInformatica. 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
DettagliDati 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 1 2 ' Easy computation: dato un valore M e la chiave K, MAC(K,M) è facile da calcolare Compression: M di lunghezza finita,
DettagliRC4 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
DettagliData 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
DettagliLa 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
DettagliFunzioni 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
DettagliStream 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
DettagliUn 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
DettagliLa 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
DettagliConfidenzialità 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
DettagliRapida 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
DettagliI.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
DettagliMessage 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
DettagliCrittografia 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
DettagliAppunti 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
DettagliEsercitazione 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
DettagliSistemi 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
DettagliProgrammazione 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
DettagliElementi 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
DettagliSicurezza 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
DettagliUtilizza 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
DettagliBit, 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
DettagliTipi 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
DettagliUn 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
DettagliCrittografia 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
DettagliInformatica 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
DettagliAPPUNTI 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
DettagliLaboratorio 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
DettagliRappresentazione 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
DettagliCrittografia 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
DettagliLa 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
DettagliConversione 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
DettagliIndice. 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
DettagliCorso 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?
DettagliCorso 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
DettagliESAME 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
DettagliRappresentazione 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
DettagliRappresentazione 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
DettagliIntroduzione 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
DettagliRiassunto 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
DettagliGestione 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
DettagliRappresentazione 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
DettagliIl 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
DettagliCaratteri 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
DettagliIntroduzione 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)
DettagliInput/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
DettagliLa 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
DettagliAlgoritmi 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
DettagliTipi 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
DettagliSchemi 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
DettagliStringhe 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
DettagliMatrici. 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
DettagliUnità 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
DettagliFondamenti 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
DettagliCODIFICA 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
DettagliSicurezza 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
DettagliErrori 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
DettagliLab 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
DettagliSomma 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
DettagliSSL: 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
DettagliLA 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
DettagliLinguaggio 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
DettagliIntroduzione 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
DettagliSeconda 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
DettagliAritmetica 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
DettagliRappresentazione 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
DettagliCorso 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
DettagliCRITTOGRAFIA 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
DettagliModulo 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
DettagliStrutture 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
DettagliInformatica/ 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
DettagliStringhe 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
DettagliAppunti 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
DettagliElaborazione 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
Dettagli04 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
Dettagli4 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
DettagliRAPPRESENTAZIONE 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,
DettagliCorso 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
DettagliLa 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
DettagliFILE 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
DettagliLa 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
DettagliParte 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
DettagliFILE 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
DettagliAppunti 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}.
DettagliIl 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
DettagliCrittografia 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
DettagliSistemi 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
DettagliI 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