PROGRAMA DE
INICIACIÓN
TECNOLÓGICA
PIT 2024
Fundamentos de Blockchain
SESIÓN 4: FUNDAMENTOS DE CRIPTOGRAFÍA
CURSOS GRATUITOS
SESIÓN 4
Conceptos básicos de criptografía: funciones hash, firmas digitales, etc
Seguridad en blockchain.
CURSOS GRATUITOS
01
Conceptos básicos de
criptografía
La criptografía es el estudio de técnicas para asegurar la comunicación y
protección de datos en un entorno potencialmente hostil.
Se basa en la construcción de protocolos utilizando primitivas
criptográficas para garantizar la confidencialidad, integridad,
autenticidad y no repudio.
sustituyamos
CURSOS GRATUITOS
Ofuscación Encriptación Esteganografía
Dificultar la comprensión del código Proteger la confidencialidad de los Ocultar la existencia de la información
Protección contra ingeniería inversa y datos Transmisión de mensajes secretos,
análisis estático Protección de información sensible marcas de agua digitales
No necesariamente reversible (contraseñas, datos financieros, etc.) Puede ser reversible si se conoce el
La presencia del código es evidente, Reversible con la clave adecuada método de ocultación
pero su comprensión es difícil La presencia de datos cifrados es La presencia de datos ocultos no es
Modificación del código fuente, uso de evidente, pero su contenido no es evidente
nombres no descriptivos, legible sin la clave nsertar datos dentro de imágenes,
reestructuración del flujo del programa Algoritmos criptográficos (AES, RSA, audio, video, texto u otros archivos
etc.)
CURSOS GRATUITOS
Criptografía clásica
Sustitución Transposicion
SSRJ AHAE TIMR OEUA
S A T O
Cifrado de Cesar Cifrado de Vigenere (PIT)
C T I C C T I C
S H I E
>>2 >>2 >>2 >>2 P=16 I=9 T=20 P=16
R A M U
E V K E >>16 >>9 >>20 >>16
R B B R
J E R A
CURSOS GRATUITOS
Aleatoriedad Cryptoanálisis Cipher
Ruido necesario un criptosistema debe de seguir siendo c = E(p,k)
Más aleatorio, menos predecible seguro incluso si todo, excepto la llave, p = D(c,k)
Random Generator Number(RGN): es de conocimieto (Principio de Block cipher: Rondas: pasa por bloques,
generan números verdaderamente Kerckhoffs) ECB, CCB, CTR
aleatorios, Simular ataques Stream ciphers: Arquitectura de flujo
Pseudo Random Generator seguridad informatica: teorica basado en memoria interna que actualiza
Number(RGN): deterministas y Seguriad computacional: real usando llave y nonce en puntos
predecibles c = E(p,k), si k es 128 bits tomaria intermedios
1x10**21 años descifrarlo
CURSOS GRATUITOS
Primitivas
Criptográficas
Primitivas criptográficas son los elementos básicos o “legos” de
información que forman la base de los protocolos criptográficos.
SIn llave
Hash
Su integridad se basa en:
Resistencia a Colisiones: encontrar dos entradas diferentes
que produzcan el mismo valor hash.
Resistencia a la Preimagen: Es difícil reconstruir la entrada
original a partir del valor hash.
Hash usando sha 256:
Hello, World! -->
a591a6d40bf420404a011733cfb7b190d62c65bf0bcda7e1e1a63f8
e4b9b93d2
Hash-Message Authentification Code (Mach): se adiciona
contraseña secreta a un has
h = H(H(m) x c)
CURSOS GRATUITOS
Advanced Encryption Standard (AES)
Es un algoritmo de cifrado simétrico ampliamente utilizado para
asegurar datos. Aquí tienes un resumen de sus características
clave:
Tipo de Cifrado: Simétrico, lo que significa que usa la misma
clave para cifrar y descifrar datos.
Tamaño de Clave: Admite claves de 128, 192 o 256 bits.
Bloques de Datos: Cifra datos en bloques de 128 bits.
Seguridad: Diseñado para reemplazar al DES (Data Encryption
Standard) y considerado seguro y eficiente.
Uso: Utilizado en diversas aplicaciones, como en la protección
de datos en tránsito (HTTPS) y en almacenamiento cifrado.
AES es conocido por su alta seguridad y velocidad en la operación,
siendo un estándar de cifrado confiable en la criptografía
moderna.
CURSOS GRATUITOS
Algoritmos asimetricos
Algoritmo de Diffie-Hellman
Intercambio de llaves
1.- Seleccionan su llave privada
2.- Acuerdan una llave publica
3.- Mezclan valores
4.- Intercambian valores
CURSOS GRATUITOS
Aritmética modular
Fundamento de grupos, conjunto de
numeros y operaciones que cumplen 4
caracteristicas:
Cierre: ∀a,b∈G,a∗b∈G
Asociatividad: ∀a,b,c∈G,
(a∗b)∗c=a∗(b∗c)
Elemento Identidad:∃e∈G tal que
∀a∈G,a∗e=e∗a=a
Elemento Inverso: ∀a∈G,∃b∈G tal
que a∗b=b∗a=e
CURSOS GRATUITOS
Algoritmos asimetricos
Algoritmo de RSA
Firma digital
A[Inicio] --> B[Seleccionar números primos p y q]
B --> C[Calcular n = p × q]
C --> D[Calcular φ(n) = (p-1) × (q-1)]
D --> E[Elegir e tal que 1 < e < φ(n) y gcd(e, φ(n)) = 1]
E --> F[Calcular d tal que d × e ≡ 1 mod φ(n)]
F --> G[Clave Pública: (e, n) y Clave Privada: (d, n) están listas]
G --> H[Para cifrar un mensaje m]
H --> I[Calcular el mensaje cifrado c = m^e mod n]
I --> J[Mensaje cifrado c]
J --> K[Para descifrar el mensaje cifrado c]
K --> L[Calcular el mensaje descifrado m = c^d mod n]
L --> M[Mensaje descifrado m]
M --> N[Fin]
CURSOS GRATUITOS
Algoritmo de RSA ejemplo
Seleccionar Primos y Calcular n y ϕ(n)
1. **Seleccionar números primos**:
- p=11
- q=13
2. **Calcular nnn**:n=p×q=11×13=143
n=p×q=11×13=143
3. **Calcular ϕ(n)\phi(n)ϕ(n)**:ϕ(n)=(p−1)×(q−1)=
(11−1)×(13−1)=10×12=120
ϕ(n)=(p−1)×(q−1)=(11−1)×(13−1)=10×12=120
CURSOS GRATUITOS
Algoritmo de RSA
Elegir e y Calcular d
1. Elegir un valor para e:
Necesitamos que e sea un número entero tal que 1<e<ϕ(n) y que sea coprimo
con ϕ(n).
1<e<ϕ(n)1 < e < \phi(n)
ϕ(n)\phi(n)
Supongamos que elegimos e=7, que es coprimo con 120.
e=7
2. Calcular d:
Encontramos d tal que d×e≡1modϕ(n).
Usando el algoritmo extendido de Euclides, encontramos que
d=103 (esto es porque 7×103≡1mod120).
Entonces, tenemos:
Clave Pública: (e,n)=(7,143)
Clave Privada: (d,n)=(103,143)
CURSOS GRATUITOS
Algoritmo de RSA
Cifrar el Mensaje
1. Convertir el mensaje "UNI" a números (ASCII):
U = 85
N = 78
I = 73
2. Cifrar cada número usando la clave pública:
Mensaje cifrado para U (85): cU=85^7mod143=61
Mensaje cifrado para N (78):cN=78^7mod143=116
Mensaje cifrado para I (73):cI=73^7mod143=40
3. Entonces, el mensaje cifrado es:
[61,116,40]
CURSOS GRATUITOS
Algoritmo de RSA
Descifrar el Mensaje
Descifrar cada número cifrado usando la clave privada:
Mensaje descifrado para 61:
mU=61^103mod143=85
(Convertir 85 de nuevo a ASCII nos da U)
Mensaje descifrado para 116:
mN=116103mod143=78
(Convertir 78 de nuevo a ASCII nos da N)
Mensaje descifrado para 40:
mI=40^103mod143=73
(Convertir 73 de nuevo a ASCII nos da I)
Entonces, el mensaje descifrado es "UNI".
CURSOS GRATUITOS
Algoritmos asimetricos
Algoritmo de RSA
Resumen
Primos seleccionados:
p=11
q=13
Clave Pública: (7,143)
Clave Privada: (103,143)
Mensaje Original: "UNI"
Mensaje Cifrado: [61,116,40]
Mensaje Descifrado: "UNI"
CURSOS GRATUITOS
Algoritmos asimetricos
Criptografía de Curvas Elípticas
Crear sistemas de cifrado y firmas digitales. Permiten generar claves más pequeñas y
seguras en comparación con otros sistemas, como RSA.
y2=x3+ax+b
ECDSA (Elliptic Curve Digital Signature Infraestructura de llave pública
Algorithm) (PKI)
Proporcionar autenticación y integridad de datos. Permite que
Un sistema que gestiona claves criptográficas y certificados
una parte firme digitalmente un mensaje y que otra parte
digitales para asegurar comunicaciones y transacciones en
verifique la autenticidad de la firma sin necesidad de revelar la
una red. Incluye la emisión, almacenamiento y validación de
clave privada.
certificados.
Firma digital
CURSOS GRATUITOS
02
Seguridad en
blockchain.
Computación Cuántica
CURSOS GRATUITOS
Computación cuántica
Se requiere cerca a 1M de qubits para resolver la
factorización de primos grandes
Alta inestabilidad
Hasta ahora solo se ha logrado 1000 qubits juntos
cuasi estables
Aún tenemos cryptografía por varios años
CURSOS GRATUITOS
GRACIAS
CURSOS GRATUITOS