7-clave privada real
La "clave_privada_alice" NO es un texto simple
No, "alice_sotelo" no serviría como clave privada real. Las claves criptográficas tienen estructura y propiedades específicas.
Estructura real de una clave privada
🔑 Composición técnica:
Números aleatorios enormes (generalmente 2048-4096 bits)
Estructura matemática específica según el algoritmo
Formato estandarizado (PEM, DER, etc.)
Ejemplo de clave privada RSA (formato PEM):
-----BEGIN PRIVATE KEY-----
MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQCz4bZ8...
... [cientos de caracteres base64] ...
-----END PRIVATE KEY-----¿Cómo se genera realmente?
# Ejemplo simplificado de generación de claves RSA
from cryptography.hazmat.primitives import asymmetric
from cryptography.hazmat.primitives import serialization
# Generar par de claves
private_key = asymmetric.rsa.generate_private_key(
public_exponent=65537,
key_size=2048 # ¡2048 bits! No un texto simple
)
# La clave privada contiene componentes matemáticos:
# - n (módulo)
# - e (exponente público)
# - d (exponente privado)
# - p, q (factores primos)El proceso CORRECTO de firma:
# 1. Calcular hash del documento
documento = "Contrato importante"
hash_documento = hashlib.sha256(documento.encode()).digest()
# 2. Firmar con la clave privada REAL (no texto)
firma = private_key.sign(
hash_documento,
asymmetric.padding.PSS(
mgf=asymmetric.padding.MGF1(hashes.SHA256()),
salt_length=asymmetric.padding.PSS.MAX_LENGTH
)
)
# 3. Verificar con clave pública
public_key = private_key.public_key()
public_key.verify(
firma,
hash_documento,
asymmetric.padding.PSS(
mgf=asymmetric.padding.MGF1(hashes.SHA256()),
salt_length=asymmetric.padding.PSS.MAX_LENGTH
)
)¿Por qué no usar texto simple?
❌ Problemas con "alice_sotelo":
Muy corto: Solo ~80 bits vs 2048+ bits necesarios
Predecible: Fácil de adivinar/atacar
Sin estructura matemática: No funciona con algoritmos criptográficos
No reversible: No permite las operaciones matemáticas necesarias
✅ Claves reales proporcionan:
Resistencia computacional: Imposible de adivinar
Propiedades matemáticas: Para cifrado/descifrado
Certificados digitales: Que vinculan la clave con la identidad
Resumen:
La "clave privada" es un objeto criptográfico complejo con estructura matemática, no un texto simple. Los sistemas reales usan bibliotecas criptográficas que manejan estas claves de forma segura.
Comentarios
Publicar un comentario