Cifrario Caesar migliorato - protetto? [chiuso]

0

Innanzitutto vorrei sottolineare che non so nulla sulla crittografia e forse la mia domanda è completamente sbagliata dal punto di vista della crittografia.

Dato che devo usare una semplice sostituzione per una ragione tecnica e so che il codice Caesar non è protetto e può essere violato facilmente e stavo cercando un modo per renderlo più sicuro per i messaggi brevi (fino a 500 parole)

Il mio suggerimento

1) invece di usare i 26 caratteri in inglese userò i caratteri 1.111.998 in Unicode.

2) alcuni caratteri selezioneranno in anticipo e non saranno mai usati nel messaggio crittografato. I personaggi selezionati verranno inseriti come distrazioni nel messaggio crittografato (il destinatario saprà di ignorarli).

3) anche l'ordine dei personaggi sarà cambiato casualmente e il ricevitore dovrà fare il lavoro di riordinarli.

4) invece di spostare semplicemente i caratteri creerò una mappa di relazioni casuali tra i personaggi

Esempio:

Messaggio: "Ti amo"

Caratteri distrattori: "o"

Mappatura (per la semplicità dell'esempio che ho mappato per ordinare caratteri inglesi): "I" = K, "" = U, "L" = R, "V" = M, "E" = T, "Y "= Z," U "= A

Messaggio crittografato: MOTUOKOURAZ (dopo aver rimosso "O", mappare e riorganizzare i caratteri)

Decodifica:

Il ricevitore eliminerà le "O": MTUKURAZ

Il ricevitore tradurrà utilizzando la mappa: ve luy

Il ricevitore mescolerà le lettere casualmente fino a quando il messaggio non avrà senso (so che questo suona come una forza bruta, ma nel mio caso va bene): I lve yu

Il ricevitore aggiungerà la "O" mancante: I love you

Perché inventare la ruota? ( Perché shouldn Possiamo fare i nostri? )

Ho un caso in cui posso solo cambiare caratteri e non riuscire a fare qualcosa di sofisticato (come ASE) e voglio ancora che sia sicuro. Quindi la mia domanda non è se c'è qualcosa di meglio, ma è sicuro?

Perché penso che questo risolva i punti deboli del cifrario Caesar?

Non puoi fare un attacco di statistiche langue poiché le lettere sono criptate.

Non puoi eseguire un attacco di statistiche con lettere poiché abbiamo lettere di distrazione.

E il fatto che abbiamo una mappa e non una merda e oltre un milione di lettere anziché 26 rendono ogni "ipotesi" di una lettera quasi inutile per gli altri (specialmente nei messaggi brevi).

Grazie!

    
posta Omri 12.11.2016 - 10:14
fonte

2 risposte

1

Caesar cipher in questo contesto presuppone che ci siano solo 26 possibili caratteri in un messaggio.

Qui sotto sono riportati i problemi con il tuo algoritmo.

  • Con l'analisi statistica, i personaggi di distrazione possono essere identificato.
  • L'analisi della frequenza dell'occorrenza sarebbe utile in questo.

  • La logica di re-order deve essere trasferita tra il mittente e ricevitore.

  • Se il destinatario deve rinforzare la logica di riordino, a anche l'attaccante può fare lo stesso.

Tuttavia, la tua decisione di creare una mappatura casuale piuttosto che uno spostamento si avvicina a una cifra perfetta nota come One Time Pad o Vernaum Cipher.

Fammi usare lo stesso esempio che hai usato. Cripterò ILOVEYOU con la chiave WHATISIT

ILOVEYOU

WHATISIT

Qui l'ennesima lettera della chiave indica qual è l'ammontare di spostamento che devo fare nella ruota Caesar per l'ennesima lettera del messaggio.

Ad esempio nel tasto A non significa mai spostamento, B significa shift 1 ... e Z significa shift 25.

Ad esempio, la prima lettera del tasto è W. Quindi nel testo cifrato la prima lettera del messaggio sarà spostata di 22. Spostando I di 22 ci darà E. Allo stesso modo l'intero messaggio sarà

ESOOMQWN

Il destinatario che conosce la chiave può decifrare il messaggio eseguendo lo spostamento in direzione opposta con lo stesso tasto.

Il vantaggio qui rispetto al tuo algoritmo è che non è richiesta alcuna mappatura hardcoded, ogni lettera del messaggio usa un codice separato. L'analisi statistica è impossibile se

  • La chiave è lunga quanto il messaggio.
  • La chiave è generata casualmente flusso di lettere.
risposta data 12.11.2016 - 16:14
fonte
1

Il tuo piano non è né fattibile né sicuro.

1) instead of using the 26 characters in English I’ll use the 1,111,998 characters in Unicode.

Che cosa cambia in termini di sicurezza? Non cambierà il fatto che la maggior parte dei caratteri nei messaggi sarà A-Z.

2) some characters will select in advance and will never be used in the encrypted message. The selected characters will be inserted as a distractions in the encrypted message (the receiver will know to ignore them). ... The receiver will add the missing “O”:

Questo non funzionerà. Ci sono infiniti possibili messaggi che potresti generare aggiungendo un numero di caratteri in alcuni punti e il computer non è intelligente. Mentre un hash può aiutare un po ', suppongo che con le tue restrizioni non puoi averne uno (e questo è fuori dallo scopo di una pura "crittografia" comunque).

The receiver will scramble the letters randomly until the message makes sense (I know this is sounds like a brute force, but in my case this is fine):

Di nuovo, non è possibile con qualche metodo di controllo. E se ne hai uno, ad es. 20 caratteri sono 2432902008176640000 possibilità. Non bene.

You can’t do a letters statistics attack since we have a distraction letters.

Quindi cosa? Questo non cambia molto.

And the fact that we have a map and not a shit and over a million letters instead of 26 make every “guess” of one letter almost useless for the others (specially in short messages).

Ancora una volta, non cambierà il fatto che la maggior parte dei caratteri nei messaggi sarà A-Z.

    
risposta data 12.11.2016 - 12:25
fonte

Leggi altre domande sui tag