Forum de mathématiques - Bibm@th.net
Vous n'êtes pas identifié(e).
- Contributions : Récentes | Sans réponse
Pages : 1
#1 20-06-2023 16:29:49
- Voltsama
- Membre
- Inscription : 19-06-2023
- Messages : 1
Présentation d'un prototype de cryptage
Bonjours tous le monde,
je suis nouveau ici et la raison de ma présence est la suivante :
Je pense avoir trouver un nouveau système de cryptage.
Avant ça, une petit présentation s'impose.
je suis un passionné de tous ce qui est logique, et forcement, le cryptage n'a jamais fais exception.
Ça fait 2 ans que je me suis mis au développement informatique et les algorithmes ne font pas exceptions.(vraiment un sujet passionnant)
Je suis donc arrivé avec un peu de temps a un systèmes qui est modifiable pour crypter des messages.
Si vous avez déjà entendu parler d'un système du genre, nécessitez pas à l'en faire part ^^.
L'idée principale du système est d’éviter la répétition.
On commence par associé chaque lettre a un chiffre
a = 1
b = 2
c = 3
d = 4
...
z = 26
ESPACE = 27
. = 28
= 29
- = 30
Par exemple, le mieux est d'associé un nombre de caractère par dizaine pour le déchiffrement à la main (l'ordinateur n'aura évidement pas ce problème, j'ai associé ici 3 dizaine de caractères ).
Les majuscules et les autres caractères peut ainsi êtres ajouter.
Pour l’utilisez on utilise une clé qui va de 0 a 30 dans mon cas que l'ont passe en même temps que la table (Les limites sont défini par le nombre de caractère différent).
Prenons une clé basique de 0 par exemple.
et un message : "aaaa"
La première lettre du message a crypté étant un "a" -> 1 sur la table
On ajoute la clé au chiffre obtenu -> 1 (1er lettre) + 0 (Clé) = 1
le résultat devient la clé (1) et la première lettre du message crypté correspond a la clé -> "a"
2eme lettre : "a" -> 1, clé -> 1
résultat : clé = 2, message = "ab"
3eme lettre : "a"-> 1, clé -> 2
résultat : clé = 3, message = "abc"
4eme lettre : "a"-> 1, clé -> 3
résultat : clé = 4, message -> "abcd"
si la clé dépasse 30 (toujours dans mon cas), on enlève 30 et ça devient la nouvelle clé. (Modulo 30)
Voici quelque exemple de se système :
"operation par laquelle un message est rendu inintelligible a quiconque ne possede pas la cle permettant de retrouver la forme initiale."
va donc maintenant prendre cette forme :
"oafxyoxiwtfgyvdevmr-lqnesp'dwlmtyv pfcuzjnebkydrhmygpwbdpurspcxcfuevmro'daqbujosxugh xfgdgsxugl-mrh.'mc-difx'sgvmej.yghekzn b'hvau-amrp"
Pour décrypté, pareil, on garde le tableau sous les yeux :
exemple avec "abcd" :
la 1er lettre : on prend la clé initial -> 0 (toujours dans mon exemple)
lettre à décrypter = a -> la référence de a = 1, clé = 0
1 (la lettre) - 0 (la clé ) = 1 -> nouvelle clé = 1, la lettre décrypter = a
la 2eme lettre : la clé = 1, lettre b
réf de la lettre b : 2 -> 2 ( la lettre ) - 1 ( la clé ) = 1
résultat : la lettre décrypté = a, la nouvelle clé = 2 (la référence de la lettre précédente)
la 3eme lettre : la clé = 2, la lettre c
réf de la lettre c : 3 -> 3 - 2 = 1
résultat : lettre = a, nouvelle clé = 3
la 4eme lettre : clé = 3, lettre = d
réf d -> 4, 4 - 3 = 1
résultat : lettre = a, clé = 4
le message de base étant : "aaaa"
Il est possible de rendre le système encore plus performant en ajoutant un cyclique,
on peut par exemple garder la même table mais changer la clé de référence tous les jours, pour ça ajouter 2 cratères de plus a la fin pour la clé de demain.
Demain, ou un autre jours, tous dépend de la fréquence.
Ces 2 chiffres peuvent ainsi servir de vérification si le messages a bien été transmis.
Il serait aussi possible de rendre le chiffrage encore plus fort.
En comprenant le mécanisme, il serait possible de percer le code en essayant toutes les combinaisons sur quelque lettre pour essayer de trouver un mots (brut force).
Pour empêcher cette opération, il serait possible de définir un mot de passe, une suite de caractères passez en même temps que la grille.
Cela permettrais à la fois de vérifié si la personne qui déchiffre est sur la bonne voie dès le début, et a la fois rendrait le décryptage encore plus complexe.
Admettons un mot de passe de 6 caractères aléatoire : il faudrait déchiffrer au moins 12 caractères pour espérer trouver un mot (sachant que le mot de passe ne doit pas êtres connu sinon ça rend le cassage du code plutôt simple )
6 lettres de mot de passe + 1 espace + 5 lettres (il existe pas mal de mot de 5 lettres ou moins en français, mais c'est une décision arbitraire)
ça ferait 30^13 possibilité dans mon cas (ils ne connaissent pas la taille du mot de passe, mais je présume que les "ennemis" connaissent sont existence ).
13 car il faut aussi penser a la clé qui chiffre le premier caractère.
Maintenant, avec les ordinateurs, ils seraient possible d'utiliser la table ASCII qui regroupe l'ensemble des caractères et dans le même exemple on obtiendrait du coups 127^13.
Merci d'avoir lu jusqu'aux bout, je n'ai jamais vu de système similaire et j’attends vos retours.
Bonne journée
Dernière modification par Voltsama (20-06-2023 16:30:52)
Hors ligne
#2 27-10-2023 01:05:01
- Ostopie
- Membre
- Inscription : 27-10-2023
- Messages : 1
Re : Présentation d'un prototype de cryptage
bonjours, j'ai "créer" une méthode de cryptage similaire il y a 3 ans au lycée qui utilise une base de 84 caractères et j'ai trouvé un moyen de le rendre plus complexe en intégrant des multiplications, si vous voul(ais)ez je peux vous dire comment ou vous laisser chercher à votre rythme.
Ci-joint un exemple du message obtenu en sortie sans multiplication intégrée.
CGx,x?%GN1vrh?.AHIMv?=8r?ùt1@x?,,dFFGqr7@èff-prç2zé,,=8r?ùt1@x??261@tn7x§SyPréùl è,32x:Pffùù ilh?,,=8r?çp9wnp:P?pwp?àçrvzv w?ùpwèdFFGqr7@è/2NLrbmpwè=8(-pré=8àSnR(?jkjx#P-49@é@q29zvç2zé=8r?ùt1@x??r(@jhivr?,h?@crrcvOMvwBSuL ùt1@à@q127vrulr61w2(+v -prtq9@zzéùpwèdFFGqr7@è?xàùl %GN1vrh?!xwv(Zna+v @q2pctNHrvéùù?r6wqnmp?,hwèdFFGqr7@è,dn6è=8r?@jhivr?,h?@crrcvOMv§
bonne journée.
Ostopie
Dernière modification par yoshi (27-10-2023 07:28:14)
Hors ligne
#3 27-10-2023 18:57:10
- Rossignol
- Membre

- Inscription : 19-06-2015
- Messages : 305
Re : Présentation d'un prototype de cryptage
Bonsoir Voltsama,
Le premier chiffre décrit est un chiffre autoclave sur le chiffré.
C'est un chiffre fragile, car il est équivalent à un chiffre de Vigenère avec pour clé le chiffré lui-même.
Il est préférable de faire un autoclave sur le clair.
On peut obtenir le texte clair (sauf le premier caractère) très facilement en faisant la différence modulo 30 des indices de deux caractères consécutifs :
a - o -> 1 - 15 = 16 -> p
f - a -> 6 - 1 = 5 -> e
x - f -> 24 - 6 = 18 -> r
y - x -> 25 - 24 = 1 -> a
o - y -> 15 - 25 = 20 -> t
x - o -> 24 - 15 = 9 -> i
i - x -> 9 - 24 = 15 -> o
w - i -> 23 - 9 = 14 -> n
...etc.
Le programme Python suivant donne le texte clair, sauf le premier caractère, sans connaître la clé.
alpha = "-abcdefghijklmnopqrstuvwxyz .'" # alphabet du système
k = "oafxyoxiwtfgyvdevmr-lqnesp'dwlmtyv pfcuzjnebkydrhmygpwbdpurspcxcfuev\
mro'daqbujosxugh xfgdgsxugl-mrh.'mc-difx'sgvmej.yghekzn b'hvau-amrp"
for i in range(len(k)-1):
delta = (alpha.index(k[i+1]) - alpha.index(k[i])) % len(alpha)
print(alpha[delta], end='') # affichage caractère par caractère
Le reste du post me paraît flou.
@+
Hors ligne
Pages : 1








