RSA e autenticazione crittografata

2

Gli algoritmi simmetrici come AES offrono modalità come GCM che possono essere utilizzate per la crittografia autenticata. Supponendo che io stia utilizzando RSA anziché AES, ha ancora senso aggiungere controlli di autenticazione basati su HMAC a dati crittografati?

[EDIT] Il file d'uso è che sto per memorizzare i dati su una macchina e desidero crittografarlo. Posso scegliere tra RSA e AES, tuttavia è importante verificarne l'autenticità (indipendentemente dal fatto che sia stato manomesso o sostituito ecc.) Prima o durante la decrittografia.

    
posta 06.12.2012 - 05:55
fonte

4 risposte

2

Normalmente non crittografare i dati con RSA. Quello che fai è crittografare una chiave casuale con RSA, e quindi criptare i dati stessi con un algoritmo di crittografia simmetrica (come AES), usando la chiave casuale. Questa è chiamata crittografia ibrida . Il motivo principale per cui questo è dovuto al fatto che la crittografia RSA è di dimensioni molto limitate: con una chiave RSA a 1024 bit, è possibile crittografare al massimo 117 byte, non di più.

Quindi, c'è necessariamente una crittografia simmetrica nel processo (a meno che non si stia facendo qualcosa di sbagliato, o i dati da crittografare siano molto brevi) e quella parte dovrebbe includere un controllo di integrità, che è quello che GCM o EAX fornisce insieme al crittografia.

Ad ogni modo, indipendentemente dal modo in cui crittografate i dati, avete bisogno di un controllo di integrità e RSA, da solo, non lo fornirà. Poiché assemblare diversi algoritmi crittografici è un compito difficile (è facile sbagliarlo), dovresti fare affidamento su una libreria che fa il lavoro per te ed è stato ragionevolmente verificato che faccia le cose correttamente (es. GnuPG ).

    
risposta data 06.12.2012 - 15:00
fonte
2

Non so davvero quale sia il problema? Se si desidera la segretezza si utilizza encryption se si desidera l'autenticità si utilizza Digital Signatures , e nella stessa integrità di considerazione. Se si firma un hash (RSA) prima o dopo la crittografia (AES). Dipende da quando vuoi convalidare la sua integrità.

    
risposta data 06.12.2012 - 09:36
fonte
0

Solo un suggerimento:

Puoi prima provare a generare l'hash dei dati usando qualsiasi Hash Algorithm (Es: SHA-256) ben noto e quindi aggiungere l'hash alla fine dei dati e crittografare sia i dati che l'hash con un algoritmo simmetrico (AES ).

Devi trovare un modo per tenere traccia di dove finiscono i tuoi dati e dove inizia l'hash (puoi registrare le lunghezze all'inizio del blocco)

Quando recuperi i dati, prima decrittografali, quindi genera di nuovo l'hash della parte dati e verificalo con l'hash presente in precedenza. Questo aiuterà sia con l'integrità che con la riservatezza. L'approccio è in qualche modo simile al modo in cui TLS protegge i suoi record.

Si noti che questo non fornisce l'autenticazione (fornisce comunque un modo per verificare l'autenticità dei dati) che presumo non sia necessario per voi.

Spero che questo aiuti.

    
risposta data 06.12.2012 - 10:45
fonte
0

Come si nota, quando si fa riferimento a GCM ci sono diversi modi per eseguire la crittografia e l'autenticazione contemporaneamente: Crittografia autenticata con associato Dati o Crittografia autenticata . Ciò dovrebbe fornire entrambi contemporaneamente e aggirare opportunamente il problema se è necessario autenticarsi e quindi crittografare, crittografare e quindi autenticare.

Per il vantaggio delle persone che leggono alcuni degli altri commenti, il consenso, tuttavia, è che se devi usare uno e poi l'altro che encrpyt quindi autenticare è meglio da un doom crittografico punto di vista.

Se è solo per il backup, non vedo il caso d'uso per l'utilizzo di chiavi pubbliche, sembra che complichi le cose, a meno che tu non abbia una soluzione chiavi in mano.

    
risposta data 06.12.2012 - 15:26
fonte

Leggi altre domande sui tag