s Cyphersol - Guida in italiano

Guida all'utilizzo - Codifica di un testo


Il file matrix.json

Per poter codificare un testo, per prima cosa dovremo assicurarci che nella cartella cyphersol_data, che deve essere presente nella nostra home, sia presente il file matrix.json della matrice che desideriamo utilizzare.
Questo file è indispensabile per la creazione del codice.

Creazione del codice

Nella pagina di apertura della app cliccare su codifica un testo e nella schermata successiva cliccare su Clicca qui per codificare un testo.
Nella schermata che si aprirà inserire il testo da codificare e poi cliccare su conferma.
Il testo si potrà sia inserire tramite copia-incolla che digitare manualmente.
Una volta che avrete cliccato su conferma, il codice verrà creato e finirà nella cartella cyphersol_data sotto il nome di code.txt.

Come funziona la codifica

Con Cyphersol potremo creare fino ad un massimo di 16382 codici casuali e univoci per ogni carattere, numero, simbolo e spazio.
Il codice, per ogni carattere, sarà il risultato del concatenamento del contenuto alfabetico di una determinata cella nella Zona B con quello numerico della Zona C, tassativamente della stessa colonna.
In pratica ogni singolo carattere maiuscolo, minuscolo, lettera accentata, numero, simbolo, spazio o ritorno a capo presente nella prima colonna a partire dalla cella A2 verrà codificato in una stringa composta dal concatenamento della stringa presente nelle celle della riga 1 (a parte la prima cella in cui c'è la parola Cyphersol che non ha nessuna funzione) con i numeri della stessa colonna e corrispondenti alla riga del carattere da codificare.

Esempio di codifica basata sull'utilizzo della seguente matrice:



Per questo esempio utilizzeremo la porzione di matrice di questa immagine, in cui possiamo visualizzare in maniera completa, essendo appunto un'immagine, solo i caratteri maiuscoli.
Supponiamo di voler codificare la lettera H.
Dovremo prendere il contenuto di una cella della Zona A e per questo esempio prendiamo la cella della colonna C.
Il contenuto di questa cella è Be.
Fatto questo, dovremo prendere, sempre dalla stessa colonna, il numero corrispondente alla riga del carattere da codificare, la H, che è 162.
Il codice di questo carattere sarà Be162 (vedi immagine seguente).



Potremo eseguire questa operazione utilizzando ogni colonna della matrice.
Se ne deduce che più colonne creeremo durante la scelta della matrice e più codici univoci per carattere faremo creare al software.
Ho inserito un limite di 100 colonne massimo, che equivalgono a 100 codifiche univoche per ogni carattere, dato che le ritengo più che sufficienti e tuttavia, soprattutto per le versioni matrix 3 e matrix 4 si potrebbe aumentare questo limite in maniera esponenziale
Tornando all'esempio precedente, il codice della H basato su questa matrice, che ricordo essere univoca, potrebbe essere anche Az43, D43, Dgd141, Djs131 ecc ecc.
Il software assegnerà casualmente i codici ad ogni carattere.

Supponiamo di voler codificare la parola HELLO.
Dovremo codificare 5 lettere maiuscole.
Vediamo alcuni esempi di risultati possibili:

Dgd141Jv166Re61Az85Rpr104
Fp10X48J161Be137Fp136
J88J179D91Be137Vhq96
Hdg130Jv166Fp23H189Hdg178

Tutti questi codici sono il risultato della stessa parola "HELLO".
In questo caso stiamo codificando una singola parola ma, come vedremo, alla funzione di concatenamento dei singoli codici non interessa se stiamo parlando di singole parole semplici o di frasi complesse, piene magari di caratteri speciali, punteggiature, spazi e ritorni a capo.
Ognuno di essi verrà codificato e concatenato allo stesso modo.
Per ora comunque analizziamo il risultato del primo dei 4 risultati della codifica della parola HELLO:

Dgd141Jv166Re61Az85Rpr104

Ecco il risultato dettagliato della codifica dei singoli caratteri:

H = Dgd + 141 = Dgd141

E = Jv + 166 = Jv166

L = Re + 61 = Re61

L = Az + 85 = Az85

O = Rpr + 104 = Rpr104

Questa procedura di decodifica può essere facilmente eseguita anche manualmente (anche se richiederà molto più tempo).
Ogni carattere codificato all'interno di una parola o di una frase, infatti, inizierà con una lettera maiuscola e finirà con l'ultimo numero prima di una nuova lettera maiuscola.
Nell'esempio appena esaminato, potremo renderci conto di questo visualizzando i codici concatenati, differenziati dai diversi colori:

Dgd141Jv166Re61Az85Rpr104

Questa potrebbe essere vista come una vulnerabilità dato che si potrebbe pensare che potrebbe far capire di quante parole è composta una frase.
Non è così e il motivo è semplice.
Esattamente con la stessa modalità in cui verranno codificati tutti i caratteri (vedi lista qui) verranno codificati gli spazi e i ritorni a capo
Non entro nei dettagli tecnici che mi hanno permesso di riuscire ad ottenere anche la codifica e decodifica degli spazi e dei ritorni a capo, (per questo si potrà analizzare il codice), ma la loro identificazione nella matrice xlsx sarà la seguente:
per lo spazio si dovrà fare riferimento al simbolo (la riga 2 della matrice)
per il ritorno a capo si dovrà fare riferimento al simbolo (la riga 3 della matrice).
A questo proposito analizziamo un testo in cui è presente uno spazio.
Codifichiamo la frase HELLO WORLD.
Ecco uno dei possibili risultati:

Vhq128Djs49Re61Djs3Be66Vhq29J92Rpr104J17Dgd98X78

Poniamo in primo luogo l'attenzione al codice Vhq29.
Corrisponderà alla colonna O della matrice e al carattere che corrisponderà allo spazio presente tra la parola HELLO e WORLD.
L'unica informazione a cui si può risalire analizzando il codice è, pertanto, il numero dei caratteri presenti nella frase ma non sarà possibile in nessun modo capire di quante parole è composta.

Ecco il risultato dettagliato della codifica dei singoli caratteri e dello spazio:

H = Vhq + 128 = Vhq128

E = Djs + 49 = Djs49

L = Re + 61 = Re61

L = Djs + 3 = Djs3

O = Be + 66 = Be66

spazio = Vhq + 29 = Vhq29

W = J + 92 = J92

O = Rpr + 104 = Rpr104

R = J + 17 = J17

L = Dgd + 98 = Dgd98

D = X + 78 = X78

Lo spazio e il ritorno a capo

Come già detto in precedenza sia gli spazi che le operazioni di ritorno a capo verranno codificate esattamente come tutti gli altri caratteri
Ciò che deve essere chiaro è che verranno codificati sempre.
Se tra una parola e l'altra inserisco un solo spazio questo verrà codificato una volta.
Se metto 10 spazi verranno codificati 10 spazi.
E la stessa cosa vale per i ritorno a capo.
E in qualsiasi posizione del file essi vengano posizionati.

Nella pagina seguente della guida capiremo come funziona la decodifica di un codice