Le système de Trithème

Codez le système de Trithème! Pour simplifier, on ne travaillera qu'avec des lettres majuscules non accentuées (codes ASCII de 65 à 90).

Le module ci-dessous convertit les lettres en majuscules et élimine tous les autres caractères.Le résultats et une liste de codes ASCII, donc de nombres compris entre 65 et 90.

\(\(Standardiser[texte_] := 
Module[{maj, continu}, 
          maj = ToUpperCase[
              StringJoin[
                Characters[
                    ToLowerCase[
                      ToString[
                        texte]]] /. {"é" -> "e", "è" -> "e", "ê" -> "e", "ë" -> "e", "à" -> "a", "â" -> "a", "ä" -> "a", "î" -> "i", "ï" -> "i", "ö" -> "o", "ô" -> "o", "ü" -> "u", "û" -> "u", "ç" -> "c"}]]; 
continu = 
            Select[ToCharacterCode[
                maj], \((# < 91 && # > 
                      64)\) &]
];\)\)

texte = "Salut les petits pots";
ascii = Standardiser[texte]

La variable "clefascii" est la liste des décalages à effectuer.

clefascii = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 
          16, 17, 18, 19, 20, 21, 22, 23, 24, 25};

Chiffrer

Mettez dans une variable appelée "long" la longueur de la liste "ascii".Pensez à utiliser l'aide en ligne!

long = ?? ?????;

Ajustez maintenant votre clef par réplication pour obtenir une longueur de "clefascii" identique à la longueur de "ascii". Pour cela, utilisez les fonctions Mathematica While, Join, et Take. Avec la fonction Join, votre obtiendrez une longueur supérieure ou égale à celle de "ascii". Vous utiliserez la fonction Take pour enlever les lettres en trop.

Voilà quelle doit être la valeur de clefascii après l'ajustement:

Inspirez-vous du module Cesar que vous avez programmé pour obtenir le texte chiffré selon le système de Trithème.Utilisez comme données les variables "ascii" et "clefascii".

Voici ce que vous devez obtenir:

Déchiffrer

Ecrivez le code pour déchiffrer un texte chiffré avec le système de Trithème.

Vous devez retrouver: