SlideShare une entreprise Scribd logo
1  sur  128
Una nuova crittografia frattale - classe Crypt::FNA


Mario Rossano aka Anak

software@netlogica.it – Netlogica Software Lab – community Perl.it
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
Una nuova crittografia frattale - classe Crypt::FNA
                    Sezione 3: Crypt::FNA

Metodo “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.48330143
6377.55135044 -768.07453852 6493.40995382 -290.38619797 6703.79926248 -101.38261857 6641.39653224 329.01095794
6547.35282987 491.23460593 6672.15350589 682.15153937 6767.07332641 951.17643798 7125.45527124 844.47157379 7301.13742586
616.45930112 7293.99200882 844.26353513 7262.78340711 1211.3200562 7315.25004987 1474.41515451 7121.21394711 1951.75973992
7224.47233263 2176.20365976 6962.04147204 2547.88708591 6998.13655185 2781.82594976 6972.85084038 3056.52905252
7371.28466715 3037.53030053 7569.06437014 3048.49593738 7320.32093005 3389.66342779 7357.81470144 3676.23526579
7708.87987244 3755.43863759 7814.8354795 3435.5290489 8296.58426972 3441.10117125 8627.97877198 3412.2773365 8623.6058585
3362.87465115 8767.32280898 3260.65143202 8583.97947961 2890.71868372 8474.68032897 2726.83436885 8650.05588533
2718.8481018 9045.95222039 2669.00976899 9254.66114943 2644.06562016 9103.68182141 3127.66020707 9113.43039278
3191.47856428 9188.88465234 3207.82184971 9202.57034881 3478.33454467 8945.6121183 3832.00806714 8945.62804071
4080.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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
Una nuova crittografia frattale - classe Crypt::FNA




           Sezione 5: Applicazioni




                                                      NomeRossano
                                                      Mario speaker
                                          software@netlogica.it; Perl.it
                               Mail speaker – company or community
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
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
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
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
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
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
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
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
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
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
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
Una nuova crittografia frattale - classe Crypt::FNA




          Sezione 6: Considerazioni




                                                      NomeRossano
                                                      Mario speaker
                                          software@netlogica.it; Perl.it
                               Mail speaker – company or community
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
Codemotion 2012: una nuova crittografia frattale - classe Crypt::FNA
Codemotion 2012: una nuova crittografia frattale - classe Crypt::FNA
Codemotion 2012: una nuova crittografia frattale - classe Crypt::FNA
Codemotion 2012: una nuova crittografia frattale - classe Crypt::FNA
Codemotion 2012: una nuova crittografia frattale - classe Crypt::FNA
Codemotion 2012: una nuova crittografia frattale - classe Crypt::FNA
Codemotion 2012: una nuova crittografia frattale - classe Crypt::FNA
Codemotion 2012: una nuova crittografia frattale - classe Crypt::FNA
Codemotion 2012: una nuova crittografia frattale - classe Crypt::FNA
Codemotion 2012: una nuova crittografia frattale - classe Crypt::FNA
Codemotion 2012: una nuova crittografia frattale - classe Crypt::FNA
Codemotion 2012: una nuova crittografia frattale - classe Crypt::FNA
Codemotion 2012: una nuova crittografia frattale - classe Crypt::FNA
Codemotion 2012: una nuova crittografia frattale - classe Crypt::FNA

Contenu connexe

Plus de Mario Rossano

Webinar 2020.04.07- Pillole di sicurezza digitale
Webinar 2020.04.07- Pillole di sicurezza digitaleWebinar 2020.04.07- Pillole di sicurezza digitale
Webinar 2020.04.07- Pillole di sicurezza digitaleMario Rossano
 
JWT: JSON Web Tokens - bye bye Session and Cookie - RFC7519
JWT: JSON Web Tokens - bye bye Session and Cookie - RFC7519JWT: JSON Web Tokens - bye bye Session and Cookie - RFC7519
JWT: JSON Web Tokens - bye bye Session and Cookie - RFC7519Mario Rossano
 
Linux Day 2014 - Napoli - Programma Il Futuro: una scelta open source
Linux Day 2014 - Napoli - Programma Il Futuro: una scelta open sourceLinux Day 2014 - Napoli - Programma Il Futuro: una scelta open source
Linux Day 2014 - Napoli - Programma Il Futuro: una scelta open sourceMario Rossano
 
Department of Chemical Sciences Federico II Naples - 09.01.2014
Department of Chemical Sciences Federico II Naples - 09.01.2014Department of Chemical Sciences Federico II Naples - 09.01.2014
Department of Chemical Sciences Federico II Naples - 09.01.2014Mario Rossano
 
La crittografia frattale in Perl
La crittografia frattale in PerlLa crittografia frattale in Perl
La crittografia frattale in PerlMario Rossano
 

Plus de Mario Rossano (6)

Webinar 2020.04.07- Pillole di sicurezza digitale
Webinar 2020.04.07- Pillole di sicurezza digitaleWebinar 2020.04.07- Pillole di sicurezza digitale
Webinar 2020.04.07- Pillole di sicurezza digitale
 
JWT: JSON Web Tokens - bye bye Session and Cookie - RFC7519
JWT: JSON Web Tokens - bye bye Session and Cookie - RFC7519JWT: JSON Web Tokens - bye bye Session and Cookie - RFC7519
JWT: JSON Web Tokens - bye bye Session and Cookie - RFC7519
 
Linux Day 2014 - Napoli - Programma Il Futuro: una scelta open source
Linux Day 2014 - Napoli - Programma Il Futuro: una scelta open sourceLinux Day 2014 - Napoli - Programma Il Futuro: una scelta open source
Linux Day 2014 - Napoli - Programma Il Futuro: una scelta open source
 
Department of Chemical Sciences Federico II Naples - 09.01.2014
Department of Chemical Sciences Federico II Naples - 09.01.2014Department of Chemical Sciences Federico II Naples - 09.01.2014
Department of Chemical Sciences Federico II Naples - 09.01.2014
 
Pit2012 modern perl
Pit2012 modern perlPit2012 modern perl
Pit2012 modern perl
 
La crittografia frattale in Perl
La crittografia frattale in PerlLa crittografia frattale in Perl
La crittografia frattale in Perl
 

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
  • 65. Una nuova crittografia frattale - classe Crypt::FNA Sezione 3: Crypt::FNA Metodo “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.48330143 6377.55135044 -768.07453852 6493.40995382 -290.38619797 6703.79926248 -101.38261857 6641.39653224 329.01095794 6547.35282987 491.23460593 6672.15350589 682.15153937 6767.07332641 951.17643798 7125.45527124 844.47157379 7301.13742586 616.45930112 7293.99200882 844.26353513 7262.78340711 1211.3200562 7315.25004987 1474.41515451 7121.21394711 1951.75973992 7224.47233263 2176.20365976 6962.04147204 2547.88708591 6998.13655185 2781.82594976 6972.85084038 3056.52905252 7371.28466715 3037.53030053 7569.06437014 3048.49593738 7320.32093005 3389.66342779 7357.81470144 3676.23526579 7708.87987244 3755.43863759 7814.8354795 3435.5290489 8296.58426972 3441.10117125 8627.97877198 3412.2773365 8623.6058585 3362.87465115 8767.32280898 3260.65143202 8583.97947961 2890.71868372 8474.68032897 2726.83436885 8650.05588533 2718.8481018 9045.95222039 2669.00976899 9254.66114943 2644.06562016 9103.68182141 3127.66020707 9113.43039278 3191.47856428 9188.88465234 3207.82184971 9202.57034881 3478.33454467 8945.6121183 3832.00806714 8945.62804071 4080.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::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

Notes de l'éditeur

  1. AUTORE
  2. AUTORE
  3. AUTORE
  4. AUTORE
  5. AUTORE
  6. AUTORE
  7. AUTORE
  8. AUTORE
  9. AUTORE
  10. AUTORE
  11. AUTORE
  12. AUTORE
  13. AUTORE
  14. AUTORE
  15. AUTORE
  16. AUTORE
  17. AUTORE
  18. AUTORE
  19. AUTORE
  20. AUTORE
  21. AUTORE
  22. AUTORE
  23. AUTORE
  24. AUTORE
  25. AUTORE
  26. AUTORE
  27. AUTORE
  28. AUTORE
  29. AUTORE
  30. AUTORE
  31. AUTORE
  32. AUTORE
  33. AUTORE
  34. AUTORE
  35. AUTORE
  36. AUTORE
  37. AUTORE
  38. AUTORE
  39. AUTORE
  40. AUTORE
  41. AUTORE
  42. AUTORE
  43. AUTORE
  44. AUTORE
  45. AUTORE
  46. AUTORE
  47. AUTORE
  48. AUTORE
  49. AUTORE
  50. AUTORE
  51. AUTORE
  52. AUTORE
  53. AUTORE
  54. AUTORE
  55. AUTORE
  56. AUTORE
  57. AUTORE
  58. AUTORE
  59. AUTORE
  60. AUTORE
  61. AUTORE
  62. AUTORE
  63. AUTORE
  64. AUTORE
  65. AUTORE
  66. AUTORE
  67. AUTORE
  68. AUTORE
  69. AUTORE
  70. AUTORE
  71. AUTORE
  72. AUTORE
  73. AUTORE
  74. AUTORE
  75. AUTORE
  76. AUTORE
  77. AUTORE
  78. AUTORE
  79. AUTORE
  80. AUTORE
  81. AUTORE
  82. AUTORE
  83. AUTORE
  84. AUTORE
  85. AUTORE
  86. AUTORE
  87. AUTORE
  88. AUTORE
  89. AUTORE
  90. AUTORE
  91. AUTORE
  92. AUTORE
  93. AUTORE
  94. AUTORE
  95. AUTORE
  96. AUTORE
  97. AUTORE
  98. AUTORE
  99. AUTORE
  100. AUTORE
  101. AUTORE
  102. AUTORE
  103. AUTORE
  104. AUTORE
  105. AUTORE
  106. AUTORE
  107. AUTORE
  108. AUTORE
  109. AUTORE
  110. AUTORE
  111. AUTORE
  112. AUTORE
  113. AUTORE
  114. AUTORE
  115. AUTORE
  116. AUTORE
  117. AUTORE
  118. AUTORE
  119. AUTORE
  120. AUTORE
  121. AUTORE
  122. AUTORE
  123. AUTORE
  124. AUTORE
  125. AUTORE
  126. AUTORE