Hamy | Salut à tous.
Dans le but de réaliser un cryptage d'une chaine de caractère avec RSA,
voici les 2 fonctions principales qui permettent de crypter un fichier source.
Code :
- // ********************* CRYPTAGE *********************
- void crypter()
- {
- FILE *source_crypt;
- FILE *res_crypt;
-
- unsigned char c;
- unsigned long int i=0;
- unsigned long int k,n,e;
- char nom_fichier[20];
-
- printf("\n\n\t\t\t *********\n" );
- printf("\t\t\t *CRYPTAGE*\n" );
- printf("\t\t\t *********\n\n\n\n" );
-
- fflush(stdin);
-
- printf("Donner le nom du fichier source avec son extension : " );
- gets(nom_fichier);
-
- printf("\n\n\n\tdonner votre cle publique n : " );
- scanf("%d",&n);
-
- printf("\n\n\n\tdonner votre cle publique e : " );
- scanf("%d",&e);
-
- source_crypt=fopen(nom_fichier,"rb" );
- if(source_crypt==NULL)
- {
- printf("Impossible d'ouvrir le fichier source.\n" );
- }
-
- res_crypt=fopen("result.cry" , "wb" );
- if(res_crypt==NULL)
- {
- printf("Impossible d'ouvrir le fichier resultat.\n" );
- }
- system("cls" );
- printf("\n\n\t\tATTENDEZ SVP PENDANT LE CRYPTAGE." );
-
- while((feof(source_crypt)==0) && (fread(&c,sizeof(unsigned char),1,source_crypt)!=0))
- {
- fseek(source_crypt,sizeof(unsigned char)*i,SEEK_SET);
- fread(&c,sizeof(unsigned char),1,source_crypt);
- k=crypt(c,n,e);
- fwrite(&k,sizeof(unsigned long int),1,res_crypt);
- i=i+1;
- }
-
- fclose(source_crypt);
- fclose(res_crypt);
- printf("\n\n\n\n\n\n\n\n\n\nLe cryptage de votre fichier est termine." );
- printf("\n\nvotre fichier crypter se nomme result.cry" );
- getch();
-
- }
- // ********************* FONCTION CRYPTAGE ***********************
- unsigned long int crypt(unsigned char k,unsigned long int n,unsigned long int e)
- {
- unsigned long int i,res=1,nbre;
- nbre=((unsigned long int)k);
-
- for(i=0;i<e;i++)
- {
- res = res * nbre;
- res=fmod(res,n);
- }
-
- return res;
- }
|
Dans un 1er temps je n'ai pas besoin d'une "usine à gaz" comme celle ci.
Je souhaiterai d'abord crypter en RSA caractère par caractère (ASCII)
Dans un 2ème temps comment utiliser l'exponentiation modulaire
Merci |