Si può dedurre una chiave privata PGP se il testo dell'email è noto?

7
  • Supponiamo di inviare una e-mail crittografata con PGP alla persona A e la stessa email (stesso oggetto, stesso testo del messaggio) non criptato alla persona B.
  • Supponiamo che un servizio segreto intercetti entrambi i messaggi.
  • Il servizio segreto presuppone giustamente dalla stessa riga dell'oggetto che entrambe le mail contengono testo identico.
  • Ciò consente al servizio segreto di dedurre la chiave privata della mia persona o A e decrittografare tutte le mie successive e-mail crittografate alla persona A?
posta Ydobemos 25.09.2013 - 11:47
fonte

4 risposte

9

No, le chiavi private sono ancora al sicuro in questo caso:

  • Il tuo tasto, come mittente, non è coinvolto affatto nel processo. Quando si cripta una e-mail alla persona A, si utilizza la chiave pubblica di A, non la chiave privata. Se usi la tua chiave privata, sarà firmare l'e-mail che invii, che è qualcosa di molto diverso.

  • Anche la chiave privata di A non è coinvolta. Utilizzi la chiave pubblica di A per la crittografia. Se il potenziale aggressore vuole sapere un messaggio m e quale sarebbe questo messaggio se fosse crittografato con la chiave pubblica di A, allora ... può farlo da solo! La chiave pubblica di A è pubblica, tutti lo sanno e tutti possono crittografare le cose con quella chiave.

  • Nel caso generale dei meccanismi di crittografia, tali sistemi dovrebbero resistere a situazioni in cui l'attaccante può imparare diverse coppie (anche molte ) in testo semplice / testo cifrato. Questi sono chiamati attacco di testo in chiaro noto (attaccante apprende una coppia di testo in chiaro / cifratura), attacco di testo in chiaro (l'autore dell'attacco sceglie il testo in chiaro e ottiene il testo cifrato corrispondente) e < em> attacco cifrato scelto (l'attaccante sceglie il testo cifrato e ottiene il testo in chiaro). PGP sarebbe considerato piuttosto debole se una coppia singola, o anche una coppia milioni , sarebbe sufficiente per romperla.

risposta data 25.09.2013 - 13:25
fonte
2

In primo luogo, vediamo come funziona PGP. Prendendo estratti da RFC4880

 OpenPGP combines symmetric-key encryption and public-key encryption
   to provide confidentiality.  When made confidential, first the object
   is encrypted using a symmetric encryption algorithm.  Each symmetric
   key is used only once, for a single object.  A new "session key" is
   generated as a random number for each object (sometimes referred to
   as a session).  Since it is used only once, the session key is bound
   to the message and transmitted with it.  To protect the key, it is
   encrypted with the receiver's public key.  The sequence is as
   follows:

   1.  The sender creates a message.

   2.  The sending OpenPGP generates a random number to be used as a
       session key for this message only.

   3.  The session key is encrypted using each recipient's public key.
       These "encrypted session keys" start the message.

   4.  The sending OpenPGP encrypts the message using the session key,
       which forms the remainder of the message.  Note that the message
       is also usually compressed.

   5.  The receiving OpenPGP decrypts the session key using the
       recipient's private key.

   6.  The receiving OpenPGP decrypts the message using the session key.
       If the message was compressed, it will be decompressed.

Il testo inviato viene crittografato utilizzando una crittografia simmetrica e la chiave di crittografia simmetrica viene crittografata utilizzando la chiave privata dei ricevitori. Quindi ora la domanda può essere suddivisa in due problemi:    1. Attacco di testo in chiaro noto su crittografia simmetrica.    2. Attacco di testo in chiaro noto su crittografia asimmetrica.

Prima domanda prima. In GnuPG, alcuni dei algos simmetrici usati sono: AES, Twofish, CAST5, DES3. Questi algoritmi utilizzano una dimensione minima della chiave di 128 bit, quindi l'attacco di testo in chiaro noto contro questi algoritmi è difficile. Puoi leggere ulteriori informazioni su questo argomento per AES in questo thread .

Venendo alla seconda domanda, attacco alla crittografia asimmetrica. ElGamal e RSA sono usati in GnuPG. Come per questo thread , non è possibile l'attacco al testo di lamentela noto contro RSA.

Inoltre, dai anche un'occhiata a questo domanda pure.

    
risposta data 25.09.2013 - 13:40
fonte
1

L'invio di un messaggio PGP crittografato è (secondo l'articolo articolo Wiki su PGP ) :

  1. Cripta messaggio T con un algoritmo di crittografia simmetrica con una chiave generata in modo casuale utilizzabile una sola volta (chiave di sessione S ) per ottenere testo cifrato E ;
  2. Crittografa la chiave di sessione S con algoritmo di crittografia asimmetrico utilizzando la chiave pubblica del destinatario Pub (otteniamo S' );
  3. Invia E e S' al destinatario;
  4. Il destinatario può quindi decrittografare S' con la sua chiave privata Pr per ottenere S , quindi utilizzare S per decrittografare E per ottenere T .

Da questo I presumo ottenendo la chiave privata del destinatario Pr con entrambi T e E non è possibile, poiché la parte di crittografia asimmetrica non ha nulla a che fare con il cyphertext o il plaintext.

    
risposta data 25.09.2013 - 13:20
fonte
0

Come giustamente sottolineato, la chiave privata non è coinvolta nella crittografia, l'unica cosa coinvolta nello scenario dalla domanda è la chiave pubblica, e ovviamente tutti hanno già la chiave pubblica, quindi non importa se il l'agenzia di sicurezza intercetta i messaggi pubblici crittografati o meno, può cifrare quello che vuole con la chiave pubblica.

Tuttavia, la domanda interessante è se il messaggio in chiaro è firmato ma non crittografato. Lì si usa la chiave privata, e questo è il tipo di scenario in cui il noto testo in chiaro, gli attacchi di testo in chiaro scelti fanno riferimento. Si ritiene che l'algoritmo di tipo RSA (basato sull'esponenziazione nei campi finiti) sia resistente contro tali attacchi. Ciò significa che la complessità di trovare la chiave privata anche conoscendo il testo in chiaro, è fondamentalmente la stessa di provare ogni numero tra 2 e 2 ^ 4096 (se la chiave è lunga 4096 bit). Questo perché la densità dei numeri primi è n / log n quindi ci sono quasi 2 ^ 4096/4096 = 2 ^ 4084 numeri primi da testare.

Ma la verità è che nessuno sa se sia impossibile eseguire un attacco di testo normale noto in generale. Esistono modi per eseguire attacchi di testo in chiaro scelti per le cosiddette "chiavi deboli" (ad esempio i generatori di numeri primi sono probabilistici in modo da finire con una chiave privata non primaria, che è fondamentalmente debole quanto il suo più grande componente principale). Ma non è mai stato provato che non ci siano attacchi generali, è solo una credenza. Proprio come non era noto se esistesse un modo per testare se un numero era deterministicamente primo in tempo polinomiale fino a pochi anni fa, allora hanno trovato un modo (ma in questo caso esistevano algoritmi probabilistici con un tasso di errore molto basso che erano polinomiale e per rompere le chiavi non ci sono algoritmi noti)

    
risposta data 15.08.2014 - 18:51
fonte

Leggi altre domande sui tag