l1uk / DIY-Cryptography

DIY cryptography project based on cellular automata simulations
0 stars 1 forks source link

"A hybrid image encryption algorithm" #2

Open danivolo opened 3 years ago

danivolo commented 3 years ago

Riassunto dell'algoritmo

E = ( C P I ) BITXOR L BITXOR ( T I )

con:

La password è costituita da 10 numeri reali che costituiscono il seme delle varie mappe caotiche utilizzate:

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.