se una chiave pubblica non può decifrare il testo cifrato, allora come può una chiave privata?

3

Comprendo la parte "pubblica" della crittografia a chiave pubblica. Non la parte "privata".

Ad esempio, supponiamo che la nostra chiave pubblica sia% 7 (modulo 7). E il messaggio da crittografare è 22.

E sappiamo che il 22% 7 = 1

Qui, 1 è il messaggio crittografato.

Il motivo per cui le chiavi pubbliche funzionano è che, nonostante conosca la chiave pubblica (% 7) e il messaggio crittografato (1), non posso confermare che il messaggio originale fosse 22.

Quindi, questo pone la domanda, come fa la chiave privata a capire che il messaggio originale era 22?

    
posta thanks_in_advance 17.07.2015 - 19:53
fonte

1 risposta

5

Quello che hai presentato non è uno schema di crittografia, hai appena preso un numero e lo hai modificato per 7. Questo non può essere uno schema di crittografia perché c'è più di un "messaggio" che produrrà lo stesso "testo cifrato", per esempio:

  • il messaggio 22 produce il testo cifrato 22% 7 = 1
  • il messaggio 29 produce lo stesso testo cifrato 29% 7 = 1
  • il messaggio 36 produce lo stesso testo cifrato 36% 7 = 1
  • . . .

Quindi la tua domanda:

how does the private key figure out that the original message was 22?

Non perché, per il testo cifrato " 1 ", esiste un numero infinito di possibili messaggi originali.

Ciò che sembra è simile a RSA, quindi suppongo che tu abbia letto qualcosa su RSA e stia provando a lavorare con la matematica. Esiste un semplice esempio di calcolo di RSA qui che potresti provare a elaborare.

Per una descrizione più dettagliata della matematica di RSA, puoi andare alla pagina di Wikipedia per RSA .

Modifica: nei commenti hai detto:

if a modulo (public key) produces a result that cannot be reverse engineered, then how is the private key able to do it?

Bene, passiamo a quell'esempio di RSA.

  • Hai scelto due numeri primi, prendiamo p = 3 e q = 11
  • Calcoli n come n = p * q = 3 * 11 = 33
  • Calcoli φ (n) = (p-1) * (q-1) = 2 * 10 = 20
  • Scegli un esponente pubblico e tale che 1 < e < φ (n), e che e e n sono coprimi. e = 7 lo farà.
  • Scegli un esponente privato d tale che (d * e)% φ (n) = 1. d = 3 funzionerà da (3 * 7)% 20 = (21)% 20 = 1

Ora la tua chiave pubblica è (7, 33) , (e, n) e la tua chiave privata è (3, 33) , (d, n) .

Ok, ora diciamo che vuoi crittografare il messaggio in chiaro "22" , come nella tua domanda. Il calcolo della crittografia è: m ^ e% n = c, dove m è il messaggio originale e c è il testo cifrato, quindi 22 ^ 7% 33 = 22 (heh, è una coincidenza), quindi il messaggio crittografato è " 22" .

Ora, la persona che ha l'esponente privato d può decifrare il testo cifrato calcolando c ^ d% n = m, è il nostro esempio 22 ^ 3% 33 = 22.

    
risposta data 17.07.2015 - 20:37
fonte

Leggi altre domande sui tag