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).

Répondre

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 trois plus six
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.

Retour

Résumé de la discussion (messages les plus récents en premier)

douli
02-12-2012 19:11:42

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

rubik's cube
15-10-2012 14:04:58

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 ;)

yoshi
15-10-2012 13:33:43

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 !)

@+

rubik's cube
15-10-2012 12:39:24

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 ;)

Pied de page des forums