Necesito enviar muchos mensajes pequeños que suelen tener una longitud de entre 128 y 256 bits, y cada mensaje se cifra con una clave AES de 128 bits. Por lo tanto, enviar cada mensaje con la clave requeriría entre 256 y 384 bits de datos. Si un mensaje tiene 129 bits de longitud, aún se necesitarían 2 bloques AES para cifrar y el tamaño del mensaje con la clave aumentaría a 384 bits.
Debido a esto, estoy pensando que puedo aumentar el rendimiento utilizando AES como cifrado de flujo. La solución que se me ocurrió es simplemente usar la clave para cifrar un mensaje de todos los 0 con un tamaño redondeado a los 128 bits más cercanos, utilizando AES y un modo de cifrado no autenticado adecuado como CTR. Luego, tome los ceros cifrados y XOR con el texto plano para obtener un texto cifrado del mismo tamaño. Me doy cuenta de que cada clave solo se puede usar una vez, porque dado el texto en claro y el cifrado, la secuencia se puede recuperar, pero esto no es un problema en mi situación porque cada clave solo se usa una vez. Mi pregunta es, ¿este método es seguro y tiene otras advertencias, como el ataque de texto sin formato que mencioné?