Perché una rete? condivisione di risorse comunicazione fra utenti riduzione costi modularità affidabilità e disponibilità comunicazione fra utenti scambio di informazioni collaborazione a distanza
Evoluzione dei sistemi informatici
Dimensione di una rete Rete locale (LAN - Local Area Network) collega due o più computer in un area non più grande di un palazzo collega i computer di un laboratorio, gruppo di lavoro, ufficio, ditta Rete metropolitana (Metropolitan Area Network) concettualmente simile ad una rete locale collega computer di una singola organizzazione nella stessa area urbana (es., banca con filiali cittadine).
Dimensione di una rete Rete geografica (Wide Area Network) nodi distribuiti su medio-lunga distanza (nazione, continente) Reti di reti collega più reti differenti mediante opportuni elementi di interfaccia può avere estensione mondiale esempio: Internet
Topologie fisiche Lineare Anello Stella Punto a punto Wireless Mista
Lineari PC1 PC2 PC3 PC4 economica (pochi collegamenti fisici) nessuna tolleranza ai guasti richiede una gestione logica dell'utilizzo del collegamento fisico da parte degli host
Anello PC1 PC2 PC4 PC3 economica nessuna tolleranza ai guasti ogni host riceve e ritrasmette il segnale dopo averlo ricevuto l'utilizzo del collegamento fisico viene gestito automaticamente
Stella PC2 PC1 PC4 PC3 hub HUB: dispositivo hardware specializzato che smista le comunicazioni dei computer ottima tolleranza ai guasti economica
Punto a punto PC1 PC2 PC3 PC4 ottima tolleranza ai guasti altissimi costi per i collegamenti ( O(n2) )
Wireless hub PC1 PC4 PC2 PC3 ottima tolleranza ai guasti distanza massima limitata economica
Mista
Topologie logiche indipendentemente dalla sua topologia fisica, una rete ha una topologia logica che determina come i compter collegati alla rete possono trasmettere e ricevere dati due delle principali topologie logiche sono: token ring Ethernet
Token ring un token (un particolare gruppo di byte) viene continuamente passato da un computer all’altro un computer può trasmettere sulla rete solo quando e’ in possesso del token se un computer riceve un messaggio non destinato a lui, lo rimette in circolo
Ethernet quando un computer vuole comunicare invia il segnale sul cavo di collegamento se un computer si accorge che un altro sta trasmettendo, aspetta se si verifica un conflitto (due computer hanno tentato di comunicare contemporaneamente) i due computer si fermano e aspettano per un tempo T casuale, poi riprovano. velocità: 1 Gigabit al secondo oggi qualsiasi computer di qualsiasi tipo prevede la possibilità di usare una scheda Ethernet per connettersi alla rete locale torneremo a parlare di Ethernet più avanti
Canali di trasmissione esistono diversi canali di trasmissione guidati Doppino telefonico Velocità = 2400-9600 bps Cavo coassiale Velocità = 104-106 bps Fibra ottica Bit = assenza/presenza segnale luminoso Velocità= 109 bps non guidati onde elettromagnetiche satellite, antenne, infrarossi
Trasmissione digitale nelle reti locali, la comunicazione tra due computer passa di solito su cavi dedicati installati esplicitamente per la rete, e adatti per la trasmissione digitale delle informazioni. (semplificando) su questi cavi si ha una variazione del livello di tensione (o della frequenza del segnale) fra due valori, che corrisponde alla trasmissione di bit di valore 0 oppure 1
Trasmissione analogica per le comunicazioni su lunga distanza, si cerca di sfruttare le reti di comunicazione analogica esistenti: ad esempio la rete telefonica la rete telefonica è però fatta per comunicare la voce, cioè un segnale analogico che varia in maniera continua in una banda di frequenze limitata sono necessari dei dispositivi per poter usare la rete telefonica come mezzo di comunicazione tra computer: i modem
Il modem COMPUTER MODEM Segnale digitale analogico linea telef.
Il modem Informazione = digitale (seq. Bit) Segnali = analogico (continuo) Il Modem (Modulatore-Demodulatore) trasforma bit in segnali e viceversa Modulazione in frequenza il modem altera in frequenza una sequenza portante (0=freq più bassa, 1=freq più alta) ...modulazione in ampiezza, fase,
Il modem modem ADSL permettono la trasmissione su linea telefonica a 20 Mbit per secondo se due computer comunicano tramite un modem, la velocità di comunicazione è sempre quella del modem più lento
Trasmissione seriale/parallela trasmissione di un byte: seriale: se il canale di comunicazione è fatto di un solo filo, il byte è trasmesso un bit per volta parallela: se il canale di comunicazione ha 8 fili, possiamo trasmettere gli 8 bit in contemporanea la trasmissione parallela è più veloce, ma più costosa da implementare viene usata di solito solo per collegamenti punto a punto e molto corti (es.: computer - stampante) la trasmissione seriale è quella normalmente usata nelle reti, locali e non locali
Il canale di comunicazione: linea dedicata/commutata la comunicazione avviene lungo un canale (linea fisica) dedicato esclusivamente ad essa Es: due PC connessi da un cavo di comunicazione linea commutata il canale viene "costruito" per ogni nuova sessione di comunicazione, collegando singoli tratti di linee dedicate esempio: comunicazione tra due computer in Internet altri computer fanno da tramite tra i due che devono comunicare, ritrasmettendo i loro messaggi con le linee commutate si riducono i costi 2 modalità: commutazione di circuito commutazione di pacchetto
Commutazione di circuito: la rete telefonica i telefoni di un distretto telefonico fanno capo ad una centrale di smistamento, che comunica con le centrali degli altri distretti quando telefoniamo, la chiamata viene fatta passare attraverso una o più centrali, fino a raggiungere il numero chiamato comunicando fra loro, le centrali costruiscono una connessione diretta fra i due telefoni, che dura tutto (e solo) il tempo della telefonata.
Commutazione di circuito quando due telefoni comunicano, la linea è occupata: nessuno può chiamare quei telefoni. che succede se usiamo una comunicazione a commutazione di circuito su internet? DISASTRO: qualsiasi servizio offerto sarebbe disponibile ad un solo utente per volta ad esempio, chi riesce a connettersi ad un sito web lo può usare in esclusiva per tutto il tempo che vuole
Commutazione di pacchetto ogni messaggio è diviso in tanti pacchetti numerati di dimensione fissa ogni pacchetto contiene l'indirizzo del computer destinatario e del mittente ogni pacchetto viene trasmesso separatamente una volta inviato, il mittente se ne disinteressa ogni pacchetto fa (virtualmente) una strada diversa per arrivare al destinatario
Commutazione di pacchetto i pacchetti non arrivano necessariamente nello stesso ordine con cui sono stati inviati il destinatario aspetta di aver ricevuto tutti i pacchetti per ricomporli e ricostruire il messaggio ogni pacchetto occupa il mezzo di trasmissione e la scheda di rete per un tempo molto breve si ha un effetto di parallelismo: ogni computer può essere coinvolto contemporaneamente in più comunicazioni
Commutazione di pacchetto B Y Z X W 2 1
Commutazione di pacchetto: instradamento (routing) come far arrivare i pacchetti a destinazione? ogni nodo della rete mantiene una tabella che indica a quale/quali vicini ritrasmettere un pacchetto non destinato a lui, in base all’indirizzo di destinazione del pacchetto la scelta del nodo a cui inoltrare il pacchetto dipende anche da situazioni temporanee di carico della rete, guasti, ecc.
Internet nata dalla fusione di reti di agenzie governative americane (ARPANET) e reti di università è una rete di reti, di scala planetaria, pubblica, a commutazione di pacchetto sistema di comunicazione tra reti e sistemi eterogenei, oltre che geograficamente distribuiti utilizza protocolli di comunicazione di dominio pubblico derivati dal modello TCP/IP al giorno d’oggi è accessibile a tutti tramite provider che sono fisicamente collegati a Internet
Componenti di Internet Modem Host (o sistema terminale) Stazione base Commutatore di pacchetto (router) Collegamento satellitare
Componenti di Internet ISP distrettuale ISP locale Rete aziendale
Componenti di Internet host: tradizionalmente, un PC, una workstation, o un computer più potente sempre più connessi i sistema terminali come portatili, PDA, televisori, telefoni cellulari, automobili, elettrodomestici, ecc. collegamenti (communication link): di vari tipi: cavi (di rami, fibre ottiche ecc.), onde elettromagnetiche (collegamenti senza fili, satellitari ecc.) commutatori di pacchetto (router): i computer vengono connessi in un modo indiretto tramite dispositivi di instradamento prendono informazioni da uno dei collegamenti e ritrasmettono su un altro collegamento (verso la destinazione finale)
Il paradigma client-server 1. l'utente usa il client per esprimere le sue richieste 2. il client si collega al server e trasmette la richiesta 3. il server risponde al client 4. il client presenta la risposta all'utente Utente Client Server Internet
Il client si preoccupa di dialogare con l'utente sfrutta tutte le possibilità fornite dal calcolatore su cui viene eseguito (audio, video, ...) fornisce all'utente un'interfaccia intuitiva elabora le richieste dell’utente e le risposte dei server la comunicazione avviene secondo un formato standard (protocollo)
Il server rende disponibili delle risorse accetta richieste e risponde automaticamente non bada alla provenienza della richiesta il processo client può trovarsi in qualsiasi punto della rete si può organizzare un insieme di server in modo che siano collegati tra loro potrebbe essere eseguito dallo stesso calcolatore che esegue il processo client!
Client/server esempi di server (in una rete locale): server gestore dei dati (file server): gestisce la memorizzazione e la condivisione di dati server di stampa (printer server): gestisce le stampanti disponibili nella rete server di comunicazione: permette l’accesso ad altre reti locali o ad Internet esempio di server (in Internet): web server: risponde alle richieste per accedere a una pagina web server di posta elettronica: riceve e memorizza email, permette la lettura della casella di posta elettronica
Client/server tipicamente, in un certo (lungo) intervallo di tempo: un host può essere client di molti server un host può essere server di molti client per esempio: un client può richiedere tanti siti web, un web server può fornire una pagina web a tanti client Client Client Client Server Server Server Client Client Server Client Server Client Server Client
Client/server nel contesto di software per le reti: programma client: un programma eseguito da un host che richiede e riceve un servizio da un programma server in esecuzione su un altro host programmi Peer-to-peer (P2P): un programma P2P sull'host funziona sia come client che come server un host in questo caso viene chiamato peer un host agisce come client quando richiede un documento da un altro peer … agisce invece come server quando invia un file a un altro peer esempio: la telefonia Internet (Voice over IP), condivisione dei file (file sharing)
Protocolli di comunicazione esempio: Ciao Ciao Sai l’ora? 2:00 Tempo Tempo
Protocolli di comunicazione Richiesta di connessione TCP Risposta di connessione TCP Get http://www.google.com <file> Tempo Tempo
Protocolli di comunicazione esempio di protocollo usato quando si invia una richiesta per una pagina web: il client invia la richiesta per una connessione al server web il server web risponde con un messaggio di risposta di connessione l client invia il nome della pagina che vuole prelevare tramite il messaggio "Get <nome della pagina>" il server web restituisce il file contenente la pagina al client
Protocolli di comunicazione un protocollo "monolitico" che realizzi tutte le funzionalità necessarie per la comunicazione tra elaboratori in rete è difficile da realizzare inoltre, se cambia qualche componente della rete, si deve modificare l'intero protocollo per ridurre la complessità di progettazione la maggior parte dei protocolli è organizzata come una serie di livelli il numero dei livelli, il loro nome, le funzionalità differiscono da una rete ad un'altra
I due filosofi due filosofi, uno africano e uno cinese, vogliono discutere dell’oryctolagus cunilicus (il coniglio) l'africano vuole esprimere la sua simpatia per i conigli Problema1 i due filosofi non parlano la stessa lingua, né riescono a trovare un interprete che conosca le loro lingue l'africano parla swaily, il cinese parla cinese e francese Soluzione I filosofi possono comunque accordarsi su una lingua da usare nella comunicazione: il danese possono poi comunicare utilizzando due interpreti, ciascuno dei quali sa tradurre da una delle lingue note a uno dei filosofi alla lingua usata per la comunicazione
I due filosofi Problema2 Soluzione i due filosofi non vivono nello stesso luogo, e non sono abituati a viaggiare Soluzione i due possono comunque decidere di comunicare in altro modo: usando l'email
I due filosofi con gli accordi presi, i due filosofi possono effettivamente comunicare hanno adottato due diversi protocolli di comunicazione un protocollo relativo alla lingua (il danese) un protocollo relativo al mezzo di comunicazione (il fax) la comunicazione tramite email è possibile grazie alla rete mondiale Internet basata su protocolli che fissano gli standard internazionali sulle caratteristiche elettriche e temporali dei segnali utilizzati per le reti di computer
Protocolli di comunicazione I due filosofi email email
Protocollo TCP/IP cinque livelli: Applicazione Trasporto Rete Collegamento Fisico Applicazione Trasporto Rete Collegamento Fisico
TCP/IP HTTP FTP SMTP TELNET … DNS … TCP UDP IP Livello "Applicazione" Livello "Trasporto" IP Livello "Rete" Livello "Collegamento" Livello "Fisico"
Livello "Applicazione" ruolo: varie funzioni relative ai programmi applicativi esempi: SMTP: Simple Mail Transfer Protocol FTP: File Transfer Protocol TELNET HTTP: HyperText Transfer Protocol DNS: Domain Name System ogni protocollo usa un port diverso di uno stesso host Applicazione Trasporto Rete Collegamento Fisico comandi che un'applicazione di un host può inviare a un'applicazione di un altro host tra i comandi ci sono quelli che permettono di mettere su una connessione, cioè predispongono un host all'invio dati e uno alla ricezione dati ci sono altri comandi per richiedere dei dati ci sono dei formati per il trasferimento di dati di vario tipo
Livello "Trasporto" ruolo: trasferimento di messaggi completi dal livello di applicazione dell'origine a quello della destinazione ignora quello che succede tra i due host (hops) splitta dati in pacchetti, aggiunge info come sequence number, source/destination port TCP (Transmission Control Protocol): garantisce il trasferimento dei messaggi (gestisce quindi mancate consegne, ecc.) frazione il messaggio in frammenti più brevi (pacchetti) UDP non fornisce nessuna garanzia di consegna di un messaggio (tipicamente usati per la telefonia Internet e la videoconferenza) Applicazione Trasporto Rete Collegamento Fisico i comandi o i dati del livello applicazione vengono divisi in pacchetti, dei segmenti di informazione più corti, e numerati all'arrivo, lo stesso livello può ricostruire l'informazione per il livello applicazione a partire da vari pacchetti numerati
Livello "Rete" ruolo: trasferimento di gruppi di pacchetti dall'origine alla destinazione (da un host a un altro) gestisce indirizzi host e percorsi tra host gestisce la "mappa" della rete due principali componenti: protocollo IP: informazione che deve essere aggiunta al pacchetto per realizzare il trasferimento protocolli per instradamento: determinano i percorsi che i pacchetti devono seguire nella rete spesso chiamato livello IP o livello "internet" Applicazione Trasporto Rete Collegamento Fisico a questo livello entra in gioco la trasmissione vera e propria tra i due host il livello aggiunge l'indirizzo ip del destinatario a ogni pacchetto e sa, quando deve inviare un pacchetto proveniente dal livello trasporto o da un altro livello rete di un altro host, da che parte (verso quale host) è meglio inviare il pacchetto
Livello "Collegamento" ruolo: assicura il trasferimento fisico di sequenze di bit (pacchetti IP o parti di pacchetti IP) da un host al successivo connessione affidabile esempi: Ethernet, PPP (protocollo punto-a-punto) Applicazione Trasporto Rete Collegamento Fisico i pacchetti del livello ip vengono splittati in sequenze di bit e questo livello si assicura che ogni sequenza di bit arrivi in modo affidabile al livello collegamento dell'altro host
Ethernet Ethernet: diffuso per le reti locale, in cui un numero di computer condividono un mezzo di comunicazione quando un computer vuole comunicare, verifica che il mezzo di comunicazione sia libero e invia il segnale se invece si accorge che un altro computer sta trasmettendo, aspetta se si verifica un conflitto (due o più computer hanno inviato i loro messaggi contemporaneamente) i computer coinvolti: si fermano aspettano per un tempo T casuale riprovano la trasmissione lo stesso tipo di gestione di conflitti: anche in reti senza fili (IEEE 802.11) Applicazione Trasporto Rete Collegamento Fisico
Livello "Fisico" ruolo: gestisce la trasmissione e ricezione di singoli bit sul supporto fisico tra due host i protocolli fisici sono dipendenti dall'effettivo mezzo trasmissivo del collegamento cavo, wifi, satellite, ecc. Applicazione Trasporto Rete Collegamento Fisico questo livello ha a che fare col support fisico su cui avviene la trasmissione
Pacchetti IP il ruolo del livello TCP è di suddividere il messaggio in frammenti più brevi (pacchetti) il livello IP definisce l'informazione che deve essere aggiunto al pacchetto per realizzare il trasferimento nella rete come funziona in pratica il trasferimento dei pacchetti in Internet?
Pacchetti IP trasferimento dei pacchetti: Usiamo un’analogia (da Vincent Cerf, uno degli inventori di Internet): mandare un romanzo da Tahiti alla casa editrice a New York usando solo cartoline postali
Pacchetti IP bisogna spezzare il romanzo in frammenti (ognuno di poche righe) … numerare ogni cartolina (in modo tale che la sequenza corretta possa essere ricostruita) … scrivere l'indirizzo della casa editrice (il destinatario) su ogni cartolina … mettere le cartoline nella casella di lettere poi il servizio postale di Tahiti le instraderà verso la casa editrice
Pacchetti IP non è detto che tutte le cartoline seguano lo stesso itinerario alcune arrivano a New York via Hong Kong … … alcune arrivano a New York via Los Angeles, ecc. giunte alla casa editrice, la numerazione delle cartoline permetterà la ricostruzione del romanzo
Pacchetti IP pacchetto IP: contiene lo spazio per scrivere: informazione (una quantità limitata) un numero progressivo (identificatore) l'indirizzo IP del destinatario i pacchetti IP sono inviati attraverso Internet uno alla volta possono seguire percorsi diversi dallo stesso mittente e lo stesso destinatario giunti la destinazione sono riordinati secondo al numero identificatore
Pacchetti IP un vantaggio della possibilità di seguire diversi percorso in rete: nel caso di congestioni in rete (potrebbe essere più efficiente seguire un percorso invece di un altro) nel caso di un guasto di un dispositivo di un percorso (in questa situazione, il percorso non è più disponibile) per visualizzare un percorso tra nostro computer e quello di un sito web: www.traceroute.org
Indirizzi IP e DNS ogni computer collegato in Internet ha un indirizzo unico: il suo indirizzo IPv4 un indirizzo IPv4 contiene 32 bit, che sono suddivisi in 4 campi da 8 bit ciascuno Per esempio: 10000000000101000011111010101011 Suddivisi in: 10000000 00010100 00111110 10101011 di solito si usa una rappresentazione formata da 4 numeri decimali (tra 0 e 255) separati da un punto Per esempio: 128.20.62.171 IPv6: 8 gruppi di 4 cifre esadecimali (128 bit, 3.4×1038 indirizzi)
Indirizzi IP e DNS gli indirizzi IP devono essere univoci Per questo motivo è stata istituita una organizzazione, Internet Assigned Number Authority, preposta ad assegnare gli indirizzi IP garantendone l’univocità il provider (ISP) ai computer collegati da casa un indirizzo IP scegliendolo tra quelli che ha acquistato
… nome5.nome4.nome3.nome2.nome1 Indirizzi IP e DNS gli indirizzi IP numerici sono difficili da ricordare si usano quindi degli indirizzi simbolici che sono più significativi per l’essere umano www.unige.it, cs.bham.ac.uk, developer.netscape.com questi nome vengono tradotti in indirizzi IP numerici mediante il Domain Name System (DNS) gli indirizzi simbolici hanno un formato come quello seguente … nome5.nome4.nome3.nome2.nome1
Indirizzi IP e DNS sono costruiti a partire da uno schema gerarchico di nomi basato sul concetto di dominio root … … com edu gov mil net org au it zw Livello 1 gnu unito unige Livello 2 www.gnu.org www di psych disi Livello 3 www.di.unito.it www www elios Livello 4
Indirizzi IP e DNS domini di primo livello (top level): alcuni esempi non vi è alcuna corrispondenza diretta tra i domini e le reti che costituiscono Internet Cioè, computer nella stessa rete fisica possono essere in domini logici diversi Computer in reti fisiche diverse possono trovarsi nello stesso dominio logico com aziende edu università americane gov istituzioni governative mil istituzioni militari net fornitori d’accesso org organizzazioni non-profit … au Australia ch Svizzera fr Francia it Italia jp Giappone uk Regno Unito …
Indirizzi IP e DNS anche gli indirizzi di posta elettronica hanno una struttura: La parta a destra della @ ha una struttura basato sui domini (interpretato dal computer che spedisce il messaggio) La parta a sinistra della @ è l’identificativo dell’utente (interpretato dal computer che riceve il messaggio) si usano i name server (anche chiamati i server DNS) che gestiscono la corrispondenza tra nomi simbolici e indirizzi IP numerici
WWW WWW (World Wide Web): tutti i web server (che hanno il ruolo di inviare file ai browser) e i loro file i file normalmente sono le pagine web, ma anche possono essere file di audio, filmati ecc. distinzione tra Internet e il WWW: Internet: cavi e router che collegano i computer che hanno un indirizzo IP WWW: un servizio di Internet fornito dal sottoinsieme di quei computer (i web server)
WWW Una richiesta per visualizzare una pagina web: tramite uno Universal Resource Locator (URL) Per esempio: Tre parti principali: Protocollo: http:// indica al computer come gestire i file Nome del server: www.mauriziomancini.org, che è il nome simbolico dell'indirizzo IP del web server della pagina richiesta Percorso della pagina: /wordpress/fdi-2016 identifica il file e la sua posizione nel file system del web server http://www.mauriziomancini.org/wordpress/fdi-2016/
WWW le pagine sono scritte in linguaggio HTML una descrizione di come la pagina deve apparire all'utente richiedono meno spazio rispetto ad un formato grafico il browser può adattare la visualizzazione di una pagina
La sicurezza nelle reti comunicazione sicura: voluta per le transazioni commerciali in Internet, informazione sulla sicurezza nazionale, messaggi personali, ecc. problema: Internet è una rete pubblica, e informazione può essere intercettata attacchi a una rete privata possono arrivare dall’esterno Firewall: un dispositivo posizionato tra una rete privata (di un'organizzazione) e l'esterno Controlla e regola l’entrata e l’uscita di pacchetti, per evitare che i pacchetti di malintenzionati penetrino la rete
La sicurezza nelle reti riservatezza: solo il mittente e il destinatario dovrebbero essere in grado di comprendere il contenuto del messaggio trasmesso un messaggio può essere intercettato: quindi dovrebbe essere cifrato (dal mittente) e decifrato (dal destinatario) il messaggio cifrato dovrebbe essere incomprensibile a chi non possiede il codice di decifratura esistono altri tipi di riservatezza: per esempio, forse il mittente vuole mantenere segreto non solo il contenuto del messaggio mandato al destinatario, ma anche il fatto che sta comunicando con il destinatario
La sicurezza nelle reti autenticazione: il mittente e il destinatario devono essere reciprocamente sicuri della loro identità integrità del messaggio: il contenuto di una comunicazione non deve subire alterazioni durante la trasmissione Alterazioni: per esempio, a manipolazioni disponibilità e controllo dell’accesso: i servizi forniti devono essere disponibili e accessibili agli utenti autorizzati in rete attacchi di negazione del servizio (Denial-of-Service): rende inutilizzabili reti, host e altre componenti di Internet da parte degli utenti
La sicurezza nelle reti durante la comunicazione, un malintenzionato potrebbe: ascoltare i messaggi in transito (per esempio, per rubare un password) rimuovere e aggiungere messaggi o modificare il loro contenuto Dati Messaggi Dati A: mittente (sicuro) B: destinatario (sicuro) Malintenzionato
Crittografia crittografia: consente il mittente di mascherare i dati in modo che un malintenzionato non possa comprendere il contenuto il destinatario deve essere in grado di recuperare i dati originali testo in chiaro (plaintext o cleartext): il messaggio originario scritto dal mittente messaggio cifrato (ciphertext): la versione cifrata del messaggio
Crittografia in molti casi le tecniche di crittografia sono nel dominio pubblico occorrono delle informazioni segrete che impediscono ai malintenzionati di decifrare i messaggi: le chiavi il mittente ha una chiave KA usata per generare la versione cifrata KA(m) del messaggio m in testo in chiaro il destinatario ha una chiave KB e un algoritmo di decifratura che restituisce il messaggio m in testo in chiaro: cioè calcola KB(KA(m))=m
Crittografia Chiave K Chiave K Testo in chiaro Testo in chiaro Testo cifrato A: mittente (sicuro) B: destinatario (sicuro) Malintenzionato
Chiave simmetrica le chiavi di A (mittente) e B (destinatario) sono identiche e segrete per esempio: un antico algoritmo - cifrario di Cesare considerare un messaggio di testo sostituire ogni carattere del testo con un altro sfasato (rispetto al primo) i un numero k di posti nell’alfabeto per esempio: se k=3, “a” diventa “d”, “c” diventa “f”, ecc. ciclico: a volta terminato l’alfabeto si ricomincia con la lettera “a” la chiave: il valore k "Brad, I love you. Angelina" (con k=3) diventa "eudg, l oryh brx. dqjholqd" (nell'alfabeto inglese)
Chiave simmetrica per esempio: cifrario monoalfabetico considerare un messaggio di testo sostituire ogni carattere del testo con un altro, ma la sostituzione avviene seguendo uno schema arbitrario però una data lettere è sostituita con sempre la stessa lettera per esempio: "Brad, I love you. Angelina" diventa "bomv, s gktc wky.mjzcgsjm" a b c d e f g h i j k l m n o p q r s t u v w x y z
Chiave simmetrica nel caso di cifratura monoalfabetica: un attacco può essere basato sulla ricerca tra tutti le combinazioni possibili (un attacco di "forza bruta") alcune lettere e gruppi di lettere (in italiano, "che", "zione" e "mente") ricorrono con maggiore frequenza: rende più facile un attacco al codice cifratura polialfabetica: usa moltiplici sostituzioni monoalfabetiche per esempio, la sequenza C1 C2 C2 C1 C2 cifrare la prima lettera del messaggio usando C1, la seconda lettera con C2, …, la quinta con C2 poi ripetiamo la sequenza: la sesta lettera è cifrata con C1, la settima con C2, ecc.
Chiave pubblica svantaggio delle chiavi simmetriche: le due parti coinvolte nella comunicazione devono sapere la chiave ma come? comunicato fisicamente? tramite un canale sicuro? una soluzione: chiave pubblica "asimettrica", nel senso che le due parti coinvolte usano chiavi diverse per cifrare e decifrare proposta da Diffie e Hellman nel 1976 il sistema usa due chiavi: una chiave pubblica (KB+): disponibile a chiunque, anche alle malintenzionati una chiave privata (KB-): conosciuta solo del destinatario della comunicazione
Chiave pubblica uso delle due chiavi: il mittente A usa un dato algoritmo di cifratura e la chiave pubblica di KB+ di B per generare un messaggio criptato (scritto KB+(m) ) il destinatario B usa un algoritmo di decifratura e la propria chiave privata KB- per decodificare il messaggio criptato (cioè il destinatario calcola KB- (KB+(m)) ) esistono metodi per scegliere chiavi pubbliche e private in modo tale che KB- (KB+(m)) = m
Chiave pubblica Chiave pubblica KB+ Chiave privata KB- KB-(KB+(m)) Messaggio in chiaro, m Messaggio in chiaro, m Testo cifrato KB+(m) A: algoritmo di cifratura B: algoritmo di decifratura KB-(KB+(m))
Chiave pubblica: RSA il sistema a chiave pubblica RSA è il più noto dei sistemi a chiave pubblica RSA: nome derivato dalle iniziali degli inventori Rivest, Shamir e Adleman due punti fondamentali: la scelta della chiave pubblica e di quella privata gli algoritmi di cifratura e di decifratura basato sui numeri primi: i numeri naturali che sono divisibili solo per 1 e per se stessi: 2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, …