Monografias.com > Sin categoría
Descargar Imprimir Comentar Ver trabajos relacionados

Encriptación de la Información (página 3)




Enviado por Pablo Turmero



Partes: 1, 2, 3

Monografias.com

Criptografía de Clave Pública
(Algoritmos asimétricos)
A diferencia de los algoritmos simétricos,
ahora vamos a disponer de 2 tipos de claves (por cada usuario) :
– Clave pública
– Clave privada

La clave pública la conoce todo el mundo y la privada es secreta y va ligado a un usuario.

Es imposible (ó muy difícil) deducir la clave secreta a partir de clave pública.

Monografias.com

Criptografía de Clave Pública
Usuario A
Usuario B
E (M)
KPB
D (E (M) ) = M
KPB
KSB
Usuario A
Usuario cualquiera
E (M)
KSA
D (E (M) ) = M
KSA
KPA
Confidencialidad :
Firma digital (autenticación):

Monografias.com

Comparativa entre Simétrica y Asimétrica
¿ Qué es lo deseado ?
Combinar la velocidad con la seguridad
? Criptosistemas híbridos

Monografias.com

Criptografía de Clave Pública
El algoritmo más conocido es el RSA

Fue desarrollado en 1977. (Rivest, Shamir, Adleman)

Actualmente es el primer sistema criptográfico y el mas utilizado.

Podemos cifrar y firmar digitalmente.

RSA

Monografias.com

Algoritmo RSA

Generación de claves

Seleccionar dos números primos grandes, p y q, (típicamente mayores que 10100).

2. Calcular:
n = p x q

z = (p-1) x (q-1) (f de Euler)

Este algoritmo se basa en principios de la teoría de números.

Monografias.com

Generación de la Clave Publica

3. Seleccionar un número e:
– Coprimo con z
– Menor que z

Exponente de la clave publica

Monografias.com

Monografias.com

Generación de la Clave Privada

3. Seleccionar un número d:
– e*d = 1 mod z
– de-1 divide a f(n)

Exponente de la clave privada

Monografias.com

Monografias.com

Monografias.com

Criptografía de Clave Pública
RSA
Funcionamiento :
a. Considerar el texto plano como una cadena de bits.
Dividirlo en bloques de valor P tales que 0 = P < n. Para ello agrupar en trozos de k bits, donde 2k < n
b. Cifrar el mensaje haciendo C = Pe mod n
c. Enviar C por el canal
d. Descifrar el mensaje haciendo P = Cd mod n

Monografias.com

RSA en Haskell

Monografias.com

Codificar

Monografias.com

Descodificar

Monografias.com

Monografias.com

Criptografía de Clave Pública
RSA
Ejemplo del RSA :
P = 61
Q = 53
N = P * Q = 3233
E = 17
D = 2753
Para cifrar M :
C = E (M) = Me mod n = m17 mod 3233
Para descifrar C :
M = D (C) = Cd mod n = c2753 mod 3233

Monografias.com

Primalidad
Determinar números primos grandes de forma aleatoria.
Factorización
Encontrar la factorización de un número n como producto de factores primos.

Cálculo con números grandes
Eficiencia en las operaciones matemáticas cuando se trabaja con números grandes.

Teoría de Números
Problemas de RSA
NP-Completo
NP-Completo
Polinomial

Monografias.com

Primalidad
Test de primalidad
Criterio para decidir si un número dado es o no primo.
Test de la divisiones sucesivas.
Test de pseudoprimalidad
Criterio para decidir, con un alto grado de probabilidad, si un número dado es o no primo.
Test basado en el Teorema pequeño de Fermat.
Test de Solovay-Strassen
Test de Miller-Rabin
Teoría de Números

Monografias.com

Dado un número impar, consiste en tomar todos los números impares en el intervalo [3 .. raíz(n)] y comprobar si alguno es divisor de n.
Test de las divisiones sucesivas
Teoría de Números

Monografias.com

Obteniendo números primos grandes
Usar tablas publicadas
Rápido.
Números pequeños para objetivos criptográficos.
Generación y test
Generar números aleatorios impares de tamaño grande y aplicarles un test de pseudoprimalidad.
Teorema de Tchebycheff
La cantidad de números primos menores o iguales que N es
Teoría de Números

Monografias.com

Obteniendo números primos grandes
Generación de números aleatorios de N dígitos
Teoría de Números

Monografias.com

Obteniendo números primos grandes
Generación de primos aleatorios de N dígitos
Teoría de Números

Monografias.com

Test de pseudoprimalidad
Test de Fermat
Si n es primo, entonces para cualquier b con mcd(b,n) = 1, se tiene que:

Números de Carmichael -> son compuestos y verifican la igualdad.

Probabilidad de que un número no sea primo y pase el test:
2-k
Teoría de Números

Monografias.com

Test de pseudoprimalidad
Test de Solovay-Strassen
El método consiste en elegir K naturales 0 < b < n aleatoriamente.
Para cada uno de estos números b se calcula:
y

Si estos valores no son congruentes módulo n; entonces el número es compuesto.
O (k (log n)^3)
Probabilidad de que un número no sea primo y pase el test:
2-k
Teoría de Números

Monografias.com

Test de pseudoprimalidad
Test de Miller-Rabin
n > 2 impar.
m: impar n-1 = 2k * m ó
a: aleatorio [2, n-2]
para algún r: [1, k-1]

O (k (log n)^3)
Teoría de Números

Monografias.com

Últimos avances
Algoritmo AKS (2002)
Manindra Agrawal, Neeraj Kayal y Nitin Saxena
Departamento de Computación del Instituto de Investigaciones de Kanpur (India)
Basado en una versión simplificada del Pequeño Teorema de Fermat:

Primer algoritmo determinístico matemáticamente demostrado, de tiempo polinómico.
Las constantes de la complejidad son muchas más costosas que en los actuales algoritmos probabilísticos.
O(K(log n)^12+e)
Teoría de Números

Monografias.com

Factorización
Uno de los ataques contra el algoritmo RSA consiste en descomponer en factores primos el número n de la clave pública.

Test de las divisiones sucesivas
Método del algoritmo de Euclides
Método de Fermat
Método de Legendre
Método rho de Pollard (Monte Carlo)

Teoría de Números

Monografias.com

Factorización: Test de las divisiones sucesivas
Test de las divisiones sucesivas
Mismo procedimiento que para comprobar la primalidad.

Ineficiente
Teoría de Números

Monografias.com

Factorización: Método del algoritmo de Euclides
Método del algoritmo de Euclides
Dado un número compuesto n entre dos valores f y g, el método consiste en multiplicar todos los números primos comprendidos entre f y g, y a continuación aplicar el algoritmo de Euclides al número n y al producto resultante.

Si n es grande también se requiere mucho tiempo de computación.

Teoría de Números

Monografias.com

Factorización: Método de Fermat
Método de Fermat

¿El número 100895598169 es primo?
Es el producto de 898423 por 11230, ambos primos.
Mersenne
Fermat
Teoría de Números

Monografias.com

Factorización: Método de Fermat
Método de Fermat

El método consiste en encontrar un cuadrado.

1. Dado n, escoger un x > raiz(n).
2. Calcular x2 – n. Si es un cuadrado hemos terminado, sino:
3. Calcular (x+1)2 – n. Si es un cuadrado hemos terminado, sino:

(Gp:) Idea de Fermat
si n = x2 * y2, entonces n puede factorizarse: n = (x+y)*(x-y)
Como x2 > n se tiene que x > raiz(n)

Teoría de Números

Monografias.com

Factorización: Método de Legendre
Método de Legendre

Número de soluciones de la congruencia:

Números primos -> Soluciones triviales ->
Números compuestos -> Admite más soluciones.

El método intenta determinar soluciones no triviales a la congruencia.

Como si (x+y) es una solución no trivial, un factor de n se calcula hallando el mcd(x+y,n).
Teoría de Números

Monografias.com

Factorización: Método rho de Pollard
Método rho de Pollard (Método de Monte Carlo)
Se basa en el algoritmo de la liebre y la tortuga y en:
x e y son congruentes módulo p con probabilidad 0.5 tras elegir 1.177*raiz(p) números.
Si p es factor de n, entonces 1 < mcd(|x-y|, n) <= n, ya que p divide tanto a |x-y| como a n.

(Gp:) Secuencia x
(Gp:) Secuencia y
(Gp:) mcd(|x-y|, n)

Si mcd(|x-y|, n) = n -> Fracaso
Teoría de Números

Monografias.com

Trabajando con números grandes.
El tipo Integer de Haskell
Números enteros de precisión ilimitada.
Mismas operaciones que Int.

Tipo abstracto de datos
Por ejemplo: array de dígitos.
¡ Hay que implementar todas las operaciones!
Teoría de Números

Monografias.com

Trabajando con números grandes
Cálculo de potencias modulares

Algoritmo de exponenciación modular
La idea consiste en obtener la representación del exponente n en dígitos binarios (dt, dt-1, …d2,d1) con dt=1, y hallar los distintos cuadrados sucesivos (mod m) de la base a: (a1, a2, a4, … a2*t), para después multiplicar módulo m las potencias a2*I correspondientes a los dígitos binarios di que sean “1”.
Teoría de Números

Monografias.com

Trabajando con números grandes
Máximo común divisor
Más eficiente teniendo en cuenta las propiedades:

(Gp:) x, si y=0
MCD(x,y) =
MCD(y, x `mod` y), otro caso

Teoría de Números

Monografias.com

Trabajando con números grandes
Algoritmo extendido de Euclides

extendedEuclid :: Integer -> Integer -> (Integer, Integer, Integer)
a, b -> (u,v,d)
Teoría de Números

Monografias.com

El futuro de RSA
Romper el código cifrado con RSA buscando la factorización de n es prácticamente imposible incluso con los ordenadores de la próxima década.

Factorizar un número de 500 dígitos necesita 1025 años a 1us por instrucción.

Cuando se consiga, podríamos elegir números primos mayores y el sistema volvería a ser seguro.

El futuro de la criptografía

Partes: 1, 2, 3
 Página anterior Volver al principio del trabajoPágina siguiente 

Nota al lector: es posible que esta página no contenga todos los componentes del trabajo original (pies de página, avanzadas formulas matemáticas, esquemas o tablas complejas, etc.). Recuerde que para ver el trabajo en su versión original completa, puede descargarlo desde el menú superior.

Todos los documentos disponibles en este sitio expresan los puntos de vista de sus respectivos autores y no de Monografias.com. El objetivo de Monografias.com es poner el conocimiento a disposición de toda su comunidad. Queda bajo la responsabilidad de cada lector el eventual uso que se le de a esta información. Asimismo, es obligatoria la cita del autor del contenido y de Monografias.com como fuentes de información.

Categorias
Newsletter