cryptage de fichiers

cryptage de fichiers - C++ - Programmation

Marsh Posté le 05-05-2003 à 15:04:04    

bonjour, je dois faire en C++ un soft qui puisse crypter des fichiers avec une clé a 128 bits. J'ai trouvé ca www.gnupg.org , ca a l'air pas mal mais je sais pas si ca convient vraiment a ce que je veux faire. Est ce que l'un de vous a deja une experience de cryptage, ou y-a-t-il des projets opensource de cryptage ? merci :)

Reply

Marsh Posté le 05-05-2003 à 15:04:04   

Reply

Marsh Posté le 05-05-2003 à 15:15:52    

euh tu veux crypter ou tuliser uns oft de cryptage?

Reply

Marsh Posté le 05-05-2003 à 15:20:53    

bah je veu crypter, mais la gnupg est un truc opensource utilisable en console donc je peu l appeller depuis mon prog a moi.

Reply

Marsh Posté le 05-05-2003 à 15:27:19    

ben fait donc alors

Reply

Marsh Posté le 05-05-2003 à 15:28:13    

Jam Kuradoberi a écrit :

bah je veu crypter, mais la gnupg est un truc opensource utilisable en console donc je peu l appeller depuis mon prog a moi.


il est pas utilisable en bibliotheque ? ca serait plus malin que de lancer un prog externe :o

Reply

Marsh Posté le 05-05-2003 à 15:30:03    

man crypt et consors?

Reply

Marsh Posté le 05-05-2003 à 15:34:00    

lorill a écrit :


il est pas utilisable en bibliotheque ? ca serait plus malin que de lancer un prog externe :o


 
je me suis pas penché sur la question mais ca peut etre interessant en effet :)
 
je vais voir ca tiens ^^

Reply

Marsh Posté le 05-05-2003 à 15:57:35    

j'ai une tite question a poser a propos de ce que tu as dit lorill : si j'ai les sources je peux creer une lib a partir des sources pour pouvoir l'utiliser en bibliotheque ?
 
j'y connais torp rien en prog windows donc les dll et tout ca ca me dit pas grand chose ^^

Reply

Marsh Posté le 05-05-2003 à 16:02:26    

arg, ça risque d'etre compliquer. je sais pas si gpg est aussi fonctionnel sous windows que sous linux. et je sais encore moins comment faire un dll. t'as qu'a d/l la version windows et voir s'ils y osnt pas déjà?

Reply

Marsh Posté le 05-05-2003 à 16:10:10    

euh non jai dl la version windoze et ya pas de lib, juste les exe
 
sinon normalement il est fonctionnel sous win et apparement on peut le compiler avec mingw32/CPD, puisque c'est avec ca qu'il a ete compilé
 

Reply

Marsh Posté le 05-05-2003 à 16:10:10   

Reply

Marsh Posté le 05-05-2003 à 16:14:16    

sinon t'as jeté un oeil du coté de gpgme ?

Reply

Marsh Posté le 05-05-2003 à 16:28:20    

oui je viens de trouver ca, je jette donc un oeil ;)
 
a premiere vue c'est le bordel a compiler deja (mais bon de l'opensource sous windows c deja la merde, alros en C++ en plus c'est encore pire)
 
mais sinon ca peut etre une bonne alternative, je vous ferais part de mes echecs/succes dans les jours qui viennent car la journée de travail se termine bientot lol :)

Reply

Marsh Posté le 06-05-2003 à 10:38:47    

bon jai un ptit help a demander :)
 
avec gpgme il est censé y avoir une doc en html
le probleme c qu'elle y est pas
le seul truc que jai trouvé c un shellscript qui s'apelle GDOC et qui permet de scanner un fichier .c pour les commentaires des fonctions et qui peut sortir un fichier texte ou html avec les descriptions des fonctions
 
moi j'ai pas linux donc je peux pas le lancer, si quelqu'un etait assez gentil pour creer la doc entiere et me l'envoyer ca m'aiderait beaucoup :] je la mettrais ensuite sur un ftp a disposition de tous bien sur.
 

Reply

Marsh Posté le 06-05-2003 à 14:13:37    

hop hop encore du nouveau !
 
j'ai trouvé pas mal d'autres lib de crypto mais j'ai pas trop eu le temps de regarder, mon patron prefere que je commence le GUI et on verra la crypto apres :/

Reply

Marsh Posté le 07-05-2003 à 09:09:42    

pour la crypto tu peut utiliser le RC4 (cle WEP)(algo symetrique)
c'est tres simple a metre en oeuvre  
voila le code que j'utilise (je met pas le .h)
 
 

Code :
  1. #define swap_byte(x,y) t = *(x); *(x) = *(y); *(y) = t
  2. CRC4::CRC4(unsigned char *key,int key_len){ // construteur
  3. unsigned char t;
  4. unsigned char index1;
  5. unsigned char index2;
  6. int counter;
  7. for(counter = 0; counter < 256; counter++)
  8.   state_RC4[counter] = counter;
  9.   x = 0;
  10.   y = 0;
  11.   index1 = 0;
  12.   index2 = 0;
  13.   for(counter = 0; counter < 256; counter++)
  14.   {
  15.     index2 = (key[index1] + state_RC4[counter] + index2) % 256;
  16.     swap_byte(&state_RC4[counter], &state_RC4[index2]);
  17.     index1 = (index1 + 1) % key_len;
  18.   }
  19. }
  20. CRC4 ::Chiffrer(unsigned char * buffer,int buffer_len){
  21. unsigned char t;
  22. unsigned char x1;
  23. unsigned char y1;
  24. unsigned char xorIndex;
  25. short counter;
  26.   x1 = x;
  27.   y1 = y;
  28.   for(counter = 0; counter < buffer_len; counter++)
  29.   {
  30.     x1 = (x + 1) % 256;
  31.     y1 = (state_RC4[x1] + y1) % 256;
  32.     swap_byte(&state_RC4[x1], &state_RC4[y1]);
  33.     xorIndex = (state_RC4[x1] + state_RC4[y1]) % 256;
  34.     buffer[counter] ^= state_RC4[xorIndex];
  35.   }
  36.   x = x1;
  37.   y = y1;
  38. }


 
 

Reply

Marsh Posté le 07-05-2003 à 09:54:57    

Attention, GNUPG est sous license GPL, si tu veux l'integrer dans ton soft il doit etre sous license libre (si tu le distribue)

Reply

Marsh Posté le 07-05-2003 à 12:25:58    

kenshiro182 a écrit :

Attention, GNUPG est sous license GPL, si tu veux l'integrer dans ton soft il doit etre sous license libre (si tu le distribue)


 
ouais merci j'avais pas pensé a ca en fait lol :)

Reply

Marsh Posté le 07-05-2003 à 13:28:32    

[citation=385436,1][nom]Mordock a écrit[/nom]pour la crypto tu peut utiliser le RC4 (cle WEP)(algo symetrique)
c'est tres simple a metre en oeuvre  
voila le code que j'utilise (je met pas le .h)
 
tu peux mettre le .h et donner ta doc la dessus s'il te plait (ou expliquer brievement les possiblites et limites de cet algorithme) ?

Reply

Marsh Posté le 07-05-2003 à 13:55:50    

ouaip ca serait bien sympa, passque j'ai pas tout compris a l'algo ! :) bon ok je suis pas super reveillé mais quand meme ^^

Reply

Marsh Posté le 07-05-2003 à 23:49:05    

J'suis desole pour le .h ;) j'y est pas penser  
 

Code :
  1. // CRC4.h
  2. #include <stdio.h>
  3. #include <stdlib.h>
  4. #include <string.h>
  5. class CRC4 {
  6. unsigned char state_RC4[256];     
  7. unsigned char x;       
  8. unsigned char y;
  9. public :
  10. CRC4(unsigned char*,int);
  11. Chiffrer(unsigned char *,int);
  12. };


 
posibilite de cet algo : permet de chiffer n'importe qu'elle longeur de paquet (pas comme le DES ou l AES)
y a pas de cryptanalyse simple a mettre en oeuvre.
 
utilisation :
créer une clef RC4 avec le construteur pour 128 bit prendre 16 char
puis utiliser la fonction chiffrer en passant la taille du paquet et le paquet caster en unsigned char *
 
 
Jam Kuradoberi => t'inquiete pas il est incomprehensible cet algo ;)
 
voila et encore desole pour le .h ;)


Message édité par Mordock le 08-05-2003 à 00:01:00
Reply

Marsh Posté le 07-05-2003 à 23:51:40    

t'aurais pas l'algo? par ce que on comprends pas tout quand meme la... surtout au niveaux des membres, etc. voir c bien, comprends c'est mieux
 
tes #include ne servent à rien et sont d'ailleurs mal placés (auraient du etre dans le .cpp)
 
 
edit: si le nom de l'algo est RC4 alors google est tres bien


Message édité par Taz le 07-05-2003 à 23:54:33
Reply

Marsh Posté le 07-05-2003 à 23:55:35    

y a une bonne explication de cet algo ici :
http://www.cs.umd.edu/~waa/class-pubs/rc4_ksaproc.ps
par contre il est en anglais ;(
il explique aussi une cryptanalyse des cles WEP (j'y ai rien compris)

Reply

Marsh Posté le 07-05-2003 à 23:56:05    

le code original
 
http://www.cypherspace.org/~adam/rsa/rc4.c
 
et
 
 
http://www.uqtr.ca/~delisle/Crypto/prives/flux_rc4.php


Message édité par Taz le 07-05-2003 à 23:57:17
Reply

Marsh Posté le 07-05-2003 à 23:57:18    

++Taz a écrit :

t'aurais pas l'algo? par ce que on comprends pas tout quand meme la... surtout au niveaux des membres, etc. voir c bien, comprends c'est mieux
 
tes #include ne servent à rien et sont d'ailleurs mal placés (auraient du etre dans le .cpp)
 
 
edit: si le nom de l'algo est RC4 alors google est tres bien


 
Oui l'algo est le RC4 je l'avais preciser au debut de mon premier post

Reply

Marsh Posté le 08-05-2003 à 00:02:49    

Sinon merci ++Taz pour le site de tuto en francais il est tres bien fait ;)

Reply

Marsh Posté le 08-05-2003 à 00:53:20    

super ++Taz jai pas eu le temps de tout lire mais ca a l'air bien je vais pouvoir me servir de ca je pense :)
 
je regarderais ca au taff lundi ^^

Reply

Marsh Posté le 08-05-2003 à 01:12:29    

j'ai une autre question qui decoule un peu de mon topic :
mon prog devra generer des clés de cryptage pour les fichiers, comment je peux creer facilement des clés a 128 bits bien toutes differentes ?

Reply

Marsh Posté le 08-05-2003 à 09:28:29    

Bonjour,  
 
Je te propose une librairie d'encryptage/décryptage qui utilise l'algo AES à cette adresse :  
http://www.esat.kuleuven.ac.be/~rijmen/rijndael/
 
J'ai utilisé/adapté la version "Optimised C code v3.0", mais il y en a d'autres dans les nombreux liens proposé!
 
Bonne continuation. Avander


---------------
A thing of beauty is a joy forever (John Keats)
Reply

Marsh Posté le 08-05-2003 à 15:01:40    

Avander a écrit :

Bonjour,  
 
Je te propose une librairie d'encryptage/décryptage qui utilise l'algo AES à cette adresse :  
http://www.esat.kuleuven.ac.be/~rijmen/rijndael/
 
J'ai utilisé/adapté la version "Optimised C code v3.0", mais il y en a d'autres dans les nombreux liens proposé!
 
Bonne continuation. Avander


 
merci je jetterais un oeil au taff lundi ;)

Reply

Marsh Posté le    

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed