Rompiendo llaves RSA expĺıcitamente con OpenSSL



Documentos relacionados
CRIPTOGRAFÍA SIMÉTRICA Y ASIMÉTRICA

Semana 14: Encriptación. Cifrado asimétrico

Introducción. Algoritmos

2. Aritmética modular Ejercicios resueltos

Práctica 5. Curso

Métodos Encriptación. Tópicos en Sistemas de Computación Módulo de Seguridad

Capítulo 7 Teoría de los Números

Criptografía Algoritmos Simétricos Algoritmos Asimétricos Firma electrónica y algoritmos Protocolos SSL, TLS OpenSSL. Criptografía

Ecuaciones de primer grado con dos incógnitas

Julio César Mendoza T. Ingeniería de Sistemas Quito

CRIPTOGRAFIA. Qué es, usos y beneficios de su utilización. Universidad Nacional del Comahue

Módulo 9 Sistema matemático y operaciones binarias

La nueva criba de Eratóstenes Efraín Soto Apolinar 1 F.I.M.E. U.A.N.L. San Nicolás, N.L. México. efrain@yalma.fime.uanl.mx

Herramientas: GPG, OpenSSL

Fundamentos Matemáticos del Cifrado Asimétrico. Banco de Guatemala

DIVISIBILIDAD SOLUCIÓN:

Una Introducción Matemática a la Criptografía (para mis alumnos de Álgebra I)

Capítulo 8 Teoría de la Complejidad Algorítmica

Álgebra y Matemática Discreta Sesión de Prácticas 1

UNIDAD 6. POLINOMIOS CON COEFICIENTES ENTEROS

Unidad I. 1.1 Sistemas numéricos (Binario, Octal, Decimal, Hexadecimal)

EJERCICIOS RESUELTOS SOBRE ERRORES DE REDONDEO

Ejercicios resueltos de porcentajes

mcd y mcm Máximo Común Divisor y Mínimo Común múltiplo José de Jesús Angel Angel jjaa@math.com.mx

Criptografía. Por. Daniel Vazart P.

Divisibilidad y números primos

El algoritmo RSA. Aula Virtual Crypt4you. Dr. Jorge Ramió Aguirre Universidad Politécnica de Madrid

Resumen de Requisitos Técnicos para incorporación de Organismos a la Plataforma Integrada de Servicios Electrónicos del Estado

QUIERES COMPROBAR CÓMO LAS REDES DETECTAN Y CORRIGEN ERRORES?

SEGURIDAD EN SISTEMAS DE INFORMACION. TEMA 2 - parte 2. Criptografia asimétrica

VÍDEO intypedia003es LECCIÓN 3: SISTEMAS DE CIFRA CON CLAVE PÚBLICA. AUTOR: Gonzalo Álvarez Marañón

EJERCICIOS DEL TEMA 1

Los polinomios. Un polinomio es una expresión algebraica con una única letra, llamada variable. Ejemplo: 9x 6 3x 4 + x 6 polinomio de variable x

Lección 12 Seguridad y criptografía. Universidad de Oviedo / Dpto. de Informática

CRIPTOGRAFIA DE CLAVE SECRETA. El emisor y el receptor conocen y usan la misma clave secreta para cifrar y descifrar mensajes.

Semana 13: Encriptación. Cifrado simétrico

ETS Caminos Santander. Curso Ejercicios de introducción a la programación.

Gracias a ese IP único que tiene cada ordenador conectado a la red de internet se pueden identificar y comunicar los ordenadores.

Titulación: Ingeniero en Informática. Curso 5º - Cuatrimestral ( ) Javier Jarauta Sánchez Rafael Palacios Hielscher José María Sierra

Cualquier número de cualquier base se puede representar mediante la siguiente ecuación polinómica:

2013/06/11 Matemáticas I (Ed. Primaria) Curso Jun. Extr. Apellidos: Nombre: N :

MENSAREX: SISTEMA DE MENSAJERÍA DEL MINREX Gretel García Gómez Ministerio de Relaciones Exteriores Cuba.

Encriptación en Redes

1. MEDIDAS DE TENDENCIA CENTRAL

Configuración en Red

EJERCICIOS SOBRE : DIVISIBILIDAD

Descomposición factorial de polinomios

TALLER DE DETECTIVES: DESCIFRANDO MENSAJES SECRETOS. 1. Introducción

Datos del autor. Nombres y apellido: Germán Andrés Paz. Lugar de nacimiento: Rosario (Código Postal 2000), Santa Fe, Argentina

Unidad 1 Sistemas de numeración Binario, Decimal, Hexadecimal

ICM Fundamentos de Computación

Internet, conceptos básicos

En la actualidad ASCII es un código de 8 bits, también conocido como ASCII extendido, que aumenta su capacidad con 128 caracteres adicionales

Ing. Cynthia Zúñiga Ramos

Movimiento a través de una. José San Martín

Tema 3. Medidas de tendencia central Introducción. Contenido

DESARROLLO DE HABILIDADES DEL PENSAMIENTO LÓGICO

Proceso de cifrado. La fortaleza de los algoritmos es que son públicos, es decir, se conocen todas las transformaciones que se aplican al documento

SISTEMAS NUMERICOS. Ing. Rudy Alberto Bravo

Manual básico de Outlook Express

PARA QUÉ NÚMEROS REALES... 2 SUCESIONES... 3 NÚMEROS COMPLEJOS... 5 CÓNICAS... 6 FUNCIÓN INVERSA... 7 FUNCIONES CUADRÁTICAS... 8

Notas de Teórico. Sistemas de Numeración

Ejercicios Resueltos del Tema 4

SistemA Regional de Información y Evaluación del SIDA (ARIES)

Tema 1: Fundamentos de lógica, teoría de conjuntos y estructuras algebraicas: Apéndice

Lección 4: Suma y resta de números racionales

SUMA Y RESTA DE FRACCIONES

Por ejemplo convertir el número 131 en binario se realiza lo siguiente: Ahora para convertir de un binario a decimal se hace lo siguiente:

Lección 24: Lenguaje algebraico y sustituciones

Introducción a la Firma Electrónica en MIDAS

Unidad 3 Direccionamiento IP (Subnetting)

La Lección de Hoy es Distancia entre dos puntos. El cuál es la expectativa para el aprendizaje del estudiante CGT.5.G.1

Base de datos en Excel

A través de un formulario que el mismo sistema web facilita con una interfaz clara y limpia.

x

Características de funciones que son inversas de otras

21/02/2012. Agenda. Unidad Central de Procesamiento (CPU)

UNIDAD 1. LOS NÚMEROS ENTEROS.

Segmentación de redes. CCNA 1: módulo 10.

AMPLIACIÓN DE MATEMÁTICAS. REPASO DE MATEMÁTICAS DISCRETA. CONGRUENCIAS. En el conjunto de los números enteros

Infraestructura Extendida de Seguridad IES

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA

Lección 9: Polinomios

1. Números Reales 1.1 Clasificación y propiedades

COMO FUNCIONA INTERNET

Secretify. Un cliente web de seguro. Esaú Suárez Ramos Trabajo de fin de máster

Gemelo Backup Online P E R S O N A L I N D I C E. Qué es Gemelo Backup Online Personal. Gemelo Backup Online WEB

INSTITUTO UNIVERSITARIO DE TECNOLOGÍA JOSE LEONARDO CHIRINO PUNTO FIJO EDO-FALCON CATEDRA: ARQUITECTURA DEL COMPUTADOR PROFESOR: ING.

En cualquier caso, tampoco es demasiado importante el significado de la "B", si es que lo tiene, lo interesante realmente es el algoritmo.

Cuánto debería costarme una página web? Diseño Web en España Guía de precios 2014/2015

❷ Aritmética Binaria Entera

Ejercicio de estadística para 3º de la ESO

Para detalles y funcionalidades ver Manual para el Administrador

Resumen de técnicas para resolver problemas de programación entera Martes, 9 de abril. Enumeración. Un árbol de enumeración

PRÁCTICA N 2 SISTEMAS DE NUMERACIÓN

1. Lección 5 - Comparación y Sustitución de capitales

Clases de apoyo de matemáticas Fracciones y decimales Escuela 765 Lago Puelo Provincia de Chubut

Gestión de Certificados y Mecanismos de Seguridad con OpenSSL

Materia: Informática. Nota de Clases Sistemas de Numeración

Integración por fracciones parciales

Transcripción:

Rompiendo llaves RSA expĺıcitamente con OpenSSL Eduardo Ruiz Duarte Facultad de Ciencias UNAM

Agenda Criptografía asimétrica y conceptos fundamentales RSA Criptoanálisis expĺıcito de una llave generada con OpenSSL 256 bits Conclusiones

Introducción En las telecomunicaciones hay dos tipos de cifrado muy importantes Simétrico: Utiliza la misma llave para cifrar y descifrar D k (E k (x)) = x Asimétrico: Utiliza una llave para cifrar y otra para descifrar D s (E p (x)) = x

Introducción Simétricos El simétrico generalmente se usa para cifrar flujos de información, y estos suelen ser muy rapidos. Éste tiene una desventaja, requiere una negociación previa de una llave, Y si las entidades están separadas, esta llave se tendría que negociarse a través de un medio no seguro, lo cual sería absurdo. Ejemplos de algoritmos simétricos Rijndael-AES, Blowfish, TEA, A5

Introducción Asimétricos Aquí hay dos llaves, pública y privada, la pública se usa para cifrar y la privada para descifrar únicamente, a partir de la llave pública es Turing-intratable el problema de calcular la llave privada utilizando algoritmos asimétricos basados en factorización en números primos o el problema de logaritmo discreto en ciertos grupos Ejemplos de algoritmos asimétricos RSA, Elgamal, XTR, Diffie-Hellman

Introducción Asimétricos Estos algoritmos son muy importantes en internet ya que proveen la manera de cifrar y firmar datos entre dos entidades sin la necesidad de negociación de password, muchos servicios usan esto, y tal vez sin darte cuenta usas criptografía asimétrica diario

Conceptos básicos Número primo: Un número primo n > 1 es aquel que no se puede descomponer como multiplicación de otros números (sólamente como n 1), dicho de otra manera, sólo tiene dos divisores, n y 1 máximo común divisor: El máximo común divisor (mcd) de dos números x,y es el máximo número que divide a ambos sin dejar residuo Función φ(n): Esta función φ(n) nos dice cuantos números menores que n tienen como máximo común divisor al 1 sólamente, o sea, cuantos números menores que n son primos relativos con n

Conceptos básicos Ejemplos: primos 2,3,11,29,233 Máximo común divisor mcd(48,60) = 12 ya que el 12 es el máximo divisor de ambos Función φ(n) φ(9) = 6 ya que #A = {1,2,4,5,7,8} = 6 y mcd(i,9) = 1 i A φ(p) = p 1 para p primo φ(pq) = (p q)(q 1) para p,q primos

Conceptos básicos Aritmética modular La artimética modular sobre Z resumida en un slide es operar enteros en un conjunto acotado, es decir a b c mod n por lo que c es el número más chico que cumple que (a b) c es múltiplo de n, esto es muy fácil calcularlo, veamos un ejemplo

Conceptos básicos Aritmética modular 5 3 1 mod 2 ya que 5 3 es 15 y el residuo de 15 entre 2 es 1 9 2 3 mod 5 ya que 9 2 es 18 y el residuo de 18 entre 5 es 3

RSA Generación de llaves: Se escogen dos dos números primos aleatorios (p,q) Se computa n = pq este nombre será el módulo Se computa φ(n) = (p 1)(q 1) Se escoge un e tal que 1 e < φ(n) y mcd(φ(n),e) = 1 Se computa d tal que d e 1 mod φ(n) Ahora (d,p,q) será la llave privada y (e,n) la llave pública

RSA Cifrado A recibirá M entonces A le manda a B su llave pública (e,n) B computa c = M e mod n y le manda c a A

RSA Descifrado A para obtener M computa sobre c lo siguiente: M = c d mod n que es lo mismo que M = (M e ) d mod n y así obtiene el mensaje M.

RSA Seguridad Si un atacante obtiene la llave pública (e,n) tenemos que d = e 1 mod φ(n) lo que es lo mismo que d = e 1 mod (p 1)(q 1) Esta persona tendrá que factorizar n = pq para poder calcular e 1 mod (p 1)(q 1) ya que se debe de saber (p 1)(q 1) para calcular e tal que ed 1 mod (p 1)(q 1) El problema de factorizar es no determinístico, es decir no se pueden calcular los factores de un entero en tiempo polinomial, al menos con una computaora no cuántica

RSA Conjeturas El problema más importante de la historia de las matemáticas modernas, actualmente sin responder, es la hipótesis de Riemann la cual como corolario nos dice que tan densos son los números primos usando la función zeta de Riemann, este problema de los números primos se ha ido resolviendo a maquinazos haciendo cada día el uso de las llaves más grandes por lo que esto implica mayor cómputo, por lo que existen mejores problemas para criptografía asimétrica como lo es el problema del logaritmo discreto el cual veremos en mi otra presentación

Rompiendo una llave OpenSSL OpenSSL es el standard de SSL libre que se usa actualmente para asegurar confidencialidad en sitios de internet por ejemplo éste tiene una interfaz para generar llaves, las cuales son standares los formatos y son los que usan los navegadores por ejemplo, veamos como funciona el cifrado y como se generan las llaves Creamos archivo plano de mensaje: echo jojojo > msg.txt Cifrado: openssl rsautl -encrypt -pubin -inkey pubkey.pem -in msg.txt -out msg.enc Descifrado: openssl rsautl -decrypt -inkey priv.pem -in msg.enc -out msg.nuevo

Rompiendo una llave OpenSSL Para generar una llave privada priv.pem (es decir (p,q) openssl genrsa -out privada.pem 256 Para generar una llave pública pub.pem con la privada, es decir (e,n) openssl rsa -in privada.pem -pubout -out pub.pem Para extraer el módulo : openssl rsa -in pub.pem -pubin -text -modulus El módulo nos los da en hex por lo que para convertirlo a decimal: echo ibase=16; 9ABAAD5BBE954A26BB1F9871865F bc Factorizamos: msieve -v 3138281169008962629484387769615967 Generamos la llave privada en formato PEM con los dos factores: http://math.co.ro/cgibin/genpriv?p=factor1&q=factor2&e=exp

Rompiendo una llave OpenSSL Con esto tendremos una llave en este formato que solo habremos generado con información de la pública y también nos servirá para descifrar nuestro ejemplo msg.enc BEGIN RSA PRIVATE KEY MIGsAgEAAiEAtOcoQsRl82tLz6QxHYKz/G9J0FaO408sJ2Yj/GTyVSsCAwEA AJIb8USb48wK6Rw3/QNcwYjRJctW0ZZl4n0j6y8QFBcBAhEA4z4k7kv3F7RI YbAICwIRAMvLxM4XkDsjvd+jGmtme2ECEQDQpainHBzeKOw1TMlQdJ6NA G5SYwsQIkexpVC00oQIQInCIzHp3Ex91s7AV+9Dm8A== END RSA PRIVATE KEY

Gracias! Eduardo Ruiz Duarte beck@math.co.ro http://math.co.ro blog: http://b3ck.blogspot.com twitter: @toorandom PGP key fingerprint: 0xFEE7F2A0