APPUNTI DI CRITTOGRAFIA: Dai cifrari storici ad RSA.

Dimensione: px
Iniziare la visualizzazioe della pagina:

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

Transcript

1 APPUNTI DI CRITTOGRAFIA: Dai cifrari storici ad RSA

2 1 APPUNTI DI CRITTOGRAFIA (Dai cifrari storici ad RSA) CRITTOLOGIA: scienza che si occupa di comunicazioni in forma sicura e segreta CRITTOGRAFIA: studio e applicazione dei principi e delle tecniche per rendere l'informazione intellegibile a tutti tranne che al destinatario CRITTOANALISI: si occupa di risolvere i crittosistemi per recuperare l'informazione nascosta. CRITTOGRAFIA MODERNA: progetto e valutazione di metodi e tecniche per la protezione dell'informazione. E' basata sulla matematica. Il passaggio dall'informazione fisica a quella digitale richiede un insieme di tecniche che proteggono dati e contenuti. PHONE COIN CLIPPING: 2 interlocutori comunicano le loro scelte che restano ignote fino al calcolo di un XOR fra queste. Se le scelte sono uguali il risultato è abbinato al bit=0 altrimenti è abbinata al bit=1. ES: A > N > B Tab. XOR A < b < B X Y XOR A > p,q > B numericamente: A > N = > B A < b =0 < B A > p=5,q= > B dove : N è un prodotto fra numeri primi = pq e p<q b è il bit e le condizioni generali sono: se p=1 e q=3 in mod4 --> b=0 se p=3 e q=1 in mod4 --> b= Nell'esempio numerico, secondo la scelta di A che invia N=35 (prodotto di 7 e 5) e la scelta di B che manda un bit b=0 e secondo le condizioni generali si ha che: A aveva scelto a=0, dove a è il bit, perchè: p=1 in mod4 =5 q=3 in mod4 =7 Siccome A e B hanno effettuato la stessa scelta : a=0 e b=0 ---> l'operazione axorb =0 Notiamo che scegliendo un N molto grande faciliteremmo il nascondimento della scelta sia di A che di B. PROTOCOLLI CRITTOGRAFICI: un protocollo o SCHEMA definisce le interazioni fra le parti per ottenere le proprietà di sicurezza(segretezza, autenticità...)

3 2 PRIMITIVE DI CIFRATURA TECNICHE DI CIFRATURA uso di cifrari simmetrici o a chiave privata uso di cifrari asimmetrici o a chiave pubblica TECNICHE PER AUTENTICAZIONE È INTEGRITÀ funzioni HASH MAC Firme digitali SCENARIO SIMMETRICO A > CANALE SICURO > B (chiave k) (chiave k) PRINCIPIO DI KERKOHFFS: La sicurezza di un cifrario deve dipendere solo dalla segretezza della chiave e non dalla segretezza dell'algoritmo usato. SCENARIO ASIMMETRICO A > CANALE SICURO:msg cifrato con privk > B (chiave pub. k1) (chiave pub. k2) (chiave priv. k1) (chiave priv. k2) Non ci sono chiavi condivise fra A e B ed ogni utente ha una sola chiave privata e tutte le possibili chiavi pubbliche dei suoi possibili destinatari. 2 parti comunicano su un canale sicuro. Usano una chiave per cifrare il messaggio, spedirlo e usare la stessa chiave per decifrarlo. Chi si intromette nella comunicazione non può decifrare senza chiave. Si usano 2 chiavi diverse fra loro. Una chiave pubblica è usata per cifrare il messaggio, la chiave privata viene usata per decifrarlo. B aprirà il messaggio cifrato con pub.k2 usando la priv.k2, mentre A ha tutte le possibili pub.k dei destinatari. FIRMA DIGITALE Equivale alla firma autografa convenzionale. Ha valore legale. Requisiti: deve poter essere facilmente prodotta dal legittimo firmatario non deve essere riproducibile da altri deve poter essere verificata da tutti facilmente FUNZIONI HASH: Esse acquisiscono un blocco di bit arbitrario in inpout e tramite calcoli matematici riproducono un blocco di bit in output di larghezza prefissata. Vengono usate per:

4 3 firme digitali verificare l'integrità e scovare eventuali manomissioni e falsificazioni certificare il tempo CRITTOGRAFIA CLASSICA: L'obiettivo della crittografia classica è quello di proteggere le comunicazioni. Le tecniche utilizzate sono: STEGANOGRAFIA: occultamento della comunicazione tramite la disposizione delle lettere/parole in un ingenuo msg contrassegnando i caratteri usando inchiostro invisibile nascondendo nei bit l'informazione (watermarking) vantaggi: si nasconde sia il messaggio che il fatto stesso di essere in comunicazione svantaggi: se la comunicazione è studiata con attenzione il messaggio può essere scoperto e la segretezza è persa CRITTOGRAFIA CRITTOGRAFIA E ANTICHI METODI DI CIFRATURA CIFRARIO DI POLIBIO: ogni lettera è abbinata aduna coppia di numeri CIFRARIO DI CESARE: ogni lettera in chiaro viene sostituita con una corrispondente lettera del cifrario ottenuto shiftando di un passo k la sequenza dell'alfabeto. CIFRARI SIMMETRICI dettagli Se ho: un messaggio in chiaro: X=[x1,x2,...,xn] una chiave: K=[k1,k2,...,kn] il messaggio cifrato sarà: Y=E k (X)=[y1,y2,...,yn], dove E k è l'operazione di cifratura con chiave K CLASSIFICAZIONE DEI CIFRARI SIMMETRICI: CIFRARI A BLOCCHI: il cifrario agisce su ogni blocco in chiaro in input e produce un blocco cifrato in output CIFRARI A FLUSSI: il messaggio è un flusso continuo che percorre il cifrario e da esso viene costantemente cifrato. CIFRARI SIMMETRICI/ASIMMETRICI: ibridi La proprietà fondamentale di un algoritmo di cifratura è: X=D K (E K (X)), ovvero: il destinatario del msg, tramite la stessa chiave deve poter effettuare la decrittografia del messaggio stesso. CLASSIFICAZIONE DELLE OPERAZIONI DI CIFRATURA:

5 4 SOSTITUZIONE: ogni elemento del testo è mappato su un altro elemento(come in Cesare). Gli insiemi di elementi non sono obbligatoriamente gli stessi. TASPOSIZIONE: gli elementi del testo in chiaro vengono scambiati di posto (Anagramma) È fondamentale non perdere mai l'informazione nei processi di cifratura e decifratura e questo è garantito dalla reversibilità delle operazioni stesse. CIFRARI CON SHIFT (in termini più o meno matematici) 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 Procedure: E K (X) = (x+k) mod26 con k in {1,...,25} D K (Y) = (y-k) mod26 con k in {1,...,25} Per il cifrario di Cesare, se k=3 --> A=E K (0+3)= 3 che nella sequenza cifrante corrisponde a D; quindi la A sarà cifrata con la D. Con questo metodo di cifratura sono possibili ben 25 chiavi diverse di cifratura. SICUREZZA DI UN CIFRARIO È fondamentale assicurare che dal testo cifrato non si risalga alla chiave di cifratura usata molto facilmente Bisogna evitare gli attacchi a forza bruta che consistono in ripetuti tentativi che mirano al ritrovamento della chiave Un cifrario può essere: UNCONDITIONALLY SECURE: indipendentemente dal tempo e dalle risorse è impossibile decrittografare il testo cifrato COMPUTATIONALLY SECURE: il tempo richiesto per violare la cifratura è grande e superiore alla vita utile delle informazioni cifrate. CIFRARIO MONOALFABETICO 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 d e f g h i j k l m n o p q r s t u v w x y z a b c Funzionamento: al posto di una lettera in chiaro dell'alfabeto si mette quella corrispondente nell'alfabeto cifrante. Con un alfabeto a 26 lettere avrei 26! possibiltà. CIFRARIO A SOSTITUZIONE Si usa come chiave qualche parola o frase di senso compiuto, ovviamente da ricordare bene.

6 5 Frase Chiave: JULIUS CAESAR 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 j u l i s c a e r t v w x y z b d f g h k m n o p q Notiamo come nell'alfabeto cifrante abbiamo evitato le ripetizioni e dopo l'immisione della frase chiave abbiamo trascritto il resto dell'alfabeto. In questo caso avremmo più di 26 ma meno di 26! possibilità. LA CRITTOANALISI: è lo studio basato sulla natura dell'algoritmo di cifratura e mira alla conoscenza dell'algoritmo o del testo in chiaro. Si può eseguire, a tal scopo, uno studio sulle FREQUENZE DELLE OCCORRENZE DELLE LETTERE nel messaggio da rompere confrontando: grafici delle occorrenze degli alfabeti stranieri standard di scrittura nelle diverse lingue Per evitare che tale lavoro diventi facile, un crittologo deve: alzare la frequenza nel testo in chiaro delle lettere con bassa frequenza aggiungendone altre (nulle) abbassare la frequenza delle lettere più presenti cifrandole con più simboli scelti a caso (omofoni) CIFRATURA POLIALFABETICA: vengono usati più alfabeti cifranti e più lettere cifranti per carattere del testo in chiaro. CIFRARIO DI LEON BATTISTA ALBERTI A B C D E F G H I L M N O P Q R S T U V Z e u f a v o d n p h s g t m i l b r z c q c m u n b i p l o v a t g s d r h q f z e Con l'utilizzo dei due alfabeti cifranti la parola LEONE diventerebbe : HBTTV Infatti, per cifrare il testo vengono utilizzati alternativamente entrambi gli alfabeti. Ciò comporta la conseguente perdita di univoca corrispondenza per lettera con mappatura doppia. DISCO DI ALBERTI: una delle prime macchine cifranti. Essa era composta da due dischi con due alfabeti su ognuno di essi. I dischi erano concentrici e ruotavano secondo una combinazione data che corrispondeva alla chiave di cifratura. Ruotando i dischi le lettere assumevano una diversa corrispondenza.

7 6 CIFRARIO DI PORTA: In una tabella 26x26 vengono disposti 675 numeri, rappresentanti le coordinate di 26 caratteri sulle ascisse e 26 caratteri sulle ordinate: x\y a b c.. z a b c z Il metodo si basa, oltre che sulla tabella, anche suio bigrammi: le parole vengono decomposte in coppie di caratteri. TXT IN CHIARO: DO MA NI che in termini di cordinate sarebbe (XY XY XY ); da ciò deriva che il TXT CIFRATO sarà l'insieme dei punti ottenuti dalle coordinate: DO --> 92 MA--> 312 NI --> 346 CIFRARIO DI HILL Fino ad ora bbiamo considerato i bigrammi, ovvero gruppi di 2 lettere. Proviamo ora a considerare gruppi di m lettere. Funzionamento del cifrario: m lettere in chiaro vengono sostituite con m lettere cifrate secondo EQUAZIONI LINEARI ES: per m=2, (x 1,x 2 ) e (y 1,y 2 ) utilizzando una Matrice Chiave mxm = (11 8 ; 3 7) danno: Y 1 =11x 1 + 3x 2 mod26 Y 1 =8x 1 + 7x 2 mod26 In generale : (y 1, y 2,..., y m ) = ( x 1, x 2,..., x m ) per la matrice chiave e per : cifrare: Y=E K (X) = XK decifrare: X=D K (Y) = YK -1 dove K -1 è l'inversa della MATRICE CHIAVE (ovviamente i calcoli vanno fatti tutti in mod26)

8 7 CRITTOANALISI DEL CIFRARIO DI HILL Un attacco probabile a questo cifrario può consistere nel cercare la chiave partendo dal presupposto di conoscere: la dimensione della matrice della chiave, m il testo cifrato il testo in chiaro Infatti, se: M= testo in chiaro C= testo cifrato m= dimensione chiave K e se è vero che MK = C da cui si ha che K=M -1 C calcolando facilmente l'inversa della matrice del testo in chiaro e moltiplicandola per la matrice del testo cifrato otterremmo la chiave K. (ricordiamo che tutti i calcoli vanno fatti in mod26) CIFRARIO DI VIGENERE Vengono usati più alfabeti cifranti che variano nel corso della cifratura con una certa periodicità. Gli alfabeti cifranti sono racchiusi in un quadrato detto QUADRATO DI VIGENERE: 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 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 A C D E F G H I J K L M N O P Q R S T U V W X Y Z A B D E F G H I J K L M N O P Q R S T U V W X Y Z A B C E F G H I J K L M N O P Q R S T U V W X Y Z A B C D F G H I J K L M N O P Q R S T U V W X Y Z A B C D E G H I J K L M N O P Q R S T U V W X Y Z A B C D E F H I J K L M N O P Q R S T U V W X Y Z A B C D E F G I J K L M N O P Q R S T U V W X Y Z A B C D E F G H J K L M N O P Q R S T U V W X Y Z A B C D E F G H I K L M N O P Q R S T U V W X Y Z A B C D E F G H I J L M N O P Q R S T U V W X Y Z A B C D E F G H I J K M N O P Q R S T U V W X Y Z A B C D E F G H I J K L N O P Q R S T U V W X Y Z A B C D E F G H I J K L M O P Q R S T U V W X Y Z A B C D E F G H I J K L M N P Q R S T U V W X Y Z A B C D E F G H I J K L M N O Q R S T U V W X Y Z A B C D E F G H I J K L M N O P R S T U V W X Y Z A B C D E F G H I J K L M N O P Q S T U V W X Y Z A B C D E F G H I J K L M N O P Q R T U V W X Y Z A B C D E F G H I J K L M N O P Q R S U V W X Y Z A B C D E F G H I J K L M N O P Q R S T V W X Y Z A B C D E F G H I J K L M N O P Q R S T U W X Y Z A B C D E F G H I J K L M N O P Q R S T U V X Y Z A B C D E F G H I J K L M N O P Q R S T U V W Y Z A B C D E F G H I J K L M N O P Q R S T U V W X Z 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 Esempio di Funzionamento: txt chiaro CODIC EMOLT OSICU RO (codice molto sicuro) chiave REBUS REBUS REBUS RE (rebus) (uso rebus e la applico periodicamente per tutto il testo in chiaro)

9 8 txt cifrato TSECU VQPFL FWJWM IS (risultato cifratura) In termini matematici: txt in chiaro --> C i = M i + K i modt mod26 --> txt cifrato, dove t è la lunghezza della chiave. Quindi: C 7 = M 7 K (7mod5) = 2 ==> M + E che nel corrispondente alfabeto sarà Q Caratteristiche del cifrario di Vigenere: molto sicuro resistenza all'analisi delle frequenze dato che una lettera cifrata corrisponde a più simboli in chiaro ed esiste un numero grande di chiavi La CRITTOANALISI del Cifrario di Vigenere, concentra lo studio sulle ripetizioni che portano ad una stima della lunghezza della chiave. Si analizzano le frequenze delle lettere in ognuno degli alfabeti cifranti corrispondenti alle lettere della chiave. PRIMO ATTACCO: Kasiski fu il primo ad attaccare questo cifrario. --> TEST DI KASISKI Ipotizziamo di avere il testo cifrato:...wpixfghdafnvtv...klxfglo... Il test si basa sull'eventuale ripetizione di alcune sequenze di lettere nel testo cifrato; in base a queste ripetizioni ipotizziamo che esse siano cifrature dello stesso testo in chiaro. Studiamo, quindi, tutte le ripetizioni ed elenchiamo le distanze tra le diverse ripetizioni del testo cifrato. Fatto questo, cerchiamo un MCD(massimo comune divisore) delle distanze e determiniamo la lunghezza della chiave = MCD SECONDO ATTACCO, STUDIO DELL'INDICE DI COINCIDENZA: L'indice di coincidenza indica la probabilità per cui 2 caratteri casuali siano uguali e ci fornisce notizie sulla possibile lunghezza della chiave cercata. Ricordando che la formula generale della probabilità dice che P(A)= nro casi favorevoli / nro casi possibili iniziamo col supporre di scegliere la I coppia di caratteri: avremo n modi possibili per scegliere il primo carattere avremo n-1 modi possibili per scegliere il secondo carattere Inoltre: se moltiplichiamo le scelte possibili --> n ( n-1) e dividiamo per 2 --> n ( n-1) / 2 dato che scegliere A e B è uguale a scegliere B e A potremo dire che i casi possibili sono il frutto dell'operazione : casi possibili = n ( n-1) / 2 In più, la probabilità per cui 2 caratteri in una sequenza siano effettivamente uguali sarà data dal risultato di un'analisi delle frequenze dei caratteri stessi e avremo che:

10 9 l'indice DI COINCIDENZA IC (x 1,x 2,...,x n ) = 0 25 f i (f i 1) / n ( n-1) dove f i è il numero di occorrenze i nella stringa che si considera. ES: se la stringa è MONO avrò che: n = lunghezza stringa = 4 casi possibili = n ( n-1) / 2 = 4 * 3 / 2 = 6 la O si ripete 1 volta -> casi favorevoli = 1 IC (MONO) = 1 / 6 ES: se la stringa è GAMMA avrò che: n = lunghezza stringa = 5 casi possibili = n ( n-1) / 2 = 5 * 4 / 2 = 10 la A si ripete 1 volta -> casi favorevoli A = 1 + la M si ripete 1 volta -> casi favorevoli M = 1, quindi TOT casi favorevoli = 2 IC (GAMMA ) = 2 / 10= 1/5 Dobbiamo tener presente che per ogni dizionario linguistico usato è stata stilata una probabilità di occorrenza dei caratteri già pronta. Secondo le frequenze stimate il risultato dell'ic diventa: generale --> 0,038 inglese --> 0,065 italiano --> 0,075 Con tale strumento si può risalire alla lingua su cui orientare i nostri studi crittoanalistici. COME USARE L'IC PER TROVARE LA CHIAVE Se: t = lunghezza della chiave t = 1 --> sto usando una cifratura monoalfabetica (a singolo carattere) Se: IC sarà circa: se t=1 --> 0,075 (ita) oppure 0,065 (ing) se t 1 --> 0,038 t = lunghezza della chiave t = 2 --> sto usando una cifratura polialfabetica (a doppio carattere) IC sarà circa: se t=2 --> 0,075 (ita) oppure 0,065 (ing) se t 2 --> 0,038 etc... Se i valori che trovo non si avvicinano a 0,075 oppure a 0,065 dobbiamo continuare ad incrementare t.

11 10 TERZO ATTACCO, STUDIO DELL'INDICE DI MUTUA COINCIDENZA IMC: Per trovare i caratteri della chiave K 0 K 1 K 2... K t-1 si usa l' INDICE MUTUO DI COINCIDENZA (IMC) che ci dice qual'è la probabilità di estrarre da 2 stringhe 2 caratteri uguali. Siccome ora le stringhe di caratteri sono due o più, si ha che: casi possibili = n n' e avremo, quindi: l'indice DI MUTUA COINCIDENZA IMC (x 1,x 2,...,x n ; y 1,y 2,...,y n ) = 0 25 f i f i ' / n n' dove: f i è il numero di occorrenze i nella prima stringa che si considera f i ' è il numero di occorrenze i nella seconda stringa che si considera. ES: se le stringhe sono CIA e CIAO avrò che: n = lunghezza stringa CIA = 3 n' = lunghezza stringa CIAO = 4 casi possibili = n n' = 3 * 4 = 12 la C si ripete 1 volta + la I si ripete 1 volta + la A si ripete 1 volta --> casi favorevoli = 3 IMC (CIA; CIAO) = 3 / 12 = 1 / 4 CIFRATURA CON TRASPOSIZIONE RAIL FENCE (staccionata) U S G E O I T O R G O I R N E R T E L U P I I N E O queste due righe rappresentano una staccionata che va percorsa, a partire dalla prima lettera della prima riga, proseguendo sulla prima lettera della seconda riga, continuando sulla seconda lettera della prima riga e proseguendo alternativamente, su e giù fino ad esaurimento dei caratteri. Se trascriviamo in questo ordine i caratteri potremo renderci conto che dietro la staccionata è nascosto il msg : un segreto e il tuo prigioniero Ovviamente in fase di crittografia, il msg va scritto su un'unica riga trascrivendo prima tutte le lettere della prima riga e poi tutte le lettere della seconda riga: il testo cifrato sarà: U S G E O I T O R G O I R N E R T E L U P I I N E O CIFRARIO A COLONNE : il testo in chiaro viene scritto secondo un numero X di righe rispettando l'incolonnamento e quindi il numero di colonne assegnato. La chiave mi indicherà in che modo combinare le colonne!

12 11 ES: Ordine delle colonne (CHIAVE) Testo in chiaro a t t a c k p o s t p o n e d u n t i l t w o a m x y z Testo cifrato secondo l'ordine: t t n a a p t m t s u o a o d w c o i x k n l y p e t z Per decifrare il messaggio, sapendo la chiave, incomincio a incolonnare il testo partendo dalla terza colonna. CILINDRI CIFRANTI: dischi rotanti che, tramite diverse combinazioni, cifrano il testo. Con il passare del tempo si abbandonarono ingranaggi meccanici e si cominciò ad adottare i segnali elettrici. Ogni disco, o rotore, realizzava un input/output a seconda delle combinazioni. Esempio più palese di macchina a cilindri cifranti è stato ENIGMA, usato nella II Guerra Mondiale. Ogni rotore ruota ogni volta che si digita un carattere. Con 2 rotori si può già avere una cifratura a 26x26 possibilità. Per la CRITTOANALISI sarebbe fondamentale conoscere: quanti rotori ci sono la circuiteria di combinazione come erano disposti i rotori l'ordine di partenza Il periodo di sostituzioni è talmente piccolo che, considerando almeno 50 lettere cifranti per sostituzione, incorreremmo in una mole enorme di testo. Quindi è da evitare la sola analisi delle frequenze. Anche la sola analisi delle chiavi è da sconsigliare dato il gran numero di chiavi esistenti. La crittoanalisi si concentra, a questo punto, sulla natura degli algoritmi basandosi sul testo in chiaro e gli algoritmi stessi. Per maggiore sicurezza, i crittologi, usavano una CHIAVE GIORNALIERA DI MESSAGGIO ulteriore per cifrare i messaggi. Essa veniva inviata ai rotori che si inizializzavano secondo la suddetta chiave giornaliera. La chiave giornaliera di messaggio, da una parte diventava un ulteriore problema che i crittoanalisti dovevano affrontare, dall'altra parte è stata la vera e propria debolezza della macchina Enigma. Tramite uno studio con tabelle di dipendenza, si riuscì a risalire a precise concatenazioni che definivano il numero di collegamenti nelle concatenazioni stesse. Tale numero dipendeva dalle posizioni iniziali degli scambatori. A questo punto fu necessario combinare le varie posizioni iniziali, raccolte in tabelle, con le concatenazioni studiate. Questo potè aiutare a risalire ai possibili

13 12 messaggi iniziali. IL CIFRARIO PERFETTO: One Time Pad Testo in chiaro composto da n lettere La chiave deve essere lunga quanto il msg stesso e deve essere casuale la cifratura è: C i <-- M i (XOR) K i in mod26 dove, M i : testo in chiaro K i : chiave Questo tipo di cifratura non è rompibile in nessun modo dato che dallo stesso testo cifrato posso avere più testi in chiaro! Il problema è che questo tipo di cifrario richiede al crittologo di cambiare ogni volta la chiave, dato che essa si presenta monouso ed in più la lunghezza della chiave deve essere uguale al testo in chiaro. Ciò indurrebbe ad avere enormi repertori di chiavi. Ci sono più TIPI DI ATTACCHI e questo dipende da quanta informazione rendiamo disponibile all'attaccante: 1. KNOWN CIPHER TEXT ATTACK: l'attaccante conosce solo il testo cifrato 2. KNOWN PLAINTEXT ATTACK: l'attaccante conosce testo cifrato e testo in chiaro e cerca la chiave 3. CHOSEN PLAINTEXT ATTACK: l'attaccante può ottenere la cifratura di un testo in chiaro a scelta. Ciò servirebbe per recuperare la chiave. 4. CHOSEN CIPHERTEXT ATTACK: l'attaccante può ottenere la decifratura di un testo cifratop a scelta 5. CHOSEN TEXT ATTACK: l'attaccante può ottenere la cifratura e la decifratura di coppie di testi in chiaro/cifrato CRITTOANALISI DEL CIFRARIO DI VIGENERE: Il primo ad attacare il cifrario di Vigenere fu KASINSKI. Il suo metodo di attacco, denominato TEST DI KASINSKI, si basa sull eventuale ripetizione di alcune sequenze di lettere nel testo cifrato. Se ad esempio il testo cifrato fosse: WPIXFGHDAFNVTV KLXFGLO. Allora, consodereremmo la sequenza XFG che si ripete, ipotizzando che questa sia la cifratura dello stesso testo in chiaro. Studiando tutte le ripetizioni ed elencando le distanze tra le diverse ripetizioni del testo cifrato, si può cercare di risalire al MCD delle distanze determinando così la lunghezza della chiave. Altri 2 metodi usati per effettuare la crittoanalisi del cifrario di Vigenere sono: 1. L uso dell INDICE DI COINCIDENZA, per individuare la lunghezza della chiave 2. L usa dell INDICE DI MUTUA COINCIDENZA, per individuare i caratteri della chiave

14 13 1. INDICE DI COINCIDENZA Questo indice indica la probabilità per cui 2 caratteri casuali (in coppie indistinte) siano uguali. Ricordiamo che: P(A) = numero di casi favorevoli / numero di casi possibili Supponiamo di scegliere la I coppia di caratteri: Avremo n modi possibili per scegliere il primo carattere Avremo n-1 modi possibili per scegliere il secondo In virtù di quanto detto, dobbiamo mmoltiplicare le scelte possibili, n (n-1) e poi dividere tutto per 2 dato che la combinazione di 2 lettere, ad esempio A e B, può essere: A,B oppure B,A che resta però la stessa cosa. Quindi avremo che, la probabilità per cui 2 caratteri in una sequenza siano effettivamente uguali sarà il risultato di un analisi delle frequenze dei caratteri e, l indice di coincidenza sarà calcolato come: IC(x 1, x 2,, x 3 ) = Σ 0 25 [f i (f i 1)] / n (n-1) dove f i è il numero di occorrenze carattere i nella stringa x 1, x 2,, x 3. ES. Consideriamo la parola MONO e calcoliamo l IC(MONO) n = lunghezza stringa = 4 casi possibili = n (n-1) / 2 = 6 casi favorevoli = nro di caratteri che si ripetono (in questo caso di O) = 1 quindi IC(MONO) = 1 / 6 Consideriamo anche che indagini statistiche hanno portato ad assumere che per ogni lingua l indice di coincidenza ha un valore costante approssimativo: IC(x 1, x 2,, x 3 ) Σ p i che: Scegliendo i caratteri x 1, x 2,, x 3 a caso è circa uguale a 0,038 con p i = 1/26 Per la lingua inglese è circa uguale a 0,065 Per la lingua italiana 0,075 Vediamo ora come si applica l IC per il calcolo della lunghezza (t) della chiave K:

15 14 Se avessimo una chiave K con lunghezza t = 1 allora avremmo una cifratura monoalfabetica ed in questo caso : o se IC(x 1, x 2,, x 3 ) 0,075 (per italiano) la lunghezza è stata indovinata o se IC(x 1, x 2,, x 3 ) 0,038 la lunghezza non è 1 Se avessimo una chiave K con lunghezza t = 2 allora avremmo una cifratura polialfabetica ed in questo caso : o se IC(x 1, x 2,, x 3 ) e IC(x 3, x 5,, x n+2 ) 0,075 (per italiano) la lunghezza è stata indovinata o se IC(x 1, x 2,, x 3 ) e IC(x 3, x 5,, x n+2 ) 0,038 la lunghezza non è 2 Da ciò capiamo che se i valori di IC non si avvicinano a quelli standard usati per la lingua considerata, allora dovremo incrementare t. 2. INDICE MUTUO DI COINCIDENZA Questo indice ci dà informazioni sul valore della chiave K 0 K 1 K t. L indice dice qual è la probabilità che si ha di prendere da 2 stringhe 2 caratteri uguali e si calcola come di seguito: IMC(x 1, x 2,, x 3 ; y 1, y 2,, y 3 ) = Σ 0 25 (f i f i )/ n n dove: f i = nro di occorrenze carattere i in x 1, x 2,, x 3 f i = nro di occorrenze carattere i in y 1, y 2,, y 3 ES. Consideriamo le parole CIA e CIAO e calcoliamo l IMC(CIA,CIAO) n x n y = prodotto delle lunghezze stringhe = 3 * 4 = 12 = casi possibili casi favorevoli = nro di caratteri che si ripetono (in questo caso di C,I e A) = 3 quindi IMC(CIA,CIAO) = 3 / 12 = 1 / 4 Se le due stringhe sono state cifrate con due o più chiavi K diverse è più opportuno considerare il VALOR MEDIO dell IMC che sarà IMC MEDIO(x 1, x 2,, x 3 ; y 1, y 2,, y 3 ) Σ 0 25 p i-ko p i-k1 = Σ 0 25 p h p h+(ko-k1) E a seconda della lingua: in inglese : IMC MEDIO(x 1, x 2,, x 3 ; y 1, y 2,, y 3 ) o con K 0 -K 1 = 0 0,065 o con K 0 -K 1 0 0,045

16 15 in italiano : IMC MEDIO(x 1, x 2,, x 3 ; y 1, y 2,, y 3 ) o con K 0 -K 1 = 0 0,075 o con K 0 -K 1 0 0,047 La formula generale dell IMC Medio darebbe in realtà solo 14 valori possibili in aritmetica modulare in mod26. Per determinare la chiave dobbiamo operare tutti i 26 tentativi possibili partendo da 0 studiando il sistema di t equazioni in t-1 incognite del tipo K 0 -K t ottenuto. CIFRATURA SIMMETRICA IL DES CIFRARI A BLOCCHI Il testo in chiaro viene diviso in blocchi di lunghezza fissa ed ogni blocco viene cifrato uno alla volta. Un cifrario a blocchi opera su blocchi di n bit per produrre blocchi di n bit di output. Con blocchi di n bit in chiaro, ho: 2 n possibili output univoci e le chiavi saranno n * 2 n grandi Il sistema ideale di cifratura dovrebbe essere quello che usa blocchi grandi di bit, realizzato su una funzione qualsiasi che mappa blocchi di bit in chiaro su blocchi di bit cifrati. Il problema, però, è l ingestibilità delle chiavi che sarebbero troppo grandi al crescere di n. Per avvicinarmi a questa proposta, posso usare cifrature in sequenza partendo da blocchi relativamente piccoli e compiendo più cifrature una dopo l altra. CIFRATURA DI FEISTEL Essa alterna permutazioni a sostituzioni applicando i principi di Shannon contrastando analisi statistiche: Principio di DIFFUSIONE : ogni carattere del testo cifrato è prtodotto da più parti del testo in chiaro Principio di CONFUSIONE : nascondo la relazione fra testo in uscita e il valore della chiave. Ciò si ottiene con un meccanismo di sostituzione complesso (non lineare)

17 16 Le STRUTTURE che realizzano ciò possono essere così rappresentate: LEFT RIGHT L i - 1 R i - 1 BLOCCO DI TESTO IN CHIARO IN 2 PARTI (L,R) f K i SOTTOCHIAVE XOR L i R i BLOCCO DI TESTO CIFRATO Gli indici rappresentano le ripetizioni delle sequenze e quello che rappresenta tale struttura è il normale funzionamento dell algoritmo di cifratura DES. In generale i diversi cifrari si appoggiano su tale struttura e variano secondo tali parametri: 1) Dimensione del blocco input 2) Dimensioni della chiave usata 3) Da quante fasi la struttura è composta (numero di ripetizioni) 4) Come viene calcolata la chiave (quale algoritmo) e le sottochiavi di ogni fase 5) Come è composta la funzione f (funzione round) Per effettuare la cifratura basterà solo implementare un round e lo stesso codice verrebbe usato per ogni round successivo. La decifratura usa lo stesso codice della cifratura e le sottochiavi vengono applicate in senso inverso. Esempi di cifrari di Feistel: DES BLOWFISH

18 17 FUNZIONAMENTO DI DES - CIFRATURA testo in chiaro testo cifrato 64 bit 64 bit In realtà la chiave DES è lunga 64 bit solo che gli ultimi 8 byte sono usati per il bit di parità ed il controllo degli errori. STRUTTURA DEL DES DES Ho 16 fasi di iterazioni e prima di ogni fase c è una Initial Permutation (IP). Dopo le 16 fasi, c è uno scambio seguito dalla Permutation Inversa (IP -1 ). TESTO IN CHIARO CHIAVE IP 56 bit Iteraz1 Iteraz16 48 bit 48 bit Schedulazione chiave Scambio IP -1 TESTO CIFRATO

19 18 PERMUTAZIONE INIZIALE (IP) La permutazione iniziale (IP) è rappresentata da una tabella: all input della permutazione, il I bit sarà il 58 dell input; il II bit sarà il 50 dell input. Bit iniziali Bit permutati PERMUTAZIONE INVERSA (IP -1 ) La permutazione inversa (IP -1 ) esegue l opposto di quello che fa la permutazione iniziale: Bit iniziali Bit permutati

20 19 LA FUNZIONE f DI ROUND : INPUT (A) 32 bit E espansione E (A) 48 bit 48 bit J (sottochiave) XOR B 1 B 2 B 3 B 4 B 5 B 6 B 7 B 8 S1 S2 S3 S4 S5 S6 S7 S8 8 S-BOX C 1 C 2 C 3 C 4 C 5 C 6 C 7 C 8 P permutazione OUTPUT f(a,j) 32 bit ESPANSIONE: vengono duplicati 16 bit si passa da 32 bit a 48 bit I 48 bit dopo l espansione vengono considerati in blocchi da 6 bit l uno nella S-BOX. Ogni blocco viene dato in INPUT alle 8 S-BOX. Ciascuna S-BOX, avrà in INPUT 6 bit e darà in OUTPUT solo 4 bit. All uscita delle S-BOX avremo un OUTPUT di 32 bit che verrà permutato ancora prima di uscire dalla funzione di round f. come f(a,j) a 32 bit. E da precisare che ogni S-BOX è diversa dall altra e i 6 bit in INPUT vengono usati come coordinate di un elemento in una tabella la cui conversione binaria dà i 4 bit di OUTPUT. Le S-BOX sono il cuore di DES. Cambiando un solo bit di INPUT variano almeno 2 bit di OUTPUT.

21 20 SCHEDULAZIONE DELLE CHIAVI INPUT CHIAVE K (64 bit) PC1 Permutaz. OUTPUT 48 bit K 1 PC2 Permutaz. 56 bit C 0 D 0 LS 1 LS 1 C 1 D 1 16 iterazioni K 16 PC2 Permutaz. 56 bit LS 16 LS 16 C 16 D 16 PC1 : elimina i bit di parità e compie la I permutazione sui bit restanti della chiave a 56 bit PC2. comprime i 56 bit in input con l eliminazione di 8 bit dando in output 48 bit dopo aver effettuato un altra permutazione. Nelle iterazioni vengono eseguiti degli SHIFT a sinistra : essi vengono effettuati sulle 2 metà considerate e per 16 iterazioni avvengono 28 shift.

22 21 FUNZIONAMENTO DI DES - DECIFRATURA TESTO CIFRATO CHIAVE IP 56 bit Iteraz1 48 bit (K 16 ) Iteraz16 48 bit (K 1 ) Schedulazione chiave Scambio IP -1 Le sottochiavi vengono invertite TESTO IN CHIARO SINGOLA ITERAZIONE DI DECIFRATURA Se consideriamo l ultima operazione di decifratura prima di IP -1 : LEFT RIGHT L 15 R 15 BLOCCO DI TESTO CIFRATO IN 2 PARTI (L,R) f K 16 SOTTOCHIAVE XOR L 16 R 16 BLOCCO DI TESTO IN CHIARO

23 22 Dopo la IP -1 avremo che il primo round di decifratura diventa: LEFT RIGHT R 16 L 16 BLOCCO DI TESTO CIFRATO IN 2 PARTI (L,R) f K 16 SOTTOCHIAVE XOR R 15 L 15 BLOCCO DI TESTO IN CHIARO CARATTERISTICHE DEL DES Sicurezza di DES: EFFETTO VALANGA: proprietà desiderabile in cui una piccola variazione nel testo in chiaro o nella chiave dovrebbe produrre una variazione nel testo cifrato. DES ha un forte effetto valanga. DES è vulnerabile a causa della lunghezza di 56 bit delle chiavi: lo spazio delle chiavi è notevole ma usando più macchine funzionanti in parallelo per il loro ritrovameto, ci vorrebbero pochi giorni per trovare le 2 56 chiavi possibili. Inoltre, il fatto stesso che DES funzioni grazie a componenti come le S-Box, ha una vulnerabilità insita nel fatto che chi costruisce le S-BOX può sapere come decrittare un eventuale messaggio crittato in DES. I metodi usati per la crittoanalisi di DES sono basati su BRUTE FORCE ATTACK con un minimo di coscienza del testo in chiaro oppure su crittoanalisi DIFFERENZIALE o LINEARE. o Crittoanalisi differenziale: si considerano 2 messaggi m e m con una differenza XOR nota m e si considera la differenza fra le metà intermedie del messaggio m i = m i XOR m i. Allora si avrà che : m i+1 = m i+1 XOR m i+1 = m i-1 XOR [f(m i,k i ) XOR f(m i,k i )] Supponendo che più coppie di input di f con la stessa differenza generino la stessa differenza di output nel caso in cui venga usata la stessa sottochiave, se si conoscono m i e m i-1 con elevata probabilità allora si conosce m i+1 con elevata probabilità.

24 23 Inoltre se si determinano molte di queste differenze, sarà possibile determinare la sottochiave usata nella funzione f. Basta applicare tali presupposti ad ogni fase cominciando da due messaggi in chiaro m e m e individuando gli schemi di differenza dopo ogni fase in modo da ottenere una probabile differenza nel testo cifrato. o Crittoanalisi lineare: questo attacco si basa sull individuazione delle approssimazioni lineari per descrivere le trasformazioni eseguite in DES. Questo metodo può trovare una chiave DES da 2 47 testi in chiaro noti, rispetto ai 2 47 testi in chiaro scelti dell analisi crittografica differenziale. MODALITA OPERATIVE DEL DES ECB: il testo in chiaro viene gestito in 64 bit alla volta ed ogni blocco di testo in chiaro è crittografato usando la stessa chiave. E ideale per pochi dati. La vulnerabilità sta nel fatto che se in un messaggio compare lo stesso blocco di testo in chiaro, verrà prodotto sempre lo stesso testo cifrato, risultando troppo regolare e prevedibile. CBC: l input dell algoritmo di crittografia è il risultato di un XOR tra il blocco di testo in chiaro corrente e il blocco di testo cifrato precedente. Per ciascun blocco viene usata la stessa chiave. Così facendo, l input della funzione di crittografia per ogni blocco di testo in chiaro non ha una relazione fissa con il blocco di testo in chiaro. CFB e OFB: Con queste modalità operative è possibile convertire DES in una cifratura a flussi. Nella CFB, le unità di testo in chiaro vengono concatenate in modo che il testo cifrato di qualsiasi unità risulti funzione di tutto il testo in chiaro precedente. Invece di unità di 64 bit si usano segmenti di lunghezza s di testo in chiaro. Il flusso di cifratura ha la stessa lunghezza del testo in chiaro e tale modalità opera in tempo reale. OFB, invece, ha una struttura simile a CFB ma l input di ogni fase deriva dall operazione di cifratura. Ciò agevola il non avere prpagazione di errori ma rende OFB più vulnerabile a modifiche del flusso. DES: CIFRATURA MULTIPLA A partire da DES si può costruire un cifrario più sicuro, senza modificare la struttura di base: cifrando più volte con chiavi diverse. DES DOPPIO : La forma più semplice di crittografia multipla prevede due stadi di crittografia con due chiavi. Dato un testo in chiaro P e due chiavi di crittografia K 1 e K 2, il testo cifrato viene generato nel seguente modo: C = E k2 [ E k1 (P)]. La decrittografia richiede l applicazione delle chiavi in ordine inverso: P = D k1 [D k2 (C)] Per DES questo schema prevede una chiave lunga 56X2 = 112 bit con innalzamento della potenza crittografica e notiamo cheil DES DOPPIO non produce un'unica crittografia DES somma delle due

25 24 crittografie con chiavi K1 e k2 da cui è composto. Vulnerabilità di DES DOPPIO - ATTACCO MEET-IN THE MIDDLE: Questo attacco non dipende da alcuna proprietà di DES ma può essere adottato contro qualsiasi cifratura a blocchi. L algoritmo di attacco si basa sul fatto che, se : C = E k2 [ E k1 (P)] allora X = E k1 [P] = D k2 [C]. Data una coppia nota (P,C), l attacco procede in questo modo: si esegue la crittografia di P per tutti i 2 56 valori di K 1, si memorizzano i risultati in una tabella e la si ordina per i valori di X. Si esegue poi la decrittazione di C usando tutti i 2 56 valori di K 2 e man mano che vengono prodotti i risultati si confrontano con la tabella cercando una corrispondenza. Quando questa viene trovata, si esegue il test delle due chiavi con una nuova coppia nota di C e P. Se le due chiavi producono il risultato corretto, allora si accettano le chiavi come corrette. Per il DES doppio, esistono 2 64 possibili valori cifrati che potrebbero essere prodotti da una doppia applicazione di Double DES. Questo algoritmo usa una chiave di 112 bit e dunque possono esistere possibili chiavi. Pertanto, in media, per un testo in chiaro P, le chiavi da 112 bit che potrebbero produrre un dato testo cifrato C sarebbero /2 64, ovvero Questi sarebbero anche i falsi allarmi prodotti sulla prima coppia di C e P. DES TRIPLO con 2 chiavi: Una contromisura ovvia al Meet in the Middle sarebbe il Triple DES, ovvero l impiegare tre fasi di crittografia con tre diverse chiavi. Questo aumenta il costo dell attacco con testo chiaro noto a 2 112, oltre i limiti pratici oggi accettabili. Tuttavia si presenta il problema di gestire chiavi lunghe 56 X 3 = 168 bit. Una alternativa interessante sarebbe quella di usare una tripla crittografia ma con solo due chiavi in una sequenza : crittografia-decrittografia-crittografia: C = E k1 [ D k2 [ E k1 (P)]] BLOWFISH: E una cifratura simmetrica a blocchi basata sulla struttura di Feistel con Input a 64 bit e 16 fasi e chiavi K dsa 1 a 14 word da 32 bit. Ha il vantaggio di essere veloce su microprocessori moderni, è molto compatto, è semplice da implementare e per questo è molto usato. Blowfish parte da una chiave di max 14 word eseguendo su essa un espansione creando un array di sottochiavi a 32 bit detto P-array. Inoltre Blowfish, come DES fa uso di S-BOX, in questo caso 4 ognuna da 256 word. L espansione avviene partendo dall inizializzazione del P-Array e delle S-Box con valori della parte frazionaria del numero costante π. Le sottochiavi vengono sommate alla chiave data e ad ogni sottochiave viene sostituito l output della somma XOR tra il P-array i K-Array. Anche i valori delle S-Box vengono reinizializzati: sia E P,S [Y] la cifratura di Y con il P-Array e le S-Box. vengono calcolati : o P-Array P 1,P 2 = E P,S [0] P 3,P 4 = E P,S [P 1 ], [P 2 ]

26 25 P 17,P 18 = E P,S [P 15 ], [P 16 ] o S-Array S 1,0,S 1,1 = E P,S [P 17 ], [P 18 ] S 4,254,S 4,255 = E P,S [S 4,252 ], [S 4,253 ] P e S vengono precalcolati e memorizzati in 4 Kb di spazio e Blowfish viene eseguito 521 volte. Ecco perché Blowfish non è adatto per apllicazioni in cui la chiave cambia spesso. BLOWFISH cifratura LEFT RIGHT L i - 1 R i - 1 BLOCCO DI TESTO IN CHIARO IN 2 PARTI (L,R) P i XOR XOR f L i R i BLOCCO DI TESTO CIFRATO Quello che è rappresentato è solo una delle 16 fasi che si susseguono nella cifratura. Le operazioni saranno quindi: La SOMMA mod 2 32 (+) L XOR La FUNZIONE DI ROUND f riceverà: 32 bit in input Divisi i seguito in 4 byte a,b,c,d che vengono usati come indici di ogni S-Box

27 26 S-Box 1 S-Box 2 S-Box 3 S-Box 4 + XOR + FUNZIONE f Blowfish è una cifratura simmetrica formidabile. A differenza di DES: Le S-BOX dipendono dalla chiave Le S-BOX e le sottochiavi vengono prodotte applicando ripetutamente lo stesso algoritmo E ciò complica la crittoanalisi In ciascuna fase le operazioni vengono svolte su entrambe le metà dei dati per garantire maggiore resistenza crittografica anchese viene effettuato un XOR che è pur sempre un operazione lineare È formidabile contro attacchi a forza bruta con chiavi fino a 448 bit È estremamente veloce Out RC5 È un algoritmo di cifratura simmetrico ed è stato progettato per adattarsi ad implementazioni hd e sw, per essere veloce ed essere usato ache da processori con word di varia lunghezza. Inoltre ha un numero di fasi variabile e la lunghezza delle chiavi usate può variare. Ciò fa si che questo algoritmo si presenti semplice e con requisiti di memoria bassi. RC5 è in realtà una famiglia di algoritmi di crittografia caratterizata da 3 parametri: w : dimensioni della word in bit r : numero delle fasi b : numero in byte della chiave segreta RC5 esegue la crittografia a blocchi di testo in chiaro lunghi 32, 64 o 128 bit in blocchi di testo

28 27 cifrato della stessa lunghezza. La chiave va da 0 a 2040 bit. Le operazioni usate sono: La SOMMA mod 2 32 (+) La SOTTRAZIONE mod 2 32 (-) L XOR Lo SHIFT A SX di a di un numero di bit dato dai log w bit meno significativi di b Lo SHIFT A DX di a di un numero di bit dato dai log w bit meno significativi di b RC5 CIFRATURA Se ho in input un testo in chiaro in 2 blocchi (A,B) e considero la prima delle sottochiavi contenute in S[0,., 2r+1] allora la cifratura è: testo in chiaro in 2 blocchi (A,B) A B S[0] + + S[1] XOR XOR shift shift S[1] + + S[3] LE 1 RE 1 XOR XOR shift shift S[2r + 1] + + S[2r + 1] LE r testo cifrato in 2 blocchi 2w bit RE r La decifratura sostituisce ai (+) i (-) con la schedulazione delle chiavi invertita.

29 28 AES Per migliorare l implementazione di DES si è voluto costruire un cifrario a blocchi per uso commerciale, più efficiente e sicuro. Dopo più selezioni si è costruito un cifrario che lavora in parallelo sull intero blocco di input e non è un cifrario di Feistel come DES. L AES, infatti, si presenta come un cifrario a blocchi di 128 bit e chiavi lunghe 128, 192 e 256 bit, Esso garantisce resistenza contro tutti gli attacchi conosciuti e una discreta velocità e compattezza del codice su più piattaforme derivante da una particolare semplicità progettuale. AES Funzionamento Um blocco di 128 bit, rappresentato da una matrice 4 x 4, entra in INPUT; viene copiato in un array detto STATE che viene modificato in ogni fase di cifratura e decifratura. Al termine della fase finale, viene copiato in una matrice di OUTPUT. La chiave, consideriamo quella a 128 bit, viene rappresentata come una matrice 4 x 4 di byte. Con 128 bit sono possibili chiavi diverse. L algoritmo AES elabora l intero blocco di dati in parallelo durante ogni fase usando sostituzioni e permutazioni. La chiave in INPUT viene espansa in un array di 44 word a 32 bit, w[i] e per ogni fase vengono usate come chiavi 4 word distinte. Vengono usate 4 diverse fasi: Una per la permutazione : SHIFT ROWS Tre per la sostituzione : o SUBSTITUTE BYTES che usa una S-BOX per svolgere una sostituzione del blocco byte per byte o MIX COLUMNS che usa l aritmetica dei campi finiti GF (2 8 ) o ADD ROUND KEY, una semplice operazione XOR bit a bit del blocco corrente con una porzione della chiave espansa. Sia per la crittografia che per la decrittografia la cifratura inizia con la fase detta ADD ROUND KEY: essa usa la chiave e perciò inizia e finisce con essa. La cifratura presenta un alternanza di crittografia XOR di un blocco, seguita da una dispersione del blocco stesso. Ogni trasformazione è reversibile e le trasformazioni shift rows, substitute bytes e mix columns fanno uso della funzione inversa dell algoritmo di decrittografia. La funzione add round key, invece opera solo un XOR tra chiave e il blocco. L algoritmo di decrittografia usa la chiave espansa in ordine inverso ma esso non risulta uguale a quello di crittografia. TRASFORMAZIONE SUBBYTES : realizza una semplice tabella definendo una matrice 16 x 16 di byte detta S-BOX che esegue una permutazione di 256 bytes secondo tale logica: i primi 4 bit del byte S i,j indicano la riga della S-BOX gli altri 4 bit la colonna

30 29 I valori di riga e colonna fungono da indici delle S-BOX per selezionare univocamente un valore di uscita a 8 bit. COSTRUZIONE DELLA S-BOX 1. Si inizializza la S-BOX con il valore dei byte in sequenza ascendente riga per riga 2. si associa a ciascun byte della S-BOX il suo inverso moltiplicativo nel campo finito GF 3. ciascun byte della S-BOX è fatto da 8 bit. TRASFORMAZIONE SHIFT-ROW, realizza una permutazione dei byte delle righe di STATE, disponendo 4 byte di una colonna di state su 4 diverse colonne. TRASFORMAZIONE MIX COLUMNS ogni byte di una colonna viene mappato in un nuovo valore della funzione di 4 byte nella colonna TRASFORMAZIONE ADD ROUND KEY esegue un XOR tra i 128 bit di STATE e i 128 bit della chiave della fase in cui ci si trova. Opera tra i 4 byte della colonna di STATE e una word della chiave espansa. ESPANSIONE DELLA CHIAVE, richiede in ingresso una chiave di 4 word dalla quale si genera un array di 44 word (176 byte) La chiave viene copiata nelle prime 4 word della chiave espansa e il resto è riempito di 4 word alla volta. Ogni word w[i] dipende dalla precedente w[i-1] e dalle word w[i-4] che è 4 posizioni indietro. CIFRARI A FLUSSI RC4 Una tipica cifratura a flussi esegue la crittografia del testo in chiaro byte per byte. In esse vi è una chiave che funge da input di un generatore di bit pseudocasuali che produce un flusso di numeri di 8 bit apparentemente casuali. Il flusso pseudocasuale è imprevedibile se non si conosce la chiave in input. L output del generatore è chiamato KEYSTREAM e viene combinato con il flusso di di testo un byte alla volta utilizzando un XOR. Cifratura a flussi vs. One time Pad La cifratura di flussi è simile a quella One time Pad, la differenza sta nel fatto che One time Pad utilizza un flusso di numeri veramente casuale mentre la cifratura a flussi usa un flusso di numeri pseudocasuali. Cifratura a flussi vs. Cifratura a blocchi La cifratura a flussi può essere sicura quanto una cifratura a blocchi con una chiave di lunghezza analoga. Il vantaggio sta nella velocità e nella semplicità in termini di codice. Mentre, la cifratura a blocchi, dal canto suo, ha cme vantaggio rispetto a quella a flussi il fatto che consente di riutilizzare le chiavi. Se due testi in chiaro vengono crittati con la stessa chiave utilizzando una cifratura di flussi, la crittoanalisi risulterà piuttosto semplice: se i due flussi venissero combinati insieme da un XOR il risultato sarebbe l XOR dei testi in chiaro originali. Se questi fossero stringhe con proprietà note, la crittoanalisi avrebbe successo.

31 30 RC4 RC4 è una cifratura con chiave di dimensione variabile ed operazioni orientate ai byte. L algoritmo si basa su una permutazione casuale. Per ogni byte sono necessarie da 8 a 16 operazioni macchina e la cifratura può essere eseguita molto velocemente anche in versione software. RC4 è la cifratura a flussi più diffusa. Funzionamento di RC4 Una chiave di lunghezza variabile (da 1 a 256 byte) inizializza un vettore di stato S[i] con 1<i<256 byte. Per la crittografia e decrittografia viene generato un byte K tratto da S selezionando una delle 255 voci. A ciascun valore generato di K le voci in S vengono permutate. Dopo di ciò, per la crittografia viene fatto l XOR del valore K con il byte successivo di testo in chiaro. Per la decifratura si esegue l XOR del valore di K con il byte successivo di testo cifrato. Dal vettore della chiave K[0,,h-1] con 0<h<257 creo un vettore espanso T formato dai valori del vettore della chiave, ripetuti fino a completare la lunghezza di 255. T viene usato per compiere le permutazioni e l aggiornamento dei valori su S. Dopo l aggiornamento, la chiave non viene più usata. Con chiavi a 128 bit non si conoscono attacchi ma nel caso di WEP si è scoperto un attacco direttamente rivolto contro il protocollo che usava, nelle su prime versioni, password lunghe max 40 bit. CIFRATURA ASIMMETRICA Cifratura a chiave pubblica Nella cifratura simmetrica ci si basa sul fatto che gli interlocutori debbano condividere una chiave comune. Essi dovranno assolutamente far uso di un canale privato destinato allo scambio della chive. Questo, però, è un problema perché il canale privato deve risultare assolutamente sicuro. Per aggirare il problema del canale privato si può affidare il messaggio con la relativa chiave ad un entità fidata che stabilisce la chiave di sessione e la invia ad entrambi gli interlocutori. Ulteriore problema sarebbe rappresentato dal fatto che un certo numero n di interlocutori devono condividere la chiave: se n è troppo alto il numero delle chiavi segrete diverrebbe n 2 /2. Tutto questo ha portato allo sviluppo dello scenario dei CIFRARI ASIMMETRICI in cui ogni interlocutore ha 1 chiave privata e ha più chivi pubbliche diverse dalle chiavi private. - Funzionamento Con le Public Key dei destinatari corrispondenti si cifrano i messaggi. Una volta che essi giungono a destinazione, il destinatario può decifrare il messaggio con la sua chiave Privata. Le corrispondenze Utente Public Key sono contenute in un file detto File Pubblico.

32 31 In termini matematici, se : - M è il messaggio in chiaro - C è quello cifrato - K U è la chiave pubblica - K R è la chiave privata, allora l utente A per cifrare un messaggio da inviare a B eseguirà tale operazione di cifratura E: C = E Ku(B) (M) e B, ricevuto il messaggio da A per decifrarlo eseguirà la decifratura D: M = D Kr(B) (C) Un banale attacco a questo sistema sarebbe quello di mirare al file pubblico cambiando le corrispondenze, tutto verrebbe falsato. Caratteristiche principali di questo sistema sono: 1. chiunque può cifrare un messaggio per l utente A ma solo A deve poterlo decifrare 2. non esistono chiavi condivise 3. computazionalmente inammissibile trovare la chiave di decifratura dell algoritmo e della chiave di cifratura 4. le chiavi possono essere invertite: quelle della cifratura possono essere usate per decifrare e lo stesso al contrario. Aplicazioni del sistema a chiave pubblica sono: 1. encryption/decryption 2. firme digitali 3. scambio di chiavi Algoritmi usati: 1. RSA, per cifrare, decifrare, firmare e scambiare chiavi 2. CURVE ELLITTICHE, usate per gli stessi scopi di RSA 3. DSS, che è lo standard per la firma digitale Differenze fra cifrari simmetrici e asimmetrici I cifrari simmetrici sono più veloci e sufficienti in diversi ambiti. Inoltre la stesso algoritmo che si usa per cifrare corrisponde alle stesse chiavi. In questo sistema, però mittente e destinatario sono obbligati a condividere le chiavi che dovranno restar segrete per garantire sicurezza. Senza la chiave segreta comune non si può decifrare un messaggio dato che senza di essa non è possibile risalire ad un testo in chiaro conoscendone il rispettivo cifrato e non sarebbe possibile neanche risalire alla chiave avendo a disposizione testo in chiaro e cifrato. I cifrari asimmetrici, rispetto a quelli simmetrici sono più lenti e ad un algoritmo fanno corrispondere 2 chiavi (e non una). In questo modo mittente e destinatario usano coppie di chiavi correlate ma ben distinte ed di queste solo una resterà segreta e mai condivisa. A questo punto

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

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

Crittografia. Appunti a cura del prof. Ing. Mario Catalano Crittografia Appunti a cura del prof. Ing. Mario Catalano La crittografia La crittografia è la scienza che studia la scrittura e la lettura di messaggi in codice. Solitamente, i meccanismi crittografici

Dettagli

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

! La crittoanalisi è invece la scienza che cerca di aggirare o superare le protezioni crittografiche, accedendo alle informazioni protette Crittografia Cenni Damiano Carra Università degli Studi di Verona Dipartimento di Informatica La crittografia! Scienza che si occupa di proteggere l informazione rendendola sicura, in modo che un utente

Dettagli

Definire all'interno del codice un vettore di interi di dimensione DIM, es. int array[] = {1, 5, 2, 4, 8, 1, 1, 9, 11, 4, 12};

Definire all'interno del codice un vettore di interi di dimensione DIM, es. int array[] = {1, 5, 2, 4, 8, 1, 1, 9, 11, 4, 12}; ESERCIZI 2 LABORATORIO Problema 1 Definire all'interno del codice un vettore di interi di dimensione DIM, es. int array[] = {1, 5, 2, 4, 8, 1, 1, 9, 11, 4, 12}; Chiede all'utente un numero e, tramite ricerca

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

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

SISTEMI DI NUMERAZIONE E CODICI

SISTEMI DI NUMERAZIONE E CODICI SISTEMI DI NUMERAZIONE E CODICI Il Sistema di Numerazione Decimale Il sistema decimale o sistema di numerazione a base dieci usa dieci cifre, dette cifre decimali, da O a 9. Il sistema decimale è un sistema

Dettagli

RETI DI CALCOLATORI. Crittografia. La crittografia

RETI DI CALCOLATORI. Crittografia. La crittografia RETI DI CALCOLATORI Crittografia La crittografia La crittografia è la scienza che studia la scrittura e la lettura di messaggi in codice ed è il fondamento su cui si basano i meccanismi di autenticazione,

Dettagli

Scambio delle chiavi. mercoledì 7 dicembre 2011

Scambio delle chiavi. mercoledì 7 dicembre 2011 Scambio delle chiavi 1 mercoledì 7 dicembre 2011 Distribuzione della chiave Dati due terminali A e B, si possono avere varie alternative per la distribuzione delle chiavi. 1. A sceglie una chiave e la

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

Siamo così arrivati all aritmetica modulare, ma anche a individuare alcuni aspetti di come funziona l aritmetica del calcolatore come vedremo.

Siamo così arrivati all aritmetica modulare, ma anche a individuare alcuni aspetti di come funziona l aritmetica del calcolatore come vedremo. DALLE PESATE ALL ARITMETICA FINITA IN BASE 2 Si è trovato, partendo da un problema concreto, che con la base 2, utilizzando alcune potenze della base, operando con solo addizioni, posso ottenere tutti

Dettagli

Analisi di programmi: Crittografia

Analisi di programmi: Crittografia Analisi di programmi: Crittografia Come caso concreto di sistema, proviamo ad abbozzare e a vedere una prima implementazione di un sistema di crittografia a chiave pubblica La crittografia studia le tecniche

Dettagli

Lezione 8. La macchina universale

Lezione 8. La macchina universale Lezione 8 Algoritmi La macchina universale Un elaboratore o computer è una macchina digitale, elettronica, automatica capace di effettuare trasformazioni o elaborazioni su i dati digitale= l informazione

Dettagli

Informatica per la comunicazione" - lezione 13 -

Informatica per la comunicazione - lezione 13 - Informatica per la comunicazione" - lezione 13 - Funzionamento di una password" 1: l utente tramite il suo browser richiede l accesso a una pagina del server; 2: il server richiede il nome utente e la

Dettagli

da chi proviene un messaggio?

da chi proviene un messaggio? da chi proviene un messaggio? in un crittosistema simmetrico solo Alice e Bob conoscono la chiave se Bob riceve un messaggio di Alice e la decifratura del messaggio ha senso, il messaggio proviene certamente

Dettagli

LA TRASMISSIONE DELLE INFORMAZIONI QUARTA PARTE 1

LA TRASMISSIONE DELLE INFORMAZIONI QUARTA PARTE 1 LA TRASMISSIONE DELLE INFORMAZIONI QUARTA PARTE 1 I CODICI 1 IL CODICE BCD 1 Somma in BCD 2 Sottrazione BCD 5 IL CODICE ECCESSO 3 20 La trasmissione delle informazioni Quarta Parte I codici Il codice BCD

Dettagli

APPUNTI DI MATEMATICA LE FRAZIONI ALGEBRICHE ALESSANDRO BOCCONI

APPUNTI DI MATEMATICA LE FRAZIONI ALGEBRICHE ALESSANDRO BOCCONI APPUNTI DI MATEMATICA LE FRAZIONI ALGEBRICHE ALESSANDRO BOCCONI Indice 1 Le frazioni algebriche 1.1 Il minimo comune multiplo e il Massimo Comun Divisore fra polinomi........ 1. Le frazioni algebriche....................................

Dettagli

Dimensione di uno Spazio vettoriale

Dimensione di uno Spazio vettoriale Capitolo 4 Dimensione di uno Spazio vettoriale 4.1 Introduzione Dedichiamo questo capitolo ad un concetto fondamentale in algebra lineare: la dimensione di uno spazio vettoriale. Daremo una definizione

Dettagli

SISTEMI E RETI. Crittografia. Sistemi distribuiti e configurazione architetturale delle applicazioni WEB.

SISTEMI E RETI. Crittografia. Sistemi distribuiti e configurazione architetturale delle applicazioni WEB. SISTEMI E RETI Crittografia. Sistemi distribuiti e configurazione architetturale delle applicazioni WEB. CRITTOGRAFIA La crittografia è una tecnica che si occupa della scrittura segreta in codice o cifrata

Dettagli

Algoritmi e strutture dati. Codici di Huffman

Algoritmi e strutture dati. Codici di Huffman Algoritmi e strutture dati Codici di Huffman Memorizzazione dei dati Quando un file viene memorizzato, esso va memorizzato in qualche formato binario Modo più semplice: memorizzare il codice ASCII per

Dettagli

Convertitori numerici in Excel

Convertitori numerici in Excel ISTITUTO DI ISTRUZIONE SUPERIORE G. M. ANGIOY CARBONIA Convertitori numerici in Excel Prof. G. Ciaschetti Come attività di laboratorio, vogliamo realizzare dei convertitori numerici con Microsoft Excel

Dettagli

PROGETTO LAUREE SCIENTIFICHE -MATEMATICA 2006/2007 Modelli Matematici per la Società Incontro del 15.02.07

PROGETTO LAUREE SCIENTIFICHE -MATEMATICA 2006/2007 Modelli Matematici per la Società Incontro del 15.02.07 PROGETTO LAUREE SCIENTIFICHE -MATEMATICA 2006/2007 Modelli Matematici per la Società Incontro del 15.02.07 CODICI MONOALFABETICI E ANALISI DELLE FREQUENZE (organizzata da Francesca Visentin) Riprendiamo

Dettagli

INTRODUZIONE AGLI ALGORITMI INTRODUZIONE AGLI ALGORITMI INTRODUZIONE AGLI ALGORITMI INTRODUZIONE AGLI ALGORITMI

INTRODUZIONE AGLI ALGORITMI INTRODUZIONE AGLI ALGORITMI INTRODUZIONE AGLI ALGORITMI INTRODUZIONE AGLI ALGORITMI INTRODUZIONE AGLI ALGORITMI Prima di riuscire a scrivere un programma, abbiamo bisogno di conoscere un metodo risolutivo, cioè un metodo che a partire dai dati di ingresso fornisce i risultati attesi.

Dettagli

Un metodo per il rilevamento degli errori: la tecnica del Bit di Parità

Un metodo per il rilevamento degli errori: la tecnica del Bit di Parità Appunti: Tecniche di rilevazione e correzione degli errori 1 Tecniche di correzione degli errori Le tecniche di correzione degli errori sono catalogabili in: metodi per il rilevamento degli errori; metodi

Dettagli

Introduzione. Classificazione di Flynn... 2 Macchine a pipeline... 3 Macchine vettoriali e Array Processor... 4 Macchine MIMD... 6

Introduzione. Classificazione di Flynn... 2 Macchine a pipeline... 3 Macchine vettoriali e Array Processor... 4 Macchine MIMD... 6 Appunti di Calcolatori Elettronici Esecuzione di istruzioni in parallelo Introduzione... 1 Classificazione di Flynn... 2 Macchine a pipeline... 3 Macchine vettoriali e Array Processor... 4 Macchine MIMD...

Dettagli

Strutturazione logica dei dati: i file

Strutturazione logica dei dati: i file Strutturazione logica dei dati: i file Informazioni più complesse possono essere composte a partire da informazioni elementari Esempio di una banca: supponiamo di voler mantenere all'interno di un computer

Dettagli

Informatica. Rappresentazione dei numeri Numerazione binaria

Informatica. Rappresentazione dei numeri Numerazione binaria Informatica Rappresentazione dei numeri Numerazione binaria Sistemi di numerazione Non posizionali: numerazione romana Posizionali: viene associato un peso a ciascuna posizione all interno della rappresentazione

Dettagli

A intervalli regolari ogni router manda la sua tabella a tutti i vicini, e riceve quelle dei vicini.

A intervalli regolari ogni router manda la sua tabella a tutti i vicini, e riceve quelle dei vicini. Algoritmi di routing dinamici (pag.89) UdA2_L5 Nelle moderne reti si usano algoritmi dinamici, che si adattano automaticamente ai cambiamenti della rete. Questi algoritmi non sono eseguiti solo all'avvio

Dettagli

Introduzione alla crittografia. Il crittosistema RSA e la sua sicurezza

Introduzione alla crittografia. Il crittosistema RSA e la sua sicurezza Introduzione alla crittografia. Il crittosistema RSA e la sua sicurezza Prof. Massimiliano Sala MINICORSI 2011. Crittografia a chiave pubblica: oltre RSA Università degli Studi di Trento, Lab di Matematica

Dettagli

Excel. A cura di Luigi Labonia. e-mail: luigi.lab@libero.it

Excel. A cura di Luigi Labonia. e-mail: luigi.lab@libero.it Excel A cura di Luigi Labonia e-mail: luigi.lab@libero.it Introduzione Un foglio elettronico è un applicazione comunemente usata per bilanci, previsioni ed altri compiti tipici del campo amministrativo

Dettagli

La firma digitale CHE COSA E'?

La firma digitale CHE COSA E'? La firma digitale La Firma Digitale è il risultato di una procedura informatica che garantisce l autenticità e l integrità di messaggi e documenti scambiati e archiviati con mezzi informatici, al pari

Dettagli

Documentazione esterna al software matematico sviluppato con MatLab

Documentazione esterna al software matematico sviluppato con MatLab Documentazione esterna al software matematico sviluppato con MatLab Algoritmi Metodo di Gauss-Seidel con sovrarilassamento Metodo delle Secanti Metodo di Newton Studente Amelio Francesco 556/00699 Anno

Dettagli

Cluster. Vicino alla temperatura critica gli spin formano grandi gruppi (cluster)

Cluster. Vicino alla temperatura critica gli spin formano grandi gruppi (cluster) Cluster Vicino alla temperatura critica gli spin formano grandi gruppi (cluster) all interno di ogni gruppo è molto improbabile riuscire a flippare uno spin perché ci sarebbe una grande perdita di energia,

Dettagli

ESERCIZI DI PROBLEM SOLVING E COMPOSIZIONE DEI DIAGRAMMI DI FLUSSO per le classi terza

ESERCIZI DI PROBLEM SOLVING E COMPOSIZIONE DEI DIAGRAMMI DI FLUSSO per le classi terza ESERCIZI DI PROBLEM SOLVING E COMPOSIZIONE DEI DIAGRAMMI DI FLUSSO per le classi terza vers.3 in lavorazione Docente SAFFI FABIO Contenuti 01.Esercizi generici sul diagramma di flusso - flow chart... 2

Dettagli

risulta (x) = 1 se x < 0.

risulta (x) = 1 se x < 0. Questo file si pone come obiettivo quello di mostrarvi come lo studio di una funzione reale di una variabile reale, nella cui espressione compare un qualche valore assoluto, possa essere svolto senza necessariamente

Dettagli

Alessandro Pellegrini

Alessandro Pellegrini Esercitazione sulle Rappresentazioni Numeriche Esistono 1 tipi di persone al mondo: quelli che conoscono il codice binario e quelli che non lo conoscono Alessandro Pellegrini Cosa studiare prima Conversione

Dettagli

Corso di Informatica Generale (C. L. Economia e Commercio) Ing. Valerio Lacagnina Rappresentazione in virgola mobile

Corso di Informatica Generale (C. L. Economia e Commercio) Ing. Valerio Lacagnina Rappresentazione in virgola mobile Problemi connessi all utilizzo di un numero di bit limitato Abbiamo visto quali sono i vantaggi dell utilizzo della rappresentazione in complemento alla base: corrispondenza biunivoca fra rappresentazione

Dettagli

Algoritmo. I dati su cui opera un'istruzione sono forniti all'algoritmo dall'esterno oppure sono il risultato di istruzioni eseguite precedentemente.

Algoritmo. I dati su cui opera un'istruzione sono forniti all'algoritmo dall'esterno oppure sono il risultato di istruzioni eseguite precedentemente. Algoritmo Formalmente, per algoritmo si intende una successione finita di passi o istruzioni che definiscono le operazioni da eseguire su dei dati (=istanza del problema): in generale un algoritmo è definito

Dettagli

Sommario. Definizione di informatica. Definizione di un calcolatore come esecutore. Gli algoritmi.

Sommario. Definizione di informatica. Definizione di un calcolatore come esecutore. Gli algoritmi. Algoritmi 1 Sommario Definizione di informatica. Definizione di un calcolatore come esecutore. Gli algoritmi. 2 Informatica Nome Informatica=informazione+automatica. Definizione Scienza che si occupa dell

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

Lezione 7 Sicurezza delle informazioni

Lezione 7 Sicurezza delle informazioni Lezione 7 Sicurezza delle informazioni Sommario Concetti generali Meccanismi per la sicurezza IT: Crittografia Hash Firma digitale Autenticazione 1 Concetti generali Availability Confidentiality Integrity

Dettagli

Coordinazione Distribuita

Coordinazione Distribuita Coordinazione Distribuita Ordinamento degli eventi Mutua esclusione Atomicità Controllo della Concorrenza 21.1 Introduzione Tutte le questioni relative alla concorrenza che si incontrano in sistemi centralizzati,

Dettagli

Dispense di Informatica per l ITG Valadier

Dispense di Informatica per l ITG Valadier La notazione binaria Dispense di Informatica per l ITG Valadier Le informazioni dentro il computer All interno di un calcolatore tutte le informazioni sono memorizzate sottoforma di lunghe sequenze di

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

ESEMPIO 1: eseguire il complemento a 10 di 765

ESEMPIO 1: eseguire il complemento a 10 di 765 COMPLEMENTO A 10 DI UN NUMERO DECIMALE Sia dato un numero N 10 in base 10 di n cifre. Il complemento a 10 di tale numero (N ) si ottiene sottraendo il numero stesso a 10 n. ESEMPIO 1: eseguire il complemento

Dettagli

Informatica B a.a 2005/06 (Meccanici 4 squadra) PhD. Ing. Michele Folgheraiter

Informatica B a.a 2005/06 (Meccanici 4 squadra) PhD. Ing. Michele Folgheraiter Informatica B a.a 2005/06 (Meccanici 4 squadra) Scaglione: da PO a ZZZZ PhD. Ing. Michele Folgheraiter Architettura del Calcolatore Macchina di von Neumann Il calcolatore moderno è basato su un architettura

Dettagli

SISTEMI DI NUMERAZIONE DECIMALE E BINARIO

SISTEMI DI NUMERAZIONE DECIMALE E BINARIO SISTEMI DI NUMERAZIONE DECIMALE E BINARIO Il sistema di numerazione decimale (o base dieci) possiede dieci possibili valori (0, 1, 2, 3, 4, 5, 6, 7, 8 o 9) utili a rappresentare i numeri. Le cifre possiedono

Dettagli

La somma. Esempio: Il prodotto. Esempio:

La somma. Esempio: Il prodotto. Esempio: La somma L algoritmo della operazione di somma non cambia qualunque sia la base considerata. Naturalmente, le regole da imparare nel caso di una base b sono relative alle sole b 2 posssibili combinazioni

Dettagli

La Firma Digitale La sperimentazione nel Comune di Cuneo. Pier Angelo Mariani Settore Elaborazione Dati Comune di Cuneo

La Firma Digitale La sperimentazione nel Comune di Cuneo. Pier Angelo Mariani Settore Elaborazione Dati Comune di Cuneo La Firma Digitale La sperimentazione nel Comune di Cuneo Pier Angelo Mariani Settore Elaborazione Dati Comune di Cuneo Perchè questa presentazione Il Comune di Cuneo, aderente alla RUPAR, ha ricevuto due

Dettagli

DOCUMENTO ELETTRONICO E FIRMA DIGITALE

DOCUMENTO ELETTRONICO E FIRMA DIGITALE DOCUMENTO ELETTRONICO E FIRMA DIGITALE CHE COSA È LA CRITTOGRAFIA LA CRITTOLOGIA È SCIENZA CHE STUDIA LE SCRITTURE SEGRETE 2 CRITTOGRAFIA STUDIA I SISTEMI DI PROTEZIONE DEI MESSAGGI CRITTOANALISI STUDIA

Dettagli

Introduzione all analisi dei segnali digitali.

Introduzione all analisi dei segnali digitali. Introduzione all analisi dei segnali digitali. Lezioni per il corso di Laboratorio di Fisica IV Isidoro Ferrante A.A. 2001/2002 1 Segnali analogici Si dice segnale la variazione di una qualsiasi grandezza

Dettagli

f(x) = 1 x. Il dominio di questa funzione è il sottoinsieme proprio di R dato da

f(x) = 1 x. Il dominio di questa funzione è il sottoinsieme proprio di R dato da Data una funzione reale f di variabile reale x, definita su un sottoinsieme proprio D f di R (con questo voglio dire che il dominio di f è un sottoinsieme di R che non coincide con tutto R), ci si chiede

Dettagli

Iniziamo con un esercizio sul massimo comun divisore: Esercizio 1. Sia d = G.C.D.(a, b), allora:

Iniziamo con un esercizio sul massimo comun divisore: Esercizio 1. Sia d = G.C.D.(a, b), allora: Iniziamo con un esercizio sul massimo comun divisore: Esercizio 1. Sia d = G.C.D.(a, b), allora: G.C.D.( a d, b d ) = 1 Sono state introdotte a lezione due definizioni importanti che ricordiamo: Definizione

Dettagli

Logica Numerica Approfondimento 1. Minimo Comune Multiplo e Massimo Comun Divisore. Il concetto di multiplo e di divisore. Il Minimo Comune Multiplo

Logica Numerica Approfondimento 1. Minimo Comune Multiplo e Massimo Comun Divisore. Il concetto di multiplo e di divisore. Il Minimo Comune Multiplo Logica Numerica Approfondimento E. Barbuto Minimo Comune Multiplo e Massimo Comun Divisore Il concetto di multiplo e di divisore Considerato un numero intero n, se esso viene moltiplicato per un numero

Dettagli

Automazione Industriale (scheduling+mms) scheduling+mms. adacher@dia.uniroma3.it

Automazione Industriale (scheduling+mms) scheduling+mms. adacher@dia.uniroma3.it Automazione Industriale (scheduling+mms) scheduling+mms adacher@dia.uniroma3.it Introduzione Sistemi e Modelli Lo studio e l analisi di sistemi tramite una rappresentazione astratta o una sua formalizzazione

Dettagli

Fasi di creazione di un programma

Fasi di creazione di un programma Fasi di creazione di un programma 1. Studio Preliminare 2. Analisi del Sistema 6. Manutenzione e Test 3. Progettazione 5. Implementazione 4. Sviluppo 41 Sviluppo di programmi Per la costruzione di un programma

Dettagli

Appunti di informatica. Lezione 2 anno accademico 2015-2016 Mario Verdicchio

Appunti di informatica. Lezione 2 anno accademico 2015-2016 Mario Verdicchio Appunti di informatica Lezione 2 anno accademico 2015-2016 Mario Verdicchio Sistema binario e logica C è un legame tra i numeri binari (0,1) e la logica, ossia la disciplina che si occupa del ragionamento

Dettagli

Informazione analogica e digitale

Informazione analogica e digitale L informazione L informazione si può: rappresentare elaborare gestire trasmettere reperire L informatica offre la possibilità di effettuare queste operazioni in modo automatico. Informazione analogica

Dettagli

Lezione 9: Cambio di base

Lezione 9: Cambio di base Lezione 9: Cambio di base In questa lezione vogliamo affrontare uno degli argomenti piu ostici per lo studente e cioè il cambio di base all interno di uno spazio vettoriale, inoltre cercheremo di capire

Dettagli

La sicurezza nelle reti di calcolatori

La sicurezza nelle reti di calcolatori La sicurezza nelle reti di calcolatori Contenuti del corso La progettazione delle reti Il routing nelle reti IP Il collegamento agli Internet Service Provider e problematiche di sicurezza Analisi di traffico

Dettagli

CALCOLATORI ELETTRONICI A cura di Luca Orrù. Lezione n.7. Il moltiplicatore binario e il ciclo di base di una CPU

CALCOLATORI ELETTRONICI A cura di Luca Orrù. Lezione n.7. Il moltiplicatore binario e il ciclo di base di una CPU Lezione n.7 Il moltiplicatore binario e il ciclo di base di una CPU 1 SOMMARIO Architettura del moltiplicatore Architettura di base di una CPU Ciclo principale di base di una CPU Riprendiamo l analisi

Dettagli

4. Operazioni aritmetiche con i numeri binari

4. Operazioni aritmetiche con i numeri binari I Numeri Binari 4. Operazioni aritmetiche con i numeri binari Contare con i numeri binari Prima di vedere quali operazioni possiamo effettuare con i numeri binari, iniziamo ad imparare a contare in binario:

Dettagli

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

Sicurezza nelle applicazioni multimediali: lezione 4, crittografia asimmetrica. Crittografia asimmetrica (a chiave pubblica) Crittografia asimmetrica (a chiave pubblica) Problemi legati alla crittografia simmetrica Il principale problema della crittografia simmetrica sta nella necessità di disporre di un canale sicuro per la

Dettagli

5.3 TABELLE 5.3.1 RECORD 5.3.1.1 Inserire, eliminare record in una tabella Aggiungere record Eliminare record

5.3 TABELLE 5.3.1 RECORD 5.3.1.1 Inserire, eliminare record in una tabella Aggiungere record Eliminare record 5.3 TABELLE In un sistema di database relazionali le tabelle rappresentano la struttura di partenza, che resta poi fondamentale per tutte le fasi del lavoro di creazione e di gestione del database. 5.3.1

Dettagli

la scienza della rappresentazione e della elaborazione dell informazione

la scienza della rappresentazione e della elaborazione dell informazione Sistema binario Sommario informatica rappresentare informazioni la differenza Analogico/Digitale i sistemi di numerazione posizionali il sistema binario Informatica Definizione la scienza della rappresentazione

Dettagli

Sistemi di Numerazione

Sistemi di Numerazione Fondamenti di Informatica per Meccanici Energetici - Biomedici 1 Sistemi di Numerazione Sistemi di Numerazione I sistemi di numerazione sono abitualmente posizionali. Gli elementi costitutivi di un sistema

Dettagli

CALCOLO COMBINATORIO

CALCOLO COMBINATORIO CALCOLO COMBINATORIO 1 Modi di formare gruppi di k oggetti presi da n dati 11 disposizioni semplici, permutazioni Dati n oggetti distinti a 1,, a n si chiamano disposizioni semplici di questi oggetti,

Dettagli

Database. Si ringrazia Marco Bertini per le slides

Database. Si ringrazia Marco Bertini per le slides Database Si ringrazia Marco Bertini per le slides Obiettivo Concetti base dati e informazioni cos è un database terminologia Modelli organizzativi flat file database relazionali Principi e linee guida

Dettagli

ISTITUTO COMPRENSIVO MONTEGROTTO TERME SCUOLA PRIMARIA DISCIPLINA: MATEMATICA - CLASSE PRIMA OBIETTIVI DI APPRENDIMENTO

ISTITUTO COMPRENSIVO MONTEGROTTO TERME SCUOLA PRIMARIA DISCIPLINA: MATEMATICA - CLASSE PRIMA OBIETTIVI DI APPRENDIMENTO PRIMA DELLA DISCIPLINA: MATEMATICA - CLASSE PRIMA L alunno si muove con sicurezza nel calcolo scritto e mentale con i numeri naturali. Legge e comprende testi che coinvolgono aspetti logici e matematici.

Dettagli

Elementi di informatica

Elementi di informatica Elementi di informatica Sistemi di numerazione posizionali Rappresentazione dei numeri Rappresentazione dei numeri nei calcolatori rappresentazioni finalizzate ad algoritmi efficienti per le operazioni

Dettagli

Esempi di algoritmi. Lezione III

Esempi di algoritmi. Lezione III Esempi di algoritmi Lezione III Scopo della lezione Implementare da zero algoritmi di media complessità. Verificare la correttezza di un algoritmo eseguendolo a mano. Imparare a valutare le prestazioni

Dettagli

Testi di Esercizi e Quesiti 1

Testi di Esercizi e Quesiti 1 Architettura degli Elaboratori, 2009-2010 Testi di Esercizi e Quesiti 1 1. Una rete logica ha quattro variabili booleane di ingresso a 0, a 1, b 0, b 1 e due variabili booleane di uscita z 0, z 1. La specifica

Dettagli

B+Trees. Introduzione

B+Trees. Introduzione B+Trees Introduzione B+Trees Il B+Trees e la variante maggiormente utilizzata dei BTrees BTrees e B+trees fanno parte della famiglia degli alberi di ricerca. Nel B+Trees i dati sono memorizzati solo nelle

Dettagli

Interesse, sconto, ratei e risconti

Interesse, sconto, ratei e risconti TXT HTM PDF pdf P1 P2 P3 P4 293 Interesse, sconto, ratei e risconti Capitolo 129 129.1 Interesse semplice....................................................... 293 129.1.1 Esercizio per il calcolo dell

Dettagli

Introduzione alla crittografia con OpenPGP

Introduzione alla crittografia con OpenPGP Introduzione alla crittografia con OpenPGP D avide Cerri dav ide@ linux.it Crittografia Per proteggere le comunicazioni su Internet si utilizza la crittografia. La crittografia è la scienza che si occupa

Dettagli

Calcolo del Valore Attuale Netto (VAN)

Calcolo del Valore Attuale Netto (VAN) Calcolo del Valore Attuale Netto (VAN) Il calcolo del valore attuale netto (VAN) serve per determinare la redditività di un investimento. Si tratta di utilizzare un procedimento che può consentirci di

Dettagli

Il sapere tende oggi a caratterizzarsi non più come un insieme di contenuti ma come un insieme di metodi e di strategie per risolvere problemi.

Il sapere tende oggi a caratterizzarsi non più come un insieme di contenuti ma come un insieme di metodi e di strategie per risolvere problemi. E. Calabrese: Fondamenti di Informatica Problemi-1 Il sapere tende oggi a caratterizzarsi non più come un insieme di contenuti ma come un insieme di metodi e di strategie per risolvere problemi. L'informatica

Dettagli

ALGEBRA DELLE PROPOSIZIONI

ALGEBRA DELLE PROPOSIZIONI Università di Salerno Fondamenti di Informatica Corso di Laurea Ingegneria Corso B Docente: Ing. Giovanni Secondulfo Anno Accademico 2010-2011 ALGEBRA DELLE PROPOSIZIONI Fondamenti di Informatica Algebra

Dettagli

ControlloCosti. Cubi OLAP. Controllo Costi Manuale Cubi

ControlloCosti. Cubi OLAP. Controllo Costi Manuale Cubi ControlloCosti Cubi OLAP I cubi OLAP Un Cubo (OLAP, acronimo di On-Line Analytical Processing) è una struttura per la memorizzazione e la gestione dei dati che permette di eseguire analisi in tempi rapidi,

Dettagli

13. Campi vettoriali

13. Campi vettoriali 13. Campi vettoriali 1 Il campo di velocità di un fluido Il concetto di campo in fisica non è limitato ai fenomeni elettrici. In generale il valore di una grandezza fisica assegnato per ogni punto dello

Dettagli

Introduzione al MATLAB c Parte 2

Introduzione al MATLAB c Parte 2 Introduzione al MATLAB c Parte 2 Lucia Gastaldi Dipartimento di Matematica, http://dm.ing.unibs.it/gastaldi/ 18 gennaio 2008 Outline 1 M-file di tipo Script e Function Script Function 2 Costrutti di programmazione

Dettagli

Introduzione. Coordinazione Distribuita. Ordinamento degli eventi. Realizzazione di. Mutua Esclusione Distribuita (DME)

Introduzione. Coordinazione Distribuita. Ordinamento degli eventi. Realizzazione di. Mutua Esclusione Distribuita (DME) Coordinazione Distribuita Ordinamento degli eventi Mutua esclusione Atomicità Controllo della Concorrenza Introduzione Tutte le questioni relative alla concorrenza che si incontrano in sistemi centralizzati,

Dettagli

10 - Programmare con gli Array

10 - Programmare con gli Array 10 - Programmare con gli Array Programmazione e analisi di dati Modulo A: Programmazione in Java Paolo Milazzo Dipartimento di Informatica, Università di Pisa http://www.di.unipi.it/ milazzo milazzo di.unipi.it

Dettagli

Processo di risoluzione di un problema ingegneristico. Processo di risoluzione di un problema ingegneristico

Processo di risoluzione di un problema ingegneristico. Processo di risoluzione di un problema ingegneristico Processo di risoluzione di un problema ingegneristico 1. Capire l essenza del problema. 2. Raccogliere le informazioni disponibili. Alcune potrebbero essere disponibili in un secondo momento. 3. Determinare

Dettagli

Funzioni in C. Violetta Lonati

Funzioni in C. Violetta Lonati Università degli studi di Milano Dipartimento di Scienze dell Informazione Laboratorio di algoritmi e strutture dati Corso di laurea in Informatica Funzioni - in breve: Funzioni Definizione di funzioni

Dettagli

LICEO STATALE ENRICO MEDI CON INDIRIZZI:

LICEO STATALE ENRICO MEDI CON INDIRIZZI: Verbale del primo incontro con gli studenti: Martedì 12 Novembre 2013, ore 13:45 16:45 Dopo una breve introduzione alle finalità del Progetto dal titolo Crittografia e crittanalisi, viene illustrato con

Dettagli

Complemento al corso di Fondamenti di Informatica I corsi di laurea in ingegneria, settore dell informazione Università la Sapienza Consorzio Nettuno

Complemento al corso di Fondamenti di Informatica I corsi di laurea in ingegneria, settore dell informazione Università la Sapienza Consorzio Nettuno Rappresentazione di numeri Complemento al corso di Fondamenti di Informatica I corsi di laurea in ingegneria, settore dell informazione Università la Sapienza Consorzio Nettuno Un numero e un entità teorica,

Dettagli

PROGETTO PER LA TRASMISSIONE DOCUMENTI RELATIVI ALL APPROVAZIONE DELLE MANIFESTAZIONI IN FORMA DIGITALE

PROGETTO PER LA TRASMISSIONE DOCUMENTI RELATIVI ALL APPROVAZIONE DELLE MANIFESTAZIONI IN FORMA DIGITALE PROGETTO PER LA TRASMISSIONE DOCUMENTI RELATIVI ALL APPROVAZIONE DELLE MANIFESTAZIONI IN FORMA DIGITALE L approvazione di una manifestazione nazionale od internazionale comporta spesso la trasmissione

Dettagli

Protezione del Software

Protezione del Software Protezione dalla copia Protezione del Software Alfredo De Santis! Aprile 0! Trovare un metodo contro la pirateria efficiente economico resistente contro i pirati esperti non invasivo Compito impossibile!

Dettagli

Gennaio. SUAP On Line i pre-requsiti informatici: La firma digitale

Gennaio. SUAP On Line i pre-requsiti informatici: La firma digitale 2008 Gennaio SUAP On Line i pre-requsiti informatici: La firma digitale 1 La firma digitale Indice La firma digitale La firma digitale: destinatario 2 La firma digitale Cos è La Firma Digitale è il risultato

Dettagli

INSTALLAZIONE NUOVO CLIENT TUTTOTEL (04 Novembre 2014)

INSTALLAZIONE NUOVO CLIENT TUTTOTEL (04 Novembre 2014) INSTALLAZIONE NUOVO CLIENT TUTTOTEL (04 Novembre 2014) Se la Suite risulta già stata installata e quindi sono già presenti le configurazioni di seguito indicate, si prega di andare direttamente alla fine

Dettagli

Esempio: dest = parolagigante, lettere = PROVA dest (dopo l'invocazione di tipo pari ) = pprrlogvgante

Esempio: dest = parolagigante, lettere = PROVA dest (dopo l'invocazione di tipo pari ) = pprrlogvgante Esercizio 0 Scambio lettere Scrivere la funzione void scambiolettere(char *dest, char *lettere, int p_o_d) che modifichi la stringa destinazione (dest), sostituendone i caratteri pari o dispari (a seconda

Dettagli

Raccomandazione del Parlamento europeo 18/12/2006 CLASSE PRIMA COMPETENZE ABILITÀ CONOSCENZE. Operare con i numeri

Raccomandazione del Parlamento europeo 18/12/2006 CLASSE PRIMA COMPETENZE ABILITÀ CONOSCENZE. Operare con i numeri COMPETENZA CHIAVE MATEMATICA Fonte di legittimazione Raccomandazione del Parlamento europeo 18/12/2006 CLASSE PRIMA COMPETENZE ABILITÀ CONOSCENZE L alunno utilizza il calcolo scritto e mentale con i numeri

Dettagli

Architettura hardware

Architettura hardware Architettura dell elaboratore Architettura hardware la parte che si può prendere a calci Sistema composto da un numero elevato di componenti, in cui ogni componente svolge una sua funzione elaborazione

Dettagli

SISTEMI DI NUMERAZIONE IL SISTEMA DECIMALE

SISTEMI DI NUMERAZIONE IL SISTEMA DECIMALE SISTEMI DI NUMERAZIONE IL SISTEMA DECIMALE La base del sistema decimale è 10 I simboli del sistema decimale sono: 0 1 2 3 4 5 6 7 8 9 Il sistema di numerazione decimale è un sistema posizionale. L aggettivo

Dettagli

Corso di Informatica

Corso di Informatica Corso di Informatica Modulo T3 1-Sottoprogrammi 1 Prerequisiti Tecnica top-down Programmazione elementare 2 1 Introduzione Lo scopo di questa Unità è utilizzare la metodologia di progettazione top-down

Dettagli

Comparatori. Comparatori di uguaglianza

Comparatori. Comparatori di uguaglianza Comparatori Scopo di un circuito comparatore é il confronto tra due codifiche binarie. Il confronto può essere effettuato per verificare l'uguaglianza oppure una relazione d'ordine del tipo "maggiore",

Dettagli

Guardiamo ora però la cosa da un altro punto di vista analizzando il seguente grafico a forma di torta. La torta in 5 parti

Guardiamo ora però la cosa da un altro punto di vista analizzando il seguente grafico a forma di torta. La torta in 5 parti L EQUIVALENZA FRA I NUMERI RAZIONALI (cioè le frazioni), I NUMERI DECIMALI (quelli spesso con la virgola) ED I NUMERI PERCENTUALI (quelli col simbolo %). Ora vedremo che ogni frazione (sia propria, che

Dettagli

Informatica 3. LEZIONE 21: Ricerca su liste e tecniche di hashing. Modulo 1: Algoritmi sequenziali e basati su liste Modulo 2: Hashing

Informatica 3. LEZIONE 21: Ricerca su liste e tecniche di hashing. Modulo 1: Algoritmi sequenziali e basati su liste Modulo 2: Hashing Informatica 3 LEZIONE 21: Ricerca su liste e tecniche di hashing Modulo 1: Algoritmi sequenziali e basati su liste Modulo 2: Hashing Informatica 3 Lezione 21 - Modulo 1 Algoritmi sequenziali e basati su

Dettagli

Plugin ImageJ Steganografia Digitale

Plugin ImageJ Steganografia Digitale Università degli Studi di Catania Facoltà di Scienze Matematiche, Fisiche e Naturali Corso di Laurea in Informatica (a.a. 2012/13) Plugin ImageJ Steganografia Digitale Massimiliano Portelli (matricola

Dettagli