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
- messaggio =
- 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?