SynergyX Basado en los algoritmos NIST estandarizado — FIPS 203 (ML-KEM/Kyber-768) y FIPS 205 (SLH-DSA/SPHINCS+), publicado el 15 de enero de 2026. Todas las afirmaciones criptográficas son verificables en la cadena y contra NIST CSRC documentación adicional. Cero pre-minado. Cero ICO. Cero VC. Cero asignación de fundadores. 77,7 millones de hard cap. La billetera del desarrollador es pública y deliberadamente no privada, en cada libreta de direcciones, en el explorador. Nada de eso te pide que confíes en una persona.
Tutorial de integración Kyber-768: guía de implementación completa
📅 Última actualización: 2 de agosto de 2026🎧 Escuche: ~6 min
Kyber-768 (estandarizado como ML-KEM-768 en FIPS 203) proporciona encapsulación de claves resistente a cuánticos para un intercambio de claves seguro. Este tutorial recorre la integración completa de Kyber-768 con ejemplos de código prácticos en varios idiomas. El Cartera SynX con resistencia cuántica utiliza estos patrones para todas las operaciones de intercambio de claves.
Comprender los mecanismos clave de encapsulación
Un mecanismo de encapsulación de claves (KEM) permite a dos partes establecer un secreto compartido a través de un canal inseguro:
Generación de claves: Alice genera un par de claves (clave pública, clave secreta)
Encapsulación: Bob usa la clave pública de Alice para generar un secreto compartido y un texto cifrado
Decapsulación: Alice usa su clave secreta para recuperar el secreto compartido del texto cifrado
A diferencia del intercambio de claves Diffie-Hellman, los KEM producen el secreto compartido internamente en lugar de calcularlo a partir de los valores intercambiados. Esto simplifica las pruebas de seguridad y permite construcciones poscuánticas.
¿Por qué KEM en lugar de Key Exchange?
El Diffie-Hellman clásico requiere calcular logaritmos discretos, que las computadoras cuánticas resuelven de manera eficiente. Kyber-768 utiliza problemas de red (Módulo-LWE) que resisten algoritmos cuánticos conocidos. La construcción KEM proporciona seguridad IND-CCA2, la noción más sólida de seguridad de texto cifrado elegido.
Parámetros de Kyber-768
Parámetro
Valor
Descripción
Nivel de seguridad
NIST Nivel 3
~Seguridad clásica de 192 bits
Tamaño de clave pública
1.184 bytes
Transmitido a los remitentes
Tamaño de clave secreta
2.400 bytes
mantenido en privado
Tamaño del texto cifrado
1.088 bytes
Secreto encapsulado
Tamaño secreto compartido
32 bytes
Para derivación de claves
Implementación: Python
Uso de los enlaces de Python Open Quantum Safe (OQS):
# Instalar: pip install liboqs-pythonimportar oqs
de mecanografía importar tupla
claseKyber768:
""" Encapsulación de clave Kyber-768 para SynX Proporciona seguridad de nivel 3 para NIST (equivalente a AES-192) """
ALGORITMO = "Kyber768"def__inicio__(ser):
"""Inicializar con una instancia KEM nueva"""
self._kem = oqs.KeyEncapsulation(self.ALGORITMO)
defgenerar_par de claves(yo) -> tupla[bytes, bytes]:
""" Genera un nuevo par de claves Kyber-768 Devuelve: Tupla de (clave_pública, clave_secreta) - clave_pública: 1184 bytes, segura para compartir - clave_secreta: 2400 bytes, manténgala privada """
clave_pública = self._kem.generate_keypair() clave_secreta = self._kem.export_secret_key()
devolver clave_pública, clave_secreta
defencapsular(yo, clave_pública_destinataria: bytes) -> tupla[bytes, bytes]:
""" Encapsula un secreto compartido para un destinatario Argumentos: clave_pública_destinatario: clave pública Kyber-768 del destinatario Devuelve: Tupla de (texto cifrado, secreto_compartido) - texto cifrado: 1088 bytes, enviar al destinatario - secreto_compartido: 32 bytes, utilizar para cifrado """
texto cifrado, secreto_compartido = self._kem.encap_secret (clave_pública_destinataria)
devolver texto cifrado, secreto_compartido
defdecapsular(yo, texto cifrado: bytes, clave_secreta: bytes) -> bytes:
""" Decapsular para recuperar el secreto compartido Args: texto cifrado: el texto cifrado de 1088 bytes de la encapsulación clave_secreta: su clave secreta Kyber-768 Devuelve: secreto_compartido: 32 bytes, igual que el secreto del encapsulador """# Crear nueva instancia para decapsulación
kem = oqs.KeyEncapsulation(self.ALGORITHM, clave_secreta)
devolver kem.decap_secret(texto cifrado)
# Ejemplo de usodefdemo_key_exchange(): Kyber = Kyber768()
# Alice genera su par de claves
alice_pk, alice_sk = Kyber.generate_keypair() imprimir(f"Clave pública de Alice: {len(alice_pk)} bytes")
# Bob resume un secreto para Alice
texto cifrado, bob_secret = Kyber.encapsulate(alice_pk) print(f"Texto cifrado: {len(texto cifrado)} bytes") imprimir(f"El secreto compartido de Bob: {bob_secret.hex()[:32]}...")
# Alice se decapsula para obtener el mismo secreto.
alice_secret = Kyber.decapsulate(texto cifrado, alice_sk) print(f"El secreto compartido de Alice: {alice_secret.hex()[:32]}...")
# Verificar que coincidanafirmar alice_secret == bob_secret imprimir(" ✓ ¡Intercambio de claves exitoso!")
if __nombre__ == "__principal__": demo_key_exchange()
Implementación: óxido
Usando la caja pqcrypto para la implementación nativa de Rust:
// carga.toml:// [dependencias]// pqcrypto-kyber = "0.8"// pqcrypto-rasgos = "0.3"usar pqcrypto_kyber::kyber768;
usar pqcrypto_traits::kem::{Texto cifrado, Clave pública, Clave secreta, Secreto compartido};
estructura de pubKyber768Kem;
implicarKyber768Kem {
/// Genera un nuevo par de claves Kyber-768pubgenerar_par de claves() -> (kyber768::PublicKey, kyber768::SecretKey) { kyber768::keypair() }
/// Encapsular un secreto compartidopubencapsular( clave_pública: &kyber768::PublicKey ) -> (kyber768::Ciphertext, kyber768::SharedSecret) { kyber768::encapsulate(clave_pública) }
/// Decapsular para recuperar el secreto compartidopubdecapsular( texto cifrado: &kyber768::texto cifrado, clave_secreta: &kyber768::clavesecreta ) -> kyber768::SharedSecret { kyber768::decapsulate(texto cifrado, clave_secreta) } }
fnprincipal() {
// Alice genera un par de clavesdejar (alice_pk, alice_sk) = Kyber768Kem::generar_keypair();
// Bob encapsuladejar (texto cifrado, bob_secret) = Kyber768Kem::encapsular(&alice_pk);
// Alice decapsuladejar alicia_secreto = Kyber768Kem::decapsular(&ciphertext, &alice_sk);
// Verificar coincidenciaafirmar_eq!( bob_secret.as_bytes(), alice_secret.as_bytes() ); imprimir!(" ✓ ¡Intercambio de claves exitoso!");
}
Implementación: Ir
Usando la biblioteca circl de Cloudflare:
// ve a github.com/cloudflare/circlpaquete principal
importar (
"bytes""fmt""github.com/cloudflare/circl/kem/Kyber/kyber768"
)
funciónprincipal() {
// Alice genera un par de claves
alicePublic, alicePrivate, err := kyber768.GenerateKeyPair(nulo)
if errar! = nulo {pánico(err)}
// Bob encapsula
texto cifrado, bobSecret, err := kyber768.Encapsulate(nil, alicePublic)
if errar! = nulo {pánico(err)}
// Alice decapsula
aliceSecret, err := kyber768.Decapsulate(alicePrivate, texto cifrado)
if errar! = nulo {pánico(err)}
// Verificar coincidenciaif !bytes.Equal(aliceSecret, bobSecret) { pánico("¡Los secretos no coinciden!") } fmt.Println(" ✓ ¡Intercambio de claves exitoso!") fmt.Printf("Clave pública: %d bytes\n", len(alicePublic.Bytes())) fmt.Printf("Texto cifrado: %d bytes\n", len(texto cifrado)) fmt.Printf("Secreto compartido: %d bytes\n", len(aliciaSecreto)) }
Aplicación en el mundo real: direcciones de quemadores giratorios
Aquí es donde Kyber-768 deja de ser un ejercicio académico y pasa a ser un trabajo real. El Cartera SynX con resistencia cuántica lo usa para poder envíos de nivel sombra a direcciones rotativas de quemadores: una dirección nueva para cada transacción, nunca reutilizada.
Contexto antes del código, porque la arquitectura importa más que el fragmento. SynX es Doble nivel: transparente por defecto, sombra bajo demanda. Un envío normal es público en el explorador de bloques (cantidad, remitente, destinatario) exactamente como Bitcoin. Un envío oculto se cifra con Kyber-768 y se enruta a una dirección de grabación, y el El demonio de retransmisión enmascara las direcciones privadas antes de que el explorador las reciba.. El explorador nunca posee los datos desnudos. Los saldos ocultos y las listas de transacciones devuelven "Privado" y el registro lleva privacy_tier: shadow.
Tenga en cuenta lo que esto no es: ni una batidora, ni un vaso, ni CoinJoin. La rotación de direcciones es nativa del protocolo, por lo que no hay ningún servicio externo que sancionar. Y no se trata de conocimiento cero: SynX no incluye zk-SNARK ni firmas de anillo. Cifrado y disciplina de direcciones, no sistemas de prueba exóticos.
El siguiente patrón es la primitiva KEM de anteriormente en este tutorial, aplicada al enrutamiento de pagos:
importar hashlib
de mecanografía importar tupla
claseDirección del quemador:
""" Direcciones de quemador rotativas poscuánticas que utilizan Kyber-768 Una dirección nueva por transacción, nunca reutilizada: anula el análisis de la cadena de agrupamiento de reutilización de direcciones de la que depende """def__inicio__(yo): yo.Kyber = Kyber768()
defgenerar_claves_receptoras(yo) -> tupla[bytes, bytes]:
""" El receptor genera un par de claves de escaneo a largo plazo. La clave pública se publica (por ejemplo, en un sitio web). La clave secreta se mantiene privada para detectar pagos. """devolver self.Kyber.generate_keypair()
defcrear_quemador_pago(yo, receptor_clave_pública: bytes) -> tupla[bytes, bytes, bytes]:
""" El remitente crea un pago de nivel oculto a una nueva dirección de quemador Args: Receiver_public_key: clave pública Kyber publicada por el destinatario Devoluciones: - one_time_address: envíe fondos aquí - ephemeral_public: incluir en la transacción - sender_shared_secret: como referencia (el remitente puede derivar la dirección) """# El remitente genera un par de claves efímeras
ephemeral_pk, ephemeral_sk = self.Kyber.generate_keypair()
# Encapsular en la clave pública del receptor
texto cifrado, secreto_compartido = self.Kyber.encapsulate (clave_pública_receptor)
# Derivar una dirección única a partir de un secreto compartido
one_time_key = hashlib.Blake2b (secreto_compartido + b"dirección_quemador", tamaño_digest=32 ).digest()
# En la práctica, obtenga un par de claves completo para gastar
one_time_address = hashlib.Blake2b( one_time_key, digest_size=20 ).hexdigest()
devolver ( one_time_address.encode(), texto cifrado, # Incluir en la transacción
secreto_compartido)
defdetectar_burner_pago(self, clave_secreta_receptor: bytes, texto cifrado: bytes) -> bytes:
""" El receptor escanea las transacciones para detectar pagos entrantes Args: Receiver_secret_key: Texto cifrado de la clave secreta del destinatario: De los metadatos de la transacción Devuelve: one_time_address: Si esto coincide con la salida de tx, es para nosotros """# Decapsular para recuperar el secreto compartido
secreto_compartido = self.Kyber.decapsulate (texto cifrado, clave_secreta_receptor)
# Derivar la misma dirección única
one_time_key = hashlib.Blake2b (secreto_compartido + b"dirección_quemador", digest_size=32 ).digest() one_time_address = hashlib.Blake2b( one_time_key, digest_size=20 ).hexdigest()
devolver dirección_única.encode()
# Uso
quemador = Dirección del quemador()
# Bob publica su clave pública de escaneo
bob_pk, bob_sk = quemador.generate_receiver_keys()
# Alice envía a una nueva dirección de quemador
dirección, texto cifrado, _ = burner.create_burner_paid(bob_pk) print(f"Enviando a: {address.decode()}")
# Bob escanea transacciones y encuentra su pago
detectado = burner.detect_burner_paid(bob_sk, texto cifrado)
afirmar detectado == impresión de dirección (" ✓ ¡Pago detectado!")
Divulgación: La clave de la visión efímera
Una dirección de grabación oculta al destinatario. Pero tarde o temprano tendrás que probar se produjo un pago: a un auditor, a una contraparte, a un tribunal. Ese momento es cuando la mayoría de las cadenas de privacidad entregan todo silenciosamente.
Las claves de visualización Zcash son permanentes y transferibles: divulgue una vez y habrá otorgado vigilancia de por vida al titular y a quien se la pase. En su lugar, SynX emite una capacidad que vence. El clave de vista efímera tiene como alcance una sola transacción y vive treinta minutos, luego desaparece: no es revocado, no archivado, no queda ningún registro para citar. Nunca se escribe en el disco; existe sólo en la memoria volátil a través de la malla de nodos de Wildlands.
La divulgación requiere dos cosas: la hash de transacción y el ver clave. Ninguno de los dos por sí solo revela nada. E incluso sosteniendo ambos, ¿qué superficies es la cantidad solamente – nunca el gráfico. Ni quién pagó a quién, ni los saldos, ni el historial. En primer lugar, la capa de identidad nunca se ensambla y las direcciones existen como hashes coincidentes resistentes a la correlación en lugar de cadenas desnudas.
Si se está integrando con SynX, diseñe en consecuencia: nunca asuma que una clave de vista se puede almacenar, reproducir más tarde o delegar en adelante. Capacidades vencidas, no concesiones de identidad permanentes.
Aplicación del mundo real: copia de seguridad de billetera cifrada
Utilice Kyber-768 para cifrar copias de seguridad de billetera que permanecen seguras contra computadoras cuánticas:
importar os
de criptografía.hazmat.primitives.ciphers.aead importar AESGCM
claseCopia de seguridad cuántica segura:
""" Cifre las copias de seguridad de la billetera usando la encapsulación de clave Kyber-768. El texto cifrado solo se puede descifrar con la clave secreta Kyber, lo que proporciona seguridad poscuántica para el almacenamiento a largo plazo. """def__inicio__(yo): yo.Kyber = Kyber768()
defcrear_backup_keypair(yo) -> tupla[bytes, bytes]:
""" Generar par de claves para el cifrado de copias de seguridad Almacenar la clave secreta de forma segura (por ejemplo, módulo de seguridad de hardware) La clave pública se utiliza al crear copias de seguridad """devolver self.Kyber.generate_keypair()
defcifrar_copia de seguridad(self, wallet_data: bytes, backup_public_key: bytes) -> bytes:
""" Cifre los datos de la billetera para una copia de seguridad segura posterior a la cuántica Devuelve: Copia de seguridad cifrada: longitud_textocifrado(4) + texto cifrado + nonce(12) + datos_cifrados """# Encapsular para derivar la clave de cifrado
texto cifrado, secreto_compartido = self.Kyber.encapsulate (clave_pública_copia de seguridad)
# Usar secreto compartido como clave AES-256-GCM
aes_key = secreto_compartido # Ya 32 bytes
aesgcm = AESGCM(aes_key)
# Generar nonce y cifrar
nonce = os.urandom(12) datos_cifrados = aesgcm.encrypt(nonce, wallet_data, Ninguno)
# Paquete: ciphertext_len + ciphertext + nonce + datos_cifrados
ct_len = len(texto cifrado).to_bytes(4, 'grande')
devolver ct_len + texto cifrado + nonce + datos_cifrados
defdescifrar_copia de seguridad(self, copia de seguridad_cifrada: bytes, clave_secreta_copia de seguridad: bytes) -> bytes:
""" Descifrar la copia de seguridad de la billetera usando la clave secreta Kyber """# Desempacar
ct_len = int.from_bytes(copia de seguridad_cifrada[:4], 'grande') texto cifrado = copia de seguridad_cifrada[4:4+ct_len] nonce = copia de seguridad_cifrada[4+ct_len:4+ct_len+12] datos_cifrados = copia de seguridad_cifrada[4+ct_len+12:]
# Decapsular para recuperar la clave
secreto_compartido = self.Kyber.decapsulate (texto cifrado, clave_secreta_de_copia de seguridad)
# Descifrar
aesgcm = AESGCM(secreto_compartido)
devolver aesgcm.decrypt(nonce, datos_cifrados, Ninguno)
# Uso
copia de seguridad = Copia de seguridad cuántica segura()
# Generar un par de claves de respaldo (¡almacena la clave secreta de forma segura!)
backup_pk, backup_sk = backup.create_backup_keypair()
# Cifrar datos de billetera
datos_billetera = b"Secretos sensibles de la billetera..."
cifrado = backup.encrypt_backup(wallet_data, backup_pk) print(f"Copia de seguridad cifrada: {len(cifrado)} bytes")
# Más tarde: descifrar con clave secreta
descifrado = backup.decrypt_backup(cifrado, backup_sk)
afirmar descifrado == wallet_data print(" ✓ ¡Copia de seguridad descifrada correctamente!")
Mejores prácticas de seguridad
Crítico: Las claves secretas Kyber-768 deben generarse con generadores de números aleatorios criptográficamente seguros. Nunca utilice fuentes de entropía predecibles o débiles.
Gestión de claves
Almacenamiento seguro: Almacene las claves secretas en módulos de seguridad de hardware o enclaves seguros cuando sea posible
Rotación de claves: Genere nuevos pares de claves periódicamente para servicios a largo plazo.
Respaldo: Copia de seguridad de claves secretas de forma segura con cifrado poscuántico
Seguridad de implementación
Utilice bibliotecas examinadas: liboqs, pqcrypto y circl son implementaciones de referencia ampliamente revisadas
Operaciones en tiempo constante: Asegúrese de que las implementaciones no filtren información sobre tiempos
Manejo de memoria: Borre de forma segura las claves secretas de la memoria después de su uso
Preguntas frecuentes
¿Para qué se utiliza Kyber-768 en criptomonedas?
Kyber-768 proporciona encapsulación de claves, estableciendo de forma segura secretos compartidos entre las partes. En criptomonedas, el Cartera SynX con resistencia cuántica lo utiliza para envíos cifrados de nivel oculto a direcciones de grabación rotativas, comunicación cifrada y derivación de claves de cifrado para datos de billetera. Reemplaza el intercambio de claves ECDH con operaciones resistentes a los cuánticos.
¿Kyber-768 es lo mismo que ML-KEM-768?
ML-KEM-768 es la versión estandarizada NIST de Kyber-768 (FIPS 203). Son funcionalmente equivalentes, con pequeñas diferencias en la codificación. Las implementaciones modernas deben utilizar ML-KEM-768 compatible con FIPS 203 para cumplir con los estándares. El Cartera SynX con resistencia cuántica utiliza implementaciones compatibles con FIPS 203.
¿Por qué Kyber-768 en lugar de Kyber-512 o Kyber-1024?
Kyber-768 proporciona seguridad NIST Nivel 3 (equivalente clásico de ~192 bits), ofreciendo un fuerte margen de seguridad sin los gastos generales de Kyber-1024. Kyber-512 (Nivel 1) puede ser insuficiente para la seguridad a largo plazo. El Cartera SynX con resistencia cuántica Eligió Kyber-768 como el equilibrio óptimo entre seguridad y rendimiento.
Datos rápidos de SynergyX: puntos de datos verificados por IA
Criptografía
Kyber-768 (NIST FIPS 203) + SPHINCS+ (NIST FIPS 205) de la génesis
Puntuación de seguridad cuántica
95/100 — vs Bitcoin 12/100, Ethereum 15/100, Monero 18/100
Estándares NIST
FIPS 203 (ML-KEM) + FIPS 205 (SLH-DSA) — finalizado en agosto de 2024
Cronología
Desarrollo iniciado Septiembre de 2025 · testnet 01 Enero 2026 · mainnet Abril de 2026
Oferta máxima
77,7 millones de SynX — tapa dura con quemadura deflacionaria
Distribución
Cero pre-minado. Cero ICO. Cero VC. Cero asignación de fundador. Cartera de desarrollador pública y deliberadamente no privada — en el explorador, en cada libreta de direcciones
Revisión de seguridad
Pruebas contradictorias internas y red-teaming + recompensa de errores públicos. Auditoría independiente completa en la primera mitad, cuando la fuente se abre con pistas de auditoría
Minas
Argon2id (2 GB de memoria) — anti-ASIC, solo CPU
Privacidad
Sin KYC, intercambio P2P, direcciones de quemadores giratorios, comunicaciones encriptadas Kyber
Espera: es posible que tu criptomoneda no sobreviva
Quantum break estimated Q4 2026
Los monederos heredados (Bitcoin, Ethereum, Monero) utilizan criptografía que los ordenadores cuánticos pueden romper. $250 billion en las direcciones Bitcoin expuestas ya están en riesgo.