Según la forma en la que operan los algoritmos de
cifrado o descifrado, es posible distinguir varios tipos:
-Cifrado en flujo: En estos algoritmos el cifrado se
realiza bit a bit. Están basados en la utilización de claves muy largas que son
utilizadas tanto para cifrar como para descifrar. Estas claves pueden estar
predeterminadas (libreta de un solo uso) o generarse usando un generador de
claves pseudoaleatorias o RKG (acrónimo del inglés random key generator), que
genera una secuencia binaria pseudoaleatoria a partir de una clave de
inicialización K. A veces, en el cálculo de la clave pseudoaleatoria también interviene
el mensaje cifrado hasta ese momento. Por otra parte, el cifrador propiamente
dicho: habitualmente en este tipo de algoritmos hay que mantener en secreto
tanto la clave como el cifrador.

-Cifrado por bloques: En este tipo de algoritmos, el
cifrado se realiza bloque a bloque. En primera instancia, se descompone el
mensaje en bloques de la misma longitud. A continuación, cada bloque se va
convirtiendo en un bloque del mensaje cifrado mediante una secuencia de
operaciones. Ejemplos típicos de operaciones realizadas para conseguir cada
mensaje cifrado son la sustitución y la permutación (cifrado por transposición)
de elementos.
Este tipo de algoritmos pueden ser tanto de clave
simétrica como de clave asimétrica. Sin embargo, en la bibliografía suele haber
confusión y es frecuente ver casos en que se refieren sólo a algoritmos de
clave simétrica. (Hurtado Cabrera, Tipos básicos de
algoritmos de encriptación., 2015)