Protezione / avvolgimento delle chiavi

2

C'è un rischio noto nell'avere due chiavi che si avviano a vicenda?

Diciamo che un avversario ha accesso sia a AESkey1 (key2) che AESkey2 (key1).

Rende molto più facile per lui recuperare le chiavi?

    
posta 26.11.2018 - 16:46
fonte

2 risposte

1

Se ti capisco correttamente, mi stai chiedendo, dato C 1 = AES K 1 (P 1 ) e C 2 = AES K 2 (P 2 ) , se è possibile ottenere P 1 o P 2 nel caso in cui K 1 = P 2 e K 2 = P 1 . La risposta è no, non lo è.

Non ci sono attacchi crittografici noti che sono resi più facili avendo il testo cifrato di due chiavi che si reciprocamente si crittografano a vicenda. Ovviamente, consente a un utente malintenzionato di scoprire entrambe le chiavi dopo averne individuato solo uno, dal momento che sarebbero in grado di decodificare la seconda chiave una volta che ne conoscono la prima. Qualsiasi cifra che diventa più debole quando si crittografa certi tipi di testo in chiaro (se il testo in chiaro noto, tutti gli zeri o anche una chiave utilizzata da un altro codice) viene considerata gravemente compromessa. Un codice strong come AES non ha questo problema finché la chiave è segreta e scelta casualmente.

    
risposta data 28.11.2018 - 07:00
fonte
0

Dipende, ma un tale schema può essere reso sicuro.

AES è un codice a blocchi con una dimensione di blocco specifica di 128 bit e dimensioni di chiave di 128, 192 e 256 bit.

Chiaramente, se si avvolge una chiave AES-256 bit con AES-128, la sicurezza di un testo cifrato crittografato con la chiave a 256 bit non supererà 128 bit, se la chiave avvolta è comunque disponibile per un avversario. Non possiamo rompere la crittografia a 128 bit, ma potresti sicuramente argomentare che è meno sicuro della crittografia a 256 bit. Quindi dovresti usare chiavi con dimensioni identiche (questo è un po 'diverso dall'involucro solo in un modo, in tal caso il wrapping dovrebbe essere grande almeno quanto la chiave avvolta).

Ci sono anche problemi quando si tenta di avvolgere una chiave AES-192 o AES-256 bit, perché non è possibile direttamente applicare il codice a blocchi a 128 bit. Avrai bisogno di una modalità di funzionamento per crittografare / decifrare le chiavi usando AES. Ora puoi utilizzare AES in modalità ECB o CBC, ma in tal caso potresti essere vulnerabile agli attacchi di Oracle oracle, a seconda di come e quando viene eseguito lo unwrapping. Con AES-256 puoi semplicemente utilizzare la modalità ECB senza schema di riempimento, ma per AES-192 non è questo il caso.

E, mentre siamo in argomento, ci sono molti modi di operare, ciascuno con le sue peculiarità. Se applicato in modo errato, qualsiasi tipo di crittografia potrebbe essere vulnerabile agli attacchi. Fortunatamente le chiavi AES dovrebbero essere composte da dati indistinguibili da quelli casuali a quelli di un aggressore. Questo riduce il potenziale di attacco dell'avversario rispetto ad es. attaccando una chiave privata RSA avvolta, in cui i componenti della chiave si trovano all'interno di una struttura ben definita.

Come puoi notare, questi sono tutti problemi per il wrapping delle chiavi in generale . Se utilizzi un buon meccanismo di avvolgimento (ce ne sono di specializzati per i codici a blocchi), implementa correttamente lo schema e utilizza chiavi AES con forza simile, quindi dovresti essere sicuro. Non importa che cifrate entrambe le chiavi - non ci sono equazioni che potrebbero esporre la chiave anche se $ E_ {K_1} (K_2) $ e $ E_ {K_2} (K_1) $ sono indicati. L'unica cosa che potrebbe essere un problema è se un tale schema richiederebbe di abbassare le condizioni di accesso alle chiavi.

    
risposta data 11.12.2018 - 14:31
fonte

Leggi altre domande sui tag