Non più di 128 bit per la chiave pubblica, la chiave privata e la firma: sono requisiti rigidi; più difficile è la dimensione della firma.
Se usi ECDSA , potrebbe lavorare su una curva a 128 bit. Una chiave pubblica può contenere circa 129 bit; puoi omettere un bit (questo vuol dire che chiunque verifica le firme deve "indovinare" il bit mancante, cioè provare due possibili chiavi pubbliche, se una corrisponde alla firma, va bene). La chiave privata userebbe 128 bit, ancora alla pari con le tue esigenze. La sicurezza sarebbe fino a 2 operazioni 64 , tecnologicamente fattibile ma non facilmente (è iniziato un calcolo distribuito per interrompere una curva a 128 bit, coinvolge un bel po 'di università e ci si aspetta prendere circa 10 anni - questo è ciò che intendo per "non facile"). Ma la dimensione della firma sarebbe 256 bit ( due numeri interi a 128 bit), il doppio del requisito. Quindi ECDSA non funziona per te.
Se guardi i documenti di ricerca, potresti trovare lo schema BLS . Per soddisfare i requisiti, dovresti utilizzare una curva a 128 bit con una curva supersingolare (matematicamente, devi avere sia la chiave pubblica che le firme per essere nella curva sul campo base, non l'estensione del campo, quindi questo implica l'uso di una mappa di distorsione). Per ottenere almeno un po 'di sicurezza (qualcosa di non più che appena fessurabile), il grado di incorporamento dovrebbe essere almeno 6, e si vogliono evitare i campi della caratteristica 2, quindi sarà necessario implementare calcoli in un campo di caratteristiche 3. Ci non è uno standard pubblicato, solo frammenti di alta conoscenza matematica sparsi su dozzine di articoli di sola leggibilità relativa. Se hai capito qualcosa di quel paragrafo, hai già perso la tua sanità mentale, probabilmente dove ho smarrito il mio.
Riepilogo: non esiste un algoritmo di firma digitale noto che soddisfi entrambi i requisiti e è ragionevole da usare. Lì potrebbe esserne uno in futuro, quando la ricerca attuale sugli accoppiamenti si stabilizzerà. Ma non sarà facile da implementare.