begin process at 2012 05 30 14:13:45
  Trouver un code source :
 
dans
 
Accueil > Forum > 

C++ & C++ .NET

 > 

Algorithme

 > 

Compression, Split & Cryptage

 > 

Programme déchiffrement


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Programme déchiffrement

jeudi 8 juin 2006 à 16:08:47 | Programme déchiffrement

cdebu

Salut à tous,

Je suis nouveau sur le forum et dans le monde du C/C++. J'ai un petit programme à réaliser que je viens de faire mais il doit y avoir quelques petits problèmes car il ne fonctionne pas correctement donc si une ou des personnes pouvait m'aider, je les remercie d'avance.

Voici l'intitulé du programme:

Vous avez une équipe chargée de faire de l'intox qui a envoyé ces derniers jours beaucoup de messages concernant une attaque sur Saint-malo. Vous vous êtes débrouillé pour que votre ennemi trouve certains de ces messages et vous vous doutez donc que les deux messages chiffrés mesA et mesB que vous venez d'interceptez contiennement probablement les mots SAINT-MALO et ATTAQUE. Nous allons essayer de déchiffrer mesA et mesB.

Notons m le message constitué du mot SAINT-MALO et notons c1 la portion du message codé qui correspond à SAINT-MALO. En ce cas, le message codé est de la forme m^k(^ est un "ou exclusif"). Si vous effectuez un "ou exclusif" entre la portion du message chiffré et le mot SAINT-MALO, alors vous obtenez m^c1=m^m^k=k.

Cela veut dire que vous avez récupéré une portion de la clef. Vous pouvez alors vous en servir pour décoder la portion correspondante c2 de l'autre message: en calculant c2 (ou exclusif) k vous obtenez une partie de texte en clair dans le second texte à déchiffrer.

La seule inconnue dans l'histoire, c'est l'endroit ou SAINT-MALO va se trouver dans la phrase codée. Pour le trouver, il suffit de créer un tableau de N cases ne contenant que SAINT-MALO et de déplacer successivement d'une case la position de SAINT-MALO dans le tableau en calculant à chaque fois la portion de la clef k puis en l'utilisant sur le second message pour regarder si l'on obtient un morceau de texte compréhensible.

1)Créer un programme pour qu'il effectue les opérations décrites ci-dessus et affiche à chaque test la portion de phrase obtenue. Lorsqu'un test donnera un morceau de texte compréhensible, vous aurez, à cet endroit le texte en clair des deux messages ainsi qu'un morceau de la clef. Le faire tourner avec les mots SAINT-MALO et ATTAQUE pour déchiffrer en partie les deux messages.Utiliser ensuite votre intuition pour trouver des morceaux de texte en claire supplémentaires. Au final, en déduire les deux messages déchiffrés ainsi que la clef complète.

Voici le programme:

#include <stdio.h>

#include <string.h>

#include <stdlib.h>

#define N 50

void main(void)

{

int i,j,n;

char mesA[N]={98,120,97,98,97,112,22,115,31,120,55,56,36,48,39,54,84,33,48,51,77,99,112,123,125,96,24,123,118,116,118};

char mesB[N]={124,116,18,119,113,101,119,101,108,25,39,57,69,34,61,61,34,61,44,65,40,99,101,18,114,20,3,126,4,8,23};

char k[N];

char c1[N];

char m[N]="SAINT-MALO";

for(i=0;i<32;i++)

{

for(j=0;j<16;j++)

{

k[i+j]=m[i+j]^mesA[i+j];

c1[i+j]=k[i]^mesB[i];

}

printf("La clef secrete est:\n");

puts(k);

printf("Le message dechiffre est:\n");

puts(c1);

printf("\n");

}

}



Cette discussion est classée dans : message, programme, messages, saint, malo


Répondre à ce message

Sujets en rapport avec ce message

Gérer les messages d'erreur de TClientSocket [ par internetservices ] Salut,je suis en train de créer un programme en C++ utilisant les sockets. J'ai lu que pour éviter d'avoir le message par défaut de windows "raised ex prob socket [ par flatou ] salutj'ai créé une appli serveur, banale : un client se connecte, il envoi un message et le serveur affiche le message.j'ai utilisé cela pour la recep socket [ par ToToL ] Bonjoursj'ai un petit probleme de socket. en fait dans mon prog ( en win 32 ) j'envoi un message par internet a un autre programme toute les 20 milli Chapitre IV de M Franck Bauquier [ par Griech ] Objet : programme du chapitre IV, message à l'éxécution :"out of range H:27.5 KHZ V : 44.1 HZ"Bonjour, je travaille avec un compilateur DJGpp vers 3 Client mail : de quelle maniere vérifier si le message a déja été téléchargé [ par azerty25 ] Hello allCeci n'est pas une question programation propement dite, mais plutot une méthode.Je fait un client mails, et je me demande comment doit etre LAN Socket et multi thread [ par RV2931 ] Bonjour, Je suis en train d'essayer de faire un chat en réseau, chaque machine est client/serveur sur un port. Mais on m'a conseillé de faire un threa les messages en API [ par Adeon ] salut!En API il intervient toujours cette partie de codes qui suit qui gere les messages fenetres.J'aimerai que qq m'explique ce que font les fonction Aide pour programmation de socket en C sous unix [ par badjess ] Salut a Tous,Je suis un novice en programmation en Socket en sous environnement Linux. Aussi, j'ai essayé de trouver des programmes client serveur sur Message d'erreur incompréhensible [ par CyberP ] Lorsque je compile mon programme en debug avec vc++ 6, j'obtient des erreurs lors des tests, les voici (ce sont tous les mêmes) :The value of ESP was Erreur de mémoire ? [ par larion ] Bonjour,Je viens de réaliser un projet (~2000 lignes) avec C++Builder permettant de gérer des bureaux virtuels.Ce programme utilise une Dll qui est a


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

Photothèque

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,172 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales