Quale codice a blocchi per un messaggio molto breve (40 bit)?

5

Domanda:

Sto tentando di crittografare un messaggio a 32 bit per produrre un testo cifrato non più lungo di 40 bit. Ci sono cifrari a blocchi controllati o altri buoni modi per crittografare messaggi molto brevi? Esistono cifrari noti con una dimensione di blocco così piccola?

Contesto e motivazione:

I videogiochi per piattaforme retro possono avere una campagna più lunga di una sessione ma nessuna memoria non volatile per l'archiviazione dello stato della campagna. Per continuare una campagna in un ciclo di spegnimento, il gioco emette una " password " e il giocatore lo inserisce la prossima volta. Questa password è un breve messaggio crittografato contenente lo stato di una campagna più alcuni bit aggiuntivi utilizzati per garantire che le password o le password inserite a caso con pochi bit capovolti non funzionino probabilmente. Per questa applicazione, il messaggio a 32 bit include il capitolo sul quale il giocatore è attivo, le bandiere delle missioni, i soldi, l'esperienza e simili. Una password tipica ha 8 caratteri con 32 possibilità (5 bit) per carattere (cifre, consonanti e trattino), per un totale di 40 bit. Le password più lunghe sono molto più noiose da scrivere e digitare.

Non sono a conoscenza di alcun codice noto con una dimensione di blocco così breve. Il rubare il ciphertext funziona quando è più lungo di un blocco ma non è un multiplo esatto della dimensione del blocco di un cipher. Ad esempio, se esistesse un codice a blocchi a 32 bit, uno potrebbe crittografare i primi 32 bit e poi gli ultimi 32 bit, che toccano i 24 bit centrali due volte. Ma per quanto posso dire, non si applica a un messaggio più breve di un blocco. Quindi attualmente sto usando un codice cifrato fatto in casa (sì, eww) con una struttura ispirata a XXTEA , con cinque 8 bit parole invece di parecchie parole a 32 bit. Dopo aver imballato lo stato della campagna nei primi 32 bit, inserisco i bit rimanenti con una costante prima della crittografia e rigetto le password in cui il padding non decodifica la costante desiderata. C'è qualcosa di meglio per un blocco a 40 bit rispetto al tuo?

La crittografia e la decifrazione devono essere eseguite su un microprocessore a 8 bit in meno di un milione di cicli. Sono preoccupato per gli attacchi online e gli attacchi di carta e penna da parte di giocatori annoiati, come sono stati pubblicati nella sezione "Informazioni classificate" della rivista Nintendo Power . Ma non sono altrettanto preoccupato per gli attacchi automatici da parte di qualcuno che legge l'algoritmo e la chiave simmetrica dal codice del gioco e usa queste informazioni per mettere un generatore di password su un sito web, poiché ciò richiederebbe uno sforzo cosciente da parte di un giocatore per imbrogliare il gioco.

    
posta Damian Yerrick 15.03.2016 - 19:13
fonte

1 risposta

9

Il nome generico per quel genere di cose è crittografia per preservare il formato . Thorp shuffle è un buon candidato, a condizione che tu usi una funzione rotonda adeguata (ad esempio troncata output per una funzione hash crittograficamente sicura) e cicli sufficienti, come indicato nel documento.

Detto questo, con 1 milione di cicli su un computer a 8 bit, potrebbe essere difficile eseguire, ad esempio, un shuffle Thorp a 64 giri con una funzione troncata SHA-1 come round.

Sfortunatamente, non esiste un cifrario a blocchi standard, ben studiato con blocchi brevi e buone prestazioni su architetture di piccole dimensioni. D'altra parte, il tuo modello di attacco afferma che gli aggressori non si sforzano molto, quindi non hai bisogno della sicurezza assoluta di tipo crittografico; una costruzione che è accademicamente debole potrebbe comunque essere abbastanza strong per te.

Ti suggerisco di sfogliare questa pagina che elenca "codici a blocchi leggeri" con alcune analisi. Alcuni offrono dimensioni di blocco a 32 bit. Quello di cui hai bisogno è un tale codice a blocchi, come ad esempio un attacco noto su un numero ridotto di round, indicando così che alcuni crittografi hanno tentato di romperlo e non hanno avuto successo per il pieno cifrario. Da uno sguardo superficiale, almeno KATAN, KTANTAN, SIMECK-32, SIMON-32 e SPECK-32 corrispondono a questi criteri; RC5 potrebbe anche essere utilizzabile con un numero adeguato di round.

    
risposta data 15.03.2016 - 19:36
fonte

Leggi altre domande sui tag