Crittografia - RSA vs. AES

0

Ho una domanda riguardante la crittografia e se utilizzare la crittografia simmetrica o asimmetrica.

L'idea è di implementare una forma di crittografia dei dati in una varietà di software. Questi dati saranno scambiati con terze parti, che lo verificheranno. L'obiettivo principale è garantire l'integrità e l'autenticità dei dati. Scambiare le chiavi in modo sicuro non è un problema.

La domanda è: È meglio utilizzare RSA (insieme a una funzione di hash come SHA-1) o AES per proteggere l'integrità dei dati? Quali sono i pro e i contro in merito ai seguenti fattori:

  • Difficoltà di implementazione. C'è qualche differenza in quanto è difficile per uno sviluppatore implementare (codice) RSA e AES?
  • Potenza di calcolo. RSA o AES richiedono di più in termini di potenza di calcolo e velocità per crittografare / firmare i dati?
  • Quali sono le dimensioni della chiave buone? 1024 bit RSA / 128 bit AES?
  • Qualche altro fattore da prendere in considerazione quando si sceglie il tipo di crittografia?
posta Dino 25.07.2016 - 09:02
fonte

2 risposte

2

Se il tuo obiettivo principale è garantire l'integrità e l'autenticità e non la riservatezza , sembra che quello che vuoi non sia la crittografia, ma l'autenticazione dei messaggi (simmetrica, come HMAC) o una firma digitale (asimmetrica , come RSA).

Dato che parli di terze parti, è probabile che sia necessario utilizzare la firma con un sistema asimmetrico, poiché con un sistema simmetrico le terze parti sarebbero a conoscenza della chiave e potrebbero impersonare il mittente autentico (forse tu).

  • Implementare (codificare) RSA o AES anche da zero non è difficile di per sé, ma è difficile fare correttamente . Utilizzare una libreria ben nota o un'applicazione per farlo. (Per le firme, è possibile utilizzare ad es. GPG.)

  • RSA è (molto) più costoso da calcolare in termini di byte di testo cifrato rispetto a AES, ma il solito metodo è usare RSA per crittografare una chiave simmetrica e crittografare il messaggio con quello. Oppure con le firme, per firmare un hash del messaggio (invece del messaggio da solo).

  • Per le dimensioni chiave, un tasto AES a 128 bit è considerato corrispondente all'incirca a un 3072- bit chiave RSA. 1024 bit per RSA si trovano nella fascia bassa.

risposta data 25.07.2016 - 15:13
fonte
0
  1. È difficile da implementare? No, non proprio, se usi una libreria implementata verificata e verificata.
  2. AES è molto più veloce di RSA, ma dato che firmi solo un hash la quantità di dati utilizzati non dovrebbe essere un problema.
  3. RSA (è l'alimmo che vuoi usare) è il 2048 ( vedi ) e 256 per AES.
  4. Con AES probabilmente vorrai fare un HMAC per fare il controllo di integrità.
risposta data 25.07.2016 - 09:29
fonte

Leggi altre domande sui tag