📚 Pack Completo de Estudio

Criptografía en Java - Preparación del Examen

Test General de Criptografía
30 preguntas tipo test sobre todo el temario. Selecciona la respuesta correcta en cada pregunta.
Tarjeta 1 de 24
Haz clic para ver la respuesta
Haz clic para volver

🔐 Tipos de Criptografía

SIMÉTRICA

🔑 1 clave compartida

  • ✓ MUY rápida
  • ✓ Archivos grandes
  • ✗ Distribución de clave

Algoritmos:

AES (128/192/256)

DES (obsoleto)

ASIMÉTRICA

🔑🔑 2 claves (pública/privada)

  • ✓ Intercambio seguro
  • ✓ Firma digital
  • ✗ Más lenta

Algoritmos:

RSA (2048/4096)

ECDSA (256)

🔨 HASH (Funciones Resumen)

Característica clave: UNIDIRECCIONAL

✅ Seguros:

  • • SHA-256 / SHA-512
  • • bcrypt (contraseñas)
  • • Argon2 (contraseñas)

❌ Obsoletos:

  • • MD5
  • • SHA-1

✍️ Firma Digital - Proceso

1
Calcular HASH del mensaje
2
Cifrar hash con CLAVE PRIVADA = FIRMA
3
Enviar mensaje + firma
4
Receptor descifra firma con CLAVE PÚBLICA
5
Comparar hashes → Si coinciden: ✅ VÁLIDO

Garantiza:

✓ Autenticidad | ✓ Integridad | ✓ No repudio

🎫 Estructura JWT

HEADER

Tipo de token

Algoritmo (HS256)

PAYLOAD

Claims (datos)

Username, roles

Expiración

SIGNATURE

Verifica integridad

HMAC(header+payload)

header.payload.signature

🔄 Cifrado Híbrido (TLS/HTTPS)

Paso 1: Intercambio de clave

Usa RSA o ECDH (asimétrica) para intercambiar de forma segura una clave simétrica

Paso 2: Cifrado de datos

Usa AES (simétrica) para cifrar toda la comunicación - MUY RÁPIDO

Resultado: Seguridad + Velocidad 🚀

📊 Tabla de Algoritmos

Algoritmo Tipo Longitud Clave Estado
MD5 Hash 128 bits ❌ OBSOLETO
SHA-1 Hash 160 bits ❌ OBSOLETO
SHA-256 Hash 256 bits ✅ SEGURO
SHA-512 Hash 512 bits ✅ MUY SEGURO
bcrypt/Argon2 Hash Variable ✅ CONTRASEÑAS
DES Simétrica 56 bits ❌ OBSOLETO
3DES Simétrica 168 bits ⚠️ TEMPORAL
AES Simétrica 128/192/256 bits ✅ ESTÁNDAR
RSA Asimétrica 2048-4096 bits ✅ SEGURO
ECDSA Asimétrica 256 bits ✅ MODERNO

⚖️ Comparativas Rápidas

Hash vs Cifrado

Dirección: Hash: UNI | Cifrado: BI
Clave: Hash: NO | Cifrado: SÍ
Longitud: Hash: FIJA | Cifrado: VARIABLE
Objetivo: Hash: Integridad | Cifrado: Confidencialidad

Simétrica vs Asimétrica

Claves: Sim: 1 | Asim: 2
Velocidad: Sim: RÁPIDA | Asim: LENTA
Tamaño clave: Sim: 256b | Asim: 2048b
Uso: Sim: Datos | Asim: Claves

🛡️ Spring Security - Métodos Clave

.permitAll()

Acceso sin autenticación

.authenticated()

Requiere estar logueado

.hasRole("ADMIN")

Requiere rol específico

.hasAuthority()

Requiere autoridad específica

🔐 OAuth2 - Roles

1

Client

La aplicación que solicita acceso

3

Authorization Server

Emite los tokens (ej: Google)

4

Resource Server

Protege los recursos/datos

🔒 Modos de Operación AES

ECB

❌ NO RECOMENDADO

CBC

⚠️ Aceptable

GCM

✅ RECOMENDADO

CTR

✅ Bueno

⚖️ Equivalencias de Seguridad

256 bits ECDSA ≈ 3072 bits RSA

Misma seguridad, claves más cortas = más eficiente

⚠️ IMPORTANTE - No confundir

  • • Hash NO es cifrado - Hash es irreversible, cifrado es reversible
  • • JWT es stateless - No requiere almacenar sesiones en servidor
  • • Firma digital - Se cifra con clave PRIVADA, se verifica con PÚBLICA
  • • OAuth2 es autorización - NO es autenticación directa
  • • bcrypt para contraseñas - NO usar SHA-256 directamente
Instrucciones: Lee cada código y identifica el error. Haz clic en la respuesta correcta.

💡 Consejos para código:

  • • Busca algoritmos obsoletos (MD5, SHA-1, DES)
  • • Verifica que JWT esté firmado (.signWith)
  • • Comprueba la lógica de validación (true/false invertidos)
  • • AES necesita modo y padding especificados
  • • Spring Security: permisos invertidos son un error común
Instrucciones: Lee cada caso práctico y elige la mejor solución. Después de responder verás la explicación.

🎯 Tips para casos prácticos:

  • • Archivos grandes: Siempre criptografía simétrica (AES)
  • • Verificar origen: Firma digital
  • • APIs sin sesiones: JWT
  • • Login social: OAuth2
  • • Contraseñas en BD: bcrypt/Argon2, NUNCA texto plano
  • • Comunicación segura: Cifrado híbrido (asimétrica + simétrica)
  • • IoT/recursos limitados: ECDSA (claves cortas)
  • • Verificar integridad de archivos: Hash (SHA-256)