Your SlideShare is downloading. ×
  • Like
Codemotion 2012: una nuova crittografia frattale - classe Crypt::FNA
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×

Now you can save presentations on your phone or tablet

Available for both IPhone and Android

Text the download link to your phone

Standard text messaging rates apply

Codemotion 2012: una nuova crittografia frattale - classe Crypt::FNA

  • 703 views
Published

Slide del talk tenuto il 24 marzo 2012 presso la Facoltà di Ingegneria dell'Università Roma Tre, durante l'evento Codemotion 2012 (www.codemotion.it). …

Slide del talk tenuto il 24 marzo 2012 presso la Facoltà di Ingegneria dell'Università Roma Tre, durante l'evento Codemotion 2012 (www.codemotion.it).

Il talk riguarda la classe Perl, disponibile su CPAN, Crypt::FNA, suoi metodi ed attributi. Una parte rilevante della presentazione riguarda la descrizione dell'algoritmo generatore dell'insieme di curve frattali {F} e dell'algoritmo crittografico.

Published in Technology
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
    Be the first to like this
No Downloads

Views

Total Views
703
On SlideShare
0
From Embeds
0
Number of Embeds
2

Actions

Shares
Downloads
13
Comments
0
Likes
0

Embeds 0

No embeds

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
    No notes for slide
  • AUTORE
  • AUTORE
  • AUTORE
  • AUTORE
  • AUTORE
  • AUTORE
  • AUTORE
  • AUTORE
  • AUTORE
  • AUTORE
  • AUTORE
  • AUTORE
  • AUTORE
  • AUTORE
  • AUTORE
  • AUTORE
  • AUTORE
  • AUTORE
  • AUTORE
  • AUTORE
  • AUTORE
  • AUTORE
  • AUTORE
  • AUTORE
  • AUTORE
  • AUTORE
  • AUTORE
  • AUTORE
  • AUTORE
  • AUTORE
  • AUTORE
  • AUTORE
  • AUTORE
  • AUTORE
  • AUTORE
  • AUTORE
  • AUTORE
  • AUTORE
  • AUTORE
  • AUTORE
  • AUTORE
  • AUTORE
  • AUTORE
  • AUTORE
  • AUTORE
  • AUTORE
  • AUTORE
  • AUTORE
  • AUTORE
  • AUTORE
  • AUTORE
  • AUTORE
  • AUTORE
  • AUTORE
  • AUTORE
  • AUTORE
  • AUTORE
  • AUTORE
  • AUTORE
  • AUTORE
  • AUTORE
  • AUTORE
  • AUTORE
  • AUTORE
  • AUTORE
  • AUTORE
  • AUTORE
  • AUTORE
  • AUTORE
  • AUTORE
  • AUTORE
  • AUTORE
  • AUTORE
  • AUTORE
  • AUTORE
  • AUTORE
  • AUTORE
  • AUTORE
  • AUTORE
  • AUTORE
  • AUTORE
  • AUTORE
  • AUTORE
  • AUTORE
  • AUTORE
  • AUTORE
  • AUTORE
  • AUTORE
  • AUTORE
  • AUTORE
  • AUTORE
  • AUTORE
  • AUTORE
  • AUTORE
  • AUTORE
  • AUTORE
  • AUTORE
  • AUTORE
  • AUTORE
  • AUTORE
  • AUTORE
  • AUTORE
  • AUTORE
  • AUTORE
  • AUTORE
  • AUTORE
  • AUTORE
  • AUTORE
  • AUTORE
  • AUTORE
  • AUTORE
  • AUTORE
  • AUTORE
  • AUTORE
  • AUTORE
  • AUTORE
  • AUTORE
  • AUTORE
  • AUTORE
  • AUTORE
  • AUTORE
  • AUTORE
  • AUTORE
  • AUTORE
  • AUTORE
  • AUTORE

Transcript

  • 1. Una nuova crittografia frattale - classe Crypt::FNAMario Rossano aka Anaksoftware@netlogica.it – Netlogica Software Lab – community Perl.it
  • 2. Una nuova crittografia frattale - classe Crypt::FNA• Sezione 1: Definizione dell’insieme {F} NomeRossano Mario speaker software@netlogica.it; Perl.it Mail speaker – company or community
  • 3. Una nuova crittografia frattale - classe Crypt::FNA• Sezione 1: Definizione dell’insieme {F}• Sezione 2: Algoritmo crittografico FNA NomeRossano Mario speaker software@netlogica.it; Perl.it Mail speaker – company or community
  • 4. Una nuova crittografia frattale - classe Crypt::FNA• Sezione 1: Definizione dell’insieme {F}• Sezione 2: Algoritmo crittografico FNA• Sezione 3: Classe Crypt::FNA NomeRossano Mario speaker software@netlogica.it; Perl.it Mail speaker – company or community
  • 5. Una nuova crittografia frattale - classe Crypt::FNA• Sezione 1: Definizione dell’insieme {F}• Sezione 2: Algoritmo crittografico FNA• Sezione 3: Classe Crypt::FNA• Sezione 4: Classe Crypt::FNA::Async NomeRossano Mario speaker software@netlogica.it; Perl.it Mail speaker – company or community
  • 6. Una nuova crittografia frattale - classe Crypt::FNA• Sezione 1: Definizione dell’insieme {F}• Sezione 2: Algoritmo crittografico FNA• Sezione 3: Classe Crypt::FNA• Sezione 4: Classe Crypt::FNA::Async• Sezione 5: Applicazioni NomeRossano Mario speaker software@netlogica.it; Perl.it Mail speaker – company or community
  • 7. Una nuova crittografia frattale - classe Crypt::FNA• Sezione 1: Definizione dell’insieme {F}• Sezione 2: Algoritmo crittografico FNA• Sezione 3: Classe Crypt::FNA• Sezione 4: Classe Crypt::FNA::Async• Sezione 5: Applicazioni• Sezione 6: Considerazioni NomeRossano Mario speaker software@netlogica.it; Perl.it Mail speaker – company or community
  • 8. Una nuova crittografia frattale - classe Crypt::FNA• Sezione 1: Definizione dell’insieme {F}• Sezione 2: Algoritmo crittografico FNA• Sezione 3: Classe Crypt::FNA• Sezione 4: Classe Crypt::FNA::Async• Sezione 5: Applicazioni• Sezione 6: Considerazioni• Sezione 7: Conclusioni NomeRossano Mario speaker software@netlogica.it; Perl.it Mail speaker – company or community
  • 9. Una nuova crittografia frattale - classe Crypt::FNA Sezione 1: Definizione dell’insieme {F} NomeRossano Mario speaker software@netlogica.it; Perl.it Mail speaker – company or community
  • 10. Una nuova crittografia frattale - classe Crypt::FNA Sezione 1: Definizione dell’insieme {F}FNA -> Acronimo di Fractal Numerical Algorithm definisce l’insieme di curve frattali {F} NomeRossano Mario speaker software@netlogica.it; Perl.it Mail speaker – company or community
  • 11. Una nuova crittografia frattale - classe Crypt::FNA Sezione 1: Definizione dell’insieme {F}Partiamo da frattali lineari come la Koch curve NomeRossano Mario speaker software@netlogica.it; Perl.it Mail speaker – company or community
  • 12. Una nuova crittografia frattale - classe Crypt::FNA Sezione 1: Definizione dell’insieme {F}Partiamo da frattali lineari come la Koch curveDirezioni dei vari ordini: 0 0, 60, -60, 0 0, 60, -60, 0, 60, 120, 0, 60, -60, 0, -120, -60, 0, 60, -60, 0 NomeRossano Mario speaker software@netlogica.it; Perl.it Mail speaker – company or community
  • 13. Una nuova crittografia frattale - classe Crypt::FNA Sezione 1: Definizione dell’insieme {F}Partiamo da frattali lineari come la Koch curve La cosa che a noi interessa è che ogni numeroDirezioni dei vari ordini: della costruzione triangolare è ottenuta come combinazione delle quantità al rigo superiore 0 0, 60, -60, 0 0, 60, -60, 0, 60, 120, 0, 60, -60, 0, -120, -60, 0, 60, -60, 0 NomeRossano Mario speaker software@netlogica.it; Perl.it Mail speaker – company or community
  • 14. Una nuova crittografia frattale - classe Crypt::FNA Sezione 1: Definizione dell’insieme {F}Partiamo da frattali lineari come la Koch curve osserviamo che possiamo esprimere la proprietà di auto-similitudine della curva di Koch grazie ad una costruzione simile, combinandoDirezioni dei vari ordini: tra loro i valori della base e poi con quelli derivati dalla combinazione e così via iterando il procedimento. 0 0, 60, -60, 0 0, 60, -60, 0, 60, 120, 0, 60, -60, 0, -120, -60, 0, 60, -60, 0 NomeRossano Mario speaker software@netlogica.it; Perl.it Mail speaker – company or community
  • 15. Una nuova crittografia frattale - classe Crypt::FNA Sezione 1: Definizione dell’insieme {F}Scrivendo la successione delle direzioni come glielementi di un vettore leggiamo la proprietà principaledella costruzione: il primo addendo è il ramo su cui siitera il procedimento di costruzione. Il secondo addendoè la posizione della direzione che stiamo calcolando,nell’ambito di quel ramo.a(0) = a(0) + a(0)a(1) = a(0) + a(1) I RAMOa(2) = a(0) + a(2)a(3) = a(0) + a(3) NomeRossano Mario speaker software@netlogica.it; Perl.it Mail speaker – company or community
  • 16. Una nuova crittografia frattale - classe Crypt::FNA Sezione 1: Definizione dell’insieme {F}Scrivendo la successione delle direzioni come glielementi di un vettore leggiamo la proprietà principaledella costruzione: il primo addendo è il ramo su cui siitera il procedimento di costruzione. Il secondo addendoè la posizione della direzione che stiamo calcolando,nell’ambito di quel ramo.a(4) = a(1) + a(0)a(5) = a(1) + a(1) II RAMOa(6) = a(1) + a(2)a(7) = a(1) + a(3) NomeRossano Mario speaker software@netlogica.it; Perl.it Mail speaker – company or community
  • 17. Una nuova crittografia frattale - classe Crypt::FNA Sezione 1: Definizione dell’insieme {F}Scrivendo la successione delle direzioni come glielementi di un vettore leggiamo la proprietà principaledella costruzione: il primo addendo è il ramo su cui siitera il procedimento di costruzione. Il secondo addendoè la posizione della direzione che stiamo calcolando,nell’ambito di quel ramo.a(8) = a(2) + a(0)a(9) = a(2) + a(1) III RAMOa(10)= a(2) + a(2)a(11)= a(2) + a(3) NomeRossano Mario speaker software@netlogica.it; Perl.it Mail speaker – company or community
  • 18. Una nuova crittografia frattale - classe Crypt::FNA Sezione 1: Definizione dell’insieme {F}Scrivendo la successione delle direzioni come glielementi di un vettore leggiamo la proprietà principaledella costruzione: il primo addendo è il ramo su cui siitera il procedimento di costruzione. Il secondo addendoè la posizione della direzione che stiamo calcolando,nell’ambito di quel ramo.a(12)= a(3) + a(0)a(13)= a(3) + a(1) IV RAMOa(14)= a(3) + a(2)a(15)= a(3) + a(3) NomeRossano Mario speaker software@netlogica.it; Perl.it Mail speaker – company or community
  • 19. Una nuova crittografia frattale - classe Crypt::FNA Sezione 1: Definizione dell’insieme {F}Il ramo cui appartiene la direzione k-esima è: G(k) = int(k/Ro) NomeRossano Mario speaker software@netlogica.it; Perl.it Mail speaker – company or community
  • 20. Una nuova crittografia frattale - classe Crypt::FNA Sezione 1: Definizione dell’insieme {F}Il ramo cui appartiene la direzione k-esima è: G(k) = int(k/Ro)La posizione della direzione k-esima nel ramo è: P(k) = k-int(k/Ro) = k-G(k) NomeRossano Mario speaker software@netlogica.it; Perl.it Mail speaker – company or community
  • 21. Una nuova crittografia frattale - classe Crypt::FNA Sezione 1: Definizione dell’insieme {F}Il ramo cui appartiene la direzione k-esima è: G(k) = int(k/Ro)La posizione della direzione k-esima nel ramo è: P(k) = k-int(k/Ro) = k-G(k)In definitiva, il valore della direzione k-esima è: a(k)=a(G(k)) + a(P(k)) NomeRossano Mario speaker software@netlogica.it; Perl.it Mail speaker – company or community
  • 22. Una nuova crittografia frattale - classe Crypt::FNA Sezione 1: Definizione dell’insieme {F} a(k)=a(G(k)) + a(P(k))Notiamo che questa relazione è generale, indipendente dal numero diparametri base della curva. NomeRossano Mario speaker software@netlogica.it; Perl.it Mail speaker – company or community
  • 23. Una nuova crittografia frattale - classe Crypt::FNA Sezione 1: Definizione dell’insieme {F} a(k)=a(G(k)) + a(P(k))Con questa relazione diventa semplice ricavare il grafico della curva, potendonecalcolare la direzione dei segmenti approssimanti successivi ed implementandopoi un sistema di turtle graphics per il grafico:while ($k<$Ro**$r) { $a [$k]=$a[int($k/$Ro)]+$a[$k-int($k/$Ro)]; $k++}Di seguito alcune curve appartenenti ad {F} NomeRossano Mario speaker software@netlogica.it; Perl.it Mail speaker – company or community
  • 24. Una nuova crittografia frattale - classe Crypt::FNA Sezione 1: Definizione dell’insieme {F} (56,-187, 215, 64) (0,90,-60,-90,60) NomeRossano Mario speaker software@netlogica.it; Perl.it Mail speaker – company or community
  • 25. Una nuova crittografia frattale - classe Crypt::FNA Sezione 1: Definizione dell’insieme {F} (56,-177,225,-164) (56,-77,215,-64,60) NomeRossano Mario speaker software@netlogica.it; Perl.it Mail speaker – company or community
  • 26. Una nuova crittografia frattale - classe Crypt::FNA Sezione 1: Definizione dell’insieme {F} (0,90,0,-90) (0,90,60,-90,120) NomeRossano Mario speaker software@netlogica.it; Perl.it Mail speaker – company or community
  • 27. Una nuova crittografia frattale - classe Crypt::FNA Sezione 1: Definizione dell’insieme {F} (56,-177,225,164) (21,-31,100,-79) NomeRossano Mario speaker software@netlogica.it; Perl.it Mail speaker – company or community
  • 28. Una nuova crittografia frattale - classe Crypt::FNA Sezione 1: Definizione dell’insieme {F} (56,-67,215,-64,60,45) (56,-67,210,-64,60,70) NomeRossano Mario speaker software@netlogica.it; Perl.it Mail speaker – company or community
  • 29. Una nuova crittografia frattale - classe Crypt::FNA Sezione 2: Algoritmo crittografico FNA NomeRossano Mario speaker software@netlogica.it; Perl.it Mail speaker – company or community
  • 30. Una nuova crittografia frattale - classe Crypt::FNA Sezione 2: Algoritmo crittografico FNA1 i dati sono memorizzati in byte: qualunque tipo di file vada adaprire, il suo contenuto è certamente una sequenza ben precisa dibytes. NomeRossano Mario speaker software@netlogica.it; Perl.it Mail speaker – company or community
  • 31. Una nuova crittografia frattale - classe Crypt::FNA Sezione 2: Algoritmo crittografico FNA1 i dati sono memorizzati in byte: qualunque tipo di file vada adaprire, il suo contenuto è certamente una sequenza ben precisa dibytes. Un byte è costituito da 8 bit, per cui il suo valore deve appartenereall’insieme degli interi compresi tra 0 e 255 (256 elementicomplessivamente). Seguo quindi la curva frattale scelta,dell’insieme {F}, per un numero di vertici uguale a quella del valoredel byte da criptare. Le coordinate cartesiane di quel verticerappresentano il crittogramma di quel byte. NomeRossano Mario speaker software@netlogica.it; Perl.it Mail speaker – company or community
  • 32. Una nuova crittografia frattale - classe Crypt::FNA Sezione 2: Algoritmo crittografico FNA2 Le curve {F} hanno un andamento che, in generale, si conoscesolo calcolandolo ma lo si può calcolare solo se sono noti i parametriRo genitori che sono parti fondamentali della chiave: è proprio inquesto il cuore del sistema crittografico. NomeRossano Mario speaker software@netlogica.it; Perl.it Mail speaker – company or community
  • 33. Una nuova crittografia frattale - classe Crypt::FNA Sezione 2: Algoritmo crittografico FNA2 Le curve {F} hanno un andamento che, in generale, si conoscesolo calcolandolo ma lo si può calcolare solo se sono noti i parametriRo genitori che sono parti fondamentali della chiave: è proprio inquesto il cuore del sistema crittografico.Come altri sistemi di cifratura simmetrici, ad es. DES e AES, FNA hachiave segreta ma a differenza dei predetti Data Encryption Standard(che ha una chiave di 56 bit) ed Advanced Encryption Standard (cheha una chiave compresa tra i 128 ed i 256 bit), Fractal NumericalAlgorithm ha una chiave in bit lunga quanto si vuole: non ci sonorestrizioni sul numero e valore delle direzioni della base Ro. NomeRossano Mario speaker software@netlogica.it; Perl.it Mail speaker – company or community
  • 34. Una nuova crittografia frattale - classe Crypt::FNA Sezione 2: Algoritmo crittografico FNA3 criptareOgni byte viene crittografato mediante le coordinate del vertice dellacurva frattale, ottenuto partendo dal successivo a quelloprecedentemente valutato, saltando di un numero ulteriore di verticiuguale al magic number più il valore del byte da crittografare. NomeRossano Mario speaker software@netlogica.it; Perl.it Mail speaker – company or community
  • 35. Una nuova crittografia frattale - classe Crypt::FNA Sezione 2: Algoritmo crittografico FNA4 decriptareSi segue la curva frattale verificando, di vertice in vertice, che lecoordinate corrispondano a quelle del crittogramma. Il valore del byteoriginale viene ricostruito avendo contato quanti vertici si sonosucceduti per arrivare all’uguaglianza dei due valori, dall’ultimauguaglianza incontrata. Il numero di vertici, ridotto del magic numbersommato all’unità, rappresenta il valore del byte n-esimo. NomeRossano Mario speaker software@netlogica.it; Perl.it Mail speaker – company or community
  • 36. Una nuova crittografia frattale - classe Crypt::FNA Sezione 2: Algoritmo crittografico FNA5 sale crittograficoSi sfrutta la proprietà di pseudocasualità insita nelle curve {F}, per cuia differenze iniziali ad un certo ordine di grandezza seguonodifferenze finali ad un ordine di grandezza maggiore (c.d. effettofarfalla). NomeRossano Mario speaker software@netlogica.it; Perl.it Mail speaker – company or community
  • 37. Una nuova crittografia frattale - classe Crypt::FNA Sezione 2: Algoritmo crittografico FNA5 sale crittograficoSi sfrutta la proprietà di pseudocasualità insita nelle curve {F}, per cuia differenze iniziali ad un certo ordine di grandezza seguonodifferenze finali ad un ordine di grandezza maggiore (c.d. effettofarfalla).Si realizza aggiungendo prima del file da crittografare, una sequenzarandom, in modo da modificare tutta la sequenza successiva. NomeRossano Mario speaker software@netlogica.it; Perl.it Mail speaker – company or community
  • 38. Una nuova crittografia frattale - classe Crypt::FNA Sezione 2: Algoritmo crittografico FNA5 sale crittograficoPer fare questo, l’algoritmo generatore del sale deve produrre valoristatisticamente aderenti ad una sequenza casuale ovvero unasequenza che, statisticamente, può essere interpretata come tale(con una distribuzione simile ad altre sequenze casuali). NomeRossano Mario speaker software@netlogica.it; Perl.it Mail speaker – company or community
  • 39. Una nuova crittografia frattale - classe Crypt::FNA Sezione 2: Algoritmo crittografico FNA5 sale crittograficoPer fare questo, l’algoritmo generatore del sale deve produrre valoristatisticamente aderenti ad una sequenza casuale ovvero unasequenza che, statisticamente, può essere interpretata come tale(con una distribuzione simile ad altre sequenze casuali).Si è dunque scelto “l’istante” in cui viene invocato il calcolo del sale,evento casuale, come uno dei fattori di input mentre il “magicnumber” è l’altro. NomeRossano Mario speaker software@netlogica.it; Perl.it Mail speaker – company or community
  • 40. Una nuova crittografia frattale - classe Crypt::FNA Sezione 2: Algoritmo crittografico FNA5 sale crittograficoAl momento dell’invocazione del calcolo, si legge il numero disecondi trascorsi dalla mezzanotte del 1 gennaio 1970 (epochdate). Si calcola poi, tramite la funzione “rand” (pseudo casuale), unnumero compreso tra 0 ed 1. NomeRossano Mario speaker software@netlogica.it; Perl.it Mail speaker – company or community
  • 41. Una nuova crittografia frattale - classe Crypt::FNA Sezione 2: Algoritmo crittografico FNA5 sale crittograficoSi calcola poi il rapporto tra il numero dei secondi (casuale) ed ilnumero restituito dalla funzione random. Da questo si preleva unnumero di cifre pari al quadrato del magic number. Se il quadrato delmagic number è superiore al numero di cifre del quoziente primacalcolato, si itera il procedimento, ricalcolando “time”, “rand” e l’interodel rapporto e concatenando la nuova stringa alla precedente. NomeRossano Mario speaker software@netlogica.it; Perl.it Mail speaker – company or community
  • 42. Una nuova crittografia frattale - classe Crypt::FNA Sezione 2: Algoritmo crittografico FNA5 sale crittograficoDall’iterazione si esce quando la lunghezza del salt è pari al quadratodel magic number. Questa sequenza numerica, casuale, è il nostrosale crittografico. NomeRossano Mario speaker software@netlogica.it; Perl.it Mail speaker – company or community
  • 43. Una nuova crittografia frattale - classe Crypt::FNA Sezione 2: Algoritmo crittografico FNA5 sale crittograficoDall’iterazione si esce quando la lunghezza del salt è pari al quadratodel magic number. Questa sequenza numerica, casuale, è il nostrosale crittografico.In questo modo, due cifrature dello stesso dato, daranno luogo acrittogrammi completamente differenti e soggetti all’effetto farfallapoiché le curve {F} hanno un andamento coerente alla definizione dicaos deterministico. NomeRossano Mario speaker software@netlogica.it; Perl.it Mail speaker – company or community
  • 44. Una nuova crittografia frattale - classe Crypt::FNA Sezione 2: Algoritmo crittografico FNA5 sale crittograficoIn fase di decriptazione, grazie alla chiave (l’attributo magic numbernello specifico), l’algoritmo è in grado di valutare quali vertici inizialidel crittogramma scartare, partendo poi dall’ultimo di questi per lavalutazione dei bytes successivi ricostruendo il dato in chiaro. NomeRossano Mario speaker software@netlogica.it; Perl.it Mail speaker – company or community
  • 45. Una nuova crittografia frattale - classe Crypt::FNA Sezione 3: Classe Crypt::FNA NomeRossano Mario speaker software@netlogica.it; Perl.it Mail speaker – company or community
  • 46. Una nuova crittografia frattale - classe Crypt::FNA Sezione 3: Crypt::FNAMetodi della classe PerlCrypt::FNA->new NomeRossano Mario speaker software@netlogica.it; Perl.it Mail speaker – company or community
  • 47. Una nuova crittografia frattale - classe Crypt::FNA Sezione 3: Crypt::FNAMetodi della classe PerlCrypt::FNA->newCrypt::FNA->make_fract NomeRossano Mario speaker software@netlogica.it; Perl.it Mail speaker – company or community
  • 48. Una nuova crittografia frattale - classe Crypt::FNA Sezione 3: Crypt::FNAMetodi della classe PerlCrypt::FNA->newCrypt::FNA->make_fractCrypt::FNA->encrypt_file NomeRossano Mario speaker software@netlogica.it; Perl.it Mail speaker – company or community
  • 49. Una nuova crittografia frattale - classe Crypt::FNA Sezione 3: Crypt::FNAMetodi della classe PerlCrypt::FNA->newCrypt::FNA->make_fractCrypt::FNA->encrypt_fileCrypt::FNA->decrypt_file NomeRossano Mario speaker software@netlogica.it; Perl.it Mail speaker – company or community
  • 50. Una nuova crittografia frattale - classe Crypt::FNA Sezione 3: Crypt::FNAMetodi della classe PerlCrypt::FNA->newCrypt::FNA->make_fractCrypt::FNA->encrypt_fileCrypt::FNA->decrypt_fileCrypt::FNA->encrypt_scalar NomeRossano Mario speaker software@netlogica.it; Perl.it Mail speaker – company or community
  • 51. Una nuova crittografia frattale - classe Crypt::FNA Sezione 3: Crypt::FNAMetodi della classe PerlCrypt::FNA->newCrypt::FNA->make_fractCrypt::FNA->encrypt_fileCrypt::FNA->decrypt_fileCrypt::FNA->encrypt_scalarCrypt::FNA->decrypt_scalar NomeRossano Mario speaker software@netlogica.it; Perl.it Mail speaker – company or community
  • 52. Una nuova crittografia frattale - classe Crypt::FNA Sezione 3: Crypt::FNAMetodi della classe PerlCrypt::FNA->newCrypt::FNA->make_fractCrypt::FNA->encrypt_fileCrypt::FNA->decrypt_fileCrypt::FNA->encrypt_scalarCrypt::FNA->decrypt_scalarCrypt::FNA->mac NomeRossano Mario speaker software@netlogica.it; Perl.it Mail speaker – company or community
  • 53. Una nuova crittografia frattale - classe Crypt::FNA Sezione 3: Crypt::FNAMetodo “new”my $krypto=Crypt::FNA->new() NomeRossano Mario speaker software@netlogica.it; Perl.it Mail speaker – company or community
  • 54. Una nuova crittografia frattale - classe Crypt::FNA Sezione 3: Crypt::FNAMetodo “new”my $krypto=Crypt::FNA->new()my $krypto=Crypt::FNA->new({ r=> 7, angle => [56,-187, 215,-64], square => 4096, background => [255,255,255], foreground => [0,0,0], magic => 3, salted => ‘true’}) NomeRossano Mario speaker software@netlogica.it; Perl.it Mail speaker – company or community
  • 55. Una nuova crittografia frattale - classe Crypt::FNA Sezione 3: Crypt::FNAMetodo “new”: attributo “r” – ordine della curva di {F}Indica il livello di approfondimento nel calcolo della curva. E’ un numero maggiore dizero, non necessariamente intero. Valore di default: 7 NomeRossano Mario speaker software@netlogica.it; Perl.it Mail speaker – company or community
  • 56. Una nuova crittografia frattale - classe Crypt::FNA Sezione 3: Crypt::FNAMetodo “new”: attributo “angle” – direzioni della base di {F}Sono le direzioni su cui si applica l’algoritmo di costruzione: su queste si determina lastruttura base autosimile della curva di {F}. Le direzioni sono espresse nel sistemasessadecimale, con valori compresi tra -360 e 360 (ovvero da 0 a 360). Valore di default: (56,-187, 215,-64) NomeRossano Mario speaker software@netlogica.it; Perl.it Mail speaker – company or community
  • 57. Una nuova crittografia frattale - classe Crypt::FNA Sezione 3: Crypt::FNAMetodo “new”: attributo “square” – lato quadratocontenitoreE’ la lunghezza del lato del quadrato dal cui centro parte la costruzione della curva. Lecoordinate del suo vertice in alto a sinistra sono, canonicamente, (0,0). Valore di default: 4096 NomeRossano Mario speaker software@netlogica.it; Perl.it Mail speaker – company or community
  • 58. Una nuova crittografia frattale - classe Crypt::FNA Sezione 3: Crypt::FNAMetodo “new”: attributo “background” – colore fondo PNGE’ il colore RGB di fondo del file PNG contenente il disegno della curva. La notazione èdecimale, quindi con valori che vanno da 0 a 255. Valore di default: (255,255,255) NomeRossano Mario speaker software@netlogica.it; Perl.it Mail speaker – company or community
  • 59. Una nuova crittografia frattale - classe Crypt::FNA Sezione 3: Crypt::FNAMetodo “new”: attributo “foreground” – colore primo pianoE’ il colore RGB del tratto nel file PNG contenente il disegno della curva. La notazione èdecimale, quindi con valori che vanno da 0 a 255. Valore di default: (0,0,0) NomeRossano Mario speaker software@netlogica.it; Perl.it Mail speaker – company or community
  • 60. Una nuova crittografia frattale - classe Crypt::FNA Sezione 3: Crypt::FNAMetodo “new”: attributo “magic number” crittografiadiscretaIndica il numero di vertici della curva da saltare in fase di cifratura e decifratura:essendo lalgoritmo una funzione continua sui vertici, saltandone alcuni questa restacontinua su punti isolati dell’insieme dei vertici, fornendo una crittografia discreta suivertici. Valore di default: 3 NomeRossano Mario speaker software@netlogica.it; Perl.it Mail speaker – company or community
  • 61. Una nuova crittografia frattale - classe Crypt::FNA Sezione 3: Crypt::FNAMetodo “new”: attributo “salted” il sale crittograficoIl ‘salt’ è una sequenza casuale, che ha lo scopo ultimo di influenzare direttamente ilcrittogramma, in modo che cifrature dello stesso dato, danno luogo a crittogrammidifferenti.Il valore di default è ‘false’ per retrocompatibilità con le versioni di Crypt::FNAantecedenti alla 0.24 – prima versione che lo implementa Valore di default: false NomeRossano Mario speaker software@netlogica.it; Perl.it Mail speaker – company or community
  • 62. Una nuova crittografia frattale - classe Crypt::FNA Sezione 3: Crypt::FNAMetodo “make_fract” il disegno della curvaQuesto metodo è senzaltro il più suggestivo e permette di "toccare" le curve cheverranno poi applicate negli algoritmi crittografici.Il file grafico di output è in formato PNG (Portable Network Graphic), fruibile da unqualunque browser come dai più diversi software di grafica. NomeRossano Mario speaker software@netlogica.it; Perl.it Mail speaker – company or community
  • 63. Una nuova crittografia frattale - classe Crypt::FNA Sezione 3: Crypt::FNAMetodo “make_fract” il disegno della curvaLa sintassi è: $krypto->make_fract($pngfile,$zoom)$pngfile è il nome del file png - senza estensione "png" che viene inseritaautomaticamente.$zoom è la scala del disegno - maggiore di zero. Valore di default: 1Limmagine prodotta è in un quadrato di lato square. NomeRossano Mario speaker software@netlogica.it; Perl.it Mail speaker – company or community
  • 64. Una nuova crittografia frattale - classe Crypt::FNA Sezione 3: Crypt::FNAMetodo “encrypt_file”Questo metodo cripta il file di input in quello di output.La sintassi è: $krypto->encrypt_file($name_plain_file,$name_encrypted_file)Il file di input di qualsivoglia formato sarà letto e cifrato, tramite la curva {F}. NomeRossano Mario speaker software@netlogica.it; Perl.it Mail speaker – company or community
  • 65. Una nuova crittografia frattale - classe Crypt::FNA Sezione 3: Crypt::FNAMetodo “encrypt_file”L’aspetto di un file cifrato è simile al seguente:-806.16701617 4296.950584 -1163.3897453 4378.30613408 -1253.81513894 4361.33265404 -1502.80711437 4636.89514523-1371.10557976 4745.56050632 -1230.07749379 4968.48069209 -1338.39851924 5248.88785964 -917.21821497 5429.36645491-773.44592091 5696.62911696 -692.72801005 5885.46154004 -988.27897105 5885.418198 -1248.99379997 6171.71101067 -830.483301436377.55135044 -768.07453852 6493.40995382 -290.38619797 6703.79926248 -101.38261857 6641.39653224 329.010957946547.35282987 491.23460593 6672.15350589 682.15153937 6767.07332641 951.17643798 7125.45527124 844.47157379 7301.13742586616.45930112 7293.99200882 844.26353513 7262.78340711 1211.3200562 7315.25004987 1474.41515451 7121.21394711 1951.759739927224.47233263 2176.20365976 6962.04147204 2547.88708591 6998.13655185 2781.82594976 6972.85084038 3056.529052527371.28466715 3037.53030053 7569.06437014 3048.49593738 7320.32093005 3389.66342779 7357.81470144 3676.235265797708.87987244 3755.43863759 7814.8354795 3435.5290489 8296.58426972 3441.10117125 8627.97877198 3412.2773365 8623.60585853362.87465115 8767.32280898 3260.65143202 8583.97947961 2890.71868372 8474.68032897 2726.83436885 8650.055885332718.8481018 9045.95222039 2669.00976899 9254.66114943 2644.06562016 9103.68182141 3127.66020707 9113.430392783191.47856428 9188.88465234 3207.82184971 9202.57034881 3478.33454467 8945.6121183 3832.00806714 8945.628040714080.86384299 9320.62189286 4289.2595779 9439.78195562 4021.13116501 9644.36385638 4311.34336432 9554.3477728 NomeRossano Mario speaker software@netlogica.it; Perl.it Mail speaker – company or community
  • 66. Una nuova crittografia frattale - classe Crypt::FNA Sezione 3: Crypt::FNAMetodo “encrypt_file”Il file viene “frullato” in unaragnatela simile alla seguente. NomeRossano Mario speaker software@netlogica.it; Perl.it Mail speaker – company or community
  • 67. Una nuova crittografia frattale - classe Crypt::FNA Sezione 3: Crypt::FNAMetodo “decrypt_file”decripta il file di input (che è quello di output del metodo encrypt_file) in quello di output(che è quello di input del metodo encrypt_file).La sintassi è: $krypto->decrypt_file($name_encrypted_file,$name_decrypted_file)Il file di input sarà letto e decodificato, tramite la curva {F}, nel file di output. NomeRossano Mario speaker software@netlogica.it; Perl.it Mail speaker – company or community
  • 68. Una nuova crittografia frattale - classe Crypt::FNA Sezione 3: Crypt::FNAMetodo “encrypt_scalar”Il metodo encrypt_scalar cifra stringhe: il risultato dell’operazione di cifratura è unvettore contenente il crittogramma.La sintassi è: @encrypted_scalar=$krypto->encrypt_scalar($this_string)Il programmatore che preveda un salvataggio password con FNA, farà bene adimpostare salted => ‘true’ NomeRossano Mario speaker software@netlogica.it; Perl.it Mail speaker – company or community
  • 69. Una nuova crittografia frattale - classe Crypt::FNA Sezione 3: Crypt::FNAMetodo “decrypt_scalar”Il metodo decrypt_scalar ricostruisce il dato in chiaro dal risultato dell’operazione dicifratura scalari.La sintassi è: $decrypted_scalar=$krypto->decrypt_scalar(@encrypted_scalar) NomeRossano Mario speaker software@netlogica.it; Perl.it Mail speaker – company or community
  • 70. Una nuova crittografia frattale - classe Crypt::FNA Sezione 3: Crypt::FNAMetodo “mac” – digest con FNAL’ “hash” è rappresentato dalle coordinate dell’ultimo vertice della curva {F} definitatramite il metodo “new”La sintassi è: my $mac=$krypto->mac($name_plain_file) NomeRossano Mario speaker software@netlogica.it; Perl.it Mail speaker – company or community
  • 71. Una nuova crittografia frattale - classe Crypt::FNA Sezione 3: Crypt::FNAMetodo “mac” – digest con FNATramite questo metodo, Crypt::FNA assolve alle specifiche degli algoritmi digest eprecisamente:1. ha lunghezza fissa che lo rende facile da manipolare e da trasmettere (128bit); NomeRossano Mario speaker software@netlogica.it; Perl.it Mail speaker – company or community
  • 72. Una nuova crittografia frattale - classe Crypt::FNA Sezione 3: Crypt::FNAMetodo “mac” – digest con FNATramite questo metodo, Crypt::FNA assolve alle specifiche degli algoritmi digest eprecisamente:1. ha lunghezza fissa che lo rende facile da manipolare e da trasmettere (128bit);2. è estremamente improbabile che due messaggi diversi abbiano lo stesso digest; NomeRossano Mario speaker software@netlogica.it; Perl.it Mail speaker – company or community
  • 73. Una nuova crittografia frattale - classe Crypt::FNA Sezione 3: Crypt::FNAMetodo “mac” – digest con FNATramite questo metodo, Crypt::FNA assolve alle specifiche degli algoritmi digest eprecisamente:1. ha lunghezza fissa che lo rende facile da manipolare e da trasmettere (128bit);2. è estremamente improbabile che due messaggi diversi abbiano lo stesso digest;3. non è invertibile, cioè non esiste un algoritmo noto che, dato un digest, sia in grado digenerare un messaggio che gli corrisponde; in altri termini, è estremamente difficileprodurre un messaggio che abbia un digest predeterminato. NomeRossano Mario speaker software@netlogica.it; Perl.it Mail speaker – company or community
  • 74. Una nuova crittografia frattale - classe Crypt::FNA Sezione 4: Crypt::FNA::Async NomeRossano Mario speaker software@netlogica.it; Perl.it Mail speaker – company or community
  • 75. Una nuova crittografia frattale - classe Crypt::FNA Sezione 4: Crypt::FNA::AsyncClasse Crypt::FNA::Async – Sincrono contro AsincronoCrypt::FNA::Async consente di elaborare in parallelo cifratura e decifratura di files,avvantaggiandosi delle CPU multicore e/o quelle che supportano hypertrading. NomeRossano Mario speaker software@netlogica.it; Perl.it Mail speaker – company or community
  • 76. Una nuova crittografia frattale - classe Crypt::FNA Sezione 4: Crypt::FNA::AsyncClasse Crypt::FNA::Async – Sincrono contro AsincronoCrypt::FNA::Async consente di elaborare in parallelo cifratura e decifratura di files,avvantaggiandosi delle CPU multicore e/o quelle che supportano hypertrading.Nel caso ideale, verranno elaborati, in parallelo, un numero di files pari al numerodi core disponibili. NomeRossano Mario speaker software@netlogica.it; Perl.it Mail speaker – company or community
  • 77. Una nuova crittografia frattale - classe Crypt::FNA Sezione 4: Crypt::FNA::AsyncClasse Crypt::FNA::Async – Sincrono contro AsincronoCrypt::FNA::Async consente di elaborare in parallelo cifratura e decifratura di files,avvantaggiandosi delle CPU multicore e/o quelle che supportano hypertrading.Nel caso ideale, verranno elaborati, in parallelo, un numero di files pari al numerodi core disponibili.Se il sistema non supporta i threads, Crypt::FNA::Async effettuerà comunquel’elaborazione in serie (quindi sincrona anziché asincrona) NomeRossano Mario speaker software@netlogica.it; Perl.it Mail speaker – company or community
  • 78. Una nuova crittografia frattale - classe Crypt::FNA Sezione 4: Crypt::FNA::AsyncClasse Crypt::FNA::Async – Sincrono contro AsincronoMetodiCrypt::FNA::Async->new NomeRossano Mario speaker software@netlogica.it; Perl.it Mail speaker – company or community
  • 79. Una nuova crittografia frattale - classe Crypt::FNA Sezione 4: Crypt::FNA::AsyncClasse Crypt::FNA::Async – Sincrono contro AsincronoMetodiCrypt::FNA::Async->newCrypt::FNA::Async->encrypt_files NomeRossano Mario speaker software@netlogica.it; Perl.it Mail speaker – company or community
  • 80. Una nuova crittografia frattale - classe Crypt::FNA Sezione 4: Crypt::FNA::AsyncClasse Crypt::FNA::Async – Sincrono contro AsincronoMetodiCrypt::FNA::Async->newCrypt::FNA::Async->encrypt_filesCrypt::FNA::Async->decrypt_files NomeRossano Mario speaker software@netlogica.it; Perl.it Mail speaker – company or community
  • 81. Una nuova crittografia frattale - classe Crypt::FNA Sezione 4: Crypt::FNA::AsyncClasse Crypt::FNA::Async – metodo “new”Il metodo new di Crypt::FNA::Async è analogo all’omonimo di Crypt::FNA.my $krypto=Crypt::FNA::Async->new()my $krypto=Crypt::FNA::Async->new({ r=> 7, angle => [56,-187, 215,-64], square => 4096, magic => 3, salted => ‘true’}) NomeRossano Mario speaker software@netlogica.it; Perl.it Mail speaker – company or community
  • 82. Una nuova crittografia frattale - classe Crypt::FNA Sezione 4: Crypt::FNA::AsyncClasse Crypt::FNA::Async – metodo “encrypt_files”Il metodo accetta in ingresso un array contenente i nomi dei files, in chiaro, da criptare, quindiopera su questi e restituisce i files criptati con nuova estensione ‘.fna’La sintassi è: $krypto->encrypt_files(@files_to_encrypt)I files di input, di qualsivoglia formato, saranno letti e cifrati, tramite la curva {F} NomeRossano Mario speaker software@netlogica.it; Perl.it Mail speaker – company or community
  • 83. Una nuova crittografia frattale - classe Crypt::FNA Sezione 4: Crypt::FNA::AsyncClasse Crypt::FNA::Async – metodo “decrypt_files”Il metodo accetta in ingresso un array contenente i nomi dei files criptati, quindi opera su questi erestituisce i files in chiaro.La sintassi è: $krypto->decrypt_files(@files_to_decrypt)I files di input, di qualsivoglia formato, saranno letti e decifrati, tramite la curva {F}. NomeRossano Mario speaker software@netlogica.it; Perl.it Mail speaker – company or community
  • 84. Una nuova crittografia frattale - classe Crypt::FNA Sezione 5: Applicazioni NomeRossano Mario speaker software@netlogica.it; Perl.it Mail speaker – company or community
  • 85. Una nuova crittografia frattale - classe Crypt::FNA Sezione 5: ApplicazioniLe applicazioni sono ovviamente molteplici, di seguito alcuni esempi:3.Salvataggio di password NomeRossano Mario speaker software@netlogica.it; Perl.it Mail speaker – company or community
  • 86. Una nuova crittografia frattale - classe Crypt::FNA Sezione 5: ApplicazioniLe applicazioni sono ovviamente molteplici, di seguito alcuni esempi:3.Salvataggio di password5.Storage di documenti criptati su server remoto NomeRossano Mario speaker software@netlogica.it; Perl.it Mail speaker – company or community
  • 87. Una nuova crittografia frattale - classe Crypt::FNA Sezione 5: ApplicazioniLe applicazioni sono ovviamente molteplici, di seguito alcuni esempi:3.Salvataggio di password5.Storage di documenti criptati su server remoto7.Database remoto criptato, accessibile solo fornendo la chiave dal client NomeRossano Mario speaker software@netlogica.it; Perl.it Mail speaker – company or community
  • 88. Una nuova crittografia frattale - classe Crypt::FNA Sezione 5: ApplicazioniLe applicazioni sono ovviamente molteplici, di seguito alcuni esempi:3.Salvataggio di password5.Storage di documenti criptati su server remoto7.Database remoto criptato, accessibile solo fornendo la chiave dal client9.Verifiche di autenticità di dati trasmessi in una comunicazione NomeRossano Mario speaker software@netlogica.it; Perl.it Mail speaker – company or community
  • 89. Una nuova crittografia frattale - classe Crypt::FNA Sezione 5: ApplicazioniLe applicazioni sono ovviamente molteplici, di seguito alcuni esempi:3.Salvataggio di password5.Storage di documenti criptati su server remoto7.Database remoto criptato, accessibile solo fornendo la chiave dal client9.Verifiche di autenticità di dati trasmessi in una comunicazione11.ecc. NomeRossano Mario speaker software@netlogica.it; Perl.it Mail speaker – company or community
  • 90. Una nuova crittografia frattale - classe Crypt::FNA Sezione 5: ApplicazioniLe applicazioni sono ovviamente molteplici, di seguito alcuni esempi:•Salvataggio di password•Storage di documenti criptati su server remoto•Database remoto criptato, accessibile solo fornendo la chiave dal client•Verifiche di autenticità di dati trasmessi in una comunicazione•ecc. NomeRossano Mario speaker software@netlogica.it; Perl.it Mail speaker – company or community
  • 91. Una nuova crittografia frattale - classe Crypt::FNA Sezione 5: ApplicazioniMAC -> Message Authentication CodeL’autenticazione dei messaggi garantisce l’integrità dell’informazione anche inpresenza di un avversario attivo che invia dati sensati NomeRossano Mario speaker software@netlogica.it; Perl.it Mail speaker – company or community
  • 92. Una nuova crittografia frattale - classe Crypt::FNA Sezione 5: ApplicazioniMAC -> Message Authentication Code Detti: K la chiave FNA scelta per l’autenticazione A l’applicazione dell’algoritmo FNA di Sender V l’applicazione dell’algoritmo FNA di Receiver m il dato da autenticare Calcoliamo Ak(m) – coordinate ultimo vertice FNA NomeRossano Mario speaker software@netlogica.it; Perl.it Mail speaker – company or community
  • 93. Una nuova crittografia frattale - classe Crypt::FNA Sezione 5: ApplicazioniMAC -> Message Authentication Code Calcolato Ak(m) – coordinate ultimo vertice FNA 1. Sender invia a Receiver la coppia (m, Ak(m)) 2. Receiver – che conosce K ed ha ricevuto m – calcola Vk(m) NomeRossano Mario speaker software@netlogica.it; Perl.it Mail speaker – company or community
  • 94. Una nuova crittografia frattale - classe Crypt::FNA Sezione 5: ApplicazioniMAC -> Message Authentication CodeSe Attacker modifica il messaggio, ignorandola chiave K, non potrà inviare a Receiver ilMAC corretto che quindi ignorerà il messaggioedulcorato NomeRossano Mario speaker software@netlogica.it; Perl.it Mail speaker – company or community
  • 95. Una nuova crittografia frattale - classe Crypt::FNA Sezione 5: ApplicazioniMAC -> Message Authentication CodeIl metodo mac di Crypt::FNA effettua proprio ilcalcolo qui indicato con Ak(m), consentendol’implementazione di questo diagramma diflusso. NomeRossano Mario speaker software@netlogica.it; Perl.it Mail speaker – company or community
  • 96. Una nuova crittografia frattale - classe Crypt::FNA Sezione 6: Considerazioni NomeRossano Mario speaker software@netlogica.it; Perl.it Mail speaker – company or community
  • 97. Una nuova crittografia frattale - classe Crypt::FNA Sezione 6: Considerazionia. Sulla decifratura – lacci di f Є {F}In questa eventualità c’è una probabilità non nulla che due (e quindi infiniti) vertici possano sovrapporsi, rendendo impossibile la decodifica del file criptato. Ad esempio, con una base Ro={-30, 60, 45, 110} abbiamo: NomeRossano Mario speaker software@netlogica.it; Perl.it Mail speaker – company or community
  • 98. Una nuova crittografia frattale - classe Crypt::FNA Sezione 6: Considerazionia. Sulla decifratura – lacci di f Є {F}Occorre quindi una condizione che ci permetta di assegnare una base tale che i lacci non si producano. NomeRossano Mario speaker software@netlogica.it; Perl.it Mail speaker – company or community
  • 99. Una nuova crittografia frattale - classe Crypt::FNA Sezione 6: Considerazionia. Sulla decifratura – lacci di f Є {F}Occorre quindi una condizione che ci permetta di assegnare una base tale che i lacci non si producano.Il seguente teorema fornisce una condizione sufficiente. NomeRossano Mario speaker software@netlogica.it; Perl.it Mail speaker – company or community
  • 100. Una nuova crittografia frattale - classe Crypt::FNA Sezione 6: Considerazionia. Sulla decifratura – Teorema di unicità dei vertici di f Є {F}Definizione 1: base di una curva f Є {F} è l’insieme delle inclinazioni {Ro} NomeRossano Mario speaker software@netlogica.it; Perl.it Mail speaker – company or community
  • 101. Una nuova crittografia frattale - classe Crypt::FNA Sezione 6: Considerazionia. Sulla decifratura – Teorema di unicità dei vertici di f Є {F}Definizione 1: base di una curva f Є {F} è l’insieme delle inclinazioni {Ro}Definizione 2: ramo di una curva f Є {F} è la spezzata relativa al calcolo eseguito secondo l’algoritmo di costruzione sulla base o sua combinazione NomeRossano Mario speaker software@netlogica.it; Perl.it Mail speaker – company or community
  • 102. Una nuova crittografia frattale - classe Crypt::FNA Sezione 6: Considerazionia. Sulla decifratura – Teorema di unicità dei vertici di f Є {F}Definizione 1: base di una curva f Є {F} è l’insieme delle inclinazioni {Ro}Definizione 2: ramo di una curva f Є {F} è la spezzata relativa al calcolo eseguito secondo l’algoritmo di costruzione sulla base o sua combinazioneIpotesisia data la base di {F}={x1, x2,…, xn} : max(x)-min(x) < π/4 NomeRossano Mario speaker software@netlogica.it; Perl.it Mail speaker – company or community
  • 103. Una nuova crittografia frattale - classe Crypt::FNA Sezione 6: Considerazionia. Sulla decifratura – Teorema di unicità dei vertici di f Є {F}Definizione 1: base di una curva f Є {F} è l’insieme delle inclinazioni {Ro}Definizione 2: ramo di una curva f Є {F} è la spezzata relativa al calcolo eseguito secondo l’algoritmo di costruzione sulla base o sua combinazioneIpotesisia data la base di {F}={x1, x2,…, xn} : max(x)-min(x) < π/4TesiL’ipotesi è sufficiente affinché l’insieme dei punti della curva f sia in corrispondenza biunivoca con un sottoinsieme di punti del piano NomeRossano Mario speaker software@netlogica.it; Perl.it Mail speaker – company or community
  • 104. Una nuova crittografia frattale - classe Crypt::FNA Sezione 6: Considerazionia. Sulla decifratura – Teorema di unicità dei vertici di f Є {F}Dimostrazione su:www.perl.it/documenti/articoli/2010/04/anakryptfna.htmlIpotesisia data la base di {F}={x1, x2,…, xn} : max(x)-min(x) < π/4TesiL’ipotesi è sufficiente affinché l’insieme dei punti della curva f sia in corrispondenza biunivoca con un sottoinsieme di punti del piano NomeRossano Mario speaker software@netlogica.it; Perl.it Mail speaker – company or community
  • 105. Una nuova crittografia frattale - classe Crypt::FNA Sezione 6: Considerazioni 900.19866958 855.11766404 835.59726026b. Robustezza di FNA 631.79907235 845.59106749FNA è un sistema di cifratura, basato sulla sostituzione di bytes/caratteri con 607.51514839 826.07053756numeri complessi (n-pla ordinata di numeri, in questo caso la coppia di 730.67818328coordinate) attraverso l’algoritmo generatore dei frattali {F}. 719.40812543 712.90110561 878.12528707 La trasformazione in generale avviene sostituendo il valore ordinale, nel suo 606.87693617alfabeto quindi, di ciò che si trasforma con le coordinate cartesiane di un 844.95287635vertice della curva. 529.89996398 800.51021841 627.67375558 859.71016379 739.56662699 932.56196132 NomeRossano Mario speaker software@netlogica.it; Perl.it Mail speaker – company or community
  • 106. Una nuova crittografia frattale - classe Crypt::FNA Sezione 6: Considerazioni 900.19866958 855.11766404 835.59726026b. Robustezza di FNA 631.79907235 845.59106749Alfabeto 607.51514839 826.07053756 730.67818328Per ogni cifratura di byte, l’alfabeto utilizzato da FNA è differente dal 719.40812543precedente. Ogni “singolo” alfabeto ha un numero di simboli al più quanto la 712.90110561 878.12528707cardinalità dell’alfabeto con cui è espresso il dato in chiaro che si cifra. Nel 606.87693617caso di bytes è costituito al più da 256 coppie di coordinate di vertici. 844.95287635 529.89996398Gli alfabeti sono inoltre apparentemente casuali, poiché la successione dei 800.51021841 627.67375558vertici, di derivazione frattale, è notevolmente irregolare. 859.71016379 739.56662699 932.56196132 NomeRossano Mario speaker software@netlogica.it; Perl.it Mail speaker – company or community
  • 107. Una nuova crittografia frattale - classe Crypt::FNA Sezione 6: Considerazioni 900.19866958 855.11766404 835.59726026b. Robustezza di FNA 631.79907235 845.59106749Alfabeto 607.51514839 826.07053756 730.67818328Una volta cifrato un byte, si procede alla cifratura del successivo: l’alfabeto 719.40812543“riparte”, poiché una volta cifrato un byte, si considerano le coordinate del 712.90110561 878.12528707successivo vertice di {F} come il simbolo di ordinalità 1 nel nuovo alfabeto di 606.87693617cardinalità, al più, pari alla cardinalità dell’alfabeto con cui è espresso il dato 844.95287635da cifrare. 529.89996398 800.51021841 627.67375558I successivi alfabeti sono sempre differenti e dipendenti da tutti i dati in 859.71016379chiaro precedentemente cifrati. 739.56662699 932.56196132 NomeRossano Mario speaker software@netlogica.it; Perl.it Mail speaker – company or community
  • 108. Una nuova crittografia frattale - classe Crypt::FNA Sezione 6: Considerazioni 900.19866958 855.11766404 835.59726026b. Robustezza di FNA 631.79907235 845.59106749Premesso che la chiave di FNA è, in senso stretto, data dalle direzioni di 607.51514839 826.07053756inizializzazione Ro, magic e square, osservandolo come polialfabetico e 730.67818328considerando l’algoritmo frattale come un generatore di alfabeti, possiamo 719.40812543dire che ha in sé i vantaggi di una chiave lunga come il messaggio ed 712.90110561 878.12528707apparentemente casuale similmente al caso della cifratura a blocco 606.87693617monouso (nel senso che è notevolmente irregolare). 844.95287635 529.89996398 800.51021841 627.67375558 859.71016379 739.56662699 932.56196132 NomeRossano Mario speaker software@netlogica.it; Perl.it Mail speaker – company or community
  • 109. Una nuova crittografia frattale - classe Crypt::FNA Sezione 6: Considerazioni 900.19866958 855.11766404 835.59726026b. Robustezza di FNA 631.79907235 845.59106749Chiave 607.51514839 826.07053756 730.67818328In un polialfabetico, la chiave è utilizzata per identificare il particolare 719.40812543alfabeto da utilizzare sulla singola operazione di cifratura. 712.90110561 878.12528707 606.87693617 844.95287635 529.89996398 800.51021841 627.67375558 859.71016379 739.56662699 932.56196132 NomeRossano Mario speaker software@netlogica.it; Perl.it Mail speaker – company or community
  • 110. Una nuova crittografia frattale - classe Crypt::FNA Sezione 6: Considerazioni 900.19866958 855.11766404 835.59726026b. Robustezza di FNA 631.79907235 845.59106749Chiave 607.51514839 826.07053756 730.67818328In un polialfabetico, la chiave è utilizzata per identificare il particolare 719.40812543alfabeto da utilizzare sulla singola operazione di cifratura. 712.90110561 878.12528707 606.87693617Il caso migliore si ha quando la chiave è lunga come il messaggio (il 844.95287635dato) da cifrare, il che equivale a dire che si cifra con un numero di 529.89996398alfabeti pari al numero di caratteri del messaggio da cifrare. 800.51021841 627.67375558 859.71016379 739.56662699 932.56196132 NomeRossano Mario speaker software@netlogica.it; Perl.it Mail speaker – company or community
  • 111. Una nuova crittografia frattale - classe Crypt::FNA Sezione 6: Considerazioni 900.19866958 855.11766404 835.59726026b. Robustezza di FNA 631.79907235 845.59106749Chiave 607.51514839 826.07053756 730.67818328chiave 1, primo dato da cifrare: primo alfabeto -> influenza l’alfabeto 719.40812543successivo 712.90110561 878.12528707chiave 2, secondo dato da cifrare: secondo alfabeto -> influenza l’alfabeto 606.87693617successivo 844.95287635... 529.89996398chiave n-1, n-1 esimo dato da cifrare: n-1 esimo alfabeto -> influenza 800.51021841 627.67375558l’alfabeto n-esimo 859.71016379 739.56662699 932.56196132 NomeRossano Mario speaker software@netlogica.it; Perl.it Mail speaker – company or community
  • 112. Una nuova crittografia frattale - classe Crypt::FNA Sezione 6: Considerazioni 900.19866958 855.11766404 835.59726026b. Robustezza di FNA 631.79907235 845.59106749Nel 1949, Claude Shannon, padre della teoria dellinformazione, nel 607.51514839 826.07053756lavoro ”La teoria della comunicazione nei sistemi crittografici” dimostrò che 730.67818328questo è lunico metodo crittografico possibile che sia totalmente sicuro 719.40812543ovvero chiavi segrete casuali lunghe quanto il messaggio. 712.90110561 878.12528707 606.87693617 844.95287635 529.89996398 800.51021841 627.67375558 859.71016379 739.56662699 932.56196132 NomeRossano Mario speaker software@netlogica.it; Perl.it Mail speaker – company or community
  • 113. Una nuova crittografia frattale - classe Crypt::FNA Sezione 6: Considerazioni 900.19866958 855.11766404 835.59726026b. Robustezza di FNA 631.79907235 845.59106749Parimenti FNA non soffre della difficoltà di applicazione insita nel sistema a 607.51514839 826.07053756blocco monouso (dispendiosa) e si presta molto semplicemente ad 730.67818328operazioni di ipercrittografia (cifrare un dato già cifrato). 719.40812543 712.90110561 878.12528707 606.87693617 844.95287635 529.89996398 800.51021841 627.67375558 859.71016379 739.56662699 932.56196132 NomeRossano Mario speaker software@netlogica.it; Perl.it Mail speaker – company or community
  • 114. Una nuova crittografia frattale - classe Crypt::FNA Sezione 6: Considerazioni 900.19866958 855.11766404 835.59726026b. Robustezza di FNA 631.79907235 845.59106749Parimenti FNA non soffre della difficoltà di applicazione insita nel sistema a 607.51514839 826.07053756blocco monouso (dispendiosa) e si presta molto semplicemente ad 730.67818328operazioni di ipercrittografia (cifrare un dato già cifrato). 719.40812543 712.90110561 878.12528707$krypto->encrypt_file($plainFile,$encryptedFile); 606.87693617 $krypto2->encrypt_file($encryptedFile, $hyperEncryptedFile); 844.95287635 529.89996398 800.51021841 627.67375558 859.71016379 739.56662699 932.56196132 NomeRossano Mario speaker software@netlogica.it; Perl.it Mail speaker – company or community
  • 115. Una nuova crittografia frattale - classe Crypt::FNA Sezione 6: Considerazioni 900.19866958 855.11766404 835.59726026b. Robustezza di FNA 631.79907235 845.59106749Parimenti FNA non soffre della difficoltà di applicazione insita nel sistema a 607.51514839 826.07053756blocco monouso (dispendiosa) e si presta molto semplicemente ad 730.67818328operazioni di ipercrittografia (cifrare un dato già cifrato). 719.40812543 712.90110561 878.12528707$krypto->encrypt_file($plainFile,$encryptedFile); 606.87693617 $krypto2->encrypt_file($encryptedFile, $hyperEncryptedFile); 844.95287635 … 529.89996398 $krypto2->decrypt_file($hyperEncryptedFile, $encryptedFile); 800.51021841 627.67375558$krypto->decrypt_file($encryptedFile, $plainFile); 859.71016379 739.56662699 932.56196132 NomeRossano Mario speaker software@netlogica.it; Perl.it Mail speaker – company or community
  • 116. Una nuova crittografia frattale - classe Crypt::FNA Sezione 6: Considerazioni 900.19866958 855.11766404 835.59726026b. Robustezza di FNA 631.79907235 845.59106749 607.51514839Inoltre ci sono altre parti della chiave, mi riferisco al magic number, che 826.07053756rendono oltremodo arduo individuare le direzioni successive (nel tentativo di 730.67818328scoprire la base) oltre all’ordine della curva su cui si va a crittografare. 719.40812543 712.90110561 878.12528707 606.87693617 844.95287635 529.89996398 800.51021841 627.67375558 859.71016379 739.56662699 932.56196132 NomeRossano Mario speaker software@netlogica.it; Perl.it Mail speaker – company or community
  • 117. Una nuova crittografia frattale - classe Crypt::FNA Sezione 6: Considerazioni 900.19866958 855.11766404 835.59726026c. Crypt::FNA è multipiattaforma 631.79907235 845.59106749Grazie al lavoro dei CPAN Tester, possiamo affermare che viene eseguito su: 607.51514839 826.07053756 730.67818328 719.40812543 712.90110561 878.12528707 606.87693617 844.95287635 529.89996398 800.51021841 627.67375558 859.71016379 739.56662699 932.56196132 NomeRossano Mario speaker software@netlogica.it; Perl.it Mail speaker – company or community
  • 118. Una nuova crittografia frattale - classe Crypt::FNA Sezione 6: Considerazioni 900.19866958 855.11766404 835.59726026c. Crypt::FNA è multipiattaforma 631.79907235 845.59106749Grazie al lavoro dei CPAN Tester, possiamo affermare che viene eseguito su: 607.51514839 826.07053756 730.67818328Cygwin 719.40812543Mac OS X 712.90110561Dragonfly BSD 878.12528707 606.87693617FreeBSD 844.95287635Debian GNU/kFreeBSD 529.89996398IRIX 800.51021841 627.67375558 859.71016379 739.56662699 932.56196132 NomeRossano Mario speaker software@netlogica.it; Perl.it Mail speaker – company or community
  • 119. Una nuova crittografia frattale - classe Crypt::FNA Sezione 6: Considerazioni 900.19866958 855.11766404 835.59726026c. Crypt::FNA è multipiattaforma 631.79907235 845.59106749Grazie al lavoro dei CPAN Tester, possiamo affermare che viene eseguito su: 607.51514839 826.07053756 730.67818328Cygwin GNU/Linux 719.40812543Mac OS X MirOS BSD 712.90110561Dragonfly BSD Windows 878.12528707 606.87693617FreeBSD NerBSD 844.95287635Debian GNU/kFreeBSD OpenBSD 529.89996398IRIX SunOS/Solaris 800.51021841 627.67375558 859.71016379 739.56662699 932.56196132 NomeRossano Mario speaker software@netlogica.it; Perl.it Mail speaker – company or community
  • 120. Una nuova crittografia frattale - classe Crypt::FNA Sezione 6: Considerazioni 900.19866958 855.11766404 835.59726026c. Crypt::FNA è multipiattaforma 631.79907235 845.59106749Grazie al lavoro dei CPAN Tester, possiamo affermare che viene eseguito su: 607.51514839 826.07053756 730.67818328Cygwin GNU/Linux Commodore64 719.40812543Mac OS X MirOS BSD 712.90110561Dragonfly BSD Windows 878.12528707 606.87693617FreeBSD NerBSD 844.95287635Debian GNU/kFreeBSD OpenBSD 529.89996398IRIX SunOS/Solaris 800.51021841 627.67375558 859.71016379 739.56662699 932.56196132 NomeRossano Mario speaker software@netlogica.it; Perl.it Mail speaker – company or community
  • 121. Una nuova crittografia frattale - classe Crypt::FNA Sezione 6: Considerazioni 900.19866958 855.11766404 835.59726026c. Crypt::FNA è multipiattaforma 631.79907235 845.59106749Grazie al lavoro dei CPAN Tester, possiamo affermare che viene eseguito su: 607.51514839 826.07053756 730.67818328Cygwin GNU/Linux Commodore64 719.40812543Mac OS X MirOS BSD In basic v2 712.90110561Dragonfly BSD Windows 878.12528707 606.87693617FreeBSD NerBSD 844.95287635Debian GNU/kFreeBSD OpenBSD 529.89996398IRIX SunOS/Solaris 800.51021841 627.67375558 859.71016379 739.56662699 932.56196132 NomeRossano Mario speaker software@netlogica.it; Perl.it Mail speaker – company or community
  • 122. Una nuova crittografia frattale - classe Crypt::FNA Sezione 7: Conclusioni NomeRossano Mario speaker software@netlogica.it; Perl.it Mail speaker – company or community
  • 123. Una nuova crittografia frattale - classe Crypt::FNA Sezione 7: Conclusioni 900.19866958 855.11766404 835.59726026• Crypt::FNA è in costante aggiornamento, soprattutto per quanto riguarda 631.79907235 l’ottimizzazione nell’uso della memoria e la velocità di elaborazione, con 845.59106749 uno sguardo volto alla retrocompatibilità 607.51514839 826.07053756 730.67818328 719.40812543 712.90110561 878.12528707 606.87693617 844.95287635 529.89996398 800.51021841 627.67375558 859.71016379 739.56662699 932.56196132 NomeRossano Mario speaker software@netlogica.it; Perl.it Mail speaker – company or community
  • 124. Una nuova crittografia frattale - classe Crypt::FNA Sezione 7: Conclusioni 900.19866958 855.11766404 835.59726026• Crypt::FNA è in costante aggiornamento, soprattutto per quanto riguarda 631.79907235 l’ottimizzazione nell’uso della memoria e la velocità di elaborazione, con 845.59106749 uno sguardo volto alla retrocompatibilità 607.51514839 826.07053756 730.67818328• In ogni caso voglio ricordare che FNA è un algoritmo molto giovane ed 719.40812543 ancora in fase di sviluppo, per cui eviterei di salvare i dati di accesso ad 712.90110561 un server contenente carte di credito o la ricetta della pizza se non dopo 878.12528707 606.87693617 attenta fase di testing. 844.95287635 529.89996398 800.51021841 627.67375558 859.71016379 739.56662699 932.56196132 NomeRossano Mario speaker software@netlogica.it; Perl.it Mail speaker – company or community
  • 125. Una nuova crittografia frattale - classe Crypt::FNA Sezione 7: Conclusioni 900.19866958 855.11766404 835.59726026• Crypt::FNA è in costante aggiornamento, soprattutto per quanto riguarda 631.79907235 l’ottimizzazione nell’uso della memoria e la velocità di elaborazione, con 845.59106749 uno sguardo volto alla retrocompatibilità 607.51514839 826.07053756 730.67818328• In ogni caso voglio ricordare che FNA è un algoritmo molto giovane ed 719.40812543 ancora in fase di sviluppo, per cui eviterei di salvare i dati di accesso ad 712.90110561 un server contenente carte di credito o la ricetta della pizza se non dopo 878.12528707 606.87693617 attenta fase di testing. 844.95287635 529.89996398• Tra gli sviluppi futuri, è in cantiere l’implementazione di un metodo di 800.51021841 cifratura asimmetrico aFNA 627.67375558 859.71016379 739.56662699 932.56196132 NomeRossano Mario speaker software@netlogica.it; Perl.it Mail speaker – company or community
  • 126. Una nuova crittografia frattale - classe Crypt::FNA Sezione 7: Conclusioni 900.19866958 855.11766404 835.59726026• CPAN : modulo Crypt::FNA 631.79907235• https://metacpan.org/module/Crypt::FNA 845.59106749 607.51514839• CPAN : modulo Crypt::FNA::Async 826.07053756• https://metacpan.org/release/Crypt-FNA-Async 730.67818328 719.40812543• Articolo su Perl.it (ver. 0.01 della classe): 712.90110561 878.12528707 http://www.perl.it/documenti/articoli/2010/04/anakryptfna.htm 606.87693617 844.95287635• Queste slide: 529.89996398 http://www.netlogica.it/codemotion2012/crypt_fna_codemotion2012.pdf 800.51021841 627.67375558• L’Autore: 859.71016379 anak@cpan.org; software@netlogica.it; www.netlogica.it 739.56662699 932.56196132 NomeRossano Mario speaker software@netlogica.it; Perl.it Mail speaker – company or community
  • 127. Una nuova crittografia frattale - classe Crypt::FNA Sezione 7: Conclusioni 900.19866958 855.11766404 835.59726026 631.79907235 845.59106749 607.51514839 826.07053756 730.67818328 719.40812543 712.90110561 878.12528707 606.87693617 844.95287635 529.89996398 800.51021841 TH E E N D ? 627.67375558 859.71016379 739.56662699 932.56196132 NomeRossano Mario speaker software@netlogica.it; Perl.it Mail speaker – company or community
  • 128. IPW, Italian Perl Workshop metà ottobre 2012 a Bologna. Stay Tuned! usa Perl responsabilmenteLink utili use strict; use warnings;Il punto di riferimento di Perl in Italia www.perl.itAssociazione Perl.it www.perl.it/associazioneIl linguaggio di programmazione Perl www.perl.orgDistribuzioni e IDEStrawberryperl, Perl per MS Windows strawberryperl.comActivePerl www.activestate.com/activeperlPadre, Perl IDE padre.perlide.orgModuli e ClassiComprehensive Perl Archive Network metacpan.orgMailing list, IRCmongers@lists.perl.it lists.perl.it/sympa/info/mongersPerlweekly perlweekly.comIrc.freenode.net #perl.it Nome speaker 128Scoprite il linguaggio che rende facili le cose facili e – company or communitydifficili Mail speaker possibili quelle