Il rompicapo di Merkle

March 31st, 2009

Gli algoritmi di cifratura a chiavi simmetriche sono sistemi di cifratura dove due interlocutori (Alice e Bob) concordano preventivamente un algoritmo e una chiave con la quale possono sia cifrare che decifrare dei messaggio. Se gli interlocutori sono più di due e utilizzano lo stesso algoritmo, allora ogni coppia dovrà concordare una chiave diversa. Ciò comporta il delicato problema della distribuzione delle chiavi.

Ralph Merkle, uno dei pionieri della crittografia, negli anni 70 propose una tecnica basata su rompicapi(puzzle) facili da risolvere per il ricevente ma non per un eventuale ascoltatore malintenzionato (Eve). La soluzione di tali puzzle è data provando tutte le possibili chiavi di un messaggio fino a che si trova quella effettivamente corretta (attacco a forza bruta).

(1) Bob genera 220, circa un milione, di messaggi con scritto: “This is puzzle number x. This is the secret key number y“, dove x è un numero a caso ed y una chiave segreta casuale. Sia x che y sono differenti per ogni messaggio. Usando un algoritmo simmetrico Bob cifra ogni messaggio con una chiave di 20 bit e li manda ad Alice.
(2) Alice sceglie a caso uno dei messaggi ed esegue un attacco a forza bruta recuperandono il testo in chiaro.
(3) Alice cifra il suo messaggio segreto con la chiave scoperta e lo invia a Bob insieme ad x.
(4) Bob adesso, basandosi sull’indice x, conosce la chiave y con la quale Alice ha cifrato il messaggio. Può cosi’ decifrarlo.

Eve per decifrare la conversazione dovrà fare molto più lavoro di Alice o Bob. Per decifrare il messaggio inviato da Alice al passo 3 deve effettuare un attacco a forza bruta su tutti i 220 messaggi inviati in 1. Considerando che una chiave a 20 bit ha 220 possibili combinazioni, un attacco a forza bruta ha bisogno, al più, di 220 operazioni per trovare la chiave di un singolo messaggio, 220 * 220 = 240 per trovare le chiavi di tutti. Con un calcolatore che può effettuare 220 in un secondo Alice troverà la propria chiave in un secondo ma Eve, data la mole di messaggi da scandire, impiegherà circa 12 giorni.

Posted in Varie | No Comments »

Il digital watermarking

February 26th, 2008

Wetermarking e DRM sono parole che si sentono sepre più spesso e non pochi ne confondono il significato. Con DRM (Digital rights management) si indica un sistema per limitare l’utilizzo di prodotti, ovvero un editore che rilascia i propri libri in formato digitale con un sistema DRM può evitare la copia illegale del proprio ebook o un produttore hardware può limitare l’utilizzo delle proprie periferiche a determinate macchine.
Invece i digital watermark mirano a nascondere dati all’interno di contenuti digitali. Essi possono essere di tipo fragile o robusto. I robusti resistono alle alterazioni del documento in cui sono stati inseriti e vengono usati per la protezione dei diritti d’autore, mentre watermark di tipo fragile sono invece altamente sensibili ad eventuali modifiche del documento, quindi in grado di provare l’autenticità di un contenuto in caso di alterazioni.
Inoltre è possibile distinguere i watermark visibili all’interno dei dati da quelli occultati.
In simboli, indicando con D il documento originale, si genera un watermark W in base ad una chiave K

equazione

dove G è l’algoritmo di watermark-generating. Successivamente il watermark
viene applicato creando un documento equazione

equazione

dove E è l’algoritmo di watermark-embedding.
Se equazione non viene alterato allora è vera l’equazione

equazione

Da notare che equazione è pubblico mentre K è segreta.
E’ quindi chiaro che mediante il watermarking è possibile costruire un sistema DRM ma non solo, con esso si soddisfa l’esigenza di riuscire a stabilire la provenienza del materiale che si utilizza. Se ogni azienda che gestisce dati sensibili adottasse un sistema di watermarking applicato alle comunicazioni con i clienti sarebbe possibile evitare fenomeni come il pishishing eliminando la possibilità che qualcuno riesca a richiedere informazioni a nome dell’azienda.

Posted in Internet | No Comments »