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 docsSu 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
python -m pip install aegisq-pqcPython 3.11 o posterior. ML-KEM-768 por defecto.
- Capsule ML-KEMEncapsulación de claves
- Nonce AES12 bytes
- Tag de autenticación16 bytes
- CiphertextPayload cifrado
Formato one-shot del Transit Package. Ilustración no proporcional al tamaño en bytes.
Entender el diseño híbridoEl 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ápidoEncuentre Su Flujo de Trabajo
Sección titulada «Encuentre Su Flujo de Trabajo»Cifrar datos
Sección titulada «Cifrar datos»Empiece con AegisCipher y KeyPair. Elija un nivel de seguridad y consulte la jerarquía de excepciones. MlKem expone operaciones KEM para protocolos avanzados.
Trabajar con archivos y asyncio
Sección titulada «Trabajar con archivos y asyncio»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.