Inoltra segretezza per i bambini

13

Negli Scouts, è popolare usare codici segreti per scrivere messaggi (che sono semplici cifrari).

Voglio introdurre la segretezza in avanti ai bambini in modo che possano usarli con questi cifrari. Quindi, se la squadra in competizione ha trovato un messaggio cifrato e decodificato con successo, non può decodificare anche i vecchi messaggi.

La mia domanda, come posso fare uno di questi semplici cifrari con segretezza in avanti?

    
posta ScoutHelper 14.01.2014 - 11:14
fonte

2 risposte

19

Ciò che descrivi non è la segretezza.

La segretezza diretta si riferisce alla seguente proprietà: una comunicazione protetta avvenuta tra entità A e B in qualche momento T ; l'attaccante ha registrato tutti i messaggi; in un secondo momento T ' l'utente malintenzionato ottiene una copia di tutte le chiavi segrete note a A e B ; e tuttavia, l'attaccante non può recuperare il contenuto della comunicazione che si è verificata al momento T . Per ottenere la segretezza in avanti, deve contenere quanto segue:

  • Ogni comunicazione (ad esempio, ogni singolo messaggio in un contesto di posta) utilizza una chiave di crittografia specifica che il mittente e il destinatario non mantengono attorno . Ciò implica necessariamente un meccanismo di generazione, con casualità.
  • Non supporta l'invio di e-mail stateless a una via. Infatti, se la comunicazione completa tra due scout è un singolo messaggio da scout A per scout B , allora questo significa che B "conosce abbastanza" per elaborare il messaggio e recuperare i contenuti. A meno che B non si imponga di dimenticare ciò che una volta sapeva (cioè non è apolide), B potrebbe fare di nuovo questa impresa; e così può l'attaccante se ha ottenuto tutti i segreti di B .

Se le comunicazioni bidirezionali sono possibili (ad esempio, come con una connessione SSL, con l'handshake iniziale), è possibile utilizzare un algoritmo di scambio di chiavi come Diffie-Hellman per produrre una chiave di sessione specifica della comunicazione, utilizzata solo per la durata della connessione, e scartati in seguito. Qualsiasi segreto a lungo termine noto a entrambi gli scout verrà utilizzato solo per l'autenticazione reciproca.

Poiché i messaggi scout sono a senso unico e lo scout medio non calcolerà comunque lo scambio di chiavi DH a 1024 bit (potrebbe ) tutti questi giovani oggi hanno smartphone, che sono interamente il compito, ma capisco che non è il punto pedagogico), questo tipo di soluzione non può essere utilizzato.

Invece, la soluzione è rendere gli scout stateful . Il modello, qui, è quello del One-Time Pad : fallo così quel mittente e destinatario condividono una lunga sequenza di segreti, che memorizzano su un supporto fisico come un opuscolo. Quando usano una chiave (ad esempio una pagina di un opuscolo) per inviare o ricevere un messaggio, lo distruggono . Pertanto, un nemico che cattura l'opuscolo dopo che il fatto non avrà ottenuto la chiave, e quindi non sarà in grado di decifrare un messaggio passato.

Questa è la soluzione storicamente corretta; nell'era pre-computer, gli agenti sul campo usavano l'OTP. Gli esploratori possono essere entusiasti solo usando lo stesso metodo delle spie e degli eserciti reali usati per decenni. Punti extra per rendere il libretto in un materiale commestibile, in modo che la distruzione dopo l'uso sia divertente, facile e sicura (lo scout medio potrebbe anche trovare semplicemente divertente bruciare la carta, ma ciò potrebbe creare rischi ambientali). Ulteriori punti extra per camminare gli esploratori attraverso la crittoanalisi quando l'OTP è stato usato male, cioè il pad è stato riutilizzato.

La segretezza dell'avversario riguarda ciò che accade quando un agente sul campo viene afferrato dal nemico e costretto a rivelare i suoi segreti. Lo scenario che si immagina è diverso: nessun segreto rivelato forzatamente, ma una decifratura passiva che si è verificata in un modo non specificato (ad esempio, molte congetture da un testo in chiaro parzialmente noto). La proprietà che descrivi (decifrare un messaggio non rivela altri messaggi) significa solo che il metodo di crittografia è efficace contro gli attacchi con testo in chiaro : anche conoscere un testo chiaro e il testo cifrato corrispondente non è sufficiente per abilitare la decrittografia di altri testi cifrati e, in particolare, non è sufficiente per ricostruire qualsiasi componente di codifica che viene riutilizzato per altri messaggi.

I cifrari a penna e carta sono solitamente deboli, anche se alcuni possono essere abbastanza forti quando l'attaccante ha solo carta e penna. Vedi questa domanda per suggerimenti e collegamenti.

One-Time Pad è un'eccezione: è calcolabile con una potenza di calcolo molto bassa, ma allo stesso tempo è robusto rispetto agli attacchi con testo in chiaro, perché nessun componente di chiave utilizzato viene riutilizzato per un altro messaggio o parte di messaggio.

Riepilogo: utilizza OTP. Fornisce la proprietà che si desidera; anche fornisce la segretezza in avanti. È pedagogico e suscettibile di illuminante ricostruzione storica.

    
risposta data 14.01.2014 - 15:04
fonte
1

Sì.

Penso che tu stia usando le chiavi simmetriche con i tuoi scout, cioè, la stessa chiave è usata per crittografare e decodificare il messaggio cifrato.

Il segreto in avanti verrebbe raggiunto se:

a) Entrambe le parti (mittente e destinatario) hanno contribuito alla generazione della chiave b) Entrambe le parti hanno accettato di contribuire con qualcosa che possono garantire non saranno più utilizzate ...

Quindi il leader dello scout potrebbe contribuire: "22" e lo scout avrebbe contribuito "33" rendendo la chiave "726" (22 * 33). Sarebbe l'ideale se nessuna delle parti conoscesse il contributo dell'altro.

Modifica:

Ovviamente questo schema non è perfettamente sicuro, l'idea è di raggiungere i ragazzi su Perfect Forward Secrecy, ed è obiettivo:

  1. Sia il mittente che il destinatario partecipano alla generazione della chiave
  2. Il tasto viene utilizzato una sola volta, rendendo utile solo la conoscenza della chiave per decifrare un singolo messaggio
  3. L'algoritmo di crittografia sottostante è invariato e indipendente da PFS, l'obiettivo è quello di ottenere una migliore sicurezza per quanto riguarda la chiave e il suo eventuale compromesso

Esempio lavorato: Come sopra, il mittente contribuisce "22", il destinatario contribuisce "33", generando una chiave "sessione" da utilizzare per questo e solo questo messaggio di "726". Utilizzando l'algoritmo "Numbers Stand For Letters" che è nel tuo link originale, crei una semplice sostituzione:

A B C D E F G H I ...
7 2 6 1 3 4 5 8 9 ...

(Ho scelto di rimuovere 726 dal set, ma non è strettamente necessario ...)

L'idea non è quella di ottenere una crittografia efficace, l'idea è di lasciare che i bambini si divertano e di conoscere i vantaggi dell'uso di una chiave effimera, e entrambe le parti che contribuiscono alla chiave.

Un OTP non è un esempio valido di perfetto segreto di inoltro perché la chiave è generata dal mittente senza la partecipazione del destinatario. Il destinatario deve semplicemente avere fiducia che il mittente abbia generato correttamente la chiave.

    
risposta data 14.01.2014 - 14:32
fonte