Ho dei limiti di dimensioni insolite per i miei dati che potrebbero essere rilevanti per la soluzione prescritta.
Lo scenario è il seguente. Il server sicuro A genera 240 byte di dati che devono essere consumati da un client offline B. Il client B deve garantire che il messaggio di 240 byte non sia stato alterato. Tendo a inciampare ingloriosamente sulla semantica e sulla terminologia del mondo della sicurezza, ma credo che quello che cerco sia "l'integrità dei dati".
Se seguo questo processo, garantisce l'integrità dei dati? (Capisco che la garanzia potrebbe essere una parola strong)
- Genera una coppia di chiavi pubblica / privata sul server A
- Esegue una crittografia asimmetrica sul messaggio da 240 byte utilizzando la chiave privata (un'operazione di firma se ho capito bene)
- Al client B viene rilasciata la chiave pubblica e il messaggio crittografato (firmato)
Se il client B riesce a decifrare il messaggio, questa garanzia, almeno accademicamente, che i dati non sono stati modificati con?
Nota 1: il numero di byte disponibili sul supporto di trasferimento per il client B è limitato, un aumento fino al 40% dovuto alla crittografia potrebbe essere tollerato, ad esempio una firma RSA utilizzando un 2048 -bit chiave risultante in 256 byte dal mio messaggio a 240 byte sarebbe accettabile.
Nota 2: non vi è alcuna aspettativa di privacy. Non mi interessa se i dati possono essere letti da chiunque. Solo che lo schema può rilevare se il messaggio è stato manomesso.
Domanda ausiliaria: esiste un algoritmo consigliato? Ho giocato con RSA usando chiavi a 2048 bit.
Grazie ai maghi della sicurezza, non so come lo fate voi ragazzi.