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.