Ho bisogno di un sistema di crittografia pubblico che funzioni su piccole chiavi [chiuso]

1

Ho solo bisogno di supporto per la firma e la verifica della firma. Ho bisogno di avere chiavi pubbliche e private che si adattino a ciascuna in 16 byte. La firma stessa deve adattarsi a 16 byte.

Non mi interessa davvero la forza crittografica, dato che è parte di qualcosa di più grande.

C'è una cosa del genere?

    
posta badp 20.02.2011 - 03:34
fonte

4 risposte

4

Vuoi fare un sistema di crittografia ellittica, che ti darà la massima protezione per il tuo botto. Vedi questo articolo di Wikipedia . L'algoritmo specifico che si adatta alle tue esigenze è DSA curva ellittica

Solo per citare alcuni punti succosi di detto articolo:

Lo schema ECC più difficile (pubblicamente) interrotto fino ad oggi aveva una chiave a 112 bit per il caso del campo principale e una chiave a 109 bit per il caso del campo binario.

16 byte = 128 bit, quindi dovrebbe andare bene.

    
risposta data 20.02.2011 - 04:54
fonte
3

Perché dovresti avere bisogno di firme digitali quando non è richiesta la forza crittografica? Va bene che chiunque può rompere o falsificare le tue firme, è così? La crittografia debole o implementata in modo errato è peggiore di nessuna perché fornisce un falso senso di sicurezza.

+1 per ECC ma fai attenzione ai suoi dettagli di implementazione difficili come il requisito per i numeri casuali.

    
risposta data 20.02.2011 - 20:27
fonte
2

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.

    
risposta data 12.11.2011 - 00:40
fonte
0

Suggerirei che se sono necessarie chiavi a breve termine e solo la verifica e la firma, puoi consultare Diffie Hellman scambio di chiavi per fare questo e utilizzare piccoli numeri primi. Sarebbe insicuro, ma lo sai già.

    
risposta data 20.02.2011 - 04:52
fonte

Leggi altre domande sui tag