Está en la página 1de 8

CRIPTOGRAFÍA BÁSICA

Seguridad informática vs seguridad de la información


Seguridad informática: aquellos aspectos de la seguridad que inciden directamente en los
medios informáticos en los que se genera, se gestiona, se almacena o se destruye la información.
Ejemplos: criptografía para la protección y la seguridad de los datos, las herramientas que
permiten dar seguridad a las redes y los métodos que añaden seguridad a las apps informáticas,
programas y bases de datos.
Seguridad de la información: Cuando además de lo anterior se tienen en cuentas aspectos
sistémicos de la gestión de esa seguridad como las políticas y planes de seguridad que toda
empresa debe plantearse, la orientación de esta seguridad hacia la continuidad del negocio, así
como su adecuación al entrono legal y normativas internacionales. Ejemplos: la gestión del
riesgo y de la seguridad de la información (sgsi), las políticas de seguridad que permitan el buen
gobierno (planes y contingencias) y la adecuación de la seguridad a las normativas
internacionales y a la legislación vigente (ISO 27000 – leyes).
No es lo mismo un director de seguridad informática, que tiene un enfoque tecnológico, que un
director de seguridad de la información tiene un enfoque estratégico, aunque ambos son
complementarios.

¿Qué es la criptografía?
RAE: EL arte de escribir con clave secreta o de un modo enigmático.
Hoy en día, es una ciencia. No solo escribimos mensajes, si no que generamos todo tipos de
documentos en distintos formatos de texto, audio y video. Así como, archivos que solo tienen
sentido para las maquinas: programas, aplicaciones y todo tipo de software.
En la práctica, para cifrar documentos no usaremos nunca una sola clave secreta si no dos, y en
escenarios más complejos como comunicaciones seguras por internet, se usaran otras claves con
características especiales y que permitirán, por ejemplo, establecer dicha conexión segura y
autenticar a los extremos que se comunican (vector inicial, publica/privada)
Por último, en cuanto al enigmático del criptograma, esto solo es válido cuando el alfabeto de
cifrado es diferente al alfabeto del texto en claro, especialmente si se usa signos extraños en el
primero como sucedía en el libro de Allan Poe, el escarabajo de oro. Desde hace muchos años
todos son bits, ceros y unos. Y para los seres humanos estos números no tienen nada de
enigmático.
Definición técnica: la criptografía es aquella ciencia que hace uso de métodos y herramientas
matemáticas con el objetivo principal de cifrar y, por tanto, proteger un mensaje o archivo por
medio de un algoritmo, usando para ello dos o mas claves, con lo que se logra en algunos casos
la confidencialidad, en otro la autenticidad o bien ambas simultáneamente.

¿Qué es la tríada CIA?


CIA: Confidentiality, Integrity y Availability. Los tres principios básicos de la seguridad de la
información.
Activo: Cualquier bien, tangible o intangible, que tiene valor para la organización. Por ejemplo,
los equipos, el software, las personas, infraestructuras, etc.
Confidencialidad: es la propiedad por la que el activo información no se pone a disposición o
se revela a individuo, entidades o proceso no autorizados. El propósito de la confidencialidad es
asegurar que solo las personas autorizadas pueden acceder a la información y esto se logra
utilizando criptografía. Por lo tanto, estamos hablando de un secreto que solo comparten
aquellos interlocutores, entidades o procesos que tienen derecho a conocerlo, una característica
que puede alcanzarse mediante el uso algoritmos criptográficos con una clave secreta y en este
caso compartida.
Integridad: es la propiedad de salvaguardar la exactitud y completitud de los activos. El
propósito de la integridad es garantizar que la información no será alterada, eliminada o
destruida por entidades no autorizadas, preservando la exactitud y completitud de la misma, así
como, de los métodos utilizados para su procesamiento. Esto también puede lograrse utilizando
técnicas criptográficas.
Disponibilidad: es la propiedad o característica de los activos consistente en que las entidades o
procesos autorizados tienen acceso a los mismo cuando lo requieran. Por lo tanto, el propósito
de la disponibilidad es asegurar que los usuarios autorizados puedan tener acceso a la
información y a los medios asociados en el momento que lo deseen. En este caso no es posible
lograr la disponibilidad usando criptografía, y será necesario contar con otras herramientas y
métodos.
Además de estos tres principios básicos, la seguridad de la información también descansa en
otros servicios como son la autenticación, el control de acceso (por lo que sabes (login,
contraseñas…), por lo que eres (biométrica), por lo que tienes (dispositivos de almacenamiento)
el no repudio y la trazabilidad.

¿Ciframos, codificamos o encriptamos?


Texto en claro: Cualquier información que resulta legible y comprensible por sí misma.
Criptograma: Texto que resulta de la cifra de cualquier información que no es legible ni
compresible salvo por el destinatario legítimo de la misma.
Cifrar y descifrar: Procesos que permitan transformar un texto en claro en un criptograma y
viceversa.
Esteganografía: Disciplina de la criptografía en la que se estudian técnicas que permiten el
ocultamiento de mensajes u objetos, de modo que no se perciba su existencia.
Criptoanálisis: Estudio de los métodos que permiten romper los procedimientos de cifrado para
recuperar la información original o la clave.
Criptología: Ciencia que estudia la criptografía y el criptoanálisis.
Criptógrafo/criptólogo: persona que se dedica al estudio de la criptología.
Codificar: No confundir cifrar con codificar. Codificar es una acción estática, en el sentido de
que los valores que se asignan en ese código a sus elementos son siempre los mismos, nunca
cambian. Así, la letra A en el código ASCII es el valor decimal 65, o en binario 0100 0001, y
así será siempre. Lo mismo podemos decir de otros códigos como el Morse, Baudot, base64.
Por el contrario, cifrar es una acción dinámica, en el sentido de que dependiendo de una clave
que lógicamente cambia con el tiempo y que se recomienda sea de un solo uso, un mismo
mensaje podrá convertirse en diferentes criptogramas.
Encrypt = Cifrar ≠ Encriptar (no existe)

Principios de Kerckhoffs
Principio 1: El sistema debe ser en la práctica indescifrable, en caso de que no lo sea
matemáticamente.
Principio 2: El sistema no debe ser secreto y no debe ser un problema que este caiga en manos
del enemigo.
Principio 3: La clave del sistema debe ser fácil de memorizar y comunicar a otros sin necesidad
de tener que escribirla; será cambiable y modificable por los interlocutores válidos.
Principio 4: El sistema debe poder aplicarse a la correspondencia telegráfica.
Principio 5: El sistema debe ser portable y su uso no deberá requerir la intervención de varias
personas.
Principio 6: El sistema debe ser fácil de usar, no requerirá conocimientos especiales ni tendrá
una larga serie de reglas.
Excepto el cuarto principio, que no es directamente aplicable a la criptografía actual y que
deberemos matizar puesto que hoy en día la correspondencia es digital, todos los demás
principios siguen siendo validos 131 años después.
En cuanto al primer principio, hoy se interpreta como, el sistema debe ser computacionalmente
seguro. En otras palabras, que, por limitaciones en la capacidad de cálculo de los actuales
ordenadores, el sistema de cifra resista todo tipo de ataques, en tanto el tiempo necesario como
el esfuerzo económico para que dichos ataques viables seria inmenso y, por lo tanto, no
abordable.
La aportación más importante de los principios de Kerckhoffs es la segunda, hoy en día hemos
simplificado, la seguridad del sistema debe recaer solo en la clave. La seguridad del cifrado
debe residir exclusivamente en el secreto de la clave y no en el desconocimiento del algoritmo
de cifrado. Este último debe ser de general conocimiento por la comunidad criptográfica para
que pueda ser criptoanalizado y descubiertas sus vulnerabilidades si las hubiera.

¿Qué es la cifra César?


Julio Cesar envía un mensaje cifrado a Cicerón, aplicando una sustitución simple a las letras del
texto en claro, de forma que el mensaje fuera ininteligible para el enemigo. Sustituye las letras
romanas por letras griegas, lo más característico era aplicar un desplazamiento de 3 espacios al
alfabeto en claro.

De forma qué para un alfabeto de 27 caracteres la letra A se sustituye por la D, la B por la E y


así sucesivamente.
El cifrado del Cesar con un desplazamiento de 3 espacios, es un caso particular del cifrado
genérico por sustitución con desplazamiento puro de la forma: C = M + B MOD N
Para aumentar la fortaleza de la cifra se puede incluir en el alfabeto de cifrado una clave K, que
consiste en una palabra o frase que se escribe a partir de una posición Pk del alfabeto sin repetir
las letras. Hecho esto, a continuación, se incluyen en orden las restantes letras del alfabeto. En
este tipo de cifra, se deja de cumplir la condición de desplazamiento constante que era una
característica básica del sistema de cifra primario del Cesar.

Como era de esperar, al tener un mayor numero de combinaciones de alfabetos posibles existe
una mayor incertidumbre respecto a la clave. De hecho, este alfabeto de cifrado podrá tener más
de 10.000 cuatrillones de representaciones posibles distintas, el factorial de 27. A pesar de ellos
la seguridad del sistema será siendo muy baja porque la redundancia del lenguaje se sigue
manifestando en el criptograma.
Para descifrar una cifra simple del César bastará con aplicar el algoritmo en su modo inverso en
este caso, usando un desplazamiento de b espacios en sentido contrario. Por propiedad
matemática, también será posible descifrarlo desplazando el texto cifrado n-b espacios. El
algoritmo del César fue un sistema de cifra muy sencillo, ingenioso e incluso apropiado para la
época.

No obstante, presenta un nivel de seguridad muy débil y su criptoanálisis es elemental. Basta


con realizar un sencillo y rápido ataque por fuerza bruta, desplazando las letras del criptograma
1, 2, 3, etc posiciones a la izquierda o a la derecha hasta dar con el mensaje en claro. Sin
embargo, el ataque a los sistemas con un alfabeto de cifrado con clave, o bien un alfabeto de
cifrado no secuencial, es decir, con posiciones de letras cambiadas al azar será algo más
complejo y habrá que hacer uso de las estadísticas del lenguaje.

¿Cómo se clasifican los sistemas de cifra moderna?


Según sea el tipo de clave que utilicemos, secreta y única o bien privada junto a una publica,
podremos dividir los sistemas de cifra moderna en algoritmos de criptografía simétrica y
algoritmos de criptografía asimétrica.
Por otra parte, dependiendo de la manera en la que tratemos el texto en claro a cifrar,
hablaremos de cifra en flujo y de cifrado en bloque.
Entre los algoritmos más representativos de la criptografía moderna se encuentran: A5, RC4,
DES, 3DES, IDEA, AES, SERPENT, TWOFISH, DIFFIE y HELMAN; RSA, ELGAMAL,
MOCHILAS, CURVAS ELIPTICAS.
Se denomina cifra simétrica o de clave secreta a aquella en la que se usa una misma calve
secreta compartida por ambos extremos, emisor y receptor, y por tanto previamente
intercambiada. Los algoritmos de cifrado y de descifrado son los mismo, pero en el receptor se
ejecuta forma inversa para deshacer la cifra, siempre usando la misma clave.
Por su parte, se denomina cifra asimétrica o de calve pública a aquella en la que cada usuario
posee dos claves, una calve pública conocida por todos y una clave privada y secreta que solo
conoce su dueño y que es inversa de la pública en un cuerpo. Se denomina asimétrica porque lo
que se cifra en el extremo emisor con una clave, por ejemplo, la calve pública del receptor, en
recepción deberá descifrase siempre con la calve inversa en este caso la clave privada de dicho
receptor. Los algoritmos de cifrado y de descifrado son los mismos y se ejecutan de igual
manera, pero con claves diferentes.
Si la cifra se realiza bit a bit, esto es una operación entre cada bit del texto en claro con el
correspondiente bit de una clave binaria o también byte a byte, se habla de cifrado de flujo. El
antiguo algoritmo A5 que se usaba para cifrar una conversación GSM por teléfono móvil es un
ejemplo de cifra en flujo por bits. Y el algoritmo RC4, que hasta 2014 era común usarlo en
plataformas seguras de internet, es un ejemplo de cifra en flujo por bytes. Los demás cifrados
simétricos utiliza bloques. Esto es, la información a cifrar se divide en bloques de 64bits, es
decir 8 bytes como en DES, 3DES e IDEA. O bien 128 bits, esto es 16 bytes, como es el caso en
AES, SERPENT y TWOFISH.
La criptografía asimétrica se usará preferentemente para cifrar números de unas pocas
centenas de bits, por ejemplo, para intercambiar claves de cifra simetría de una sesión o para
firmar digitalmente el hash de un documento. Si bien no se forma bloques para cifrar dicho
número, sino que el mismo se cifra en una sola operación la cifra asimétrica se considera como
una cifra por bloques, aunque este sea único.

¿Qué es mejor, la criptografía simétrica o la asimétrica?


Para determinar cuándo es conveniente una cifra simétrica y cuando una asimétrica es menester
primereo comparar ambos sistemas en los siguientes entrenos propios de la seguridad. La
gestión de claves, el espacio de las claves, la vida de las claves, la autenticación de origen y
destino, el intercambio de clave y la velocidad de cifra. El análisis de estas características nos
permitirá resolver esta cuestión.
La gestión de claves: En un sistema de cifra simétrica con n usuarios cada usuario deberá
memorizar n – 1 calves y el sistema tendrá n (n – 1) / 2 claves. En cambio, la cifra asimétrica
requerirá que cada usuario memoriza solamente su clave privada y el sistema constara tan solo
de n calves. En este aspecto, resulta claramente mas eficiente la cifra asimétrica.
El espacio de claves: Para que un sistema de cifra simétrica se considere seguro en 2015, el
espacio de claves deberá ser como mínimo de 2 elevado a 128: por ejemplo, la clave mínima de
128 bits del AES. No obstante, para una seguridad similar en cifra asimétrica RSA, será
necesario utilizar claves de al menos 1.024 bits porque ahora no todos los valores de la clave
serán validos como sí ocurría en una calve simétrica. En este sentido no son comparables estos
dos sistemas de cifra.
La vida de las claves: La duración o vida típica de una clave de sesión en internet en un sistema
de cifra simétrica va desde algunos segundos hasta varios minutos. Sin embargo, una clave
publica y privada de cifra asimétrica debido a sus características de certificación por
autoridades, tiene una duración típica que oscila entre 1 y 2 años. Nuevamente no son
comparables en este aspecto estos sistemas de cifra.
La autenticación de origen y de destino: La cifra simétrica permite la comprobación de la
integridad de los mensajes, por ejemplo, mediante el uso de funciones MAC, no así la
autenticación de los interlocutores. En cambio la cifra asimétrica permite ambas cosas,
integridad y autenticación, puesto que realizando en emisión una cifra con la clave privada, en
destino solo se descifrará el criptograma con la calve correspondiente. En este escenario, la cifra
asimétrica es también más eficiente.
El intercambio de clave: Con los sistemas de cifra simétrica no es posible realizar un
intercambio de calve de sesión a diferencia de la cifra asimétrica. Ello se debe a que en esta
ultima existe una clave publica de un receptor que permite el envío confidencial de esa clave de
sesión y que solo podrá descifrarse con la clave privada del destino. Nuevamente, es la cifra
asimétrica la que presenta ventajas sobre la simétrica.
Según lo visto hasta ahora, parece que los sistemas de cifra simétrica se encuentran en
desventaja, pero no es así. La cifra simétrica presenta tasas de cientos de megabytes por
segundo frente a los cientos de kilobytes por segundo de la cifra asimétrica. Es mil veces más
rápida. Con esa velocidad tan baja no es posible usar sistemas asimétricos para cifrar grandes
volúmenes de información.
Resumiendo, es recomendable usar criptografía asimétrica para cifrar números de solo algunas
centenas de bits como seria el intercambio de una clave simétrica de sesión o bien la firma
digital sobre el hash de un documento. Y utilizar la criptografía simétrica para cifrar grandes
volúmenes de información. Estos es lo que se conoce como cifrado hibrido que usamos
habitualmente y sin darnos cuenta en conexiones seguras de internet, como SSL/TLS

¿Qué es el código BASE64?


El código más conocido y usado actualmente es el denominado ASCII extendido de 256
caracteres con el que codificamos un conjunto de letras, números y símbolos mediante cadenas
de 8 bits, en tanto 2^8 = 256. Así, por ejemplo, el espacio en blanco se codifica con el valor
decimal 32, la letra A es el valor decimal 65, la letra z es el valor 122 y la ñ tiene el valor
decimal 241. No obstante, en realidad el código ASCII original tenia solo 7 bits y el octavo bit
se usaba como paridad para el control de errores. Por lo tanto, era capaz de representar tan solo
2^7= 128 caracteres siendo 95 de ellos imprimibles, los que se encuentran entre los valores 32 a
126. Pero con solo 7 bits, no se podrían representar caracteres como la letra á la letra ñ, el signo
¿ y otro símbolos. Por tanto, en la norma ISO/IEC 8859-1: 1998, más conocida como ASCII
extendido y publicada inicialmente en 1987, ese octavo bit se usa para codificar otros 128
caracteres más y así llegar a los 256 elementos que hoy conocemos.
En aquello años, esto lo hacia incompatible con equipos informáticos que solo aceptaban
caracteres imprimibles. La solución fue un código intermedio de 6 bits con todos sus elementos
imprimibles: Estos 6 bits permiten codificar hasta 2^6 = 64 caracteres, y de ahí el nombre
Base64 o Radix64. Dichos caracteres son las 26 letras mayúsculas del inglés, las 26
minúsculas, los 10 dígitos, el carácter + y el carácter /. El carácter = tendrá un uso especial.
Como Base64 es un código de 6 bits, vamos leyendo el binario de un ASCII de 8 bits en
bloques de 6 bits asignado a cada nuevo bloque un elemento del código Base64 operación que
se repite hasta el ultimo octeto del archivo o documento inicial. Puede suceder entonces que la
cantidad de Bits del mensaje sea congruente con 6 o no. Si se da este ultimo caso de no
congruencia, se incluirá un relleno que viene representado por uno o dos caracteres =.
En el siguiente ejemplo se muestra cómo se codificarían los mensajes Sonríe, Sonreír, de 6, y 7
caracteres respectivamente. El primer texto Sonríe tiene 6 caracteres ASCII y por lo tanto un
total de 6*8 = 48 bits, cantidad que si se divide por 6 nos da exactamente 8 caracteres Base64.
Sonreír tiene 7 caracteres 7*8 = 56 bits al dividir 56/6 = 9 caracteres Base64 porque 9*6 = 54
bits y los dos últimos bits que quedan sueltos se rellenan con 4 ceros de manera que formen un
nuevo bloque de 6 bits. Esto se indica al final de la codificación añadiendo dos signos =, uno
por cada par de ceros añadidos.
Para decodificar un texto Base64 a ASCII extendido, simplemente se representa cada carácter
Base64 en su valor binario, agrupando ahora de 8 en 8 bits y asignado a cada bloque el código
ASCII correspondiente.
Nunca podríamos usar el código Base64 para cifrar. Se trata solamente de una codificación y
no una cifra, no existe clave alguna.

¿Qué son y para qué sirven las funciones hash?


Las funciones hash, son algoritmos que, al aplicarlos sobre archivos o textos, entregan un
resumen de x bits. Un número que a modo de huella digital representa a dichos documentos de
forma supuestamente única. A diferencia de la popular familia de aplicaciones tipo zip para la
compresión de archivos, las funciones hash entregan siempre un resumen con número fijo de
bits, independientemente del tamaño de ese archivo. Es menester indicar que, al carecer de
calves las funciones hash no son algoritmos de cifra.
En seguridad informática y en criptografía las funciones hash juegan un papel muy importante.
Entre sus aplicaciones más comunes, se encuentran estas dos. En primer lugar, dado que su
resultado actúa como una huella digital de un texto, el hash es útil en el proceso de validación
de la autenticación de usuarios. Típicamente para el almacenamiento de contraseñas, con la
utilización de mecanismos adecuados de seguridad, como PNKDF2 que dificulten la
recuperación de las contraseñas en claro si se realiza un ataque de fuerza bruta o diccionario. Es
reseñable la precaución que hay que tener como los hashes pueden o no utilizarse en procesos
de autenticación, ya que debe evitarse problemas derivados de capturar ese hash y facilitar la
autenticación sin conocer la clave en claro.
Una segunda aplicación del hash, en este caso ya en criptografía, es la adaptación del tamaño
del documento a firmar mediante un algoritmo de criptografía asimétrica como, por ejemplo ,
RSA, ELGAMAL o curvas elípticas. Como estos sistemas de clave publica tienen una tasa de
cifra de tan solo unos cientos de kilobytes por segundo, la única manera de que la firma digital
sea viable en tiempo de ejecución, es firmar las centenas de bits de un hash y no los cientos,
miles o incluso millones de bytes del documento original.
Las funciones hash deben cumplir con las siguientes 6 propiedades:
1. La unidireccionalidad: Conocido un resumen h(M) debe ser computacionalmente
imposible encontrar el mensaje M a partir de dicho resumen.
2. La compresión: Como lo normal es que el mensaje M tenga una longitud de bits mayor
que la entrega al hash, la función hash actuara normalmente como un comprensor. Si el
mensaje tuviese menos bits que el hash el resumen siempre tendrá ese valor fijo de bits.
3. La facilidad de cálculo: Debe ser fácil calcular h(M) a partir de un mensaje M, y así
sucede en la práctica. Además, el hash es una función muy rápida.
4. La difusión de bits: Esta propiedad también conocida como efecto de avalancha indica
que el resumen h(H) debe ser una función compleja de todos lo bits del mensaje M. Por
lo tanto, si se modifica tan solo un bit del mensaje M, el nuevo hash debería cambiar
aproximadamente en la mitad de sus bits con respecto a la anterior.
5. La resistencia débil a colisiones: Esta propiedad se cumplirá si es computacionalmente
imposible que conocido un mensaje M, podamos encontrar otro mensaje M’ tal que
h(M) = h(M’).
6. La resistencia fuerte a colisiones: En este caso, nos indica que será
computacionalmente imposible encontrar un par aleatorio de mensajes M y M’ de
forma que h(M) = h(M’). Si el hash no cumple con esta propiedad, se facilitar su ataque
por la paradoja del cumpleaños.

También podría gustarte