¿Cómo implementar el algoritmo de cifrado RSA en lenguaje C? Urgente, urgente, urgente
Al cifrar, ingrese Y y luego ingrese el texto a cifrar (letras mayúsculas).
Al descifrar, ingrese N, luego ingrese un número entero n para representar el número de textos cifrados. y luego ingrese n El número entero representa el texto cifrado obtenido durante el cifrado.
*/
/*Algoritmo RSA*/
#include lt;stdio.hgt;
#include lt;string. hgt;
#include lt;stdlib.hgt;
#include lt;stdlib.hgt
#definir MM 7081
#define KK 1789
#define PHIM 6912
#define PP 85
typedef char strtype[10000]
int len;
número largo[10000];
int cambio[126];
char antichange[37];
void inicializar();
{ int i;
char c;
para (i = 11, c = 'A'; c lt; = 'Z'; c, i )
{ cambio[c] = i
anticambio[i] = c
}
}
}
}
void changetonum(strtype str)
{ int l = strlen(str), i
len = 0;
memset(núm., 0, tamaño de(núm.)
for (i = 0; i lt; l; i)
>{ número[len] = número[len] * 100 cambio[str [i]];
if (i 2 == 1) len
}
if (i 2 ! = 0) len;
}
binamod largo(entumecido largo, k largo)
{ if (k == 0) devolver 1;
long curr = binamod (entumecido, k / 2
If (k 2 == 0)
if (k 2); == 0)
Devuelve curr * curr MM
si no, devuelve (curr * curr) MM * entumecido MM
}
}
codificación larga (entumecido largo)
{ return binamod(entumecido, KK
}
decodificación larga (largo); entumecido)
{ return binamod(entumecido, PP);
}
main()
{ strtype str; >
int i, a1, a2;
long curr;
initialize();
puts("Ingrese 'Y' si codifica, en caso contrario introduzca 'N':")
obtiene(cadena);
if (cadena[0] == 'Y')
{ obtiene(cadena); p>changetonum(str);
printf("codificado:");
for (i = 0; i lt; len; i)
{ if (i) putchar('-');
printf(" ld ", codificar(nume[i]));
}
putchar( '\n');
}
else
{ scanf("d", y len
for ( i = 0; i lt; i )
{ scanf("ld", y curr);
curr = decodificar
a1 = actual / 100;
a2 = actual 100;
printf("decodificado: "); anticambio[a1]);
if (a2 !
putchar('\n');
}
putchar(' \n');
sistema("PAUSA");
devuelve 0;
}
/*
Prueba:
Entrada:
Y
FERMAT
Salida:
codificado: 5192 - 2604 - 4222
Entrada
N
3 5192 2604 4222
Salida
decodificada: FERMAT p>
*/