Criptografía Básica

14
RAMON A. ARAY LOPEZ Guía de estudio para la materia Sistemas Operativos II Sistemas Operativos Año 1 Número 1 CIENCIA ° TECNOLOGIA ° SISTEMAS ° SOFTWARE CRIPTOGRAFIA BASICA Lo que debes conocer para entender cómo proteger tus datos Definiciones de encriptado y criptografía Tipos de encriptado Clasificaciones de seguridad SISTEMAS DE CLAVE PRIVADA Y CLAVE PUBLICA Definiciones y diferencias

description

Guía de referencia sobre criptografía para la materia Sistemas Operativos II del IUP "Santiago Mariño" Sede Barcelona

Transcript of Criptografía Básica

RAMON A. ARAY LOPEZ

Guía de estudio para la materia Sistemas

Operativos II

Sistemas Operativos Año 1 Número 1

CIENCIA ° TECNOLOGIA ° SISTEMAS ° SOFTWARE

CRIPTOGRAFIA BASICA Lo que debes conocer para entender cómo proteger tus datos

Definiciones de encriptado y criptografía

Tipos de encriptado

Clasificaciones de seguridad

SISTEMAS DE CLAVE PRIVADA Y CLAVE PUBLICA Definiciones y diferencias

Sistemas Operativos Criptografía Básica 2014

Prof. Ramón A. Aray López Página 2

Objetivos

1. La autenticación: Proporciona certeza de la identidad de la fuente de la información, servicios, servidores o clientes. 2. La confidencialidad: Protege contra el descubrimiento desautorizado de la información. 3. La integridad: Protege de la alteración desautorizada de la información. 4. El No Repudio: Protege contra negar haberlo hecho.

Mecanismos

Se utilizan tres bloques básicos: El cifrado se usa para proporcionar confidencialidad, puede proporcionar autenticación y protección de integridad. Las firmas digitales se usan para proporcionar autenticación, integridad, y no repudio.

Clasificación

Si se utiliza una misma clave para cifrar y descifrar se habla de Cifrado Simétrico o de Clave Privada Si se utilizan 2 claves diferentes; una para cifrar y otra para descifrar se habla de Cifrado Asimétrico o de Clave Pública.

Sistemas Operativos Criptografía Básica 2014

Prof. Ramón A. Aray López Página 3

Definición de Clave Contraseña, password. Conjunto finito de caracteres limitados que forman una palabra secreta que sirve a uno o más usuarios para acceder a un determinado recurso. Las claves suelen tener limitaciones en sus caracteres (no aceptan algunos) y su longitud. La Real Academia aconseja utilizar "clave" o "contraseña" en vez de su equivalente en inglés, "password". Una clave que cuenta con determinadas propiedades que la hacen segura, es llamada clave fuerte. (strong password, password fuerte, clave fuerte). Características que posee una clave, que la hacen más difícil de adivinar tanto por humanos como por computadoras. Existen algunas propiedades que debería cumplir una clave para ser considerada fuerte; es más, mientras más se acentúen esas propiedades, más fuerte será la clave. La propiedad más importante para una clave fuerte es que sea lo suficientemente larga. A esto hay que agregarle que no sea evidente, que combine números y letras y, si es posible, símbolos (ciertos sistemas no permiten determinados símbolos). Mejor si no es una palabra del diccionario, y de ser posible, mayúsculas y minúsculas. La idea es que la clave no pueda ser adivinada fácilmente, ni siquiera con fuerza bruta (uso de programas para intentar miles o millones de combinaciones de caracteres por segundo, hasta descubrir la clave).

Definición de Cifrar Escribir en clave o en cifra. Transcribir en guarismos, letras o símbolos, de acuerdo con una clave, un mensaje cuyo contenido se quiere ocultar. Valorar cuantitativamente, en especial pérdidas y ganancias. Compendiar, reducir muchas cosas a una, o un discurso a pocas palabras. Reducir exclusivamente a una cosa, una persona o una idea determinadas lo que ordinariamente procede de varias causas. Cifrar la dicha en la estimación pública. Cifrar la esperanza en Dios.

Definición de Código El código es el conjunto de instrucciones que permite la codificación y descodificación de la información que se transmite de manera que pueda ser intercambiada en forma comprensible entre la fuente y el destino. En el caso puntual de la computación, podemos referirnos por un lado al código Fuente y por el otro, al código Objeto. En cuanto al primero, el código Fuente, es aquel que está compuesto por un texto basado en algún lenguaje de programación, que es entendible por los seres humanos. Es el que redactan los programadores pero que no es comprensible por la computadora ya que para eso debe ser traducido a un lenguaje máquina. El término código tiene diferentes usos y significados. Se trata, por ejemplo, de una combinación de signos que, dentro de un sistema establecido, tiene un determinado valor: “El programador tendrá que corregir el código del software para que funcione de manera correcta”. En el caso de la informática, se conoce como código fuente al texto

Sistemas Operativos Criptografía Básica 2014

Prof. Ramón A. Aray López Página 4

desarrollado en un lenguaje de programación y que debe ser compilado o interpretado para poder ejecutarse en una computadora. Por otra parte, un código es una cifra o combinación de caracteres para formular y comprender mensajes secretos: “Los historiadores tratan de descifrar el código utilizado por los nazis para intercambiar mensajes tras la caída del Tercer Reich”. Allí aparece lo que sería el código Objeto, que es el lenguaje que descifra la máquina (formato binario) y que es originado por un compilador o ensamblador, que lo traduce a partir del código fuente. Por otro lado, también se pueden clasificar los códigos según el acceso que se tenga a su código fuente, por lo que existen códigos abiertos y cerrados. El código abierto (Open Source) es el que tiene el código fuente liberado de manera que puedas ser copiado y analizado libremente, e incluso modificado por otras personas, además del autor. Por el contrario, el código cerrado no permite este acceso al código fuente por lo que solo puede ser modificado o analizado por el autor o quienes tengan la licencia para hacerlo.

Definición de Encriptar (anglicismo) Encriptar es la acción de proteger información para que no pueda ser leída sin una clave. Sinónimos de Encriptar: cifrar, codificar. Aclaración: encriptar vs. cifrar Se prefiere el uso de la palabra "cifrar" en lugar de "encriptar", debido a que esta última es una mala traducción del inglés encrypt.

Definición de Criptografía La criptografía (del griego κρύπτω krypto, «oculto», y γράφω graphos, «escribir», literalmente «escritura oculta») es la técnica, bien sea aplicada al arte o la ciencia, que altera las representaciones lingüísticas de un mensaje.

Objetivo de la criptografía En esencia la criptografía trata de enmascarar las representaciones caligráficas de una lengua, de forma discreta. Si bien, el área de estudio científico que se encarga de ello es la Criptología. Para ello existen distintos métodos, en donde el más común es el cifrado. Esta técnica enmascara las referencias originales de la lengua por un método de conversión gobernado por un algoritmo que permita el proceso inverso o descifrado de la información.

Conceptos básicos Existen dos conceptos básicos en criptografía: algoritmos de cifrado y claves. Ambos conceptos no están indisolublemente ligados, puesto que, habitualmente, un algoritmo de cifrado admite muchas claves y una clave podría servir para muchas funciones de cifra. A continuación, se estudian breve mente ambos conceptos. Los

Sistemas Operativos Criptografía Básica 2014

Prof. Ramón A. Aray López Página 5

lectores interesados en profundizar en el tema pueden leer los libros de Denning [1992] y de Pfleeger [1997].

Algoritmos de cifrado Las funciones de cifrado y descifrado permiten cifrar y descifrar un objeto mediante la aplicación al mismo de procedimientos, generalmente repetitivos, que permiten ocultar el contenido del objeto y ponerlo en su forma original, respectivamente. Los algoritmos de cifrado son muchos y variados. En general, todo diseñador de un sistema de criptografía busca algoritmos nuevos y mejores que los existentes. Sin embargo, la mayor parte de los algoritmos convencionales de cifrado se pueden clasificar dentro de dos tipos: sustitución, es decir, cambiar el contenido del objeto original por otro, y transposición, es decir, modificar el orden del contenido del objeto original [Denning, 1982].

Los algoritmos que se basan en la sustitución de partes del texto original por otros textos del mismo o de otro alfabeto tienen como objetivo básico aumentar la confusión. Se pueden dividir en dos grandes tipos según la complejidad del algoritmo:

Monoalfabéticos. Cambian cada carácter por otro carácter o símbolo. Son muy

sencillos y se conocen desde antiguo. Los griegos y persas ya codificaban mensajes usando esta técnica. Sin embargo, el primer algoritmo con nombre es el denominado Julio César, porque se dice que fue el primero en usarlo. Es muy sencillo, pero efectivo: cada letra del original se cambia por la que está un cierto número de posiciones más adelante. César usaba un desplazamiento de tres caracteres. Ejemplo: abc -> cde.

Polialfabéticos. Cambian grupos de caracteres por otros caracteres o símbolos

dependiendo de la frecuencia de su distribución en el texto original [1961]. Ejemplo: abc -> 112233.

El objetivo de estos algoritmos es evitar un defecto de los monoalfabético que hace aparente la distribución del alfabeto del objeto original a partir del estudio d objeto codificado. El código Morse es un ejemplo muy sencillo de algoritmo polialfabético en el que cada carácter se sustituye por una secuencia de puntos y líneas. Los algoritmos de transposición o permutación reordenan la estructura interna del objeto original para obtener un objeto cifrado cuya estructura no es aparente. Los algoritmos más populares de este tipo son los de transposición por columnas, que reordenan el objeto en columnas forma que un cierto número de elementos (número de columnas) se agrupan y luego se reordenan aplicando el algoritmo de cifrado (p. ej.: transposición de columnas). Como ejemplo, el nombre “Julio Cesar”, organizado en 4 columnas y transpuesto sería: Juli o Ce sar “Josu alCrie”

Sistemas Operativos Criptografía Básica 2014

Prof. Ramón A. Aray López Página 6

Además de la clasificación anterior, los algoritmos de cifrado se pueden clasificar atendiendo al conjunto de datos sobre el que trabajan. Existen dos tipos básicos: * Flujo de Caracteres. * Bloques.

Flujo de Caracteres: Convierten la entrada inmediatamente en código cifrado. La

transformación depende únicamente del símbolo de entrada, la clave y el algoritmo de cifrado. Son rápidos y tienen muy poca propagación de error. Sin embargo, son susceptibles de sufrir modificaciones o inserciones en línea. El código Morse es de este tipo.

Bloques: Trabajan sobre un bloque completo del objeto original. Una

transposición por columnas es un ejemplo de este tipo de algoritmos. Generan mucha difusión y son inmune a inserciones en el bloque. Sin embargo, tienen el problema de ser lentos y de propagar posibles errores a todo el bloque. Hay sistemas de archivos que codifican bloques antes de guardarlos en disco. Con el incremento de la capacidad de cómputo que se produjo en la década de los setenta, se abordaron problemas de criptografía más complejos. Como resultado de este trabajo, a finales esa década se publicaron tres nuevos algoritmos basados en la realización de cálculos masivos por computadora: El de Merkle-Hellman, que se basaba en el uso de un conjunto de enteros positivos y una suma objetivo. Es un algoritmo NP-completo, por lo que el tiempo de solución es exponecial al número de enteros usados. Desafortunadamente, a principios de la década de los 80 se encontró una forma de romper este algoritmo de cifrado. • El RSA, que fue inventado en 1978 y ha sido seguro hasta la fecha. Tiene los mismos fundamentos matemáticos que el anterior pero incorpora resultados de la teoría de grandes números y la determinación de números primos. Su implementación de software proporciona un rendimiento muy pobre, por lo que es muy frecuente el uso de hardware que lleva a cabo el cifrado con este tipo de algoritmo. • El Data Encryption Standard (DES) fue desarrollado por el U. S. National Institute Standards and Technology para su uso en aplicaciones comerciales [1977]. Este algoritmo combina sustitución y transposición, aplicando ambas repetidamente con un total de 16 ciclos. Para ello usa únicamente aritmética estándar y operaciones lógicas, lo que permite su implementación en cualquier computadora. A pesar de la complejidad de trazar un bit a través de 16 iteraciones de sustituciones y transposiciones, el DES ya no es un algoritmo seguro. Además ha sido cuestionado por tener debilidades en su diseño, claves muy cortas (56 bits) y por posibilitar la existencia de puertas traseras que permitirían a la National Security Agency (NSA) descifrar cualquier objeto cifrado con este algoritmo. A pesar de todo es un algoritmo muy popular y varias versiones del mismo son ampliamente usadas en la actualidad. Además, para reforzar la seguridad del algoritmo se ha incrementado la longitud de la clave.

Sistemas Operativos Criptografía Básica 2014

Prof. Ramón A. Aray López Página 7

En 1993, el gobierno de los Estados Unidos de América anunció el programa Clipper, que incluye un conjunto de algoritmos de criptografía conocido como Skipjack. El algoritmo se mantiene en secreto, pero se sabe que se basa en un nuevo concepto de cifrado denominado escrutinio de claves Denning, 1961. La clave se divide en varios componentes, cada uno de los cuales está en poder de una agencia autorizada. Todos los componentes son necesarios para descifrar un objeto, de manera que es necesario pedirlos a las respectivas agencias autorizadas. Este método, aunque muy seguro, fue muy mal recibido en su momento porque las agencias autorizadas eran del gobierno y hubo muchas quejas respecto al control gubernamental de las comunicaciones privadas.

Claves Un concepto básico en criptografía es el de clave. La clave (k) es el patrón que usan los algoritmos de cifrado y descifrado para manipular los mensajes en uno u otro sentido. Aunque existen sistemas criptográficos que no usan clave (keyless cipher), el uso de claves añade más seguridad a los mecanismos de cifrado porque con distintas claves se pueden obtener distintos mensajes cifrados usando la misma función de cifrado. De esta forma, para romper un sistema de cifrado es necesario conocer tanto las funciones correspondientes como la clave usada para cifrar un determinado objeto. Obviamente, es necesario tener sistemas de criptografía en los que siempre se pueda recuperar el objeto original a partir del objeto cifrado (o=D (k, E (k, O))). Sin embargo, dependiendo de los pasos a aplicar para ejecutar el proceso, los sistemas de criptografía se pueden clasificar en dos tipos básicos: Simétricos. En este caso, D es la función inversa de E y las clave usada en ambos casos es la misma. También se denominan sistemas de clave privada. Puesto que ambos comparten la clave, pueden trabajar de forma independiente. La simetría del proceso es muy útil siempre que se mantenga e1 secreto, ya que en ese caso se puede usar la clave como medio de autenticación. Sin embargo, estos métodos tienen problemas asociados con la filtración de las claves, su distribución, su debilidad criptográfica y el número creciente de claves. Asimétricos. En este caso existen claves distintas para cifrar y descifrar y la función de descifrado no es exactamente inversa a la de cifrado (o=D (Kd, E (Ke, O))). La asimetría permite reducir el número de claves a intercambiar entre los participantes en el proceso de cifrado.

Sistemas de clave privada y sistemas de clave pública Los sistemas de clave privada se basan en la ocultación de la clave de cifrado [1982. Se supone que la clave es conocida únicamente por el usuario que cifra el objeto original. Estos sistemas, que se han usado convencionalmente, ejecutan el cifrado (E) aplicando la clave (k) al objeto origen (o) para obtener el objeto cifrado (c): C = E (k, o)

Sistemas Operativos Criptografía Básica 2014

Prof. Ramón A. Aray López Página 8

El problema de estos sistemas es que para que alguien descifre el objeto cifrado debe conocer la clave con que está cifrado. Hay dos soluciones para ese problema: • Propagar la clave. • Recodificar y añadir nuevas claves. Imagine ahora que se desea que tres procesos (A, B y C) compartan objetos cifrados. Distribuir a todos ellos la misma clave propagando la clave original no parece muy seguro. Es mejor que cada par de procesos, por ejemplo A y B, compartan una clave kAB para cifrar sus interacciones. Lo mismo debería hacerse para las interacciones (A, C) y (B, C). En general, para n usuarios serían necesarias (n-1) /2 claves, lo que hace que para un número grande de usuarios sea muy difícil mantener claves confidenciales y con buenas características, debido principalmente a dos problemas básicos: Es necesario tener una base de datos de claves almacenadas en un sistema seguro, por la imposibilidad de recordar todas ellas. Estos sistemas violan el principio de diseño que recomienda mostrar al exterior lo más posible para evitar la curiosidad y los ataques de usuarios dispuestos a romper la seguridad del sistema. El sistema DES (Data Encription Standard) es el más popular de los de clave privada. Para resolver los problemas de propagación de claves, Diffie y Helman [1977] propusieron un sistema de cifrado con clave pública, en el que cada usuario tiene una clave de cifrado que puede conocer todo el mundo. De esta forma cada usuario puede publicar su clave de cifrado para que cualquiera pueda enviar un mensaje cifrado con dicha clave. Sin embargo, cada usuario tiene también una clave de descifrado secreta o privada. En cierta forma, éste es un sistema de cifrado de sentido único, donde cada usuario tiene un par de claves kpR pública y privada, respectivamente. Ambas claves permiten aplicar sobre un objeto, o, los algoritmos de cifrado, E, y de descifrado, D, de la siguiente manera: O = D (kpR, E O)) O = D E (KPR, ))

Es decir, se puede descifrar con la clave privada algo cifrado con la clave pública y se puede descifrar algo cifrado con la clave privada sólo si se dispone de la clave pública. Estas dos propiedades implican que ambas claves se pueden aplicar en cualquier orden. Con este método sólo se necesitan dos claves para cualquier número de usuarios: clave pública y privada. Cualquier proceso A puede enviar a B mensajes cifrados con la clave pública de B. Sólo el proceso B podrá descrifrar el mensaje, ya que es el único que posee la clave privada, necesaria para descifrar el mensaje cifrado con la clave pública. Este método asegura la confidencialidad, puesto que aunque un intruso obtenga el mensaje cifrado, no podrá descifrarlo. Además, soluciona los dos problemas principales de los sistemas de clave privada: • No es necesario intercambiar claves para poder comunicarse con un servidor de forma segura. • Muestran lo más posible al exterior, evitando que los intrusos tengan curiosidad por conocer las claves de los servidores.

Sistemas Operativos Criptografía Básica 2014

Prof. Ramón A. Aray López Página 9

Se han propuesto varios algoritmos de cifrado con clave pública: Merkle-Hellman Knapsacks, RSA, Hash, DAS, etc. [1996. Todos ellos han sido objeto de extensas investigaciones criptográficas que han conducido a la rotura de varios de ellos, como ocurrió con el algoritmo de Merkle-Hellman. El más popular es el RSA (Rivest-Shamir-Adelman), que fue presentado en 1978 y que se mantiene seguro hasta el momento. Este algoritmo usa operaciones de grandes números y dos claves, para cifrar (c) y descifrar (d). Cada bloque B se codifica como Bc mod n. La clave de descifrado se elige cuidadosamente de forma que (Bc) d mod n = B. Por tanto, el receptor legítimo del bloque, al conocer d, sólo tiene que llevar a cabo esa operación. Para cualquier otro usuario sería muy difícil calcular potencias del bloque cifrado hasta encontrar d puesto que el tiempo de cómputo es exponencial. Una variante de los algoritmos de clave pública son las firmas digitales, que se usan para realizar autorizaciones en un entorno de computación donde no hay objetos tangibles (ej.: la pupila o la firma) para identificar al usuario. El sistema DSS (Digital Signature Standard), publicado en 1991, se basa en el algoritmo de firma digital de El Gamal. Una firma digital es un protocolo que produce el mismo efecto que una firma real. Es una marca que sólo el dueño puede proporcionar, pero que otros pueden reconocer fácilmente como perteneciente a dicho usuario. Se puede implementar mediante: Sistemas de clave privada, donde la posesión de la clave garantiza la autenticidad del mensaje y su secreto. • Sistemas de sello, donde no es necesaria una clave. Se puede hacer que el usuario tenga un sello que lo identifique, que puede ser una función matemática o una tarjeta electrónica con información grabada en la banda magnética. • Sistemas de clave pública, donde la posesión de la clave de descifrado hace que sólo el receptor adecuado pueda descifrar un mensaje cifrado con su clave pública. Una firma digital debe ser auténtica, no falsificable, no alterable y no reusable. Para satisfacer estos requisitos, las firmas digitales pueden incluir sellos con fechas y números de orden o números aleatorios. Los detalles relativos a firmas digitales se pueden estudiar en [1997].

CLASIFICACIONES DE SEGURIDAD La clasificación de los sistemas de computación según sus requisitos de seguridad ha sido un tema ampliamente discutido desde los años setenta. La disparidad de criterios existentes se ha ampliado más con la conexión de las computadoras para formar redes de computación que pueden compartir recursos. Algunas de las clasificaciones existentes en la actualidad son la clasificación del Departamento de Defensa (DoD) de los Estados Unidos de América, el criterio alemán, el criterio canadiense, el ITSEC o el criterio común. La última clasificación ha sido definida conjuntamente en Estados Unidos y Canadá, siendo publicada su primera versión en 1994. Es un sistema complejo que todavía está en fase de elaboración y discusión, por lo que hay muy pocos sistemas comerciales que se ajusten a

Sistemas Operativos Criptografía Básica 2014

Prof. Ramón A. Aray López Página 10

esta norma. Sin embargo, es importante resaltar que tiene grandes posibilidades de convertirse en un estándar.

Clasificación del Departamento de Defensa (DoD) de Estados Unidos Una de las clasificaciones más populares es la del Orange Book del Departamento de Defensa (DoD) de Estados Unidos [ 19851. Esta clasificación especifica cuatro niveles de seguridad: A, B, C y D. A continuación, se describen estos niveles de seguridad y las características de cada uno. Nivel D. Sistemas con protección mínima o nula: No pasan las pruebas de seguridad mínima exigida en el DoD. MS-DOS y Windows 3.1 son sistemas de nivel D. Puesto que están pensados para un sistema monoproceso y monousuario, no proporcionan ningún tipo de control de acceso ni de separación de recursos. Nivel C. Capacidad discrecional para proteger recursos: La aplicación de los mecanismos de protección depende del usuario, o usuarios, que tienen privilegios sobre los mismos. Esto significa que un objeto puede estar disponible para lectura, escritura o cualquier otra operación, según el libre albedrío de su dueño. Casi todos los sistemas operativos comerciales de propósito general, como UNIX, LINUX o Windows NT, se clasifican en este nivel. Este nivel se divide a su vez en dos subniveles, dependiendo de la precisión del control de acceso:

Clase C1. Control de acceso por dominios. No hay posibilidad de establecer qué elemento de un determinado dominio ha accedido a un objeto. UNIX pertenece a esta clase. Divide a los usuarios en tres dominios: dueño, grupo y mundo. Se aplican controles de acceso según los dominios, siendo todos los elementos de un determinado dominio iguales ante el sistema de seguridad.

Clase C2. Control de acceso individualizado. Granularidad mucho más fina en el control de acceso a un objeto. El sistema de seguridad del ser capaz de controlar y registrar los accesos a cada objeto a nivel de usuario. Windows NT pertenece a esta clase. Nivel B. Control de acceso obligatorio: En este nivel, los controles de acceso no son discrecionales de los usuarios o dueños de los recursos, sino que deben existir obligatoriamente. Esto significa que todo objeto controlado debe tener protección, sea del tipo que sea. En caso de que el dueño no defina cuál, el sistema de seguridad asigna una por defecto. Este nivel se divide a su vez en tres subniveles:

Clase Bi. Etiquetas de seguridad obligatorias. Cada objeto controlado debe tener su etiqueta de seguridad. Pueden existir objetos no controlados. Este modelo de seguridad se ajusta al de Bell-La Padula.

Sistemas Operativos Criptografía Básica 2014

Prof. Ramón A. Aray López Página 11

Clase B2. Protección estructurada. Todos los objetos deben estar controlados mediante un sistema de seguridad con diseño formal y mecanismos de verificación. Estos mecanismos permiten probar que el sistema de seguridad se ajusta a los requisitos exigidos. Controles obligatorios, y asignados según el principio del menor privilegio posible, para objetos, sujetos y dispositivos.

Clase B3. Dominios de seguridad. B2 ampliado con pruebas exhaustivas para evitar cana les encubiertos, trampas y penetraciones. Diseño probado y verificado, que usa niveles, abstracciones de datos y ocultamiento de información. El sistema debe ser capaz de detectar intentos de violaciones de seguridad, para ello debe permitir la creación de listas de control de acceso para usuarios o grupos que no tienen acceso a un objeto. Nivel A. Sistemas de seguridad certificados: Para acceder a este nivel, la política de seguridad y los mecanismos de protección del sistema deben ser verificados y certificados por un organismo autorizado para ello. Organismos de verificación muy conocidos son el National Computer Security Center o el TEMPEST.

Clase Ai. Diseño verificado. Clase B 1 más modelo formal del sistema de seguridad.

La especificación formal del sistema debe ser probada y aprobada por un organismo certificador. Para ello debe existir una demostración de que la especificación se corresponde con el modelo, una implementación consistente con el mismo y un análisis formal de distintos problemas de seguridad. El Vax Security Kernel pertenece a esta clase.

Clase Ax. Desarrollo controlado. Al más diseño con instalaciones y personal controlados. Formas de control no definidas. Se podrían incluir requisitos de integridad de programas, alta disponibilidad y comunicaciones seguras.

Técnicas de cifrado tradicionales

Cifrado por Sustitución Consiste en remplazar un símbolo por otro según determinada clave.

Ejemplo: Sistema de Julio de Cesar A B C D E F G ...... Alfabeto de Entrada D E F G H I J ..... Alfabeto de Salida Ejemplo: Sea K= la clave de cifrado (K=3) CADA=FDGD

Sistemas Operativos Criptografía Básica 2014

Prof. Ramón A. Aray López Página 12

L T I A O A O A L M C G H M E R R A U J I A C N O P F E D R

Cifrado por Transposición

El objetivo no es sustituir sino cambiar el orden en que aparecen los caracteres del texto plano en el texto cifrado.

Cifrado Simétrico Algoritmos DES (Digital Encryption Standard)

Clave de 56 bits Þ Espacio de claves = 256

Realiza una serie de operaciones de permutación, sustitución y recombinación en bloques de 64 bits

3DES

Consiste en encadenar 3 etapas DES

Clave de 112 bits Blowfish

Optimizado para alta velocidad de ejecución

Llave de 448 bits CAST 128

Utilizada en PGP 5.x

Llave de 128 bits AES (Advanced Encryption Standard)

Norma de cifrado actual del gobierno norteamericano

En realidad AES son solo siglas. El protocolo de cifrado se llama Rijndael

Reemplazo para el DES

RC5

Disponible para cifradores en hardware y software

Sistemas Operativos Criptografía Básica 2014

Prof. Ramón A. Aray López Página 13

El tamaño de la clave puede ser variado

Simple

Bajo requerimiento de memoria

Rotaciones dependientes de la data a cifrar

IDEA (International Data Encryption Algorithm)

Cifra mensajes que son picados en bloques de 64 bits

Clave de 128 bits Þ Espacio de claves = 2128

Algoritmos de Llave Simétrica Data Encryption Standard (DES)

El DES nació como consecuencia del criptosistema LUCIFER, creado por Horst Feistel quien trabajaba en IBM, este criptosistema trabajaba sobre bloques de 128 bits, teniendo la clave igual longitud .

Tras las modificaciones introducidas por el NSA (National Security Agency), consistentes básicamente en la reducción de la longitud de clave y de los bloques, DES cifra bloques de 64 bits, mediante permutación y sustitución y usando una clave de 56 bits.

Funcionamiento El algoritmo codifica bloques de 64 bits empleando claves de 56 bits.

Esta constituido por:

Dos permutaciones, una que se aplica al principio (Pi) y otra que se aplica al final (Pf), tales que Pi =Pf1

Red de Feistel de 16 rondas

El manejo de las claves se realiza manipulando un valor inicial de 64 bits hasta obtener una clave por cada ronda (K1..K16) de 48 bits

Se obtiene 64 bits de texto cifrado

Cifrado Asimétrico: Reglas de Juego

El sistema funciona con un par de claves, una para cifrar y otra para descifrar

Una clave es secreta y nunca es transmitida

La otra clave es pública y puede ser difundida por la red sin peligro

Si un documento es cifrado Si un documento es cifrado con una clave solo puede ser descifrado con su pareja

Si un documento puede ser descifrado satisfactoriamente con una clave solo puede haber sido cifrado con su pareja

Sistemas Operativos Criptografía Básica 2014

Prof. Ramón A. Aray López Página 14

RSA (RivestShamirAdleman), 1977

Firmas Digitales y Cifrado en un solo algoritmo

La patente expiró en el año 2000

El texto plano es cifrado en bloques

Matemáticamente basado en los teoremas de Euler y Fermat

Es el protocolo más utilizado para cifrado asimétrico

La fortaleza se basa en la imposibilidad de obtener una clave teniendo la otra

Referencias Bibliográficas Mayol Arnao Reinaldo. Criptografía Básica, Centro de Tecnologías de Información. Universidad de Los Andes, Año 2006. Tenenbaum Andrew S., Sistemas Operativos Distribuidos, Prentice Hall Hispanoamérica. Primera Edición, Año 1996. Stallings William, Sistemas Operativos, Prentice Hall Hispanoamérica. Segunda Edición, Año 1997. Silberschatz Galvin, Sistemas Operativos, Pearson Education. Quinta Edición, Año 1999.