Il bit sulle chiavi pubbliche / private che sono rispettivamente per la crittografia / firma non è un fatto generale di crittografia a chiave pubblica: è specifico per la RSA, dove le chiavi pubbliche e private hanno (almeno nel libro di testo) la stessa forma. Passa a Diffie-Hellman e / o ai sistemi basati su ECC e i due tipi di chiavi sembrano completamente diversi, quindi non puoi crittografare con una chiave privata.
La risposta breve alla tua domanda è che se Person1 ha la chiave privata di Person2 allora qualcosa è già andato storto, e molto probabilmente nessuno otterrà alcuna sicurezza. Questo genere di cose accade tutto il tempo (penso che github abbia un messaggio di errore speciale per le persone che incollano una chiave privata nel campo in cui è prevista l'installazione di una chiave pubblica SSH per l'autenticazione con chiave SSH).
La risposta completa: se Person1 utilizza la propria chiave privata, se sta facendo RSA da manuale, chiunque con la chiave pubblica di Person1 può recuperare il messaggio. E le chiavi pubbliche sono, beh, dovrebbero essere pubbliche. Nel mondo reale, le chiavi RSA e altre strutture dati sono rimosse dal libro di testo e una libreria crittografica ragionevole non dovrebbe offrire l'opzione di crittografare con una chiave privata in primo luogo. Avresti anche in genere sottochiavi separati per la crittografia e la firma, che di nuovo verrebbero archiviati in diversi formati (è una pessima idea usare la stessa chiave per entrambi, anche se teoricamente).
Nel libro di testo RSA, hai un modulo pubblico N, un esponente pubblico e un esponente privato d. In modalità di crittografia, si calcola un ciphertext c da un messaggio m come c = m ^ e (mod N); per decifrare calcoli m = c ^ d (mod N). Per firmare m, pubblichi s = H (m) ^ d (mod N) e per verificare una firma s controlli che H (m) = s ^ e (mod N). Quindi le operazioni pubbliche e segrete sono intercambiabili. In realtà non importa quale si chiama e e quale si chiama d, i due sono intercambiabili: x ^ e ^ d (mod N) = x ^ d ^ e (mod N) = x (mod N) per tutti 0 < x < N. (Beh, quasi tutti - finché non si colpisce un fattore di N. Nel qual caso si è comunque un brindisi.)