Archivologocompendio 2022826105430
Archivologocompendio 2022826105430
Archivologocompendio 2022826105430
UNIDAD 3
Criptografía y Aplicaciones de la criptografía
4. Material Complementario................................................................................ 14
5. Bibliografía ...................................................................................................... 15
2
Criptografía y Aplicaciones de la criptografía
1. Unidad 3: Criptografía y
Aplicaciones de la criptografía
Tema 2: Criptografía de clave compartida
Objetivo:
Introducción:
La de claves, es el proceso de dividir una clave criptográfica en partes más pequeñas y
cifrar cada parte por separado para que no se pueda volver a armar, incluso si una parte
es interceptada y examinada. El estudio también analiza algunos problemas de
seguridad que la clave dividida puede resolver. Uno puede pensar en la clave dividida
como una superestructura sobre un cálculo RSA estándar. La clave completa (privada)
es una clave compuesta inferida con múltiples números primos. A pesar de esto, el
objetivo principal de la clave dividida asume que los componentes de la llave virtual
nunca se unirán por completo. La mejor estrategia para lograr la seguridad de la
información es el cifrado. Los elementos de un mensaje están ocultos por el ciclo de
cifrado para que la estrategia principal de decodificación pueda descubrir la primera
información. El cifrado se utiliza para evitar que personas no autorizadas accedan a la
información o la cambien. Cuando la información se comunica a través de un método
alternativo, un método móvil, referencias de tablas o ciclos numéricos, se produce el
© Universidad Estatal de Milagro – UNEMI
cifrado.
El cifrado con una clave simétrica significa que al menos dos usuarios deben tener la
clave secreta. El uso de esta clave cifra y descifra todos los mensajes enviados a través
de un canal no seguro, como Internet. Entonces necesitamos encriptar los datos para
mantener la privacidad. Cualquier usuario que quiera acceder al mensaje cifrado debe
tener esta contraseña de descifrado, de lo contrario no será legible.
El descifrado se haría de la misma forma, esto es, se sumaría a la codificación del texto
cifrado la clave para obtener el texto claro codificado en ASCII.
Debe tenerse en cuenta que la elección de la clave ha de hacerse de tal modo que el
destinatario del texto cifrado debe poder repetirla exactamente para que recupere el
mensaje original. Ahora bien, si esta clave, como ya hemos dicho, es completamente
aleatoria, tan larga como la longitud del mensaje y solo puede utilizarse una vez para
que sea el sistema de cifrado absolutamente seguro, es claro que el sistema es muy poco
eficiente y muy difícil de llevar a la práctica. Por esta razón, el cifrado de Vernam es solo
una propuesta más bien teórica que apenas se emplea (se reserva para ambientes
donde hace falta la máxima seguridad y con poca cantidad de información), pero que ha
sentado las bases para los cifradores en flujo. El cifrado de Vernam es el único
incondicionalmente seguro, esto es, el único cuya seguridad se ha demostrado
matemáticamente. Eso no significa que el resto de los cifradores que se van a presentar
posteriormente sean inseguros. De hecho, los cifradores modernos se consideran
seguros en tanto no se pruebe que puedan ser vulnerados o que el problema
matemático en el que se basa su seguridad pueda ser resuelto fácilmente (Fúster
Sabater, et al., 2012).
Los cifradores en flujo son la alternativa práctica al cifrado de Vernam, pues son
fácilmente implementables y con una seguridad elevada. En estos cifradores, el emisor
y el receptor utilizan para cifrar una secuencia de bits que es pseudoaleatoria, esto es,
que tiene las mismas propiedades que cabría esperar de una secuencia puramente
aleatoria, pero que, por el contrario, puede ser reproducida de modo exacto cada vez
que sea preciso. Esta secuencia se genera mediante un algoritmo público determinista,
es decir, un algoritmo que siempre que se le proporciona la misma entrada produce la
misma salida, y que es conocido por ambas partes. El algoritmo utiliza como entrada una
semilla, que no es más que una clave corta compartida por emisor y receptor,
habitualmente de 128-256 bits. Mediante este tipo de algoritmos, ambas partes pueden
generar la misma clave de cifrado y descifrado compartiendo solo la semilla. La
secuencia generada por dicho algoritmo se denomina “secuencia cifrante” y hace las
veces de clave en el cifrado de Vernam. Por lo demás, los procesos de cifrado y
© Universidad Estatal de Milagro – UNEMI
las mismas operaciones que se llevan a cabo para cifrar un bloque se repiten para
descifrarlo, utilizando la misma clave en ambos procesos.
Para que un cifrador en bloque se pueda considerar viable, debe poseer determinadas
propiedades. Destacamos las más importantes. Una de ellas se conoce como
dependencia entre bits, y viene a significar que cada uno de los bits del texto cifrado
debe ser una función compleja de todos los bits de la clave y de todos los bits del bloque
de texto claro. Otra hace referencia al cambio de los bits de entrada en el sentido de
que, si se cambia un bit en un bloque del texto claro, aproximadamente la mitad de los
bits de bloque cifrado correspondiente también deben cambiar. Algo similar debe
suceder con el cambio de los bits de clave, es decir, el cambio en un bit de la clave
producirá el cambio de la mitad de los bits del texto cifrado (Fúster Sabater, et al., 2012).
Por otra parte, todo cifrador en bloque suele estar formado por una serie de
componentes como son: una transformación inicial de los bits de cada bloque, cuyo
objetivo es, en general, intentar hacer que el bloque sea aleatorio con el fin de disimular
el aspecto de mensajes que pudieran estar muy formateados, como tablas, imágenes,
etc. Esta transformación no suele tener significación criptográfica. La transformación
inicial está acompañada por una transformación final, cuyo objetivo es invertir la
primera y tiene lugar al final del proceso de cifrado de cada bloque (Fúster Sabater, et
al., 2012).
original, que son las que van a ser utilizadas en las diferentes iteraciones de la función
de cifrado. La clave original del usuario suele tener una longitud de entre 64 y 256 bits,
dependiendo del cifrador en bloque que se utilice. Los principales cifradores en bloque,
cuyo uso actual está avalado por normas internacionales, son TripleDES y AES. Existen
otros muchos cifradores cuya seguridad es similar a la de los anteriores, como son
Twofish, Serpent, etc. (Fúster Sabater, et al., 2012)
El primer cifrador en bloque normalizado (por el NIST) para uso civil data del año 1977
y se conoce como DES (Data Encryption Standard) o DEA (Data Encryption Algorithm).
Hoy en día este sistema ha quedado en desuso, puesto que se considera inseguro desde
1998, época en la que una máquina diseñada expresamente para romper este sistema
de cifrado (DESCracker) era capaz de probar todas las claves de DES en nueve días. La
longitud de cada bloque para DES es de 64 bits, esto es, equivalente a ocho símbolos
ASCII. Su clave también tiene 64 bits, si bien el octavo de cada ocho se emplea para
comprobar la paridad de los siete bits que le preceden y evitar errores en la clave. Así
pues, las claves efectivas de DES tienen 56 bits. El número de posibles claves de este
tamaño es 256≈ 7,2*1016, lo que es una fragilidad, dado que actualmente un
criptosistema simétrico se considera seguro si su clave tiene al menos 80 bits (Fúster
Sabater, et al., 2012).
Para cifrar un bloque mediante DES, en primer lugar, se ejecuta una permutación fija (y
conocida) cuyo objetivo es llevar a cabo una difusión de sus bits para evitar, como ya se
ha dicho, estructuras rígidas, pero no tiene repercusión criptográfica. A continuación, el
bloque se divide en dos mitades de 32 bits cada una; la izquierda (I 0) y la derecha (D0),
de modo que las acciones que se van a llevar a cabo se iteran 16 veces y en cada iteración
se utiliza una subclave de 48 bits diferente, kr. Estas 16 subclaves se obtienen a partir
Una vez concluida la decimosexta iteración, se concatenan las dos mitades de los
bloques y se obtiene el bloque cifrado sin más que llevar a cabo la permutación inversa
a la permutación inicial.
La función no lineal empleada en cada iteración utiliza como entradas la parte derecha
del bloque y la subclave correspondiente y consiste en varios pasos. El primero es
expandir el bloque desde 32 hasta 48 bits, repitiendo determinados bits del bloque en
posiciones ya establecidas de antemano. A continuación, se suman, bit a bit, los 48 bits
de esta expansión con los de la subclave. Los 48 bits obtenidos se separan en ocho
grupos de seis bits, de modo que cada grupo entra en una caja S diferente, que
© Universidad Estatal de Milagro – UNEMI
proporciona como salida cuatro bits. Los ocho grupos de cuatro bits resultantes se
concatenan, dando lugar a un bloque de 32 bits que, como ya hemos dicho, se suma, bit
a bit, con la mitad izquierda del bloque de la iteración considerada y se convierte en el
bloque derecho de la siguiente iteración (Fúster Sabater, et al., 2012).
Dado que los sistemas de cifrado que se van a presentar a partir de este momento hacen
uso de herramientas informáticas que codifican los mensajes según su contenido exacto,
estos se cifrarán considerando su grafía correcta (con tildes, mayúsculas, etc.). Dicho de
otro modo, como los criptogramas de los mensajes “Criptografía” y “criptografia” son
Si se desea cifrar mediante DES el siguiente mensaje de 64 bits (un bloque): “Ejemplos:”
utilizando como clave (escrita en hexadecimal, es decir, empleando las cifras 0, 1, 2, 3,
4, 5, 6, 7, 8, 9, A, B, C, D, E, F) 0000CAFECAFE1111 se obtiene el siguiente mensaje
cifrado: ™Sø”_”@v. Ahora bien, es muy probable que el cifrado de un mensaje
proporcione caracteres ASCII no imprimibles (retorno de carro, retroceso, etc.), en cuyo
caso, las implementaciones de DES suelen mostrar el resultado del cifrado mediante
código hexadecimal. Así, cifrar la frase “Este es un ejemplo con el sistema de cifrado DES
con la misma clave de antes” proporciona como resultado el siguiente criptograma (cada
grupo de dos caracteres en hexadecimal equivale a 8 bits, esto es, al cifrado
correspondiente a cada letra, considerada en su bloque correspondiente): D8 8D 67 10
56 E9 B2 C9 65 88 96 A6 25 D0 F1 B8 23 A4 D7 06 6C F8 34 5D 8C 19 43 C0 F1 A1 9E 3F
50 97 7D 40 8E 28 89 D9 F2 05 CE CE 16 B9 43 8C.
Con el fin de utilizar la arquitectura desarrollada para el DES y a la vez evitar la fragilidad
que supone la longitud de sus claves, se ha recomendado el uso del llamado cifrador
múltiple TripleDES o TripleDEA. Este sistema de cifrado lleva a cabo tres cifrados
consecutivos de DES. En el primero se cifra la información mediante un DES con una
clave, sea k1; el segundo consiste en descifrar mediante DES el resultado del cifrado
anterior con una segunda clave diferente, k2, y, finalmente, se cifra el resultado
obtenido en el segundo paso, pero ahora se puede volver a utilizar la primera clave, k1,
o una clave diferente, k3. Así pues, la longitud de los bloques del TripleDES sigue siendo
© Universidad Estatal de Milagro – UNEMI
de 64 bits, pero puede utilizar claves de 128 bits (k1 y k2) o de 192 bits (k1, k2 y k3), lo
que hace que aún sea considerado seguro y apto para el cifrado de datos. No obstante,
una vez probada la debilidad de DES, el NIST americano publicó una nueva norma en
2001 definiendo el nuevo sistema de cifrado en bloque estándar, conocido como AES
(Advanced Encryption Standard). Este nuevo sistema de cifrado fue elegido después de
una competición internacional convocada precisamente para elegir un sustituto de DES.
AES utiliza bloques de 128 bits de longitud, mientras que las longitudes de sus claves
pueden ser de 128, 192 o 256 bits (Fúster Sabater, et al., 2012).
Al margen de las diferencias en cuanto a las longitudes de las claves, de los bloques y
del tratamiento de estos como entes completos o divididos en mitades, existe una
diferencia en el diseño de AES que lo hace muy diferente de DES. Ambos utilizan cajas
S, pero mientras que las de AES están plenamente justificadas de modo matemático, las
de DES nunca han sido del todo explicadas ni aclaradas, lo que ha llevado a suponer que
DES pudiera tener puertas traseras que permitieran el descifrado de datos sin necesidad
de conocer la clave (Fúster Sabater, et al., 2012).
De hecho, cada caja S de DES es una tabla de doble entrada con 4 filas y 16 columnas,
de modo que en cada celda hay un número comprendido entre 0 y 15. Estas cajas, como
ya se ha dicho, toman como entrada 6 bits y producen como salida cuatro bits. La forma
de proceder es la siguiente (en la tabla 9 se muestra la caja S5 de DES): el primer y último
bit de los 6 de la entrada se concatenan y dan lugar a 2 bits, es decir, a un número entre
0 y 3 que determina una fila de la caja. En el caso de que los 6 bits de entrada fueran
110110, los 2 bits de los extremos a los que nos referimos serían 10, es decir, el número
decimal 2, lo que indica la fila identificada como 2 (subrayado en la tabla) (Fúster
Sabater, et al., 2012).
Por su parte, los cuatro bits restantes definen un número entre 0 y 15, que determina
una de las columnas de la caja S. En el caso mencionado, los bits serían 1011, que
equivalen al número decimal 11, esto es, la columna identificada como 11 (subrayado
en la tabla).
Entonces, la salida de la caja son los cuatro bits que definen el número contenido en la
celda que está en el cruce de la fila y columna determinadas. En el ejemplo considerado,
sería el número 5 (en negrita y subrayado en la tabla), que en binario es 0101. La razón
de esta forma de definir las cajas S y la distribución de los valores de las celdas no ha
sido explicada ni justificada, por lo que siempre se ha dudado de su seguridad.
Por su parte, la caja S de AES proporciona el mismo número de bits de salida que los que
toma como entrada y es una permutación de los 256 números comprendidos entre 0 y
255 (00 y FF, en hexadecimal). Su construcción matemática se ha definido de modo que
minimice tanto la correlación entre la entrada y la salida como la probabilidad de
propagación de diferencias y, a la vez, maximice la complejidad de la expresión de la
transformación (Fúster Sabater, et al., 2012).
ALGORITMO DE CIFRADO
DES (Data encryption Standard): Utiliza el cifrado por bloques con bloques de 64 bits,
esto es, toma un texto plano de esa longitud y lo transforma, mediante una serie de
operaciones, en texto cifrado de la misma longitud.
RC5 (Riverse Cipher): Algoritmo que opera con un tamaño variable de bloques (32,64 y
128 bits) y un número también variable (entre 0 y 2040 bits). Puede implementarse
tanto por hardware como software, consumiendo poca memoria y adaptándose a
microprocesadores con distintos tamaños.
enorme número de posibles claves que hay que analizar hace que, con el estado actual
de la computación, sea posible de averiguar a través de ataques de fuerza bruta.
3. Preguntas de Comprension de la
Unidad
1. ¿Pregunta de comprensión Nro. 1?
¿Consiste en lograr que la información permanezca secreta y solo sea conocida por
quienes tienen autorización para ello?
A. Confidencialidad.
B. Integridad.
C. Autenticidad.
D. No repudio.
4. Material Complementario
Los siguientes recursos complementarios son sugerencias para que se pueda ampliar la
información sobre el tema trabajado, como parte de su proceso de aprendizaje
autónomo:
Bibliografía de apoyo:
EC-Council, 2020. Certified Ethical Hacker (CEH) Version 11. Volumes 1 through 4 ed.
Albuquerque: EC-Council.
Prieto, M., 2020. Historia de la Criptografía: Cifras, códigos y secretos, Madrid: La Esfera
de los Libros.
© Universidad Estatal de Milagro – UNEMI
5. Bibliografía
» Abdi, F. y otros, 2018. Guaranteed Physical Security with Restart-Based Design
for Cyber-Physical Systems. ACM/IEEE Int. Conf. Cyber-Physical Syst, p. 10–21.
» Aljawarneh, S., Bani, M. & Talafha, Y., 2018. A Multithreaded Programming
Approach For Multimedia Big Data: Encryption System. Multimedia Tools and
Applications, 77(9), p. 10997–11016.
» Alshanfari, I., Ismail, R., Zaizi, M. & Wahid, F. A., 2020. Ontology-based formal
specifications for social engineering. International Journal of Technology
Management and Information System 2, p. 35–46.
» EC-Council, 2020. Certified Ethical Hacker (CEH) Version 11. Volumes 1 through
4 ed.
» Fúster Sabater, A. y otros, 2012. Criptografía, protección de datos y aplicaciones.
Una guía para estudiantes y profesionales. Madrid: RA-MA.
» Gupta, B. B., Agrawal, . D. P. & Wang, H., 2019. Computer and Cyber Security
Principles, Algorithm, Applications, and Perspectives. Boca Raton: Taylor &
Francis Group, LLC.
» Hernández Encinas, L., 2016. La criptografía. Madrid: Catarata.
» Prieto, M., 2020. Historia de la Criptografía: Cifras, códigos y secretos,. Madrid:
La Esfera de los Libros.
» Stallings, W. & Brown, L., 2018. Computer Security: Principles and Practice. New
Jersey: Pearson Education, Inc..
» Stergiou, C., Psannis, K., Kim, B.-G. & Gupta, B., 2018. Secure Integration of IoT
© Universidad Estatal de Milagro – UNEMI
and Cloud Computing. Future Generation Computer Systems, 78(3), pp. 964-975.
» Sun, W. y otros, 2018. Security and Privacy in the Medical Internet of Things: A
Review. Security and Communication Networks.
» Tilborg, V., 2005. Encyclopedia of Cryptography. Nueva York: Springer.