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