Criptografía

Autentificación. Seguridad. Hackers. RSA. Teoría de Shannon. Seguridad Computacional. Entropía. Criptoanálisis. Criptosistemas

  • Enviado por: Andrea Fox
  • Idioma: castellano
  • País: Perú Perú
  • 5 páginas
publicidad

CRIPTOGRAFIA DE SISTEMAS DE INFORMACIÓN

Universidad Particular Andina del cusco

Lino Flores Pacheco

INTRODUCCION

Seguridad de datos en las bases de datos

La información almacenada en las bases de datos, debe estar protegida contra acceso no autorizado con fines indebidos, destrucción y la introducción de inconsistencia.

La perdida accidental de la consistencia de datos puede deberse a:

- Caídas durante el procesamiento de las transacciones.

- Anomalías por acceso concurrente a la base de datos.

- Anomalías que resultan de la distribución de los datos entre varios computadores.

- Un error lógico que viola la suposición de que las transacciones respetan las protecciones de consistencia de la base de dato.

Es mas fácil prevenir la perdida accidental de la consistencia de los datos que prevenir el acceso mal intencionado a la base de datos. Algunas de las formas de acceso indebido son las siguientes:

- Lectura de datos sin autorización (robo de información).

- Modificación de datos sin autorización.

- Destrucción no autorizada de los datos.

No es posible proteger de manera absoluta a la base de datos contra un manejo indebido, pero puede hacerse que el coste para el autor sea tan alto que frene prácticamente todos los intentos de acceder a la base de datos sin la autorización debida. El termino seguridad en la base de datos normalmente se refiere a la protección contra el acceso mal intencionado, mientras que integridad se refiere a la protección contra una perdida accidental de consistencia.

Es posible que todas las precauciones que tome la base de datos para evitar el acceso sin autorización no sean suficientes para proteger los datos muy importantes, en casos como estos, la información puede cifrarse, así, no es posible leer datos cifrados a menos que el lector sepa como descifrar la información.

Las buenas técnicas de cifrado tienen las siguientes propiedades:

- Para los usuarios autorizados es relativamente sencillo cifrar y descifrar datos.

- El esquema de cifrado no depende de mantener en secreto el algoritmo, sino de un parámetro del algoritmo llamado clave o clave de cifrado.

- Para un intruso es muy difícil determinar cual es la clave de cifrado.

Seguridad de los teleprocesamientos

Cuando existe información que puede ser accesada por personas en terminales remotas, es necesario prevenir contra personas no autorizadas, las cuales no pueden modificar ni leer información alguna. Una de las formas de proteger la información es como se explica en el acapite anterior, y otra es que al accesar a la información se encripte, y se envíe al usuario remoto la información encriptada, pudiendo este descifrado únicamente conociendo la llave de decriptación.

Internet, es un ejemplo de teleprocesamiento, en la cual no exite seguridad, a menos que uno mismo realice algún proceso para tenerlo.

CRIPTOSISTEMAS

Introducción

Un criptosistema, es un sistema que toma información, legible, intelegible para convertirlo en información no legible, inintelegible, o no entendible.

Definición

Un criptosistema es una qintupla (P,C,K,E,D) que satisface las siguientes condiciones:

i. P es el conjunto finito de posibles textos originales o base.

ii. C es el conjunto finito de posibles textos cifrados o codificados.

iii. K es el espacio de llaves, es decir, un conjunto finito de posibles llaves.

iv. Para cada k"K, existe una regla de encriptación ek"E y su correspondiente regla de decriptación dk"D.

Si se tienen las funciones: ek : P !C y dk : C!P

luego se cumple que: dk(ek(X)) = X , " X"P (para todo texto base).

La propiedad iv. es la principal, pues este nos indica que si el texto original X es encriptado usando la función ek, y el texto cifrado resultante es decriptado usando la función dk, luego el resultado será el texto original X.

CRIPTOANALISIS

Es evidente que cuando existe comunicación entre dos personas, ambos tienen la llave para encriptar y decriptar un texto, pero si ese texto es interceptado por una tercera persona, esta no conoce que tipo de encriptación se utilizó y menos la llave usada, por lo cual requiere realizar un análisis del criptosistema con el objeto de determinar la llave usada.

Para un análisis simple se supondrá que todo texto original esta compuesto de combinaciones de 26 caracteres sin contar los espacios ni caracteres especiales ni la ñ y Ñ.

Muchas técnicas de criptoanalisis están basados en el uso de propiedades estadísticas, para lo cual se estima la frecuencia relativa de los 26 letras del alfabeto español obteniéndose:

letra frecuencia probabilidad letra frecuencia probabilidad

A 8836 0.072 N 5624 0.046

B 1028 0.008 O 6557 0.054

C 4171 0.034 P 2427 0.020

D 4343 0.036 Q 433 0.004

E 9976 0.082 R 5821 0.048

F 718 0.006 S 5641 0.046

G 979 0.008 T 4346 0.036

H 490 0.004 U 2827 0.023

I 6238 0.051 V 767 0.006

J 529 0.004 W 605 0.005

K 312 0.003 X 653 0.005

L 3794 0.031 Y 642 0.005

M 2588 0.021 Z 302 0.002

en ésta tabla se puede observar que:

1. E tiene la probabilidad de 0.082

2. A tiene la probabilidad de 0.072

3. O, I, R, N, y S, tienen probabilidad entre 0.04 y 0.05

4. D, T, C, L, U, M, y P tienen probabilidad entre 0.02 y 0.03

5. B, G, F, V, W, X, Y, H, J, Q, K, y Z tienen probabilidad menor que 0.01

luego, se puede conocer los caracteres de un texto encriptado, asi mas adelante podemos identificar palabras frases y oraciones, para finalmente obtener el texto original.

TEORIA DE SHANNON

EL SECRETO PERFECTO

Existen dos conceptos básicos sobre seguridad de un criptosistema, estos son los mas discutidos:

SEGURIDAD COMPUTACIONAL

Este modelo consiste en el esfuerzo computacional requerido para romper un criptosistema. Se puede definir un criptosistema como seguro computacional, si el mejor algoritmo para romperlo requiere N operaciones como máximo, donde N es un número grande. El problema es que no es conocido un criptosistema práctico que puede ser probado para ser seguro bajo esta definición.

En la practica, la gente llama a un criptosistema “seguro computacional” si el mejor método para romper el ciptosistema, requiere un irrazonable tiempo grande de uso de un computador (este concepto es diferente a probar la seguridad). Otra aproximación es proveer evidencia de la seguridad computacional mediante la reducción de la seguridad del criptosistema a algún problema conocido o bien estudiado.

Por ejemplo, puede ser capaz de probar una declaración del tipo “dado un criptosistema, este es seguro si dado un número entero n no es factorizable”, cryptosistemas de este tipo son frecuentemente llamados “probablemente seguros”, pero esto puede ser entendido como una aproximación, solo provee una prueba de seguridad relativa para otros problemas, no una prueba absoluta de seguridad.

SEGURIDAD INCONDICIONAL

Esta medida concierne a la seguridad del cryptosistema, se da cuando una tercera persona no puede entrar en el sistema computacional. Un criptosistema es definido para ser un seguro incondicional si no puede ser roto, aun con un recurso computacional infinito.

La idea es que un criptosistema debe ser seguro aun si alguien se puede colar o intersectar a nuestro sistema, y no pueda romper el criptosistema conociendo solo el texto encriptado.

La seguridad incondicional obviamente no puede ser estudiado desde el punto de vista de la complejidad computacional, pues aun para nosotros el tiempo de computación es infinita. La forma de trabajo para estudiar un la seguridad incondicional, es utilizando la teoría de probabilidades, pues los parámetros tomados no son muy complejos.

Definición

Un criptosistema se dice que tiene el secreto perfecto si pp(x|y) = pp(x) " x"P, " y"C. Esto es, la probabilidad de el texto original x dada la probabilidad del texto encriptado y es idéntico a la probabilidad del texto original x.

ENTROPIA

El concepto de entropia fué introducido por Shannon en 1948. La entropia representa la incertidembre media en la ocurrencia de cada símbolo en un paquete de información.

Definición

Supongamos que X es una variable aleatoria la cual toma un conjunto finito de valores de acuerdo a la distribución de probabilidad p(X). Luego la entropia de esta distribución de probabilidad esta definida por:

n

H(X) = " pi log 2 pi

i=1

si los valores posibles de X son xi con 1"i"n, luego se tiene:

n

H(X) = "  p(X=xi) log 2 p(X=xi)

i=1

ENCRIPTACION ESTANDAR DE DATOS (DES)

Introducción

Puesto que los computadores pueden ser utilizados para descubrir rápidamente criptosistemas ingenuos, deberían utilizarse algoritmos de cifrado, que no tengan debilidades estadísticas y matemáticas, y que sean computacionalmente imposibles de descubrir con el fin de hacer que el intento de quebrantarlos consuma un tiempo prohibitivo. Al mismo tiempo, la complejidad computacional del cifrado y descifrado debería ser razonable ya que representa recargos de procesamiento que incrementan los retardos de comunicación.

Un algoritmo que se cree proporciona un compromiso razonable entre estas exigencias es la norma de Encriptacion Estandar de Datos (DES, Data Encryption Standard).

DES originalmente fue desarrollado por IBM como una modificación al conocido sistema LUCIFER, y fue adoptado como norma NBS (National Bureau of Standards) en enero de 1977.

DESCRIPCION DE LA ENCRIPTACION ESTANDAR DE DATOS (DES)

El algoritmo DES, trabaja sobre bloques de 64 bits (8 bytes) de entrada a la vez (texto original), usando una llave de 56 bits suministrada por el usuario, obteniéndose un texto encriptado de 64 bits. El espacio de claves contiene 256 posibles combinaciones. Cada bit del bloque de salida es una función compleja de cada bit del bloque de entrada y cada bit de la clave.

DES es un criptosistema simétrico, de modo que el testo cifrado con una clave de descifra con la misma, además que esta estructurado de modo que el proceso de descifrado es exactamente el inverso del proceso de cifrado.

El algoritmo que describe este sistema tiene tres pasos, descritos de la siguiente manera:

1. Dado un texto original x, la cadena de bits inicial x0 es construido mediante la permutación de bits de x de acuerdo a la permutación inicial IP.

Esto es, x0 = IP(x) = L0R0 donde L0 comprende los 32 primeros bits de x0 y R0 los últimos 32 bits.

2. Se calcula 16 iteraciones de Li y Ri (1"i"16) de acuerdo a las siguientes relaciones:

Li = Ri-1

Ri = Li-1 " f(Ri-1, Ki)

donde " denota la operación entre bits de o-exclusivo (XOR), f es una función que describiremos mas adelante, y K1, K2, ... K16 es cada cadena de 48 bits calculadas como función de la clave K, estos son llamados esquema de llaves.

3. Aplicando la permutación inversa IP-1 a la cadena de bits R16 L16, obteniéndose el texto encriptado y. Esto es,

y = IP-1(R16 L16)

Se debe notar que se invertio el orden de L16 y R16.

EL SISTEMA RSA

INTRODUCCION A LA CRIPTOGRAFIA CON LLAVE PUBLICA

Uno de los usos importantes de la criptografia es proporcionar seguridad de comunicación de mensajes sobre canales inseguros, tales como seguridad de comunicación de mensajes sobre canales inseguros, tales como las redes de computadoras. Los criptosistemas convencionales requieren que se utilice la misma clave o llave para encriptar y decriptar (cifrar o descifrar). En consecuencia, se supone que la llave es secreta y compartida únicamente entre un emisor y un receptor. Esto da lugar a la cuestión de la distribución segura de la clave sobre canales inseguros, especialmente entre dos entidades que se comunican por primera vez. Las soluciones clásicas a este problema tienden a ser complicadas. Pueden requerir que las claves se distribuyan fuera del sistema, por ejemplo utilizando correos, o depender de la existencia de una autoridad central fiable.

Una alternativa interesante y atractiva a la distribución de claves es la proporcionada por los sistemas criptograficos de claves publicas. Tales sistemas son asimétricos, es decir, utilizan una clave para cifrado y otra diferente para descifrado.

Los algoritmos de clave publica se basan en el uso de una transformación de cifrado publica, E, y una transformación de descifrado privada, D. Para cada usuario A la transformación privada es DA se describe mediante una clave privada. La clave publica EA se deduce de la clave privada utilizando una transformación unidireccional cuya inversa es excepcionalmente difícil de calcular. Las dos transformaciones están relacionadas del modo siguiente:

DA (EA (P)) = P

El descifrado se realiza utilizando la llave privada, mientras que el cifrado se realiza utilizando la llave publica.

Cuando dos entidades, A y B desean comunicar con seguridad sobre canales inseguros, proceden de la siguiente manera; el emisor busca la clave publica del receptor y la utiliza para cifrar el mensaje

C = EB (P)

el receptor B descifra el mensaje utilizando su clave privada. El resultado es:

DB (C) = DB (EB (P)) =P

el secreto se mantiene ya que solo B conoce su clave privada y puede descifrar el mensaje.

En teoría, el conocimiento de EB no puede ser utilizado por un intruso para deducir DB.

La idea de un sistema de clave pública fue planteada por Diffie y Hellman en 1976 y realizada por primera vez en 1977 por Rivest, Shamir y Adleman quienes inventaron el criptosistema conocido RSA.

Para describir la manera de trabajo del RSA, se requiere dos conceptos fundamentales, los cuales se plantean a continuación.

CRIPTOSISTEMA RSA

Uno de los algoritmos de clave publica mas ampliamente utilizado fue inventado por un grupo de investigadores del MIT, Rivest, Shamir y Adelmar, el nombre del algoritmo esta formado por sus iniciales RSA.

Este criptosistema, realiza todos sus cálculos en n donde n=pq, con p, q primos distintos, y la relación siguiente se cumple: (n) = (p-1)(q-1)

Definición

Sea n = pq, donde p y q son primos.

Sea P = C = n y K se define como K = {(n,p,q,a,b) : n=pq, p, q primos, ab"1 (mod (n)) }

Para K=(n,p,q,a,b) se define las funciones de encriptación y decapitación como:

ek(x) = xb mod n

y dk(y) = ya mod n

donde x, y "n.

Los valores de n y b son públicos, y los valores de p, q, a son secretos.

Verifiquemos si las funciones de encriptacion y decriptación son inversos. Se tiene que:

ab " 1 (mod (n))

luego ab = t (n) + 1 para todo entero t " 1.

supongamos que x"n*, luego tenemos:

(xb)a " x t (n) + 1 (mod n)

" (x (n) ) t x (mod n)

" 1t x (mod n)

" x (mod n)

por tanto las dos operaciones son inversas.

IMPLEMENTACION DEL RSA

Para tener buena seguridad, los números primos p y q deben tomarse mas o menos con 100 dígitos, así n tendrá mas de 200 dígitos. Antes era frecuentemente usado implementaciones en hardware de RSA con 512 bits, pues un modulo de 512 bits corresponde a aproximadamente 154 dígitos decimales, en la actualidad, en estudios recientes en los laboratorios de la RSA, sobre tamaños adecuados para llaves, se estable que el tamaño de 768 bits permite tener una seguridad personal muy adecuada, mientras que para una empresa o corporación es recomendada 1024 bits, y 2048 bits para instituciones que requieren extrema seguridad tales como ministerios de defensa entre otras. Se ha calculado que una llave de 768 bits es seguro por lo menos hasta el año 2004.

Las implementaciones por software en general son mas lentas que las implementaciones por hardware. Existen implementaciones por software que operan a 21.6 Kbits por segundo con un modulo de 512 bits y 7.4 Kbits por segundo con un modulo de 1024 bits. Por otra lado, las implementaciones por hardware llagan a mas de 300Kbits por segundo con modulo de 512 bits.

BIBLIOGRAFIA

1. Stinson, Douglas R. “Criptography: Theory and Practice”

2. Stallings, williams. “Network and Internetwork Security: Principles and Practice”

3. Koblitz, Neal. “Teoria de Encriptacion”

4. Andrew Tanembaum. “Computer Networks”