2010-05-18 40 views
6

Quello che ho capito di RSA è che Alice può creare una combinazione di chiavi pubblica e privata e quindi inviare la chiave pubblica a Bob. E poi in seguito Bob può crittografare qualcosa usando la chiave pubblica e Alice userà la combinazione di chiavi pubblica e privata per decodificarlo.come funziona la crittografia a chiave pubblica

Tuttavia, come può Alice codificare qualcosa da inviare a Bob? Come lo decifrerebbe Bob? Lo chiedo perché sono curioso di sapere come quando accedo al mio sito bancario, la mia banca mi invia dati come le mie dichiarazioni online. In che modo il mio browser decrittografa queste informazioni? Non ho la chiave privata.

risposta

3

Semplice, è necessaria una chiave.

SSL/TLS risolve questo problema creando una chiave di sessione simmetrica durante l'impostazione della connessione. La crittografia a chiave pubblica viene utilizzata per stabilire questa chiave di sessione, che viene quindi utilizzata per la comunicazione di dati bidirezionale. Read more about TLS

4

Alice will use the public and private key combo to decrypt it

Alice sarebbe solo decifrare con la sua chiave privata.

However, how can Alice encrypt something to be sent over to Bob? How would Bob decrypt it?

Alice avrebbe bisogno la chiave pubblica di Bob di inviare qualcosa a lui. In genere, la crittografia a chiave pubblica viene utilizzata per l'autenticazione, il non ripudio (come la firma) e la distribuzione di chiavi simmetriche (che sono più veloci per la crittografia/decrittografia di messaggi lunghi).

0

In questa situazione, Alice utilizza la chiave pubblica di Bob per crittografare i dati e Bob la decodifica con la sua chiave privata.

In sostanza, una chiave pubblica crittografa i dati e una chiave privata decodifica tali dati. Poiché ogni utente ha sia una chiave pubblica che privata, puoi inviare dati in modo sicuro a qualsiasi altro utente.

0

Tuttavia, come può Alice codificare qualcosa da inviare a Bob? Come lo decifrerebbe Bob? Lo chiedo perché sono curioso di sapere come quando accedo al mio sito bancario, la mia banca mi invia dati come le mie dichiarazioni online. In che modo il mio browser decrittografa queste informazioni? Non ho la chiave privata.

Questo è dove ti sbagli; do avere una chiave privata. Come parte del processo di handshaking, ogni lato genera due chiavi: una chiave pubblica e una chiave privata. Il client invia la sua chiave pubblica al server, che lo utilizzerà per crittografare tutti i dati inviati al client. Allo stesso modo, il server genera entrambe le chiavi e invia la sua chiave pubblica al client, che la utilizzerà per crittografare tutti i dati inviati al server.

In molti scenari, l'algoritmo di chiave asimmetrica viene utilizzato solo per lo scambio un'altra chiave, che è per un algoritmo simmetrico.

7

In sostanza, la procedura è:

  1. Il client si connette al server e richiede il certificato del server. Il certificato contiene la chiave pubblica e informazioni sull'identità del server.
  2. Supponendo che il client sia soddisfatto dell'identità del server, genera un numero casuale P e lo crittografa con la chiave pubblica del server.
  3. Solo il server può decodificare P (con la sua chiave privata, non condivisa con nessuno), quindi quando il client invia il numero casuale crittografato al server, il server la decrittografa.
  4. Il client e il server utilizzano entrambi P per generare una chiave simmetrica per l'uso in un algoritmo di crittografia simmetrica, con la certezza che solo il client e il server conoscono il valore di P utilizzato per generare la chiave.
0

Se ci si collega al sito della propria banca funziona un sacco di cose crittografiche. La cosa più importante è che usi la chiave pubblica della banca per inviare una parte di informazioni alla banca, perché in ogni server di connessione SSL (https) invia al client la sua chiave pubblica impacchettata come certificato.

L'utilizzo del certificato e PKI in tutto il mondo è importante. Volete essere sicuri, che se date alla banca la vostra spilla, quello dall'altra parte è davvero la vostra banca e non un'altra persona. Questo sarà risolto, perché su ogni computer c'è un piccolo numero di chiavi pubbliche di organizzazioni ben conosciute (come VeriSign) e il banco invia non solo la sua chiave pubblica del server, ma un certificato. certificato è un messaggio firmato da VeriSign per esempio, che dice "questa chiave pubblica è in realtà dalla banca XYZ". Quindi, dato che hai la chiave pubblica di VeriSign, puoi prima verificare che il certificato del server della banca sia corretto. Quindi puoi star sicuro che lo comunichi davvero con la tua banca.

2

In linea generale ho fatto fatica a capire crittografia a chiave pubblica per un bel po 'insieme con gli altri elementi della PKI come le firme digitali e certificati, mentre la preparazione per Microsoft C# certificazione.

Mi sono imbattuto in una spiegazione sotto forma di un PDF conciso e dettagliato su cgi.com. So che è tornata la cara vecchia Alice e Bob! ma mi ha davvero chiarito le cose con i suoi diagrammi e le sue note e alla fine ha anche sollevato alcune domande. Lo consiglio vivamente.

Visita http://www.cgi.com/files/white-papers/cgi_whpr_35_pki_e.pdf

Problemi correlati