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.