Cos'è Cyphersol?
Cyphersol è un software innovativo di codifica e decodifica, estremamente versatile.
Il sistema si basa sulla suddivisione di un testo da codificare in due elementi distinti e univoci in ogni loro parte.
Per ricostruire il testo originale, sarà necessario disporre di entrambi gli elementi, poiché singolarmente non hanno alcuna utilità.
Cyphersol può essere per:
- Per la protezione dei dati
- Come password manager innovativo
- Per gestire l'eredità digitale
- Per gestire la sicurezza dei dispositivi informatici
Grazie alla sua struttura e al suo sistema di codifica, offre un altissimo livello di sicurezza in diversi ambiti.
Il sistema si basa sulla suddivisione di un testo da codificare in due elementi distinti e univoci in ogni loro parte.
Per ricostruire il testo originale, sarà necessario disporre di entrambi gli elementi, poiché singolarmente non hanno alcuna utilità.
Cyphersol può essere per:
- Per la protezione dei dati
- Come password manager innovativo
- Per gestire l'eredità digitale
- Per gestire la sicurezza dei dispositivi informatici
Grazie alla sua struttura e al suo sistema di codifica, offre un altissimo livello di sicurezza in diversi ambiti.
La matrice e il codice
Per poter codificare un testo con Cyphersol, è necessario, innanzitutto, generare una matrice univoca, che rappresenta il primo dei due elementi indispensabili.
Successivamente, utilizzando questa matrice, si potrà ottenere il secondo elemento, il codice univoco.
Questi due elementi, matrice e codice, sono strettamente collegati.
Potrà ricostruire il testo originale, solo chi li possiede entrambi.
Univocità delle matrici e dei codici
Le matrici e i codici generati da Cyphersol sono sempre univoci, cioè praticamente impossibili da duplicare.
La probabilità che vengano creati anche solo due elementi identici è virtualmente nulla.
Le ragioni dettagliate di questa unicità saranno approfondite più avanti.
Questa caratteristica rende matrici e codici indecifrabili e inviolabili, garantendo la massima sicurezza.
Successivamente, utilizzando questa matrice, si potrà ottenere il secondo elemento, il codice univoco.
Questi due elementi, matrice e codice, sono strettamente collegati.
Potrà ricostruire il testo originale, solo chi li possiede entrambi.
Univocità delle matrici e dei codici
Le matrici e i codici generati da Cyphersol sono sempre univoci, cioè praticamente impossibili da duplicare.
La probabilità che vengano creati anche solo due elementi identici è virtualmente nulla.
Le ragioni dettagliate di questa unicità saranno approfondite più avanti.
Questa caratteristica rende matrici e codici indecifrabili e inviolabili, garantendo la massima sicurezza.
Il sistema di codifica
Una parola, una frase, un capitolo di un libro, insomma un qualsiasi documento di testo, sono composti da una serie di elementi.
Questi elementi, lettere, numeri, simboli, spazi, punteggiature e ritorni a capo, sono tutti riconoscibili e identificabili, perché possiedono una loro identità, ed è proprio grazie a questa identità che possiamo leggere e comprendere il contenuto.
Prendiamo come esempio la frase: Pippo e Pluto
Al suo interno troviamo:
2 lettere P maiuscole,
2 lettere p minuscole,
2 spazi,
e altri caratteri distinti.
In tutto, la frase è composta da 13 elementi, ciascuno con una precisa identità.
Alcune identità si ripetono, come nel caso delle due P maiuscole o dei due spazi.
Ora, per capire il funzionamento del sistema di codifica Cyphersol, proviamo a cambiare prospettiva.
Prendiamo la stessa frase, “Pippo e Pluto”, e ignoriamo completamente l’identità dei singoli elementi.
Consideriamoli solo come 13 posizioni.
A questo punto, immaginiamo di svuotare ogni posizione della sua identità originale e di riempirla con una stringa casuale e univoca.
Otterremo così 13 stringhe distinte, una per ogni posizione.
Ora mettiamo insieme le 13 stringhe, che d'ora in poi chiameremo minicodici.
Il risultato sarà un codice costituito da 13 minicodici univoci, privi di riferimenti espliciti al contenuto originale.
Il primo minicodice, ad esempio, in questo momento non rappresenta la lettera “P” maiuscola: rappresenta semplicemente la prima posizione.
Ovviamente avrà un legame con la lettera P ma solo durante la fase di codifica e decodifica come vedremo in seguito.
Per tutto il tempo in cui farà parte di un codice rappresenterà una semplice posizione.
Ecco il cuore del sistema Cyphersol:
una trasformazione in cui ogni elemento del testo originale viene sostituito da un valore unico, disgiunto dalla sua identità iniziale.
Ma vediamo un esempio pratico di una assegnazione di minicodici all'interno delle 13 posizioni.
Qw6l7B1voSejZ51i6Y5fhIu@t?Q7!DpvQ!fH49o0G?%XqpRxy
Abbiamo compreso un concetto fondamentale:
un codice costruito con minicodici univoci casuali, privo di riferimenti diretti agli elementi originali non può, da solo, essere decifrato in alcun modo.
Non contiene indizi, non rivela nulla: è completamente anonimo.
A questo punto è naturale porsi una domanda:
Come sarà possibile ricostruire il testo originale?
La risposta la troveremo nei prossimi passaggi del tutorial.
Il codice da solo non basta
Il codice è esattamente ciò che dovrebbe essere:
un elemento univoco e completamente indecifrabile.
Così lo ha immaginato il creatore del sistema Cyphersol.
Ma il sistema non si ferma qui.
Prevede infatti anche un metodo per ricostruire il testo originale, a condizione di possedere un secondo elemento fondamentale.
L’idea alla base di Cyphersol è semplice e potente:
Per ricostruire un testo codificato servono due elementi distinti, ciascuno privo di senso se preso singolarmente.
Del primo elemento, il codice, abbiamo già parlato.
Il secondo è la matrice.
Cos'è la matrice
La matrice è un file che contiene tutti i caratteri codificabili dal sistema:
attualmente 213 simboli più lo spazio e il ritorno a capo, per un totale di 215 elementi.
Ad ogni elemento della matrice vengono assegnati, in modo casuale, dei minicodici univoci.
Il numero di minicodici assegnati per ogni elemento viene scelto dall’utente, in base alle proprie esigenze (tipicamente, in base alla lunghezza dei testi da codificare).
L’univocità come garanzia
Un minicodice:
- compare una sola volta nella matrice;
- viene utilizzato una sola volta all’interno del codice.
Questo significa che ogni singolo minicodice è irripetibile, sia nella matrice sia nel testo codificato.
Esempio pratico
Supponiamo di voler codificare la frase:
"Topolino e Paperino"
Il carattere più frequente è la lettera "o" minuscola, che compare 4 volte.
Per codificare questa frase con successo:
la matrice dovrà contenere almeno 4 minicodici;
se ce ne fossero solo 3, il software non sarebbe in grado di completare la codifica.
Questo perché ogni "o" deve essere rappresentata da un minicodice diverso e univoco.
Conclusione
Scegliere un numero maggiore o minore di minicodici non cambia la sicurezza del sistema, ma determina la lunghezza massima dei testi codificabili.
La robustezza del metodo rimane invariata:
anche con un solo minicodice per elemento, il codice risulterà comunque indecifrabile senza la matrice corrispondente.
🔐 Fase di Codifica
Dopo aver creato una matrice, l’utente può procedere alla codifica di un testo.
Il software analizza il contenuto e assegna casualmente i minicodici alle varie posizioni occupate dai caratteri da codificare.
È importante sottolineare che la codifica non è mai identica:
anche con lo stesso testo e la stessa matrice, ogni esecuzione genera un codice diverso.
Una matrice con molti minicodici permette di codificare infinite volte uno stesso testo, producendo ogni volta un risultato unico.
I minicodici vengono messi in sequenza per formare il file finale: code.txt.
Una volta ottenuti matrice e codice, l’utente può eliminare il testo in chiaro:
saranno questi due elementi a permettere, in futuro, la ricostruzione del contenuto.
⚠️ Attenzione:
I due file devono essere salvati separatamente.
Il codice (code.txt) può essere salvato anche su un cloud.
La matrice (matrix.json) non deve mai essere condivisa o messa in rete:
tutte le operazioni di codifica e decodifica devono avvenire esclusivamente in locale.
🔓 Fase di Decodifica e Ricostruzione
Per ricostruire il testo originale, l’utente dovrà:
Posizionare la matrice e il codice nella cartella di lavoro dell’app Cyphersol (verrà mostrato in seguito).
Assicurarsi che entrambi i file siano esattamente gli stessi usati nella fase di codifica.
❗ Usare una matrice diversa da quella originale non permetterà in alcun modo di decodificare il codice.
A quel punto, l’app:
Analizzerà il contenuto del file code.txt;
Riconoscerà ogni minicodice e troverà il corrispondente carattere nella matrice;
Ricostruirà il testo eseguendo un processo inverso rispetto alla codifica.
Il risultato sarà il testo in chiaro originale, esattamente come inserito all’inizio.
🧠 Come la app riconosce i minicodici
I più attenti si staranno chiedendo:
"Come fa la app a riconoscere i singoli minicodici all'interno di un lungo codice compatto, privo di spazi o separatori?"
La risposta risiede in una caratteristica chiave del sistema Cyphersol, progettata proprio per questo scopo.
🔹 Ogni minicodice inizia con una lettera maiuscola, e
🔹 può contenere una sola lettera maiuscola al suo interno.
Questa regola semplice ma efficace consente al software di identificare con precisione dove inizia e finisce ciascun minicodice, anche in un flusso continuo di testo senza interruzioni.
🧬 Unicità del sistema
Questa struttura non serve solo alla decodifica automatica da parte dell’app:
è anche ciò che rende Cyphersol unico rispetto a qualsiasi altro sistema di codifica.
💡 Infatti, proprio grazie a questa logica, è possibile — per chi lo desidera — eseguire la codifica e la decodifica anche manualmente, senza bisogno del software.
Una caratteristica che offre un ulteriore livello di controllo, trasparenza e sicurezza.
🔍 Come verificare che i minicodici siano realmente univoci
Tutto molto interessante, ma a questo punto una domanda sorge spontanea:
"Chi ci assicura che i minicodici presenti nella matrice e nel codice siano davvero univoci?"
✅ Metodo intuitivo: la prova pratica
Un primo controllo, semplice ed efficace, è stato già illustrato in precedenza:
Basta creare una matrice scegliendo un numero ridotto di minicodici, ad esempio 3, e provare a codificare un testo contenente un carattere ripetuto più di tre volte (es. la lettera “o” nella frase Topolino e Paperino).
Il sistema rifiuterà la codifica, confermando che ogni minicodice può essere usato una sola volta.
🧪 Metodo avanzato: verifica diretta con terminale
Per un controllo completo e rigoroso dell’univocità dei minicodici all’interno della matrice, possiamo utilizzare una verifica manuale.
Supponiamo di aver creato una matrice con 1000 minicodici per ciascuno dei 215 caratteri codificabili (inclusi spazio e ritorno a capo).
In totale ci aspettiamo quindi:
1000 minicodici × 215 caratteri = 215000 minicodici univoci
🔧 Verifica su Linux con terminale
Assicurati di trovarti nella directory contenente matrix.json
Apri un terminale e inserisci i seguenti comandi:
Questi elementi, lettere, numeri, simboli, spazi, punteggiature e ritorni a capo, sono tutti riconoscibili e identificabili, perché possiedono una loro identità, ed è proprio grazie a questa identità che possiamo leggere e comprendere il contenuto.
Prendiamo come esempio la frase: Pippo e Pluto
Al suo interno troviamo:
2 lettere P maiuscole,
2 lettere p minuscole,
2 spazi,
e altri caratteri distinti.
In tutto, la frase è composta da 13 elementi, ciascuno con una precisa identità.
Alcune identità si ripetono, come nel caso delle due P maiuscole o dei due spazi.
Ora, per capire il funzionamento del sistema di codifica Cyphersol, proviamo a cambiare prospettiva.
Prendiamo la stessa frase, “Pippo e Pluto”, e ignoriamo completamente l’identità dei singoli elementi.
Consideriamoli solo come 13 posizioni.
A questo punto, immaginiamo di svuotare ogni posizione della sua identità originale e di riempirla con una stringa casuale e univoca.
Otterremo così 13 stringhe distinte, una per ogni posizione.
Ora mettiamo insieme le 13 stringhe, che d'ora in poi chiameremo minicodici.
Il risultato sarà un codice costituito da 13 minicodici univoci, privi di riferimenti espliciti al contenuto originale.
Il primo minicodice, ad esempio, in questo momento non rappresenta la lettera “P” maiuscola: rappresenta semplicemente la prima posizione.
Ovviamente avrà un legame con la lettera P ma solo durante la fase di codifica e decodifica come vedremo in seguito.
Per tutto il tempo in cui farà parte di un codice rappresenterà una semplice posizione.
Ecco il cuore del sistema Cyphersol:
una trasformazione in cui ogni elemento del testo originale viene sostituito da un valore unico, disgiunto dalla sua identità iniziale.
Ma vediamo un esempio pratico di una assegnazione di minicodici all'interno delle 13 posizioni.
Qw6l7B1voSejZ51i6Y5fhIu@t?Q7!DpvQ!fH49o0G?%XqpRxy
Abbiamo compreso un concetto fondamentale:
un codice costruito con minicodici univoci casuali, privo di riferimenti diretti agli elementi originali non può, da solo, essere decifrato in alcun modo.
Non contiene indizi, non rivela nulla: è completamente anonimo.
A questo punto è naturale porsi una domanda:
Come sarà possibile ricostruire il testo originale?
La risposta la troveremo nei prossimi passaggi del tutorial.
Il codice da solo non basta
Il codice è esattamente ciò che dovrebbe essere:
un elemento univoco e completamente indecifrabile.
Così lo ha immaginato il creatore del sistema Cyphersol.
Ma il sistema non si ferma qui.
Prevede infatti anche un metodo per ricostruire il testo originale, a condizione di possedere un secondo elemento fondamentale.
L’idea alla base di Cyphersol è semplice e potente:
Per ricostruire un testo codificato servono due elementi distinti, ciascuno privo di senso se preso singolarmente.
Del primo elemento, il codice, abbiamo già parlato.
Il secondo è la matrice.
Cos'è la matrice
La matrice è un file che contiene tutti i caratteri codificabili dal sistema:
attualmente 213 simboli più lo spazio e il ritorno a capo, per un totale di 215 elementi.
Ad ogni elemento della matrice vengono assegnati, in modo casuale, dei minicodici univoci.
Il numero di minicodici assegnati per ogni elemento viene scelto dall’utente, in base alle proprie esigenze (tipicamente, in base alla lunghezza dei testi da codificare).
L’univocità come garanzia
Un minicodice:
- compare una sola volta nella matrice;
- viene utilizzato una sola volta all’interno del codice.
Questo significa che ogni singolo minicodice è irripetibile, sia nella matrice sia nel testo codificato.
Esempio pratico
Supponiamo di voler codificare la frase:
"Topolino e Paperino"
Il carattere più frequente è la lettera "o" minuscola, che compare 4 volte.
Per codificare questa frase con successo:
la matrice dovrà contenere almeno 4 minicodici;
se ce ne fossero solo 3, il software non sarebbe in grado di completare la codifica.
Questo perché ogni "o" deve essere rappresentata da un minicodice diverso e univoco.
Conclusione
Scegliere un numero maggiore o minore di minicodici non cambia la sicurezza del sistema, ma determina la lunghezza massima dei testi codificabili.
La robustezza del metodo rimane invariata:
anche con un solo minicodice per elemento, il codice risulterà comunque indecifrabile senza la matrice corrispondente.
🔐 Fase di Codifica
Dopo aver creato una matrice, l’utente può procedere alla codifica di un testo.
Il software analizza il contenuto e assegna casualmente i minicodici alle varie posizioni occupate dai caratteri da codificare.
È importante sottolineare che la codifica non è mai identica:
anche con lo stesso testo e la stessa matrice, ogni esecuzione genera un codice diverso.
Una matrice con molti minicodici permette di codificare infinite volte uno stesso testo, producendo ogni volta un risultato unico.
I minicodici vengono messi in sequenza per formare il file finale: code.txt.
Una volta ottenuti matrice e codice, l’utente può eliminare il testo in chiaro:
saranno questi due elementi a permettere, in futuro, la ricostruzione del contenuto.
⚠️ Attenzione:
I due file devono essere salvati separatamente.
Il codice (code.txt) può essere salvato anche su un cloud.
La matrice (matrix.json) non deve mai essere condivisa o messa in rete:
tutte le operazioni di codifica e decodifica devono avvenire esclusivamente in locale.
🔓 Fase di Decodifica e Ricostruzione
Per ricostruire il testo originale, l’utente dovrà:
Posizionare la matrice e il codice nella cartella di lavoro dell’app Cyphersol (verrà mostrato in seguito).
Assicurarsi che entrambi i file siano esattamente gli stessi usati nella fase di codifica.
❗ Usare una matrice diversa da quella originale non permetterà in alcun modo di decodificare il codice.
A quel punto, l’app:
Analizzerà il contenuto del file code.txt;
Riconoscerà ogni minicodice e troverà il corrispondente carattere nella matrice;
Ricostruirà il testo eseguendo un processo inverso rispetto alla codifica.
Il risultato sarà il testo in chiaro originale, esattamente come inserito all’inizio.
🧠 Come la app riconosce i minicodici
I più attenti si staranno chiedendo:
"Come fa la app a riconoscere i singoli minicodici all'interno di un lungo codice compatto, privo di spazi o separatori?"
La risposta risiede in una caratteristica chiave del sistema Cyphersol, progettata proprio per questo scopo.
🔹 Ogni minicodice inizia con una lettera maiuscola, e
🔹 può contenere una sola lettera maiuscola al suo interno.
Questa regola semplice ma efficace consente al software di identificare con precisione dove inizia e finisce ciascun minicodice, anche in un flusso continuo di testo senza interruzioni.
🧬 Unicità del sistema
Questa struttura non serve solo alla decodifica automatica da parte dell’app:
è anche ciò che rende Cyphersol unico rispetto a qualsiasi altro sistema di codifica.
💡 Infatti, proprio grazie a questa logica, è possibile — per chi lo desidera — eseguire la codifica e la decodifica anche manualmente, senza bisogno del software.
Una caratteristica che offre un ulteriore livello di controllo, trasparenza e sicurezza.
🔍 Come verificare che i minicodici siano realmente univoci
Tutto molto interessante, ma a questo punto una domanda sorge spontanea:
"Chi ci assicura che i minicodici presenti nella matrice e nel codice siano davvero univoci?"
✅ Metodo intuitivo: la prova pratica
Un primo controllo, semplice ed efficace, è stato già illustrato in precedenza:
Basta creare una matrice scegliendo un numero ridotto di minicodici, ad esempio 3, e provare a codificare un testo contenente un carattere ripetuto più di tre volte (es. la lettera “o” nella frase Topolino e Paperino).
Il sistema rifiuterà la codifica, confermando che ogni minicodice può essere usato una sola volta.
🧪 Metodo avanzato: verifica diretta con terminale
Per un controllo completo e rigoroso dell’univocità dei minicodici all’interno della matrice, possiamo utilizzare una verifica manuale.
Supponiamo di aver creato una matrice con 1000 minicodici per ciascuno dei 215 caratteri codificabili (inclusi spazio e ritorno a capo).
In totale ci aspettiamo quindi:
1000 minicodici × 215 caratteri = 215000 minicodici univoci
🔧 Verifica su Linux con terminale
Assicurati di trovarti nella directory contenente matrix.json
Apri un terminale e inserisci i seguenti comandi:
jq -r '.[] | .[]' matrix.json | wc -l
jq -r '.[] | .[]' matrix.json | sort | uniq | wc -l
jq -r '.[] | .[]' matrix.json | sort | uniq | wc -l
📌 Cosa fanno questi comandi:
Il primo comando conta il numero totale di minicodici nella matrice
Il secondo comando conta invece il numero di minicodici univoci
Se tutto è corretto, i due numeri devono essere identici.
Esempio:
215000
215000
Se volete un ulteriore conferma potrete eseguire un test modificando la matrice inserendo dei duplicati, supponiamo 5, otterrete un risultato simile a questo:
215000
214995
❗ Questo significa che 5 minicodici sono duplicati, e quindi la matrice non è più valida per Cyphersol.
Conclusioni
Ogni elemento è univoco
Ogni elemento che viene creato da Cyphersol è univoco.
La matrice è univoca.
Il codice è univoco e formato da decine, centinaia o migliaia di ulteriori minicodici a loro volta univoci.
Non esisterà mai un solo elemento duplicato.
In pratica la codifica di uno stesso testo eseguita anche un infinità di volte darà risultati sempre diversi.
Il sistema assegna un minicodice univoco a ogni lettera (maiuscola, minuscola, accentata o speciale), numero, simbolo, spazio e ritorno a capo.
Questo processo trasforma qualsiasi testo in un unico grande codice complessivo, anch’esso univoco, che può essere decodificato esclusivamente tramite una matrice altrettanto univoca.
È proprio questa caratteristica che rende il sistema totalmente sicuro e inviolabile.
Il primo comando conta il numero totale di minicodici nella matrice
Il secondo comando conta invece il numero di minicodici univoci
Se tutto è corretto, i due numeri devono essere identici.
Esempio:
215000
215000
Se volete un ulteriore conferma potrete eseguire un test modificando la matrice inserendo dei duplicati, supponiamo 5, otterrete un risultato simile a questo:
215000
214995
❗ Questo significa che 5 minicodici sono duplicati, e quindi la matrice non è più valida per Cyphersol.
Conclusioni
Ogni elemento è univoco
Ogni elemento che viene creato da Cyphersol è univoco.
La matrice è univoca.
Il codice è univoco e formato da decine, centinaia o migliaia di ulteriori minicodici a loro volta univoci.
Non esisterà mai un solo elemento duplicato.
In pratica la codifica di uno stesso testo eseguita anche un infinità di volte darà risultati sempre diversi.
Il sistema assegna un minicodice univoco a ogni lettera (maiuscola, minuscola, accentata o speciale), numero, simbolo, spazio e ritorno a capo.
Questo processo trasforma qualsiasi testo in un unico grande codice complessivo, anch’esso univoco, che può essere decodificato esclusivamente tramite una matrice altrettanto univoca.
È proprio questa caratteristica che rende il sistema totalmente sicuro e inviolabile.