Los algoritmos de criptografía simétrica utilizan la misma clave para los dos procesos: cifrar y descifrar. Son sencillos de utilizar y, en general, resultan bastante eficientes, es decir, tardan relativamente poco tiempo en cifrar y descifrar. Por este motivo, todos los algoritmos, desde la antigüedad hasta los años 70, eran simétricos.
Los algoritmos de cifrado simétrico más utilizados actualmente son: DES (de IBM, ya no es seguro), 3DES o T-DES (de IBM), AES (sucesor de DES y 3-DES), Blowfish, IDEA, RC2, RC4, RC5, RC6.
AES es el cifrado más usado actualmente, todavía no se conocen vulnerabilidades de este.
El funcionamientos es sencillo, el emisor toma el documento que quiere hacerle llegar al receptor, le aplica un algoritmo de cifrado simétrico, usando una clave privada ( también llamada clave única) que también conoce el receptor. El resultado es un documento cifrado que ya podemos enviar tranquilamente al receptor.
Cuando el receptor recibe el documento cifrado que le ha enviado el emisor, le aplica el mismo algoritmo con que el emisor cifró, pero ahora con la función de descifrar, usando la clave que sólo emisor y receptor conocen.
Si el documento cifrado no ha sido alterado en el camino, y se descifra con la misma clave con la cual cifró el emisor, el resultado será el documento original.

Si quieres ampliar tu conocimiento mira este vídeo, https://www.youtube.com/watch?v=46Pwz2V-t8Q&feature=youtu.be&t=1m8s
Usaremos la herramienta gpg para cifrar/descifrar. La herramienta gpg nos permite utilizar tanto criptografía simétrica como asimétrica.
GPG (Gnu Privacy Guard) Es la versión libre de PGP (Pretty Good Privacy)
Vamos al lío:
1. Instalar gpg
apt install gnupg
2. Lo primero es crear un fichero con un texto a cifrar.
echo Hola Carabola >mensaje
3. Para cifrarlo con clave simétrica sería:
gpg -c mensaje //ciframos
Otra forma,
gpg --symmetric mensaje
Kali 2020 realiza el proceso de cifrado con el algoritmo AES256 por defecto. Si querermos usar otro algoritmo de cifrado lo veremos más adelante.
El resultado del comando es un nuevo fichero cifrado con la extensión .gpg
mensaje.asc es un fichero binario.
Si vemos el contenido del archivo mensaje.gpg veremos que no aparece nada inteligible, para visualizar su contenido.
strings mensaje.gpg
Otra forma para ver el contenido del fichero sería,
xxd mensaje.gpg
Ahora ya podemos eliminar el fichero mensaje porque su contenido se encuentra protegido en el fichero mensaje.gpg
4. Para descifrar el fichero mensaje.gpg
gpg -d mensaje.gpg
Otra forma,
gpg --decrypt mensaje.gpg
5. Si no queremos verlo por pantalla, sino volcarlo a un fichero, podemos redirigir la salida estándar.
gpg -d mensaje.gpg > mensaje2
Como se puede comprobar ha sido cifrado con AES256
6. Los ficheros binarios .gpg no siempre son adecuados. No sirven para incluirlos dentro de un texto, por ejemplo un script o un correo-e.
Para resolver este problema, tenemos el modificador -a (ASCII), que genera un fichero cifrado pero compuesto sólo de caracteres ASCII. Estos ficheros ya no tienen extensión .gpg sino .asc
Los ficheros con extensión .asc almacenan el contenido cifrado y alrededor de un par de cabeceras informativas, su contenido se representa en formato ASCII.
gpg -a -c mensaje
Otra forma,
gpg -ac mensaje //Para mí la mejor
Otra forma,
gpg -a --symmetric mensaje
Inconvenientes:
- Conlleva el intercambio de claves.
- Gestión de las claves almacenadas. Ver vídeo para comprenderlo, https://www.youtube.com/watch?v=H1STDvU8keM
- Cantidad de claves que se deben almacenar.
Para 2 personas – 1 clave
Para 3 Personas – 3 claves
Para 4 personas – 6 claves