Publicado el 6 de Septiembre del 2018
547 visualizaciones desde el 6 de Septiembre del 2018
558,3 KB
34 paginas
Creado hace 12a (11/11/2011)
Seminario – Seguridad en desarrollo del Software
Tema: Criptografía I
Autor: Leudis Sanjuan
¿Qué es criptografía?
La criptografía es el nombre genérico con el que se designan dos disciplinas
opuestas y a la vez complementarias: criptografía y criptoanálisis. La criptografía
se ocupa del diseño de procedimientos para cifrar; es decir, para enmascarar una
determinada información de carácter confidencial. El criptoanálisis se ocupa de
romper esos procedimientos para así recuperar la información. Ambas disciplinas
siempre se han desarrollado de forma paralela, pues cualquier método de cifrado
lleva siempre emparejado su criptoanálisis correspondiente.
El esquema fundamental de un proceso criptográfico (cifrado/descifrado) puede
resumirse como muestra la siguiente figura:
Figura1: Proceso criptográfico
A y B son respectivamente el emisor y el receptor de un determinado mensaje. A
transforma el mensaje original mediante un determinado procedimiento de cifrado
controlado por una clave, en un mensaje cifrado (llamado también criptograma)
que se envía por un canal público. En recepción, B con conocimiento de la clave
transforma ese criptograma en el mensaje original.
En el proceso de transmisión, el criptograma puede ser interceptado por un
enemigo criptoanalista que lleva a cabo una labor de desencriptado; es decir,
intenta, a partir del criptograma y con el conocimiento de la clave, recuperar el
mensaje original. Un buen sistema criptográfico será, por tanto, aquel que ofrezca
un descifrado sencillo, pero un desencriptado imposible o muy difícil.
En sus principios, la criptografía (llamada hoy en día criptografía clásica) se
ocupaba de mantener la confidencialidad del mensaje; hoy en día, la criptografía
se enfoca en el concepto de comunicaciones seguras y a la vez busca cumplir
con tres propósitos:
Mantener la confidencialidad del mensaje; es decir, que solo sea visto por
aquellos que tienen que ver la información
Garantizar la autenticidad del destinatario y remitente; es decir, asegurar la
identidad del destinatario y remitente.
Garantizar la integridad en el mensaje; es decir, que el mensaje enviado por
el emisor sea el mismo que reciba el receptor.
Tipos de sistemas criptográficos
Teniendo en cuenta el
tipo de clave, podemos distinguir dos métodos
criptográficos:
1. Sistemas de clave única o métodos simétricos: son aquellos en los que los
procesos de cifrado y descifrado son llevados a cabo por una única clave.
2. Sistemas de clave pública o asimétrica: son aquellos en los que los
procesos de cifrado y descifrado son llevados a cabo por dos claves distintas y
complementarias.
A continuación explicaremos cada uno de estos sistemas
Sistemas de clave única o métodos simétricos
Esta forma de cifrado utiliza una clave secreta, denominada secreto compartido,
compartida por emisor y receptor. El receptor necesita la clave secreta para
desbloquear los datos, esto lo hace por medio de un algoritmo de cifrado. Se
denomina criptografía simétrica porque tanto para cifrar como para descifrar se
necesita la misma clave.
Dentro de los sistemas simétricos distinguimos dos tipos de algoritmos:
Cifrado por bloque:
Es aquel en el que se cifra el mensaje original agrupándolo en bloques de
tamaño fijo, por ejemplo 64 bits.
Cifrado por flujo:
Es aquel en el que se cifra el mensaje original bit a bit o byte a byte.
Por otro lado, los sistemas de cifrado simétrico presentas dos grandes
desventajas: la distribución de las claves (en un medio público, el cual puede ser
interceptado) y la dificultad de almacenar y proteger muchas claves diferentes.
Sistemas de clave pública o asimétrica
Esta forma de cifrado utiliza dos claves: una clave es secreta y una clave pública.
El mensaje lo ciframos con la clave pública del destinatario. Este puede descifrar a
continuación con su propia clave privada. La diferencia de este sistema es que
nadie necesita la clave privada de otro para poder enviar un mensaje en forma
segura. Utilizamos su clave pública, la cual no necesita mantenerse segura. Al
utilizar la clave pública del destinatario, sabemos que sólo esa persona puede
cifrar utilizando su propia clave privada.
Este sistema tiene algunas desventajas: para una misma longitud de clave y
mensaje se necesita mayor tiempo de proceso, las claves deben ser de mayor
tamaño que las simétricas y el mensaje cifrado ocupa más espacio que el original.
Por otro lado, teniendo en cuenta el tipo de operación que es usado para
transformar el mensaje original en un mensaje cifrado, podemos distinguir dos
métodos criptográficos:
Cifrado por sustitución
Este método consiste en establecer una correspondencia entre las letras del
alfabeto en el que está escrito el mensaje original y los elementos de otro
conjunto, que puede ser el mismo o distinto alfabeto. De esta forma, cada letra del
texto original se sustituye por un símbolo correspondiente en la elaboración del
criptograma. El receptor por su parte, conoce la correspondencia establecida, y
sustituye cada símbolo del criptograma por el símbolo correspondiente del alfabeto
original, recuperando así el mensaje emitido originalmente. Ejemplo:
Figura 2: Ejemplo básico de criptografía por sustitución
Con este tipo de criptografía, la frase: CASA
Pasaría a ser: FDVD
Cifrado por transposición
Consiste en reorganizar los símbolos del mensaje original colocándolos en un
orden diferente, de tal forma que el criptograma contengan los mismos elementos
del mensaje original, pero colocándolos de tal forma que resulten incomprensibles.
El receptor, con conocimiento de la transposición, organiza los símbolos
desordenados del criptograma en su posición original. Por ejemplo:
Figura 3: Ejemplo básico de criptografía por transposición
Por último, es importante señalar que el cifrado por sustitución y transposición
eran los métodos usados por la criptografía clásica.
Algoritmos de cifrado
Los algoritmos de cifrados son programas que realizan el proceso de criptografía
basándose en los tipos de cifrado. A continuación mencionaremos los algoritmos
de cifrado más usados para el proceso de encriptación.
Algoritmos criptográficos simétricos
DES (Data Encryption Standard): Es un algoritmo de cifrado por bloques
de 64 bits. Fue ideado por IBM y aceptado por el NIST (National Institute of
Standars and Technology) en 1976. Se trata de un algoritmo de 64 bits de
clave de los cuales 56 bits componen la clave de cifrado propiamente dicha,
mientras los 8 restantes son de paridad y se usan para corrección de
errores.
DES tiene como entradas, para su funcionamiento, un dato y una clave de
64 bits cada uno. Al inicio y final del algoritmo se aplican dos permutaciones
al dato que poseen la característica particular, que una es la inversa de la
otra. Luego de la aplicación de la primera permutación el dato es pasado
por dieciséis rondas de cifrado en las cuales se hace necesaria la utilización
de unas subclaves que son obtenidas a partir de la clave que se ingresa al
inicio del algoritmo, en total son dieciséis subclaves, una para cada ronda.
Al terminar el total de las rondas de cifrado se aplica la ultima permutación y
de esta manera se obtiene un dato cifrado por medio del algoritmo DES.
DES actualmente ya no es estándar criptográfico y fue roto en enero de
1999 con un sistema de cómputo que analizaba 250.000.000.000 claves por
segundo.
Su principal ventaja es la rapidez de cálculo y la sencillez de su
implementación. Sus principales desventajas son la poca longitud de clave
que maneja y la incapacidad de manejar claves de longitud variable.
Para mayor información, visitar: http://www.itl.nist.gov/fipspubs/fip46-2.htm
Triple-DES (Triple - Data Encryption Standard):dada la capacidad de
cómputo actual y la relativa facilidad que supone romper el algoritmo DES,
se desarrolló DES TRIPLE, el cual consiste en aplicar tres veces el
algoritmo DES en un orden específico. Primero se cifra el dato con una
clave, el resultado de esto es descifrado con otra clave y por último el
resultado del descifrado es cifrado nuevamente. La clave que se emplea en
este último paso puede ser la primera clave utilizada o puede ser una nueva
clave.
Mediante este sistema se obtiene un cifrado de 192 bits (168 efectivos y 24
de paridad) con tres claves que resulta mucho más complejo de vulnerar.
Para mayor información, visitar: http://en.wikipedia.org/wiki/Triple_DES
AES (Advanced Encryption Algorithm): también conocido como Rijndael,
es un esquema de cifrado por bloques adoptado como un estándar de
cifrado para el gobierno de los Estados Unidos. Actualmente es uno de los
algoritmos más populares usados en criptografía simétrica.
Este algoritmo cifra bloques de longitudes 128, 192 o 256 bits. Con la
característica que definido el tamaño del bloque, usa todas las claves de la
misma longitud. Toda la información para este algoritmo es basada en
bytes, cifra mensajes de longitudes 16, 24 o 32 bytes con claves de longitud
16, 24 o 32 bytes. Los mensajes y claves
Comentarios de: Tema: Criptografía I - Seminario - Seguridad en desarrollo del Software (0)
No hay comentarios