Proteger datos que deben seguir siendo secretos dentro de diez años es un problema de hoy: un adversario puede capturar tu tráfico cifrado ahora y descifrarlo cuando exista la capacidad cuántica (harvest now, decrypt later). Quipu es una librería libre de cifrado híbrido post-cuántico para datos en reposo: combina criptografía clásica probada con la nueva, de modo que solo se rompe si ambas caen a la vez.
Rust puro, y por qué
Quipu nació apuntando a varios lenguajes: un núcleo en Rust con una C ABI encima y bindings para Python, Node y Go. Funcionaba, pero la lección fue clara: mantener una interfaz de C estable más cuatro bindings, cada uno con su empaquetado y sus pruebas de interoperabilidad, era complejidad que no pagaba para el objetivo real —proteger datos en reposo— y ampliaba la superficie de ataque con unsafe que no queríamos.
Hoy Quipu es Rust puro: memoria segura, sin garbage collector, sin unsafe de primera parte. Y para quien no programa en Rust, se distribuye como rueda nativa de Python (vía PyO3) — que es la superficie que el cliente que no es de Rust de verdad necesita. Una sola base de código, una sola cosa que auditar. Es la misma filosofía que guía el resto: donde hay buena criptografía, se reutiliza; la simplicidad es una decisión de seguridad, no una comodidad.
Instalación
cargo add quipu # Rust
pip install quipu-crypto # Python (rueda nativa, PyO3)
Cifrar y descifrar en Python
import quipu
# Simétrico con contraseña
blob = quipu.encrypt_stream(b"datos sensibles", "mi-passphrase")
assert quipu.decrypt_stream(blob, "mi-passphrase") == b"datos sensibles"
# Post-cuántico para un destinatario
pub, sec = quipu.generate_keypair() # X25519 + ML-KEM-1024
c = quipu.encode_to_recipient(b"secreto", pub)
assert quipu.decode_as_recipient(c, sec) == b"secreto"
Qué hay debajo
- Cifrado: XChaCha20-Poly1305 (AEAD autenticado).
- Derivación de claves: Argon2id (resistente a fuerza bruta) + HKDF.
- Post-cuántico: X25519 + ML-KEM-1024 para claves; Ed25519 + ML-DSA-87 para firmas.
- Nivel de seguridad: categoría NIST 5 (CNSA 2.0).
Todo son primitivas verificadas y estándar —los KAT de ML-KEM-1024 y ML-DSA-87 se comprueban contra los vectores oficiales del NIST (ACVP)—: Quipu las compone, no inventa criptografía propia.
Libre y transparente
Quipu es código abierto (AGPL-3.0). Puedes leer cada línea y auditar el formato, especificado byte a byte. Está publicado en crates.io y, como rueda de Python, en PyPI.
Estado honesto: la composición aún no ha pasado una auditoría criptográfica independiente; hasta ese sello externo, trátalo como software para revisión y experimentación, no para proteger secretos reales de alto valor.
Si necesitas proteger datos en reposo con visión post-cuántica y un formato auditable, hablemos.
Top comments (0)