Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1692 connectés 

  FORUM HardWare.fr
  Programmation
  C

  code RSA

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

code RSA

n°2132139
Hnayn5291
Posté le 19-03-2012 à 22:18:51  profilanswer
 

Bonsoir,  
j'ai bien executer un code concernant l'algorithme de cryptage RSA mais j'ai une grande besoin de m'aider pour que les clés p te q sont de 1024 bits.  
1. choisir p et q deux nombres premiers.  
2. calculer n = p * q  
3. calculer l'indicatrice d'Euler phi = (p - 1)(q - 1)  
4. Choisir e (exposant public) tel qu'il soit premier avec phi  
5. Trouver d (exposant prive) tel que : (d * e) = 1 (mod phi)  
la cle publique est donc (e; n) et la cle privee est (d; n)  
6. Pour crypter un message M : c= M puissance e mod n  
7. Pour décrypter un message crypté C : M= c puissance d mod n  
 
#include "stdafx.h"  
#include<stdio.h>  
#include< conio.h>  
#include <stdlib.h>  
#include<math.h>  
#include<iostream>  
#include<string.h>  
int phi,n,e,d,C,FLAG;  
unsigned long int p , q ;  
 
void primalité()  
{    
int Div;  
Div = p - 1;  
Div = q - 1;  
//tester la primalité de p  
if (((p % 2) == 0) && (p != 2)) {  
printf("p Nombre non premier\n" );  
}  
else {  
while (((p % Div) != 0) && (Div >= 1)){  
Div--;}  
 
 
if ((Div == 1) && (p / p == 1)){  
printf("p Nombre premier\n" );  
}  
else {  
printf("p Nombre non premier\n" );}  
}  
//tester la primalité de q  
if (((q % 2) == 0) && (q != 2)) {  
printf("q Nombre non premier\n" );  
}  
 
else {  
 
while (((q % Div) != 0) && (Div >= 1)){  
Div--;}  
 
 
if ((Div == 1) && (q / q == 1)){  
printf("q Nombre premier\n" );  
}  
else {  
printf("q Nombre non premier\n" );}  
}  
}  
int funct(char M)  
{  
    int x;  
 for (int i=0; i< 500; i++)  
 {if(M >='a'&& M <='z')  
      x=M -96;  
    if(M >='A'&& M <='Z')  
  x=M -64;}  
    return x;  
}  
 
void main()  
{  
 int n,e,s,ss,p2[30],flag[30], d, c[30], tra;  
  long double x,y;  
  unsigned long int div,div1;  
  char M[50];  
 
printf("entrer les deux nombres premiers\t: " );  
scanf("%d%d",&p,&q);  
primalité();  
n = p*q;  
phi=(p-1)*(q-1);  
printf("\n\tF(n)\t= %d",phi);  
{  
printf("\n\nEnter e\t: " );  
scanf("%d",&e);  
 
}while(FLAG==1);  
d = 1;  
do  
{  
s = (d*e)%phi;  
d++;  
}while(s!=1);  
d = d-1;  
printf("\n\tPublic Key\t: {%d,%d}\n",e,n);  
printf("\n\tPrivate Key\t: {%d,%d}\n",d,n);  
printf("Entrer le message \n" );  
  scanf("%s",M);  
for(int i=0;i<strlen(M);i++)  
{  
flag[i]=0;  
if(M[i]>='a'&& M[i]<='z')  
  flag[i]=1;  
else  
  continue;  
}  
printf("Encryption:\n" );  
 
  for(int i=0;i < strlen(M);i++)  
  {  
     s=funct(M[i]);  
     x=pow(((long double)s),((long double)e));  
     div=(unsigned long int)x;  
     c[i]=div%n;  
  if(flag[i]==0)  
       printf("%c   ",(c[i]+64));  
     else  
 printf("%c  ",(c[i]+96));  
      }  
printf("\nEntrer le message crypter\n" );  
  scanf("%s",M);  
  printf("\nDecryption:\n" );  
 
  for(int i=0; i < strlen(M);i++)  
  {  
     ss=funct(M[i]);  
    y=pow(((long double)ss),((long double)d));  
     div1=(unsigned long int)y;  
     p2[i]=div1%n;  
     if(flag[i]==0)  
       printf("%c   ",(p2[i]+64));  
     else  
 printf("%c  ",(p2[i]+96));  
  }  
  getch();  
}

mood
Publicité
Posté le 19-03-2012 à 22:18:51  profilanswer
 

n°2132262
snafu8
Posté le 20-03-2012 à 17:49:48  profilanswer
 

tu sais, si dans C++ on t'a demandé de mettre ton post en forme avec des balises, c'est pas pour que tu viennes copier coller le meme post ici, toujours sans mise en forme.


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  C

  code RSA

 

Sujets relatifs
code source ERP openbravo sous Elipsecode RSA
code ça marche mais se n'est pas une bonne executionPlus de 500 exemples de code Ada disponibles sur Rosetta
ACCESS - màj zone déroulante par le codeoptimisation SSE pour du code C (auto ou inline) [résolu]
Aide VBA - verrouillage code et celluleInverser un code
Compilation parser XML pour intégration à un code C 
Plus de sujets relatifs à : code RSA


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR