Qual è il limite della dimensione dei dati che i criptodi a chiave pubblica possono gestire?

5

Qualcuno ha menzionato qui che la crittografia asimmetrica potrebbe non essere appropriata per i dati collettivi e ha fornito un esempio di RSA con 100 byte. Certo, capisco che è stato un esempio approssimativo. Ma mi ha fatto incuriosire: quanta dimensione dei dati può gestire in generale una crittografia a chiave pubblica e quanto può gestire una libreria JavaScript come OpenPGP.js in particolare. In quest'ultimo caso, l'ambiente del browser aggiunge ulteriori limitazioni?

Aggiunto :
C'è qualche risorsa online reputata che ha una discussione / confronto dei vari criptati a chiave pubblica riguardo ai limiti sulla dimensione dei dati?

    
posta Sam 31.10.2013 - 01:29
fonte

2 risposte

10

Per rispondere alla tua domanda, i tuoi equivoci devono essere corretti per primi. Nella maggior parte dei casi, il riempimento in RSA aggiunge 11 byte al messaggio. Quindi, utilizzando una chiave a 1024 bit, avrai 117 byte disponibili per il messaggio . Ecco perché RSA non viene solitamente utilizzato per crittografare i messaggi, è principalmente utilizzato per crittografare le chiavi simmetriche utilizzate per crittografare i messaggi. Questo è chiamato cryptosystem ibrido .

Ad esempio, in PGP, viene creata una chiave simmetrica ( sK ), il messaggio è crittografato con sK , quindi sK è crittografato con la chiave pubblica e entrambi (il messaggio crittografato e sK crittografati) vengono inviati al destinatario. Il destinatario utilizzerà la sua chiave privata per decrittografare sK e usarlo per decodificare il messaggio.

Tecnicamente parlando, non c'è limite alla dimensione del messaggio PGP (e, di conseguenza, OpenPGP.js ) in grado di gestire. Le limitazioni potrebbero derivare dalla quantità di memoria disponibile, dalla quantità di memoria utilizzabile dal browser, ecc.

    
risposta data 31.10.2013 - 10:30
fonte
4

Ogni algoritmo ha i suoi limiti. Come citato da @Adnan, RSA (con padding v1.5 PKCS # 1) supera a 11 byte meno della dimensione del modulo RSA. Altri algoritmi possono avere proprietà diverse.

In particolare, con Diffie-Hellman , non criptare affatto, ma puoi ancora usarlo per la crittografia asimmetrica. Un modo per considerare il DH è che si tratta di un algoritmo di crittografia asimmetrico, in cui non si sceglie ciò che si cripta: quando si esegue l'algoritmo, la parte che crittografa impara, alla fine, ciò che effettivamente "crittografa". Eppure questo è sufficiente per la crittografia ibrida: un segreto condiviso è bello da usare come chiave per la crittografia simmetrica. Questo processo è stato formalizzato con un nome proprio: IES (con una variante di curva ellittica chiamata ECIES).

Si noti che crittografa perché si desidera mantenere la riservatezza dei dati e la maggior parte dei modelli di attacco in cui la riservatezza è importante sono anche modelli di attacco in cui integrità è importante (solo attaccanti passivi sono rari). La crittografia, da sola, non fa la cosa completa, quindi in genere è necessaria comunque una combinazione di algoritmi.

    
risposta data 31.10.2013 - 12:52
fonte

Leggi altre domande sui tag