Logo Passei Direto

PS6Crypto_TGJL

Herramientas de estudio

Preguntas resueltas

En este informe se describe el proceso realizado en Linux Mint utilizando OpenSSL para firmar y verificar un archivo de texto, cifrar y descifrar un archivo de texto utilizando AES-256 y obtener el hash de un archivo de texto utilizando SHA2 de 512 bits. OpenSSL es una herramienta de código abierto que proporciona una amplia gama de funciones criptográficas, incluyendo la generación de claves RSA y la creación de certificados digitales. En la sesión anterior, se generaron claves RSA y se crearon certificados digitales utilizando Getacert. En esta sesión, se utilizó la misma clave privada generada anteriormente para firmar y verificar un archivo de texto, y se utilizó AES-256 para cifrar y descifrar un archivo de texto. Además, se obtuvo el hash de un archivo de texto utilizando SHA2 de 512 bits y se verificó el hash.


Para empezar a desarrollar las actividades solicitadas, se inicia retomando la máquina virtual usada anteriormente, la cual emplea la versión de Linux Mint más reciente (21.1 Cinnamon). Creando una nueva carpeta llamada PS6, se mueven los archivos de clave pública y privada generados en la sesión anterior a la carpeta y se genera un archivo de texto de prueba, como se observa a continuación:


Se inicia firmando y verificando el archivo con el esquema asimétrico, en donde es necesario generar un hash y cifrarlo con la clave privada usando el siguiente comando, el cual define a una firma digital usando la clave privada previa y usando SHA256:


El primer comando genera como salida un archivo de firma en formato binario, el cual no es inmediatamente verificable, por lo que se usa una conversión base64 para obtener como resultado una firma verificable:


Por último, usando la firma en su formato original en binario, verificamos la firma empleando la clave pública, lo que da como resultado una verificación correcta como se observa a continuación:


Ahora, se procede a cifrar el archivo de texto de prueba usando el siguiente comando:

Este comando se usa para cifrar un archivo de texto plano utilizando el algoritmo AES-256 en modo CBC (Cipher Block Chaining). La opción "-salt" agrega una cadena aleatoria a la clave para hacerla más robusta, y los argumentos "-in" y "-out" se utilizan para especificar el archivo de entrada (textfile.txt) y el archivo de salida (ciphertext.txt) respectivamente. Cuando se ejecuta este comando, OpenSSL solicita una contraseña de recuperación para cifrar el archivo. El archivo de texto plano original no se modifica y permanece en su ubicación original.


Ahora, se procede a descifrar con el siguiente comando:

Este comando utiliza la opción -d que a OpenSSL que debe realizar la operación de descifrado, especificándose el archivo de entrada y el nombre del archivo de salida que contendrá al archivo de texto descifrado.


Material
¡Estudia con miles de materiales!

Preguntas resueltas

En este informe se describe el proceso realizado en Linux Mint utilizando OpenSSL para firmar y verificar un archivo de texto, cifrar y descifrar un archivo de texto utilizando AES-256 y obtener el hash de un archivo de texto utilizando SHA2 de 512 bits. OpenSSL es una herramienta de código abierto que proporciona una amplia gama de funciones criptográficas, incluyendo la generación de claves RSA y la creación de certificados digitales. En la sesión anterior, se generaron claves RSA y se crearon certificados digitales utilizando Getacert. En esta sesión, se utilizó la misma clave privada generada anteriormente para firmar y verificar un archivo de texto, y se utilizó AES-256 para cifrar y descifrar un archivo de texto. Además, se obtuvo el hash de un archivo de texto utilizando SHA2 de 512 bits y se verificó el hash.


Para empezar a desarrollar las actividades solicitadas, se inicia retomando la máquina virtual usada anteriormente, la cual emplea la versión de Linux Mint más reciente (21.1 Cinnamon). Creando una nueva carpeta llamada PS6, se mueven los archivos de clave pública y privada generados en la sesión anterior a la carpeta y se genera un archivo de texto de prueba, como se observa a continuación:


Se inicia firmando y verificando el archivo con el esquema asimétrico, en donde es necesario generar un hash y cifrarlo con la clave privada usando el siguiente comando, el cual define a una firma digital usando la clave privada previa y usando SHA256:


El primer comando genera como salida un archivo de firma en formato binario, el cual no es inmediatamente verificable, por lo que se usa una conversión base64 para obtener como resultado una firma verificable:


Por último, usando la firma en su formato original en binario, verificamos la firma empleando la clave pública, lo que da como resultado una verificación correcta como se observa a continuación:


Ahora, se procede a cifrar el archivo de texto de prueba usando el siguiente comando:

Este comando se usa para cifrar un archivo de texto plano utilizando el algoritmo AES-256 en modo CBC (Cipher Block Chaining). La opción "-salt" agrega una cadena aleatoria a la clave para hacerla más robusta, y los argumentos "-in" y "-out" se utilizan para especificar el archivo de entrada (textfile.txt) y el archivo de salida (ciphertext.txt) respectivamente. Cuando se ejecuta este comando, OpenSSL solicita una contraseña de recuperación para cifrar el archivo. El archivo de texto plano original no se modifica y permanece en su ubicación original.


Ahora, se procede a descifrar con el siguiente comando:

Este comando utiliza la opción -d que a OpenSSL que debe realizar la operación de descifrado, especificándose el archivo de entrada y el nombre del archivo de salida que contendrá al archivo de texto descifrado.


Vista previa del material en texto

Universidad Nacional Autónoma de México
Facultad de Ingeniería
Criptografía
Grupo: 02 - Semestre: 2023-2
Sesión Práctica 6:
Creando Claves Asimétricas y
Certificados Digitales
Fecha de entrega: 10/05/2023
Profesora:
Dra. Rocío Alejandra Aldeco Pérez
Alumno:
Téllez González Jorge Luis
Facultad de Ingeniería Criptografía______________________________________________________________________________________________________________
Introducción
En este informe se describe el proceso realizado en Linux Mint utilizando OpenSSL para
�rmar y veri�car un archivo de texto, cifrar y descifrar un archivo de texto utilizando
AES-256 y obtener el hash de un archivo de texto utilizando SHA2 de 512 bits.
OpenSSL es una herramienta de código abierto que proporciona una amplia gama
de funciones criptográ�cas, incluyendo la generación de claves RSA y la creación de
certi�cados digitales. En la sesión anterior, se generaron claves RSA y se crearon certi�cados
digitales utilizando Getacert.
En esta sesión, se utilizó la misma clave privada generada anteriormente para �rmar y
veri�car un archivo de texto, y se utilizó AES-256 para cifrar y descifrar un archivo de texto.
Además, se obtuvo el hash de un archivo de texto utilizando SHA2 de 512 bits y se veri�có
el hash.
Desarrollo
Para empezar a desarrollar las actividades solicitadas, se inicia retomando la máquina virtual
usada anteriormente, la cual emplea la versión de Linux Mint más reciente (21.1
Cinnamon). Creando una nueva carpeta llamada PS6, se mueven los archivos de clave
pública y privada generados en la sesión anterior a la carpeta y se genera un archivo de texto
de prueba, como se observa a continuación:
Figura 1. Claves de la sesión anterior listas.
Figura 2. Archivo de texto para las actividades.
2
Facultad de Ingeniería Criptografía______________________________________________________________________________________________________________
Se inicia �rmando y veri�cando el archivo con el esquema asimétrico, en donde es necesario
generar un hash y cifrarlo con la clave privada usando el siguiente comando, el cual de�ne a
una �rma digital usando la clave privada previa y usando SHA256:
openssl dgst -sha256 -sign private.key -binary -out signature.bin
textfile.txt
openssl base64 -in signature.bin -out signature.txt
El primer comando genera como salida un archivo de �rma en formato binario, el
cual no es inmediatamente veri�cable, por lo que se usa una conversión base64 para obtener
como resultado una �rma veri�cable:
Figura 3. Firma digital creada.
Por último, usando la �rma en su formato original en binario, veri�camos la �rma
empleando la clave pública, lo que da como resultado una veri�cación correcta como se
observa a continuación:
Figura 4. Veri�cación exitosa.
3
Facultad de Ingeniería Criptografía______________________________________________________________________________________________________________
Ahora, se procede a cifrar el archivo de texto de prueba usando el siguiente comando:
openssl enc -aes-256-cbc -salt -in textfile.txt -out
ciphertext.txt
Este comando se usa para cifrar un archivo de texto plano utilizando el algoritmo AES-256
en modo CBC (Cipher Block Chaining). La opción "-salt" agrega una cadena aleatoria a la
clave para hacerla más robusta, y los argumentos "-in" y "-out" se utilizan para especi�car el
archivo de entrada (text�le.txt) y el archivo de salida (ciphertext.txt) respectivamente.
Cuando se ejecuta este comando, OpenSSL solicita una contraseña de recuperación
para cifrar el archivo. El archivo de texto plano original no se modi�ca y permanece en su
ubicación original.
Figura 5. Cifrado del texto de prueba con AES-CBC.
Ahora, se procede a descifrar con el siguiente comando:
openssl enc -aes-256-cbc -d -in ciphertext.txt -out decrypted.txt
Este comando utiliza la opción -d que a OpenSSL que debe realizar la operación de
descifrado, especi�cándose el archivo de entrada y el nombre del archivo de salida que
contendrá al archivo de texto descifrado.
4
Facultad de Ingeniería Criptografía______________________________________________________________________________________________________________
Figura 6 y 7. Descifrado del archivo de texto con AES-256-CBC.
Ahora, se procede a obtener el hash del archivo de prueba usado anteriormente para
cifrado y descifrado. En este caso, se usa el siguiente comando para obtener el hash usando
SHA-512:
openssl dgst -sha512 -out hash.txt textfile.txt
Figura 8. Hash generado para el archivo de texto.
5
Facultad de Ingeniería Criptografía______________________________________________________________________________________________________________
Posteriormente, se usa el comando nuevamente para generar un segundo hash, pero con el
nombre hash2.txt y se usa el comando de Linux diff para veri�car si los archivos son
idénticos, o bien, presentan diferencias. Si no hay diferencias, no se tendrá nada a la salida.
Figura 9. Veri�cación de los hashes generados.
Para ejempli�car esto, se genera un archivo de texto distinto al cual se le saca su hash
respectivo y, luego, se aplica el comando diff para mostrar la salida obtenida cuando los hash
no son iguales.
Figura 10. Valores hash que no coinciden.
Conclusiones
OpenSSL es una herramienta poderosa para trabajar con cifrado, �rmas digitales y hashes,
ofreciendo una amplia gama de algoritmos criptográ�cos y opciones; lo que la convierte en
6
Facultad de Ingeniería Criptografía______________________________________________________________________________________________________________
una herramienta versátil para la gestión segura de datos. Al utilizar las utilidades de línea de
comandos proporcionadas por OpenSSL, es posible realizar una variedad de tareas
criptográ�cas de manera rápida y sencilla. Por medio de este trabajo se logró poner en
práctica conceptos mencionados en clase para observar posibles casos de uso para los
procesos de �rmado digital y cifrado/descifrado de archivos, lo cual es un conocimiento útil
para salvaguardar archivos y mantenerlos seguros.
Referencias
Avarena, P. (2022, October 28).How to encrypt files with AES using OpenSSL. DEV
Community. RetrievedMay 10, 2023, from
https://dev.to/vaultree/how-to-encrypt-�les-with-aes-using-openssl-23m8
Kalin, M. (2019, June 20).How to use OpenSSL: Hashes, digital signatures, and more.
Opensource.com. RetrievedMay 10, 2023, from
https://opensource.com/article/19/6/cryptography-basics-openssl-part-2
Kekayan. (2018, July 7). Encrypt files using AES with OPENSSL | by Kekayan |Medium.
Encrypt �les using AES with OPENSSL. RetrievedMay 10, 2023, from
https://kekayan.medium.com/encrypt-�les-using-aes-with-openssl-dabb86d5b748
OpenSSL. (2022, June 24). Command Line Utilities - OpenSSLWiki. OpenSSL wiki.
RetrievedMay 10, 2023, from
https://wiki.openssl.org/index.php/Command_Line_Utilities
7