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 »
February 27th, 2009
Prolog è un linguaggio per il calcolo simbolico dove la necesita di eseguire calcoli aritmetici è esigua. In questa lezione vedremo come gestire le operazione aritmetiche.
I principali operatori aritmetici di Prolog sono:
- +, addizione
- -, sottrazione
- *, moltiplicazione
- /, divisione
- mod, resto della divisione
L’uso di tali operatori non è diretto. Infatti scrivendo
?- X = 1 + 2.
Prolog risponderà “X = 1 + 2″ e non “X = 3″ come qualcuno potrebe aspettarsi. Ciò avviene perchè la stringa “1 + 2″ in prolog coincide con un termine dove + è il funtore ed 1 e 2 i suoi argomenti. Per eseguire l’operazione aritmetica c’è bisogno di usare l’operatore speciale is come segue:
Read the rest of this entry »
Posted in Programmazione, Tutorial | No Comments »
January 24th, 2009
Le liste sono strutture dati tanto semplici quanto usate. In questa lezione vedremo come usarle in Prolog. Una lista è una sequenza di elementi e, come visto anche nella lezione precedente, può essere scritta in Prolog utilizzando il funtore ‘.’ oppure usando la notazione con parentesi quadre. Quest’ultima è la notazione più comoda e sarà l’unica ad essere trattata in questa lezione. Una lista può essere scritta nel seguente modo:
[item1, item2, item3, item4]
Read the rest of this entry »
Posted in Programmazione, Tutorial | No Comments »
January 5th, 2009
Art of Illusion (AoI) è un ambiente di modellazione 3D free ed OpenSource, esso consente di creare scenari ed animazioni tridimensionali di ottimo impatto. Punti di forza di tale software sono la suddivisione delle superfici ed animazioni basate su scheletri, inoltre fornisce un linguaggio grafico per la progettazione di texture procedurali e materiali.
Forse non è il migliore software OpenSource della sua categoria ma è l’unico scritto in Java.
E’ espandibile attraverso plugin e script con i quali è possibile accedere a tutte le classi del programma.

AoI supporta il Ray tracing, il quale è una tecnica basata sulla simulazione del percorso fatto dalla luce. Grazie ad essa è possibile creare delle immagini fotorealistiche proprio come queste.
Dal sito ufficiale del software sono scaricabili gli installabili per i tre sistemi operativi principali Windows, Linux, Mac OS X ed un pacchetto contenente soltanto il jar per tutte le altre piattaforme su cui gira java.
Posted in Varie | No Comments »