APPUNTI DI CRITTOGRAFIA: Dai cifrari storici ad RSA.
|
|
- Gabriella Grasso
- 8 anni fa
- Visualizzazioni
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/
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
DettagliCrittografia. 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
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
DettagliDefinire 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
Dettagli4 3 4 = 4 x 10 2 + 3 x 10 1 + 4 x 10 0 aaa 10 2 10 1 10 0
Rappresentazione dei numeri I numeri che siamo abituati ad utilizzare sono espressi utilizzando il sistema di numerazione decimale, che si chiama così perché utilizza 0 cifre (0,,2,3,4,5,6,7,8,9). Si dice
DettagliSSL: applicazioni telematiche SSL SSL SSL. E-commerce Trading on-line Internet banking... Secure Socket Layer
: applicazioni telematiche Secure Socket Layer E-commerce Trading on-line Internet banking... Protocollo proposto dalla Netscape Communications Corporation Garantisce confidenzialità e affidabilità delle
DettagliSISTEMI 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
DettagliRETI 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,
DettagliScambio 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
DettagliAltri cifrari a blocchi
Altri cifrari a blocchi Barbara Masucci Dipartimento di Informatica ed Applicazioni Università di Salerno masucci@dia.unisa.it http://www.dia.unisa.it/professori/masucci RC2 [1989] IDEA (International
DettagliSiamo 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
DettagliAnalisi 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
DettagliLezione 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
DettagliInformatica 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
Dettaglida 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
DettagliLA 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
DettagliAPPUNTI 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....................................
DettagliDimensione 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
DettagliSISTEMI 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
DettagliAlgoritmi 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
DettagliConvertitori 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
DettagliPROGETTO 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
DettagliINTRODUZIONE 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.
DettagliUn 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
DettagliIntroduzione. 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...
DettagliStrutturazione 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
DettagliInformatica. 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
DettagliA 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
DettagliIntroduzione 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
DettagliExcel. 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
DettagliLa 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
DettagliDocumentazione 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
DettagliCluster. 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,
DettagliESERCIZI 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
Dettaglirisulta (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
DettagliAlessandro 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
DettagliCorso 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
DettagliAlgoritmo. 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
DettagliSommario. 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
DettagliI sistemi di numerazione
I sistemi di numerazione 01-INFORMAZIONE E SUA RAPPRESENTAZIONE Sia dato un insieme finito di caratteri distinti, che chiameremo alfabeto. Utilizzando anche ripetutamente caratteri di un alfabeto, si possono
DettagliLezione 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
DettagliCoordinazione 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,
DettagliDispense 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
DettagliCrittografia e sicurezza delle reti. WEP: Wired Equivalent Privacy
Crittografia e sicurezza delle reti WEP: Wired Equivalent Privacy Stream Ciphers Inizia con una chiave segreta ( seed ) Genera uno stream di byte (Keystream): byte i dello stream è funzione della chiave
DettagliESEMPIO 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
DettagliInformatica 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
DettagliSISTEMI 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
DettagliLa 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
DettagliLa 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
DettagliDOCUMENTO 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
DettagliIntroduzione 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
Dettaglif(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
DettagliIniziamo 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
DettagliLogica 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
DettagliAutomazione 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
DettagliFasi 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
DettagliAppunti 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
DettagliInformazione 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
DettagliLezione 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
DettagliLa 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
DettagliCALCOLATORI 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
Dettagli4. 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:
DettagliSicurezza 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
Dettagli5.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
Dettaglila 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
DettagliSistemi 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
DettagliCALCOLO 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,
DettagliDatabase. 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
DettagliISTITUTO 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.
DettagliElementi 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
DettagliEsempi 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
DettagliTesti 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
DettagliB+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
DettagliInteresse, 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
DettagliIntroduzione 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
DettagliCalcolo 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
DettagliIl 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
DettagliALGEBRA 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
DettagliControlloCosti. 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,
Dettagli13. 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
DettagliIntroduzione 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
DettagliIntroduzione. 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,
Dettagli10 - 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
DettagliProcesso 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
DettagliFunzioni 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
DettagliLICEO 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
DettagliComplemento 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,
DettagliPROGETTO 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
DettagliProtezione 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!
DettagliGennaio. 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
DettagliINSTALLAZIONE 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
DettagliEsempio: 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
DettagliRaccomandazione 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
DettagliArchitettura 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
DettagliSISTEMI 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
DettagliCorso 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
DettagliComparatori. 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",
DettagliGuardiamo 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
DettagliInformatica 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
DettagliPlugin 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