Salve a tutti, ho un problema riguardo il seguente frammento di codice:
in pratica è un programma che cifra e decifra del testo secondo la codifica RSA.
codice:
char CalcolaPotenza( int N, int e, uint64_t r )
{
char ris = 1;
for ( ; e > 0; e-- ){
ris = (ris*N)%r;
}
return ris;
}
int Codifica( int esp, uint64_t mod )
{
char CarCorrente, Car;
ifstream leggi(NomeFileIn);
if ( !leggi )
return 1;
ofstream scrivi(NomeFileOut);
if ( !scrivi )
return 2;
while( (CarCorrente = leggi.get()) != EOF )
{
Car = CalcolaPotenza(CarCorrente, esp, mod);
scrivi.put(Car);
}
return 0;
}
Il problema molto probabilmente sta nella lettura e scrittura non formattata.. in pratica dato un file di testo pensavo di prendere carattere per carattere cola la .get() e cifrarlo per mezzo della funzione moltiplica.. il problema è che in decifratura il messaggio non viene appunto decifrato 
ad esempio supponendo di dover cifrare il carattere 'a' con le chiavi (5, 323) e (173, 323) avrei
97^5 mod 323 = 241 cifratura
241^173 mod 323 = 97 decifratura
cosa che funziona bene in teoria, ma che non mi viene in pratica