Ho bisogno di inviare un sacco di piccoli messaggi che di solito sono compresi tra 128 bit e 256 bit e ogni messaggio è crittografato con una chiave AES a 128 bit separata. Pertanto, per inviare ogni messaggio con la chiave richiederebbero tra 256 e 384 bit di dati. Se un messaggio è lungo 129 bit, richiederebbe comunque la crittografia di 2 blocchi AES e la dimensione del messaggio con la chiave aumenterebbe a 384 bit.
Per questo motivo, sto pensando che posso aumentare il throughput usando AES come codice di streaming. La soluzione che ho trovato è semplicemente quella di utilizzare la chiave per crittografare un messaggio di tutti gli 0 con dimensioni arrotondate ai 128 bit più vicini, utilizzando AES e una modalità di crittografia idonea non autenticata come CTR. Quindi, prendi gli zeri crittografati e XOR con il testo in chiaro per ottenere un testo cifrato della stessa dimensione. Mi rendo conto che ogni chiave può essere utilizzata solo una volta, perché dato il testo in chiaro e il testo cifrato, il flusso può essere ripristinato, ma questo non è un problema nella mia situazione perché ogni chiave viene utilizzata solo una volta. La mia domanda è: questo metodo è sicuro e ha altri avvertimenti come l'attacco in chiaro che ho menzionato?