SlideShare una empresa de Scribd logo
1 de 19
Descargar para leer sin conexión
Cifrados
Asimétricos
● Alejandro Larraondo Lamchog
● Ingrid Espinel Quispe
● Katherine Uñapilco Chambi
DSA
DSA o 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 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.
Características
Requisitos de la firma digital:
a) Debe ser fácil de generar.
b) Será irrevocable, no rechazable por su propietario.
c) Será única, sólo posible de generar por su propietario.
d) Será fácil de autenticar o reconocer por su propietario y los usuarios receptores.
e) Debe depender del mensaje y del autor
Firma Digital
Supongamos que A quiere enviar un mensaje a B. Este mensaje puede ir cifrado o no, pero
A está interesado en "firmar" el mensaje de forma que B pueda estar seguro que el
mensaje que le llega ha sido originado por A y no por ninguna otra entidad. Los pasos que
A seguirá son:
1. Crea un resumen (digest) del mensaje que quiere enviar, utilizando una función hash
2. Representa este resumen como un entero M entre 0 y n-1
3. Usa su propia clave privada (dA,nA) para computar la firma S= (M)dA mod nA
4. Envía esa firma S al receptor B conjuntamente con el mensaje original (que puede ir
cifrado o no, según se quiera). Evidentemente, la firma S no podrá ser manipulada
por nadie una vez generada, porque si se cambia un sólo bit de la firma fallaría la
verificación de ésta en destino.
Verificación de Firma Digital
Cuando B recibe la firma S y el mensaje de A, sigue estos pasos:
● Utiliza la clave pública del remitente A para computar V = (S)eA mod nA
● Del entero V obtiene el resumen r del mensaje tal y como fue computado por A
● Paralelamente, computa un resumen r' del mensaje que le ha llegado utilizando la
función hash correspondiente
● Si ambos resúmenes r y r' coinciden, entonces queda verificada la firma. Entonces
puede asegurarse que el mensaje solo ha podido ser originado por A y además el
mensaje ha llegado íntegramente (sin ver alterado su contenido durante la
transmisión por el canal inseguro) hasta B.
Criptosistema de Merkle-Hellman
Merkle-Hellman (MH) fue uno de los primeros criptosistemas de
llave pública y fue inventado por Ralph Merkle y Martin Hellman en
1978.
Es un criptosistema asimétrico, esto significa que para la
comunicación, se necesitan dos llaves:
- Una llave pública (Sólo para cifrar)
- Una privada (Sólo para descifrar)
Sirve sólo para cifrado. De este modo, no se puede usar para tareas
de autentificación por firma electrónica.
Basado en el problema de la suma del subconjunto (un caso especial del problema de la
mochila). Tenemos lo siguiente: dado un conjunto de números "a" y un número "b",
encuentre un subconjunto de "a", que dada su suma salga "b". Por ejemplo:
a = [ 1 ,3, 6, 2, 5] b = 8
Sa = [ 3 , 5 ]
Usaremos esto en la operación de descifrado.
NOTA: Merkle-Hellman no se utiliza actualmente puesto que fue rota a principios de los
años 80 por Adi Shamir.
Ataque por fuerza bruta
Un sistema de Merkle-Hellman que utilice una mochila de n = 100 elementos no es
sensible a un ataque por fuerza bruta (un ordenador capaz de 10⁶ operaciones por
segundo tardaría 1046 años en probar todas las mochilas super crecientes)
Debilidades
Adi Shamir y Richard Zippel encontraron debilidades cuando:
- Se conoce el módulo (q) o puede deducirse.
- Los dos primeros elementos de la clave pública corresponden con los dos
primeros elementos de la clave privada y son primos con el módulo “q”.
- Con estos datos, podemos generar la clave privada a partir de la pública ya
que encontraremos el inverso multiplicativo modular s’ = inv(q,r).
Generación de las claves
Las claves están compuestas por secuencias.
Restricciones de la clave:
- Clave pública es una secuencia "difícil".
- Clave privada es una secuencia "fácil" (de “n” valores super crecientes),
acompañados de un multiplicador(r) y un módulo(q), los cuales se usan para
convertir la secuencia super creciente en una secuencia difícil.
- Se recomienda que “n” sea mayor o igual que 100.
- r y q son coprimos, es decir, mcd ( r, q) = 1.
- El módulo (q) debe ser mayor a la sumatoria de los valores de la clave privada.
- La clave privada genera la clave pública (su longitud también será “n”).
Sea nuestra sucesión super creciente:
Ejemplo: [1, 3, 5, 12, 24, 46]
Cifrado
Para cifrar un mensaje, se lo divide en subsecuencias que tengan la longitud (n) de la clave
pública, luego se eligen los elementos de la secuencia difícil (clave privada) emparejando las
posiciones. Finalmente se suman los elementos elegidos, y nos sale el texto cifrado.
Secuencia difícil (Clave pública) : [81, 108, 88, 48, 96, 64]
Palabra=000010000000001110001101
Deberá dividir el mensaje en cadenas de 6 : 000010 000000 001110 001101
El primero: 81x0 + 108x0 + 88x0 + 48x0 + 96x1 + 64x0 = 96.
El segundo: 81x0 + 108x0 + 88x0 + 48x0 + 96x0 + 64x0 = 0.
El tercero: 81x0 + 108x0 + 88x1 + 48x1 + 96x1 + 64x0 = 232.
El cuarto: 81x0 + 108x0 + 88x1 + 48x1 + 96x0 + 64x1 = 200.
El mensaje codificado es: [ 96,0,232,200 ]
Descifrado
El descifrado es posible, porque el multiplicador y el módulo usados para transformar la
llave privada en la llave pública, también pueden ser usados para transformar el texto
cifrado (representado por un número) en la suma de los elementos que conforman la
subsecuencia super creciente.
Aplicando la fórmula para descifrar:
c’ : texto descifrado
c : texto cifrado
Si el mensaje codificado es: [ 96,0,232,200 ] , q = 155
Aplicando:
96x23 (módulo 155) = 2208 (módulo 155) = 38 = 000010.
Donde s es el inverso del módulo (inverso multiplicativo modular) de q y r.
De tal manera que se cumple:
r * s(mod q) = 1
EJEMPLO
Clave privada:
[3, 4, 9, 19, 38, 77]
con r = 27 y q = 155
Clave pública:
3 x 27 (mod 155) = 81
4 x 27 (mod 155) = 108
9 x 27 (mod 155) =88
19 x 27 (mod 155) =48
38 x 27 (mod 155) =96
77 x 27 (mod 155) =64
[81, 108, 88, 48, 96, 64]
Palabra=000010000000001110001101
Deberá dividir el mensaje en cadenas de 6
000010 000000 001110 001101
El primero: 81x0 + 108x0 + 88x0 + 48x0 + 96x1 + 64x0 = 96.
El segundo: 81x0 + 108x0 + 88x0 + 48x0 + 96x0 + 64x0 = 0
El tercero: 81x0 + 108x0 + 88x1 + 48x1 + 96x1 + 64x0 = 232.
El cuarto: 81x0 + 108x0 + 88x1 + 48x1 + 96x0 + 64x1 = 200.
El mensaje codificado es: [ 96,0,232,200 ]
Utilizando los valores de la clave pública,
se codificará el mensaje
Clave pública: [81, 108, 88, 48, 96, 64]
Mensaje: 000010 000000 001110 001101
Clave privada: [3, 4, 9, 19, 38, 77]
Se calcula (usando el Algoritmo de Euclides extendido) el inverso
del módulo de 27 y 155 que vale 23.
Utiliza a continuación su clave privada para descifrar y obtiene:
96x23 (módulo 155) = 2208 (módulo 155) = 38 = 000010.
0x23 (módulo 155) = 0 (módulo 155) = 0 = 000000.
232x23 (módulo 155) = 5336 (módulo 155) = 66 = 9 + 19 + 38 = 001110.
200x23 (módulo 155) = 4600 (módulo 155) = 105 = 9 + 19 + 77 = 001101.
El mensaje codificado es: [ 96,0,232,200 ]
Algoritmo voraz

Más contenido relacionado

La actualidad más candente

Password Management
Password ManagementPassword Management
Password ManagementRick Chin
 
Two factor authentication 2018
Two factor authentication 2018Two factor authentication 2018
Two factor authentication 2018Will Adams
 
S/MIME & E-mail Security (Network Security)
S/MIME & E-mail Security (Network Security)S/MIME & E-mail Security (Network Security)
S/MIME & E-mail Security (Network Security)Prafull Johri
 
What is SSL ? The Secure Sockets Layer (SSL) Protocol
What is SSL ? The Secure Sockets Layer (SSL) ProtocolWhat is SSL ? The Secure Sockets Layer (SSL) Protocol
What is SSL ? The Secure Sockets Layer (SSL) ProtocolMohammed Adam
 
5. message authentication and hash function
5. message authentication and hash function5. message authentication and hash function
5. message authentication and hash functionChirag Patel
 
Secure Socket Layer (SSL)
Secure Socket Layer (SSL)Secure Socket Layer (SSL)
Secure Socket Layer (SSL)Samip jain
 
Operating system security
Operating system securityOperating system security
Operating system securitySarmad Makhdoom
 
Cryptography - An Overview
Cryptography - An OverviewCryptography - An Overview
Cryptography - An Overviewppd1961
 
Advanced encryption standard (aes)
Advanced encryption standard (aes)Advanced encryption standard (aes)
Advanced encryption standard (aes)farazvirk554
 
Pgp pretty good privacy
Pgp pretty good privacyPgp pretty good privacy
Pgp pretty good privacyPawan Arya
 
One Time Pad Encryption Technique
One Time Pad Encryption TechniqueOne Time Pad Encryption Technique
One Time Pad Encryption TechniqueJohn Adams
 
Symmetric and Asymmetric Encryption.ppt
Symmetric and Asymmetric Encryption.pptSymmetric and Asymmetric Encryption.ppt
Symmetric and Asymmetric Encryption.pptHassanAli980906
 
Message Authentication using Message Digests and the MD5 Algorithm
Message Authentication using Message Digests and the MD5 AlgorithmMessage Authentication using Message Digests and the MD5 Algorithm
Message Authentication using Message Digests and the MD5 AlgorithmAjay Karri
 
Secure Socket Layer
Secure Socket LayerSecure Socket Layer
Secure Socket LayerNaveen Kumar
 

La actualidad más candente (20)

Password Management
Password ManagementPassword Management
Password Management
 
Two factor authentication 2018
Two factor authentication 2018Two factor authentication 2018
Two factor authentication 2018
 
Encryption algorithms
Encryption algorithmsEncryption algorithms
Encryption algorithms
 
S/MIME & E-mail Security (Network Security)
S/MIME & E-mail Security (Network Security)S/MIME & E-mail Security (Network Security)
S/MIME & E-mail Security (Network Security)
 
S/MIME
S/MIMES/MIME
S/MIME
 
Elgamal
ElgamalElgamal
Elgamal
 
What is SSL ? The Secure Sockets Layer (SSL) Protocol
What is SSL ? The Secure Sockets Layer (SSL) ProtocolWhat is SSL ? The Secure Sockets Layer (SSL) Protocol
What is SSL ? The Secure Sockets Layer (SSL) Protocol
 
5. message authentication and hash function
5. message authentication and hash function5. message authentication and hash function
5. message authentication and hash function
 
Secure Socket Layer (SSL)
Secure Socket Layer (SSL)Secure Socket Layer (SSL)
Secure Socket Layer (SSL)
 
LA CRIPTOGRAFIA
LA CRIPTOGRAFIALA CRIPTOGRAFIA
LA CRIPTOGRAFIA
 
Operating system security
Operating system securityOperating system security
Operating system security
 
Cryptography - An Overview
Cryptography - An OverviewCryptography - An Overview
Cryptography - An Overview
 
Advanced encryption standard (aes)
Advanced encryption standard (aes)Advanced encryption standard (aes)
Advanced encryption standard (aes)
 
Pgp pretty good privacy
Pgp pretty good privacyPgp pretty good privacy
Pgp pretty good privacy
 
One Time Pad Encryption Technique
One Time Pad Encryption TechniqueOne Time Pad Encryption Technique
One Time Pad Encryption Technique
 
Firewall in Network Security
Firewall in Network SecurityFirewall in Network Security
Firewall in Network Security
 
Symmetric and Asymmetric Encryption.ppt
Symmetric and Asymmetric Encryption.pptSymmetric and Asymmetric Encryption.ppt
Symmetric and Asymmetric Encryption.ppt
 
Message Authentication using Message Digests and the MD5 Algorithm
Message Authentication using Message Digests and the MD5 AlgorithmMessage Authentication using Message Digests and the MD5 Algorithm
Message Authentication using Message Digests and the MD5 Algorithm
 
Secure Socket Layer
Secure Socket LayerSecure Socket Layer
Secure Socket Layer
 
Email security
Email securityEmail security
Email security
 

Similar a Cifrado Asimetrico

Up encriptacion publica v1.2
Up encriptacion publica v1.2Up encriptacion publica v1.2
Up encriptacion publica v1.2Meme delaTower
 
Algoritmos De Encriptacion Para
Algoritmos De Encriptacion ParaAlgoritmos De Encriptacion Para
Algoritmos De Encriptacion ParaAndy Arevalo
 
Algoritmos Para Encriptar Claves
Algoritmos Para Encriptar ClavesAlgoritmos Para Encriptar Claves
Algoritmos Para Encriptar ClavesDiana Yánez
 
Medidas seguridad implementadas en Nepcom
Medidas seguridad implementadas en NepcomMedidas seguridad implementadas en Nepcom
Medidas seguridad implementadas en NepcomNepcom
 
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
 
Criptografia.pdf
Criptografia.pdfCriptografia.pdf
Criptografia.pdfAndresTini
 
Encriptacion De Claves Publicas Y Claves Privadas
Encriptacion De Claves Publicas Y Claves PrivadasEncriptacion De Claves Publicas Y Claves Privadas
Encriptacion De Claves Publicas Y Claves Privadaschristian
 
Encriptacion De Claves Publicas Y Claves Privadas
Encriptacion De Claves Publicas Y Claves PrivadasEncriptacion De Claves Publicas Y Claves Privadas
Encriptacion De Claves Publicas Y Claves Privadaschristian
 
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
 
CIFRADO DE CLAVE PUBLICA Y PRIVADA
CIFRADO DE CLAVE PUBLICA Y PRIVADACIFRADO DE CLAVE PUBLICA Y PRIVADA
CIFRADO DE CLAVE PUBLICA Y PRIVADAdanyro
 

Similar a Cifrado Asimetrico (20)

Up encriptacion publica v1.2
Up encriptacion publica v1.2Up encriptacion publica v1.2
Up encriptacion publica v1.2
 
Algoritmos De Encriptacion Para
Algoritmos De Encriptacion ParaAlgoritmos De Encriptacion Para
Algoritmos De Encriptacion Para
 
Algoritmos Para Encriptar Claves
Algoritmos Para Encriptar ClavesAlgoritmos Para Encriptar Claves
Algoritmos Para Encriptar Claves
 
Criptosistemas
CriptosistemasCriptosistemas
Criptosistemas
 
Rsa eddy montalvan
Rsa eddy montalvanRsa eddy montalvan
Rsa eddy montalvan
 
Cifrado por RSA.
Cifrado por RSA.Cifrado por RSA.
Cifrado por RSA.
 
Xjj
XjjXjj
Xjj
 
poco de encriptacion
poco de encriptacionpoco de encriptacion
poco de encriptacion
 
Rsa
RsaRsa
Rsa
 
Medidas seguridad implementadas en Nepcom
Medidas seguridad implementadas en NepcomMedidas seguridad implementadas en Nepcom
Medidas seguridad implementadas en Nepcom
 
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 ...
 
RSA
RSARSA
RSA
 
Flores Carrera Jennifer 1 A
Flores Carrera Jennifer 1 AFlores Carrera Jennifer 1 A
Flores Carrera Jennifer 1 A
 
algorimos claves publicas y privadas
algorimos claves publicas y privadasalgorimos claves publicas y privadas
algorimos claves publicas y privadas
 
Aclarando dudas sobre RSA
Aclarando dudas sobre RSAAclarando dudas sobre RSA
Aclarando dudas sobre RSA
 
Criptografia.pdf
Criptografia.pdfCriptografia.pdf
Criptografia.pdf
 
Encriptacion De Claves Publicas Y Claves Privadas
Encriptacion De Claves Publicas Y Claves PrivadasEncriptacion De Claves Publicas Y Claves Privadas
Encriptacion De Claves Publicas Y Claves Privadas
 
Encriptacion De Claves Publicas Y Claves Privadas
Encriptacion De Claves Publicas Y Claves PrivadasEncriptacion De Claves Publicas Y Claves Privadas
Encriptacion De Claves Publicas Y Claves Privadas
 
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
 
CIFRADO DE CLAVE PUBLICA Y PRIVADA
CIFRADO DE CLAVE PUBLICA Y PRIVADACIFRADO DE CLAVE PUBLICA Y PRIVADA
CIFRADO DE CLAVE PUBLICA Y PRIVADA
 

Último

Introducción a Funciones LENGUAJE DART FLUTTER
Introducción a Funciones LENGUAJE DART FLUTTERIntroducción a Funciones LENGUAJE DART FLUTTER
Introducción a Funciones LENGUAJE DART FLUTTEREMMAFLORESCARMONA
 
PARTES DEL TECLADO Y SUS FUNCIONES - EJEMPLO
PARTES DEL TECLADO Y SUS FUNCIONES - EJEMPLOPARTES DEL TECLADO Y SUS FUNCIONES - EJEMPLO
PARTES DEL TECLADO Y SUS FUNCIONES - EJEMPLOSelenaCoronadoHuaman
 
Unidad_3_T1_AutomatasFinitos presentacion
Unidad_3_T1_AutomatasFinitos presentacionUnidad_3_T1_AutomatasFinitos presentacion
Unidad_3_T1_AutomatasFinitos presentacionarmando_cardenas
 
BREEAM ES Urbanismo como herramienta para un planeamiento sostenible - Miguel...
BREEAM ES Urbanismo como herramienta para un planeamiento sostenible - Miguel...BREEAM ES Urbanismo como herramienta para un planeamiento sostenible - Miguel...
BREEAM ES Urbanismo como herramienta para un planeamiento sostenible - Miguel...ITeC Instituto Tecnología Construcción
 
Caso de éxito de Hervian con el ERP Sage 200
Caso de éxito de Hervian con el ERP Sage 200Caso de éxito de Hervian con el ERP Sage 200
Caso de éxito de Hervian con el ERP Sage 200Opentix
 
Manual de Usuario APPs_AppInventor-2023.pdf
Manual de Usuario APPs_AppInventor-2023.pdfManual de Usuario APPs_AppInventor-2023.pdf
Manual de Usuario APPs_AppInventor-2023.pdfmasogeis
 
Segmentacion Segmantica_Modelos UNET and DEEPLABV3
Segmentacion Segmantica_Modelos UNET and DEEPLABV3Segmentacion Segmantica_Modelos UNET and DEEPLABV3
Segmentacion Segmantica_Modelos UNET and DEEPLABV3AlexysCaytanoMelndez1
 

Último (7)

Introducción a Funciones LENGUAJE DART FLUTTER
Introducción a Funciones LENGUAJE DART FLUTTERIntroducción a Funciones LENGUAJE DART FLUTTER
Introducción a Funciones LENGUAJE DART FLUTTER
 
PARTES DEL TECLADO Y SUS FUNCIONES - EJEMPLO
PARTES DEL TECLADO Y SUS FUNCIONES - EJEMPLOPARTES DEL TECLADO Y SUS FUNCIONES - EJEMPLO
PARTES DEL TECLADO Y SUS FUNCIONES - EJEMPLO
 
Unidad_3_T1_AutomatasFinitos presentacion
Unidad_3_T1_AutomatasFinitos presentacionUnidad_3_T1_AutomatasFinitos presentacion
Unidad_3_T1_AutomatasFinitos presentacion
 
BREEAM ES Urbanismo como herramienta para un planeamiento sostenible - Miguel...
BREEAM ES Urbanismo como herramienta para un planeamiento sostenible - Miguel...BREEAM ES Urbanismo como herramienta para un planeamiento sostenible - Miguel...
BREEAM ES Urbanismo como herramienta para un planeamiento sostenible - Miguel...
 
Caso de éxito de Hervian con el ERP Sage 200
Caso de éxito de Hervian con el ERP Sage 200Caso de éxito de Hervian con el ERP Sage 200
Caso de éxito de Hervian con el ERP Sage 200
 
Manual de Usuario APPs_AppInventor-2023.pdf
Manual de Usuario APPs_AppInventor-2023.pdfManual de Usuario APPs_AppInventor-2023.pdf
Manual de Usuario APPs_AppInventor-2023.pdf
 
Segmentacion Segmantica_Modelos UNET and DEEPLABV3
Segmentacion Segmantica_Modelos UNET and DEEPLABV3Segmentacion Segmantica_Modelos UNET and DEEPLABV3
Segmentacion Segmantica_Modelos UNET and DEEPLABV3
 

Cifrado Asimetrico

  • 1. Cifrados Asimétricos ● Alejandro Larraondo Lamchog ● Ingrid Espinel Quispe ● Katherine Uñapilco Chambi
  • 2. DSA DSA o 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 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.
  • 3. Características Requisitos de la firma digital: a) Debe ser fácil de generar. b) Será irrevocable, no rechazable por su propietario. c) Será única, sólo posible de generar por su propietario. d) Será fácil de autenticar o reconocer por su propietario y los usuarios receptores. e) Debe depender del mensaje y del autor
  • 4. Firma Digital Supongamos que A quiere enviar un mensaje a B. Este mensaje puede ir cifrado o no, pero A está interesado en "firmar" el mensaje de forma que B pueda estar seguro que el mensaje que le llega ha sido originado por A y no por ninguna otra entidad. Los pasos que A seguirá son: 1. Crea un resumen (digest) del mensaje que quiere enviar, utilizando una función hash 2. Representa este resumen como un entero M entre 0 y n-1 3. Usa su propia clave privada (dA,nA) para computar la firma S= (M)dA mod nA 4. Envía esa firma S al receptor B conjuntamente con el mensaje original (que puede ir cifrado o no, según se quiera). Evidentemente, la firma S no podrá ser manipulada por nadie una vez generada, porque si se cambia un sólo bit de la firma fallaría la verificación de ésta en destino.
  • 5. Verificación de Firma Digital Cuando B recibe la firma S y el mensaje de A, sigue estos pasos: ● Utiliza la clave pública del remitente A para computar V = (S)eA mod nA ● Del entero V obtiene el resumen r del mensaje tal y como fue computado por A ● Paralelamente, computa un resumen r' del mensaje que le ha llegado utilizando la función hash correspondiente ● Si ambos resúmenes r y r' coinciden, entonces queda verificada la firma. Entonces puede asegurarse que el mensaje solo ha podido ser originado por A y además el mensaje ha llegado íntegramente (sin ver alterado su contenido durante la transmisión por el canal inseguro) hasta B.
  • 6.
  • 7.
  • 8. Criptosistema de Merkle-Hellman Merkle-Hellman (MH) fue uno de los primeros criptosistemas de llave pública y fue inventado por Ralph Merkle y Martin Hellman en 1978. Es un criptosistema asimétrico, esto significa que para la comunicación, se necesitan dos llaves: - Una llave pública (Sólo para cifrar) - Una privada (Sólo para descifrar) Sirve sólo para cifrado. De este modo, no se puede usar para tareas de autentificación por firma electrónica.
  • 9. Basado en el problema de la suma del subconjunto (un caso especial del problema de la mochila). Tenemos lo siguiente: dado un conjunto de números "a" y un número "b", encuentre un subconjunto de "a", que dada su suma salga "b". Por ejemplo: a = [ 1 ,3, 6, 2, 5] b = 8 Sa = [ 3 , 5 ] Usaremos esto en la operación de descifrado. NOTA: Merkle-Hellman no se utiliza actualmente puesto que fue rota a principios de los años 80 por Adi Shamir.
  • 10. Ataque por fuerza bruta Un sistema de Merkle-Hellman que utilice una mochila de n = 100 elementos no es sensible a un ataque por fuerza bruta (un ordenador capaz de 10⁶ operaciones por segundo tardaría 1046 años en probar todas las mochilas super crecientes) Debilidades Adi Shamir y Richard Zippel encontraron debilidades cuando: - Se conoce el módulo (q) o puede deducirse. - Los dos primeros elementos de la clave pública corresponden con los dos primeros elementos de la clave privada y son primos con el módulo “q”. - Con estos datos, podemos generar la clave privada a partir de la pública ya que encontraremos el inverso multiplicativo modular s’ = inv(q,r).
  • 11. Generación de las claves Las claves están compuestas por secuencias. Restricciones de la clave: - Clave pública es una secuencia "difícil". - Clave privada es una secuencia "fácil" (de “n” valores super crecientes), acompañados de un multiplicador(r) y un módulo(q), los cuales se usan para convertir la secuencia super creciente en una secuencia difícil. - Se recomienda que “n” sea mayor o igual que 100. - r y q son coprimos, es decir, mcd ( r, q) = 1. - El módulo (q) debe ser mayor a la sumatoria de los valores de la clave privada. - La clave privada genera la clave pública (su longitud también será “n”).
  • 12. Sea nuestra sucesión super creciente: Ejemplo: [1, 3, 5, 12, 24, 46]
  • 13. Cifrado Para cifrar un mensaje, se lo divide en subsecuencias que tengan la longitud (n) de la clave pública, luego se eligen los elementos de la secuencia difícil (clave privada) emparejando las posiciones. Finalmente se suman los elementos elegidos, y nos sale el texto cifrado. Secuencia difícil (Clave pública) : [81, 108, 88, 48, 96, 64] Palabra=000010000000001110001101 Deberá dividir el mensaje en cadenas de 6 : 000010 000000 001110 001101 El primero: 81x0 + 108x0 + 88x0 + 48x0 + 96x1 + 64x0 = 96. El segundo: 81x0 + 108x0 + 88x0 + 48x0 + 96x0 + 64x0 = 0. El tercero: 81x0 + 108x0 + 88x1 + 48x1 + 96x1 + 64x0 = 232. El cuarto: 81x0 + 108x0 + 88x1 + 48x1 + 96x0 + 64x1 = 200. El mensaje codificado es: [ 96,0,232,200 ]
  • 14. Descifrado El descifrado es posible, porque el multiplicador y el módulo usados para transformar la llave privada en la llave pública, también pueden ser usados para transformar el texto cifrado (representado por un número) en la suma de los elementos que conforman la subsecuencia super creciente. Aplicando la fórmula para descifrar: c’ : texto descifrado c : texto cifrado
  • 15. Si el mensaje codificado es: [ 96,0,232,200 ] , q = 155 Aplicando: 96x23 (módulo 155) = 2208 (módulo 155) = 38 = 000010. Donde s es el inverso del módulo (inverso multiplicativo modular) de q y r. De tal manera que se cumple: r * s(mod q) = 1
  • 16. EJEMPLO Clave privada: [3, 4, 9, 19, 38, 77] con r = 27 y q = 155 Clave pública: 3 x 27 (mod 155) = 81 4 x 27 (mod 155) = 108 9 x 27 (mod 155) =88 19 x 27 (mod 155) =48 38 x 27 (mod 155) =96 77 x 27 (mod 155) =64 [81, 108, 88, 48, 96, 64]
  • 17. Palabra=000010000000001110001101 Deberá dividir el mensaje en cadenas de 6 000010 000000 001110 001101
  • 18. El primero: 81x0 + 108x0 + 88x0 + 48x0 + 96x1 + 64x0 = 96. El segundo: 81x0 + 108x0 + 88x0 + 48x0 + 96x0 + 64x0 = 0 El tercero: 81x0 + 108x0 + 88x1 + 48x1 + 96x1 + 64x0 = 232. El cuarto: 81x0 + 108x0 + 88x1 + 48x1 + 96x0 + 64x1 = 200. El mensaje codificado es: [ 96,0,232,200 ] Utilizando los valores de la clave pública, se codificará el mensaje Clave pública: [81, 108, 88, 48, 96, 64] Mensaje: 000010 000000 001110 001101
  • 19. Clave privada: [3, 4, 9, 19, 38, 77] Se calcula (usando el Algoritmo de Euclides extendido) el inverso del módulo de 27 y 155 que vale 23. Utiliza a continuación su clave privada para descifrar y obtiene: 96x23 (módulo 155) = 2208 (módulo 155) = 38 = 000010. 0x23 (módulo 155) = 0 (módulo 155) = 0 = 000000. 232x23 (módulo 155) = 5336 (módulo 155) = 66 = 9 + 19 + 38 = 001110. 200x23 (módulo 155) = 4600 (módulo 155) = 105 = 9 + 19 + 77 = 001101. El mensaje codificado es: [ 96,0,232,200 ] Algoritmo voraz