7
COMPUTACIÓN BÁSICA Encriptación de claves públicas y claves privadas

ComputacióN BáSica

  • Upload
    mafer

  • View
    925

  • Download
    4

Embed Size (px)

Citation preview

Page 1: ComputacióN BáSica

COMPUTACIÓN BÁSICA

Encriptación de claves públicas y claves privadas

Page 2: ComputacióN BáSica

CLAVES PRIVADAS

Page 3: ComputacióN BáSica

p=61 1º nº primo Privado q=53 2º nº primo Privado n=pq=3233 producto p*q e=17 exponente Público d=2753 exponente Privado La clave pública (e, n). La clave privada es d. La función de cifrado es:encrypt(m) = me(modn) = m17(mod 3233) Donde m es el texto sin cifrar. La función de descifrado es:decrypt(c) = cd(modn) = c2753(mod 3233) Donde c es el texto cifrado. Para cifrar el valor del texto sin cifrar 123, nosotros calculamos:encrypt(123) = 12317(mod 3233) = 855 Para descifrar el valor del texto cifrado, nosotros calculamos:decrypt(855) = 8552753(mod 3233) = 123 Ambos de estos cálculos pueden ser eficientemente usados por el algoritmo de multiplicación cuadrática para exponenciación modular.

MENSAJE + CLAVE = CÓDIGO (encriptación)

CÓDIGO + CLAVE = MENSAJE (desencriptación)

Page 4: ComputacióN BáSica

Ejemplo rápido: Bob quiere enviar a Alicia un mensaje secreto que solo ella pueda leer.Alicia envía a Bob una caja con una cerradura abierta, de la que solo Alicia tiene la llave. Bob recibe la caja, escribe el mensaje, lo pone en la caja y la cierra con su cerradura (ahora Bob no puede leer el mensaje). Bob envía la caja a Alicia y ella la abre con su llave. En este ejemplo, la caja con la cerradura es la clave pública de Alicia, y la llave de la cerradura es su clave privada. Supongamos que Bob desea enviar un mensaje M a Alicia. Él cambia M en un número m<n, usando un protocolo reversible conocido como paddingscheme.Bob ahora tiene m. Alicia envía su clave pública (n,e) a Bob. Él entonces calcula el texto cifrado c correspondiente a m: Esto puede ser rápido usando el método de exponentiationbysquaring (llamado también exponenciación binaria). Bob transmite c a Alicia.1. Cada usuario elige n = p·q2. Los valores p y q NO se hacen públicos3. Cada usuario calcula ϕ(n) = (p-1)(q-1)4. Cada usuario elige una clave pública e de forma que 1 < e < ϕ(n) y que cumpla con la condición: mcd [e, ϕ(n)] = 15. Cada usuario calcula la clave privada d = inv [e,ϕ(n)]6. Se hace público el grupo n y la clave e7. Se guarda en secreto la clave dCifra: C = NeRmodnRFirma: C = h(M)dEmodnE

Page 5: ComputacióN BáSica

1.Generación de Parámetros  ♦ p = 3, q = 5 (se eligen dos números primos) ♦ n = 15 ( se calcula el producto, es la clave pública) (n) = (3-1)*(5-1) = 8♦ ♦ Sea e = 3, entoncesd = 3, ya qu3: e*dmod 8 =3*3mod 8 = 9mod8= 1  · 2. Cifrado del mensaje   ♦ La clave pública es: (n,e) = (1*, 3) ♦ Sea el mensaje m = 2 ♦ El mensaje cifrado es: c =mmod n, es decir, c = 23 mod 15, o sea c = 8 ♦ Se envía 8 e· 3. Descifrado del mensaje  ♦ Para decifrarel mensaseSe calcula: m = cdmod n = m =83 m0d *5 ♦ es decir,m =512 mod 1* = 2 ♦ por lo tanto se obtiene el mensaje original

Page 6: ComputacióN BáSica

CLAVES PÚBLICAS

Ejemplo: Sea m=1590 Verificar que 1590 y 43 no tienen factores en comúnt=43 (43 es primo y 1590 no es divisible por 43) 1590 y 43 son relativamente primos.Para el inverso de t hacemos 1591/43 = 37 luego t'=37(37 * 43 = 1591, 1591 mod 1590 = 1)Ahora lo que hacemos es aplicarle a cada elemento Ai del Knapsack la función Ai'= Ai*t mod m (1,3,5,11,21,44,87,175,349,701)=>(43,129,215,473,903,302,561,1165,697,1523

Page 7: ComputacióN BáSica

Para el Knapsack ejemplo anterior la clave publica es (tomando solo 8 elementos para no hacer tantas cuentas, obviamente cuanto mayor es el vector mas seguro es el sistema)P = (43,129,215,473,903,302,561,1165)Supongamos que queremos encriptar 'Hola''H' = 01001000 = 129 + 903 = 1032'o' = 01101111 = 129 + 215 + 903 + 302 + 561 + 1165 = 3275'l' = 01101100 = 129 + 215 + 903 + 302 = 1549'a' = 01100001 = 129 + 215 + 1165 = 1509'Hola' = 1032,3275,1549,1509

La clave privada es t'=37 m=1590Para desencriptar usamos la clave privada:1032 * 37 mod 1590 = 243275 * 37 mod 1590 = 3351549 * 37 mod 1590 = 731509 * 37 mod 1590 = 183