¿Cómo implementar el algoritmo RSA en un programa C?
#includelt;math.hgt;
#includelt;stdio.hgt;
int isP(int m) p>
p>
{
int i;
for( i=2; ilt; m; i)
si(m i ==0)devuelve 0;
devuelve 1
}
int num(int m, int k)
{
int i=0;
for(m=m;kgt;0; m)
if(isP(m))
{
k--;
retorno m;
}
}
int principal(int) argc, char* argv [])
{
int P, Q, E, D, i, k, fn, c=0, j=0, t=1, f1=1, l =2;
int a[10];
largo N0,
largo PT, CT,
printf ("Ingrese el primer número: ");
scanf("d", y P);
printf("Ingrese un número mayor que el primer número: ");
scanf("d", amp; Q=); num(Q, 1);
N=P*Q;
N1=(P-1)*(Q- 1);
N0= N1;
p>
mientras(N1gt;=3)
{
mientras(N1l!=0)
{
l ;
}
a[j ]=l
N1=N1/l
}
printf(" Ingrese un número impar E, si E no es adecuado, el sistema encontrará un valor adecuado mayor que E: "); ; E);
for(i=E;tgt;0;i=i 2)
{
for(k=0;k lt; j 1;k )
{
if(Ea[k-1]==0) descanso;
else if(k==j)
{ p>
t--;
}
E=i
}
para (k=1; ; k )
{
si((N0*k 1)E==0)
{
D=(N0* k 1)/E
if((D*E)N0==1)
romper
}
printf ("Ingrese texto sin formato:");
scanf("ld",amp; PT);
for(
i=1; =E; i )
{
fn=(f1*PT)N;
f1=fn;
CT=fn;
}
f1=1
para(i=1; ilt; =D; i )
{
fn=(f1*CT)N
f1=fn
PT=fn
}
printf("P=d,Q=d\ n",P,Q);
for(k=0;klt;j;k)
printf("d ", a[k]);
printf("\n");
printf("E=d, D=d, N=ld \n", E, D, N);
printf("La contraseña es:
printf("La contraseña es: ld\n", CT);
printf("El texto sin formato es: ld\n", PT);
devuelve 0;