Ir al contenido

Cifrado híbrido.Un camino claro en Python.

AegisQ combina encapsulación de claves ML-KEM y cifrado autenticado AES-256-GCM mediante una API Python respaldada por un núcleo en Rust.

Abrir los docs

Su primer cifrado y descifrado

from aegisq import AegisCipher
cipher = AegisCipher()
keypair = cipher.generate_keypair()
package = cipher.encrypt(b"Hello, AegisQ", keypair.public_key)
plaintext = cipher.decrypt(package, keypair.secret_key)
assert plaintext == b"Hello, AegisQ"

Instalación

Ventana de terminal
python -m pip install aegisq-pqc

Python 3.11 o posterior. ML-KEM-768 por defecto.

Un paquete. Cuatro partes ordenadas.
  1. Capsule ML-KEMEncapsulación de claves
  2. Nonce AES12 bytes
  3. Tag de autenticación16 bytes
  4. CiphertextPayload cifrado

Formato one-shot del Transit Package. Ilustración no proporcional al tamaño en bytes.

Entender el diseño híbrido

El emisor cifra con la clave pública del destinatario; este mantiene privada la clave secreta. Obtenga las claves públicas mediante un canal confiable. El ejemplo usa un par de claves local; AES-GCM no demuestra la identidad del emisor.

Continuar con el inicio rápido

Empiece con AegisCipher y KeyPair. Elija un nivel de seguridad y consulte la jerarquía de excepciones. MlKem expone operaciones KEM para protocolos avanzados.

El cifrado en streaming procesa datos por bloques; la memoria depende de los bloques de entrada. Los métodos asíncronos delegan el cifrado y descifrado a un thread pool; la generación de claves sigue siendo síncrona. La serialización de claves cubre PEM, JSON y persistencia cifrada con secretos de alta entropía.

Comprender el ciclo de vida de las claves y la seguridad

Sección titulada «Comprender el ciclo de vida de las claves y la seguridad»

Las sesiones efímeras y el context manager ayudan a gestionar el ciclo de vida; no garantizan borrado completo ni forward secrecy. Se zeroizan buffers Rust seleccionados; los bytes Python del llamador y todas las copias de claves no tienen esa cobertura.

Lea la arquitectura, el flujo híbrido KEM-DEM y los fundamentos matemáticos para conocer la implementación. Las operaciones nativas liberan el GIL con py.detach(). El marcador PEP 561 y los stubs nativos apoyan las herramientas; los bindings de streaming aún no están incluidos en el stub.

Los tests NIST verifican salidas de KeyGen y encapsulación, no una validación ACVP oficial. La referencia FIPS 203 y el glosario explican el estándar y los términos. Las defensas de timing no constituyen una auditoría integral de canales laterales.