Bibm@th

Forum de mathématiques - Bibm@th.net

Bienvenue dans les forums du site BibM@th, des forums où on dit Bonjour (Bonsoir), Merci, S'il vous plaît...

Vous n'êtes pas identifié(e).

#1 15-10-2012 12:39:24

rubik's cube
Membre
Inscription : 12-10-2012
Messages : 9

Ma méthode de chiffrement à l'épreuve !

Bonjour,

Encore un petit nouveau qui vient tester son chiffrement ^^
Je viens vous présenter un petit programme simple écrit en Ms-Dos (batch).
Imaginé pendant mes pauses cigarettes, j'ai appris que cette méthode est désuète depuis 50 ans ...
Mais bon, on ne sais jamais, si je peux en faire profiter quelqu'un :)

Voici donc un petit texte chiffré avec le soft:


t55svulxfpsytydhiuwbqsfcxaqvnsngvjp_jrncijvviwenwvuq
 

Sur le principe, le texte subit une substitution avec l'alphabet suivant:
par ex "00001" est substitué à "a", etc ... les espaces sont préalablement remplacés par des "_"
(Au départ je voulais faire du binaire, c'est pour cela que la translittération y ressemble fortement !!)


if /i !VAL!==a set CHAR=!CHAR!00001
if /i !VAL!==b set CHAR=!CHAR!00010
if /i !VAL!==c set CHAR=!CHAR!00011
if /i !VAL!==d set CHAR=!CHAR!00100
if /i !VAL!==e set CHAR=!CHAR!00101
if /i !VAL!==f set CHAR=!CHAR!00110
if /i !VAL!==g set CHAR=!CHAR!00111
if /i !VAL!==h set CHAR=!CHAR!01000
if /i !VAL!==i set CHAR=!CHAR!01001
if /i !VAL!==j set CHAR=!CHAR!01010
if /i !VAL!==k set CHAR=!CHAR!01011
if /i !VAL!==l set CHAR=!CHAR!01100
if /i !VAL!==m set CHAR=!CHAR!01101
if /i !VAL!==n set CHAR=!CHAR!01110
if /i !VAL!==o set CHAR=!CHAR!01111
if /i !VAL!==p set CHAR=!CHAR!10000
if /i !VAL!==q set CHAR=!CHAR!10001
if /i !VAL!==r set CHAR=!CHAR!10010
if /i !VAL!==s set CHAR=!CHAR!10011
if /i !VAL!==t set CHAR=!CHAR!10100
if /i !VAL!==u set CHAR=!CHAR!10101
if /i !VAL!==v set CHAR=!CHAR!10110
if /i !VAL!==w set CHAR=!CHAR!10111
if /i !VAL!==x set CHAR=!CHAR!11000
if /i !VAL!==y set CHAR=!CHAR!11001
if /i !VAL!==z set CHAR=!CHAR!11010
if /i !VAL!==_ set CHAR=!CHAR!11011
if /i !VAL!==5 set CHAR=!CHAR!11100
if /i !VAL!==6 set CHAR=!CHAR!11101
if /i !VAL!==7 set CHAR=!CHAR!11111
if /i !VAL!==8 set CHAR=!CHAR!11110
if /i !VAL!==4 set CHAR=!CHAR!00000
 

Ensuite, la chaine de caractères obtenus est "mélangée" selon un algorithme qui représente en quelque sorte la clé.
Et enfin, ce "mélange" est traduit en texte selon le même alphabet inversé !

Pour décrypter le message il faut donc trouver l'algorithme de permutation ^^

Qu'en dites-vous ?
J'accepte avec joies toutes critiques qui ne peuvent êtres que constructives pour moi :)


Edit moi: J'oubliais, l'algorithme de déchiffrement est le même que pour le chiffrement, si ça peut aider ;)

Dernière modification par rubik's cube (15-10-2012 12:49:33)

Hors ligne

#2 15-10-2012 13:33:43

yoshi
Modo Ferox
Inscription : 20-11-2005
Messages : 17 385

Re : Ma méthode de chiffrement à l'épreuve !

Bonjour,

Bonjour,

J'ai su, mais j'ai oublié... Et comme j'ai la flemme de chercher dans mon bouquin du DOS (et je pense à tous ceux qui n'ont jamais su et ne savent pas), veux-tu bien traduire cette ligne en "pseudo code" s'il te plaît (histoire de savoir ce que ça veut dire :

if /i !VAL!==a set CHAR=!CHAR!00001

Mets-toi à leur place et imagine que je te fournisse ces 2 lignes de code
s=0
I=[s+i**2 for i in range(1, 35) if i%2==1]
Les comprendras-tu sans chercher si tu ne connais pas Python ?

Imaginé pendant mes pauses cigarettes

Tss ! tss ! Mauvais pour ta santé ça ! ^_^ (et ton porte-monnaie !)

@+

Hors ligne

#3 15-10-2012 14:04:58

rubik's cube
Membre
Inscription : 12-10-2012
Messages : 9

Re : Ma méthode de chiffrement à l'épreuve !

Re-Bonjour ^^

Meaculpa, c'est mieux avec une petite explication, tu as bien raison !

if /i !VAL!==a set CHAR=!CHAR!00001

/i = ne pas tenir compte de majuscules / minuscules
!VAR! et !CHAR! = De simples variables. On utilise !nom_de_la_variable! à la place de %nom_de_la_variable% pour des variables étendues à l’intérieur d'une boucle FOR.
Sinon, avec %%, seule la dernière itération de FOR serait prise en compte !
Ici, !VAR! est une lettre du texte clair, il y a une fonction en amont qui envoie le texte lettre-à-lettre dans le tableau !
Et !CHAR! est la chaine résultante du passage par ce tableau !
set = déclarer la variable
set CHAR=!CHAR!***** = ici on va "écrire" dans la variable existante !CHAR!, à la suite, en conservant l'existant.
à l'inverse si on écrit 'set CHAR=*****', on remplacerait la valeur de !CHAR! ...

Donc, en bon Français:
Si la lettre contenue dans !VAL! est égale à 'a', ajouter '00001' à la chaine !CHAR!

N'hésites pas à me demander d'autres morceaux du batch, où même le batch en entier !

@+ et merci d'avoir pris le temps de répondre ;)

Dernière modification par rubik's cube (15-10-2012 14:13:43)

Hors ligne

#4 02-12-2012 19:11:42

douli
Invité

Re : Ma méthode de chiffrement à l'épreuve !

Salut !

On peut faire de nombreuses critiques sur ton système de chiffrement :
_ une attaque à clairs connus permet de retrouver imédiatement la clé (avec un seul couple clair,chiffré)
_ une attaque statistique sur les chiffrés permet de retrouver la clé : si on sait quelle langue est chiffrée, alors ton chiffrement est aussi faible qu'un chiffrement de César !


En gros, ça ne résiste ni aux attaques clair connu, clair choisi, ni aux attaques en boîte noire...

Désolé mec :p

Réponse rapide

Veuillez composer votre message et l'envoyer
Nom (obligatoire)

E-mail (obligatoire)

Message (obligatoire)

Programme anti-spam : Afin de lutter contre le spam, nous vous demandons de bien vouloir répondre à la question suivante. Après inscription sur le site, vous n'aurez plus à répondre à ces questions.

Quel est le résultat de l'opération suivante (donner le résultat en chiffres)?
quatre-vingt dix-neuf plus trente neuf
Système anti-bot

Faites glisser le curseur de gauche à droite pour activer le bouton de confirmation.

Attention : Vous devez activer Javascript dans votre navigateur pour utiliser le système anti-bot.

Pied de page des forums