Basandosi sulla risposta di @brroder, l'esperimento mentale che Schneier sta costruendo è simile agli esperimenti di pensiero basati su oracle che vedi in altri tipi di calcolo teorico, e Schneier presume che tu abbia familiarità con questi tipi di prove.
Un oracolo di solito è una scatola nera magica che è infinitamente veloce e conosce tutto ciò che fa un calcolo difficile per te in tempo zero. Non hai modo di guardarti dentro, ma puoi chiedere tutte le domande che vuoi e vedere l'output corrispondente.
Ilformatogeneralediunesperimentomentalebasatosuoracoloè:
Givenaccesstoanoraclewhichdoes[computationX],doesthismake[problemY]anyeasier?
Normalmente"qualsiasi più facile" viene misurato come "meno tempo / meno memoria / meno pacchetti di rete / ecc."
Potremmo riaffermare la definizione di Schneier come esperimento mentale basato sull'oracolo dicendo:
Chosen-Ciphertext Attack. Given access to an oracle which takes the ciphertext C
and produces the corresponding plaintext P
, does this make the problem of deducing the decryption key any easier?
Per alcune cifre la risposta è si perché è possibile dedurre la chiave inviando un numero limitato di testi cifrati scelti con cura all'oracolo. Potremmo dire che questa cifra è vulnerabile a un attacco di testo cifrato scelto . Per altri codici la risposta è no perché il numero di testi cifrati che dovresti inviare all'oracolo è simile al numero di tentativi di forzare la chiave, quindi l'oracolo non ti sta salvando tempo. Diciamo che questo codice è resistente a un attacco di testo cifrato scelto .
Si noti che di solito si vedono gli attacchi con testo cifrato scelti in documenti accademici usati come prova che un algoritmo sarebbe un buon codice, piuttosto che un vero e proprio attacco che qualcuno ha fatto nel mondo reale.