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

Documenti analoghi
Crittografia simmetrica (a chiave condivisa)

Crittografia ed Aritmetica Modulare VI incontro

Elementi di Algebra e di Matematica Discreta Cenno di un applicazione alla crittografia

Laboratorio di Architettura degli Elaboratori A.A. 2016/17 Programmazione Assembly

Corso di Sicurezza nelle reti a.a. 2009/2010. Raccolta di alcuni quesiti del corso da 5CFU e prima parte del corso da 9CFU

Informatica. Crittografia. La crittografia è la scienza che studia la scrittura e la lettura di messaggi in codice

Laboratorio di programmazione

Elementi di Crittografia

Progetto Lauree Scientifiche Crittografia V incontro

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

S-vLab. Stream cipher Block cipher. Stream cipher vs. Block cipher. Stream cipher vs. Block cipher. Stream cipher vs. Block cipher

sia G un gruppo ciclico di ordine n, sia g un generatore di G

RACCOLTA DI ALCUNI ESERCIZI TRATTI DA COMPITI D ESAME SUL SISTEMA CRITTOGRAFICO RSA

Corso di Sicurezza nelle reti a.a. 2010/2011. Soluzione dei quesiti sulla prima parte del corso

Elaborazione dell informazione. Elaborazione dell informazione. Rappresentazione dei numeri INFORMATICA PER LE DISCIPLINE UMANISTICHE 2 (13042)

Elementi di Algebra e di Matematica Discreta Cenno alla crittografia

ARCHITETTURA DEGLI ELABORATORI CLASSE 2 A.A. 2014/15. Docente: Vincenzo Auletta RAPPRESENTAZIONE DELL INFORMAZIONE

ITC Mossotti - Novara. Verica di Informatica. Nome e Cognome:... 1) Nella cifratura convenzionale. 2) Nella crittograa a chiave pubblica

Laboratorio di Architettura degli Elaboratori A.A. 2014/15 Programmazione Assembly

Crittografia per la sicurezza dei dati

sia G un gruppo ciclico di ordine n, sia g un generatore di G bisogna determinare l unico intero x con 1 x n 1 tale che g x = y

Crittografia. Codifica dei caratteri di un messaggio con criteri noti solo a mittente e destinatario

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

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

La funzione Hash. Garanzia dell integrità dei dati e autenticazione dei messaggi

Dipartimento di Elettronica, Informazione e Bioingegneria Politecnico di Milano

logaritmo discreto come funzione unidirezionale

Algoritmo IDEA. Di Simone Galdino

una possibile funzione unidirezionale

crittosistemi a flusso

Sicurezza delle informazioni

sia G un gruppo ciclico di ordine n, sia g un generatore di G

Sicurezza della comunicazione tra due entità. Prof.ssa Gaia Maselli

idea della crittografia a chiave pubblica

si cerca di scegliere e non troppo grande e tale che nella scrittura binaria di e ci siano pochi 1 e piccolo = cifratura più veloce

Corso di Crittografia

crittosistemi a flusso

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

Informatica A (per gestionali) A.A. 2004/2005. Esercizi di programmazione C Stringhe Ricerca binaria

Esercizi sulle stringhe

problema del logaritmo discreto

crittografia a chiave pubblica

Stream cipher. Cifrari simmetrici. Stream cipher. Sicurezza su reti I cifrari simmetrici possono essere: Cifrari a blocchi: Stream Cipher:

Cifrari Storici. Prologo. Cifrario di Cesare. x mod 26. Motivazioni: Crittografia manuale Sono note tecniche statistiche per forzarli!

Algoritmi di criptografia a chiave. Cifrari a blocchi

La codifica. dell informazione

Per gli esercizi sulla algebra booleana, si consiglia di verificare tramite tabelle di verità le equivalenze logiche proposte sulle dispense.

Corso di Crittografia Prof. Dario Catalano. Cifrari Asimmetrici (Terza Parte): RSA-OAEP e Cifrari basati sull identita

Reti di Calcolatori. Crittografia & Java Cryptographic Architecture (JCA) A.A. 2010/2011 Reti di Calcolatori 1 (Es. 6)

Privacy e firma digitale

Esercitazione 1 Crittografia Simmetrica

a b c d e f g h i l m n o p q r s t u v z

RSA e firma digitale

A cosa serve la crittografia? La crittografia serve ad aiutare due utenti, Alice e Bob, a comunicare in modo sicuro...

da chi proviene un messaggio?

Esercizi. Stringhe. Stringhe Ricerca binaria

Esercitazione 1 Conversione di base

Corso di Crittografia

CODICI. Crittografia e cifrari

idea della crittografia a chiave pubblica

Programmazione in Rete

funzione φ di Eulero, o funzione toziente è definita sugli interi positivi φ(n) è il numero di interi positivi n che sono coprimi con n

crittografia a chiave pubblica

Elementi di informatica

Fondamenti di Informatica Esercizi settimanali n. 3 01/10/2009 SOLUZIONI PROPOSTE

idea della crittografia a chiave pubblica

Elementi di informatica

cifrario di Feistel cifrario di Feistel

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

Lab 08 Stringhe e strutture

Autenticazione Debole Claudio Gaz

Crittografia a chiave pubblica

Algoritmi, Strutture Dati e Programmi. UD 1.d: Dati e Tipi di Dato

cifrario di Feistel cifrario di Feistel

LABORATORIO 8 ancora ARRAY

Sicurezza nelle applicazioni multimediali: lezione 5, funzioni di hash. Funzioni crittografiche di hash

Corso di Crittografia Prof. Dario Catalano. Cifrari Simmetrici (Prima Parte)

Notazione posizionale. Codifica binaria. Rappresentazioni medianti basi diverse. Multipli del byte

Corso di Informatica

Esame di Informatica. Facoltà di Scienze Motorie LE UNITA DI MISURA (1/4) LE UNITA DI MISURA (3/4) LE UNITA DI MISURA (2/4) Lezione 2

L AMBIENTE CODE BLOCKS E L IO

crittosistema: definizione

Esempio: quanto mi piace questo corso! qufuafantofo mifi pifiafacefe qufuefestofo coforsofo!

PROVA SCRITTA DEL CORSO DI CORSO DI LAUREA IN INGEGNERIA BIOMEDICA ED ELETTRICA 9/6/2008

(G, ) un gruppo moltiplicativo di ordine n l ordine di un elemento g G, o(g), è il minimo intero positivo m tale che g m = 1

Rappresentazione ottale e esadecimale. 22 settembre 2017

Esempio: quanto mi piace questo corso! qufuafantofo mifi pifiafacefe qufuefestofo coforsofo!

Scuola di Specializzazione in Fisica Sanitaria a.a. 2005/2006. Corso di Informatica e Statistica Medica. Crittografia

INFORMATICA GENERALE E BASI DI DATI PER ARCHIVI AUDIOVISIVI (PRIMO MODULO) Claudio Piciarelli A.A. 2013/2014

Seminario sulla Crittografia. Corso: T.A.R.I Prof.: Giulio Concas Autore: Ivana Turnu

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

NUMERI E CRITTOGRAFIA

da chi proviene un messaggio?

Introduzione alle tecniche crittografiche 1. Fisica dell Informazione

Elementi di crittografia

Lab 12 Stringhe e strutture"

Transcript:

Laurea Magistrale in Bioingegneria Corso di Informatica Medica (Prof. Giovanni Sparacino) A.A. 2008-2009 Homework Parte 3: Sicurezza dei dati sanitari Esercizi, e relative soluzioni, a cura dell Ing. Costanza D Avanzo (davanzoc@dei.unipd.it) e dell Ing. Stefania Guerra (stefi.guerra@gmail.com) Esercizi in Matlab 1. Si considerino le function julius e dejulius (di cui agli esercizi 3.1 e 3.2, parte 8). a) Modificarle in modo che gestiscano caratteri maiuscoli e minuscoli. In particolare si garantisca che i caratteri maiuscoli (codici ASCII da 65 a 90) vengano criptati in caratteri maiuscoli, i caratteri minuscoli (codici ASCII da 97 a 122) in minuscoli e gli spazi (codice ASCII 32) in spazi. b) Scrivere un programma main per cifrare e decifrare il testo Roma ebbe sette re Romolo Numa Pompilio Tullio Ostilio Anco Marzio Tarquinio Prisco Servio Tullio Tarquinio il Superbo. 2. La cifratura Atbash (Antico Testamento) sostituisce la prima lettera dell alfabeto con l ultima, la seconda con la penultima,, l ultima con la prima. a) Scrivere una function atbash1.m che permetta di criptare e decriptare un testo secondo la cifratura Atbash gestendo solo lettere maiuscole e spazi. b) Modificare la function del punto precedente in modo che gestisca anche le lettere minuscole, similmente all esercizio 1a). Esempi di possibili soluzioni Esercizio 1

Esercizio 2

Esercizi da compitino da svolgere senza usare Matlab 1. Tizio vuole mandare una password a Caio in modo sicuro e sceglie di cifrare il testo con il metodo RSA. La password da inviare è ROMA e viene cifrata con la chiave pubblica (21,5). Qual è il testo che giunge a Caio? Supponendo di essere venuti a conoscenza del valore di p utilizzato nell algoritmo di generazione della chiave (sia p=3), ricavare la chiave segreta che permette di decifrare il codice. Usare la chiave ricavare per ottenere la password ROMA. 2. Elena riceve da Maria un messaggio cifrato che nasconde la chiave di sessione che le due amiche utilizzeranno per una comunicazione basata su un cifrario a chiave simmetrica. Il messaggio in codice ASCII (decimale) ricevuto è il seguente: 10 36 24 74 8 Ricavare la chiave di sessione ipotizzando che sia una stringa da 32 bit e sapendo che è stata cifrata con il metodo RSA. Le chiavi di Elena e Maria sono le seguenti: chiave pubblica Elena: (22,7) chiave pubblica Maria: (14,5) chiave segreta Elena: (22,3) chiave segreta Maria: (14,5). 3. Sia dato N=65, p=5. Determinare q. Dato e=19, determinare d (si proceda a tentativi partendo da un possibile quoziente di 15). a) Si consideri la stringa fata e la si cripti con la chiave (N,e). b) Si consideri la sequenza (6 bit) 101110 000100 101110 000001 111100 000100 101110 000001 criptata con chiave (N,19). Si riporti in base alle tabelle ASCII il testo criptato. Sapendo che la striscia in binario riportata è stata ricavata dalla sequenza in chiaro Ricavare il testo originale spedito. 01100100 01100001 01110100 01100001 c) Siano p=3, q=5, e=7, k=4. Si determini d. Si cripti la parola PIZZA con la chiave [N,e] e si commenti brevemente il risultato ottenuto. Se la parola fosse stata diversa si sarebbe ottenuto un risultato simile? Cosa succederebbe se la parola pizza venisse scritta in minuscolo? Provare a ricavare una proprietà generica che consenta di stabilire se un carattere sarà mappato in se stesso (si consideri l operazione M e modn e il suo risultato). Cambierebbe qualcosa se si usasse un k diverso?

Esempi di possibili soluzioni Esercizio 1 R O M A codifica ASCII: 82 79 77 65 in binario: 01010010 01001111 01001101 01000001 divisione in blocchi da 4 bit: 0101 0010 0100 1111 0100 1101 0100 0001 valori decimali corrispondenti: 5 2 4 15 4 13 4 1 valori elevati ad e : 5 5 2 5 4 5 15 5 4 5 13 5 4 5 1 calcolo del resto della divisione per 21: 17 11 16 15 16 13 16 1 in binario: 10001 01011 10000 01111 10000 01101 10000 00001 sequenza binaria finale in blocchi da 8 bit: 10001010 11100000 11111000 00110110 00000001 valori decimali associati: 138 224 248 54 1 stringa cifrata: èó 6 A Caio giunge quindi il testo èó 6. Per il calcolo della chiave segreta, si ricava q=n/p=7, z=(p-1)(q-1)=12. Poiché e=5, risulta d=5. La chiave per decifrare il testo è quindi (21,5).

La stringa cifrata risulta èó 6 in codifica ASCII (decimale): 138 224 248 54 1 in binario: 10001010 11100000 11111000 00110110 00000001 divisione in gruppi da 5 bit: 10001 01011 10000 01111 10000 01101 10000 00001 in decimale: 17 11 16 15 16 13 16 1 valori elevati a d : 17 5 11 5 16 5 15 5 16 5 13 5 16 5 1 resto della divisione per 21: 5 2 4 15 4 13 4 1 valori in binario: 0101 0010 0100 1111 0100 1101 0100 0001 codifica ASCII su 8 bit: 82 79 77 65 stringa decriptata: R O M A. Esercizio 2 La chiave per decifrare è la chiave segreta di Elena, colei che riceve il messaggio. In messaggio ricevuto trasformato in bit risulta essere: divisione in blocchi da 5 bit 00001010 00100100 00011000 01001010 00001000 i valori in decimale corrispondenti: 00001 01000 10010 00001 10000 10010 10000 01000

1 8 18 1 16 18 16 8 valori elevati alla d=3: i resti della divisione per N=22: 1 8 3 18 3 1 3 16 3 18 3 16 3 8 3 1 6 2 1 4 2 4 6. I resti, espressi in binario, forniscono la chiave di sessione: Esercizio 3 N=65 p=5 q=13 d=43 e=19. a) Codifica 8 bit Codifica 4 bit (k=4) Mod 65 Codifica a 7 bit (resto max 64) 0001 0110 0010 0001 0100 0010 0100 0110. 01100110 01100001 01110100 01100001 0110 0110 0110 0001 0111 0100 0110 0001 6 6 6 1 7 4 6 1 6 19 6 19 6 19 1 19 7 19 4 19 6 19 1 19 46 46 46 1 58 4 46 1 0101110 0101110 0101110 0000001 0111010 0000100 0101110 0000001 01011100 10111001 01110000 00010111 01000001 00010111 00000001 92 185 112 23 65 23 1 Il testo criptato è \ p A, il primo carattere dipende dal software utilizzato. b) Il testo criptato è Kü- Kü, il testo originale è data. c) d=7, PIZZA, (M e -M=Ny) dove y è un numero naturale, sì.

Funzioni Hash Si consideri la funzione di Hash che opera nel modo seguente: C i =b i1 XOR b i2 XOR b i3 XOR XOR b im dove C i è l i-esimo bit del codice hash, b ij è l i-esimo bit del j-esimo blocco in cui viene divisa la sequenza d ingresso, m è il numero di blocchi di n bit in cui può essere suddivisa la sequenza in ingresso. a) Si scriva una function XOR_hash.m che fornisca il codice hash a n bit per una sequenza di bit in ingresso di lunghezza arbitraria. b) Si scriva un main che codifichi il testo Laboratorio di Informatica Medica utilizzando n=8. Esempio di possibile soluzione

Altri esercizi Viene fornito (vd. sito del corso, cartella Files) un testo crittato con metodo di permutazione (file testoc.mat). Si sa che p stato crittato tramite permutazione. Nell ordine, le 7 lettere meno frequenti sono [JKWXYQH] e le 9 più frequenti sono [LTRNEOIA]. 1. Costruire una function testook=tentativo(vettore_vecchi, vettore_nuovi, testo) che sostituisca nella stringa testo le occorrenze dei caratteri nel vettore vettore_vecchi ordinatamente con i caratteri contenuti nel vettore vettore_nuovi. Ad esempio Vettore_vecchi=[ ABCD ] Vettore_nuovi=[ EFGH ] Sostituire a tutte le A nel testo il carattere E, al posto di B sostituire F 2. Applicare la function al testo, in modo da sostituire intanto almeno i caratteri di cui si conosce la codifica con probabilità alta (i più frequenti ed i meno frequenti.) 3. Scrivere una function alfaredux=permutaredux(vettore) che ricevendo in ingresso un vettore con le codifiche ASCII di n caratteri ne crei una permutazione, restituendo le codifiche ASCII dell alfabeto permutato. 4. Provare con un approccio tipo attacco esaustivo a cercare le permutazioni dei caratteri di cui non si conosce la frequenza nella lingua per completare la decifrazione del messaggio. Applicare ripetutamente la function tentativo per ottenere le varie versioni decifrate. 5. Provare un approccio intelligente, osservando il testo decifrato in parte (suggerimento: nel sostituire le lettere sostituire in minuscolo per rendere evidente il messaggio già a posto e quello ancora da decifrare) e provare una sostituzione mirata di alcune lettere andando a senso. Si consiglia di fare introdurre lettere da sostituire e sostitute da tastiera, interrompendo il processo quando si è soddisfatti del risultato.