I l'immagine originale vista come vettore di interi tra 0 e 255 di MN elementi, dove M e N sono rispettivamente il numero di righe e di colonne dell'immagine originale.
E immagine criptata
P permutazione (vista per esempio come matrice MN x MN) ottenuta tramite mappa logistica e Life
C matrice diagonale (o vettore che viene moltiplicato element-wise) invertibile ottenuta con la mappa di Chebishev
L vettore ottenuto risolvendo numericamente l'equazione dell'attrattore di Lorenz
T trasformazione lineare (grosso problema dell'algoritmo, da chiarire)
BITXOR su interi positivi 8bit restituisce il numero 8bit in cui ogni bit è ottenuto come lo XOR dei bit corrispondenti
Dove non specificato il prodotto è il solito prodotto tra matrici e vettori
La password è costituita da 10 numeri reali che costituiscono il seme delle varie mappe caotiche utilizzate:
le due mappe caotiche necessarie per la permutazione necessitano entrambe un valore iniziale (X0 e Y0) e di un coefficiente (mu1 e mu2)
la mappa di Chebishev necessita di un valore iniziale (C0) e di un coefficiente (mu3)
l'attrattore di Lorenz necessita di un valore iniziale (p0 = (x0,y0,z0)) e del passo (h) utilizzato nell'integrazione numerica
[ ] Elencare le condizioni sui valori della password
Permutazione
La permutazione si potrà inizialmente visualizzare come un vettore di lunghezza MN contenente gli interi positivi fino a MN. Se l'elemento a-esimo è k, la nuova posizione dell'elemento k dell'immagine sarà a.
Generati tramite la mappa logistica due vettori X e Y di lunghezza MN, lo stato iniziale di Life è il risultato dell'operazione logica X > Y, riordinato in forma di matrice M x N. Si lascia evolvere Life per un numero fissato di iterazioni (non incluso nella password, da decidere, anche piccolo) e tutte le configurazioni parziali vengono utilizzate. Dopo l'evoluzione del sistema consideriamo ogni configurazione come un vettore di MN elementi.
Ognuna delle MN cellule dell'universo di Life passa da viva a morta potenzialmente più volte nel corso dell'evoluzione dell'automa. Per ogni cellula consideriamo l'istante in cui si trovano vive per la prima volta, che chiamiamo indice di nascita. Per tutte le cellule vive nello stato iniziale l'indice di nascita 0. Per quelle inizialmente morte che rinascono dopo la prima iterazione è 1, e così via. Le cellule che rimangono morte avranno indice di nascita n+1, dove n è il numero di iterazioni del sistema.
Creiamo un nuovo ordinamento delle MN cellule (1,2,...,MN) per cui prima vengono tutte le cellule con indice di nascita 0, poi quelle con indice di nascita 1 e così via. Tra le cellule con stesso indice di nascita viene conservato l'ordine (1,2,3...). Questo nuovo ordinamento costituisce la permutazione visualizzata come vettore.
Riassunto dell'algoritmo
E = ( C P I ) BITXOR L BITXOR ( T I )
con:
Dove non specificato il prodotto è il solito prodotto tra matrici e vettori
La password è costituita da 10 numeri reali che costituiscono il seme delle varie mappe caotiche utilizzate:
le due mappe caotiche necessarie per la permutazione necessitano entrambe un valore iniziale (X0 e Y0) e di un coefficiente (mu1 e mu2)
la mappa di Chebishev necessita di un valore iniziale (C0) e di un coefficiente (mu3)
l'attrattore di Lorenz necessita di un valore iniziale (p0 = (x0,y0,z0)) e del passo (h) utilizzato nell'integrazione numerica
[ ] Elencare le condizioni sui valori della password
Permutazione La permutazione si potrà inizialmente visualizzare come un vettore di lunghezza MN contenente gli interi positivi fino a MN. Se l'elemento a-esimo è k, la nuova posizione dell'elemento k dell'immagine sarà a.
Generati tramite la mappa logistica due vettori X e Y di lunghezza MN, lo stato iniziale di Life è il risultato dell'operazione logica X > Y, riordinato in forma di matrice M x N. Si lascia evolvere Life per un numero fissato di iterazioni (non incluso nella password, da decidere, anche piccolo) e tutte le configurazioni parziali vengono utilizzate. Dopo l'evoluzione del sistema consideriamo ogni configurazione come un vettore di MN elementi.
Ognuna delle MN cellule dell'universo di Life passa da viva a morta potenzialmente più volte nel corso dell'evoluzione dell'automa. Per ogni cellula consideriamo l'istante in cui si trovano vive per la prima volta, che chiamiamo indice di nascita. Per tutte le cellule vive nello stato iniziale l'indice di nascita 0. Per quelle inizialmente morte che rinascono dopo la prima iterazione è 1, e così via. Le cellule che rimangono morte avranno indice di nascita n+1, dove n è il numero di iterazioni del sistema.
Creiamo un nuovo ordinamento delle MN cellule (1,2,...,MN) per cui prima vengono tutte le cellule con indice di nascita 0, poi quelle con indice di nascita 1 e così via. Tra le cellule con stesso indice di nascita viene conservato l'ordine (1,2,3...). Questo nuovo ordinamento costituisce la permutazione visualizzata come vettore.