Se un testo crittografato viene decodificato con la sua chiave corrispondente, otterremmo il testo in chiaro. Tuttavia, cosa succede se dovessi decifrare il testo normale? Cosa ne risulterebbe? Un errore o un numero senza senso?
"Crittografia" è un termine ampio. In generale, la crittografia richiede un messaggio di input in uno spazio di possibili messaggi di input; solitamente "sequenze di bit" arbitrarie con varie restrizioni sulla lunghezza, ad es. "la lunghezza in bit deve essere un multiplo di 8" (cioè l'input deve essere una sequenza di byte) o "la lunghezza non deve superare i 245 byte" (tipico della crittografia asimmetrica con RSA in modalità PKCS # 1 v1.5, con un 2048 -bit chiave RSA). L'output fa parte di alcuni spazi dei possibili messaggi di output.
I computer sono computer, sia i messaggi di input che di output sono codificati alla fine in sequenze di bit, quindi può accadere che gli spazi dei messaggi di input e di output si sovrappongano, nel qual caso è possibile concettualmente prendere un messaggio di input (un "testo in chiaro"), < em> interpreta come un messaggio di output e prova a decodificarlo. Questo non è necessariamente possibile: ad esempio, con la crittografia asimmetrica RSA (PKCS # 1 v1.5) e una chiave a 2048 bit, i messaggi di input (plaintext) sono sequenze arbitrarie da 0 a 245 byte (inclusi) mentre i messaggi di output (ciphertexts) sono sequenze di esattamente 256 byte, quindi non è possibile, in tal caso, provare a "decifrare un testo in chiaro": i possibili testi in chiaro non sono sufficienti per alimentare il motore di decrittografia.
Quando puoi "decifrare un testo in chiaro", ciò che accade dipende dal sistema di crittografia. Di solito, quando la decifrazione funziona, ciò che ottieni è essenzialmente un'assurdità apparentemente casuale. In alcuni casi, la crittografia è un'involuzione (ad esempio, codice di flusso come RC4 che funziona XORando il messaggio con un flusso dipendente dalla chiave), il che significa che la decrittazione e la crittografia sono in realtà la stessa operazione, quindi "decrittografando" il testo in chiaro che si è effettivamente crittografandolo.
Tuttavia, può anche accadere che non tutte le sequenze di bit della lunghezza corretta siano ciphertex validi. Ad esempio, considera un codice a blocchi in modalità CBC . Per crittografare un messaggio m , devi:
Applica il messaggio a un multiplo della lunghezza della dimensione del blocco, aggiungendo tra 1 e n byte ( n è la dimensione del blocco) con alcuni contenuti specifici .
Genera un nuovo IV casuale della stessa dimensione della dimensione del blocco.
Applica la crittografia CBC sul messaggio inserito, utilizzando quel IV.
L'output è la concatenazione di IV e il risultato della crittografia.
In questo caso, quando si decodifica, non solo la lunghezza deve essere un multiplo diverso da zero della dimensione del blocco, ma dopo la decrittografia, deve essere trovato un padding valido. Se si utilizza la solita "padding PKCS # 7" (quando si aggiungono k byte, tutti i byte aggiunti hanno valore esattamente k ), la probabilità che un testo normale di una lunghezza compatibile decifri effettivamente a qualcosa con un'imbottitura valida è di circa 1/255. In tal caso, "decifrare il testo in chiaro" produrrà un errore di decrittazione del 99,61% del tempo, e un po 'di spazzatura dall'aspetto casuale il restante 0,39%.
Il buon sistema di crittografia include un MAC , nel qual caso tentando di decifrare qualcosa che era non il risultato della crittografia con la stessa chiave dovrebbe comportare un errore di decrittazione debitamente segnalato con una schiacciante probabilità.
Riepilogo: quando provi a fare qualcosa che non ha senso, puoi ottenere vari risultati.
Dipende dal codice che usi. Ad esempio, con l'algoritmo famoso e molto sicuro ( sarcasm ) ROT13
, la crittografia e la decrittografia sono la stessa operazione. Se decifri un testo in chiaro, in realtà lo hai appena crittografato.
Con un cifrario più moderno come AES, probabilmente otterrai un grosso numero senza senso. Penso che sarà lo stesso per la maggior parte delle cifre.
La decrittografia sta semplicemente applicando un algoritmo a un set di dati utilizzando una chiave. In linea generale, questo è lo stesso della crittografia, sebbene gli algoritmi per la crittografia e la decrittografia possano differire. In effetti, per alcuni algoritmi di crittografia, la crittografia è lo stesso algoritmo della decrittazione.
Quindi, in generale, se si applica l'algoritmo "decrypt" a un testo in chiaro, si otterrà un testo cifrato crittografato con l'algoritmo di decrittografia.
Questo potrebbe non funzionare sempre, naturalmente, a seconda dello schema di crittografia. Si potrebbe ottenere un errore quando si prova questo. Non credo che ciò funzionerebbe con l'algoritmo RSA, per esempio.
Se applicare "encrypt" a questo testo cifrato ti porterebbe indietro il testo in chiaro dipenderà dallo schema di crittografia.
Si prega di non decifrare il testo normale. Accadranno cose molto brutte. Potresti causare un errore del server , un overflow dello stack o fai arrabbiare il Super User . È possibile che non accada nulla ed è possibile che non accada niente di male. Dipende dal testo che stai cercando di decodificare.
Ad esempio, Guerra e pace potrebbe improvvisamente far si che il tuo PC si trasformi nella reincarnazione di uno zombie cyborg di Hitler perché è veramente il 1000 volte crittografato Mein Kampf . Nel frattempo, la decifratura La Bibbia potrebbe comportare un effettivo Raptor Jesus a causa della pura credenza di The Internets in Him.
Gli scenari più probabili sono che potresti causare un qualche tipo di fusione di fisica nel tuo computer, probabilmente rilasciando particelle o onde spurie, come neutroni , Bogon o Morons. Non abbiamo bisogno di ondate di falsi Faloni!
Scenario peggiore assoluto: il tuo computer si divide per zero e la tua casa finisce così:
Se non si poteva dire, questo era un po 'di umorismo per affrontare la questione al valore nominale, e il precedente non deve essere preso sul serio. Come altri hanno detto, ci sono un sacco di variabili in gioco, vale a dire il tipo di crittografia / decrittografia e metodi e algoritmi specifici utilizzati. Se metti il testo normale in una funzione di decrittazione, con tutta serietà, probabilmente otterrai qualche tipo di incomprensione.
Tuttavia, è possibile creare un algoritmo o una funzione per oscurare un messaggio in testo semplice che potrebbe essere decodificato in un altro messaggio di testo normale. Tuttavia, sarebbe solo un'altra forma di crittografia e sarebbe più probabile crittografare parole anziché caratteri. In questo caso parole come le parole inglesi invece delle parole informatiche.
Domanda interessante ......
Ma il risultato sarebbe qualche personaggio dall'aspetto divertente perché il processo di decodifica tratterà il testo in chiaro come dati crittografati e tenterà di decrittografarlo con una chiave fornita.
Leggi altre domande sui tag decryption