Red de conocimiento informático - Problemas con los teléfonos móviles - ¿Cómo implementar el algoritmo de cifrado RSA en lenguaje C? Urgente, urgente, urgente

¿Cómo implementar el algoritmo de cifrado RSA en lenguaje C? Urgente, urgente, urgente

/* Los datos sólo pueden ser una cadena de letras mayúsculas.

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

*/