Scelta di un algoritmo di firma più o meno sicuro con lunghezza della firma molto breve

1

Per un codice di registrazione software, desidero firmare un numero di telefono di circa 14 cifre con una chiave privata e quindi controllarlo in un'app.

Immaginerei di usare RSA o qualcosa di simile, ma la firma dovrebbe essere digitata manualmente (codice di registrazione) e avere solo 10 cifre da digitare facilmente.

Le firme RSA sono di solito più lunghe. Quindi posso Hash e ancora verificarlo?

Ho letto che le firme RSA sono lunghe quanto la chiave privata, quindi ho provato a firmare con una chiave RSA a 32 bit, ma questo mi dà "modulo da short".

Il prossimo approccio sarebbe quello di utilizzare una dimensione della chiave più lunga e l'hash della firma per avere uno più breve. Ma penso che non posso più verificarlo, o c'è ancora un modo?

La mia chiave pubblica sarebbe contenuta nell'app. Il privato meglio non: -)

So che le chiavi di curva ellittica sono più corte, quindi sarebbe utile?

Non deve essere super sicuro (il che è probabilmente impossibile), ma nel modo più sicuro possibile con questa limitazione.

Bonus: è possibile utilizzare un risultato di firma ancora più breve, come ad esempio 16 bit. Il mio approccio è di avere più firme nel risultato in modo da poterne controllare solo una e usare un'altra chiave pubblica più tardi.

Bonus 2: l'implementazione dovrebbe essere relativamente facile da codificare con librerie disponibili per Java / Android e PHP.

    
posta Alex 14.05.2017 - 17:28
fonte

0 risposte

Leggi altre domande sui tag