Studio ed Implementazione di Schemi di Crittografia Visuale mediante Java Cryptography Architecture

14
UNIVERSITÀ DEGLI STUDI DI MILANO DIPARTIMENTO DI INFORMATICA Corso di Laurea in Sicurezza dei Sistemi e delle Reti Informatiche Studio ed Implementazione di Schemi di Crittografia Visuale mediante Java Cryptography Architecture TESI DI LAUREA Marco VERNACCINI Matr. 784170 RELATORE Prof. Stelvio CIMATO

description

Tesi di Laurea di Marco Vernaccini Relatore: Prof. Stelvio Cimato

Transcript of Studio ed Implementazione di Schemi di Crittografia Visuale mediante Java Cryptography Architecture

Page 1: Studio ed Implementazione di Schemi di Crittografia Visuale mediante Java Cryptography Architecture

UNIVERSITÀ DEGLI STUDI DI MILANO DIPARTIMENTO DI INFORMATICA

Corso di Laurea in Sicurezza dei Sistemi e delle Reti Informatiche

Studio ed Implementazione di Schemi di Crittografia Visuale mediante

Java Cryptography Architecture

TESI DI LAUREA Marco VERNACCINI

Matr. 784170

RELATORE Prof. Stelvio CIMATO

Page 2: Studio ed Implementazione di Schemi di Crittografia Visuale mediante Java Cryptography Architecture

Che cos’è la Crittografia Visuale?

È una Tecnica Crittografia per:

∗ Cifratura d’immagini

∗ Condivisione di segreti

Caratteristica Principale :

∗ Permette la decodifica delle immagini mediante il solo sistema visivo

umano senza ricorrere all’utilizzo di elaboratori elettronici

Page 3: Studio ed Implementazione di Schemi di Crittografia Visuale mediante Java Cryptography Architecture

Modello Base

Page 4: Studio ed Implementazione di Schemi di Crittografia Visuale mediante Java Cryptography Architecture

Schemi Analizzati

• Schema di Crittografia Visuale Estesa in bianco e nero: ∗ Le Share prodotte contengo pixel disposti in maniera tale da formare un

immagine di senso compiuto ∗ Come input si hanno una immagine segreta e 𝑛 immagini di senso

compiuto, con 𝑛 il numero di partecipanti dello schema

• Schema di Crittografia Visuale a Colori senza oscurazione: ∗ L’immagine segreta e le share prodotte contengo pixel bianchi, neri e

colorati. ∗ Senza oscurazione: i colori dei singoli pixel nell’immagine segreta

ricostruita sono gli stessi colori dell’immagine originale

Page 5: Studio ed Implementazione di Schemi di Crittografia Visuale mediante Java Cryptography Architecture

Crittografia Visuale Estesa

Page 6: Studio ed Implementazione di Schemi di Crittografia Visuale mediante Java Cryptography Architecture

Crittografia Visuale a Colori

Page 7: Studio ed Implementazione di Schemi di Crittografia Visuale mediante Java Cryptography Architecture

• Linguaggio ad oggetti Java ∗ Orientato alla sicurezza ∗ Flessibile ∗ Ricco di API

• In particolare la libreria per la crittografia JCA ∗ Indipendenza dall’algoritmo utilizzato ∗ Indipendenza dall’implementazione ∗ Estensibilità

Implementazione

Page 8: Studio ed Implementazione di Schemi di Crittografia Visuale mediante Java Cryptography Architecture

Java Cryptography Architecture

Applicazione Java

Service Provider Interface (SPI)

API JCA

Cryptographic Service Providers

Sun Provider

Bw2 Provider

C2n Provider

Other Provider

Richiesta Risposta

Page 9: Studio ed Implementazione di Schemi di Crittografia Visuale mediante Java Cryptography Architecture

Servizio di Crittografia Visuale Estesa

Applicazione Java Servizio di crittografia visuale estesa

Istanziazione della Engine Class Dealer per l’algoritmo scelto

Creazione dei gruppi di partecipanti qualificati alla ricostruzione del segreto

Inizializzazione Dealer

Generazione Share mediante metodo dealer.generateShares

Istanziazione della Engine Class Maker

per l’algoritmo scelto

= Maker

Page 10: Studio ed Implementazione di Schemi di Crittografia Visuale mediante Java Cryptography Architecture

Che cosa fa generateShares?

• Tutte le immagini vengono convertite in matrici di byte.

• Date le immagini di ogni partecipante e data l’immagine segreta da condividere:

1. Analizza ogni pixel dell’immagine segreta e i corrispondenti delle immagini dei partecipanti 2. Genera quindi una stringa a seconda del colore dei pixel analizzati 3. La stringa viene poi utilizzata come indice, per identificare in un vettore di matrici, quella giusta per codificare il pixel delle shares 4. Completata la matrice per ogni shares, ognuna viene convertita in immagine per poter essere stampata su di un lucido e consegnata ai partecipanti

Page 11: Studio ed Implementazione di Schemi di Crittografia Visuale mediante Java Cryptography Architecture

Servizio di Crittografia Visuale a Colori

Applicazione Java Servizio di crittografia visuale a colori

Istanziazione della Engine Class Dealer per l’algoritmo scelto

Creazione dei gruppi di partecipanti qualificati alla ricostruzione del segreto

Inizializzazione Dealer

Generazione Share mediante metodo dealer.generateShares

Istanziazione della Engine Class Maker

per l’algoritmo scelto

= Maker

Page 12: Studio ed Implementazione di Schemi di Crittografia Visuale mediante Java Cryptography Architecture

• Tutte le immagini vengono convertite da 16 mln di colori in soli 8 colori e successivamente in matrici di byte.

• Data l’immagine segreta da condividere: 1. Analizza ogni pixel dell’immagine segreta 2. In base al colore del pixel analizzato genera una stringa 3. La stringa viene poi utilizzata come indice, per identificare in un vettore

di matrici, quella giusta per codificare quel determinato colore di pixel in ogni shares

4. Completata la matrice per ogni shares, ognuna viene convertita in immagine per poter essere stampata su di un lucido e consegnata ai partecipanti

Che cosa fa generateShares?

Page 13: Studio ed Implementazione di Schemi di Crittografia Visuale mediante Java Cryptography Architecture

• L’applicazione realizzata è:

∗ Efficiente

∗ Modulare-Flessibile

∗ Portabile

Conclusioni

Page 14: Studio ed Implementazione di Schemi di Crittografia Visuale mediante Java Cryptography Architecture

GRAZIE PER L’ATTENZIONE