Instituto Tecnológico de Tijuana
Sistemas y computación
Proyecto / Tarea / Práctica:
Trabajo “Proyecto Final Criptografía”
Materia:
Sistemas operativos 2
AED-1062
Unidad:
Unidad V
Alumnos:
Argote Barraza Mia Roxanna #22211887
Estrada Solano Abraham #22211899
García Rentería Christopher Omar #C22211264
Mejía González Jesús Antonio #22211909
Nevares Hernández Axel Enrique #22211914
Sánchez González Sergio Ángel #21212679
Facilitador:
M.C. Christian Alonso Arena Campis
Grupo:
IF5A
Fecha:
26/Nov/2024
Índice
Introducción............................................................................................................... 1
Mecanismos y conceptos de seguridad..................................................................3
Conceptos Claves de Seguridad........................................................................................3
Mecanismos de Seguridad........................................................................................... 4
Políticas y Protocolos de Seguridad.............................................................................5
La criptografía en la práctica: está donde se cree que no está..............................7
Algoritmos criptográficos más seguros................................................................10
AES...................................................................................................................... 10
RSA...................................................................................................................... 10
ECC......................................................................................................................10
Cifrado de extremo a extremo.............................................................................. 11
Firmas digitales.....................................................................................................11
Explicación del código............................................................................................12
Conclusión............................................................................................................24
Bibliografía............................................................................................................... 25
2
Introducción
Este proyecto tiene como objetivo investigar los mecanismos de seguridad digital,
centrándose principalmente en la criptografía, y cómo esta se aplica para proteger la
información en el entorno digital actual. En un mundo cada vez más interconectado
y vulnerable a ataques cibernéticos, la criptografía juega un papel fundamental en la
defensa contra amenazas que buscan vulnerar la privacidad y la seguridad de los
datos. La necesidad de proteger información sensible, como datos bancarios,
comunicaciones personales y registros médicos, ha llevado al desarrollo de
complejas técnicas criptográficas utilizadas a diario, aunque muchas veces sin que
los usuarios sean conscientes de ello.
A lo largo de este proyecto, se abordarán los diferentes tipos de criptografía,
comenzando por la criptografía de clave secreta (simétrica) y su aplicación en la
encriptación de datos. También se explorará la criptografía de clave pública
(asimétrica), fundamental para procesos como la verificación de identidad en
servicios en línea. Además, se estudiarán las funciones hash, que permiten
asegurar la integridad de los datos sin necesidad de revelar su contenido.
El proyecto no solo buscará explicar el funcionamiento de estos mecanismos, sino
también analizar cómo se aplican en diferentes contextos prácticos. Se discutirá, por
ejemplo, cómo la criptografía asegura la privacidad en las transacciones bancarias
en línea, el uso de certificados digitales en la autenticación de sitios web, y cómo las
tecnologías emergentes, como blockchain y los contratos inteligentes, utilizan la
criptografía para garantizar la transparencia y seguridad en sistemas
descentralizados.
1
Además de la teoría, el proyecto también incluirá una sección práctica donde se
aplicarán conceptos de criptografía a escenarios reales, como la creación de claves
criptográficas y la simulación de procesos de encriptación y desencriptación. Se
pretende, por tanto, proporcionar una comprensión más completa tanto de los
aspectos técnicos como de las aplicaciones cotidianas de la criptografía, resaltando
su importancia no solo en el campo de la informática, sino también en el ámbito
social y económico.
En resumen, este proyecto busca ofrecer una visión integral de la criptografía, no
sólo como una herramienta técnica compleja, sino también como un elemento
esencial en la protección de datos y la confianza en un mundo digital cada vez más
interdependiente.
2
Mecanismos y conceptos de seguridad
Los mecanismos de seguridad son herramientas técnicas y métodos técnicos que
se utilizan para implementar los servicios de seguridad. Un mecanismo puede
funcionar por sí solo, o con otros, para proporcionar un servicio determinado. Los
siguientes son ejemplos de mecanismos de seguridad comunes:
❖ Criptografía
❖ Resúmenes de mensajes y firmas digitales
❖ certificados digitales
❖ Infraestructura de claves públicas (PKI)
Los mecanismos y conceptos de seguridad en sistemas informáticos y redes son
fundamentales para proteger la confidencialidad, integridad y disponibilidad de la
información. Estos conceptos se aplican para prevenir ataques, accesos no
autorizados y posibles daños a los sistemas. A continuación, se presentan algunos
de los mecanismos y conceptos más importantes:
Conceptos Claves de Seguridad
Confidencialidad: Garantiza que la información solo sea accesible a personas
autorizadas, se logra mediante el cifrado de datos, controles de acceso y
autenticación.
Integridad: Asegura que los datos no se modifiquen o corrompan de manera no
autorizada, mecanismos como sumas de verificación (hashes) y firmas digitales
permiten detectar alteraciones.
Disponibilidad: Asegura que los sistemas y datos estén disponibles cuando sean
necesarios, evitando caídas o interrupciones de servicio, generalmente con
redundancias y planes de recuperación ante desastres.
Autenticación: Proceso de verificar la identidad de un usuario o entidad que intenta
acceder a un sistema. Puede incluir contraseñas, autenticación multifactor (MFA),
certificados digitales, etc.
Autorización: Define qué recursos puede acceder un usuario autenticado y qué
operaciones está autorizado a realizar. Se gestiona mediante políticas de control de
acceso.
3
No repudio: Garantiza que una transacción o comunicación no pueda ser negada
por ninguna de las partes involucradas, se emplea con frecuencia en sistemas de
firma digital.
Mecanismos de Seguridad
Cifrado: Técnica para convertir datos en un formato ilegible para protegerlos de
accesos no autorizados. Hay dos tipos principales:
● Cifrado simétrico: Usa la misma clave para cifrar y descifrar (e.g., AES).
● Cifrado asimétrico: Usa un par de claves, una pública para cifrar y una
privada para descifrar (e.g., RSA).
Firewalls: Barreras que controlan el tráfico entrante y saliente en una red,
basándose en reglas predeterminadas para permitir o bloquear comunicaciones
potencialmente dañinas.
Sistemas de Detección y Prevención de Intrusos (IDS/IPS): Detectan y
previenen actividades sospechosas o ataques en una red o sistema, el IDS
monitorea e informa, mientras que el IPS también actúa para detener el ataque.
Control de Acceso: Métodos para regular quién puede ver o usar qué recursos
dentro de un entorno informático. Algunos enfoques comunes son:
● Control de Acceso Discrecional (DAC): Los propietarios de los recursos
deciden quién puede acceder.
● Control de Acceso Obligatorio (MAC): Se basa en políticas estrictas
predeterminadas.
● Control de Acceso Basado en Roles (RBAC): Asigna permisos según el rol
del usuario en la organización.
Copia de Seguridad (Backups): Se crean réplicas de los datos para evitar su
pérdida en caso de un fallo del sistema, error humano o ciberataque. Es un
componente esencial de la disponibilidad.
VPN (Red Privada Virtual): Permite crear una conexión segura y cifrada entre el
dispositivo del usuario y una red, protegiendo los datos transmitidos a través de
redes públicas.
4
Firmas Digitales: Se utilizan para verificar la autenticidad de un documento o
mensaje digital, garantizando tanto la integridad como el no repudio.
Autenticación Multifactor (MFA): Implica el uso de dos o más métodos de
autenticación independientes, como una contraseña y un código enviado al teléfono
móvil, para aumentar la seguridad.
Políticas y Protocolos de Seguridad
Políticas de Seguridad: Son lineamientos y normas establecidas dentro de una
organización para regular el acceso y uso de sistemas y datos. Incluyen aspectos
como gestión de contraseñas, uso de dispositivos móviles, acceso remoto, etc.
Protocolos de Seguridad: Conjuntos de reglas que gobiernan cómo se manejan
los datos y las comunicaciones. Algunos ejemplos comunes incluyen:
● SSL/TLS: Para cifrar comunicaciones en la web.
● IPsec: Para asegurar las comunicaciones a nivel de red.
● SSH: Protocolo para acceso remoto seguro.
5
¿Qué es la criptografía en seguridad?
La definición de criptografía se establece como el estudio de técnicas de
comunicaciones seguras que permiten que solo el remitente y el destinatario
previsto de un mensaje vean su contenido. Los criptógrafos protegen los sistemas
informáticos y de tecnología de la información mediante la creación de algoritmos y
códigos para cifrar los datos. A menudo también llevan a cabo las tareas de un
criptoanalista, descifrando algoritmos y descodificando texto para descifrar
información.
¿Cuáles son los cuatro pilares de la criptografía?
Esta disciplina gira alrededor de la protección de cuatro pilares: físico, datos,
procesos y arquitectura del sistema. Lo consigue gracias al uso de herramientas
específicas.
¿Qué son las herramientas criptográficas?
El token de seguridad o el token de autenticación es el que se considera
herramienta de criptografía. Usando el token de seguridad, se puede autenticar al
usuario, también se utiliza para proporcionar estado al protocolo HTTP. El token de
seguridad debe estar cifrado para permitir el intercambio seguro de datos.
¿Cuáles son los tres tipos de criptografía?
Existen tres tipos de criptografía: clave secreta, clave pública y función hash. A
continuación, se explica en qué consiste cada uno de ellos:
● Criptografía de clave secreta: utiliza una única clave tanto para el cifrado
como para el descifrado; también llamado cifrado simétrico. Se utiliza
principalmente para la privacidad y la confidencialidad.
● Criptografía de clave pública: utiliza una clave para el cifrado y otra para el
descifrado. A este método se le conoce como cifrado asimétrico. Se utiliza
principalmente para autenticación e intercambio de claves.
● Funciones hash: emplea una transformación matemática para "cifrar" la
información de forma irreversible, proporcionando una huella digital. Se utiliza
principalmente para la integridad de los mensajes.
6
¿Cómo se usa la criptografía en el día a día?
La criptografía en la vida cotidiana aparece en una serie de situaciones en las que el
uso de un conjunto de técnicas de este tipo facilita la prestación de un servicio
seguro. Esta disciplina se pone al servicio de la protección del usuario cuando
realiza operaciones como el retiro de efectivo de un cajero automático, renueva un
contrato con su proveedor de servicios de entretenimiento, utiliza el almacenamiento
de archivos online o el correo electrónico mediante algún software gratuito. Resulta
imprescindible también para una navegación web segura y para el uso de cualquier
dispositivo móvil conectado.
Hoy en día, la criptografía se utiliza para mantener seguro en línea material
sensible, como pueden ser las contraseñas privadas, los expertos en ciberseguridad
recurren a la criptografía para diseñar algoritmos, cifrados y otras medidas de
seguridad que codifican y protegen los datos de la empresa y los clientes.
La criptografía en la práctica: está donde se cree que no está
La compra por Internet tiene el cifrado como requisito fundamental
Los pagos en línea y las transacciones financieras a distancia ya son una realidad
en la vida cotidiana de miles de personas. Sin embargo, muchos de ellos ni siquiera
se dan cuenta de que se están beneficiando de la encriptación en estos servicios.
La facilidad que los sistemas de banca por Internet aportan a los usuarios es posible
gracias al sistema de seguridad que adoptan los bancos para proteger sus datos,
así, todas las transacciones están protegidas en la práctica mediante cifrado, lo que
garantiza la seguridad de los datos de los usuarios.
WhatsApp
El uso de aplicaciones en dispositivos móviles es cada vez más común. Hay
muchas posibilidades y una de las favoritas de los usuarios es el intercambio de
mensajes rápidos. La app de mensajería más utilizada en Brasil es WhatsApp,
actualmente propiedad de Facebook, las funciones de la aplicación son diversas y
permiten, por ejemplo, intercambiar fotos, vídeos y mensajes de voz.
Todo sucede rápida y fácilmente, por lo que el volumen de mensajes es cada vez
mayor, para garantizar que el contenido de los mensajes intercambiados a través de
7
WhatsApp no sea interceptado, la aplicación utiliza una tecnología de seguridad que
ellos mismos denominan cifrado de extremo a extremo. La privacidad se ha
convertido en un factor clave para los usuarios de la aplicación, quienes se
enteraron de la protección mediante cifrado a través de una advertencia emitida por
la aplicación.
Principales aplicaciones de la criptografía
La criptografía ha cosechado un éxito inigualable en los últimos años; sin embargo,
lo que muchas personas no se dan cuenta es que el trading de criptomonedas es
solo una aplicación de la tecnología blockchain, y este libro digital y descentralizado
que ha abierto camino hacia el núcleo de múltiples industrias es el que tiene el
mayor potencial.
Parece que la criptografía pronto se convertirá en un modo aceptable para pagos
internacionales, esto dará a las empresas acceso a una cadena de suministros cada
vez más global, sin embargo, hay muchas otras aplicaciones del mundo real de esta
tecnología que cambian el juego, la tecnología subyacente ya exhibe un gran
potencial, con numerosos casos de uso en varias industrias.
A continuación, se encuentran algunos de los usos de la criptografía en el mundo
real, la gran cantidad de aplicaciones de la tecnología hace que sea casi imposible
enumerarlas todas, pero aquí están las más destacables:
● Protección de derechos de autor y regalías: Con la explosión del contenido
en línea, los problemas de derechos de autor y propiedad son
preocupaciones comunes, la criptografía está promoviendo estas leyes en el
espacio digital con la ayuda de blockchain. Toda la información está marcada
cronológicamente, lo que garantiza un registro claro de los eventos, así que
ahora cualquier contenido estará seguro, además, dado que las descargas
pueden ser monitoreadas, los artistas y creadores de contenido pueden
garantizar su parte justa del dinero, la información, como la distribución de las
regalías, estará disponible en tiempo real.
● Cuidado de la salud: El sistema de salud está repleto de múltiples
ineficiencias, principalmente, provienen del uso de numerosos errores
humanos y mala comunicación entre médicos, técnicos de laboratorio,
8
pacientes, etc. Con la criptografía se pueden automatizar procesos y ahorrar
innumerables horas de papeleo, como los formularios y los datos se
almacenan de forma segura en la cadena, se reduce la probabilidad de error
humano.
● Contratos inteligentes: Estos contratos son mucho más inteligentes que los
regulares, debido a que los contratos inteligentes se desarrollan en la cadena
de bloques, no hay intermediarios y no requieren un tercero para
monitorearlos y legalizarlos. Los contratos inteligentes están ganando mucha
atracción, las industrias están cambiando a ellos ya que reducen la
dependencia de los contratos legales estándar, además, blockchain tiene la
capacidad de crear confianza en un ecosistema sin confianza con el uso de
libros públicos, de esa manera, los contratos inteligentes pueden rastrear
reclamos y hacer que ambas partes rindan cuentas.
9
Algoritmos criptográficos más seguros
AES
El AES (Advanced Encryption Standard), también conocido como Rijndael, es un
algoritmo de criptografía simétrica que fue desarrollado en Bélgica y adoptado en
2001 por el gobierno de Estados Unidos como el estándar oficial para el cifrado de
bloques, este algoritmo se considera uno de los más seguros y utilizados en la
actualidad.
El cifrado por bloques implica convertir bloques de texto plano en bloques de texto
cifrado del mismo tamaño, este tipo de criptografía se realiza mediante algoritmos
simétricos, y el AES de 256 bits es el estándar internacional actual. Este algoritmo
es muy seguro y eficiente, y su resistencia a ser vulnerado lo convierte en una de
las opciones más confiables. En AES, el tamaño del bloque es de 128 bits, y la
clave puede tener 128, 192 o 256 bits. Actualmente, se utiliza el tamaño de clave de
256 bits, el cual es considerado extremadamente seguro y sigue siendo
ampliamente adoptado.
RSA
RSA es un algoritmo de criptografía asimétrica que se considera invulnerable en la
práctica. Fue creado en 1979 por Ron Rivest, Adi Shamir y Leonard Adleman, y su
nombre proviene de las iniciales de sus apellidos.
RSA permite intercambiar información cifrada mediante un sistema de claves
públicas y privadas para cada usuario. Este sistema facilita la implementación de
cifrado de extremo a extremo y la generación de firmas digitales, que se explican
más adelante. La seguridad de RSA se basa en un problema matemático aún no
resuelto, conocido como la factorización de números enteros, y su dificultad radica
en descomponer el producto de dos números primos grandes.
ECC
La criptografía de curva elíptica o por sus siglas en inglés ECC (Elliptic Curve
Cryptography), es una forma avanzada de cifrado asimétrico que utiliza las
estructuras algebraicas de curvas elípticas para crear claves criptográficas seguras.
10
Como toda criptografía de clave pública, ECC se basa en funciones matemáticas
que son simples de calcular en una dirección, pero muy difíciles de revertir. En el
caso de ECC, esta dificultad reside en la inviabilidad de calcular el logaritmo discreto
de un elemento de curva elíptica aleatoria con respecto a un punto base conocido
públicamente, o el "problema de logaritmo discreto de curva elíptica".
Cifrado de extremo a extremo
El cifrado de extremo a extremo implica encriptar un mensaje utilizando la clave
pública de un usuario, de modo que solo esa persona, con su clave privada, pueda
descifrarlo. De este modo, se asegura que sólo el destinatario autorizado pueda
acceder al contenido del mensaje, protegiéndolo de cualquier intento de
interceptación.
Firmas digitales
Las firmas digitales no tienen como objetivo ocultar el contenido del mensaje, sino
garantizar su autenticidad e integridad. Se crean al encriptar un mensaje con la
clave privada del remitente, de forma que solo pueda ser descifrado con su clave
pública. Esto permite verificar de manera inequívoca el origen del mensaje y
asegurar que no ha sido alterado.
11
Explicación del código
Aclaración inicial: Esta parte de la documentación se centra exclusivamente en el
código del programa, omitiendo la parte visual del mismo que se desarrolla más
adelante en el documento.
El código que se explicará a continuación fue realizado con el lenguaje c#, lenguaje
que ofrece diversas facilidades en procesos criptográficos sencillos dado los
recursos que ofrece. Lo primero que se debe de hacer antes de empezar a
desarrollar el código del programa es añadir dos librerías esenciales para la
utilización de métodos criptográficos que el lenguaje c# pone a disposición de los
programadores, además de la librería encargada para manipular archivos (que en
este caso serán exclusivamente archivos de texto o .txt). Ambas librerías pueden
ser apreciadas en la siguiente imagen.
Imagen 1.1: Librerías necesarias.
A continuación se muestran las estructuras más sencillas del código:
Para darle la funcionalidad requerida al botón “Salir”, se debe de utilizar un pequeño
comando el cual simplemente se encarga de cerrar todo el programa (incluyendo
ventanas y procesos). El comando se muestra a continuación:
Imagen 1.2: Método para cerrar el programa.
12
La funcionalidad del botón “Limpiar” es muy sencilla, cuando el da clic sobre el
botón, el comando “[Link] = “”;” se encarga de reemplazar el contenido del
textbox por un espacio vacío, lo cual cumple la función de borrar todo el texto.
Posteriormente el comando “[Link]();” se encarga de que el “puntero” del
usuario se centre en el textbox especificado, aprovechando el método “Focus”
(establece el foco de entrada en el control).
Imagen 1.3: Método para limpiar el contenido del textbox.
A continuación se desarrolla la parte lógica encargada de las operaciones de
encriptación y desencriptación del código:
Se deben de declarar dos variables globales para que los diversos métodos del
programa puedan utilizarlas. La primera de ellas es un arreglo de bytes llamado
“clave”, en dicho arreglo más adelante en el programa se capturará la clave escrita
por el usuario que servirá para encriptar y desencriptar los datos.
Imagen 1.4: Declaración del arreglo de bytes para capturar la clave.
Posteriormente se debe de declarar un arreglo de bytes al cual llaman “vector de
inicialización”, los parámetros que este recibe son 8 valores numéricos arbitrarios
que pueden ser cualquiera que el usuario desee mientras cumpla la cantidad de
valores requeridos.
Imagen 1.5: Declaración del arreglo de bytes “vector de inicialización”.
13
Para la finalizar la declaración de variables globales se debe de crear un objeto con
servicio de criptografía, en este caso para que soporte los 16 bytes de una clave
hash el objeto es tipo “TripleDESCryptoServiceProvider”, para fines prácticos en
el ejemplo el nombre de dicho objeto es “servicio”, a continuación se muestra la
sintaxis de la declaración.
Imagen 1.6: Declaración del objeto del servicio de criptografía.
Un requisito indispensable para poder realizar la siguiente parte del código es añadir
la referencia de Microsoft VisualBasic, para poder aprovechar sus recursos. Lo cual
es tan simple de realizar como buscar la pestaña superior en la ventaja de “visual
studio” llamada “Proyecto” y darle clic.
Imagen 1.7: Apertura de la pestaña “Proyecto".
14
Una vez desplegada esa ventana se debe de dar clic en la opción “Agregar
referencia…”.
Imagen 1.8: Selección del apartado “Agregar referencia…”.
Finalmente se debe de activar la opción de “Microsoft VisualBasic” y dar clic en el
botón “Aceptar”.
Imagen 1.9: Adición de referencia de “Microsoft VisualBasic”.
15
La estructura del método “pedirClave” es la siguiente:
Imagen 2.1: Método “pedirClave”.
A continuación se explicará cada sección de dicho método:
➔ Se declara un string llamado “cadena” el cual almacenará la cadena de
caracteres ingresada por el usuario en la ventana flotante que proporciona los
métodos de Microsoft VisualBasic, dentro de dicha ventana se imprime el
texto “Ingrese una clave”.
Imagen 2.2: Almacenamiento de clave ingresada.
➔ Posteriormente se declara un arreglo de bytes llamado “datos” donde
almacena los valores resultantes de transformar la cadena de caracteres
“cadena” a bytes.
Imagen 2.3 Almacenamiento de bytes de la cadena de texto ingresada.
➔ Se crea un objeto tipo “MD5CryptoServiceProvider” que contenga el
servicio de encriptación “hash”, el cual se llama en este ejemplo
“servicioHash”. La sintaxis es la siguiente:
Imagen 2.4: Creación del objeto con servicio hash.
16
➔ Por último, se guarda el valor de la conversión del arreglo de bytes “datos” a
un hash en el arreglo “clave” que fue declarado al inicio del programa como
variable global, dicho hash es en esencia la clave que da los parámetros para
la encriptación de los textos, así que cada clave es única e irremplazable, por
lo que solo la clave correcta puede desencriptar un archivo encriptado con
dicha clave.
Imagen 2.5: Creación y almacenamiento de la “clave hash”.
La estructura del proceso en el botón “Encriptar” es la siguiente:
Imagen 2.6: Creación y almacenamiento de la “clave hash”.
17
A continuación se explicará cada sección de dicha estructura:
➔ Primeramente se manda a llamar al método “pedirClave” antes de empezar
cualquier proceso.
Imagen 3.1: Llamada al método “pedirClave”.
➔ Se crea un objeto de tipo “SaveFileDialog” que se utilizará más adelante.
Imagen 3.2: Creación de objeto tipo “SaveFileDialog”.
➔ Se declara el tipo de archivo a guardar como predeterminado, el cual en este
caso es un “.txt”, lo anterior con ayuda del método “Filter” propio de los
objetos tipo “SaveFileDialog”.
Imagen 3.3: Establecimiento de formato de archivo predeterminado.
➔ Una vez se le da clic al botón encriptar, la siguiente estructura despliega una
ventana del explorador de archivos para poder salvar el archivo “.txt” a
encriptar, se establece como condición que si el archivo se guarda con éxito,
se debe de proseguir con el proceso siguiente.
Imagen 3.4: Condición para encriptación.
➔ Se declara un arreglo de bytes llamado “datos” en el que se almacena el
contenido del texto ingresado por el usuario, pero transformado en un arreglo
de bytes.
Imagen 3.5: Almacenamiento de información transformada en bytes.
18
➔ Se crea un objeto tipo “FileStream” que servirá para guardar el archivo
posteriormente (el objeto se creará con el modo “create”), en este caso el
objeto es nombrado “archivo”. La sintaxis es la siguiente:
Imagen 3.6: Creación de objeto tipo “FileStream”.
➔ Se crea un objeto tipo “CryptoStream” que ayudará para la escritura del
texto codificado, en este caso el objeto se llama “CriptoWrite” y sus
parámetros de creación, son los siguientes: archivo guardado, servicio (con el
método “.CreateEncryptor” y de parámetros la clave y el arreglo de
inicialización), y por último el método “CryptoStreamMode” con el método
“.Write”. La sintaxis se muestra a continuación:
Imagen 3.7: Creación de objeto tipo “CryptoStream”.
➔ Posteriormente se escribe el texto encriptado en el archivo con ayuda del
siguiente comando, cuyos parámetros son: arreglo de bytes que contiene el
texto escrito, número que representa desde donde empezará a escribir, y por
último el número que representa hasta donde escribirá (en este caso se usa
“[Link]” para que directamente en este apartado se ingrese la
longitud total del arreglo). La sintaxis es la siguiente:
Imagen 3.8: Escritura del texto encriptado.
19
➔ Finalmente se cierra el proceso de escritura con el método “.Close”, como se
muestra en la siguiente imagen:
Imagen 3.9: Cierre del proceso de escritura.
➔ En caso de que la condición mencionada en un inicio no se cumpla, se
muestra una ventana emergente la cual tiene escrito el texto “No se eligió
encriptar”.
Imagen 3.10: Condición si no se cumple la anterior.
La estructura del proceso en el botón “Desencriptar” es la siguiente:
Imagen 4.1: Estructura del proceso de desencriptación.
20
A continuación se explica cada sección de dicha estructura, pero ya que es muy
similar a la del proceso de encriptación, se explicarán sólo las partes que cambian
entre ambos procesos:
➔ Todo el proceso está dentro de una estructura try-catch que tiene como
función evitar que el programa se cierre en caso de que salte algún error, el
cual salta si es que se intenta desencriptar un archivo con una clave
incorrecta. En caso de que salte el error, el catch muestra un “MessageBox”
con el texto “Clave incorrecta”, como se muestra a continuación:
Imagen 4.2: Cláusula catch.
➔ Se crea un objeto tipo “OpenFileDialog” llamado “File” que será utilizado
más adelante para abrir el archivo de texto encriptado.
Imagen 4.3: Creación del objeto tipo “OpenFileDialog”.
➔ Se crea un objeto tipo “FileStream” que recibe como parámetro el objeto
anteriormente creado y el modo del archivo, que en este caso es “Open”.
Imagen 4.4: Creación del objeto tipo “FileStream”.
➔ Se crea un objeto tipo “CryptoStream” el cual tiene la misma sintaxis que en
el proceso de encriptación, con las únicas diferencias son que en el
parámetro “CryptoStreamMode” se utiliza el método “.Read”, y en el servicio
se utilice el método “.CreateDecryptor”.
Imagen 4.5: Creación del objeto tipo “CryptoStream”.
21
➔ Se declara un arreglo de bytes llamado “datos” donde se determina que la
cantidad de bytes límite sean 4096, este número es para que pueda alcanzar
a leer todo el texto decodificado, no importando que queden espacios en
blanco (el número 4096 realmente es un dato arbitrario, pero se considera
que ese número es más que suficiente para el propósito de este programa).
Imagen 4.6: Creación de un arreglo de bytes con la capacidad de 4096 bytes.
➔ El siguiente comando lee los datos encriptados dentro del archivo,
traduciendolos a bytes que se almacenarán en el arreglo “datos”, esta vez en
lugar de utilizar el método “.Write”, se utiliza el “.Read”, ya que lo que se
busca es leer los datos (los parámetros son exactamente los mismos).
Imagen 4.7: Creación de un arreglo de bytes con la capacidad de 4096 bytes.
➔ Por último, se imprime el texto descifrado en el textbox “txtDatos” traduciendo
los bytes que contiene el arreglo “datos” a texto legible por el usuario.
Imagen 4.8: Impresión de texto descifrado.
➔ Finalmente se cierra el proceso de lectura con el método “.Close”.
Imagen 4.9: Cierre del proceso de lectura.
22
Para finalizar la explicación, se muestra a continuación los elementos que
conforman la ventana del forms realizado:
Imagen 5.1: Ventana del programa.
23
Conclusión
En conclusión, los mecanismos de seguridad son herramientas y técnicas
esenciales para proteger la información en el mundo digital. La criptografía, que es
uno de los mecanismos más importantes, se utiliza para asegurar que solo las
personas autorizadas puedan acceder a los datos. Existen diferentes tipos de
criptografía, como la de clave secreta, clave pública y funciones hash, cada una con
un propósito específico: proteger la privacidad, garantizar la autenticidad de los
mensajes y asegurar la integridad de los datos. En la vida cotidiana, la criptografía
está presente en actividades como realizar compras en línea, enviar mensajes por
WhatsApp o acceder a servicios bancarios, sin que muchas veces seamos
conscientes de ello.
Además, la criptografía tiene muchas aplicaciones más allá de la seguridad de los
datos. Por ejemplo, se utiliza en el sector de la salud para proteger los registros
médicos, en la protección de derechos de autor y regalías, y en el uso de contratos
inteligentes en la blockchain, que están ganando mucha popularidad.
La tecnología de cifrado de extremo a extremo (que asegura que sólo el destinatario
de un mensaje pueda leerlo), y las firmas digitales, que garantizan la autenticidad de
los mensajes, son solo algunos ejemplos de cómo la criptografía protege la
información en la actualidad. Todo esto demuestra que la criptografía es un pilar
fundamental en la seguridad digital moderna, y su importancia seguirá creciendo
con el avance de la tecnología
24
Bibliografía
de Expertos en Ciencia y Tecnología, E. (2021, agosto 9). Qué es la criptografía y
cuáles son sus usos. VIU España.
[Link]
ptografia-y-cuales-son-sus-usos
Eval Digital. (2017, junio 19). La criptografía en la práctica: lugares donde se utiliza
sin darse cuenta. Eval.
[Link]
gares-donde-se-utiliza-sin-darse-cuenta/
¿Cuáles son los usos de la criptografía? (2023, marzo 6). Computing.
[Link]
Cilleruelo, C. (2024, June 28). Algoritmos criptográficos más seguros [2024] |
KeepCoding. KeepCoding Bootcamps.
[Link]
Tipos de criptografía | IBM. (n.d.).
[Link]
SSL Corp. (2021b, February 24). ¿Qué es la criptografía de curva elíptica (ECC)? -
[Link]. [Link].
[Link]
25