Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

CRYPTOGRAPHIE PAR SUBSTITUTION POLYALPHABETIQUE (RANDRIANO)


Information sur la source

Catégorie :Application Classé sous : polyalphabetique, randriano, cryptographie Niveau : Initié Date de création : 19/04/2007 Date de mise à jour : 05/05/2007 16:35:55 Vu / téléchargé: 3 294 / 260

Note :
Aucune note

Commentaire sur cette source (6)
Ajouter un commentaire et/ou une note


Description

J'ai beau cherché un programme de cryptographie par substitution alphabétique mais j'ai pas trouvé, il y en a beaucoup sur Vigénère et RSA.
Programmé sous C++ Builder
1) Primo, il permet de crypter/décrypter une chaîne de caractères
2) Secundo, il permet de crypter/décrypter des fichiers texte (*.txt)

Pour ceux qui ne connaissent pas cet algorithme, il est basé sur une matrice appelée abaque:
A B C D E F G H I J K L M N O P Q R S T U V W X Y Z
B C D E F G H I J K L M N O P Q R S T U V W X Y Z A
C D E F G H I J K L M N O P Q R S T U V W X Y Z A B
D E F G H I J K L M N O P Q R S T U V W X Y Z A B C
E F G H I J K L M N O P Q R S T U V W X Y Z A B C D
F G H I J K L M N O P Q R S T U V W X Y Z A B C D E
G H I J K L M N O P Q R S T U V W X Y Z A B C D E F
H I J K L M N O P Q R S T U V W X Y Z A B C D E F G
I J K L M N O P Q R S T U V W X Y Z A B C D E F G H
J K L M N O P Q R S T U V W X Y Z A B C D E F G H I
K L M N O P Q R S T U V W X Y Z A B C D E F G H I J
L M N O P Q R S T U V W X Y Z A B C D E F G H I J K
M N O P Q R S T U V W X Y Z A B C D E F G H I J K L
N O P Q R S T U V W X Y Z A B C D E F G H I J K L M
O P Q R S T U V W X Y Z A B C D E F G H I J K L M N
P Q R S T U V W X Y Z A B C D E F G H I J K L M N O
Q R S T U V W X Y Z A B C D E F G H I J K L M N O P
R S T U V W X Y Z A B C D E F G H I J K L M N O P Q
S T U V W X Y Z A B C D E F G H I J K L M N O P Q R
T U V W X Y Z A B C D E F G H I J K L M N O P Q R S
U V W X Y Z A B C D E F G H I J K L M N O P Q R S T
V W X Y Z A B C D E F G H I J K L M N O P Q R S T U
W X Y Z A B C D E F G H I J K L M N O P Q R S T U V
X Y Z A B C D E F G H I J K L M N O P Q R S T U V W
Y Z A B C D E F G H I J K L M N O P Q R S T U V W X
Z A B C D E F G H I J K L M N O P Q R S T U V W X Y
Le code vous l'expliquera!
Ce programme est aussi un moyen d'apprendre à utiliser un SPLASHSCREEN (voir le fichier Crypto.cpp).
 

Conclusion

Il y a deux classes employées ici
1) PolyAlphabetique.h => pour le chiffrement de chaînes
2) PolyAlphabetique2.h => pour le chiffrement des fichiers texte
Cette 2ème classe est plus riche car son abaque est une matrice 162x162 des caractères reconnus (accentués, cedille).
 

Fichier Zip

Pour les "Membres Club", vous pouvez télécharger directement un fichier contenu dans le zip sans télécharger le zip en entier !

Télécharger le zip

Historique

19 avril 2007 12:54:45 :
J'ai posté le code sans le zip donc je le reposte!
05 mai 2007 16:35:56 :
Classe TAbaque et utilisation Ansistring!

Commentaires et avis

signaler à un administrateur
Commentaire de randriano le 19/04/2007 12:58:23

Initiez-vous à la programmation sur les chiffrements avec cela, fini la cryptographie de Jules césar passons à un niveau plus élevé.

je promets qu'il y aura une amélioration comme: classe TAbaque, abaque qui traite les 256 caractères.

signaler à un administrateur
Commentaire de BruNews le 19/04/2007 15:03:22 administrateur CS

Bien de vouloir s'élever mais faudra d'abord coder correctement.

void PolyAlphabetique::buildstrkey()
{
  int lk = strlen(cle);
  int ltxt;
  char *tmp = new char[255];
  if(strlen(textclair) > strlen(textcrypte)) ltxt = strlen(textclair);
  else ltxt = strlen(textcrypte);
  int d = ltxt / lk;
  int m = ltxt % lk;
  for(int i = 0; i < d; i++) strcat(chainecle, cle);
  if(m > 0) strncpy(tmp, cle, m);
  strcat(chainecle, tmp);
  chainecle[ltxt] = 0; //finir chainecle par le kre nul
}

char *tmp = new char[255];
Où est le delete correspondant ???

if(strlen(textclair) > strlen(textcrypte)) ltxt = strlen(textclair);
else ltxt = strlen(textcrypte);
strcat est une boucle, pas la peine de les REfaire inutilement.

for(int i = 0; i < d; i++) strcat(chainecle, cle);
d fois le reparcours complet de chainecle, contreproductif absolu.
char *c, *d;
d = chainecle;
for(int i = 0; i < d; i++) {
  c = cle;
  while(*d = *c++) d++;
}
Voila sans aucun reparcours stérile de chainecle.

Bonne continuation.

signaler à un administrateur
Commentaire de yoyo269 le 19/04/2007 17:18:32

Une petite question. C'est pas ce qu'on appelle le code Rome ce mode de cryptage ?

YOYO, @+.

signaler à un administrateur
Commentaire de BruNews le 19/04/2007 18:39:34 administrateur CS

"strcat est une boucle, pas la peine de les REfaire inutilement."
Je parlais bien entendu de "strlen".

signaler à un administrateur
Commentaire de randriano le 22/04/2007 16:05:31

En effet, j'avoue Brunews que j'ai oublié delete.
La version 2.0 est proche mais un problème:

[C++ Erreur fatale] sysmac.h(8): F1003 Erreur de directive : Do not include this file directly.  Include 'system.hpp'.

J'ai créé une classe TAbaque qui sera un membre statique de la classe TPolyAlphabetique:
cette erreur apparaît à la définition de cette membre:
TAbaque * TPolyAlphabetique::abaque=new TAbaque();

signaler à un administrateur
Commentaire de randriano le 05/05/2007 16:37:49

J'ai apporté une grande modification à ce code comme la classe TAbaque et l'utilisation de AnsiString!

Je vais vous demander les amis:
Qu'est ce que c'est vraiment les erreurs C++ E2129, E...
Elles ne sont pas claires car n'indiquent pas précisement la ligne de code ou l'identificateur qui cause l'erreur.

Ajouter un commentaire

Discussions en rapport avec ce code source dans le forum

Cryptographie [ par mayouma ] Je veux bien avoir des codes sources des algorithmes RSA, 3DES, AES, IDEA en C++ .Net si cela est possible. C'est tr&#233;s important pour moi;&nbsp; cryptographie [ par AHUON ] Bonjour,je suis entrain de r&#233;aliser une application de cryptage/d&#233;cryptage+g&#233;n&#233;ration de cl&#233;s+signature &#233;lectronique.Je cryptage et cryptographie [ par H_lecteur ] bonjour,j besoin de la documentation sur le cryptage et la cryptographie svp....&nbsp;merci de bien vouloir m'aider...... cryptographie avec C sur UNIX [ par xheo ] bonjour a tous je dois developper une petite application de securité en C sur UNIX et je voudrais savoir oû puis-je trouver les codes source de AES Cryptographie + Courbes elliptiques [ par africanbeauty ] Bonjour j'aimerais s'avoir si quelqu'un aurait deja utilisé les courbes elliptiques provenant de la bibliothèque d'OPENSSL? en fait je dois utilser ce


Nos sponsors

Sondage...

CalendriCode

Juillet 2009
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
2728293031  

Consulter la suite du CalendriCode

Comparez les prix Nouvelle version

Photothèque Nouveau !



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
Temps d'éxécution de la page : 0,624 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.