Un algoritmo criptográfico puede ser cualquier descripción matemática específica (el algoritmo) relacionada con la criptografía. Hay tipos específicos de algoritmos, como algoritmos hash, cifrados de bloque, cifrados de flujo, algoritmos de firma, generadores de números pseudoaleatorios, etc.
Los algoritmos criptográficos pueden utilizarse para realizar el cifrado / descifrado. En ese caso el algoritmo se llamaría cifrado. Esto podría ser un cifrado de flujo, un cifrado de bloque o un cifrado asimétrico como RSA. El cifrado de bloque generalmente tiene que usarse en un modo de operación para ser seguro, es decir, para cumplir con las propiedades que normalmente asociamos con un cifrado completo. Los modos de operación incluyen el modo CBC y el modo GCM.
AES es un cifrado de bloque y sí, ciertamente pertenece a la familia de cifrados de bloque. Es especial en el sentido de que ha sido estandarizado por NIST como el cifrado principal para usar en los EE. UU., Lo que sucede a DES. Su nombre original es Rijndael según los autores, Vincent Rijmen y Joan Daemen (aunque AES solo usa un subconjunto específico de la especificación de Rijndael).
Rijndael se convirtió en el Estándar de cifrado avanzado después de ganar la competencia AES; si otro cifrado hubiera ganado, ese cifrado se habría convertido en AES, y había algoritmos como Serpent que se hubieran considerado más seguros. Sin embargo, Rijndael también es bastante eficiente para implementarse en hardware y software, al menos en comparación con los otros algoritmos de la competencia, en ese momento.
Tenga en cuenta que los cifrados en bloque no solo se utilizan para el cifrado / descifrado. Al igual que los algoritmos hash, a menudo se utilizan como primitivo para construir otras funciones. Los cifrados de bloque pueden utilizarse, por ejemplo, para construir modos de autenticación. Los ejemplos son AES-CMAC, AES-GMAC y AES en Poly1305. Esta es una ventaja que tienen sobre cifrados de flujo, que son más limitados: los cifrados de bloque son permutaciones pseudoaleatorias (con clave) que tienen propiedades específicas requeridas por dichos esquemas.