04-Lezione PON BAITAH Dott. Suma - IDE and modern developing technoloiges
Studio ed implementazione di schemi di crittografia visuale progressiva
1. UNIVERSITÀ DEGLI STUDI DI MILANO
DIPARTIMENTO DI INFORMATICA
Corso di Laurea in Sicurezza dei Sistemi e delle Reti Informatiche (Crema)
Studio ed implementazione
di schemi di
crittografia visuale progressiva
RELATORE
Prof. Stelvio Cimato
TESI DI LAUREA DI
Andrea Fiano
Matricola 761331
Anno Accademico 2014/2015
2. Cos’è la crittografia visuale?
È una tecnica di Crittografia che permette:
Cifratura delle immagini
Condivisione dei segreti
Vantaggio principale:
Permette la decodifica delle immagini mediante il solo
sistema visivo umano senza richiedere l’uso di alcun
calcolatore.
Garantisce una sicurezza incondizionata.
Esistono varie tipologie e codifiche di Crittografia Visuale (VC).
2
4. Schemi analizzati
• Schemi di VC per immagini in B/W, in scala di grigio e a
colori;
• Schema di VC estesa;
• Schema di VC per strutture di accesso generali;
• Schema di VC progressiva.
4
5. Eventuali applicazioni della Crittografia Visuale
La crittografia visuale può essere utilizzata per:
1. Autenticazione visuale
2. Identificazione visuale
3. Test visivo CAPTCHA
4. Sistemi Biometrici
5
7. Crittografia visuale progressiva (k,n)
Le immagini vengono suddivise in “n” share,
Solamente quando almeno “k” share vengono sovrapposte,
l’immagine segreta viene ripristinata; se si impilano più di “k”
share, si aumenta il dettaglio dell’immagine ripristinata.
7
8. Crittografia visuale progressiva con share
inespanse
Questo metodo è stato ideato da Hou e Quan.
Vantaggi:
1. Permette, come per la VC, una decifratura senza l’uso di alcun
calcolatore
2. Minor spazio di memorizzazione
3. Minor tempo di trasmissione
8
9. Scelta del linguaggio di programmazione
Caratteristiche di Java:
• Orientato alla sicurezza
• Indipendente dalla piattaforma
• Estendibile
• Ricco di librerie (Es. JCA)
9
10. Java Cryptography Architecture
Caratteristiche importanti:
1. Indipendente dall’algoritmo utilizzato
2. Indipendente dall’implementazione
3. Estendibile
Applicazione Java
API JCA
Cryptographic Service Providers
Richiesta Risposta
Service Provider Interface
(SPI)
Sun Provider Bw2 Provider C2n Provider Other Provider
10
11. Servizio di Crittografia visuale progressiva
Applicazione Java
Servizio di crittografia
Istanziazione della
Engine Class Dealer
Impostazione numero
partecipanti
Inizializzazione del
Dealer
Generazione Share
(Dealer.generateShares)
Istanziazione della
Engine Class Maker
Sistema visivo umano
Share 1 Share 2 Share n
11
12. Funzionamento dell’algoritmo di Hou e Quan
Cosa fa esattamente generateShares?
1. L’immagine inserita nell’applicazione viene trasformata in una matrice di
byte
2. Vengono generate due matrici chiamate C0 e C1
Continua…
12
13. Funzionamento dell’algoritmo di Hou e Quan
Cosa fa esattamente generateShares?
3. Si analizza ciascun pixel dell’immagine originale
4. Si seleziona un numero casuale L da 1 a n (partecipanti)
4.1 se il pixel è bianco S1 (C0(L, 1)), S2 (C0(L, 2)),… , Sn (C0(L, n))
4.2 se il pixel è nero S1 (C1(L, 1)), S2 (C1(L, 2)),… , Sn (C1(L, n))
13