IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Téléchargé 18 fois
Vote des utilisateurs
1 
0 
Détails
Licence : Libre
Mise en ligne le 27 juin 2013
Plate-forme : Windows
Langue : Français
Référencé dans
Navigation

cryptage et décryptage de texte par rotation de bits

Il s' agit de deux routines cryptage et décryptage, contenues dans deux fichiers code.c et decode.c

aucun environement, je ne veux que vous faire découvrir cette méthode inviolable. J'avais demandé a des amis hackers

de bon niveau de s' y attaquer, sans succès ;-)

dans le fichier zip vous trouverez:

code.c et code.exe

decode.c et decode.exe

snoopy.h

pour le moment il ouvre un fichier de nom fixe "decod" (sans 'e' )



Donc bien entendu vous saurez l'inclure dans un "C" avec choix du fichier et "c" ou "d" en action ...

encore un point, testez le, pour cela prenez un fichier texte nommez le "decod" et lancez une seule fois

éditez le et voyez le résultat ! un coup de decode et tout est rétabli !

bonne utilisation si cela vous plait,

christele
Avatar de ram-0000
Rédacteur https://www.developpez.com
Le 28/06/2013 à 17:53
Citation Envoyé par christele_r Voir le message
Mais j'en reviens à l'essentiel de ta remarque il s'agit pour chaque caractère d'une rotation multiple et complexe de bits !
J'ai pas résisté, j'ai regardé le code.

En fait, il y a effectivement manipulation de bits mais un 'e' est toujours codé de la même manière que ce soit le 1er caractère, le 2eme ou peu importe. Donc cet algorithme ne résiste pas à une analyse par fréquence des caractères.

De plus, comme tu donnes le programme de chiffrement, il est très facile d'établir la correspondance pour chaque lettre vu que la clé de chiffrement (constituée de tes décalages et autres manipulations) est inscrite en dur dans le code. On a donc affaire à un code de substitution mono-alphabétique un tout petit peu plus complexe mais guère plus.

PS : au fait, en français, on chiffre et on déchiffre, les mots "crypter" et "décrypter" sont des barbarismes introduits en français par une mauvaise traduction du verbe anglais "to crypt"
Avatar de Neckara
Inactif https://www.developpez.com
Le 16/07/2013 à 8:04
Bonjour,

je ne veux que vous faire découvrir cette méthode inviolable

Est-ce que vous ne devriez pas éditer cette phrase (ou demander son édition) ?

Parce que bon, je ne veux pas mettre en doute les capacités de vos "amis hackeurs", mais je peux vous assurer que cette méthode est très loin d'être inviolable et ne nécessite pas de très grandes connaissances pour le casser.

Code : Sélectionner tout
while (fgets (leficlu[leficnbr],256,ptfic) != NULL) leficnbr=leficnbr+1;

Et l'allocation dynamique ? Si le fichier est plus grand que prévu il se passe quoi?
Sinon, vous ne connaissez pas leficnbr++; ?

Code : Sélectionner tout
1
2
if((ptfic=fopen(lefic,"w"))!=NULL)  fclose(ptfic); 
if((ptfic=fopen(lefic,"a"))!=NULL)
Pourquoi l'ouvrir deux fois ?

Code : Sélectionner tout
  for (nbr=0;nbr<leficnbr;nbr++) fprintf(ptfic,leficlu[nbr]);
Pourquoi ne pas utiliser fwrite voir même fputs ?

Code : Sélectionner tout
1
2
   resultat=lachaine[i]; //le caractere [i] 
   nbr=resultat;         // sa valeur ASCII
La deuxième ligne montre que vous n'avez pas compris le fonctionnement des char qui sont aussi des entiers.

Code : Sélectionner tout
resultat=resultat-80;
resultat -= 80; ?

Code : Sélectionner tout
1
2
3
if(nbr>126 && nbr<165) resultat=nbr+86;  
       if(nbr>164 && nbr<245) resultat=nbr-132; 
       if(nbr>244 && nbr<251) resultat=nbr-38;
Pourquoi ne pas mettre des else if ?

Code : Sélectionner tout
1
2
3
FILE *ptfic; 
unsigned char lefic[400],leficlu[97100][400]; 
unsigned int  leficnbr;   //nombre de ligne du fichier
des vilaines variables globales.

Code : Sélectionner tout
1
2
3
4
5
6
7
8
9
10
11
void main(void) 
{ 
unsigned int nbr; 
char faire; 
strcpy(lefic,"decod"); 
faire='d'; 
lire(); 
for(nbr=0;nbr<leficnbr;nbr++)  decrypte_crypte(leficlu[nbr],faire); 
ecrire(); 
return; 
}
L'indentation

Sinon, quid des gestions d'erreurs ? Pourquoi les fonctions n'ont-elles pas de commentaires ?
Avatar de
https://www.developpez.com
Le 27/06/2013 à 21:34
Bonjour,

Je vous propose un nouvel élément à utiliser : cryptage et décryptage de texte par rotation de bits

Il s' agit de deux routines cryptage et décryptage, contenues dans deux fichiers code.c et decode.c .
Aucun environnement, je ne veux que vous faire découvrir cette méthode inviolable. J'avais demandé a des amis hackers de bon niveau de s' y attaquer, sans succès

Dans le fichier zip vous trouverez:
code.c et code.exe
decode.c et decode.exe
snoopy.h
pour le moment il ouvre un fichier de nom fixe "decod" (sans 'e' )

Donc bien entendu vous saurez l'inclure dans un "C" avec choix du fichier et "c" ou "d" en action ...
Encore un point, testez le, pour cela prenez un fichier texte nommez le "decod" et lancez une seule fois , éditez le et voyez le résultat ! un coup de decode et tout est rétabli !

bonne utilisation si cela vous plait,
Qu'en pensez-vous ?
Avatar de
https://www.developpez.com
Le 01/07/2013 à 11:26
Je pensais que montrer dans un code réalisé par moi, comment se pratique la rotation de bits, pourrait être utile a beaucoup de lecteurs qui cherchent un moyen de le faire, maintenant que cela mérite un vote négatif ? cela m'étonnes surtout que je suis en générale courtoise et serviable je penses.
Avatar de Franck.H
Rédacteur https://www.developpez.com
Le 03/07/2013 à 19:56
Citation Envoyé par christele_r Voir le message
Je pensais que montrer dans un code réalisé par moi, comment se pratique la rotation de bits, pourrait être utile a beaucoup de lecteurs qui cherchent un moyen de le faire, maintenant que cela mérite un vote négatif ? cela m'étonnes surtout que je suis en générale courtoise et serviable je penses.
Non non ne t'inquiète pas, j'ai pas encore regardé ton code mais ça peut très bien figurer dans la page sources de la rubrique. Le but étant de partager des codes qui peuvent êtres réutilisés par d'autres personnes ou juste montrer des exemples d'implémentations, je n'y vois aucune objection, du moment que le code soit commenté

[EDIT]
Bon j'ai juste survolé le code mais c'est pas très propre tout ça. Ca manque d'indentations, de commentaires (il n'y aura pas que des pro qui vont lire les codes)
Avatar de Franck.H
Rédacteur https://www.developpez.com
Le 03/07/2013 à 20:38
Citation Envoyé par christele_r Voir le message
Merci de ta réponse claire, je pense en effet l'améliorer ce code, et surtout mieux le commenter.
Et mieux le présenter aussi:
  • Ligne vide entre les fonctions
  • Indentation de minimum 3 espaces pour chaque bloc de code

-
Avatar de gangsoleil
Modérateur https://www.developpez.com
Le 28/06/2013 à 9:36
Bonjour,

Je n'ai pas specialement lu le code, mais si tu ne fais que la rotation de bits, ton algorithme ne devrait pas resister a une attaque par frequence de caracteres, si ?

Et puis la rotation de bits, c'est la base des machines enigma, dont le code a ete casse sauf erreur de ma part.

Peux-tu expliquer ton algorithme ?
Avatar de
https://www.developpez.com
Le 28/06/2013 à 12:31
Merci pour ton message.
L'algorithme est si simple que tout programmeur en C peut en comprendre le sens, juste je voudrais te dire que ce n'est pas un article, mais un code posté selon les règles.

Mais j'en reviens à l'essentiel de ta remarque il s'agit pour chaque caractère d'une rotation multiple et complexe de bits ! Je l'ais expliqué dans ma présentation, des amis qui adorent et excellent en codage, ne sont pas venu à bout de ce code

Bon week-end à toi.
Avatar de
https://www.developpez.com
Le 28/06/2013 à 18:24
Merci de ton message,
Tu me mets un doute, cependant ta remarque ne prends pas en compte le fait que je sois obligée de restituer le code au retour
En conséquence nous ne pouvons aller trop loin, c'est différent par exemple du traitement des mots de passe.

Pour le reste il me parait bien pratique et suffisant par exemple lors d'un envoie d'un texte par mail par exemple.

Bon week-end et mille mercis de t'étre intéressé a mon modeste code
Developpez.com décline toute responsabilité quant à l'utilisation des différents éléments téléchargés.