Realizzare un protocollo di posta sicura simile a bitcoin, come affrontare le chiavi pubbliche?

2

Sto facendo un nuovo protocollo di posta (probabilmente esiste già, ma ho imparato molte cose sulla sicurezza e sulla privacy lungo la strada).

Ecco il riassunto (molto più semplice se conosci i meccanismi interni di bitcoin):

  • Ogni utente ha un elenco di chiavi pubbliche e private.
  • Ogni mail è in un file di cui ogni nodo ha una copia.
  • gli utenti possono inviare messaggi usando il seguente protocollo:
    • messaggio = encrypt("Your message here", receiver.publicKey);
    • signature = sign(message, sender.privateKey);
    • proofOfWork = hashcashAlg(message); vedi: hashcash
  • Quando invii una nuova posta, invii la tua chiave pubblica, la chiave pubblica del destinatario, il messaggio, la firma e proofOfWork a tutti i nodi a te noti. Ogni nodo invia quindi la posta a tutti i nodi che conosce.

Ora ho questo problema: le chiavi pubbliche (attualmente RSA) sono estremamente lunghe. Quando si desidera inviare una mail a qualcuno, è necessario conoscere la propria chiave pubblica.

Esistono algoritmi di crittografia asimmetrici che utilizzano chiavi pubbliche più piccole? O in qualche modo posso mettere la lunga chiave RSA attraverso un RIPEMD160 e ancora utilizzabile?

    
posta user1009013 25.03.2014 - 11:52
fonte

1 risposta

1

Now I've got this problem: public keys (currently RSA) are extremely long. When you would want to send a mail to someone, you would need to know their public key.

Are there any asymmetric encryption algorithms that use smaller public keys? Or some way I can put the long RSA key through a RIPEMD160 and it still being usable?

Questo è un problema noto con i sistemi crittografici a chiave pubblica convenzionali, ad es. RSA e DH e tra le altre cose uno dei motivi per cui Elliptic Curve Cryptography (ECC) è così attraente . Le dimensioni chiave usuali vanno da qualcosa tra 160 e 512 bit , fornendo allo stesso livello di sicurezza.

Un altro potenziale modo per risolvere il problema è uno schema simile a quello implementato in DNSSEC . Qui hai due coppie di chiavi, che sono di lunghezza diversa. Quello più corto deve essere sostituito più spesso (una volta al mese o giù di lì), ma è quello che sta effettivamente facendo tutte le firme. Personalmente non mi piace molto questo approccio, ma è stato specificamente progettato in questo modo per rendere le firme più brevi.

    
risposta data 25.03.2014 - 14:24
fonte

Leggi altre domande sui tag