Desidero inviare brevi messaggi ai telefoni cellulari. Comunemente un breve messaggio non è più lungo di 70 byte. Ho bisogno di 20 o più informazioni di mantenimento e il resto dei byte sono per la firma fornita da schemi asimmetrici dal server. È perché i messaggi brevi possono essere facilmente falsificati con le false torri radio.
La mia app otterrà la chiave pubblica attraverso il canale https dal server. Dopo aver ricevuto la chiave pubblica, il telefono potrebbe essere sempre offline. Quando il server vuole contattare un telefono, invia un breve messaggio e firma con la chiave privata. Quindi il telefono può fidarsi del messaggio e fare gli ordini sul messaggio. La chiave pubblica verrà aggiornata ogni mese e ha una scadenza di diversi mesi.
Ho letto alcuni documenti che introducono RSA, DSA e BLS. L'RSA più breve ha un segno di 128 byte, mentre un segno DSA con un set di caratteri leggibile come BASE64 è 64 byte. C'è uno schema di firma più breve? Ho visto BLS ma ora non è uno standard internazionale e nessuna implementazione di jvm è stata trovata.
Assumiamo che il testo non elaborato sia visibile poiché gli autori degli attacchi possono leggere il codice client e sapere cosa succede. Quindi è ancora sicuro usando una firma breve con 30 byte (altri sono ridondanza)?
somma
-
la lunghezza del segno è di circa 30 byte
-
il tempo scaduto è di alcuni mesi
-
schema asimmetrico in modo che i messaggi non possano essere falsi
-
il testo non elaborato è un po 'visibile