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.
Codemotion 2012: una nuova crittografia frattale - classe Crypt::FNA
1. Una nuova crittografia frattale - classe Crypt::FNA
Mario Rossano aka Anak
software@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 curve
Direzioni 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 numero
Direzioni 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, combinando
Direzioni 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 gli
elementi di un vettore leggiamo la proprietà principale
della costruzione: il primo addendo è il ramo su cui si
itera 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 RAMO
a(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 gli
elementi di un vettore leggiamo la proprietà principale
della costruzione: il primo addendo è il ramo su cui si
itera 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 RAMO
a(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 gli
elementi di un vettore leggiamo la proprietà principale
della costruzione: il primo addendo è il ramo su cui si
itera 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 RAMO
a(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 gli
elementi di un vettore leggiamo la proprietà principale
della costruzione: il primo addendo è il ramo su cui si
itera 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 RAMO
a(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 di
parametri 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, potendone
calcolare la direzione dei segmenti approssimanti successivi ed implementando
poi 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 FNA
1 i dati sono memorizzati in byte: qualunque tipo di file vada ad
aprire, il suo contenuto è certamente una sequenza ben precisa di
bytes.
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 FNA
1 i dati sono memorizzati in byte: qualunque tipo di file vada ad
aprire, il suo contenuto è certamente una sequenza ben precisa di
bytes.
Un byte è costituito da 8 bit, per cui il suo valore deve appartenere
all’insieme degli interi compresi tra 0 e 255 (256 elementi
complessivamente). Seguo quindi la curva frattale scelta,
dell’insieme {F}, per un numero di vertici uguale a quella del valore
del byte da criptare. Le coordinate cartesiane di quel vertice
rappresentano 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 FNA
2 Le curve {F} hanno un andamento che, in generale, si conosce
solo calcolandolo ma lo si può calcolare solo se sono noti i parametri
Ro genitori che sono parti fondamentali della chiave: è proprio in
questo 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 FNA
2 Le curve {F} hanno un andamento che, in generale, si conosce
solo calcolandolo ma lo si può calcolare solo se sono noti i parametri
Ro genitori che sono parti fondamentali della chiave: è proprio in
questo il cuore del sistema crittografico.
Come altri sistemi di cifratura simmetrici, ad es. DES e AES, FNA ha
chiave segreta ma a differenza dei predetti Data Encryption Standard
(che ha una chiave di 56 bit) ed Advanced Encryption Standard (che
ha una chiave compresa tra i 128 ed i 256 bit), Fractal Numerical
Algorithm ha una chiave in bit lunga quanto si vuole: non ci sono
restrizioni 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 FNA
3 criptare
Ogni byte viene crittografato mediante le coordinate del vertice della
curva frattale, ottenuto partendo dal successivo a quello
precedentemente valutato, saltando di un numero ulteriore di vertici
uguale 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 FNA
4 decriptare
Si segue la curva frattale verificando, di vertice in vertice, che le
coordinate corrispondano a quelle del crittogramma. Il valore del byte
originale viene ricostruito avendo contato quanti vertici si sono
succeduti per arrivare all’uguaglianza dei due valori, dall’ultima
uguaglianza incontrata. Il numero di vertici, ridotto del magic number
sommato 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 FNA
5 sale crittografico
Si sfrutta la proprietà di pseudocasualità insita nelle curve {F}, per cui
a differenze iniziali ad un certo ordine di grandezza seguono
differenze finali ad un ordine di grandezza maggiore (c.d. effetto
farfalla).
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 FNA
5 sale crittografico
Si sfrutta la proprietà di pseudocasualità insita nelle curve {F}, per cui
a differenze iniziali ad un certo ordine di grandezza seguono
differenze finali ad un ordine di grandezza maggiore (c.d. effetto
farfalla).
Si realizza aggiungendo prima del file da crittografare, una sequenza
random, 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 FNA
5 sale crittografico
Per fare questo, l’algoritmo generatore del sale deve produrre valori
statisticamente aderenti ad una sequenza casuale ovvero una
sequenza 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 FNA
5 sale crittografico
Per fare questo, l’algoritmo generatore del sale deve produrre valori
statisticamente aderenti ad una sequenza casuale ovvero una
sequenza 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 “magic
number” è 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 FNA
5 sale crittografico
Al momento dell’invocazione del calcolo, si legge il numero di
secondi trascorsi dalla mezzanotte del 1 gennaio 1970 (epoch
date). Si calcola poi, tramite la funzione “rand” (pseudo casuale), un
numero 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 FNA
5 sale crittografico
Si calcola poi il rapporto tra il numero dei secondi (casuale) ed il
numero restituito dalla funzione random. Da questo si preleva un
numero di cifre pari al quadrato del magic number. Se il quadrato del
magic number è superiore al numero di cifre del quoziente prima
calcolato, si itera il procedimento, ricalcolando “time”, “rand” e l’intero
del 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 FNA
5 sale crittografico
Dall’iterazione si esce quando la lunghezza del salt è pari al quadrato
del magic number. Questa sequenza numerica, casuale, è il nostro
sale 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 FNA
5 sale crittografico
Dall’iterazione si esce quando la lunghezza del salt è pari al quadrato
del magic number. Questa sequenza numerica, casuale, è il nostro
sale crittografico.
In questo modo, due cifrature dello stesso dato, daranno luogo a
crittogrammi completamente differenti e soggetti all’effetto farfalla
poiché le curve {F} hanno un andamento coerente alla definizione di
caos 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 FNA
5 sale crittografico
In fase di decriptazione, grazie alla chiave (l’attributo magic number
nello specifico), l’algoritmo è in grado di valutare quali vertici iniziali
del crittogramma scartare, partendo poi dall’ultimo di questi per la
valutazione 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::FNA
Metodi della classe Perl
Crypt::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::FNA
Metodi della classe Perl
Crypt::FNA->new
Crypt::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::FNA
Metodi della classe Perl
Crypt::FNA->new
Crypt::FNA->make_fract
Crypt::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::FNA
Metodi della classe Perl
Crypt::FNA->new
Crypt::FNA->make_fract
Crypt::FNA->encrypt_file
Crypt::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::FNA
Metodi della classe Perl
Crypt::FNA->new
Crypt::FNA->make_fract
Crypt::FNA->encrypt_file
Crypt::FNA->decrypt_file
Crypt::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::FNA
Metodi della classe Perl
Crypt::FNA->new
Crypt::FNA->make_fract
Crypt::FNA->encrypt_file
Crypt::FNA->decrypt_file
Crypt::FNA->encrypt_scalar
Crypt::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::FNA
Metodi della classe Perl
Crypt::FNA->new
Crypt::FNA->make_fract
Crypt::FNA->encrypt_file
Crypt::FNA->decrypt_file
Crypt::FNA->encrypt_scalar
Crypt::FNA->decrypt_scalar
Crypt::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::FNA
Metodo “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::FNA
Metodo “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::FNA
Metodo “new”: attributo “r” – ordine della curva di {F}
Indica il livello di approfondimento nel calcolo della curva. E’ un numero maggiore di
zero, 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::FNA
Metodo “new”: attributo “angle” – direzioni della base di {F}
Sono le direzioni su cui si applica l’algoritmo di costruzione: su queste si determina la
struttura base autosimile della curva di {F}. Le direzioni sono espresse nel sistema
sessadecimale, 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::FNA
Metodo “new”: attributo “square” – lato quadrato
contenitore
E’ la lunghezza del lato del quadrato dal cui centro parte la costruzione della curva. Le
coordinate 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::FNA
Metodo “new”: attributo “background” – colore fondo PNG
E’ 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::FNA
Metodo “new”: attributo “foreground” – colore primo piano
E’ 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::FNA
Metodo “new”: attributo “magic number” crittografia
discreta
Indica il numero di vertici della curva da saltare in fase di cifratura e decifratura:
essendo l'algoritmo una funzione continua sui vertici, saltandone alcuni questa resta
continua su punti isolati dell’insieme dei vertici, fornendo una crittografia discreta sui
vertici.
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::FNA
Metodo “new”: attributo “salted” il sale crittografico
Il ‘salt’ è una sequenza casuale, che ha lo scopo ultimo di influenzare direttamente il
crittogramma, in modo che cifrature dello stesso dato, danno luogo a crittogrammi
differenti.
Il valore di default è ‘false’ per retrocompatibilità con le versioni di Crypt::FNA
antecedenti 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::FNA
Metodo “make_fract” il disegno della curva
Questo metodo è senz'altro il più suggestivo e permette di "toccare" le curve che
verranno poi applicate negli algoritmi crittografici.
Il file grafico di output è in formato PNG (Portable Network Graphic), fruibile da un
qualunque 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::FNA
Metodo “make_fract” il disegno della curva
La sintassi è:
$krypto->make_fract($pngfile,$zoom)
$pngfile è il nome del file png - senza estensione "png" che viene inserita
automaticamente.
$zoom è la scala del disegno - maggiore di zero. Valore di default: 1
L'immagine 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::FNA
Metodo “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
66. Una nuova crittografia frattale - classe Crypt::FNA
Sezione 3: Crypt::FNA
Metodo “encrypt_file”
Il file viene “frullato” in una
ragnatela 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::FNA
Metodo “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::FNA
Metodo “encrypt_scalar”
Il metodo encrypt_scalar cifra stringhe: il risultato dell’operazione di cifratura è un
vettore contenente il crittogramma.
La sintassi è:
@encrypted_scalar=$krypto->encrypt_scalar($this_string)
Il programmatore che preveda un salvataggio password con FNA, farà bene ad
impostare 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::FNA
Metodo “decrypt_scalar”
Il metodo decrypt_scalar ricostruisce il dato in chiaro dal risultato dell’operazione di
cifratura 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::FNA
Metodo “mac” – digest con FNA
L’ “hash” è rappresentato dalle coordinate dell’ultimo vertice della curva {F} definita
tramite 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::FNA
Metodo “mac” – digest con FNA
Tramite questo metodo, Crypt::FNA assolve alle specifiche degli algoritmi digest e
precisamente:
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::FNA
Metodo “mac” – digest con FNA
Tramite questo metodo, Crypt::FNA assolve alle specifiche degli algoritmi digest e
precisamente:
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::FNA
Metodo “mac” – digest con FNA
Tramite questo metodo, Crypt::FNA assolve alle specifiche degli algoritmi digest e
precisamente:
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 di
generare un messaggio che gli corrisponde; in altri termini, è estremamente difficile
produrre 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::Async
Classe Crypt::FNA::Async – Sincrono contro Asincrono
Crypt::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::Async
Classe Crypt::FNA::Async – Sincrono contro Asincrono
Crypt::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 numero
di 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::Async
Classe Crypt::FNA::Async – Sincrono contro Asincrono
Crypt::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 numero
di core disponibili.
Se il sistema non supporta i threads, Crypt::FNA::Async effettuerà comunque
l’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::Async
Classe Crypt::FNA::Async – Sincrono contro Asincrono
Metodi
Crypt::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::Async
Classe Crypt::FNA::Async – Sincrono contro Asincrono
Metodi
Crypt::FNA::Async->new
Crypt::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::Async
Classe Crypt::FNA::Async – Sincrono contro Asincrono
Metodi
Crypt::FNA::Async->new
Crypt::FNA::Async->encrypt_files
Crypt::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::Async
Classe 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::Async
Classe Crypt::FNA::Async – metodo “encrypt_files”
Il metodo accetta in ingresso un array contenente i nomi dei files, in chiaro, da criptare, quindi
opera 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::Async
Classe Crypt::FNA::Async – metodo “decrypt_files”
Il metodo accetta in ingresso un array contenente i nomi dei files criptati, quindi opera su questi e
restituisce 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: Applicazioni
Le 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: Applicazioni
Le applicazioni sono ovviamente molteplici, di seguito alcuni esempi:
3.Salvataggio di password
5.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: Applicazioni
Le applicazioni sono ovviamente molteplici, di seguito alcuni esempi:
3.Salvataggio di password
5.Storage di documenti criptati su server remoto
7.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: Applicazioni
Le applicazioni sono ovviamente molteplici, di seguito alcuni esempi:
3.Salvataggio di password
5.Storage di documenti criptati su server remoto
7.Database remoto criptato, accessibile solo fornendo la chiave dal client
9.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: Applicazioni
Le applicazioni sono ovviamente molteplici, di seguito alcuni esempi:
3.Salvataggio di password
5.Storage di documenti criptati su server remoto
7.Database remoto criptato, accessibile solo fornendo la chiave dal client
9.Verifiche di autenticità di dati trasmessi in una comunicazione
11.ecc.
NomeRossano
Mario speaker
software@netlogica.it; Perl.it
Mail speaker – company or community
90. Una nuova crittografia frattale - classe Crypt::FNA
Sezione 5: Applicazioni
Le 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: Applicazioni
MAC -> Message Authentication Code
L’autenticazione dei messaggi garantisce l’integrità dell’informazione anche in
presenza 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: Applicazioni
MAC -> 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: Applicazioni
MAC -> 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: Applicazioni
MAC -> Message Authentication Code
Se Attacker modifica il messaggio, ignorando
la chiave K, non potrà inviare a Receiver il
MAC corretto che quindi ignorerà il messaggio
edulcorato
NomeRossano
Mario speaker
software@netlogica.it; Perl.it
Mail speaker – company or community
95. Una nuova crittografia frattale - classe Crypt::FNA
Sezione 5: Applicazioni
MAC -> Message Authentication Code
Il metodo mac di Crypt::FNA effettua proprio il
calcolo qui indicato con Ak(m), consentendo
l’implementazione di questo diagramma di
flusso.
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: Considerazioni
a. 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: Considerazioni
a. 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: Considerazioni
a. 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: Considerazioni
a. 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: Considerazioni
a. 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: Considerazioni
a. 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
Ipotesi
sia 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: Considerazioni
a. 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
Ipotesi
sia data la base di {F}={x1, x2,…, xn} : max(x)-min(x) < π/4
Tesi
L’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: Considerazioni
a. Sulla decifratura – Teorema di unicità dei vertici di f Є {F}
Dimostrazione su:
www.perl.it/documenti/articoli/2010/04/anakryptfna.html
Ipotesi
sia data la base di {F}={x1, x2,…, xn} : max(x)-min(x) < π/4
Tesi
L’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.59726026
b. Robustezza di FNA 631.79907235
845.59106749
FNA è un sistema di cifratura, basato sulla sostituzione di bytes/caratteri con 607.51514839
826.07053756
numeri complessi (n-pla ordinata di numeri, in questo caso la coppia di 730.67818328
coordinate) 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.87693617
alfabeto quindi, di ciò che si trasforma con le coordinate cartesiane di un 844.95287635
vertice 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.59726026
b. Robustezza di FNA 631.79907235
845.59106749
Alfabeto 607.51514839
826.07053756
730.67818328
Per ogni cifratura di byte, l’alfabeto utilizzato da FNA è differente dal 719.40812543
precedente. Ogni “singolo” alfabeto ha un numero di simboli al più quanto la 712.90110561
878.12528707
cardinalità dell’alfabeto con cui è espresso il dato in chiaro che si cifra. Nel 606.87693617
caso di bytes è costituito al più da 256 coppie di coordinate di vertici. 844.95287635
529.89996398
Gli alfabeti sono inoltre apparentemente casuali, poiché la successione dei 800.51021841
627.67375558
vertici, 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.59726026
b. Robustezza di FNA 631.79907235
845.59106749
Alfabeto 607.51514839
826.07053756
730.67818328
Una 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.12528707
successivo vertice di {F} come il simbolo di ordinalità 1 nel nuovo alfabeto di 606.87693617
cardinalità, al più, pari alla cardinalità dell’alfabeto con cui è espresso il dato 844.95287635
da cifrare. 529.89996398
800.51021841
627.67375558
I successivi alfabeti sono sempre differenti e dipendenti da tutti i dati in 859.71016379
chiaro 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.59726026
b. Robustezza di FNA 631.79907235
845.59106749
Premesso che la chiave di FNA è, in senso stretto, data dalle direzioni di 607.51514839
826.07053756
inizializzazione Ro, magic e square, osservandolo come polialfabetico e 730.67818328
considerando l’algoritmo frattale come un generatore di alfabeti, possiamo 719.40812543
dire che ha in sé i vantaggi di una chiave lunga come il messaggio ed 712.90110561
878.12528707
apparentemente casuale similmente al caso della cifratura a blocco 606.87693617
monouso (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.59726026
b. Robustezza di FNA 631.79907235
845.59106749
Chiave 607.51514839
826.07053756
730.67818328
In un polialfabetico, la chiave è utilizzata per identificare il particolare 719.40812543
alfabeto 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.59726026
b. Robustezza di FNA 631.79907235
845.59106749
Chiave 607.51514839
826.07053756
730.67818328
In un polialfabetico, la chiave è utilizzata per identificare il particolare 719.40812543
alfabeto da utilizzare sulla singola operazione di cifratura. 712.90110561
878.12528707
606.87693617
Il caso migliore si ha quando la chiave è lunga come il messaggio (il 844.95287635
dato) da cifrare, il che equivale a dire che si cifra con un numero di 529.89996398
alfabeti 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.59726026
b. Robustezza di FNA 631.79907235
845.59106749
Chiave 607.51514839
826.07053756
730.67818328
chiave 1, primo dato da cifrare: primo alfabeto -> influenza l’alfabeto 719.40812543
successivo 712.90110561
878.12528707
chiave 2, secondo dato da cifrare: secondo alfabeto -> influenza l’alfabeto 606.87693617
successivo 844.95287635
... 529.89996398
chiave n-1, n-1 esimo dato da cifrare: n-1 esimo alfabeto -> influenza 800.51021841
627.67375558
l’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.59726026
b. Robustezza di FNA 631.79907235
845.59106749
Nel 1949, Claude Shannon, padre della teoria dell'informazione, nel 607.51514839
826.07053756
lavoro ”La teoria della comunicazione nei sistemi crittografici” dimostrò che 730.67818328
questo è l'unico metodo crittografico possibile che sia totalmente sicuro 719.40812543
ovvero 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.59726026
b. Robustezza di FNA 631.79907235
845.59106749
Parimenti FNA non soffre della difficoltà di applicazione insita nel sistema a 607.51514839
826.07053756
blocco monouso (dispendiosa) e si presta molto semplicemente ad 730.67818328
operazioni 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.59726026
b. Robustezza di FNA 631.79907235
845.59106749
Parimenti FNA non soffre della difficoltà di applicazione insita nel sistema a 607.51514839
826.07053756
blocco monouso (dispendiosa) e si presta molto semplicemente ad 730.67818328
operazioni 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