Docsity
Docsity

Prepara tus exámenes
Prepara tus exámenes

Prepara tus exámenes y mejora tus resultados gracias a la gran cantidad de recursos disponibles en Docsity


Consigue puntos base para descargar
Consigue puntos base para descargar

Gana puntos ayudando a otros estudiantes o consíguelos activando un Plan Premium


Orientación Universidad
Orientación Universidad

Cifrado asimétrico - Apuntes - Seguridad Informática - Parte1, Apuntes de Ingeniería Infórmatica

Universidad Nacional Experimental del Táchira. Apuntes de Ingeniería Infórmatica. La operación característica de la cifra asimétrica es mediante un cifrado exponencial. La operación a realizar será C = AB mod n, en donde n es el cuerpo de cifra del orden de 1.024 bits, B es una clave pública 17 bits para el intercambio de clave y cerca de 1.024 bits de la clave privada para firma digital.

Tipo: Apuntes

2012/2013

Subido el 16/05/2013

Mauro_88
Mauro_88 🇻🇪

4.5

(213)

624 documentos

1 / 30

Toggle sidebar

Esta página no es visible en la vista previa

¡No te pierdas las partes importantes!

bg1
Seguridad Informática y Criptografía
Capítulo 14
Cifrado Asimétrico Exponencial
docsity.com
pf3
pf4
pf5
pf8
pf9
pfa
pfd
pfe
pff
pf12
pf13
pf14
pf15
pf16
pf17
pf18
pf19
pf1a
pf1b
pf1c
pf1d
pf1e

Vista previa parcial del texto

¡Descarga Cifrado asimétrico - Apuntes - Seguridad Informática - Parte1 y más Apuntes en PDF de Ingeniería Infórmatica solo en Docsity!

Seguridad Informática y Criptografía

Capítulo 14

Cifrado Asimétrico Exponencial

Aquí ciframos números, no mensajes

  • La operación característica de la cifra asimétrica es mediante un cifrado exponencial. La operación a realizar será C = AB^ mod n, en donde n es el cuerpo de cifra del orden de 1.024 bits, B es una clave pública 17 bits para el intercambio de clave y cerca de 1.024 bits de la clave privada para firma digital. A será siempre un número N (nunca un mensaje M) y por lo general del orden de las centenas de bits.
  • Esto es así porque este tipo de cifra es muy lenta y sería muy costoso en tiempo cifrar, por ejemplo, mensajes de cientos o miles de bytes.
  • Por lo tanto, cuando se cifre con la clave pública de destino para hacer un intercambio de clave, se tratará de un número N del orden de los 128 bits (la clave de sesión), y cuando se cifre con la clave privada de emisión para una firma digital, se tratará de un número N de 160 bits, por ejemplo un hash SHA-1 sobre el mensaje M.
  • Al cifrar el número N y en el descifrado del criptograma

C se usará una exponenciación: Ee(N) = C y Ed(C) = N.

  • En la operación de cifrado, el subíndice e significará el

uso de la clave pública del receptor (R) en el extremo

emisor y el subíndice d el uso de la clave privada del

receptor (R) en el extremo receptor.

C = EeR(N) = NeR^ mod nR  N = EdR(C) = CdR^ mod nR

  • N deberá ser un elemento del CCR de nR.
  • Esta operación se usará para realizar el intercambio de

una clave de sesión entre un emisor y un receptor.

Cifrado exponencial con clave del receptor

  • En la operación de cifrado el subíndice d significa el uso

de la clave privada del emisor (E) en el extremo emisor,

y el subíndice e el uso de la clave pública del emisor (E)

en el extremo receptor.

C = EdE(N) = NdE^ mod nE  N = EeE(C) = CeE^ mod nE

  • N deberá ser un elemento del CCR de nE.
  • Esta operación se usará para autenticar la identidad de un

usuario mediante una firma digital, al mismo tiempo que

se demuestra la integridad del mensaje mediante un hash.

Cifrado exponencial con clave del emisor

Al cifrar el número N con una clave pública e (en este caso

para realizar un intercambio de clave, aunque es igual de

válido con una clave d en caso de firma digital) tenemos:

Cifrado : C = Ne^ mod n

Descifrado : Cd^ mod n = (Ne)d^ mod n = Ned^ mod n

Cd^ mod n = Nk(n)+1^ mod n = NNk(n)^ mod n

Cd^ mod n = N1 mod n = N mod n

Por lo tanto, la operación Cd^ mod n recuperará el número N.

Operación de descifrado exponencial

Sea n = pq = 511 = 55  (n) = (5-1)(11-1) = 40 Sea el número N = 50 = 2 52 ( debe ser un elemento de n = 55 ) Se elige e = 3  d = inv[e, (n)] = inv (3, 40) = 27 ed mod (n) = 327 mod 40 = 81 mod 40 = 1 C = Ne^ mod n = 50^3 mod 55 = (2 52 )^3 mod 55 C = [(2)^3 mod 55  (5^2 )^3 mod 55] mod 55 - por reducibilidad- N = Cd^ mod n = {[(2)^3 mod 55  (5^2 )^3 mod 55] mod 55}^27 mod 55 N = [(2)^3 ^27 mod 55  (5^2 )^3 ^27 mod 55] mod 55 N = [2^2 (n)+1^  52 (n)+1^  52 (n)+1] mod 55

Por el Teorema de Euler y del Resto Chino = 2^ ^5 ^ 5 mod 55 = 50

Comprobación de la recuperación de N

Ejemplo de intercambio de clave de DH

Adela (A) y Benito (B) van a intercambiar una clave de

sesión dentro del cuerpo primo p = 1.999, con  = 33. El

usuario A elegirá a = 47 y el usuario B elegirá b = 117.

Algoritmo:

  • A calcula a^ mod p = 33^47 mod 1.999 = 1.343 y se lo envía a B.
  • B calcula b^ mod p = 33^117 mod 1.999 = 1.991 y se lo envía a A.
  • B recibe 1.343 y calcula 1.343^117 mod 1.999 = 1.506.
  • A recibe 1.991 y calcula 1.991^47 mod 1.999 = 1.506.

La clave secreta compartida por (A) y (B) será K = 1.

Un intruso que conozca las claves públicas p y  e

intercepte el valor a^ mod p que ha enviado A y el

valor b^ mod p que ha enviado B no podrá descubrir

los valores de a, de b y ni menos ab^ mod p ...

Salvo que se enfrente al Problema del Logaritmo

Discreto (PLD) que, como ya hemos visto, se

vuelve computacionalmente intratable para valores

del primo p grandes.

¿Puede un intruso atacar la clave DH?

http://en.wikipedia.org/wiki/Discrete_logarithm^ 

  • A elige un número a con 1 < a < p-1 y envía a B a^ mod p
  • C intercepta este valor, elige un número c con 1 < c < p-1 y envía a B c^ mod p
  • B elige un número b con 1 < b < p-1 y envía a A b^ mod p
  • C intercepta este valor y envía a A c^ mod p (valor anterior)
  • A y B calculan sus claves kA = (c)a^ mod p, kB = (c)b^ mod p
  • C calcula también las claves:
    • kCA = (a)c^ mod p
    • kCB = (b)c^ mod p Por lo tanto, a partir de ahora C tiene “luz verde” y puede interceptar todos los mensajes que se intercambian A y B.

Una solución a este problema es el sellado de tiempo.

¿Es vulnerable el protocolo de DH?

¿Qué hacer?

El protocolo DH se puede generalizar para n usuarios: sea n = 3.

Intercambio de clave DH entre n usuarios

A, B y C seleccionan un grupo p y un generador 

  • A genera un número aleatorio a y envía a^ mod p a B
  • B genera un número aleatorio b y envía b^ mod p a C
  • C genera un número aleatorio c y envía c^ mod p a A
  • A recibe c^ mod p y calcula (c)a^ mod p y se lo envía a B
  • B recibe a^ mod p y calcula (a)b^ mod p y se lo envía a C
  • C recibe b^ mod p y calcula (b)c^ mod p y se lo envía a A
  • A recibe bc^ mod p y calcula (bc)a^ mod p = bca^ mod p
  • B recibe ca^ mod p y calcula (ca)b^ mod p = cab^ mod p
  • C recibe ab^ mod p y calcula (ab)c^ mod p = abc^ mod p
  • El secreto compartido por A, B y C es el valor abc^ mod p

MALA ELECCIÓN DE LOS PARÁMETROS:

Sean el grupo de trabajo p = 13 y un valor  = 3 ... entonces

31 mod 13 = 3 32 mod 13 = 9 33 mod 13 = 1 1  vamos mal

34 mod 13 = 3 35 mod 13 = 9 36 mod 13 = 1

37 mod 13 = 3 38 mod 13 = 9 39 mod 13 = 1

310 mod 13 = 3 311 mod 13 = 9 312 mod 13 = 1 (p-1mod p = 1)

Se repiten los restos 3, 9 y 1 porque 3 no es un generador de Z 13.

Observe que 3^4 mod 13 = (3^3 )(3)^1 mod 13 = 1(3)^1 mod 13 = 3.

Un ataque por fuerza bruta deberá buscar sólo en una tercera parte

del espacio de claves y, lo que es peor, la probabilidad de éxito de encontrar un valor verdadero b en b^ mod p aumenta de 1/12 a 1/3.

Raíz  incorrecta (falsa)

Sólo debería darse unidad en este caso.

Primero intente calcularlo... y luego para comprobar sus resultados, avance.

21 mod 13 = 2 22 mod 13 = 4 23 mod 13 = 8 24 mod 13 = 3 25 mod 13 = 6 26 mod 13 = 12 27 mod 13 = 11 28 mod 13 = 9 29 mod 13 = 5 210 mod 13 = 10 211 mod 13 = 7 212 mod 13 = 1  Ahora sí están todos los restos multiplicativos del cuerpo Z 13 porque el resto 2 es un generador dentro de este cuerpo. Observe que el valor unidad sólo se obtiene para p-1^ mod p.

¿Y si ahora  = 2?

Como vimos en el capítulo de Teoría de Números, en p = 13 serán generadores los valores g = 2, 6, 7, 11.

Raíz  correcta

Benito Adela

En el protocolo intercambiaremos una clave K

Sea K = DA9F (16 bits)

Claves Benito

nB = 65. eB = 35, dB = 53.

Claves Adela

nA = 66. eA = 25, dA = 18.

K = DA9F 16 = 55.967 10 C = KeA^ mod nA C = 55.967^25 mod 66.331 =

Benito envía a Adela C = 16.

Cifra

216  66.331  217 Forzaremos cifrar un bloque de 16 bits

Intercambio de clave RSA (B  A)

En la práctica no habrá que forzar este tamaño ya que la cifra asimétrica se hace en un cuerpo (más de mil bits) mucho mayor que el número que se cifra (cientos de bits).

Claves Benito

nB = 65. eB = 35, dB = 53.

Claves Adela

nA = 66. eA = 25, dA = 18.

Adela calcula:

  • CdA^ mod nA = 16.66718.377^ mod 66.331 = 55.967.
  • El intercambio de clave se ha realizado con confidencialidad porque sólo Adela ha podido realizar ese cálculo con su clave privada dA.

Teníamos que: K = DA9F 16 = 55.967 10 C = KeA^ mod nA C = 55.967^25 mod 66.331 = 16. Benito había enviado a Adela C = 16.

Benito Adela

Recuperación de la clave K por A

Los primos que ha usado Benito son (97, 677) y los de Adela (113, 587)