lunghezza dei codici rispetto alla lunghezza della chiave

3

ssh-keygen imposta come valore predefinito RSA (per il protocollo SSH 2) e una chiave a 2048 bit.

A questa descrizione di ssh

         The supported ciphers
         are: 3des-cbc, aes128-cbc, aes192-cbc, aes256-cbc, aes128-ctr,
         aes192-ctr, aes256-ctr, arcfour128, arcfour256, arcfour, blow-
         fish-cbc, and cast128-cbc.  The default is:

           aes128-cbc,3des-cbc,blowfish-cbc,cast128-cbc,arcfour128,
           arcfour256,arcfour,aes192-cbc,aes256-cbc,aes128-ctr,
           aes192-ctr,aes256-ctr

Quindi sembra che le cifre siano 128 o 256 bit, se deduco dai numeri senza unità. Qual è la giustificazione per cui i codici sono più brevi della chiave?

    
posta H2ONaCl 18.12.2012 - 09:11
fonte

3 risposte

5

Questa è la lunghezza della chiave per RSA (crittografia asimmetrica). Viene utilizzato per stabilire l'identità del server ed eseguire l'autenticazione e lo scambio di chiavi simmetriche. Non esegue la crittografia della connessione.

Le cifre illustrate sopra sono tutte simmetriche, utilizzate per crittografare la connessione. Almeno per AES sono sicuro che la lunghezza massima della chiave sia 256 bit.

Per darti un'idea di base su come funziona SSH:

  1. Genera una chiave di sessione casuale
  2. Cripta questa chiave di sessione con i server pubblici e il tuo certificato privato
  3. Il server
  4. decrittografa la chiave di sessione e viene impostata una crittografia simmetrica tra il client e il server per inviare i dati. Poiché è crittografato con la chiave pubblica del server, solo il server può leggerlo. Poiché è crittografato con il tuo certificato privato, il server sa che deve provenire da te (o più esattamente dal titolare della chiave privata corrispondente).

Se vuoi maggiori informazioni, c'è una spiegazione molto carina qui .

    
risposta data 18.12.2012 - 09:28
fonte
4

È necessario distinguere tra la funzione di scambio di chiavi e la funzione di cifratura. Lo scambio di chiavi avviene come ha detto Lucas Kauffman. Entrambe le parti utilizzano la crittografia asimmetrica per verificare la propria identità (o la posizione della parte di identità privata) e concordare una chiave di sessione che viene utilizzata con una funzione di cifratura come AES o le altre cifre mostrate.

Come regola generale si può ricordare: la criptatura asimmetrica ha bisogno di molto più tempo di calcolo rispetto a quella simmetrica. Questo è il motivo per cui è comodo da utilizzare per la chiave d'accordo ma non per la crittografia dei dati a lungo termine.

Mi è stato detto in università (non molto tempo fa) che teoricamente 80 bit di entropia (lunghezza della chiave) sono sufficienti per la potenza di calcolo di oggi. Considerato l'unico modo di rompere un cifrario è quello di forzarlo. E se consideri che ogni bit che aggiungi alla chiave raddoppia lo spazio della chiave, allora per la prossima volta saremo perfetti con chiavi a 128 o 256 bit.

    
risposta data 18.12.2012 - 15:53
fonte
0

"What is the justification for the ciphers being shorter than the key?"

A quanto ho capito, le chiavi asimmetriche devono avere una relazione matematica tra di loro (privato e pubblico) che limita strongmente il numero di possibilità che si possono avere, mentre i cifrari simmetrici hanno una quantità molto più grande di combinazioni. Questo sito fa molto meglio a spiegarlo.

Come per cambiare il codice o la lunghezza della chiave utilizzata da SSH, sto ancora cercando. Per modificare la lunghezza della chiave di autenticazione asimmetrica, utilizzare ssh-keygen -b 4096 per creare una nuova chiave con 4096 bit, farlo nella directory / etc / ssh per aggiornare la chiave del server e creare una nuova chiave. Assicurati di avere accesso diretto alla macchina quando cambi i tasti, oppure puoi bloccarti. Ho trovato che puoi andare a 8192 bit (Overkill? Non so una parola!) Prima che SSH non li accetti più, ho persino spinto un Raspberry Pi a quella lunghezza.

    
risposta data 26.08.2015 - 23:19
fonte

Leggi altre domande sui tag