Sto scrivendo un algoritmo di crittografia RSA in C. Non sto pianificando di metterlo in produzione da nessuna parte, è principalmente solo così posso ampliare la mia comprensione della crittografia.Come gestire massicci numeri in C
Come si gestiscono i numeri massicci generati da RSA? Anche durante l'esecuzione di decrittazione con un relativamente piccolo chiave privata come 103, ho ancora il problema di affrontare le cose in questo modo:
67^103 mod 143 = (1,21816096336830017301951805581 x 10^188) mod 143
Qual è il modo migliore per memorizzare un numero di tale dimensione? C'è un modo per farlo usando le librerie standard? .
è possibile implementare tutti i grandi numero di aritmetica da soli, ma è più facile utilizzare solo una libreria multi-precisione esistente come GMP. –
@ArtjomB. Stavo pensando che potrei implementarne uno usando gli array per memorizzare numeri nella base 2^64. Non sapevo se sarebbe stato pratico. – mstagg
Ciò funzionerebbe. Attento con overflow però. Devi implementare la moltiplicazione e quindi la divisione (per modulo). Ma seriamente, usa semplicemente GMP. –