Il codice di esempio citato da Phil Zimmermann:
Un semplice flusso di numeri pseudocasuali è stato aggiunto al flusso di testo in chiaro per creare testo cifrato.
è facilmente contrastato. Alcuni hanno chiesto perché. Ecco perché:
-
Passaggio 1, inserisci il testo cifrato in chiaro di tutti gli 0. Poiché 0 aggiunto a qualsiasi numero è uguale al numero non modificato, espone completamente il flusso di numeri pseudocasuali nell'output.
-
Passaggio 2, dato quello che hai scoperto nel passaggio 1 e, dato il testo criptato di un messaggio segreto, puoi facilmente calcolare il testo originale mediante la semplice sottrazione del flusso di numeri pseudo casuali che ora conosci.
Detto questo , Non sono d'accordo con l'idea generale che inventare il proprio codice sia quasi brutto. Qualsiasi algoritmo di cifratura, alla prima creazione, ha uno stato di forza di sicurezza SCONOSCIUTO, anche quelli creati da esperti. Gli esperti hanno il vantaggio di essere in grado di applicare immediatamente i tipici attacchi noti e vedere come sta il nuovo codice, ed essere in grado di escludere rapidamente alcune invenzioni come deboli, e gli amatori non hanno questa capacità. Ma non significa necessariamente che il codice sia debole. Significa che la forza è sconosciuta e potrebbe essere un codice molto forte. Semplicemente non lo sai.
Ad esempio, non sono un esperto. Ecco una cifra banale che ho trovato in 5 secondi senza pensarci troppo:
- Scegli un numero casuale di 128 bit come chiave.
- circolare Ruota la chiave di X numero di bit, Chiama il valore del risultato A.
- Circolare ruota la chiave di Y numero di bit, dividila in due parti a 64 bit e moltiplicale per produrre un valore B.
- I valori XOR A e B per produrre una nuova chiave, utilizzare solo il bit 0 sul bit N-1 di questa chiave per crittografare N bit di testo normale mediante XOR.
- Torna indietro e ripeti i passaggi 2,3,4 .
Questo sembra essere abbastanza semplice e non ho fatto alcuna analisi per vedere quanto sia forte. Ma tutto quello che posso dire è che questo ha una forza di sicurezza sconosciuta. Potrebbe essere molto forte. Se salti immediatamente alla conclusione per dire che è debole o inaffidabile, ti sfido a trovare un metodo per risolverlo. Puoi?
Penso che quando si tratta della forza della sicurezza, ce ne siano solo due:
- Forza della sicurezza sconosciuta
- Forza della sicurezza debole nota
Non esiste una cosa nota come una forte forza di sicurezza. Se lo schema è stato esaminato molto senza trovare un crack, significa solo che non è stato ancora trovato alcun crack e lo stato rimane sconosciuto, e non significa necessariamente forte, perché un crack potrebbe essere scoperto domani.