SlideShare una empresa de Scribd logo
1 de 11
-   Consultar 3 Algoritmos para encriptación de claves

                                     1. Diffie-Hellman

El protocolo Diffie-Hellman1 (debido a Whitfield Diffie y Martin Hellman) permite el
intercambio secreto de claves entre dos partes que no han tenido contacto previo,
utilizando un canal inseguro, y de manera anónima (no autenticada).

Se emplea generalmente como medio para acordar claves simétricas que serán
empleadas para el cifrado de una sesión.

Siendo no autenticado, sin embargo provee las bases para varios protocolos
autenticados.

Su seguridad radica en la extrema dificultad (conjeturada, no demostrada) de calcular
logaritmos discretos en un campo finito.

•

    Versión básica




Diffie-Hellman

Para dos partes A y B que intentan establecer una clave secreta y un adversario E, la
versión básica es como sigue:

    •   Se establecen un primo p y un generador           (2 ). Estos son públicos,
        conocidos no sólo por las partes A y B sino también por el adversario E.
    •   A escoge             al azar, calcula X = gxmod p, y envía X a B
    •   B escoge             al azar, calcula Y = gymod p, y envía Y a A

Nótese que Xy = (gx)y = gxy = (gy)x = Yx, con todas las operaciones en el grupo .
Llamemos K a esta cantidad común: el hecho destacable es que ambas partes pueden
calcularla, y por lo tanto obtener una clave compartida.
Un adversario E que poseyera p, g, X e Y, podría calcular el secreto compartido si
tuviera también uno de los valores privados (x o y) o lograse invertir la función. Pero
calcular x dado X es el problema del logaritmo discreto en      , un problema que se cree
intratable computacionalmente. El mismo protocolo, y otros basados en este, pueden
llevarse a cabo en cualquier grupo en que a la vez la exponenciación sea simple y el
logaritmo discreto difícil, como el grupo multiplicativo análogo de los campos de
Galois      o el grupo de puntos definidos por una curva elíptica sobre un campo finito.

Sin embargo, el protocolo es sensible a ataques activos del tipo "hombre en el medio"
(mitm, man-in-the-middle). Si la comunicación es interceptada por un tercero, éste se
puede hacer pasar por el emisor cara al destinatario y viceversa, ya que no se dispone de
ningún mecanismo para validar la identidad de los participantes en la comunicación.
Así, el "hombre en el medio" podría acordar una clave con cada participante y
retransmitir los datos entre ellos, escuchando la conversación en ambos sentidos.

Ejemplo del protocolo
A                          B


        Sec                       Calc

        Calc                       Sec



        p, g                       p, g



         a

                                    b              1. A y B acuerdan usar el número
                                                       primo p=23 y la base g=5.
                                                   2. A elige un número secreto
                                                      a=6, luego envía a B (ga mod
                                   …                  p)
      ga mod p                                            o 56 mod 23 = 8.
                                                   3. B elige un número secreto
                                                      b=15, luego envía a A (gb mod
                                gb mod p
                                                      p)
         …
                                                          o 515 mod 23 = 19.
                                                   4. A calcula (gb mod p)a mod p
                                                          o 196 mod 23 = 2.
                                                   5. B calcula (ga mod p)b mod p
                       =
 (gb mod p)a mod p          (ga mod p)b mod p
                                                           o   815 mod 23 = 2.




Valores mucho más grandes de a,b y p se necesitarían para hacer este ejemplo seguro.
Dado que es muy sencillo probar todos los valores posibles de gab mod 23 (habrá, como
máximo, 22 valores, inclusive si a y b son números grandes). Si p fuera un primo de
más de 300 dígitos, y a y b fueran por lo menos de 100 dígitos, entonces hasta el mejor
algoritmo para encontrar a dado g, p, y ga mod p tomaría más tiempo que la vida del
universo para resolverse. g no necesita ser grande, y en la práctica es usualmente 2 o 5.

Versiones más complejas

   •   El protocolo ElGamal de negociación de claves3 provee negociación en un solo
       paso y autenticación unilateral (del receptor hacia el emisor) si la clave pública
       del receptor es conocida de antemano por el emisor.
   •   El protocolo MTI/A0,4 empleando dos mensajes y sin requerir firmas,
       proporciona claves de sesión variables en el tiempo con mutua autenticación
       implícita de claves contra ataques pasivos.
   •   El protocolo STS5 es una variante de tres pasos de la versión básica que permite
       el establecimiento de una clave secreta compartida entre dos partes con mutua
       autenticación de entidades y mutua autenticación explícita de las claves. El
       protocolo también facilita el anonimato: las identidades de A y B pueden
       protegerse contra el adversario E. El método emplea firmas digitales.

RSA

El sistema criptográfico con clave pública RSA es un algoritmo asimétrico cifrador
de bloques, que utiliza una clave pública, la cual se distribuye (en forma autenticada
preferentemente), y otra privada, la cual es guardada en secreto por su propietario.

Una clave es un número de gran tamaño, que una persona puede conceptualizar como
un mensaje digital, como un archivo binario o como una cadena de bits o bytes.

Cuando se quiere enviar un mensaje, el emisor busca la clave pública de cifrado del
receptor, cifra su mensaje con esa clave, y una vez que el mensaje cifrado llega al
receptor, éste se ocupa de descifrarlo usando su clave oculta.

Los mensajes enviados usando el algoritmo RSA se representan mediante números y el
funcionamiento se basa en el producto de dos números primos grandes (mayores que
10100) elegidos al azar para conformar la clave de descifrado.

Emplea expresiones exponenciales en aritmética modular.

La seguridad de este algoritmo radica en que no hay maneras rápidas conocidas de
factorizar un número grande en sus factores primos utilizando computadoras
tradicionales.

La computación cuántica podría proveer una solución a este problema de factorización.



Cifrado de mensajes

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 padding scheme.



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
exponentiation by squaring (llamado también exponenciación binaria). Bob transmite c
a Alicia.

1. Cada usuario elige n = p·q

2. Los valores p y q NO se hacen públicos

3. 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)] = 1

5. Cada usuario calcula la clave privada d = inv [e,ϕ(n)]

6. Se hace público el grupo n y la clave e

7. Se guarda en secreto la clave d

Cifra: C = NeR mod nR

Firma: C = h(M)dE mod nE

Ejemplo

Aquí tenemos un ejemplo de cifrado/descifrado con RSA. Los parámetros usados aquí
son pequeños y orientativos con respecto a los que maneja el algoritmo, pero podemos
usar también OpenSSL para generar y examinar una par de claves reales.


                1º nº primo
  p=61
                Privado



  q=53          2º nº primo
Privado



  n=pq=3233 producto p*q



                 exponente
  e=17
                 Público



                 exponente
  d=2753
                 Privado


La clave pública (e, n). La clave privada es d. La función de cifrado es:

         encrypt(m) = me(mod n) = m17(mod 3233)

Donde m es el texto sin cifrar. La función de descifrado es:

         decrypt(c) = cd(mod n) = 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.

   2. Padding schemes (Esquema de relleno

RSA debe ser combinado con alguna versión del padding scheme, ya que si no el valor
de M puede llevar a textos cifrados inseguros. RSA usado sin padding scheme podría
sufrir muchos problemas.

            •   El valor m=0 o m=1 siempre produce textos cifrados iguales para 0 o 1
                respectivamente, debido a propiedades de los exponentes.
            •   Cuando ciframos con exponentes pequeños (e=3) y valores pequeños de
                m, el resultado de m podría ser estrictamente menor que el módulo de n.
                En este caso, el texto cifrado podría ser fácilmente descifrado, tomando
                la raíz e-ésima del texto cifrado sin tener en cuenta el módulo.
•   Dado que el cifrado RSA es un algoritmo determinista (no tiene
               componentes aleatorios) un atacante puede lanzar con éxito un ataque de
               texto elegido contra el criptosistema, construyendo un diccionario de
               textos probables con la llave pública, y almacenando el resultado cifrado.
               Observando los textos cifrados en un canal de comunicación, el atacante
               puede usar este diccionario para descifrar el contenido del mensaje.

En la práctica, el primero de los dos problemas podría presentarse cuando enviamos
pequeños mensajes ASCII donde m es la concatenación de uno o más carácter/es ASCII
codificado/s. Un mensaje consiste en un solo carácter ASCII NUL (cuyo valor es 0) se
codificaría como m=0, produciendo un texto cifrado de 0 sin importar qué valores de e
y N son usados. Probablemente, un solo ASCII SOH (cuyo valor es 1) produciría
siempre un texto cifrado de 1. Para sistemas convencionales al usar valores pequeños de
e, como 3, un solo carácter ASCII mensaje codificado usando este esquema sería
inseguro, ya que el máximo valor de m sería 255, y 255³ es menor que cualquier
módulo razonable. De esta manera los textos sin cifrar podrían ser recuperados
simplemente tomando la raíz cúbica del texto cifrado. Para evitar estos problemas, la
implementación práctica del RSA se ayuda de algunas estructuras, uso del randomized
padding dentro del valor de m antes del cifrado. Esta técnica asegura que m no caerá en
el rango de textos sin cifrar inseguros, y que dado un mensaje, una vez que este
rellenado, cifrará uno de los números grandes de los posibles textos cifrados. La última
característica es la incrementación del diccionario haciendo este intratable a la hora de
realizar un ataque.

Estándares como PKCS han sido cuidadosamente diseñados para la seguridad de los de
mensajes importantes con el cifrado RSA. Porque el pad scheme rellena el texto sin
cifrar m con algunos números adicionales (bits); el tamaño del mensaje un-padded M
debe ser algo más pequeño. RSA-padding scheme debe ser cuidadosamente diseñado
así como para prevenir ataques sofisticados los cuales podrían ser facilitados por la
predictibilidad de la estructura del mensaje. Versiones más recientes del PKCS Standard
usando construcciones ad-hoc, las cuales fueron encontradas vulnerabilidades más tarde
en la practica adaptativa de elección de ataques de textos cifrados. Las construcciones
modernas usan técnicas seguras como Optimal Asymetric Encryption Padding (OAEP)
para proteger los mensajes mientras previenen estos ataques. El PKCS estándar también
incorpora procesado de esquemas diseñados para proveer adicionalmente la seguridad
de autentificaciones RSA. Por ejemplo: the Probabilistic Signature Scheme for RSA
(RSA-PSS).

Autenticación de mensajes

RSA puede también ser usado para autenticar un mensaje. Supongamos que Alicia
desea enviar un mensaje autentificado a Bob. Ella produce un valor hash del mensaje,
aumenta la potencia de d≡ mod n (como ella hace cuando descifra mensajes), y marca
con una “firma” el mensaje. Cuando Bob recibe el mensaje autentificado, él aumenta la
autentificación para aumentar e≡ mod n (como hace él cuando cifra menajes), y
compara el resultado hash con el actual valor hash del mensaje. Si es el resultado, el
conoce que el autor del mensaje estaba en posesión de la clave secreta de Alicia, y que
el mensaje no ha sido tratado de forzar entonces (no ha sufrido ataques).
Observar que la seguridad de padding-scheme como RSA-PSS son esenciales para la
seguridad del mensaje cifrado, y que la misma clave nunca debería ser usada para
ambos cifrados ni los propósitos de autentificación.

Seguridad

La seguridad del criptosistema RSA está basado en dos problemas matemáticos: el
problema de factorizar números grandes y el problema RSA. El descifrado completo de
un texto cifrado con RSA es computacionalmente intratable, no se ha encontrado un
algoritmo eficiente todavía para ambos problemas. Proveyendo la seguridad contra el
descifrado parcial podría requerir la adición de una seguridad padding scheme.

El problema del RSA se define como la tarea de tomar raíces eth módulo a componer n:
recuperando un valor m tal que me=c ≡mod n, donde (e, n) es una clave pública RSA y
c es el texto cifrado con RSA. Actualmente la aproximación para solventar el problema
del RSA es el factor del módulo n. Con la capacidad para recuperar factores primos, un
atacante puede computar el exponente secreto d desde una clave pública (e, n), entonces
descifra c usando el procedimiento standard. Para conseguir esto, un atacante factoriza n
en p y q, y computa (p-1)(q-1) con lo que le permite determinar d y e. No se ha
encontrado ningún método en tiempo polinómico para la factorización de enteros
largos. Ver factorización de enteros para la discusión de este problema.

La factorización de números grandes por lo general proponen métodos teniendo 663 bits
de longitud usando métodos distribuidos avanzados. Las claves RSA son normalmente
entre 1024-2048 bits de longitud. Algunos expertos creen que las claves de 1024 bits
podrían comenzar a ser débiles en poco tiempo; con claves de 4096 bits podrían ser
rotas en un futuro. Por lo tanto, si n es suficientemente grande el algoritmo RSA es
seguro. Si n tiene 256 bits o menos, puede ser factorizado en pocas horas con un
computador personal, usando software libre. Si n tiene 512 bits o menos, puede ser
factorizado por varios cientos de computadoras como en 1999. Un dispositivo hardware
teórico llamado TWIRL descrito por Shamir y Tromer en el 2003 cuestionó a la
seguridad de claves de 1024 bits. Es actualmente recomendado que n sea como mínimo
de 2048 bits de longitud.

En 1993, Peter Shor publicó su algoritmo, mostrando que una computadora cuántica
podría en principio mejorar la factorización en tiempo polinomial, mostrando RSA
como un algoritmo obsoleto. Sin embargo, las computadoras cuánticas no se esperan
que acaben su desarrollo hasta dentro de muchos años.

Generación de claves

Buscando números primos grandes p y q por el test de aleatoriedad y realizando tests
probabilísticos de primalidad los cuales eliminan virtualmente todos los no-primos
(eficientemente).

Los números p y q no deberían ser suficientemente cercanos para que la factorización de
Fermat para n sea exitosa. Además, si cualquier p-1 o q-1 tiene sólo factores primos
pequeños, n puede ser factorizado rápidamente, con lo que estos valores de p o q deben
ser descartados.
Uno no debería emplear un método de búsqueda de primos con el cual dar alguna
información cualquiera sobre los primos al atacante. En particular, un buen generador
aleatorio de números primos para el comienzo del valor empleado. Observar que el
requerimiento esta en ambos ‘aleatorios’ e ‘impredecibles’. Esto no son los mismos
criterios; un número podría haber sido elegido por un proceso aleatorio, pero si éste es
predecible de cualquier forma (o parcialmente predecible), el método usado resultara
una seguridad baja. Por ejemplo: la tabla de números aleatorios de Rand Corp en 1950
podría muy bien ser verdaderamente aleatoria, pero ha sido publicada y a ésta puede
acceder el atacante. Si el atacante puede conjeturar la mitad de los dígitos de p o q, ellos
podrían rápidamente computar la otra mitad. (Ver Coppersmith en 1997).

Es importante que la clave secreta d sea muy grande. Wiener mostró en 1990 que si p
esta entre q y 2q (es típico) y d<n1/4/3, entonces d puede ser computado eficientemente
de n y e. Aunque valores de e son bajos como 3 han sido usados en el pasado, los
exponentes pequeños en RSA esta actualmente en desuso, por razones incluyendo el
unpadded del texto sin cifrar, vulnerabilidad listada sobre 65537 es normalmente usado
para el valor de e, considerado demasiado grande para evitar ataques de exponenciación
pequeños, de hecho tiene un peso de hamming suficiente para facilitar una
exponenciación eficiente

Velocidad

RSA es mucho más lento que DES y que otros criptosistemas simétricos. En la practica,
Bob normalmente cifra mensajes con algoritmos simétricos, cifra la clave simétrica con
RSA, y transmite a ambos la clave simétrica RSA-cifrada y el mensaje simétricamente-
cifrado a Alicia.

Esto plantea además problemas adicionales de seguridad, por ejemplo, es de gran
importancia usar un generador aleatorio fuerte para claves simétricas, porque de otra
forma Eve (un atacante que quiera averiguar el contenido del mensaje) podría puentear
la clave simétrica de RSA mediante la adivinación de la clave simétrica.

Distribución de claves

Como todos los cifrados, es importante como se distribuyan las claves públicas del
RSA. La distribución de la clave debe ser segura contra un atacante que se disponga a
espiar el canal para hacer un ataque de replay. Supongamos Eve (atacante) tiene alguna
forma de dar a Bob arbitrariamente claves y hacerle creer que provienen de Alicia.
Supongamos que Eve puede interceptar transmisiones entre Alicia y Bob. Eve envía a
Bob su propia clave pública, como Bob cree que es de Alicia. Eve puede entonces
interceptar cualquier texto cifrado enviado por Bob, descifrarlo con su propia clave
secreta, guardar una copia del mensaje, cifrar el mensaje con la clave pública de Alicia,
y enviar el nuevo texto cifrado a Alicia. En principio, ni Alicia ni Bob han detectado la
presencia de Eve. Contra la defensa de ataques algunos están basados en certificados
digitales u otros componentes de infraestructuras de la clave pública.

   3. DSA

DSA (Digital Signature Algorithm, en español Algoritmo de Firma digital) es un
estándar del Gobierno Federal de los Estados Unidos de América o FIPS para firmas
digitales. Fue un Algoritmo propuesto por el Instituto Nacional de Normas y Tecnología
de los Estados Unidos para su uso en su Estándar de Firma Digital(DSS), especificado
en el FIPS 186. DSA se hizo público el 30 de agosto de 1991, este algoritmo como su
nombre lo indica, sirve para firmar y no para cifrar información. Una desventaja de este
algoritmo es que requiere mucho más tiempo de cómputo que RSA.

   Generación de llaves

   •   Elegir un número primo p de L bits, donde 512 ≤ L ≤ 1024 y L es divisible por
       64.
   •   Elegir un número primo q de 160 bits, tal que p−1 = qz, donde z es algún
       número natural.
   •   Elegir h, donde 1 < h < p − 1 tal que g = hz(mod p) > 1.
   •   Elegir x de forma aleatoria, donde 1 < x < q-1.
   •   Calcular y = gx(mod p).

Los datos públicos son p, q, g e y. x es la llave privada.

FirmaElegir un número aleatorio s, donde 1 < s < q.

   •   Calcular s1 = (gs mod p)mod q.
   •   Calcular s2 = s-1(H(m)+s1*x)mod q, donde H(m) es la función hash SHA-1
       aplicada al mensaje m.
   •   La firma es el par (s1, s2).

Si s1 o s2 es cero, se vuelve a repetir el procedimiento.

Verificación [Calcular w = (s2)-1(mod q).

   •   Calcular u1 = H(m)*w(mod q).
   •   Calcular u2 = s1*w(mod q).
   •   Calcular v = [gu1*yu2mod p]mod q.
   •   La firma es válida si v = s1.

Demostración del algoritmo

El esquema de la firma está correcto en el sentido que el verificador aceptará siempre
firmas genuinas. Esto puede ser demostrada como sigue:

De g = hz mod p sigue gq ≡ hqz ≡ hp-1 ≡ 1 (mod p) por Pequeño teorema de Fermat. Ya
que g>1 y q es primo sigue que g tiene orden q.

El firmante computa



Entonces
Ya que g tiene orden q tenemos que




Finalmente, la correctitud de DSA surge de

Más contenido relacionado

La actualidad más candente

Criptografía y congruencias para trabajo
Criptografía y congruencias para trabajoCriptografía y congruencias para trabajo
Criptografía y congruencias para trabajoyefema
 
Mecanismos de seguridad en el desarrollo de aplicaciones
Mecanismos de seguridad en el desarrollo de aplicacionesMecanismos de seguridad en el desarrollo de aplicaciones
Mecanismos de seguridad en el desarrollo de aplicacionesGerardo
 
Up encriptacion publica v1.2
Up encriptacion publica v1.2Up encriptacion publica v1.2
Up encriptacion publica v1.2Meme delaTower
 
criptografia de curva elipticas
criptografia de curva elipticascriptografia de curva elipticas
criptografia de curva elipticasalex paz
 
Intercambio de claves Diffie-Hellman.
Intercambio de claves Diffie-Hellman.Intercambio de claves Diffie-Hellman.
Intercambio de claves Diffie-Hellman.Amador Aparicio
 
Criptografia con curvas elipticas
Criptografia con curvas elipticasCriptografia con curvas elipticas
Criptografia con curvas elipticasBryan Huertas
 
Mecanismos de seguridad en el desarrollo de aplicaciones
Mecanismos de seguridad en el desarrollo de aplicacionesMecanismos de seguridad en el desarrollo de aplicaciones
Mecanismos de seguridad en el desarrollo de aplicacionesGerardo
 

La actualidad más candente (20)

Rsa
RsaRsa
Rsa
 
Criptografía y congruencias para trabajo
Criptografía y congruencias para trabajoCriptografía y congruencias para trabajo
Criptografía y congruencias para trabajo
 
Leccion02 rsa v3 crypt4you
Leccion02 rsa v3 crypt4youLeccion02 rsa v3 crypt4you
Leccion02 rsa v3 crypt4you
 
Leccion01 rsa crypt4you
Leccion01 rsa crypt4youLeccion01 rsa crypt4you
Leccion01 rsa crypt4you
 
Crypt4you. Leccion02 curso rsa
Crypt4you. Leccion02 curso rsa Crypt4you. Leccion02 curso rsa
Crypt4you. Leccion02 curso rsa
 
RSA crypt4you
RSA crypt4youRSA crypt4you
RSA crypt4you
 
Algoritmo rsa
Algoritmo rsaAlgoritmo rsa
Algoritmo rsa
 
Mecanismos de seguridad en el desarrollo de aplicaciones
Mecanismos de seguridad en el desarrollo de aplicacionesMecanismos de seguridad en el desarrollo de aplicaciones
Mecanismos de seguridad en el desarrollo de aplicaciones
 
Capítulo 7: Firma digital
Capítulo 7: Firma digitalCapítulo 7: Firma digital
Capítulo 7: Firma digital
 
Criptosistemas
CriptosistemasCriptosistemas
Criptosistemas
 
Up encriptacion publica v1.2
Up encriptacion publica v1.2Up encriptacion publica v1.2
Up encriptacion publica v1.2
 
criptografia de curva elipticas
criptografia de curva elipticascriptografia de curva elipticas
criptografia de curva elipticas
 
Intercambio de claves Diffie-Hellman.
Intercambio de claves Diffie-Hellman.Intercambio de claves Diffie-Hellman.
Intercambio de claves Diffie-Hellman.
 
Leccion01 rsa crypt4you -V2
Leccion01 rsa crypt4you -V2Leccion01 rsa crypt4you -V2
Leccion01 rsa crypt4you -V2
 
El Algoritmo RSA
El Algoritmo RSAEl Algoritmo RSA
El Algoritmo RSA
 
Criptografia con curvas elipticas
Criptografia con curvas elipticasCriptografia con curvas elipticas
Criptografia con curvas elipticas
 
Códigos lineales
Códigos linealesCódigos lineales
Códigos lineales
 
Cifrado rsa
Cifrado rsaCifrado rsa
Cifrado rsa
 
Códigos
CódigosCódigos
Códigos
 
Mecanismos de seguridad en el desarrollo de aplicaciones
Mecanismos de seguridad en el desarrollo de aplicacionesMecanismos de seguridad en el desarrollo de aplicaciones
Mecanismos de seguridad en el desarrollo de aplicaciones
 

Similar a Trabajo De Compu Algoritmos

MéTodos De EncriptacióN
MéTodos De EncriptacióNMéTodos De EncriptacióN
MéTodos De EncriptacióNDavid Puga
 
Intercambio de claves Diffie-Hellman.
Intercambio de claves Diffie-Hellman.Intercambio de claves Diffie-Hellman.
Intercambio de claves Diffie-Hellman.Amador Aparicio
 
CIFRADO DE CLAVE PUBLICA Y PRIVADA
CIFRADO DE CLAVE PUBLICA Y PRIVADACIFRADO DE CLAVE PUBLICA Y PRIVADA
CIFRADO DE CLAVE PUBLICA Y PRIVADAdanyro
 
Paper de Criptografía sobre Ataque a la clave por la paradoja del cumpleaños ...
Paper de Criptografía sobre Ataque a la clave por la paradoja del cumpleaños ...Paper de Criptografía sobre Ataque a la clave por la paradoja del cumpleaños ...
Paper de Criptografía sobre Ataque a la clave por la paradoja del cumpleaños ...Ameth1991
 
Criptografiafina xbsbxsbx bxsbxabhxhsbxsl.ppt
Criptografiafina xbsbxsbx bxsbxabhxhsbxsl.pptCriptografiafina xbsbxsbx bxsbxabhxhsbxsl.ppt
Criptografiafina xbsbxsbx bxsbxabhxhsbxsl.ppthugo124330
 
ComputacióN BáSica
ComputacióN BáSicaComputacióN BáSica
ComputacióN BáSicaMAFER
 
Algoritmos De Cifrado Para El Encriptamiento De Claves PúBlicas Y Privadas
Algoritmos De Cifrado Para El Encriptamiento De Claves PúBlicas Y PrivadasAlgoritmos De Cifrado Para El Encriptamiento De Claves PúBlicas Y Privadas
Algoritmos De Cifrado Para El Encriptamiento De Claves PúBlicas Y PrivadasJorge
 
Algoritmos De Encriptacion
Algoritmos De EncriptacionAlgoritmos De Encriptacion
Algoritmos De EncriptacionPeter Cabrera
 
Medidas seguridad implementadas en Nepcom
Medidas seguridad implementadas en NepcomMedidas seguridad implementadas en Nepcom
Medidas seguridad implementadas en NepcomNepcom
 
Algoritmos Para Encriptar Claves
Algoritmos Para Encriptar ClavesAlgoritmos Para Encriptar Claves
Algoritmos Para Encriptar ClavesDiana Yánez
 
Algoritmos De Claves Publicas Y Privadas
Algoritmos De Claves Publicas Y PrivadasAlgoritmos De Claves Publicas Y Privadas
Algoritmos De Claves Publicas Y PrivadasCarlos
 
Metodos De Encriptacion 1
Metodos De Encriptacion 1Metodos De Encriptacion 1
Metodos De Encriptacion 1IRIS
 
Criptografia.pdf
Criptografia.pdfCriptografia.pdf
Criptografia.pdfAndresTini
 
Tema 2 - Introducción a la Criptografía
Tema 2 - Introducción a la CriptografíaTema 2 - Introducción a la Criptografía
Tema 2 - Introducción a la CriptografíaDaniel Pecos Martínez
 
SEGURIDAD SISTEMAS DISTRIBUIDOS.pptx
SEGURIDAD SISTEMAS DISTRIBUIDOS.pptxSEGURIDAD SISTEMAS DISTRIBUIDOS.pptx
SEGURIDAD SISTEMAS DISTRIBUIDOS.pptxXpsMva
 
Código binario gray
Código binario grayCódigo binario gray
Código binario grayDante Aziv
 

Similar a Trabajo De Compu Algoritmos (20)

MéTodos De EncriptacióN
MéTodos De EncriptacióNMéTodos De EncriptacióN
MéTodos De EncriptacióN
 
Intercambio de claves Diffie-Hellman.
Intercambio de claves Diffie-Hellman.Intercambio de claves Diffie-Hellman.
Intercambio de claves Diffie-Hellman.
 
CIFRADO DE CLAVE PUBLICA Y PRIVADA
CIFRADO DE CLAVE PUBLICA Y PRIVADACIFRADO DE CLAVE PUBLICA Y PRIVADA
CIFRADO DE CLAVE PUBLICA Y PRIVADA
 
Paper de Criptografía sobre Ataque a la clave por la paradoja del cumpleaños ...
Paper de Criptografía sobre Ataque a la clave por la paradoja del cumpleaños ...Paper de Criptografía sobre Ataque a la clave por la paradoja del cumpleaños ...
Paper de Criptografía sobre Ataque a la clave por la paradoja del cumpleaños ...
 
Criptografiafina xbsbxsbx bxsbxabhxhsbxsl.ppt
Criptografiafina xbsbxsbx bxsbxabhxhsbxsl.pptCriptografiafina xbsbxsbx bxsbxabhxhsbxsl.ppt
Criptografiafina xbsbxsbx bxsbxabhxhsbxsl.ppt
 
cifrado de claves
cifrado de clavescifrado de claves
cifrado de claves
 
ComputacióN BáSica
ComputacióN BáSicaComputacióN BáSica
ComputacióN BáSica
 
Algoritmos De Cifrado Para El Encriptamiento De Claves PúBlicas Y Privadas
Algoritmos De Cifrado Para El Encriptamiento De Claves PúBlicas Y PrivadasAlgoritmos De Cifrado Para El Encriptamiento De Claves PúBlicas Y Privadas
Algoritmos De Cifrado Para El Encriptamiento De Claves PúBlicas Y Privadas
 
Rsa eddy montalvan
Rsa eddy montalvanRsa eddy montalvan
Rsa eddy montalvan
 
Criptosistemas
CriptosistemasCriptosistemas
Criptosistemas
 
Algoritmos De Encriptacion
Algoritmos De EncriptacionAlgoritmos De Encriptacion
Algoritmos De Encriptacion
 
Medidas seguridad implementadas en Nepcom
Medidas seguridad implementadas en NepcomMedidas seguridad implementadas en Nepcom
Medidas seguridad implementadas en Nepcom
 
Algoritmos Para Encriptar Claves
Algoritmos Para Encriptar ClavesAlgoritmos Para Encriptar Claves
Algoritmos Para Encriptar Claves
 
Algoritmos De Claves Publicas Y Privadas
Algoritmos De Claves Publicas Y PrivadasAlgoritmos De Claves Publicas Y Privadas
Algoritmos De Claves Publicas Y Privadas
 
Metodos De Encriptacion 1
Metodos De Encriptacion 1Metodos De Encriptacion 1
Metodos De Encriptacion 1
 
Criptografia Cuantica
Criptografia CuanticaCriptografia Cuantica
Criptografia Cuantica
 
Criptografia.pdf
Criptografia.pdfCriptografia.pdf
Criptografia.pdf
 
Tema 2 - Introducción a la Criptografía
Tema 2 - Introducción a la CriptografíaTema 2 - Introducción a la Criptografía
Tema 2 - Introducción a la Criptografía
 
SEGURIDAD SISTEMAS DISTRIBUIDOS.pptx
SEGURIDAD SISTEMAS DISTRIBUIDOS.pptxSEGURIDAD SISTEMAS DISTRIBUIDOS.pptx
SEGURIDAD SISTEMAS DISTRIBUIDOS.pptx
 
Código binario gray
Código binario grayCódigo binario gray
Código binario gray
 

Último

Monitoreo a los coordinadores de las IIEE JEC_28.02.2024.vf.pptx
Monitoreo a los coordinadores de las IIEE JEC_28.02.2024.vf.pptxMonitoreo a los coordinadores de las IIEE JEC_28.02.2024.vf.pptx
Monitoreo a los coordinadores de las IIEE JEC_28.02.2024.vf.pptxJUANCARLOSAPARCANARE
 
PPT GESTIÓN ESCOLAR 2024 Comités y Compromisos.pptx
PPT GESTIÓN ESCOLAR 2024 Comités y Compromisos.pptxPPT GESTIÓN ESCOLAR 2024 Comités y Compromisos.pptx
PPT GESTIÓN ESCOLAR 2024 Comités y Compromisos.pptxOscarEduardoSanchezC
 
periodico mural y sus partes y caracteristicas
periodico mural y sus partes y caracteristicasperiodico mural y sus partes y caracteristicas
periodico mural y sus partes y caracteristicas123yudy
 
VOLUMEN 1 COLECCION PRODUCCION BOVINA . SERIE SANIDAD ANIMAL
VOLUMEN 1 COLECCION PRODUCCION BOVINA . SERIE SANIDAD ANIMALVOLUMEN 1 COLECCION PRODUCCION BOVINA . SERIE SANIDAD ANIMAL
VOLUMEN 1 COLECCION PRODUCCION BOVINA . SERIE SANIDAD ANIMALEDUCCUniversidadCatl
 
FICHA DE MONITOREO Y ACOMPAÑAMIENTO 2024 MINEDU
FICHA DE MONITOREO Y ACOMPAÑAMIENTO  2024 MINEDUFICHA DE MONITOREO Y ACOMPAÑAMIENTO  2024 MINEDU
FICHA DE MONITOREO Y ACOMPAÑAMIENTO 2024 MINEDUgustavorojas179704
 
PLANIFICACION ANUAL 2024 - INICIAL UNIDOCENTE.docx
PLANIFICACION ANUAL 2024 - INICIAL UNIDOCENTE.docxPLANIFICACION ANUAL 2024 - INICIAL UNIDOCENTE.docx
PLANIFICACION ANUAL 2024 - INICIAL UNIDOCENTE.docxJUANSIMONPACHIN
 
cuadernillo de lectoescritura para niños de básica
cuadernillo de lectoescritura para niños de básicacuadernillo de lectoescritura para niños de básica
cuadernillo de lectoescritura para niños de básicaGianninaValeskaContr
 
Estrategias de enseñanza - aprendizaje. Seminario de Tecnologia..pptx.pdf
Estrategias de enseñanza - aprendizaje. Seminario de Tecnologia..pptx.pdfEstrategias de enseñanza - aprendizaje. Seminario de Tecnologia..pptx.pdf
Estrategias de enseñanza - aprendizaje. Seminario de Tecnologia..pptx.pdfAlfredoRamirez953210
 
La Función tecnológica del tutor.pptx
La  Función  tecnológica  del tutor.pptxLa  Función  tecnológica  del tutor.pptx
La Función tecnológica del tutor.pptxJunkotantik
 
Mapa Mental de estrategias de articulación de las areas curriculares.pdf
Mapa Mental de estrategias de articulación de las areas curriculares.pdfMapa Mental de estrategias de articulación de las areas curriculares.pdf
Mapa Mental de estrategias de articulación de las areas curriculares.pdfvictorbeltuce
 
Instrucciones para la aplicacion de la PAA-2024b - (Mayo 2024)
Instrucciones para la aplicacion de la PAA-2024b - (Mayo 2024)Instrucciones para la aplicacion de la PAA-2024b - (Mayo 2024)
Instrucciones para la aplicacion de la PAA-2024b - (Mayo 2024)veganet
 
BIOLOGIA_banco de preguntas_editorial icfes examen de estado .pdf
BIOLOGIA_banco de preguntas_editorial icfes examen de estado .pdfBIOLOGIA_banco de preguntas_editorial icfes examen de estado .pdf
BIOLOGIA_banco de preguntas_editorial icfes examen de estado .pdfCESARMALAGA4
 
Manejo del Dengue, generalidades, actualización marzo 2024 minsa
Manejo del Dengue, generalidades, actualización marzo 2024 minsaManejo del Dengue, generalidades, actualización marzo 2024 minsa
Manejo del Dengue, generalidades, actualización marzo 2024 minsaLuis Minaya
 

Último (20)

Monitoreo a los coordinadores de las IIEE JEC_28.02.2024.vf.pptx
Monitoreo a los coordinadores de las IIEE JEC_28.02.2024.vf.pptxMonitoreo a los coordinadores de las IIEE JEC_28.02.2024.vf.pptx
Monitoreo a los coordinadores de las IIEE JEC_28.02.2024.vf.pptx
 
PPT GESTIÓN ESCOLAR 2024 Comités y Compromisos.pptx
PPT GESTIÓN ESCOLAR 2024 Comités y Compromisos.pptxPPT GESTIÓN ESCOLAR 2024 Comités y Compromisos.pptx
PPT GESTIÓN ESCOLAR 2024 Comités y Compromisos.pptx
 
periodico mural y sus partes y caracteristicas
periodico mural y sus partes y caracteristicasperiodico mural y sus partes y caracteristicas
periodico mural y sus partes y caracteristicas
 
Aedes aegypti + Intro to Coquies EE.pptx
Aedes aegypti + Intro to Coquies EE.pptxAedes aegypti + Intro to Coquies EE.pptx
Aedes aegypti + Intro to Coquies EE.pptx
 
Tema 7.- E-COMMERCE SISTEMAS DE INFORMACION.pdf
Tema 7.- E-COMMERCE SISTEMAS DE INFORMACION.pdfTema 7.- E-COMMERCE SISTEMAS DE INFORMACION.pdf
Tema 7.- E-COMMERCE SISTEMAS DE INFORMACION.pdf
 
VOLUMEN 1 COLECCION PRODUCCION BOVINA . SERIE SANIDAD ANIMAL
VOLUMEN 1 COLECCION PRODUCCION BOVINA . SERIE SANIDAD ANIMALVOLUMEN 1 COLECCION PRODUCCION BOVINA . SERIE SANIDAD ANIMAL
VOLUMEN 1 COLECCION PRODUCCION BOVINA . SERIE SANIDAD ANIMAL
 
PPTX: La luz brilla en la oscuridad.pptx
PPTX: La luz brilla en la oscuridad.pptxPPTX: La luz brilla en la oscuridad.pptx
PPTX: La luz brilla en la oscuridad.pptx
 
FICHA DE MONITOREO Y ACOMPAÑAMIENTO 2024 MINEDU
FICHA DE MONITOREO Y ACOMPAÑAMIENTO  2024 MINEDUFICHA DE MONITOREO Y ACOMPAÑAMIENTO  2024 MINEDU
FICHA DE MONITOREO Y ACOMPAÑAMIENTO 2024 MINEDU
 
PLANIFICACION ANUAL 2024 - INICIAL UNIDOCENTE.docx
PLANIFICACION ANUAL 2024 - INICIAL UNIDOCENTE.docxPLANIFICACION ANUAL 2024 - INICIAL UNIDOCENTE.docx
PLANIFICACION ANUAL 2024 - INICIAL UNIDOCENTE.docx
 
cuadernillo de lectoescritura para niños de básica
cuadernillo de lectoescritura para niños de básicacuadernillo de lectoescritura para niños de básica
cuadernillo de lectoescritura para niños de básica
 
Estrategias de enseñanza - aprendizaje. Seminario de Tecnologia..pptx.pdf
Estrategias de enseñanza - aprendizaje. Seminario de Tecnologia..pptx.pdfEstrategias de enseñanza - aprendizaje. Seminario de Tecnologia..pptx.pdf
Estrategias de enseñanza - aprendizaje. Seminario de Tecnologia..pptx.pdf
 
TL/CNL – 2.ª FASE .
TL/CNL – 2.ª FASE                       .TL/CNL – 2.ª FASE                       .
TL/CNL – 2.ª FASE .
 
La Función tecnológica del tutor.pptx
La  Función  tecnológica  del tutor.pptxLa  Función  tecnológica  del tutor.pptx
La Función tecnológica del tutor.pptx
 
Mapa Mental de estrategias de articulación de las areas curriculares.pdf
Mapa Mental de estrategias de articulación de las areas curriculares.pdfMapa Mental de estrategias de articulación de las areas curriculares.pdf
Mapa Mental de estrategias de articulación de las areas curriculares.pdf
 
La luz brilla en la oscuridad. Necesitamos luz
La luz brilla en la oscuridad. Necesitamos luzLa luz brilla en la oscuridad. Necesitamos luz
La luz brilla en la oscuridad. Necesitamos luz
 
Instrucciones para la aplicacion de la PAA-2024b - (Mayo 2024)
Instrucciones para la aplicacion de la PAA-2024b - (Mayo 2024)Instrucciones para la aplicacion de la PAA-2024b - (Mayo 2024)
Instrucciones para la aplicacion de la PAA-2024b - (Mayo 2024)
 
BIOLOGIA_banco de preguntas_editorial icfes examen de estado .pdf
BIOLOGIA_banco de preguntas_editorial icfes examen de estado .pdfBIOLOGIA_banco de preguntas_editorial icfes examen de estado .pdf
BIOLOGIA_banco de preguntas_editorial icfes examen de estado .pdf
 
Manejo del Dengue, generalidades, actualización marzo 2024 minsa
Manejo del Dengue, generalidades, actualización marzo 2024 minsaManejo del Dengue, generalidades, actualización marzo 2024 minsa
Manejo del Dengue, generalidades, actualización marzo 2024 minsa
 
DIA INTERNACIONAL DAS FLORESTAS .
DIA INTERNACIONAL DAS FLORESTAS         .DIA INTERNACIONAL DAS FLORESTAS         .
DIA INTERNACIONAL DAS FLORESTAS .
 
Earth Day Everyday 2024 54th anniversary
Earth Day Everyday 2024 54th anniversaryEarth Day Everyday 2024 54th anniversary
Earth Day Everyday 2024 54th anniversary
 

Trabajo De Compu Algoritmos

  • 1. - Consultar 3 Algoritmos para encriptación de claves 1. Diffie-Hellman El protocolo Diffie-Hellman1 (debido a Whitfield Diffie y Martin Hellman) permite el intercambio secreto de claves entre dos partes que no han tenido contacto previo, utilizando un canal inseguro, y de manera anónima (no autenticada). Se emplea generalmente como medio para acordar claves simétricas que serán empleadas para el cifrado de una sesión. Siendo no autenticado, sin embargo provee las bases para varios protocolos autenticados. Su seguridad radica en la extrema dificultad (conjeturada, no demostrada) de calcular logaritmos discretos en un campo finito. • Versión básica Diffie-Hellman Para dos partes A y B que intentan establecer una clave secreta y un adversario E, la versión básica es como sigue: • Se establecen un primo p y un generador (2 ). Estos son públicos, conocidos no sólo por las partes A y B sino también por el adversario E. • A escoge al azar, calcula X = gxmod p, y envía X a B • B escoge al azar, calcula Y = gymod p, y envía Y a A Nótese que Xy = (gx)y = gxy = (gy)x = Yx, con todas las operaciones en el grupo . Llamemos K a esta cantidad común: el hecho destacable es que ambas partes pueden calcularla, y por lo tanto obtener una clave compartida.
  • 2. Un adversario E que poseyera p, g, X e Y, podría calcular el secreto compartido si tuviera también uno de los valores privados (x o y) o lograse invertir la función. Pero calcular x dado X es el problema del logaritmo discreto en , un problema que se cree intratable computacionalmente. El mismo protocolo, y otros basados en este, pueden llevarse a cabo en cualquier grupo en que a la vez la exponenciación sea simple y el logaritmo discreto difícil, como el grupo multiplicativo análogo de los campos de Galois o el grupo de puntos definidos por una curva elíptica sobre un campo finito. Sin embargo, el protocolo es sensible a ataques activos del tipo "hombre en el medio" (mitm, man-in-the-middle). Si la comunicación es interceptada por un tercero, éste se puede hacer pasar por el emisor cara al destinatario y viceversa, ya que no se dispone de ningún mecanismo para validar la identidad de los participantes en la comunicación. Así, el "hombre en el medio" podría acordar una clave con cada participante y retransmitir los datos entre ellos, escuchando la conversación en ambos sentidos. Ejemplo del protocolo
  • 3. A B Sec Calc Calc Sec p, g p, g a b 1. A y B acuerdan usar el número primo p=23 y la base g=5. 2. A elige un número secreto a=6, luego envía a B (ga mod … p) ga mod p o 56 mod 23 = 8. 3. B elige un número secreto b=15, luego envía a A (gb mod gb mod p p) … o 515 mod 23 = 19. 4. A calcula (gb mod p)a mod p o 196 mod 23 = 2. 5. B calcula (ga mod p)b mod p = (gb mod p)a mod p (ga mod p)b mod p o 815 mod 23 = 2. Valores mucho más grandes de a,b y p se necesitarían para hacer este ejemplo seguro. Dado que es muy sencillo probar todos los valores posibles de gab mod 23 (habrá, como máximo, 22 valores, inclusive si a y b son números grandes). Si p fuera un primo de
  • 4. más de 300 dígitos, y a y b fueran por lo menos de 100 dígitos, entonces hasta el mejor algoritmo para encontrar a dado g, p, y ga mod p tomaría más tiempo que la vida del universo para resolverse. g no necesita ser grande, y en la práctica es usualmente 2 o 5. Versiones más complejas • El protocolo ElGamal de negociación de claves3 provee negociación en un solo paso y autenticación unilateral (del receptor hacia el emisor) si la clave pública del receptor es conocida de antemano por el emisor. • El protocolo MTI/A0,4 empleando dos mensajes y sin requerir firmas, proporciona claves de sesión variables en el tiempo con mutua autenticación implícita de claves contra ataques pasivos. • El protocolo STS5 es una variante de tres pasos de la versión básica que permite el establecimiento de una clave secreta compartida entre dos partes con mutua autenticación de entidades y mutua autenticación explícita de las claves. El protocolo también facilita el anonimato: las identidades de A y B pueden protegerse contra el adversario E. El método emplea firmas digitales. RSA El sistema criptográfico con clave pública RSA es un algoritmo asimétrico cifrador de bloques, que utiliza una clave pública, la cual se distribuye (en forma autenticada preferentemente), y otra privada, la cual es guardada en secreto por su propietario. Una clave es un número de gran tamaño, que una persona puede conceptualizar como un mensaje digital, como un archivo binario o como una cadena de bits o bytes. Cuando se quiere enviar un mensaje, el emisor busca la clave pública de cifrado del receptor, cifra su mensaje con esa clave, y una vez que el mensaje cifrado llega al receptor, éste se ocupa de descifrarlo usando su clave oculta. Los mensajes enviados usando el algoritmo RSA se representan mediante números y el funcionamiento se basa en el producto de dos números primos grandes (mayores que 10100) elegidos al azar para conformar la clave de descifrado. Emplea expresiones exponenciales en aritmética modular. La seguridad de este algoritmo radica en que no hay maneras rápidas conocidas de factorizar un número grande en sus factores primos utilizando computadoras tradicionales. La computación cuántica podría proveer una solución a este problema de factorización. Cifrado de mensajes Ejemplo rápido: Bob quiere enviar a Alicia un mensaje secreto que solo ella pueda leer.
  • 5. 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 padding scheme. 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 exponentiation by squaring (llamado también exponenciación binaria). Bob transmite c a Alicia. 1. Cada usuario elige n = p·q 2. Los valores p y q NO se hacen públicos 3. 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)] = 1 5. Cada usuario calcula la clave privada d = inv [e,ϕ(n)] 6. Se hace público el grupo n y la clave e 7. Se guarda en secreto la clave d Cifra: C = NeR mod nR Firma: C = h(M)dE mod nE Ejemplo Aquí tenemos un ejemplo de cifrado/descifrado con RSA. Los parámetros usados aquí son pequeños y orientativos con respecto a los que maneja el algoritmo, pero podemos usar también OpenSSL para generar y examinar una par de claves reales. 1º nº primo p=61 Privado q=53 2º nº primo
  • 6. Privado n=pq=3233 producto p*q exponente e=17 Público exponente d=2753 Privado La clave pública (e, n). La clave privada es d. La función de cifrado es: encrypt(m) = me(mod n) = m17(mod 3233) Donde m es el texto sin cifrar. La función de descifrado es: decrypt(c) = cd(mod n) = 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. 2. Padding schemes (Esquema de relleno RSA debe ser combinado con alguna versión del padding scheme, ya que si no el valor de M puede llevar a textos cifrados inseguros. RSA usado sin padding scheme podría sufrir muchos problemas. • El valor m=0 o m=1 siempre produce textos cifrados iguales para 0 o 1 respectivamente, debido a propiedades de los exponentes. • Cuando ciframos con exponentes pequeños (e=3) y valores pequeños de m, el resultado de m podría ser estrictamente menor que el módulo de n. En este caso, el texto cifrado podría ser fácilmente descifrado, tomando la raíz e-ésima del texto cifrado sin tener en cuenta el módulo.
  • 7. Dado que el cifrado RSA es un algoritmo determinista (no tiene componentes aleatorios) un atacante puede lanzar con éxito un ataque de texto elegido contra el criptosistema, construyendo un diccionario de textos probables con la llave pública, y almacenando el resultado cifrado. Observando los textos cifrados en un canal de comunicación, el atacante puede usar este diccionario para descifrar el contenido del mensaje. En la práctica, el primero de los dos problemas podría presentarse cuando enviamos pequeños mensajes ASCII donde m es la concatenación de uno o más carácter/es ASCII codificado/s. Un mensaje consiste en un solo carácter ASCII NUL (cuyo valor es 0) se codificaría como m=0, produciendo un texto cifrado de 0 sin importar qué valores de e y N son usados. Probablemente, un solo ASCII SOH (cuyo valor es 1) produciría siempre un texto cifrado de 1. Para sistemas convencionales al usar valores pequeños de e, como 3, un solo carácter ASCII mensaje codificado usando este esquema sería inseguro, ya que el máximo valor de m sería 255, y 255³ es menor que cualquier módulo razonable. De esta manera los textos sin cifrar podrían ser recuperados simplemente tomando la raíz cúbica del texto cifrado. Para evitar estos problemas, la implementación práctica del RSA se ayuda de algunas estructuras, uso del randomized padding dentro del valor de m antes del cifrado. Esta técnica asegura que m no caerá en el rango de textos sin cifrar inseguros, y que dado un mensaje, una vez que este rellenado, cifrará uno de los números grandes de los posibles textos cifrados. La última característica es la incrementación del diccionario haciendo este intratable a la hora de realizar un ataque. Estándares como PKCS han sido cuidadosamente diseñados para la seguridad de los de mensajes importantes con el cifrado RSA. Porque el pad scheme rellena el texto sin cifrar m con algunos números adicionales (bits); el tamaño del mensaje un-padded M debe ser algo más pequeño. RSA-padding scheme debe ser cuidadosamente diseñado así como para prevenir ataques sofisticados los cuales podrían ser facilitados por la predictibilidad de la estructura del mensaje. Versiones más recientes del PKCS Standard usando construcciones ad-hoc, las cuales fueron encontradas vulnerabilidades más tarde en la practica adaptativa de elección de ataques de textos cifrados. Las construcciones modernas usan técnicas seguras como Optimal Asymetric Encryption Padding (OAEP) para proteger los mensajes mientras previenen estos ataques. El PKCS estándar también incorpora procesado de esquemas diseñados para proveer adicionalmente la seguridad de autentificaciones RSA. Por ejemplo: the Probabilistic Signature Scheme for RSA (RSA-PSS). Autenticación de mensajes RSA puede también ser usado para autenticar un mensaje. Supongamos que Alicia desea enviar un mensaje autentificado a Bob. Ella produce un valor hash del mensaje, aumenta la potencia de d≡ mod n (como ella hace cuando descifra mensajes), y marca con una “firma” el mensaje. Cuando Bob recibe el mensaje autentificado, él aumenta la autentificación para aumentar e≡ mod n (como hace él cuando cifra menajes), y compara el resultado hash con el actual valor hash del mensaje. Si es el resultado, el conoce que el autor del mensaje estaba en posesión de la clave secreta de Alicia, y que el mensaje no ha sido tratado de forzar entonces (no ha sufrido ataques).
  • 8. Observar que la seguridad de padding-scheme como RSA-PSS son esenciales para la seguridad del mensaje cifrado, y que la misma clave nunca debería ser usada para ambos cifrados ni los propósitos de autentificación. Seguridad La seguridad del criptosistema RSA está basado en dos problemas matemáticos: el problema de factorizar números grandes y el problema RSA. El descifrado completo de un texto cifrado con RSA es computacionalmente intratable, no se ha encontrado un algoritmo eficiente todavía para ambos problemas. Proveyendo la seguridad contra el descifrado parcial podría requerir la adición de una seguridad padding scheme. El problema del RSA se define como la tarea de tomar raíces eth módulo a componer n: recuperando un valor m tal que me=c ≡mod n, donde (e, n) es una clave pública RSA y c es el texto cifrado con RSA. Actualmente la aproximación para solventar el problema del RSA es el factor del módulo n. Con la capacidad para recuperar factores primos, un atacante puede computar el exponente secreto d desde una clave pública (e, n), entonces descifra c usando el procedimiento standard. Para conseguir esto, un atacante factoriza n en p y q, y computa (p-1)(q-1) con lo que le permite determinar d y e. No se ha encontrado ningún método en tiempo polinómico para la factorización de enteros largos. Ver factorización de enteros para la discusión de este problema. La factorización de números grandes por lo general proponen métodos teniendo 663 bits de longitud usando métodos distribuidos avanzados. Las claves RSA son normalmente entre 1024-2048 bits de longitud. Algunos expertos creen que las claves de 1024 bits podrían comenzar a ser débiles en poco tiempo; con claves de 4096 bits podrían ser rotas en un futuro. Por lo tanto, si n es suficientemente grande el algoritmo RSA es seguro. Si n tiene 256 bits o menos, puede ser factorizado en pocas horas con un computador personal, usando software libre. Si n tiene 512 bits o menos, puede ser factorizado por varios cientos de computadoras como en 1999. Un dispositivo hardware teórico llamado TWIRL descrito por Shamir y Tromer en el 2003 cuestionó a la seguridad de claves de 1024 bits. Es actualmente recomendado que n sea como mínimo de 2048 bits de longitud. En 1993, Peter Shor publicó su algoritmo, mostrando que una computadora cuántica podría en principio mejorar la factorización en tiempo polinomial, mostrando RSA como un algoritmo obsoleto. Sin embargo, las computadoras cuánticas no se esperan que acaben su desarrollo hasta dentro de muchos años. Generación de claves Buscando números primos grandes p y q por el test de aleatoriedad y realizando tests probabilísticos de primalidad los cuales eliminan virtualmente todos los no-primos (eficientemente). Los números p y q no deberían ser suficientemente cercanos para que la factorización de Fermat para n sea exitosa. Además, si cualquier p-1 o q-1 tiene sólo factores primos pequeños, n puede ser factorizado rápidamente, con lo que estos valores de p o q deben ser descartados.
  • 9. Uno no debería emplear un método de búsqueda de primos con el cual dar alguna información cualquiera sobre los primos al atacante. En particular, un buen generador aleatorio de números primos para el comienzo del valor empleado. Observar que el requerimiento esta en ambos ‘aleatorios’ e ‘impredecibles’. Esto no son los mismos criterios; un número podría haber sido elegido por un proceso aleatorio, pero si éste es predecible de cualquier forma (o parcialmente predecible), el método usado resultara una seguridad baja. Por ejemplo: la tabla de números aleatorios de Rand Corp en 1950 podría muy bien ser verdaderamente aleatoria, pero ha sido publicada y a ésta puede acceder el atacante. Si el atacante puede conjeturar la mitad de los dígitos de p o q, ellos podrían rápidamente computar la otra mitad. (Ver Coppersmith en 1997). Es importante que la clave secreta d sea muy grande. Wiener mostró en 1990 que si p esta entre q y 2q (es típico) y d<n1/4/3, entonces d puede ser computado eficientemente de n y e. Aunque valores de e son bajos como 3 han sido usados en el pasado, los exponentes pequeños en RSA esta actualmente en desuso, por razones incluyendo el unpadded del texto sin cifrar, vulnerabilidad listada sobre 65537 es normalmente usado para el valor de e, considerado demasiado grande para evitar ataques de exponenciación pequeños, de hecho tiene un peso de hamming suficiente para facilitar una exponenciación eficiente Velocidad RSA es mucho más lento que DES y que otros criptosistemas simétricos. En la practica, Bob normalmente cifra mensajes con algoritmos simétricos, cifra la clave simétrica con RSA, y transmite a ambos la clave simétrica RSA-cifrada y el mensaje simétricamente- cifrado a Alicia. Esto plantea además problemas adicionales de seguridad, por ejemplo, es de gran importancia usar un generador aleatorio fuerte para claves simétricas, porque de otra forma Eve (un atacante que quiera averiguar el contenido del mensaje) podría puentear la clave simétrica de RSA mediante la adivinación de la clave simétrica. Distribución de claves Como todos los cifrados, es importante como se distribuyan las claves públicas del RSA. La distribución de la clave debe ser segura contra un atacante que se disponga a espiar el canal para hacer un ataque de replay. Supongamos Eve (atacante) tiene alguna forma de dar a Bob arbitrariamente claves y hacerle creer que provienen de Alicia. Supongamos que Eve puede interceptar transmisiones entre Alicia y Bob. Eve envía a Bob su propia clave pública, como Bob cree que es de Alicia. Eve puede entonces interceptar cualquier texto cifrado enviado por Bob, descifrarlo con su propia clave secreta, guardar una copia del mensaje, cifrar el mensaje con la clave pública de Alicia, y enviar el nuevo texto cifrado a Alicia. En principio, ni Alicia ni Bob han detectado la presencia de Eve. Contra la defensa de ataques algunos están basados en certificados digitales u otros componentes de infraestructuras de la clave pública. 3. DSA DSA (Digital Signature Algorithm, en español Algoritmo de Firma digital) es un estándar del Gobierno Federal de los Estados Unidos de América o FIPS para firmas
  • 10. digitales. Fue un Algoritmo propuesto por el Instituto Nacional de Normas y Tecnología de los Estados Unidos para su uso en su Estándar de Firma Digital(DSS), especificado en el FIPS 186. DSA se hizo público el 30 de agosto de 1991, este algoritmo como su nombre lo indica, sirve para firmar y no para cifrar información. Una desventaja de este algoritmo es que requiere mucho más tiempo de cómputo que RSA. Generación de llaves • Elegir un número primo p de L bits, donde 512 ≤ L ≤ 1024 y L es divisible por 64. • Elegir un número primo q de 160 bits, tal que p−1 = qz, donde z es algún número natural. • Elegir h, donde 1 < h < p − 1 tal que g = hz(mod p) > 1. • Elegir x de forma aleatoria, donde 1 < x < q-1. • Calcular y = gx(mod p). Los datos públicos son p, q, g e y. x es la llave privada. FirmaElegir un número aleatorio s, donde 1 < s < q. • Calcular s1 = (gs mod p)mod q. • Calcular s2 = s-1(H(m)+s1*x)mod q, donde H(m) es la función hash SHA-1 aplicada al mensaje m. • La firma es el par (s1, s2). Si s1 o s2 es cero, se vuelve a repetir el procedimiento. Verificación [Calcular w = (s2)-1(mod q). • Calcular u1 = H(m)*w(mod q). • Calcular u2 = s1*w(mod q). • Calcular v = [gu1*yu2mod p]mod q. • La firma es válida si v = s1. Demostración del algoritmo El esquema de la firma está correcto en el sentido que el verificador aceptará siempre firmas genuinas. Esto puede ser demostrada como sigue: De g = hz mod p sigue gq ≡ hqz ≡ hp-1 ≡ 1 (mod p) por Pequeño teorema de Fermat. Ya que g>1 y q es primo sigue que g tiene orden q. El firmante computa Entonces
  • 11. Ya que g tiene orden q tenemos que Finalmente, la correctitud de DSA surge de