#include
#include
char *cifra(char *m,mpz_t exp, mpz_t mod){
mpz_t mens;
mpz_init(mens);
mpz_set_str(mens,m,10);
printf("\n%s\n",mpz_get_str(NULL,10,mens));
mpz_powm(mens,mens,exp,mod);
return mpz_get_str(NULL,10,mens);
}
int main(int argv, char* argc[]){
mpz_t n,p,q,e,d,phi,uno;
unsigned long int l;
int test;
char *p_str,*q_str;
srandom(time(NULL));
mpz_init(n);
mpz_init(p);
mpz_init(q);
mpz_init(e);
mpz_init(d);
mpz_init(phi);
mpz_init(uno);
l=random()%100;
//sscanf(argc[1],"%d",&l);
l=133;
//l=;
if(l<0){l=50;}
mpz_ui_pow_ui(p,l+random()%30,l+random()%30);
mpz_nextprime(p,p);
l=random()%100;
mpz_ui_pow_ui(q,l+random()%30,l+random()%30);
mpz_nextprime(q,q);
p_str=mpz_get_str(NULL,10,p);
q_str=mpz_get_str(NULL,10,q);
//printf("p: \n%s\n",p_str);
//printf("q: \n%s\n",q_str);
mpz_sub_ui(e,p,1);
mpz_sub_ui(d,q,1);
mpz_mul(n,p,q);
mpz_mul(phi,e,d);
mpz_set_ui(e,65537);
mpz_invert(d,e,phi);
q_str=mpz_get_str(NULL,10,n);
//printf("n: \n%s\n",q_str);
//printf("e: \n%s\n",mpz_get_str(NULL,10,e));
//printf("d: \n%s\n",mpz_get_str(NULL,10,d));
printf("Llave publica: (%s,%s)\n\n",mpz_get_str(NULL,10,e),mpz_get_str(NULL,10,n));
printf("Llave privada: (%s,%s)\n\n",mpz_get_str(NULL,10,d),mpz_get_str(NULL,10,n));
printf("Otros valores:\np: %s\nq: %s\n\n",mpz_get_str(NULL,10,p),mpz_get_str(NULL,10,q));
}
gcc llaves.c -o llaves -lgmp
ResponderEliminarningun parametro
ResponderEliminarahhh si...
ResponderEliminarapt-get install libgmp3-dev libgmp3
gmp.h
ResponderEliminarya, ya, ya????
ResponderEliminarANGEL CERVANTES: LLAVE PUBLICA
ResponderEliminar(65537,64644473563374063166823156989841969600259437375459596444001315161522279976994859075073733929790176917972507458172441594545211005927356361613759593108016505208660846423353341461768189391544106778547544200003649016527608399622501494092154903996696742150462185899746156758699108194306082007270098498432762928982757078708753788547182044610809539662633163131670212538193654627305598679363476895069595430011325471349966353683097945139895534145791151322494277801267272661506188527838351784198268174851998648106929805443660589562636696123360691001417514272945095653557987578861)