¿Es un cifrado de sustitución o un cifrado de flujo o ambos?
No es un cifrado de sustitución. Schneier lo clasifica como un cifrado de flujo porque convierte texto sin formato en texto cifrado de un bit o byte a la vez, generalmente al XORAR el texto sin formato con un "flujo de clave".
En la mayoría de los cifrados de flujo, el flujo de claves es solo pseudoaleatorio, pero en un "teclado único" clásico, el flujo de claves es completamente aleatorio. Puede considerarse como una clave nueva para cada mensaje, igual en longitud al texto simple, que normalmente se combina con el texto simple a través de XOR, por lo que es fácil recuperar el texto simple del texto cifrado con otro XOR. El truco es llevar el pad en sí mismo (material de codificación verdaderamente aleatorio de buena calidad) al otro extremo del canal de comunicaciones, fuera de banda ...
Vea también Pad de una sola vez: Wikipedia, la enciclopedia libre
@nealmcb tiene razón en que un pad de una sola vez (OTP) es un cifrado de flujo. Sin embargo, no es no correcto que la característica definitoria sea la calidad de la aleatoriedad. Lo que define una OTP es:
Al igual que con cualquier otro cifrado decente, la calidad de su material clave es primordial. Sin embargo, puede implementar una OTP con números no muy aleatorios, solo reduce la seguridad de la clave.
Basado en la discusión a continuación, la aclaración está en orden.
Un algoritmo de cifrado es, estrictamente hablando, simplemente la definición matemática de un conjunto de funciones criptográficas (cifrado, descifrado y, posiblemente, firma). La definición del algoritmo puede proporcionar ciertas restricciones, incluidas las longitudes de clave permitidas.
Pero elegir un algoritmo es solo una parte de la creación de un sistema de cifrado seguro. Los otros son:
Para tener un sistema de cifrado seguro basado en AES, debe tener una buena implementación y una buena administración de claves.
Para tener un sistema de cifrado OTP seguro, debe tener claves suficientemente aleatorias, asegurarse de que solo se usen una vez y tener un sistema de distribución seguro para ellas.
En cualquier caso, una gestión de claves deficiente no significa que no esté utilizando el algoritmo especificado.
Lea otras preguntas en las etiquetas cryptography encryption