Le Codage

Préambule


Lors de la création de la matrice, nous pourrons choisir combien de minicodes attribuer à chaque caractère encodable.

📌 Exemple pratique
Si nous choisissons de générer une matrice avec 10 minicodes, chaque caractère recevra 10 minicodes uniques et aléatoires.
Lors du codage du texte, le logiciel attribuera un de ces minicodes à chaque occurrence du caractère correspondant.
⚠️ Attention : un même minicode ne peut être utilisé qu’une seule fois.

🚫 Que se passe-t-il s’il n’y a pas assez de minicodes ?
Si un caractère apparaît plus souvent dans le texte que le nombre de minicodes disponibles, le codage échouera.

Exemple :

Nous avons créé une matrice avec 10 minicodes.
Nous voulons coder un texte qui contient 11 lettres “c”.
❌ Le codage ne pourra pas être complété, car il n’y aura pas de minicode disponible pour le onzième “c”.

Le fichier matrix.json


Pour coder un texte, nous devons d’abord nous assurer que le fichier matrix.json de la matrice que nous souhaitons utiliser est présent dans le dossier de travail.
Ce fichier est indispensable pour la création du code.

Création du code


Dans la section Coder un texte, cliquez sur Coder.

Dans la fenêtre qui s’ouvre, saisissez le texte à coder. Le texte peut être :

- Saisi manuellement.
- Collé via copier-coller.


Une fois le texte saisi, cliquez sur Confirmer.

Le système générera automatiquement le code, qui sera enregistré localement dans le système et visible dans le dossier de travail sous le nom code.txt

Comment fonctionne le codage


Avec Cyphersol, à chaque lettre majuscule, minuscule, accentuée, caractère spécial, chiffre, symbole, espace et retour à la ligne peuvent être attribués plusieurs minicodes aléatoires et uniques.
Si l’on crée une matrice avec le paramètre par défaut (100 colonnes), un maximum de 100 minicodes aléatoires et uniques peut être attribué à chaque caractère.
Cependant, lors de la génération de la matrice, on peut choisir de créer jusqu’à un maximum de 16382 colonnes.

Le minicode attribué à un caractère unique sera le résultat d’une concaténation.
Ce qui est concaténé est le contenu d’une cellule quelconque de la zone B avec les nombres de la cellule (impérativement de la même colonne) correspondant à la ligne du caractère à coder.

Exemple de codage basé sur l’utilisation de la matrice suivante :

Immagine 1


Pour cet exemple, nous utiliserons la portion de matrice représentée sur cette image, où seuls les caractères majuscules sont entièrement visibles, puisqu’il s’agit d’une image.
Supposons que nous voulons coder la lettre H.
Nous devons prendre le contenu d’une cellule de la Zone A et, pour cet exemple, prenons celle de la colonne E.
Le contenu de cette cellule est Dzby.
Ensuite, nous devons prendre, toujours dans la même colonne, le nombre correspondant à la ligne du caractère à coder, en l’occurrence la H, soit 41.
Le minicode pour ce caractère sera Dzby41 (voir image ci-dessous).

Immagine 1


Supposons maintenant que nous voulons coder le mot HELLO.
Nous devons coder 5 lettres majuscules.
Voyons quelques exemples de résultats possibles :


Snd206N170Ua150Tg24Qp109

Tg90Nqj124Usr114Esqs106Ua172

Qjhb149Qjhb145K88Tg24J27

V35N170S154Ua150Ua172




Pour un contrôle plus approfondi, tu trouveras en bas de cette page les liens pour télécharger la matrice aux formats xlsx et json.
Pour l’application, seul le fichier json est nécessaire.
Une fois la matrice obtenue, crée un fichier texte, renomme-le code.txt, saisis les codes de l’exemple, importe le fichier code.txt dans le dossier de travail, puis décode-les avec l’application.



Tous ces codes sont le résultat du même mot HELLO.
Dans ce cas, nous codons un seul mot, mais comme nous le verrons, la fonction de concaténation des minicodes ne tient pas compte du fait qu’il s’agisse de mots simples ou de phrases complexes, pleines de caractères spéciaux, de ponctuation, d’espaces et de retours à la ligne.
Chacun d’eux sera codé et concaténé de la même manière.
Pour l’instant, analysons le résultat du premier des 4 encodages du mot HELLO :


Snd206N170Ua150Tg24Qp109


Voici le résultat détaillé du codage des caractères individuels :

Caractère Concaténation Code
H = Snd + 206 = Snd206
E = N + 170 = N170
L = Ua + 150 = Ua150
L = Tg + 24 = Tg24
O = Qp + 109 = Qp109

Cette procédure de décodage peut également être effectuée manuellement (même si elle prendra beaucoup plus de temps).
Chaque caractère codé dans un mot ou une phrase commencera par une lettre majuscule et se terminera par le dernier chiffre avant une nouvelle majuscule.
Dans l’exemple précédent, on peut s’en rendre compte en visualisant les minicodes concaténés, différenciés par différentes couleurs :


Snd206N170Ua150Tg24Qp109


Le codage et décodage manuel pourrait soulever une question chez les plus attentifs d'entre vous.
C'est bien pour les caractères, mais qu'en est-il du codage manuel des espaces et des retours à la ligne ?
Je ne vais pas entrer dans les détails techniques qui m'ont permis de réaliser le codage et le décodage des espaces et des retours à la ligne au niveau logiciel (vous pourrez analyser le code à ce sujet), mais la solution au niveau logiciel est également la solution pour l'identification manuelle.
Essentiellement, la solution a été d'attribuer un symbole à l'espace et au retour à la ligne.
Plus précisément, un idéogramme.
pour les espaces, il faut se référer au symbole (ligne 2 de la matrice)
pour les retours à la ligne, il faut se référer au symbole (ligne 3 de la matrice).
Analysons maintenant un texte où un espace est présent.
Codons la phrase HELLO WORLD.

Voici l'un des résultats possibles:


Dzby41Esqs94Zuu74Rw179R109Efd32Y57Qjhb45Wu131Np18Rgdf139


Concentrons-nous d’abord sur le minicode Efd32.
Il correspond à la colonne F de la matrice et au caractère , qui représente l’espace entre les mots HELLO et WORLD.
La seule information que l’on peut déduire en analysant un minicode de ce type, où chaque caractère, espace ou retour à la ligne est codé de manière unique, est le nombre de caractères présents dans la phrase. Il est cependant impossible de savoir combien de mots elle contient.


Voici le résultat détaillé du codage de chaque caractère et de l’espace :

Caractère Concaténation Code
H = Dzby + 41 = Dzby41
E = Esqs + 94 = Esqs94
L = Zuu + 74 = Zuu74
L = Rw + 179 = Rw179
O = R + 109 = R109
Spazio = Efd + 32 = Efd32
W = Y + 57 = Y57
O = Qjhb + 45 = Qjhb45
R = Wu + 131 = Wu131
L = Np + 18 = Np18
D = Rgdf + 139 = Rgdf139
L'espace et le retour à la ligne


Comme déjà indiqué, les espaces et les retours à la ligne sont codés exactement comme tous les autres caractères.
Ce qu’il faut comprendre, c’est qu’ils seront toujours codés.
Si je mets un seul espace entre deux mots, il sera codé une fois.
Si j’en insère 10, ils seront codés avec 10 minicodes uniques.
Et la même logique s’applique aux retours à la ligne, quelle que soit leur position dans le fichier.

Télécharger la matrice d'exemple pour ce tutoriel





Dans la page suivante du guide, nous comprendrons comment fonctionne la décodification d'un code.